diff --git a/.eslintrc.js b/.eslintrc.js index ea69a2893ff188..167107a0018e08 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -337,6 +337,7 @@ module.exports = { TextEncoderStream: 'readable', TransformStream: 'readable', TransformStreamDefaultController: 'readable', + ShadowRealm: 'readable', SubtleCrypto: 'readable', WritableStream: 'readable', WritableStreamDefaultWriter: 'readable', diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4170038a0ac0fc..6d69bbf54be1d6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -107,10 +107,8 @@ /benchmark/misc/startup.js @nodejs/startup /src/node.cc @nodejs/startup -/src/node_code_cache_stub.cc @nodejs/startup /src/node_native_module* @nodejs/startup /lib/internal/bootstrap/* @nodejs/startup -/tools/code_cache/* @nodejs/startup /tools/snapshot/* @nodejs/startup # V8 diff --git a/.github/label-pr-config.yml b/.github/label-pr-config.yml index a8d22980f6db18..5f83de231262a5 100644 --- a/.github/label-pr-config.yml +++ b/.github/label-pr-config.yml @@ -67,7 +67,7 @@ subSystemLabels: /^tools\/make-v8/: tools, v8 engine, needs-ci /^tools\/v8_gypfiles/: tools, v8 engine, needs-ci /^tools\/(code_cache|snapshot)/: needs-ci - /^tools\/build-addons.js/: needs-ci + /^tools\/build-addons.mjs/: needs-ci # all other tool changes should be marked as such /^tools\//: tools /^\.eslint|\.remark|\.editorconfig/: tools diff --git a/.github/workflows/authors.yml b/.github/workflows/authors.yml index ffd169df9b6ef5..80d6b0ab22fb62 100644 --- a/.github/workflows/authors.yml +++ b/.github/workflows/authors.yml @@ -15,8 +15,10 @@ jobs: with: fetch-depth: '0' # This is required to actually get all the authors persist-credentials: false - - run: tools/update-authors.js # Run the AUTHORS tool - - uses: gr2m/create-or-update-pull-request-action@v1 # Create a PR or update the Action's existing PR + - run: tools/update-authors.mjs # Run the AUTHORS tool + - uses: gr2m/create-or-update-pull-request-action@6720400cad8e74d7adc64640e4e6ea6748b83d8f + # Creates a PR or update the Action's existing PR, or + # no-op if the base branch is already up-to-date. env: GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} with: @@ -24,7 +26,7 @@ jobs: body: > Here are some new additions to the AUTHORS file. This is an automatically generated PR by the - `authors.yml` GitHub Action, which runs `tools/update-authors.js`. + `authors.yml` GitHub Action, which runs `tools/update-authors.mjs`. branch: actions/authors-update # Custom branch *just* for this Action. commit-message: 'meta: update AUTHORS' labels: meta diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 44d7529b2a2e54..5ab5f98739f579 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -32,7 +32,7 @@ jobs: if: github.event.pull_request.draft == false strategy: matrix: - windows: [windows-2019, windows-2022] + windows: [windows-2019] fail-fast: false runs-on: ${{ matrix.windows }} steps: diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml index ddc7be8b507557..77bad80cc269d5 100644 --- a/.github/workflows/coverage-linux.yml +++ b/.github/workflows/coverage-linux.yml @@ -60,6 +60,6 @@ jobs: - name: Clean tmp run: rm -rf coverage/tmp && rm -rf out - name: Upload - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v3 with: directory: ./coverage diff --git a/.github/workflows/coverage-windows.yml b/.github/workflows/coverage-windows.yml index 231f3b1ed7ec13..29e7ac689a2043 100644 --- a/.github/workflows/coverage-windows.yml +++ b/.github/workflows/coverage-windows.yml @@ -33,7 +33,7 @@ env: jobs: coverage-windows: if: github.event.pull_request.draft == false - runs-on: windows-latest + runs-on: windows-2019 steps: - uses: actions/checkout@v3 with: @@ -61,6 +61,6 @@ jobs: - name: Clean tmp run: npx rimraf ./coverage/tmp - name: Upload - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v3 with: directory: ./coverage diff --git a/.github/workflows/find-inactive-collaborators.yml b/.github/workflows/find-inactive-collaborators.yml index 705fa2eb38e3a6..7445dd8ca843fb 100644 --- a/.github/workflows/find-inactive-collaborators.yml +++ b/.github/workflows/find-inactive-collaborators.yml @@ -30,7 +30,9 @@ jobs: run: tools/find-inactive-collaborators.mjs - name: Open pull request - uses: gr2m/create-or-update-pull-request-action@v1 + uses: gr2m/create-or-update-pull-request-action@6720400cad8e74d7adc64640e4e6ea6748b83d8f + # Creates a PR or update the Action's existing PR, or + # no-op if the base branch is already up-to-date. env: GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} with: diff --git a/.github/workflows/find-inactive-tsc.yml b/.github/workflows/find-inactive-tsc.yml index 27568392fbd8bf..389a6d1e0f56c7 100644 --- a/.github/workflows/find-inactive-tsc.yml +++ b/.github/workflows/find-inactive-tsc.yml @@ -39,7 +39,9 @@ jobs: run: tools/find-inactive-tsc.mjs >> $GITHUB_ENV - name: Open pull request - uses: gr2m/create-or-update-pull-request-action@v1 + uses: gr2m/create-or-update-pull-request-action@6720400cad8e74d7adc64640e4e6ea6748b83d8f + # Creates a PR or update the Action's existing PR, or + # no-op if the base branch is already up-to-date. env: GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} with: diff --git a/.github/workflows/license-builder.yml b/.github/workflows/license-builder.yml index 98ae67956a8501..790bab9e3973f1 100644 --- a/.github/workflows/license-builder.yml +++ b/.github/workflows/license-builder.yml @@ -15,7 +15,9 @@ jobs: with: persist-credentials: false - run: ./tools/license-builder.sh # Run the license builder tool - - uses: gr2m/create-or-update-pull-request-action@v1.x # Create a PR or update the Action's existing PR + - uses: gr2m/create-or-update-pull-request-action@6720400cad8e74d7adc64640e4e6ea6748b83d8f + # Creates a PR or update the Action's existing PR, or + # no-op if the base branch is already up-to-date. env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index e5eff5ee4474eb..0fa577025211e9 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -49,6 +49,44 @@ jobs: run: npx envinfo - name: Lint C/C++ files run: make lint-cpp + format-cpp: + if: ${{ github.event.pull_request.draft == false && github.base_ref == 'master' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + persist-credentials: false + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v3 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@v3 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: Environment Information + run: npx envinfo + - name: Format C/C++ files + run: | + make format-cpp-build + # The `make format-cpp` error code is intentionally ignored here + # because it is irrelevant. We already check if the formatter produced + # a diff in the next line. + # Refs: https://github.com/nodejs/node/pull/42764 + CLANG_FORMAT_START="$(git merge-base HEAD refs/remotes/origin/$GITHUB_BASE_REF)" \ + make format-cpp || true + git --no-pager diff --exit-code && EXIT_CODE="$?" || EXIT_CODE="$?" + if [ "$EXIT_CODE" != "0" ] + then + echo + echo 'ERROR: Please run:' + echo + echo " CLANG_FORMAT_START="$\(git merge-base HEAD ${GITHUB_BASE_REF}\)" make format-cpp" + echo + echo 'to format the commits in your branch.' + exit "$EXIT_CODE" + fi lint-js-and-md: if: github.event.pull_request.draft == false runs-on: ubuntu-latest @@ -118,7 +156,7 @@ jobs: persist-credentials: false - run: shellcheck -V - name: Lint Shell scripts - run: tools/lint-sh.js . + run: tools/lint-sh.mjs . lint-codeowners: if: github.event.pull_request.draft == false runs-on: ubuntu-latest @@ -126,7 +164,7 @@ jobs: - uses: actions/checkout@v3 with: persist-credentials: false - - uses: mszostok/codeowners-validator@v0.6.0 + - uses: mszostok/codeowners-validator@7f3f5e28c6d7b8dfae5731e54ce2272ca384592f with: checks: files,duppatterns lint-pr-url: diff --git a/.github/workflows/notify-force-push.yml b/.github/workflows/notify-force-push.yml index dac2d50ae266f7..4f43a7d715013c 100644 --- a/.github/workflows/notify-force-push.yml +++ b/.github/workflows/notify-force-push.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Slack Notification - uses: rtCamp/action-slack-notify@master + uses: rtCamp/action-slack-notify@12e36fc18b0689399306c2e0b3e0f2978b7f1ee7 env: SLACK_COLOR: '#DE512A' SLACK_ICON: https://github.com/nodejs.png?size=48 diff --git a/.github/workflows/test-asan.yml b/.github/workflows/test-asan.yml index 29e545657002eb..87cf9edf672d47 100644 --- a/.github/workflows/test-asan.yml +++ b/.github/workflows/test-asan.yml @@ -30,6 +30,7 @@ concurrency: cancel-in-progress: true env: + ASAN_OPTIONS: intercept_tls_get_addr=0 PYTHON_VERSION: '3.10' FLAKY_TESTS: dontcare diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml index 50735145a57a08..3d58558ce69a4d 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -80,7 +80,9 @@ jobs: with: persist-credentials: false - run: ${{ matrix.run }} - - uses: gr2m/create-or-update-pull-request-action@v1 # Create a PR or update the Action's existing PR + - uses: gr2m/create-or-update-pull-request-action@6720400cad8e74d7adc64640e4e6ea6748b83d8f + # Creates a PR or update the Action's existing PR, or + # no-op if the base branch is already up-to-date. env: GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} with: diff --git a/.mailmap b/.mailmap index df1b4d34998d40..d2bd47a4e851df 100644 --- a/.mailmap +++ b/.mailmap @@ -50,6 +50,7 @@ Ashley Maceli Ashok Suthar Ashutosh Kumar Singh Atsuo Fukaya +Austin Kelleher Azard <330815461@qq.com> Ben Lugavere Ben Noordhuis @@ -82,11 +83,14 @@ Brian White Caleb Boyd Calvin Metcalf Calvin Metcalf +Camillo Bruni Caralyn Reisle Charles Charles Rudolph Chen Gang Chen Gang <13298548+MoonBall@users.noreply.github.com> +Chengzhong Wu +Chengzhong Wu Chew Choon Keat Chris Andrews Chris Johnson @@ -196,8 +200,6 @@ Hassaan Pasha Hendrik Schwalm Henry Chin Herbert Vojčík -himself65 -himself65 Hitesh Kanwathirtha Icer Liang Igor Savin @@ -298,6 +300,7 @@ Lakshmi Swetha Gopireddy Lasse R.H. Nielsen Leeseean Chiu +LiviaMedeiros <74449973+LiviaMedeiros@users.noreply.github.com> Lucas Pardue Luke Bayes Lydia Kats @@ -356,6 +359,8 @@ Mitar Milutinovic Mithun Sasidharan Mohammed Keyvanzadeh Mohammed Keyvanzadeh <62040526+VoltrexMaster@users.noreply.github.com> +Morgan Roderick +Morgan Roderick <20321+mroderick@users.noreply.github.com> MURAKAMI Masahiko Myles Borins Myles Borins @@ -372,10 +377,17 @@ Nils Kuhnhenn Nitzan Uziely Nitzan Uziely Noah Rose Ledesma +npm team +npm team +npm team +npm team Oliver Chang Oluwaseun Omoyajowo +OneNail Onne Gorter Oscar Martinez +Paolo Insogna +Paolo Insogna Paul Graham Paul Querna Pedro Lima @@ -558,6 +570,8 @@ Yuta Hiroto Zach Bjornson Zachary Scott Zachary Vacura +Zeyu "Alex" Yang +Zeyu "Alex" Yang Zoran Tomicic Сковорода Никита Андреевич 隋鑫磊 diff --git a/AUTHORS b/AUTHORS index 69a47cb7b54a48..6bb303118e6476 100644 --- a/AUTHORS +++ b/AUTHORS @@ -2310,12 +2310,12 @@ Dzmitry_Prudnikau Ian McKellar Jennifer Bland Kyle Fuller -Camillo Bruni +Camillo Bruni Yongsheng Zhang Neeraj Laad Scott Van Gilder Yaniv Friedensohn -Lucas Woo +Chengzhong Wu Troels Liebe Bentsen pranshuchittora lakamsani @@ -2686,7 +2686,7 @@ Alexander Sattelmaier Avi ד Thomas Aymen Naghmouchi -himself65 +Zeyu "Alex" Yang Patrick Gansterer Nicolas Moteau Anthony Tuininga @@ -3260,7 +3260,6 @@ Siddharth Cactysman David Brownman Michael Rommel -Chengzhong Wu Andres Jayden Seric divlo @@ -3288,7 +3287,7 @@ pengjie <37610029@qq.com> Philip julianjany <54538266+julianjany@users.noreply.github.com> bl-ue -npm-robot +npm team Shaun Keys Simone Busoli Derevianchenko Maksym <32910350+maks-white@users.noreply.github.com> @@ -3430,9 +3429,8 @@ Derek Wolpert <48101033+derekwolpert@users.noreply.github.com> wbt Alexandru Comanescu madflow -Austin Kelleher +Austin Kelleher apeltop -Livia Medeiros <74449973+LiviaMedeiros@users.noreply.github.com> Nikolaos Papaspyrou Matt Probert <1196252+mattpr@users.noreply.github.com> Roch Devost @@ -3452,5 +3450,23 @@ Daeyeon Jeong Daniel Roe Niyas Sait K.C.Ashish Kumar <703559+kcak11@users.noreply.github.com> +Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> +Liviu Ionescu +HE Shi-Jun +Yagiz Nizipli +liuxingbaoyu <30521560+liuxingbaoyu@users.noreply.github.com> +Sergey Nazaryev +William Marlow +Keyhan Vakil <60900335+airtable-keyhanvakil@users.noreply.github.com> +Feng Yu +pupilTong +rikapo +Meek Simbule <55823259+meekdenzo@users.noreply.github.com> +Michael Ficarra +hiroki osame +Eugene Chapko +Sergey Petushkov +Caleb Everett +JialuZhang-intel -# Generated by tools/update-authors.js +# Generated by tools/update-authors.mjs diff --git a/BUILDING.md b/BUILDING.md index 0eac95d576d6fc..c16f6ffde07d3f 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -52,6 +52,7 @@ file a new issue. * [Build with a specific ICU](#build-with-a-specific-icu) * [Unix/macOS](#unixmacos-3) * [Windows](#windows-4) +* [Configuring OpenSSL config appname](#configure-openssl-appname) * [Building Node.js with FIPS-compliant OpenSSL](#building-nodejs-with-fips-compliant-openssl) * [Building Node.js with external core modules](#building-nodejs-with-external-core-modules) * [Unix/macOS](#unixmacos-4) @@ -99,46 +100,37 @@ Node.js does not support a platform version if a vendor has expired support for it. In other words, Node.js does not support running on End-of-Life (EoL) platforms. This is true regardless of entries in the table below. -| Operating System | Architectures | Versions | Support Type | Notes | -| ---------------- | ---------------- | ------------------------------- | ----------------------------------------------- | ----------------------------------------- | -| GNU/Linux | x64 | kernel >= 3.10, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04[^1], Debian 9, EL 7[^2] | -| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 | -| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 | -| GNU/Linux | arm64 | kernel >= 4.5, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04, Debian 9, EL 7[^3] | -| GNU/Linux | armv7 | kernel >= 4.14, glibc >= 2.24 | Tier 1 | e.g. Ubuntu 18.04, Debian 9 | -| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 | -| GNU/Linux | ppc64le >=power8 | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. Ubuntu 16.04[^1], EL 7[^2] | -| GNU/Linux | s390x | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. EL 7[^2] | -| Windows | x64, x86 (WoW64) | >= Windows 10/Server 2016 | Tier 1 | [^4],[^5] | -| Windows | x86 (native) | >= Windows 10/Server 2016 | Tier 1 (running) / Experimental (compiling)[^6] | | -| Windows | x64, x86 | Windows 8.1/Server 2012 | Experimental | | -| Windows | arm64 | >= Windows 10 | Tier 2 (compiling) / Experimental (running) | | -| macOS | x64 | >= 10.15 | Tier 1 | For notes about compilation see [^7] | -| macOS | arm64 | >= 11 | Tier 1 | | -| SmartOS | x64 | >= 18 | Tier 2 | | -| AIX | ppc64be >=power8 | >= 7.2 TL04 | Tier 2 | | -| FreeBSD | x64 | >= 12.2 | Experimental | | - -[^1]: GCC 8 is not provided on the base platform. Users will - need the - [Toolchain test builds PPA](https://launchpad.net/\~ubuntu-toolchain-r/+archive/ubuntu/test?field.series_filter=xenial) - or similar to source a newer compiler. - -[^2]: GCC 8 is not provided on the base platform. Users will - need the - [devtoolset-8](https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/) - or later to source a newer compiler. - -[^3]: Older kernel versions may work for ARM64. However the - Node.js test infrastructure only tests >= 4.5. - -[^4]: On Windows, running Node.js in Windows terminal emulators +| Operating System | Architectures | Versions | Support Type | Notes | +| ---------------- | ---------------- | --------------------------------- | ----------------------------------------------- | ------------------------------------ | +| GNU/Linux | x64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 | +| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 | +| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 | +| GNU/Linux | arm64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 | +| GNU/Linux | armv7 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10 | +| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 | +| GNU/Linux | ppc64le >=power8 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. Ubuntu 20.04, RHEL 8 | +| GNU/Linux | s390x | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. RHEL 8 | +| Windows | x64, x86 (WoW64) | >= Windows 10/Server 2016 | Tier 1 | [^2],[^3] | +| Windows | x86 (native) | >= Windows 10/Server 2016 | Tier 1 (running) / Experimental (compiling)[^4] | | +| Windows | x64, x86 | Windows 8.1/Server 2012 | Experimental | | +| Windows | arm64 | >= Windows 10 | Tier 2 (compiling) / Experimental (running) | | +| macOS | x64 | >= 10.15 | Tier 1 | For notes about compilation see [^5] | +| macOS | arm64 | >= 11 | Tier 1 | | +| SmartOS | x64 | >= 18 | Tier 2 | | +| AIX | ppc64be >=power8 | >= 7.2 TL04 | Tier 2 | | +| FreeBSD | x64 | >= 12.2 | Experimental | | + +[^1]: Older kernel versions may work. However official Node.js release + binaries are [built on RHEL 8 systems](#official-binary-platforms-and-toolchains) + with kernel 4.18. + +[^2]: On Windows, running Node.js in Windows terminal emulators like `mintty` requires the usage of [winpty](https://github.com/rprichard/winpty) for the tty channels to work (e.g. `winpty node.exe script.js`). In "Git bash" if you call the node shell alias (`node` without the `.exe` extension), `winpty` is used automatically. -[^5]: The Windows Subsystem for Linux (WSL) is not +[^3]: The Windows Subsystem for Linux (WSL) is not supported, but the GNU/Linux build process and binaries should work. The community will only address issues that reproduce on native GNU/Linux systems. Issues that only reproduce on WSL should be reported in the @@ -146,12 +138,12 @@ platforms. This is true regardless of entries in the table below. Windows binary (`node.exe`) in WSL will not work without workarounds such as stdio redirection. -[^6]: Running Node.js on x86 Windows should work and binaries +[^4]: Running Node.js on x86 Windows should work and binaries are provided. However, tests in our infrastructure only run on WoW64. Furthermore, compiling on x86 Windows is Experimental and may not be possible. -[^7]: Our macOS x64 Binaries are compiled with 10.15 as a target. Xcode11 is +[^5]: Our macOS x64 Binaries are compiled with 10.15 as a target. Xcode11 is required to compile. ### Supported toolchains @@ -173,19 +165,17 @@ Binaries at are produced on: | aix-ppc64 | AIX 7.2 TL04 on PPC64BE with GCC 8 | | darwin-x64 | macOS 10.15, Xcode Command Line Tools 11 with -mmacosx-version-min=10.15 | | darwin-arm64 (and .pkg) | macOS 11 (arm64), Xcode Command Line Tools 12 with -mmacosx-version-min=10.15 | -| linux-arm64 | CentOS 7 with devtoolset-8 / GCC 8[^8] | +| linux-arm64 | RHEL 8 with GCC 8[^6] | | linux-armv7l | Cross-compiled on Ubuntu 18.04 x64 with [custom GCC toolchain](https://github.com/rvagg/rpi-newer-crosstools) | -| linux-ppc64le | CentOS 7 with devtoolset-8 / GCC 8[^8] | -| linux-s390x | RHEL 7 with devtoolset-8 / GCC 8[^8] | -| linux-x64 | CentOS 7 with devtoolset-8 / GCC 8[^8] | +| linux-ppc64le | RHEL 8 with GCC 8[^6] | +| linux-s390x | RHEL 8 with GCC 8[^6] | +| linux-x64 | RHEL 8 with GCC 8[^6] | | win-x64 and win-x86 | Windows 2012 R2 (x64) with Visual Studio 2019 | -[^8]: The Enterprise Linux devtoolset-8 allows us to compile binaries with GCC 8 - but linked to the glibc and libstdc++ versions of the host platforms - (CentOS 7 / RHEL 7). Therefore, binaries produced on these systems are - compatible with glibc >= 2.17 and libstdc++ >= 6.0.20 (`GLIBCXX_3.4.20`). - These are available on distributions natively supporting GCC 4.9, such as - Ubuntu 14.04 and Debian 8. +[^6]: Binaries produced on these systems are compatible with glibc >= 2.28 + and libstdc++ >= 6.0.25 (`GLIBCXX_3.4.25`). These are available on + distributions natively supporting GCC 8.1 or higher, such as Debian 10, + RHEL 8 and Ubuntu 20.04. #### OpenSSL asm support @@ -335,13 +325,14 @@ You can execute the entire suite of tests for a given subsystem by providing the name of a subsystem: ```text -$ tools/test.py -J child-process +$ tools/test.py child-process ``` -You can also execute the tests in a tests directory (such as `test/message`): +You can also execute the tests in a test suite directory +(such as `test/message`): ```text -$ tools/test.py -J test/message +$ tools/test.py test/message ``` If you want to check the other options, please refer to the help by using @@ -549,7 +540,7 @@ When modifying only the JS layer in `lib`, it is possible to externally load it without modifying the executable: ```console -$ ./configure --node-builtin-modules-path $(pwd) +$ ./configure --node-builtin-modules-path "$(pwd)" ``` The resulting binary won't include any JS files and will try to load them from @@ -576,9 +567,9 @@ to run it again before invoking `make -j4`. * [Python 3.10](https://www.microsoft.com/en-us/p/python-310/9pjpw5ldxlz5) * The "Desktop development with C++" workload from - [Visual Studio 2019](https://visualstudio.microsoft.com/downloads/) or + [Visual Studio 2019](https://visualstudio.microsoft.com/vs/older-downloads/#visual-studio-2019-and-other-products) or the "C++ build tools" workload from the - [Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019), + [Build Tools](https://aka.ms/vs/16/release/vs_buildtools.exe), with the default optional components * Basic Unix tools required for some tests, [Git for Windows](https://git-scm.com/download/win) includes Git Bash @@ -618,7 +609,7 @@ packages: * [NetWide Assembler](https://chocolatey.org/packages/nasm) To install Node.js prerequisites using -[Boxstarter WebLauncher](https://boxstarter.org/WebLauncher), open +[Boxstarter WebLauncher](https://boxstarter.org/weblauncher), open with Internet Explorer or Edge browser on the target machine. @@ -778,6 +769,19 @@ as `deps/icu` (You'll have: `deps/icu/source/...`) > .\vcbuild full-icu ``` +### Configure OpenSSL appname + +Node.js can use an OpenSSL configuration file by specifying the environment +variable `OPENSSL_CONF`, or using the command line option `--openssl-conf`, and +if none of those are specified will default to reading the default OpenSSL +configuration file `openssl.cnf`. Node.js will only read a section that is by +default named `nodejs_conf`, but this name can be overridden using the following +configure option: + +```console +$ ./configure --openssl-conf-name= +``` + ## Building Node.js with FIPS-compliant OpenSSL The current version of Node.js supports FIPS when statically and @@ -829,6 +833,9 @@ $ ls out/Release/obj.target/deps/openssl/lib/openssl-modules/ fips.so ``` +Running `configure` without `--openssl-is-fips` flag and rebuilding will reset +the FIPS configuration. + ### FIPS support when dynamically linking OpenSSL For quictls/openssl 3.0 it is possible to enable FIPS when dynamically linking. diff --git a/CHANGELOG.md b/CHANGELOG.md index 5316ea5bc1f036..8fb3a39ef40466 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ Select a Node.js version below to view the changelog history: +* [Node.js 18](doc/changelogs/CHANGELOG_V18.md) **Current** * [Node.js 17](doc/changelogs/CHANGELOG_V17.md) **Current** * [Node.js 16](doc/changelogs/CHANGELOG_V16.md) **Long Term Support** * [Node.js 15](doc/changelogs/CHANGELOG_V15.md) End-of-Life @@ -26,6 +27,7 @@ release. + @@ -33,7 +35,16 @@ release. + " if slot == highlight_address: @@ -2974,12 +3043,12 @@ def output_words(self, f, start_address, end_address, f.write("") self.td_from_address(f, slot) f.write(address_fmt % self.format_address(slot)) - self.td_from_address(f, maybe_address) + self.td_from_address(f, maybe_uncompressed_address) f.write(": %s " % straddress) f.write("") f.write("" % (heap_object or '')) f.write("") @@ -3104,7 +3173,7 @@ def annotate_disasm_addresses(self, line): object_info = self.padawan.SenseObject(maybe_address) if not object_info: continue - extra.append(cgi.escape(str(object_info))) + extra.append(html.escape(str(object_info))) if len(extra) == 0: return line return ("%s ;; %s" % @@ -3134,9 +3203,9 @@ def format_disasm_line( # Some disassemblers insert spaces between each byte, # while some do not. if code[2] == " ": - op_offset = 3 * num_bytes - 1 + op_offset = 3 * num_bytes - 1 else: - op_offset = 2 * num_bytes + op_offset = 2 * num_bytes # Compute the actual call target which the disassembler is too stupid # to figure out (it adds the call offset to the disassembly offset rather @@ -3168,7 +3237,7 @@ def output_comment_box(self, f, prefix, address): comment = self.comments.get_comment(address) value = "" if comment: - value = " value=\"%s\"" % cgi.escape(comment) + value = " value=\"%s\"" % html.escape(comment) f.write("" % (prefix, @@ -3230,7 +3299,12 @@ def output_search_res(self, f, straddress): straddress) else: # Print as words - self.output_words(f, address - 8, address + 32, address, "Dump") + self.output_words(f, address - 8, address + 32, address, "Dump", + self.heap.MachinePointerSize()) + + if self.heap.IsPointerCompressed(): + self.output_words(f, address - 8, address + 32, address, + "Tagged Dump", self.heap.TaggedPointerSize()) # Print as ASCII f.write("
") @@ -3327,10 +3401,10 @@ def output_disasm_pc(self, f): DUMP_FILE_RE = re.compile(r"[-_0-9a-zA-Z][-\._0-9a-zA-Z]*\.dmp$") -class InspectionWebServer(BaseHTTPServer.HTTPServer): +class InspectionWebServer(http_server.HTTPServer): + def __init__(self, port_number, switches, minidump_name): - BaseHTTPServer.HTTPServer.__init__( - self, ('localhost', port_number), InspectionWebHandler) + super().__init__(('localhost', port_number), InspectionWebHandler) splitpath = os.path.split(minidump_name) self.dumppath = splitpath[0] self.dumpfilename = splitpath[1] @@ -3348,7 +3422,7 @@ def output_dump_desc_field(self, f, name): desc = "" f.write("\n" % - (cgi.escape(name), desc)) + (html.escape(name), desc)) def set_dump_desc(self, name, description): if not DUMP_FILE_RE.match(name): @@ -3399,8 +3473,8 @@ def output_dumps(self, f): fnames = dumps_by_time[mtime] for fname in fnames: f.write("\n") - f.write("\n" % ( - (urllib.urlencode({ 'dump' : fname }), fname))) + f.write("\n" % + ((urllib.parse.urlencode({'dump': fname}), fname))) f.write("") @@ -3534,10 +3608,10 @@ def do_dd(self, args): self.dd_start = self.ParseAddressExpr(args[0]) self.dd_num = int(args[1], 16) if len(args) > 1 else 0x10 else: - self.dd_start += self.dd_num * self.reader.PointerSize() + self.dd_start += self.dd_num * self.reader.MachinePointerSize() if not self.reader.IsAlignedAddress(self.dd_start): print("Warning: Dumping un-aligned memory, is this what you had in mind?") - end = self.dd_start + self.reader.PointerSize() * self.dd_num + end = self.dd_start + self.reader.MachinePointerSize() * self.dd_num self.padawan.InterpretMemory(self.dd_start, end) def do_do(self, address): @@ -3823,12 +3897,19 @@ def PrintModuleDetails(reader, module): def AnalyzeMinidump(options, minidump_name): reader = MinidumpReader(options, minidump_name) + # Use a separate function to prevent leaking the minidump buffer through + # ctypes in local variables. + _AnalyzeMinidump(options, reader) + reader.Dispose() + + +def _AnalyzeMinidump(options, reader): heap = None stack_top = reader.ExceptionSP() stack_bottom = reader.StackBottom() stack_map = {reader.ExceptionIP(): -1} - for slot in range(stack_top, stack_bottom, reader.PointerSize()): + for slot in range(stack_top, stack_bottom, reader.MachinePointerSize()): maybe_address = reader.ReadUIntPtr(slot) if not maybe_address in stack_map: stack_map[maybe_address] = slot @@ -3920,7 +4001,6 @@ def AnalyzeMinidump(options, minidump_name): print("Annotated stack (from exception.esp to bottom):") stack_start = padawan.PrintStackTraceMessage() padawan.InterpretMemory(stack_start, stack_bottom) - reader.Dispose() if __name__ == "__main__": diff --git a/deps/v8/tools/heap-layout/heap-layout-viewer-template.html b/deps/v8/tools/heap-layout/heap-layout-viewer-template.html new file mode 100644 index 00000000000000..c50f5cc3d38f45 --- /dev/null +++ b/deps/v8/tools/heap-layout/heap-layout-viewer-template.html @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/deps/v8/tools/heap-layout/heap-layout-viewer.mjs b/deps/v8/tools/heap-layout/heap-layout-viewer.mjs new file mode 100644 index 00000000000000..ada4a02311ce5d --- /dev/null +++ b/deps/v8/tools/heap-layout/heap-layout-viewer.mjs @@ -0,0 +1,225 @@ +// Copyright 2021 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import {GB, MB} from '../js/helper.mjs'; +import {DOM} from '../js/web-api-helper.mjs'; + +import {getColorFromSpaceName, kSpaceNames} from './space-categories.mjs'; + +DOM.defineCustomElement('heap-layout-viewer', + (templateText) => + class HeapLayoutViewer extends HTMLElement { + constructor() { + super(); + const shadowRoot = this.attachShadow({mode: 'open'}); + shadowRoot.innerHTML = templateText; + this.chart = echarts.init(this.$('#chart'), null, { + renderer: 'canvas', + }); + window.addEventListener('resize', () => { + this.chart.resize(); + }); + this.currentIndex = 0; + } + + $(id) { + return this.shadowRoot.querySelector(id); + } + + set data(value) { + this._data = value; + this.stateChanged(); + } + + get data() { + return this._data; + } + + hide() { + this.$('#container').style.display = 'none'; + } + + show() { + this.$('#container').style.display = 'block'; + } + + stateChanged() { + this.drawChart(0); + } + + getChartTitle(index) { + return this.data[index].header; + } + + getSeriesData(pageinfos) { + let ret = []; + for (let pageinfo of pageinfos) { + ret.push({value: pageinfo}); + } + return ret; + } + + getChartSeries(index) { + const snapshot = this.data[index]; + let series = []; + for (const [space_name, pageinfos] of Object.entries(snapshot.data)) { + let space_series = { + name: space_name, + type: 'custom', + renderItem(params, api) { + const addressBegin = api.value(1); + const addressEnd = api.value(2); + const allocated = api.value(3); + const start = api.coord([addressBegin, 0]); + const end = api.coord([addressEnd, 0]); + + const allocatedRate = allocated / (addressEnd - addressBegin); + const unAllocatedRate = 1 - allocatedRate; + + const standardH = api.size([0, 1])[1]; + const standardY = start[1] - standardH / 2; + + const allocatedY = standardY + standardH * unAllocatedRate; + const allocatedH = standardH * allocatedRate; + + const unAllocatedY = standardY; + const unAllocatedH = standardH - allocatedH; + + const allocatedShape = echarts.graphic.clipRectByRect( + { + x: start[0], + y: allocatedY, + width: end[0] - start[0], + height: allocatedH, + }, + { + x: params.coordSys.x, + y: params.coordSys.y, + width: params.coordSys.width, + height: params.coordSys.height, + }); + + const unAllocatedShape = echarts.graphic.clipRectByRect( + { + x: start[0], + y: unAllocatedY, + width: end[0] - start[0], + height: unAllocatedH, + }, + { + x: params.coordSys.x, + y: params.coordSys.y, + width: params.coordSys.width, + height: params.coordSys.height, + }); + + const ret = { + type: 'group', + children: [ + { + type: 'rect', + shape: allocatedShape, + style: api.style(), + }, + { + type: 'rect', + shape: unAllocatedShape, + style: { + fill: '#000000', + }, + }, + ], + }; + return ret; + }, + data: this.getSeriesData(pageinfos), + encode: { + x: [1, 2], + }, + itemStyle: { + color: getColorFromSpaceName(space_name), + }, + }; + series.push(space_series); + } + return series; + } + + drawChart(index) { + if (index >= this.data.length || index < 0) { + console.error('Invalid index:', index); + return; + } + const option = { + tooltip: { + formatter(params) { + const ret = params.marker + params.value[0] + '
' + + 'address:' + (params.value[1] / MB).toFixed(3) + 'MB' + + '
' + + 'size:' + ((params.value[2] - params.value[1]) / MB).toFixed(3) + + 'MB' + + '
' + + 'allocated:' + (params.value[3] / MB).toFixed(3) + 'MB' + + '
' + + 'wasted:' + params.value[4] + 'B'; + return ret; + }, + }, + grid: { + bottom: 120, + top: 120, + }, + dataZoom: [ + { + type: 'slider', + filterMode: 'weakFilter', + showDataShadow: true, + labelFormatter: '', + }, + { + type: 'inside', + filterMode: 'weakFilter', + }, + ], + legend: { + show: true, + data: kSpaceNames, + top: '6%', + type: 'scroll', + }, + title: { + text: this.getChartTitle(index), + left: 'center', + }, + xAxis: { + name: 'Address offset in heap(MB)', + nameLocation: 'center', + nameTextStyle: { + fontSize: 25, + padding: [30, 0, 50, 0], + }, + type: 'value', + min: 0, + max: 4 * GB, + axisLabel: { + rotate: 0, + formatter(value, index) { + value = value / MB; + value = value.toFixed(3); + return value; + }, + }, + }, + yAxis: { + data: ['Page'], + }, + series: this.getChartSeries(index), + }; + + this.show(); + this.chart.resize(); + this.chart.setOption(option); + this.currentIndex = index; + } +}); diff --git a/deps/v8/tools/heap-layout/heap-size-trend-viewer-template.html b/deps/v8/tools/heap-layout/heap-size-trend-viewer-template.html new file mode 100644 index 00000000000000..cbf2bc711dca04 --- /dev/null +++ b/deps/v8/tools/heap-layout/heap-size-trend-viewer-template.html @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/deps/v8/tools/heap-layout/heap-size-trend-viewer.mjs b/deps/v8/tools/heap-layout/heap-size-trend-viewer.mjs new file mode 100644 index 00000000000000..d7b8737d7f33e3 --- /dev/null +++ b/deps/v8/tools/heap-layout/heap-size-trend-viewer.mjs @@ -0,0 +1,266 @@ +// Copyright 2021 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import {MB} from '../js/helper.mjs'; +import {DOM} from '../js/web-api-helper.mjs'; + +import {getColorFromSpaceName, kSpaceNames} from './space-categories.mjs'; + +class TrendLineHelper { + static re_gc_count = /(?<=(Before|After) GC:)\d+(?=,)/; + static re_allocated = /allocated/; + static re_space_name = /^[a-z_]+_space/; + + static snapshotHeaderToXLabel(header) { + const gc_count = this.re_gc_count.exec(header)[0]; + const alpha = header[0]; + return alpha + gc_count; + } + + static getLineSymbolFromTrendLineName(trend_line_name) { + const is_allocated_line = this.re_allocated.test(trend_line_name); + if (is_allocated_line) { + return 'emptyTriangle'; + } + return 'emptyCircle'; + } + + static getSizeTrendLineName(space_name) { + return space_name + ' size'; + } + + static getAllocatedTrendSizeName(space_name) { + return space_name + ' allocated'; + } + + static getSpaceNameFromTrendLineName(trend_line_name) { + const space_name = this.re_space_name.exec(trend_line_name)[0]; + return space_name; + } +} + +DOM.defineCustomElement('heap-size-trend-viewer', + (templateText) => + class HeapSizeTrendViewer extends HTMLElement { + constructor() { + super(); + const shadowRoot = this.attachShadow({mode: 'open'}); + shadowRoot.innerHTML = templateText; + this.chart = echarts.init(this.$('#chart'), null, { + renderer: 'canvas', + }); + this.chart.getZr().on('click', 'series.line', (params) => { + const pointInPixel = [params.offsetX, params.offsetY]; + const pointInGrid = + this.chart.convertFromPixel({seriesIndex: 0}, pointInPixel); + const xIndex = pointInGrid[0]; + this.dispatchEvent(new CustomEvent('change', { + bubbles: true, + composed: true, + detail: xIndex, + })); + this.setXMarkLine(xIndex); + }); + this.chartXAxisData = null; + this.chartSeriesData = null; + this.currentIndex = 0; + window.addEventListener('resize', () => { + this.chart.resize(); + }); + } + + $(id) { + return this.shadowRoot.querySelector(id); + } + + set data(value) { + this._data = value; + this.stateChanged(); + } + + get data() { + return this._data; + } + + hide() { + this.$('#container').style.display = 'none'; + } + + show() { + this.$('#container').style.display = 'block'; + } + + stateChanged() { + this.initTrendLineNames(); + this.initXAxisDataAndSeries(); + this.drawChart(); + } + + initTrendLineNames() { + this.trend_line_names = []; + for (const space_name of kSpaceNames) { + this.trend_line_names.push( + TrendLineHelper.getSizeTrendLineName(space_name)); + this.trend_line_names.push( + TrendLineHelper.getAllocatedTrendSizeName(space_name)); + } + } + + // X axis represent the moment before or after nth GC : [B1,A1,...Bn,An]. + initXAxisDataAndSeries() { + this.chartXAxisData = []; + this.chartSeriesData = []; + let trend_line_name_data_dict = {}; + + for (const trend_line_name of this.trend_line_names) { + trend_line_name_data_dict[trend_line_name] = []; + } + + // Init x axis data and trend line series. + for (const snapshot of this.data) { + this.chartXAxisData.push( + TrendLineHelper.snapshotHeaderToXLabel(snapshot.header)); + for (const [space_name, pageinfos] of Object.entries(snapshot.data)) { + const size_trend_line_name = + TrendLineHelper.getSizeTrendLineName(space_name); + const allocated_trend_line_name = + TrendLineHelper.getAllocatedTrendSizeName(space_name); + let size_sum = 0; + let allocated_sum = 0; + for (const pageinfo of pageinfos) { + size_sum += pageinfo[2] - pageinfo[1]; + allocated_sum += pageinfo[3]; + } + trend_line_name_data_dict[size_trend_line_name].push(size_sum); + trend_line_name_data_dict[allocated_trend_line_name].push( + allocated_sum); + } + } + + // Init mark line series as the first series + const markline_series = { + name: 'mark-line', + type: 'line', + + markLine: { + silent: true, + symbol: 'none', + label: { + show: false, + }, + lineStyle: { + color: '#333', + }, + data: [ + { + xAxis: 0, + }, + ], + }, + }; + this.chartSeriesData.push(markline_series); + + for (const [trend_line_name, trend_line_data] of Object.entries( + trend_line_name_data_dict)) { + const color = getColorFromSpaceName( + TrendLineHelper.getSpaceNameFromTrendLineName(trend_line_name)); + const trend_line_series = { + name: trend_line_name, + type: 'line', + data: trend_line_data, + lineStyle: { + color: color, + }, + itemStyle: { + color: color, + }, + symbol: TrendLineHelper.getLineSymbolFromTrendLineName(trend_line_name), + symbolSize: 8, + }; + this.chartSeriesData.push(trend_line_series); + } + } + + setXMarkLine(index) { + if (index < 0 || index >= this.data.length) { + console.error('Invalid index:', index); + return; + } + // Set the mark-line series + this.chartSeriesData[0].markLine.data[0].xAxis = index; + this.chart.setOption({ + series: this.chartSeriesData, + }); + this.currentIndex = index; + } + + drawChart() { + const option = { + dataZoom: [ + { + type: 'inside', + filterMode: 'weakFilter', + }, + { + type: 'slider', + filterMode: 'weakFilter', + labelFormatter: '', + }, + ], + title: { + text: 'Size Trend', + left: 'center', + }, + tooltip: { + trigger: 'axis', + position(point, params, dom, rect, size) { + let ret_x = point[0] + 10; + if (point[0] > size.viewSize[0] * 0.7) { + ret_x = point[0] - dom.clientWidth - 10; + } + return [ret_x, '85%']; + }, + formatter(params) { + const colorSpan = (color) => + ''; + let result = '

' + params[0].axisValue + '

'; + params.forEach((item) => { + const xx = '

' + colorSpan(item.color) + ' ' + + item.seriesName + ': ' + (item.data / MB).toFixed(2) + 'MB' + + '

'; + result += xx; + }); + + return result; + }, + }, + legend: { + data: this.trend_line_names, + top: '6%', + type: 'scroll', + }, + + xAxis: { + minInterval: 1, + type: 'category', + boundaryGap: false, + data: this.chartXAxisData, + }, + yAxis: { + type: 'value', + axisLabel: { + formatter(value, index) { + return (value / MB).toFixed(3) + 'MB'; + }, + }, + }, + + series: this.chartSeriesData, + }; + this.show(); + this.chart.resize(); + this.chart.setOption(option); + } +}); diff --git a/deps/v8/tools/heap-layout/index.css b/deps/v8/tools/heap-layout/index.css new file mode 100644 index 00000000000000..53fcf97defca69 --- /dev/null +++ b/deps/v8/tools/heap-layout/index.css @@ -0,0 +1,24 @@ +:root { + --surface-color: #ffffff; + --primary-color: #bb86fc; + --on-primary-color: #000000; + --error-color: #cf6679; + --file-reader-background-color: #ffffff80; + --file-reader-border-color: #000000; +} + +body { + font-family: "Roboto", sans-serif; + margin-left: 5%; + margin-right: 5%; +} + +.button-container { + text-align: center; + display: none; +} + +button { + height: 50px; + width: 100px; +} diff --git a/deps/v8/tools/heap-layout/index.html b/deps/v8/tools/heap-layout/index.html new file mode 100644 index 00000000000000..0f33a730499581 --- /dev/null +++ b/deps/v8/tools/heap-layout/index.html @@ -0,0 +1,72 @@ + + + + + + + + V8 Heap Layout + + + + + + + + + + + + + +

V8 Heap Layout

+ + + +
+ + +
+ +

Heap layout is a HTML-based tool for visualizing V8-internal heap layout.

+

Visualize heap layout that have been gathered using

+
    +
  • --trace-gc-heap-layout on V8
  • + +
+ + + + \ No newline at end of file diff --git a/deps/v8/tools/heap-layout/space-categories.mjs b/deps/v8/tools/heap-layout/space-categories.mjs new file mode 100644 index 00000000000000..95b52ba9cec65d --- /dev/null +++ b/deps/v8/tools/heap-layout/space-categories.mjs @@ -0,0 +1,32 @@ +// Copyright 2021 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +export const kSpaceNames = [ + 'to_space', + 'from_space', + 'old_space', + 'map_space', + 'code_space', + 'large_object_space', + 'new_large_object_space', + 'code_large_object_space', + 'ro_space', +]; + +const kSpaceColors = [ + '#5b8ff9', + '#5ad8a6', + '#5d7092', + '#f6bd16', + '#e8684a', + '#6dc8ec', + '#9270ca', + '#ff9d4d', + '#269a99', +]; + +export function getColorFromSpaceName(space_name) { + const index = kSpaceNames.indexOf(space_name); + return kSpaceColors[index]; +} diff --git a/deps/v8/tools/heap-layout/trace-file-reader.mjs b/deps/v8/tools/heap-layout/trace-file-reader.mjs new file mode 100644 index 00000000000000..880acf9fad22ae --- /dev/null +++ b/deps/v8/tools/heap-layout/trace-file-reader.mjs @@ -0,0 +1,110 @@ +// Copyright 2021 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import {calcOffsetInVMCage} from '../js/helper.mjs'; +import {DOM, FileReader,} from '../js/web-api-helper.mjs'; + +import {kSpaceNames} from './space-categories.mjs'; + +class TraceLogParseHelper { + static re_gc_header = /(Before|After) GC:\d/; + static re_page_info = + /\{owner:.+,address:.+,size:.+,allocated_bytes:.+,wasted_memory:.+\}/; + static re_owner = /(?<=owner:)[a-z_]+_space/; + static re_address = /(?<=address:)0x[a-f0-9]+(?=,)/; + static re_size = /(?<=size:)\d+(?=,)/; + static re_allocated_bytes = /(?<=allocated_bytes:)\d+(?=,)/; + static re_wasted_memory = /(?<=wasted_memory:)\d+(?=})/; + + static matchGCHeader(content) { + return this.re_gc_header.test(content); + } + + static matchPageInfo(content) { + return this.re_page_info.test(content); + } + + static parsePageInfo(content) { + const owner = this.re_owner.exec(content)[0]; + const address = + calcOffsetInVMCage(BigInt(this.re_address.exec(content)[0], 16)); + const size = parseInt(this.re_size.exec(content)[0]); + const allocated_bytes = parseInt(this.re_allocated_bytes.exec(content)[0]); + const wasted_memory = parseInt(this.re_wasted_memory.exec(content)[0]); + const info = [ + owner, + address, + address + size, + allocated_bytes, + wasted_memory, + ]; + return info; + } + + // Create a empty snapshot. + static createSnapShotData() { + let snapshot = {header: null, data: {}}; + for (let space_name of kSpaceNames) { + snapshot.data[space_name] = []; + } + return snapshot; + } + + static createModelFromV8TraceFile(contents) { + let snapshots = []; + let snapshot = this.createSnapShotData(); + + // Fill data info a snapshot, then push it into snapshots. + for (let content of contents) { + if (this.matchGCHeader(content)) { + if (snapshot.header != null) { + snapshots.push(snapshot); + } + snapshot = this.createSnapShotData(); + snapshot.header = content; + continue; + } + + if (this.matchPageInfo(content)) { + let pageinfo = this.parsePageInfo(content); + try { + snapshot.data[pageinfo[0]].push(pageinfo); + } catch (e) { + console.error(e); + } + } + } + // EOL, push the last. + if (snapshot.header != null) { + snapshots.push(snapshot); + } + return snapshots; + } +} + +DOM.defineCustomElement('../js/log-file-reader', 'trace-file-reader', + (templateText) => + class TraceFileReader extends FileReader { + constructor() { + super(templateText); + this.fullDataFromFile = ''; + this.addEventListener('fileuploadchunk', (e) => this.handleLoadChunk(e)); + + this.addEventListener('fileuploadend', (e) => this.handleLoadEnd(e)); + } + + handleLoadChunk(event) { + this.fullDataFromFile += event.detail; + } + + handleLoadEnd(event) { + let contents = this.fullDataFromFile.split('\n'); + let snapshots = TraceLogParseHelper.createModelFromV8TraceFile(contents); + this.dispatchEvent(new CustomEvent('change', { + bubbles: true, + composed: true, + detail: snapshots, + })); + } +}); diff --git a/deps/v8/tools/heap-stats/categories.js b/deps/v8/tools/heap-stats/categories.js index 2bd08fad02dfc8..e4e570c4b40bd0 100644 --- a/deps/v8/tools/heap-stats/categories.js +++ b/deps/v8/tools/heap-stats/categories.js @@ -117,6 +117,7 @@ export const CATEGORIES = new Map([ 'BOILERPLATE_PROPERTY_DICTIONARY_TYPE', 'BYTE_ARRAY_TYPE', 'CALL_HANDLER_INFO_TYPE', + 'CALL_SITE_INFO_TYPE', 'CELL_TYPE', 'CODE_STUBS_TABLE_TYPE', 'CONTEXT_EXTENSION_TYPE', @@ -148,7 +149,6 @@ export const CATEGORIES = new Map([ 'SCRIPT_SHARED_FUNCTION_INFOS_TYPE', 'SERIALIZED_OBJECTS_TYPE', 'SINGLE_CHARACTER_STRING_CACHE_TYPE', - 'STACK_FRAME_INFO_TYPE', 'STRING_SPLIT_CACHE_TYPE', 'STRING_TABLE_TYPE', 'TRANSITION_ARRAY_TYPE', diff --git a/deps/v8/tools/heap-stats/index.html b/deps/v8/tools/heap-stats/index.html index efb74af011b805..9f053a8730f51f 100644 --- a/deps/v8/tools/heap-stats/index.html +++ b/deps/v8/tools/heap-stats/index.html @@ -80,23 +80,32 @@

V8 Heap Statistics

Visualize object statistics that have been gathered using

    -
  • --trace-gc-object-stats on V8
  • +
  • Use --trace-gc-object-stats for V8 and load the contents of stdout
  • Chrome's tracing infrastructure collecting data for the category - v8.gc_stats. + disabled-by-default-v8.gc_stats and directly load the + results.html or trace.json.gzip file.
-

- Note that you only get a data point on major GCs. You can enforce this by - using the --gc-global flag. -

-

- Note that the visualizer needs to run on a web server due to HTML imports - requiring CORS. -

+ + Additional information: +
    +
  • + You only get a data point on major GCs. You can enforce this by + using the --gc-global V8 flag. +
  • +
  • + For more frequent data points you can also the + --gc-interval=$AFTER_N_ALLOCATIONS V8. +
  • +
  • + The visualizer needs to run on a web server due to HTML imports + requiring CORS. +
  • +
      diff --git a/deps/v8/tools/heap-stats/trace-file-reader.js b/deps/v8/tools/heap-stats/trace-file-reader.js index e297723e6fb5a9..ef83b30db11a67 100644 --- a/deps/v8/tools/heap-stats/trace-file-reader.js +++ b/deps/v8/tools/heap-stats/trace-file-reader.js @@ -78,6 +78,27 @@ defineCustomElement('trace-file-reader', (templateText) => }; // Delay the loading a bit to allow for CSS animations to happen. setTimeout(() => reader.readAsArrayBuffer(file), 0); + } else if (file.type == 'text/html') { + // try extracting the data from a results.html file + reader.onload = (e) => { + try { + let html = document.createElement('html'); + html.innerHTML = e.target.result; + for (let dataScript of html.querySelectorAll('#viewer-data')) { + const base64 = dataScript.innerText.slice(1,-1); + const binary = globalThis.atob(base64); + const textResult = pako.inflate(binary, {to: 'string'}); + this.processRawText(file, textResult); + } + this.section.className = 'success'; + this.$('#fileReader').classList.add('done'); + } catch (err) { + console.error(err); + this.section.className = 'failure'; + } + }; + // Delay the loading a bit to allow for CSS animations to happen. + setTimeout(() => reader.readAsText(file), 0); } else { reader.onload = (e) => { try { diff --git a/deps/v8/tools/index.html b/deps/v8/tools/index.html index 53b22f170d549e..dfb0be7b34e40c 100644 --- a/deps/v8/tools/index.html +++ b/deps/v8/tools/index.html @@ -80,6 +80,10 @@

      Welcome to the V8 Tools Landing Page

      Heap Stats
      Visualize heap memory usage.
      +
      +
      Heap Layout
      +
      Visualize heap memory layout.
      +
      Parse Processor
      Analyse parse, compile and first-execution.
      @@ -88,10 +92,6 @@

      Welcome to the V8 Tools Landing Page

      Profview
      Fancy sampling profile viewer.
      -
      -
      Tick Processor
      -
      Simple sampling profile viewer.
      -
      Turbolizer
      Visualise the sea of nodes graph generated by TurboFan.
      diff --git a/deps/v8/tools/js/helper.mjs b/deps/v8/tools/js/helper.mjs new file mode 100644 index 00000000000000..1da31b7e55eb9b --- /dev/null +++ b/deps/v8/tools/js/helper.mjs @@ -0,0 +1,68 @@ +// Copyright 2021 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +export const KB = 1024; +export const MB = KB * KB; +export const GB = MB * KB; +export const kMillis2Seconds = 1 / 1000; +export const kMicro2Milli = 1 / 1000; + +export function formatBytes(bytes, digits = 2) { + const units = ['B', 'KiB', 'MiB', 'GiB']; + const divisor = 1024; + let index = 0; + while (index < units.length && bytes >= divisor) { + index++; + bytes /= divisor; + } + return bytes.toFixed(digits) + units[index]; +} + +export function formatMicroSeconds(micro) { + return (micro * kMicro2Milli).toFixed(1) + 'ms'; +} + +export function formatDurationMicros(micros, secondsDigits = 3) { + return formatDurationMillis(micros * kMicro2Milli, secondsDigits); +} + +export function formatDurationMillis(millis, secondsDigits = 3) { + if (millis < 1000) { + if (millis < 1) { + return (millis / kMicro2Milli).toFixed(1) + 'ns'; + } + return millis.toFixed(2) + 'ms'; + } + let seconds = millis / 1000; + const hours = Math.floor(seconds / 3600); + const minutes = Math.floor((seconds % 3600) / 60); + seconds = seconds % 60; + let buffer = ''; + if (hours > 0) buffer += hours + 'h '; + if (hours > 0 || minutes > 0) buffer += minutes + 'm '; + buffer += seconds.toFixed(secondsDigits) + 's'; + return buffer; +} + +// Get the offset in the 4GB virtual memory cage. +export function calcOffsetInVMCage(address) { + let mask = (1n << 32n) - 1n; + let ret = Number(address & mask); + return ret; +} + +export function delay(time) { + return new Promise(resolver => setTimeout(resolver, time)); +} + +export function defer() { + let resolve_func, reject_func; + const p = new Promise((resolve, reject) => { + resolve_func = resolve; + reject_func = resolve; + }); + p.resolve = resolve_func; + p.reject = reject_func; + return p; +} diff --git a/deps/v8/tools/js/log-file-reader-template.html b/deps/v8/tools/js/log-file-reader-template.html new file mode 100644 index 00000000000000..416c7e33d37d1d --- /dev/null +++ b/deps/v8/tools/js/log-file-reader-template.html @@ -0,0 +1,117 @@ + + + + + + +
      +
      + + Drag and drop a v8.log file into this area, or click to choose from disk. + + +
      +
      +
      +
      +
      +
      +
      diff --git a/deps/v8/tools/js/web-api-helper.mjs b/deps/v8/tools/js/web-api-helper.mjs new file mode 100644 index 00000000000000..8c6ecc1ceb52a6 --- /dev/null +++ b/deps/v8/tools/js/web-api-helper.mjs @@ -0,0 +1,295 @@ +// Copyright 2021 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import {delay, formatBytes} from './helper.mjs'; + +export class V8CustomElement extends HTMLElement { + _updateTimeoutId; + _updateCallback = this.forceUpdate.bind(this); + + constructor(templateText) { + super(); + const shadowRoot = this.attachShadow({mode: 'open'}); + shadowRoot.innerHTML = templateText; + } + + $(id) { + return this.shadowRoot.querySelector(id); + } + + querySelectorAll(query) { + return this.shadowRoot.querySelectorAll(query); + } + + requestUpdate(useAnimation = false) { + if (useAnimation) { + window.cancelAnimationFrame(this._updateTimeoutId); + this._updateTimeoutId = + window.requestAnimationFrame(this._updateCallback); + } else { + // Use timeout tasks to asynchronously update the UI without blocking. + clearTimeout(this._updateTimeoutId); + const kDelayMs = 5; + this._updateTimeoutId = setTimeout(this._updateCallback, kDelayMs); + } + } + + forceUpdate() { + this._updateTimeoutId = undefined; + this._update(); + } + + _update() { + throw Error('Subclass responsibility'); + } + + get isFocused() { + return document.activeElement === this; + } +} + +export class FileReader extends V8CustomElement { + constructor(templateText) { + super(templateText); + this.addEventListener('click', this.handleClick.bind(this)); + this.addEventListener('dragover', this.handleDragOver.bind(this)); + this.addEventListener('drop', this.handleChange.bind(this)); + this.$('#file').addEventListener('change', this.handleChange.bind(this)); + this.fileReader = this.$('#fileReader'); + this.fileReader.addEventListener('keydown', this.handleKeyEvent.bind(this)); + this.progressNode = this.$('#progress'); + this.progressTextNode = this.$('#progressText'); + } + + set error(message) { + this._updateLabel(message); + this.root.className = 'fail'; + } + + _updateLabel(text) { + this.$('#label').innerText = text; + } + + handleKeyEvent(event) { + if (event.key == 'Enter') this.handleClick(event); + } + + handleClick(event) { + this.$('#file').click(); + } + + handleChange(event) { + // Used for drop and file change. + event.preventDefault(); + const host = event.dataTransfer ? event.dataTransfer : event.target; + this.readFile(host.files[0]); + } + + handleDragOver(event) { + event.preventDefault(); + } + + connectedCallback() { + this.fileReader.focus(); + } + + get root() { + return this.$('#root'); + } + + setProgress(progress, processedBytes = 0) { + this.progress = Math.max(0, Math.min(progress, 1)); + this.processedBytes = processedBytes; + } + + updateProgressBar() { + // Create a circular progress bar, starting at 12 o'clock. + this.progressNode.style.backgroundImage = `conic-gradient( + var(--primary-color) 0%, + var(--primary-color) ${this.progress * 100}%, + var(--surface-color) ${this.progress * 100}%)`; + this.progressTextNode.innerText = + this.processedBytes ? formatBytes(this.processedBytes, 1) : ''; + if (this.root.className == 'loading') { + window.requestAnimationFrame(() => this.updateProgressBar()); + } + } + + readFile(file) { + this.dispatchEvent(new CustomEvent('fileuploadstart', { + bubbles: true, + composed: true, + detail: { + progressCallback: this.setProgress.bind(this), + totalSize: file.size, + } + })); + if (!file) { + this.error = 'Failed to load file.'; + return; + } + this.fileReader.blur(); + this.setProgress(0); + this.root.className = 'loading'; + // Delay the loading a bit to allow for CSS animations to happen. + window.requestAnimationFrame(() => this.asyncReadFile(file)); + } + + async asyncReadFile(file) { + this.updateProgressBar(); + const decoder = globalThis.TextDecoderStream; + if (decoder) { + await this._streamFile(file, decoder); + } else { + await this._readFullFile(file); + } + this._updateLabel(`Finished loading '${file.name}'.`); + this.dispatchEvent( + new CustomEvent('fileuploadend', {bubbles: true, composed: true})); + this.root.className = 'done'; + } + + async _readFullFile(file) { + const text = await file.text(); + this._handleFileChunk(text); + } + + async _streamFile(file, decoder) { + const stream = file.stream().pipeThrough(new decoder()); + const reader = stream.getReader(); + let chunk, readerDone; + do { + const readResult = await reader.read(); + chunk = readResult.value; + readerDone = readResult.done; + if (!chunk) break; + this._handleFileChunk(chunk); + // Artificial delay to allow for layout updates. + await delay(5); + } while (!readerDone); + } + + _handleFileChunk(chunk) { + this.dispatchEvent(new CustomEvent('fileuploadchunk', { + bubbles: true, + composed: true, + detail: chunk, + })); + } +} + +export class DOM { + static element(type, options) { + const node = document.createElement(type); + if (options === undefined) return node; + if (typeof options === 'string') { + // Old behaviour: options = class string + node.className = options; + } else if (Array.isArray(options)) { + // Old behaviour: options = class array + DOM.addClasses(node, options); + } else { + // New behaviour: options = attribute dict + for (const [key, value] of Object.entries(options)) { + if (key == 'className') { + node.className = value; + } else if (key == 'classList') { + DOM.addClasses(node, value); + } else if (key == 'textContent') { + node.textContent = value; + } else if (key == 'children') { + for (const child of value) { + node.appendChild(child); + } + } else { + node.setAttribute(key, value); + } + } + } + return node; + } + + static addClasses(node, classes) { + const classList = node.classList; + if (typeof classes === 'string') { + classList.add(classes); + } else { + for (let i = 0; i < classes.length; i++) { + classList.add(classes[i]); + } + } + return node; + } + + static text(string) { + return document.createTextNode(string); + } + + static button(label, clickHandler) { + const button = DOM.element('button'); + button.innerText = label; + if (typeof clickHandler != 'function') { + throw new Error( + `DOM.button: Expected function but got clickHandler=${clickHandler}`); + } + button.onclick = clickHandler; + return button; + } + + static div(options) { + return this.element('div', options); + } + + static span(options) { + return this.element('span', options); + } + + static table(options) { + return this.element('table', options); + } + + static tbody(options) { + return this.element('tbody', options); + } + + static td(textOrNode, className) { + const node = this.element('td'); + if (typeof textOrNode === 'object') { + node.appendChild(textOrNode); + } else if (textOrNode) { + node.innerText = textOrNode; + } + if (className) node.className = className; + return node; + } + + static tr(classes) { + return this.element('tr', classes); + } + + static removeAllChildren(node) { + let range = document.createRange(); + range.selectNodeContents(node); + range.deleteContents(); + } + + static defineCustomElement( + path, nameOrGenerator, maybeGenerator = undefined) { + let generator = nameOrGenerator; + let name = nameOrGenerator; + if (typeof nameOrGenerator == 'function') { + console.assert(maybeGenerator === undefined); + name = path.substring(path.lastIndexOf('/') + 1, path.length); + } else { + console.assert(typeof nameOrGenerator == 'string'); + generator = maybeGenerator; + } + path = path + '-template.html'; + fetch(path) + .then(stream => stream.text()) + .then( + templateText => + customElements.define(name, generator(templateText))); + } +} diff --git a/deps/v8/tools/logreader.mjs b/deps/v8/tools/logreader.mjs index ecd7b573a29da9..d6815733d1f439 100644 --- a/deps/v8/tools/logreader.mjs +++ b/deps/v8/tools/logreader.mjs @@ -32,64 +32,65 @@ // Parses dummy variable for readability; -export const parseString = 'parse-string'; +export function parseString(field) { return field }; export const parseVarArgs = 'parse-var-args'; /** * Base class for processing log files. * - * @param {Array.} dispatchTable A table used for parsing and processing - * log records. * @param {boolean} timedRange Ignore ticks outside timed range. * @param {boolean} pairwiseTimedRange Ignore ticks outside pairs of timer * markers. * @constructor */ export class LogReader { - constructor (dispatchTable, timedRange, pairwiseTimedRange) { - /** - * @type {Array.} - */ - this.dispatchTable_ = dispatchTable; - - /** - * @type {boolean} - */ + constructor(timedRange=false, pairwiseTimedRange=false) { + this.dispatchTable_ = new Map(); this.timedRange_ = timedRange; - - /** - * @type {boolean} - */ this.pairwiseTimedRange_ = pairwiseTimedRange; - if (pairwiseTimedRange) { - this.timedRange_ = true; - } - - /** - * Current line. - * @type {number} - */ + if (pairwiseTimedRange) this.timedRange_ = true; this.lineNum_ = 0; - - /** - * CSV lines parser. - * @type {CsvParser} - */ this.csvParser_ = new CsvParser(); - - /** - * Keeps track of whether we've seen a "current-time" tick yet. - * @type {boolean} - */ + // Variables for tracking of 'current-time' log entries: this.hasSeenTimerMarker_ = false; - - /** - * List of log lines seen since last "current-time" tick. - * @type {Array.} - */ this.logLinesSinceLastTimerMarker_ = []; } +/** + * @param {Object} table A table used for parsing and processing + * log records. + * exampleDispatchTable = { + * "log-entry-XXX": { + * parser: [parseString, parseInt, ..., parseVarArgs], + * processor: this.processXXX.bind(this) + * }, + * ... + * } + */ + setDispatchTable(table) { + if (Object.getPrototypeOf(table) !== null) { + throw new Error("Dispatch expected table.__proto__=null for speedup"); + } + for (let name in table) { + const parser = table[name]; + if (parser === undefined) continue; + if (!parser.isAsync) parser.isAsync = false; + if (!Array.isArray(parser.parsers)) { + throw new Error(`Invalid parsers: dispatchTable['${ + name}'].parsers should be an Array.`); + } + let type = typeof parser.processor; + if (type !== 'function') { + throw new Error(`Invalid processor: typeof dispatchTable['${ + name}'].processor is '${type}' instead of 'function'`); + } + if (!parser.processor.name.startsWith('bound ')) { + parser.processor = parser.processor.bind(this); + } + this.dispatchTable_.set(name, parser); + } + } + /** * A thin wrapper around shell's 'read' function showing a file name on error. @@ -118,7 +119,18 @@ export class LogReader { * @param {string} chunk A portion of log. */ async processLogChunk(chunk) { - await this.processLog_(chunk.split('\n')); + let end = chunk.length; + let current = 0; + // Kept for debugging in case of parsing errors. + let lineNumber = 0; + while (current < end) { + const next = chunk.indexOf("\n", current); + if (next === -1) break; + lineNumber++; + const line = chunk.substring(current, next); + current = next + 1; + await this.processLogLine(line); + } } /** @@ -162,33 +174,24 @@ export class LogReader { processStack(pc, func, stack) { const fullStack = func ? [pc, func] : [pc]; let prevFrame = pc; - for (let i = 0, n = stack.length; i < n; ++i) { + const length = stack.length; + for (let i = 0, n = length; i < n; ++i) { const frame = stack[i]; - const firstChar = frame.charAt(0); - if (firstChar == '+' || firstChar == '-') { + const firstChar = frame[0]; + if (firstChar === '+' || firstChar === '-') { // An offset from the previous frame. prevFrame += parseInt(frame, 16); fullStack.push(prevFrame); // Filter out possible 'overflow' string. - } else if (firstChar != 'o') { + } else if (firstChar !== 'o') { fullStack.push(parseInt(frame, 16)); } else { - console.error(`dropping: ${frame}`); + console.error(`Dropping unknown tick frame: ${frame}`); } } return fullStack; } - /** - * Returns whether a particular dispatch must be skipped. - * - * @param {!Object} dispatch Dispatch record. - * @return {boolean} True if dispatch must be skipped. - */ - skipDispatch(dispatch) { - return false; - } - /** * Does a dispatch of a log record. * @@ -198,31 +201,23 @@ export class LogReader { async dispatchLogRow_(fields) { // Obtain the dispatch. const command = fields[0]; - const dispatch = this.dispatchTable_[command]; + const dispatch = this.dispatchTable_.get(command); if (dispatch === undefined) return; - if (dispatch === null || this.skipDispatch(dispatch)) { - return; - } - + const parsers = dispatch.parsers; + const length = parsers.length; // Parse fields. - const parsedFields = []; - for (let i = 0; i < dispatch.parsers.length; ++i) { - const parser = dispatch.parsers[i]; - if (parser === parseString) { - parsedFields.push(fields[1 + i]); - } else if (typeof parser == 'function') { - parsedFields.push(parser(fields[1 + i])); - } else if (parser === parseVarArgs) { - // var-args - parsedFields.push(fields.slice(1 + i)); + const parsedFields = new Array(length); + for (let i = 0; i < length; ++i) { + const parser = parsers[i]; + if (parser === parseVarArgs) { + parsedFields[i] = fields.slice(1 + i); break; } else { - throw new Error(`Invalid log field parser: ${parser}`); + parsedFields[i] = parser(fields[1 + i]); } } - // Run the processor. - await dispatch.processor.apply(this, parsedFields); + await dispatch.processor(...parsedFields); } /** diff --git a/deps/v8/tools/mb/PRESUBMIT.py b/deps/v8/tools/mb/PRESUBMIT.py index 6f5307c63eb3c0..150de90e886304 100644 --- a/deps/v8/tools/mb/PRESUBMIT.py +++ b/deps/v8/tools/mb/PRESUBMIT.py @@ -3,6 +3,10 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +# This line is 'magic' in that git-cl looks for it to decide whether to +# use Python3 instead of Python2 when running the code in this file. +USE_PYTHON3 = True + def _CommonChecks(input_api, output_api): results = [] @@ -12,8 +16,9 @@ def _CommonChecks(input_api, output_api): results.extend(input_api.RunTests(pylint_checks)) # Run the MB unittests. - results.extend(input_api.canned_checks.RunUnitTestsInDirectory( - input_api, output_api, '.', [ r'^.+_unittest\.py$'])) + results.extend( + input_api.canned_checks.RunUnitTestsInDirectory(input_api, output_api, + '.', [r'^.+_test\.py$'])) # Validate the format of the mb_config.pyl file. cmd = [input_api.python_executable, 'mb.py', 'validate'] @@ -23,12 +28,10 @@ def _CommonChecks(input_api, output_api): cmd=cmd, kwargs=kwargs, message=output_api.PresubmitError)])) + is_mb_config = (lambda filepath: 'mb_config.pyl' in filepath.LocalPath()) results.extend( input_api.canned_checks.CheckLongLines( - input_api, - output_api, - maxlen=80, - source_file_filter=lambda x: 'mb_config.pyl' in x.LocalPath())) + input_api, output_api, maxlen=80, source_file_filter=is_mb_config)) return results diff --git a/deps/v8/tools/mb/mb.py b/deps/v8/tools/mb/mb.py index 408e2b566a0575..1ba74b747b853d 100755 --- a/deps/v8/tools/mb/mb.py +++ b/deps/v8/tools/mb/mb.py @@ -1150,6 +1150,8 @@ def Call(self, cmd, env=None, buffer_output=True): stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env) out, err = p.communicate() + out = out.decode('utf-8') + err = err.decode('utf-8') else: p = subprocess.Popen(cmd, shell=False, cwd=self.chromium_src_dir, env=env) diff --git a/deps/v8/tools/mb/mb_test.py b/deps/v8/tools/mb/mb_test.py new file mode 100755 index 00000000000000..fb59c4aa29aad6 --- /dev/null +++ b/deps/v8/tools/mb/mb_test.py @@ -0,0 +1,677 @@ +#!/usr/bin/python +# Copyright 2016 the V8 project authors. All rights reserved. +# Copyright 2015 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +"""Tests for mb.py.""" + +import json +import StringIO +import os +import sys +import unittest + +import mb + + +class FakeMBW(mb.MetaBuildWrapper): + + def __init__(self, win32=False): + super(FakeMBW, self).__init__() + + # Override vars for test portability. + if win32: + self.chromium_src_dir = 'c:\\fake_src' + self.default_config = 'c:\\fake_src\\tools\\mb\\mb_config.pyl' + self.default_isolate_map = ('c:\\fake_src\\testing\\buildbot\\' + 'gn_isolate_map.pyl') + self.platform = 'win32' + self.executable = 'c:\\python\\python.exe' + self.sep = '\\' + else: + self.chromium_src_dir = '/fake_src' + self.default_config = '/fake_src/tools/mb/mb_config.pyl' + self.default_isolate_map = '/fake_src/testing/buildbot/gn_isolate_map.pyl' + self.executable = '/usr/bin/python' + self.platform = 'linux2' + self.sep = '/' + + self.files = {} + self.calls = [] + self.cmds = [] + self.cross_compile = None + self.out = '' + self.err = '' + self.rmdirs = [] + + def ExpandUser(self, path): + return '$HOME/%s' % path + + def Exists(self, path): + return self.files.get(path) is not None + + def MaybeMakeDirectory(self, path): + self.files[path] = True + + def PathJoin(self, *comps): + return self.sep.join(comps) + + def ReadFile(self, path): + return self.files[path] + + def WriteFile(self, path, contents, force_verbose=False): + if self.args.dryrun or self.args.verbose or force_verbose: + self.Print('\nWriting """\\\n%s""" to %s.\n' % (contents, path)) + self.files[path] = contents + + def Call(self, cmd, env=None, buffer_output=True): + self.calls.append(cmd) + if self.cmds: + return self.cmds.pop(0) + return 0, '', '' + + def Print(self, *args, **kwargs): + sep = kwargs.get('sep', ' ') + end = kwargs.get('end', '\n') + f = kwargs.get('file', sys.stdout) + if f == sys.stderr: + self.err += sep.join(args) + end + else: + self.out += sep.join(args) + end + + def TempFile(self, mode='w'): + return FakeFile(self.files) + + def RemoveFile(self, path): + del self.files[path] + + def RemoveDirectory(self, path): + self.rmdirs.append(path) + files_to_delete = [f for f in self.files if f.startswith(path)] + for f in files_to_delete: + self.files[f] = None + + +class FakeFile(object): + + def __init__(self, files): + self.name = '/tmp/file' + self.buf = '' + self.files = files + + def write(self, contents): + self.buf += contents + + def close(self): + self.files[self.name] = self.buf + + +TEST_CONFIG = """\ +{ + 'builder_groups': { + 'chromium': {}, + 'fake_builder_group': { + 'fake_builder': 'rel_bot', + 'fake_debug_builder': 'debug_goma', + 'fake_args_bot': '//build/args/bots/fake_builder_group/fake_args_bot.gn', + 'fake_multi_phase': { 'phase_1': 'phase_1', 'phase_2': 'phase_2'}, + 'fake_args_file': 'args_file_goma', + 'fake_args_file_twice': 'args_file_twice', + }, + }, + 'configs': { + 'args_file_goma': ['args_file', 'goma'], + 'args_file_twice': ['args_file', 'args_file'], + 'rel_bot': ['rel', 'goma', 'fake_feature1'], + 'debug_goma': ['debug', 'goma'], + 'phase_1': ['phase_1'], + 'phase_2': ['phase_2'], + }, + 'mixins': { + 'fake_feature1': { + 'gn_args': 'enable_doom_melon=true', + }, + 'goma': { + 'gn_args': 'use_goma=true', + }, + 'args_file': { + 'args_file': '//build/args/fake.gn', + }, + 'phase_1': { + 'gn_args': 'phase=1', + }, + 'phase_2': { + 'gn_args': 'phase=2', + }, + 'rel': { + 'gn_args': 'is_debug=false', + }, + 'debug': { + 'gn_args': 'is_debug=true', + }, + }, +} +""" + +TRYSERVER_CONFIG = """\ +{ + 'builder_groups': { + 'not_a_tryserver': { + 'fake_builder': 'fake_config', + }, + 'tryserver.chromium.linux': { + 'try_builder': 'fake_config', + }, + 'tryserver.chromium.mac': { + 'try_builder2': 'fake_config', + }, + }, + 'luci_tryservers': { + 'luci_tryserver1': ['luci_builder1'], + 'luci_tryserver2': ['luci_builder2'], + }, + 'configs': {}, + 'mixins': {}, +} +""" + + +class UnitTest(unittest.TestCase): + + def fake_mbw(self, files=None, win32=False): + mbw = FakeMBW(win32=win32) + mbw.files.setdefault(mbw.default_config, TEST_CONFIG) + mbw.files.setdefault( + mbw.ToAbsPath('//testing/buildbot/gn_isolate_map.pyl'), '''{ + "foo_unittests": { + "label": "//foo:foo_unittests", + "type": "console_test_launcher", + "args": [], + }, + }''') + mbw.files.setdefault( + mbw.ToAbsPath('//build/args/bots/fake_builder_group/fake_args_bot.gn'), + 'is_debug = false\n') + if files: + for path, contents in files.items(): + mbw.files[path] = contents + return mbw + + def check(self, args, mbw=None, files=None, out=None, err=None, ret=None): + if not mbw: + mbw = self.fake_mbw(files) + + actual_ret = mbw.Main(args) + + self.assertEqual(actual_ret, ret) + if out is not None: + self.assertEqual(mbw.out, out) + if err is not None: + self.assertEqual(mbw.err, err) + return mbw + + def test_analyze(self): + files = { + '/tmp/in.json': + '''{\ + "files": ["foo/foo_unittest.cc"], + "test_targets": ["foo_unittests"], + "additional_compile_targets": ["all"] + }''', + '/tmp/out.json.gn': + '''{\ + "status": "Found dependency", + "compile_targets": ["//foo:foo_unittests"], + "test_targets": ["//foo:foo_unittests"] + }''' + } + + mbw = self.fake_mbw(files) + mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') + + self.check([ + 'analyze', '-c', 'debug_goma', '//out/Default', '/tmp/in.json', + '/tmp/out.json' + ], + mbw=mbw, + ret=0) + out = json.loads(mbw.files['/tmp/out.json']) + self.assertEqual( + out, { + 'status': 'Found dependency', + 'compile_targets': ['foo:foo_unittests'], + 'test_targets': ['foo_unittests'] + }) + + def test_analyze_optimizes_compile_for_all(self): + files = { + '/tmp/in.json': + '''{\ + "files": ["foo/foo_unittest.cc"], + "test_targets": ["foo_unittests"], + "additional_compile_targets": ["all"] + }''', + '/tmp/out.json.gn': + '''{\ + "status": "Found dependency", + "compile_targets": ["//foo:foo_unittests", "all"], + "test_targets": ["//foo:foo_unittests"] + }''' + } + + mbw = self.fake_mbw(files) + mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') + + self.check([ + 'analyze', '-c', 'debug_goma', '//out/Default', '/tmp/in.json', + '/tmp/out.json' + ], + mbw=mbw, + ret=0) + out = json.loads(mbw.files['/tmp/out.json']) + + # check that 'foo_unittests' is not in the compile_targets + self.assertEqual(['all'], out['compile_targets']) + + def test_analyze_handles_other_toolchains(self): + files = { + '/tmp/in.json': + '''{\ + "files": ["foo/foo_unittest.cc"], + "test_targets": ["foo_unittests"], + "additional_compile_targets": ["all"] + }''', + '/tmp/out.json.gn': + '''{\ + "status": "Found dependency", + "compile_targets": ["//foo:foo_unittests", + "//foo:foo_unittests(bar)"], + "test_targets": ["//foo:foo_unittests"] + }''' + } + + mbw = self.fake_mbw(files) + mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') + + self.check([ + 'analyze', '-c', 'debug_goma', '//out/Default', '/tmp/in.json', + '/tmp/out.json' + ], + mbw=mbw, + ret=0) + out = json.loads(mbw.files['/tmp/out.json']) + + # crbug.com/736215: If GN returns a label containing a toolchain, + # MB (and Ninja) don't know how to handle it; to work around this, + # we give up and just build everything we were asked to build. The + # output compile_targets should include all of the input test_targets and + # additional_compile_targets. + self.assertEqual(['all', 'foo_unittests'], out['compile_targets']) + + def test_analyze_handles_way_too_many_results(self): + too_many_files = ', '.join(['"//foo:foo%d"' % i for i in range(4 * 1024)]) + files = { + '/tmp/in.json': + '''{\ + "files": ["foo/foo_unittest.cc"], + "test_targets": ["foo_unittests"], + "additional_compile_targets": ["all"] + }''', + '/tmp/out.json.gn': + '''{\ + "status": "Found dependency", + "compile_targets": [''' + too_many_files + '''], + "test_targets": ["//foo:foo_unittests"] + }''' + } + + mbw = self.fake_mbw(files) + mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') + + self.check([ + 'analyze', '-c', 'debug_goma', '//out/Default', '/tmp/in.json', + '/tmp/out.json' + ], + mbw=mbw, + ret=0) + out = json.loads(mbw.files['/tmp/out.json']) + + # If GN returns so many compile targets that we might have command-line + # issues, we should give up and just build everything we were asked to + # build. The output compile_targets should include all of the input + # test_targets and additional_compile_targets. + self.assertEqual(['all', 'foo_unittests'], out['compile_targets']) + + def test_gen(self): + mbw = self.fake_mbw() + self.check(['gen', '-c', 'debug_goma', '//out/Default', '-g', '/goma'], + mbw=mbw, + ret=0) + self.assertMultiLineEqual(mbw.files['/fake_src/out/Default/args.gn'], + ('goma_dir = "/goma"\n' + 'is_debug = true\n' + 'use_goma = true\n')) + + # Make sure we log both what is written to args.gn and the command line. + self.assertIn('Writing """', mbw.out) + self.assertIn('/fake_src/buildtools/linux64/gn gen //out/Default --check', + mbw.out) + + mbw = self.fake_mbw(win32=True) + self.check(['gen', '-c', 'debug_goma', '-g', 'c:\\goma', '//out/Debug'], + mbw=mbw, + ret=0) + self.assertMultiLineEqual(mbw.files['c:\\fake_src\\out\\Debug\\args.gn'], + ('goma_dir = "c:\\\\goma"\n' + 'is_debug = true\n' + 'use_goma = true\n')) + self.assertIn( + 'c:\\fake_src\\buildtools\\win\\gn.exe gen //out/Debug ' + '--check\n', mbw.out) + + mbw = self.fake_mbw() + self.check([ + 'gen', '-m', 'fake_builder_group', '-b', 'fake_args_bot', '//out/Debug' + ], + mbw=mbw, + ret=0) + # TODO(almuthanna): disable test temporarily to + # solve this issue https://crbug.com/v8/11102 + # self.assertEqual( + # mbw.files['/fake_src/out/Debug/args.gn'], + # 'import("//build/args/bots/fake_builder_group/fake_args_bot.gn")\n') + + def test_gen_args_file_mixins(self): + mbw = self.fake_mbw() + self.check([ + 'gen', '-m', 'fake_builder_group', '-b', 'fake_args_file', '//out/Debug' + ], + mbw=mbw, + ret=0) + + self.assertEqual(mbw.files['/fake_src/out/Debug/args.gn'], + ('import("//build/args/fake.gn")\n' + 'use_goma = true\n')) + + mbw = self.fake_mbw() + self.check([ + 'gen', '-m', 'fake_builder_group', '-b', 'fake_args_file_twice', + '//out/Debug' + ], + mbw=mbw, + ret=1) + + def test_gen_fails(self): + mbw = self.fake_mbw() + mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '') + self.check(['gen', '-c', 'debug_goma', '//out/Default'], mbw=mbw, ret=1) + + def test_gen_swarming(self): + files = { + '/tmp/swarming_targets': + 'base_unittests\n', + '/fake_src/testing/buildbot/gn_isolate_map.pyl': + ("{'base_unittests': {" + " 'label': '//base:base_unittests'," + " 'type': 'raw'," + " 'args': []," + "}}\n"), + '/fake_src/out/Default/base_unittests.runtime_deps': + ("base_unittests\n"), + } + mbw = self.fake_mbw(files) + self.check([ + 'gen', '-c', 'debug_goma', '--swarming-targets-file', + '/tmp/swarming_targets', '//out/Default' + ], + mbw=mbw, + ret=0) + self.assertIn('/fake_src/out/Default/base_unittests.isolate', mbw.files) + self.assertIn('/fake_src/out/Default/base_unittests.isolated.gen.json', + mbw.files) + + def test_gen_swarming_script(self): + files = { + '/tmp/swarming_targets': + 'cc_perftests\n', + '/fake_src/testing/buildbot/gn_isolate_map.pyl': + ("{'cc_perftests': {" + " 'label': '//cc:cc_perftests'," + " 'type': 'script'," + " 'script': '/fake_src/out/Default/test_script.py'," + " 'args': []," + "}}\n"), + 'c:\\fake_src\out\Default\cc_perftests.exe.runtime_deps': + ("cc_perftests\n"), + } + mbw = self.fake_mbw(files=files, win32=True) + self.check([ + 'gen', '-c', 'debug_goma', '--swarming-targets-file', + '/tmp/swarming_targets', '--isolate-map-file', + '/fake_src/testing/buildbot/gn_isolate_map.pyl', '//out/Default' + ], + mbw=mbw, + ret=0) + self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolate', mbw.files) + self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolated.gen.json', + mbw.files) + + def test_multiple_isolate_maps(self): + files = { + '/tmp/swarming_targets': + 'cc_perftests\n', + '/fake_src/testing/buildbot/gn_isolate_map.pyl': + ("{'cc_perftests': {" + " 'label': '//cc:cc_perftests'," + " 'type': 'raw'," + " 'args': []," + "}}\n"), + '/fake_src/testing/buildbot/gn_isolate_map2.pyl': + ("{'cc_perftests2': {" + " 'label': '//cc:cc_perftests'," + " 'type': 'raw'," + " 'args': []," + "}}\n"), + 'c:\\fake_src\out\Default\cc_perftests.exe.runtime_deps': + ("cc_perftests\n"), + } + mbw = self.fake_mbw(files=files, win32=True) + self.check([ + 'gen', '-c', 'debug_goma', '--swarming-targets-file', + '/tmp/swarming_targets', '--isolate-map-file', + '/fake_src/testing/buildbot/gn_isolate_map.pyl', '--isolate-map-file', + '/fake_src/testing/buildbot/gn_isolate_map2.pyl', '//out/Default' + ], + mbw=mbw, + ret=0) + self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolate', mbw.files) + self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolated.gen.json', + mbw.files) + + def test_duplicate_isolate_maps(self): + files = { + '/tmp/swarming_targets': + 'cc_perftests\n', + '/fake_src/testing/buildbot/gn_isolate_map.pyl': + ("{'cc_perftests': {" + " 'label': '//cc:cc_perftests'," + " 'type': 'raw'," + " 'args': []," + "}}\n"), + '/fake_src/testing/buildbot/gn_isolate_map2.pyl': + ("{'cc_perftests': {" + " 'label': '//cc:cc_perftests'," + " 'type': 'raw'," + " 'args': []," + "}}\n"), + 'c:\\fake_src\out\Default\cc_perftests.exe.runtime_deps': + ("cc_perftests\n"), + } + mbw = self.fake_mbw(files=files, win32=True) + # Check that passing duplicate targets into mb fails. + self.check([ + 'gen', '-c', 'debug_goma', '--swarming-targets-file', + '/tmp/swarming_targets', '--isolate-map-file', + '/fake_src/testing/buildbot/gn_isolate_map.pyl', '--isolate-map-file', + '/fake_src/testing/buildbot/gn_isolate_map2.pyl', '//out/Default' + ], + mbw=mbw, + ret=1) + + def test_isolate(self): + files = { + '/fake_src/out/Default/toolchain.ninja': + "", + '/fake_src/testing/buildbot/gn_isolate_map.pyl': + ("{'base_unittests': {" + " 'label': '//base:base_unittests'," + " 'type': 'raw'," + " 'args': []," + "}}\n"), + '/fake_src/out/Default/base_unittests.runtime_deps': + ("base_unittests\n"), + } + self.check( + ['isolate', '-c', 'debug_goma', '//out/Default', 'base_unittests'], + files=files, + ret=0) + + # test running isolate on an existing build_dir + files['/fake_src/out/Default/args.gn'] = 'is_debug = True\n' + self.check(['isolate', '//out/Default', 'base_unittests'], + files=files, + ret=0) + + self.check(['isolate', '//out/Default', 'base_unittests'], + files=files, + ret=0) + + def test_run(self): + files = { + '/fake_src/testing/buildbot/gn_isolate_map.pyl': + ("{'base_unittests': {" + " 'label': '//base:base_unittests'," + " 'type': 'raw'," + " 'args': []," + "}}\n"), + '/fake_src/out/Default/base_unittests.runtime_deps': + ("base_unittests\n"), + } + self.check(['run', '-c', 'debug_goma', '//out/Default', 'base_unittests'], + files=files, + ret=0) + + def test_lookup(self): + self.check(['lookup', '-c', 'debug_goma'], + ret=0, + out=('\n' + 'Writing """\\\n' + 'is_debug = true\n' + 'use_goma = true\n' + '""" to _path_/args.gn.\n\n' + '/fake_src/buildtools/linux64/gn gen _path_\n')) + + def test_quiet_lookup(self): + self.check(['lookup', '-c', 'debug_goma', '--quiet'], + ret=0, + out=('is_debug = true\n' + 'use_goma = true\n')) + + def test_lookup_goma_dir_expansion(self): + self.check(['lookup', '-c', 'rel_bot', '-g', '/foo'], + ret=0, + out=('\n' + 'Writing """\\\n' + 'enable_doom_melon = true\n' + 'goma_dir = "/foo"\n' + 'is_debug = false\n' + 'use_goma = true\n' + '""" to _path_/args.gn.\n\n' + '/fake_src/buildtools/linux64/gn gen _path_\n')) + + def test_help(self): + orig_stdout = sys.stdout + try: + sys.stdout = StringIO.StringIO() + self.assertRaises(SystemExit, self.check, ['-h']) + self.assertRaises(SystemExit, self.check, ['help']) + self.assertRaises(SystemExit, self.check, ['help', 'gen']) + finally: + sys.stdout = orig_stdout + + def test_multiple_phases(self): + # Check that not passing a --phase to a multi-phase builder fails. + mbw = self.check( + ['lookup', '-m', 'fake_builder_group', '-b', 'fake_multi_phase'], ret=1) + self.assertIn('Must specify a build --phase', mbw.out) + + # Check that passing a --phase to a single-phase builder fails. + mbw = self.check([ + 'lookup', '-m', 'fake_builder_group', '-b', 'fake_builder', '--phase', + 'phase_1' + ], + ret=1) + self.assertIn('Must not specify a build --phase', mbw.out) + + # Check that passing a wrong phase key to a multi-phase builder fails. + mbw = self.check([ + 'lookup', '-m', 'fake_builder_group', '-b', 'fake_multi_phase', + '--phase', 'wrong_phase' + ], + ret=1) + self.assertIn('Phase wrong_phase doesn\'t exist', mbw.out) + + # Check that passing a correct phase key to a multi-phase builder passes. + mbw = self.check([ + 'lookup', '-m', 'fake_builder_group', '-b', 'fake_multi_phase', + '--phase', 'phase_1' + ], + ret=0) + self.assertIn('phase = 1', mbw.out) + + mbw = self.check([ + 'lookup', '-m', 'fake_builder_group', '-b', 'fake_multi_phase', + '--phase', 'phase_2' + ], + ret=0) + self.assertIn('phase = 2', mbw.out) + + def test_recursive_lookup(self): + files = { + '/fake_src/build/args/fake.gn': ('enable_doom_melon = true\n' + 'enable_antidoom_banana = true\n') + } + self.check([ + 'lookup', '-m', 'fake_builder_group', '-b', 'fake_args_file', + '--recursive' + ], + files=files, + ret=0, + out=('enable_antidoom_banana = true\n' + 'enable_doom_melon = true\n' + 'use_goma = true\n')) + + def test_validate(self): + mbw = self.fake_mbw() + self.check(['validate'], mbw=mbw, ret=0) + + def test_buildbucket(self): + mbw = self.fake_mbw() + mbw.files[mbw.default_config] = TRYSERVER_CONFIG + self.check(['gerrit-buildbucket-config'], + mbw=mbw, + ret=0, + out=('# This file was generated using ' + '"tools/mb/mb.py gerrit-buildbucket-config".\n' + '[bucket "luci.luci_tryserver1"]\n' + '\tbuilder = luci_builder1\n' + '[bucket "luci.luci_tryserver2"]\n' + '\tbuilder = luci_builder2\n' + '[bucket "builder_group.tryserver.chromium.linux"]\n' + '\tbuilder = try_builder\n' + '[bucket "builder_group.tryserver.chromium.mac"]\n' + '\tbuilder = try_builder2\n')) + + +if __name__ == '__main__': + unittest.main() diff --git a/deps/v8/tools/mb/mb_unittest.py b/deps/v8/tools/mb/mb_unittest.py deleted file mode 100755 index 86d9cd403b603e..00000000000000 --- a/deps/v8/tools/mb/mb_unittest.py +++ /dev/null @@ -1,626 +0,0 @@ -#!/usr/bin/python -# Copyright 2016 the V8 project authors. All rights reserved. -# Copyright 2015 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -"""Tests for mb.py.""" - -import json -import StringIO -import os -import sys -import unittest - -import mb - - -class FakeMBW(mb.MetaBuildWrapper): - def __init__(self, win32=False): - super(FakeMBW, self).__init__() - - # Override vars for test portability. - if win32: - self.chromium_src_dir = 'c:\\fake_src' - self.default_config = 'c:\\fake_src\\tools\\mb\\mb_config.pyl' - self.default_isolate_map = ('c:\\fake_src\\testing\\buildbot\\' - 'gn_isolate_map.pyl') - self.platform = 'win32' - self.executable = 'c:\\python\\python.exe' - self.sep = '\\' - else: - self.chromium_src_dir = '/fake_src' - self.default_config = '/fake_src/tools/mb/mb_config.pyl' - self.default_isolate_map = '/fake_src/testing/buildbot/gn_isolate_map.pyl' - self.executable = '/usr/bin/python' - self.platform = 'linux2' - self.sep = '/' - - self.files = {} - self.calls = [] - self.cmds = [] - self.cross_compile = None - self.out = '' - self.err = '' - self.rmdirs = [] - - def ExpandUser(self, path): - return '$HOME/%s' % path - - def Exists(self, path): - return self.files.get(path) is not None - - def MaybeMakeDirectory(self, path): - self.files[path] = True - - def PathJoin(self, *comps): - return self.sep.join(comps) - - def ReadFile(self, path): - return self.files[path] - - def WriteFile(self, path, contents, force_verbose=False): - if self.args.dryrun or self.args.verbose or force_verbose: - self.Print('\nWriting """\\\n%s""" to %s.\n' % (contents, path)) - self.files[path] = contents - - def Call(self, cmd, env=None, buffer_output=True): - self.calls.append(cmd) - if self.cmds: - return self.cmds.pop(0) - return 0, '', '' - - def Print(self, *args, **kwargs): - sep = kwargs.get('sep', ' ') - end = kwargs.get('end', '\n') - f = kwargs.get('file', sys.stdout) - if f == sys.stderr: - self.err += sep.join(args) + end - else: - self.out += sep.join(args) + end - - def TempFile(self, mode='w'): - return FakeFile(self.files) - - def RemoveFile(self, path): - del self.files[path] - - def RemoveDirectory(self, path): - self.rmdirs.append(path) - files_to_delete = [f for f in self.files if f.startswith(path)] - for f in files_to_delete: - self.files[f] = None - - -class FakeFile(object): - def __init__(self, files): - self.name = '/tmp/file' - self.buf = '' - self.files = files - - def write(self, contents): - self.buf += contents - - def close(self): - self.files[self.name] = self.buf - - -TEST_CONFIG = """\ -{ - 'builder_groups': { - 'chromium': {}, - 'fake_builder_group': { - 'fake_builder': 'rel_bot', - 'fake_debug_builder': 'debug_goma', - 'fake_args_bot': '//build/args/bots/fake_builder_group/fake_args_bot.gn', - 'fake_multi_phase': { 'phase_1': 'phase_1', 'phase_2': 'phase_2'}, - 'fake_args_file': 'args_file_goma', - 'fake_args_file_twice': 'args_file_twice', - }, - }, - 'configs': { - 'args_file_goma': ['args_file', 'goma'], - 'args_file_twice': ['args_file', 'args_file'], - 'rel_bot': ['rel', 'goma', 'fake_feature1'], - 'debug_goma': ['debug', 'goma'], - 'phase_1': ['phase_1'], - 'phase_2': ['phase_2'], - }, - 'mixins': { - 'fake_feature1': { - 'gn_args': 'enable_doom_melon=true', - }, - 'goma': { - 'gn_args': 'use_goma=true', - }, - 'args_file': { - 'args_file': '//build/args/fake.gn', - }, - 'phase_1': { - 'gn_args': 'phase=1', - }, - 'phase_2': { - 'gn_args': 'phase=2', - }, - 'rel': { - 'gn_args': 'is_debug=false', - }, - 'debug': { - 'gn_args': 'is_debug=true', - }, - }, -} -""" - - -TRYSERVER_CONFIG = """\ -{ - 'builder_groups': { - 'not_a_tryserver': { - 'fake_builder': 'fake_config', - }, - 'tryserver.chromium.linux': { - 'try_builder': 'fake_config', - }, - 'tryserver.chromium.mac': { - 'try_builder2': 'fake_config', - }, - }, - 'luci_tryservers': { - 'luci_tryserver1': ['luci_builder1'], - 'luci_tryserver2': ['luci_builder2'], - }, - 'configs': {}, - 'mixins': {}, -} -""" - - -class UnitTest(unittest.TestCase): - def fake_mbw(self, files=None, win32=False): - mbw = FakeMBW(win32=win32) - mbw.files.setdefault(mbw.default_config, TEST_CONFIG) - mbw.files.setdefault( - mbw.ToAbsPath('//testing/buildbot/gn_isolate_map.pyl'), - '''{ - "foo_unittests": { - "label": "//foo:foo_unittests", - "type": "console_test_launcher", - "args": [], - }, - }''') - mbw.files.setdefault( - mbw.ToAbsPath('//build/args/bots/fake_builder_group/fake_args_bot.gn'), - 'is_debug = false\n') - if files: - for path, contents in files.items(): - mbw.files[path] = contents - return mbw - - def check(self, args, mbw=None, files=None, out=None, err=None, ret=None): - if not mbw: - mbw = self.fake_mbw(files) - - actual_ret = mbw.Main(args) - - self.assertEqual(actual_ret, ret) - if out is not None: - self.assertEqual(mbw.out, out) - if err is not None: - self.assertEqual(mbw.err, err) - return mbw - - def test_analyze(self): - files = {'/tmp/in.json': '''{\ - "files": ["foo/foo_unittest.cc"], - "test_targets": ["foo_unittests"], - "additional_compile_targets": ["all"] - }''', - '/tmp/out.json.gn': '''{\ - "status": "Found dependency", - "compile_targets": ["//foo:foo_unittests"], - "test_targets": ["//foo:foo_unittests"] - }'''} - - mbw = self.fake_mbw(files) - mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') - - self.check(['analyze', '-c', 'debug_goma', '//out/Default', - '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) - out = json.loads(mbw.files['/tmp/out.json']) - self.assertEqual(out, { - 'status': 'Found dependency', - 'compile_targets': ['foo:foo_unittests'], - 'test_targets': ['foo_unittests'] - }) - - def test_analyze_optimizes_compile_for_all(self): - files = {'/tmp/in.json': '''{\ - "files": ["foo/foo_unittest.cc"], - "test_targets": ["foo_unittests"], - "additional_compile_targets": ["all"] - }''', - '/tmp/out.json.gn': '''{\ - "status": "Found dependency", - "compile_targets": ["//foo:foo_unittests", "all"], - "test_targets": ["//foo:foo_unittests"] - }'''} - - mbw = self.fake_mbw(files) - mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') - - self.check(['analyze', '-c', 'debug_goma', '//out/Default', - '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) - out = json.loads(mbw.files['/tmp/out.json']) - - # check that 'foo_unittests' is not in the compile_targets - self.assertEqual(['all'], out['compile_targets']) - - def test_analyze_handles_other_toolchains(self): - files = {'/tmp/in.json': '''{\ - "files": ["foo/foo_unittest.cc"], - "test_targets": ["foo_unittests"], - "additional_compile_targets": ["all"] - }''', - '/tmp/out.json.gn': '''{\ - "status": "Found dependency", - "compile_targets": ["//foo:foo_unittests", - "//foo:foo_unittests(bar)"], - "test_targets": ["//foo:foo_unittests"] - }'''} - - mbw = self.fake_mbw(files) - mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') - - self.check(['analyze', '-c', 'debug_goma', '//out/Default', - '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) - out = json.loads(mbw.files['/tmp/out.json']) - - # crbug.com/736215: If GN returns a label containing a toolchain, - # MB (and Ninja) don't know how to handle it; to work around this, - # we give up and just build everything we were asked to build. The - # output compile_targets should include all of the input test_targets and - # additional_compile_targets. - self.assertEqual(['all', 'foo_unittests'], out['compile_targets']) - - def test_analyze_handles_way_too_many_results(self): - too_many_files = ', '.join(['"//foo:foo%d"' % i for i in range(4 * 1024)]) - files = {'/tmp/in.json': '''{\ - "files": ["foo/foo_unittest.cc"], - "test_targets": ["foo_unittests"], - "additional_compile_targets": ["all"] - }''', - '/tmp/out.json.gn': '''{\ - "status": "Found dependency", - "compile_targets": [''' + too_many_files + '''], - "test_targets": ["//foo:foo_unittests"] - }'''} - - mbw = self.fake_mbw(files) - mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '') - - self.check(['analyze', '-c', 'debug_goma', '//out/Default', - '/tmp/in.json', '/tmp/out.json'], mbw=mbw, ret=0) - out = json.loads(mbw.files['/tmp/out.json']) - - # If GN returns so many compile targets that we might have command-line - # issues, we should give up and just build everything we were asked to - # build. The output compile_targets should include all of the input - # test_targets and additional_compile_targets. - self.assertEqual(['all', 'foo_unittests'], out['compile_targets']) - - def test_gen(self): - mbw = self.fake_mbw() - self.check(['gen', '-c', 'debug_goma', '//out/Default', '-g', '/goma'], - mbw=mbw, ret=0) - self.assertMultiLineEqual(mbw.files['/fake_src/out/Default/args.gn'], - ('goma_dir = "/goma"\n' - 'is_debug = true\n' - 'use_goma = true\n')) - - # Make sure we log both what is written to args.gn and the command line. - self.assertIn('Writing """', mbw.out) - self.assertIn('/fake_src/buildtools/linux64/gn gen //out/Default --check', - mbw.out) - - mbw = self.fake_mbw(win32=True) - self.check(['gen', '-c', 'debug_goma', '-g', 'c:\\goma', '//out/Debug'], - mbw=mbw, ret=0) - self.assertMultiLineEqual(mbw.files['c:\\fake_src\\out\\Debug\\args.gn'], - ('goma_dir = "c:\\\\goma"\n' - 'is_debug = true\n' - 'use_goma = true\n')) - self.assertIn('c:\\fake_src\\buildtools\\win\\gn.exe gen //out/Debug ' - '--check\n', mbw.out) - - mbw = self.fake_mbw() - self.check(['gen', '-m', 'fake_builder_group', '-b', 'fake_args_bot', - '//out/Debug'], - mbw=mbw, ret=0) - # TODO(almuthanna): disable test temporarily to - # solve this issue https://crbug.com/v8/11102 - # self.assertEqual( - # mbw.files['/fake_src/out/Debug/args.gn'], - # 'import("//build/args/bots/fake_builder_group/fake_args_bot.gn")\n') - - def test_gen_args_file_mixins(self): - mbw = self.fake_mbw() - self.check(['gen', '-m', 'fake_builder_group', '-b', 'fake_args_file', - '//out/Debug'], mbw=mbw, ret=0) - - self.assertEqual( - mbw.files['/fake_src/out/Debug/args.gn'], - ('import("//build/args/fake.gn")\n' - 'use_goma = true\n')) - - mbw = self.fake_mbw() - self.check(['gen', '-m', 'fake_builder_group', '-b', 'fake_args_file_twice', - '//out/Debug'], mbw=mbw, ret=1) - - def test_gen_fails(self): - mbw = self.fake_mbw() - mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '') - self.check(['gen', '-c', 'debug_goma', '//out/Default'], mbw=mbw, ret=1) - - def test_gen_swarming(self): - files = { - '/tmp/swarming_targets': 'base_unittests\n', - '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( - "{'base_unittests': {" - " 'label': '//base:base_unittests'," - " 'type': 'raw'," - " 'args': []," - "}}\n" - ), - '/fake_src/out/Default/base_unittests.runtime_deps': ( - "base_unittests\n" - ), - } - mbw = self.fake_mbw(files) - self.check(['gen', - '-c', 'debug_goma', - '--swarming-targets-file', '/tmp/swarming_targets', - '//out/Default'], mbw=mbw, ret=0) - self.assertIn('/fake_src/out/Default/base_unittests.isolate', - mbw.files) - self.assertIn('/fake_src/out/Default/base_unittests.isolated.gen.json', - mbw.files) - - def test_gen_swarming_script(self): - files = { - '/tmp/swarming_targets': 'cc_perftests\n', - '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( - "{'cc_perftests': {" - " 'label': '//cc:cc_perftests'," - " 'type': 'script'," - " 'script': '/fake_src/out/Default/test_script.py'," - " 'args': []," - "}}\n" - ), - 'c:\\fake_src\out\Default\cc_perftests.exe.runtime_deps': ( - "cc_perftests\n" - ), - } - mbw = self.fake_mbw(files=files, win32=True) - self.check(['gen', - '-c', 'debug_goma', - '--swarming-targets-file', '/tmp/swarming_targets', - '--isolate-map-file', - '/fake_src/testing/buildbot/gn_isolate_map.pyl', - '//out/Default'], mbw=mbw, ret=0) - self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolate', - mbw.files) - self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolated.gen.json', - mbw.files) - - - def test_multiple_isolate_maps(self): - files = { - '/tmp/swarming_targets': 'cc_perftests\n', - '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( - "{'cc_perftests': {" - " 'label': '//cc:cc_perftests'," - " 'type': 'raw'," - " 'args': []," - "}}\n" - ), - '/fake_src/testing/buildbot/gn_isolate_map2.pyl': ( - "{'cc_perftests2': {" - " 'label': '//cc:cc_perftests'," - " 'type': 'raw'," - " 'args': []," - "}}\n" - ), - 'c:\\fake_src\out\Default\cc_perftests.exe.runtime_deps': ( - "cc_perftests\n" - ), - } - mbw = self.fake_mbw(files=files, win32=True) - self.check(['gen', - '-c', 'debug_goma', - '--swarming-targets-file', '/tmp/swarming_targets', - '--isolate-map-file', - '/fake_src/testing/buildbot/gn_isolate_map.pyl', - '--isolate-map-file', - '/fake_src/testing/buildbot/gn_isolate_map2.pyl', - '//out/Default'], mbw=mbw, ret=0) - self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolate', - mbw.files) - self.assertIn('c:\\fake_src\\out\\Default\\cc_perftests.isolated.gen.json', - mbw.files) - - - def test_duplicate_isolate_maps(self): - files = { - '/tmp/swarming_targets': 'cc_perftests\n', - '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( - "{'cc_perftests': {" - " 'label': '//cc:cc_perftests'," - " 'type': 'raw'," - " 'args': []," - "}}\n" - ), - '/fake_src/testing/buildbot/gn_isolate_map2.pyl': ( - "{'cc_perftests': {" - " 'label': '//cc:cc_perftests'," - " 'type': 'raw'," - " 'args': []," - "}}\n" - ), - 'c:\\fake_src\out\Default\cc_perftests.exe.runtime_deps': ( - "cc_perftests\n" - ), - } - mbw = self.fake_mbw(files=files, win32=True) - # Check that passing duplicate targets into mb fails. - self.check(['gen', - '-c', 'debug_goma', - '--swarming-targets-file', '/tmp/swarming_targets', - '--isolate-map-file', - '/fake_src/testing/buildbot/gn_isolate_map.pyl', - '--isolate-map-file', - '/fake_src/testing/buildbot/gn_isolate_map2.pyl', - '//out/Default'], mbw=mbw, ret=1) - - def test_isolate(self): - files = { - '/fake_src/out/Default/toolchain.ninja': "", - '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( - "{'base_unittests': {" - " 'label': '//base:base_unittests'," - " 'type': 'raw'," - " 'args': []," - "}}\n" - ), - '/fake_src/out/Default/base_unittests.runtime_deps': ( - "base_unittests\n" - ), - } - self.check(['isolate', '-c', 'debug_goma', '//out/Default', - 'base_unittests'], files=files, ret=0) - - # test running isolate on an existing build_dir - files['/fake_src/out/Default/args.gn'] = 'is_debug = True\n' - self.check(['isolate', '//out/Default', 'base_unittests'], - files=files, ret=0) - - self.check(['isolate', '//out/Default', 'base_unittests'], - files=files, ret=0) - - def test_run(self): - files = { - '/fake_src/testing/buildbot/gn_isolate_map.pyl': ( - "{'base_unittests': {" - " 'label': '//base:base_unittests'," - " 'type': 'raw'," - " 'args': []," - "}}\n" - ), - '/fake_src/out/Default/base_unittests.runtime_deps': ( - "base_unittests\n" - ), - } - self.check(['run', '-c', 'debug_goma', '//out/Default', - 'base_unittests'], files=files, ret=0) - - def test_lookup(self): - self.check(['lookup', '-c', 'debug_goma'], ret=0, - out=('\n' - 'Writing """\\\n' - 'is_debug = true\n' - 'use_goma = true\n' - '""" to _path_/args.gn.\n\n' - '/fake_src/buildtools/linux64/gn gen _path_\n')) - - def test_quiet_lookup(self): - self.check(['lookup', '-c', 'debug_goma', '--quiet'], ret=0, - out=('is_debug = true\n' - 'use_goma = true\n')) - - def test_lookup_goma_dir_expansion(self): - self.check(['lookup', '-c', 'rel_bot', '-g', '/foo'], ret=0, - out=('\n' - 'Writing """\\\n' - 'enable_doom_melon = true\n' - 'goma_dir = "/foo"\n' - 'is_debug = false\n' - 'use_goma = true\n' - '""" to _path_/args.gn.\n\n' - '/fake_src/buildtools/linux64/gn gen _path_\n')) - - def test_help(self): - orig_stdout = sys.stdout - try: - sys.stdout = StringIO.StringIO() - self.assertRaises(SystemExit, self.check, ['-h']) - self.assertRaises(SystemExit, self.check, ['help']) - self.assertRaises(SystemExit, self.check, ['help', 'gen']) - finally: - sys.stdout = orig_stdout - - def test_multiple_phases(self): - # Check that not passing a --phase to a multi-phase builder fails. - mbw = self.check(['lookup', '-m', 'fake_builder_group', - '-b', 'fake_multi_phase'], - ret=1) - self.assertIn('Must specify a build --phase', mbw.out) - - # Check that passing a --phase to a single-phase builder fails. - mbw = self.check(['lookup', '-m', 'fake_builder_group', - '-b', 'fake_builder', - '--phase', 'phase_1'], ret=1) - self.assertIn('Must not specify a build --phase', mbw.out) - - # Check that passing a wrong phase key to a multi-phase builder fails. - mbw = self.check(['lookup', '-m', 'fake_builder_group', - '-b', 'fake_multi_phase', - '--phase', 'wrong_phase'], ret=1) - self.assertIn('Phase wrong_phase doesn\'t exist', mbw.out) - - # Check that passing a correct phase key to a multi-phase builder passes. - mbw = self.check(['lookup', '-m', 'fake_builder_group', - '-b', 'fake_multi_phase', - '--phase', 'phase_1'], ret=0) - self.assertIn('phase = 1', mbw.out) - - mbw = self.check(['lookup', '-m', 'fake_builder_group', - '-b', 'fake_multi_phase', - '--phase', 'phase_2'], ret=0) - self.assertIn('phase = 2', mbw.out) - - def test_recursive_lookup(self): - files = { - '/fake_src/build/args/fake.gn': ( - 'enable_doom_melon = true\n' - 'enable_antidoom_banana = true\n' - ) - } - self.check(['lookup', '-m', 'fake_builder_group', '-b', 'fake_args_file', - '--recursive'], files=files, ret=0, - out=('enable_antidoom_banana = true\n' - 'enable_doom_melon = true\n' - 'use_goma = true\n')) - - def test_validate(self): - mbw = self.fake_mbw() - self.check(['validate'], mbw=mbw, ret=0) - - def test_buildbucket(self): - mbw = self.fake_mbw() - mbw.files[mbw.default_config] = TRYSERVER_CONFIG - self.check(['gerrit-buildbucket-config'], mbw=mbw, - ret=0, - out=('# This file was generated using ' - '"tools/mb/mb.py gerrit-buildbucket-config".\n' - '[bucket "luci.luci_tryserver1"]\n' - '\tbuilder = luci_builder1\n' - '[bucket "luci.luci_tryserver2"]\n' - '\tbuilder = luci_builder2\n' - '[bucket "builder_group.tryserver.chromium.linux"]\n' - '\tbuilder = try_builder\n' - '[bucket "builder_group.tryserver.chromium.mac"]\n' - '\tbuilder = try_builder2\n')) - - -if __name__ == '__main__': - unittest.main() diff --git a/deps/v8/tools/parse-processor.mjs b/deps/v8/tools/parse-processor.mjs index e604908db89b87..fc5868b008e7be 100644 --- a/deps/v8/tools/parse-processor.mjs +++ b/deps/v8/tools/parse-processor.mjs @@ -746,7 +746,7 @@ function startOf(timestamp, time) { export class ParseProcessor extends LogReader { constructor() { super(); - this.dispatchTable_ = { + this.setDispatchTable({ // Avoid accidental leaking of __proto__ properties and force this object // to be in dictionary-mode. __proto__: null, @@ -780,7 +780,7 @@ export class ParseProcessor extends LogReader { parsers: [parseInt, parseString, parseString], processor: this.processScriptSource }, - }; + }); this.functionEventDispatchTable_ = { // Avoid accidental leaking of __proto__ properties and force this object // to be in dictionary-mode. @@ -820,20 +820,7 @@ export class ParseProcessor extends LogReader { } processString(string) { - let end = string.length; - let current = 0; - let next = 0; - let line; - let i = 0; - let entry; - while (current < end) { - next = string.indexOf("\n", current); - if (next === -1) break; - i++; - line = string.substring(current, next); - current = next + 1; - this.processLogLine(line); - } + this.processLogChunk(string); this.postProcess(); } diff --git a/deps/v8/tools/predictable_wrapper.py b/deps/v8/tools/predictable_wrapper.py index ad5adf7d297f79..ea80653c86b813 100644 --- a/deps/v8/tools/predictable_wrapper.py +++ b/deps/v8/tools/predictable_wrapper.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2017 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -31,10 +31,16 @@ # Predictable mode works only when run on the host os. command.setup(utils.GuessOS(), None) +def maybe_decode(message): + if not isinstance(message, str): + return message.decode() + return message + + def main(args): def allocation_str(stdout): for line in reversed((stdout or '').splitlines()): - if line.startswith('### Allocations = '): + if maybe_decode(line).startswith('### Allocations = '): return line return None diff --git a/deps/v8/tools/process-wasm-compilation-times.py b/deps/v8/tools/process-wasm-compilation-times.py index 5002fc00e23d1e..37c5998657aa9c 100755 --- a/deps/v8/tools/process-wasm-compilation-times.py +++ b/deps/v8/tools/process-wasm-compilation-times.py @@ -70,13 +70,13 @@ def AddTFLine(self, words): self.has_tf = True # 0 1 2 3 4 5 6 7 8 9 10 11 # Compiled function #6 using TurboFan, took 0 ms and 14440 / 44656 - # 12 13 14 15 16 17 - # max/total bytes, codesize 24 name wasm-function#6 + # 12 13 14 15 16 17 18 19 + # max/total bytes; bodysize 12 codesize 24 name wasm-function#6 self.time_tf = int(words[6]) self.mem_tf_max = int(words[9]) self.mem_tf_total = int(words[11]) - self.size_tf = int(words[15]) - self.name = words[17] + self.size_tf = int(words[17]) + self.name = words[19] def AddLiftoffLine(self, words): assert self.index == words[2], "wrong function" @@ -109,7 +109,8 @@ def __str__(self): with open(sys.argv[1], "r") as f: for line in f.readlines(): words = line.strip().split(" ") - if words[0] != "Compiled": continue + if words[0] != "Compiled" or words[1] != "function": + continue name = words[2] RegisterName(name) if name in funcs_dict: diff --git a/deps/v8/tools/profile.mjs b/deps/v8/tools/profile.mjs index 5f0b1667ec0ae4..ba2a523fb51d59 100644 --- a/deps/v8/tools/profile.mjs +++ b/deps/v8/tools/profile.mjs @@ -234,6 +234,35 @@ export class Script { } +const kOffsetPairRegex = /C([0-9]+)O([0-9]+)/g; +class SourcePositionTable { + constructor(encodedTable) { + this._offsets = []; + while (true) { + const regexResult = kOffsetPairRegex.exec(encodedTable); + if (!regexResult) break; + const codeOffset = parseInt(regexResult[1]); + const scriptOffset = parseInt(regexResult[2]); + if (isNaN(codeOffset) || isNaN(scriptOffset)) continue; + this._offsets.push({code: codeOffset, script: scriptOffset}); + } + } + + getScriptOffset(codeOffset) { + if (codeOffset < 0) { + throw new Exception(`Invalid codeOffset=${codeOffset}, should be >= 0`); + } + for (let i = this.offsetTable.length - 1; i >= 0; i--) { + const offset = this._offsets[i]; + if (offset.code <= codeOffset) { + return offset.script; + } + } + return this._offsets[0].script; + } +} + + class SourceInfo { script; start; @@ -243,13 +272,16 @@ class SourceInfo { fns; disassemble; - setSourcePositionInfo(script, startPos, endPos, sourcePositionTable, inliningPositions, inlinedFunctions) { + setSourcePositionInfo( + script, startPos, endPos, sourcePositionTableData, inliningPositions, + inlinedFunctions) { this.script = script; this.start = startPos; this.end = endPos; - this.positions = sourcePositionTable; + this.positions = sourcePositionTableData; this.inlined = inliningPositions; this.fns = inlinedFunctions; + this.sourcePositionTable = new SourcePositionTable(sourcePositionTableData); } setDisassemble(code) { @@ -261,6 +293,10 @@ class SourceInfo { } } +const kProfileOperationMove = 0; +const kProfileOperationDelete = 1; +const kProfileOperationTick = 2; + /** * Creates a profile object for processing profiling-related events * and calculating function execution times. @@ -271,9 +307,10 @@ export class Profile { codeMap_ = new CodeMap(); topDownTree_ = new CallTree(); bottomUpTree_ = new CallTree(); - c_entries_ = {}; + c_entries_ = {__proto__:null}; scripts_ = []; urlToScript_ = new Map(); + warnings = new Set(); serializeVMSymbols() { let result = this.codeMap_.getAllStaticEntriesWithAddresses(); @@ -300,9 +337,9 @@ export class Profile { * @enum {number} */ static Operation = { - MOVE: 0, - DELETE: 1, - TICK: 2 + MOVE: kProfileOperationMove, + DELETE: kProfileOperationDelete, + TICK: kProfileOperationTick } /** @@ -314,7 +351,6 @@ export class Profile { COMPILED: 0, IGNITION: 1, BASELINE: 2, - TURBOPROP: 4, TURBOFAN: 5, } @@ -346,8 +382,6 @@ export class Profile { return this.CodeState.IGNITION; case '^': return this.CodeState.BASELINE; - case '+': - return this.CodeState.TURBOPROP; case '*': return this.CodeState.TURBOFAN; } @@ -361,8 +395,6 @@ export class Profile { return "Unopt"; } else if (state === this.CodeState.BASELINE) { return "Baseline"; - } else if (state === this.CodeState.TURBOPROP) { - return "Turboprop"; } else if (state === this.CodeState.TURBOFAN) { return "Opt"; } @@ -459,7 +491,7 @@ export class Profile { // As code and functions are in the same address space, // it is safe to put them in a single code map. let func = this.codeMap_.findDynamicEntryByStartAddress(funcAddr); - if (!func) { + if (func === null) { func = new FunctionEntry(name); this.codeMap_.addCode(funcAddr, func); } else if (func.name !== name) { @@ -467,7 +499,7 @@ export class Profile { func.name = name; } let entry = this.codeMap_.findDynamicEntryByStartAddress(start); - if (entry) { + if (entry !== null) { if (entry.size === size && entry.func === func) { // Entry state has changed. entry.state = state; @@ -476,7 +508,7 @@ export class Profile { entry = null; } } - if (!entry) { + if (entry === null) { entry = new DynamicFuncCodeEntry(size, type, func, state); this.codeMap_.addCode(start, entry); } @@ -493,7 +525,7 @@ export class Profile { try { this.codeMap_.moveCode(from, to); } catch (e) { - this.handleUnknownCode(Profile.Operation.MOVE, from); + this.handleUnknownCode(kProfileOperationMove, from); } } @@ -510,7 +542,7 @@ export class Profile { try { this.codeMap_.deleteCode(start); } catch (e) { - this.handleUnknownCode(Profile.Operation.DELETE, start); + this.handleUnknownCode(kProfileOperationDelete, start); } } @@ -521,16 +553,16 @@ export class Profile { inliningPositions, inlinedFunctions) { const script = this.getOrCreateScript(scriptId); const entry = this.codeMap_.findDynamicEntryByStartAddress(start); - if (!entry) return; + if (entry === null) return; // Resolve the inlined functions list. if (inlinedFunctions.length > 0) { inlinedFunctions = inlinedFunctions.substring(1).split("S"); for (let i = 0; i < inlinedFunctions.length; i++) { const funcAddr = parseInt(inlinedFunctions[i]); const func = this.codeMap_.findDynamicEntryByStartAddress(funcAddr); - if (!func || func.funcId === undefined) { + if (func === null || func.funcId === undefined) { // TODO: fix - console.warn(`Could not find function ${inlinedFunctions[i]}`); + this.warnings.add(`Could not find function ${inlinedFunctions[i]}`); inlinedFunctions[i] = null; } else { inlinedFunctions[i] = func.funcId; @@ -547,7 +579,9 @@ export class Profile { addDisassemble(start, kind, disassemble) { const entry = this.codeMap_.findDynamicEntryByStartAddress(start); - if (entry) this.getOrCreateSourceInfo(entry).setDisassemble(disassemble); + if (entry !== null) { + this.getOrCreateSourceInfo(entry).setDisassemble(disassemble); + } return entry; } @@ -563,7 +597,7 @@ export class Profile { getOrCreateScript(id) { let script = this.scripts_[id]; - if (!script) { + if (script === undefined) { script = new Script(id); this.scripts_[id] = script; } @@ -623,7 +657,7 @@ export class Profile { for (let i = 0; i < stack.length; ++i) { const pc = stack[i]; const entry = this.codeMap_.findEntry(pc); - if (entry) { + if (entry !== null) { entryStack.push(entry); const name = entry.getName(); if (i === 0 && (entry.type === 'CPP' || entry.type === 'SHARED_LIB')) { @@ -636,12 +670,13 @@ export class Profile { nameStack.push(name); } } else { - this.handleUnknownCode(Profile.Operation.TICK, pc, i); + this.handleUnknownCode(kProfileOperationTick, pc, i); if (i === 0) nameStack.push("UNKNOWN"); entryStack.push(pc); } if (look_for_first_c_function && i > 0 && - (!entry || entry.type !== 'CPP') && last_seen_c_function !== '') { + (entry === null || entry.type !== 'CPP') + && last_seen_c_function !== '') { if (this.c_entries_[last_seen_c_function] === undefined) { this.c_entries_[last_seen_c_function] = 0; } @@ -716,7 +751,7 @@ export class Profile { getFlatProfile(opt_label) { const counters = new CallTree(); const rootLabel = opt_label || CallTree.ROOT_NODE_LABEL; - const precs = {}; + const precs = {__proto__:null}; precs[rootLabel] = 0; const root = counters.findOrAddChild(rootLabel); @@ -968,9 +1003,7 @@ class CallTree { * @param {Array} path Call path. */ addPath(path) { - if (path.length == 0) { - return; - } + if (path.length == 0) return; let curr = this.root_; for (let i = 0; i < path.length; ++i) { curr = curr.findOrAddChild(path[i]); @@ -1084,21 +1117,14 @@ class CallTree { * @param {CallTreeNode} opt_parent Node parent. */ class CallTreeNode { - /** - * Node self weight (how many times this node was the last node in - * a call path). - * @type {number} - */ - selfWeight = 0; - - /** - * Node total weight (includes weights of all children). - * @type {number} - */ - totalWeight = 0; - children = {}; constructor(label, opt_parent) { + // Node self weight (how many times this node was the last node in + // a call path). + this.selfWeight = 0; + // Node total weight (includes weights of all children). + this.totalWeight = 0; + this. children = { __proto__:null }; this.label = label; this.parent = opt_parent; } @@ -1141,7 +1167,8 @@ class CallTreeNode { * @param {string} label Child node label. */ findChild(label) { - return this.children[label] || null; + const found = this.children[label]; + return found === undefined ? null : found; } /** @@ -1151,7 +1178,9 @@ class CallTreeNode { * @param {string} label Child node label. */ findOrAddChild(label) { - return this.findChild(label) || this.addChild(label); + const found = this.findChild(label) + if (found === null) return this.addChild(label); + return found; } /** @@ -1171,7 +1200,7 @@ class CallTreeNode { * @param {function(CallTreeNode)} f Visitor function. */ walkUpToRoot(f) { - for (let curr = this; curr != null; curr = curr.parent) { + for (let curr = this; curr !== null; curr = curr.parent) { f(curr); } } diff --git a/deps/v8/tools/release/PRESUBMIT.py b/deps/v8/tools/release/PRESUBMIT.py index a982b2e153aec1..ed4557d98ecaea 100644 --- a/deps/v8/tools/release/PRESUBMIT.py +++ b/deps/v8/tools/release/PRESUBMIT.py @@ -2,9 +2,15 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +# This line is 'magic' in that git-cl looks for it to decide whether to +# use Python3 instead of Python2 when running the code in this file. +USE_PYTHON3 = True + + def _CommonChecks(input_api, output_api): tests = input_api.canned_checks.GetUnitTestsInDirectory( - input_api, output_api, '.', files_to_check=['test_scripts.py$']) + input_api, output_api, '.', files_to_check=['test_scripts.py$'], + run_on_python2=False) return input_api.RunTests(tests) def CheckChangeOnUpload(input_api, output_api): diff --git a/deps/v8/tools/release/auto_push.py b/deps/v8/tools/release/auto_push.py index 4cb968787f8048..eb52e2a316708a 100755 --- a/deps/v8/tools/release/auto_push.py +++ b/deps/v8/tools/release/auto_push.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2013 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -26,9 +26,6 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# for py2/py3 compatibility -from __future__ import print_function - import argparse import json import os diff --git a/deps/v8/tools/release/auto_roll.py b/deps/v8/tools/release/auto_roll.py index 76247b1fb3ee29..5d44505c2ab11e 100755 --- a/deps/v8/tools/release/auto_roll.py +++ b/deps/v8/tools/release/auto_roll.py @@ -3,9 +3,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# for py2/py3 compatibility -from __future__ import print_function - import argparse import os import sys @@ -80,7 +77,7 @@ def RunStep(self): version = self.GetVersionTag(revision) assert version, "Internal error. All recent releases should have a tag" - if SortingKey(self["last_version"]) < SortingKey(version): + if LooseVersion(self["last_version"]) < LooseVersion(version): self["roll"] = revision break else: diff --git a/deps/v8/tools/release/auto_tag.py b/deps/v8/tools/release/auto_tag.py deleted file mode 100755 index 7e77c313d83d17..00000000000000 --- a/deps/v8/tools/release/auto_tag.py +++ /dev/null @@ -1,204 +0,0 @@ -#!/usr/bin/env python -# Copyright 2014 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# for py2/py3 compatibility -from __future__ import print_function - -import argparse -import sys - -from common_includes import * - - -class Preparation(Step): - MESSAGE = "Preparation." - - def RunStep(self): - # TODO(machenbach): Remove after the git switch. - if self.Config("PERSISTFILE_BASENAME") == "/tmp/v8-auto-tag-tempfile": - print("This script is disabled until after the v8 git migration.") - return True - - self.CommonPrepare() - self.PrepareBranch() - self.GitCheckout("main") - self.vc.Pull() - - -class GetTags(Step): - MESSAGE = "Get all V8 tags." - - def RunStep(self): - self.GitCreateBranch(self._config["BRANCHNAME"]) - self["tags"] = self.vc.GetTags() - - -class GetOldestUntaggedVersion(Step): - MESSAGE = "Check if there's a version on bleeding edge without a tag." - - def RunStep(self): - tags = set(self["tags"]) - self["candidate"] = None - self["candidate_version"] = None - self["next"] = None - self["next_version"] = None - - # Iterate backwards through all automatic version updates. - for git_hash in self.GitLog( - format="%H", grep="\\[Auto\\-roll\\] Bump up version to").splitlines(): - - # Get the version. - if not self.GitCheckoutFileSafe(VERSION_FILE, git_hash): - continue - - self.ReadAndPersistVersion() - version = self.ArrayToVersion("") - - # Strip off trailing patch level (tags don't include tag level 0). - if version.endswith(".0"): - version = version[:-2] - - # Clean up checked-out version file. - self.GitCheckoutFileSafe(VERSION_FILE, "HEAD") - - if version in tags: - if self["candidate"]: - # Revision "git_hash" is tagged already and "candidate" was the next - # newer revision without a tag. - break - else: - print("Stop as %s is the latest version and it has been tagged." % - version) - self.CommonCleanup() - return True - else: - # This is the second oldest version without a tag. - self["next"] = self["candidate"] - self["next_version"] = self["candidate_version"] - - # This is the oldest version without a tag. - self["candidate"] = git_hash - self["candidate_version"] = version - - if not self["candidate"] or not self["candidate_version"]: - print("Nothing found to tag.") - self.CommonCleanup() - return True - - print("Candidate for tagging is %s with version %s" % - (self["candidate"], self["candidate_version"])) - - -class GetLKGRs(Step): - MESSAGE = "Get the last lkgrs." - - def RunStep(self): - revision_url = "https://v8-status.appspot.com/revisions?format=json" - status_json = self.ReadURL(revision_url, wait_plan=[5, 20]) - self["lkgrs"] = [entry["revision"] - for entry in json.loads(status_json) if entry["status"]] - - -class CalculateTagRevision(Step): - MESSAGE = "Calculate the revision to tag." - - def LastLKGR(self, min_rev, max_rev): - """Finds the newest lkgr between min_rev (inclusive) and max_rev - (exclusive). - """ - for lkgr in self["lkgrs"]: - # LKGRs are reverse sorted. - if int(min_rev) <= int(lkgr) and int(lkgr) < int(max_rev): - return lkgr - return None - - def RunStep(self): - # Get the lkgr after the tag candidate and before the next tag candidate. - candidate_svn = self.vc.GitSvn(self["candidate"]) - if self["next"]: - next_svn = self.vc.GitSvn(self["next"]) - else: - # Don't include the version change commit itself if there is no upper - # limit yet. - candidate_svn = str(int(candidate_svn) + 1) - next_svn = sys.maxsize - lkgr_svn = self.LastLKGR(candidate_svn, next_svn) - - if not lkgr_svn: - print("There is no lkgr since the candidate version yet.") - self.CommonCleanup() - return True - - # Let's check if the lkgr is at least three hours old. - self["lkgr"] = self.vc.SvnGit(lkgr_svn) - if not self["lkgr"]: - print("Couldn't find git hash for lkgr %s" % lkgr_svn) - self.CommonCleanup() - return True - - lkgr_utc_time = int(self.GitLog(n=1, format="%at", git_hash=self["lkgr"])) - current_utc_time = self._side_effect_handler.GetUTCStamp() - - if current_utc_time < lkgr_utc_time + 10800: - print("Candidate lkgr %s is too recent for tagging." % lkgr_svn) - self.CommonCleanup() - return True - - print("Tagging revision %s with %s" % (lkgr_svn, self["candidate_version"])) - - -class MakeTag(Step): - MESSAGE = "Tag the version." - - def RunStep(self): - if not self._options.dry_run: - self.GitReset(self["lkgr"]) - # FIXME(machenbach): Make this work with the git repo. - self.vc.Tag(self["candidate_version"], - "svn/bleeding_edge", - "This won't work!") - - -class CleanUp(Step): - MESSAGE = "Clean up." - - def RunStep(self): - self.CommonCleanup() - - -class AutoTag(ScriptsBase): - def _PrepareOptions(self, parser): - parser.add_argument("--dry_run", help="Don't tag the new version.", - default=False, action="store_true") - - def _ProcessOptions(self, options): # pragma: no cover - if not options.dry_run and not options.author: - print("Specify your chromium.org email with -a") - return False - options.wait_for_lgtm = False - options.force_readline_defaults = True - options.force_upload = True - return True - - def _Config(self): - return { - "BRANCHNAME": "auto-tag-v8", - "PERSISTFILE_BASENAME": "/tmp/v8-auto-tag-tempfile", - } - - def _Steps(self): - return [ - Preparation, - GetTags, - GetOldestUntaggedVersion, - GetLKGRs, - CalculateTagRevision, - MakeTag, - CleanUp, - ] - - -if __name__ == "__main__": # pragma: no cover - sys.exit(AutoTag().Run()) diff --git a/deps/v8/tools/release/check_clusterfuzz.py b/deps/v8/tools/release/check_clusterfuzz.py deleted file mode 100755 index b1b7e084df0c52..00000000000000 --- a/deps/v8/tools/release/check_clusterfuzz.py +++ /dev/null @@ -1,231 +0,0 @@ -#!/usr/bin/env python -# Copyright 2014 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -""" -Script to check for new clusterfuzz issues since the last rolled v8 revision. - -Returns a json list with test case IDs if any. - -Security considerations: The security key and request data must never be -written to public logs. Public automated callers of this script should -suppress stdout and stderr and only process contents of the results_file. -""" - -# for py2/py3 compatibility -from __future__ import print_function - -import argparse -import httplib -import json -import os -import re -import sys -import urllib -import urllib2 - - -# Constants to git repos. -BASE_URL = "https://chromium.googlesource.com" -DEPS_LOG = BASE_URL + "/chromium/src/+log/main/DEPS?format=JSON" - -# Constants for retrieving v8 rolls. -CRREV = "https://cr-rev.appspot.com/_ah/api/crrev/v1/commit/%s" -V8_COMMIT_RE = re.compile( - r"^Update V8 to version \d+\.\d+\.\d+ \(based on ([a-fA-F0-9]+)\)\..*") - -# Constants for the clusterfuzz backend. -HOSTNAME = "backend-dot-cluster-fuzz.appspot.com" - -# Crash patterns. -V8_INTERNAL_RE = re.compile(r"^v8::internal.*") -ANY_RE = re.compile(r".*") - -# List of all api requests. -BUG_SPECS = [ - { - "args": { - "job_type": "linux_asan_chrome_v8", - "reproducible": "True", - "open": "True", - "bug_information": "", - }, - "crash_state": V8_INTERNAL_RE, - }, - { - "args": { - "job_type": "linux_asan_d8", - "reproducible": "True", - "open": "True", - "bug_information": "", - }, - "crash_state": ANY_RE, - }, - { - "args": { - "job_type": "linux_asan_d8_dbg", - "reproducible": "True", - "open": "True", - "bug_information": "", - }, - "crash_state": ANY_RE, - }, - { - "args": { - "job_type": "linux_asan_d8_ignition_dbg", - "reproducible": "True", - "open": "True", - "bug_information": "", - }, - "crash_state": ANY_RE, - }, - { - "args": { - "job_type": "linux_asan_d8_v8_arm_dbg", - "reproducible": "True", - "open": "True", - "bug_information": "", - }, - "crash_state": ANY_RE, - }, - { - "args": { - "job_type": "linux_asan_d8_ignition_v8_arm_dbg", - "reproducible": "True", - "open": "True", - "bug_information": "", - }, - "crash_state": ANY_RE, - }, - { - "args": { - "job_type": "linux_asan_d8_v8_arm64_dbg", - "reproducible": "True", - "open": "True", - "bug_information": "", - }, - "crash_state": ANY_RE, - }, - { - "args": { - "job_type": "linux_asan_d8_v8_mipsel_dbg", - "reproducible": "True", - "open": "True", - "bug_information": "", - }, - "crash_state": ANY_RE, - }, -] - - -def GetRequest(url): - url_fh = urllib2.urlopen(url, None, 60) - try: - return url_fh.read() - finally: - url_fh.close() - - -def GetLatestV8InChromium(): - """Returns the commit position number of the latest v8 roll in chromium.""" - - # Check currently rolled v8 revision. - result = GetRequest(DEPS_LOG) - if not result: - return None - - # Strip security header and load json. - commits = json.loads(result[5:]) - - git_revision = None - for commit in commits["log"]: - # Get latest commit that matches the v8 roll pattern. Ignore cherry-picks. - match = re.match(V8_COMMIT_RE, commit["message"]) - if match: - git_revision = match.group(1) - break - else: - return None - - # Get commit position number for v8 revision. - result = GetRequest(CRREV % git_revision) - if not result: - return None - - commit = json.loads(result) - assert commit["repo"] == "v8/v8" - return commit["number"] - - -def APIRequest(key, **params): - """Send a request to the clusterfuzz api. - - Returns a json dict of the response. - """ - - params["api_key"] = key - params = urllib.urlencode(params) - - headers = {"Content-type": "application/x-www-form-urlencoded"} - - try: - conn = httplib.HTTPSConnection(HOSTNAME) - conn.request("POST", "/_api/", params, headers) - - response = conn.getresponse() - - # Never leak "data" into public logs. - data = response.read() - except: - raise Exception("ERROR: Connection problem.") - - try: - return json.loads(data) - except: - raise Exception("ERROR: Could not read response. Is your key valid?") - - return None - - -def Main(): - parser = argparse.ArgumentParser() - parser.add_argument("-k", "--key-file", required=True, - help="A file with the clusterfuzz api key.") - parser.add_argument("-r", "--results-file", - help="A file to write the results to.") - options = parser.parse_args() - - # Get api key. The key's content must never be logged. - assert options.key_file - with open(options.key_file) as f: - key = f.read().strip() - assert key - - revision_number = GetLatestV8InChromium() - - results = [] - for spec in BUG_SPECS: - args = dict(spec["args"]) - # Use incremented revision as we're interested in all revision greater than - # what's currently rolled into chromium. - if revision_number: - args["revision_greater_or_equal"] = str(int(revision_number) + 1) - - # Never print issue details in public logs. - issues = APIRequest(key, **args) - assert issues is not None - for issue in issues: - if (re.match(spec["crash_state"], issue["crash_state"]) and - not issue.get('has_bug_flag')): - results.append(issue["id"]) - - if options.results_file: - with open(options.results_file, "w") as f: - f.write(json.dumps(results)) - else: - print(results) - - -if __name__ == "__main__": - sys.exit(Main()) diff --git a/deps/v8/tools/release/common_includes.py b/deps/v8/tools/release/common_includes.py index b61a3e2e27fae8..afbcc9f8377365 100644 --- a/deps/v8/tools/release/common_includes.py +++ b/deps/v8/tools/release/common_includes.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2013 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -26,12 +26,9 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# for py2/py3 compatibility -from __future__ import print_function - import argparse import datetime -import httplib +from distutils.version import LooseVersion import glob import imp import json @@ -43,11 +40,14 @@ import textwrap import time import urllib -import urllib2 from git_recipes import GitRecipesMixin from git_recipes import GitFailedException +import http.client as httplib +import urllib.request as urllib2 + + DAY_IN_SECONDS = 24 * 60 * 60 PUSH_MSG_GIT_RE = re.compile(r".* \(based on (?P[a-fA-F0-9]+)\)$") PUSH_MSG_NEW_RE = re.compile(r"^Version \d+\.\d+\.\d+$") @@ -92,16 +92,6 @@ def MSub(rexp, replacement, text): return re.sub(rexp, replacement, text, flags=re.MULTILINE) -def SortingKey(version): - """Key for sorting version number strings: '3.11' > '3.2.1.1'""" - version_keys = map(int, version.split(".")) - # Fill up to full version numbers to normalize comparison. - while len(version_keys) < 4: # pragma: no cover - version_keys.append(0) - # Fill digits. - return ".".join(map("{0:04d}".format, version_keys)) - - # Some commands don't like the pipe, e.g. calling vi from within the script or # from subscripts like git cl upload. def Command(cmd, args="", prefix="", pipe=True, cwd=None): @@ -113,7 +103,7 @@ def Command(cmd, args="", prefix="", pipe=True, cwd=None): sys.stdout.flush() try: if pipe: - return subprocess.check_output(cmd_line, shell=True, cwd=cwd) + return subprocess.check_output(cmd_line, shell=True, cwd=cwd).decode('utf-8') else: return subprocess.check_call(cmd_line, shell=True, cwd=cwd) except subprocess.CalledProcessError: @@ -256,7 +246,7 @@ def GetBranches(self): lambda s: re.match(r"^branch\-heads/\d+\.\d+$", s), self.step.GitRemotes()) # Remove 'branch-heads/' prefix. - return map(lambda s: s[13:], branches) + return [b[13:] for b in branches] def MainBranch(self): return "main" @@ -557,7 +547,7 @@ def GetRecentReleases(self, max_age): int(time_now - max_age)).strip() # Filter out revisions who's tag is off by one or more commits. - return filter(lambda r: self.GetVersionTag(r), revisions.splitlines()) + return list(filter(self.GetVersionTag, revisions.splitlines())) def GetLatestVersion(self): # Use cached version if available. @@ -571,7 +561,7 @@ def GetLatestVersion(self): only_version_tags = NormalizeVersionTags(all_tags) version = sorted(only_version_tags, - key=SortingKey, reverse=True)[0] + key=LooseVersion, reverse=True)[0] self["latest_version"] = version return version diff --git a/deps/v8/tools/release/create_release.py b/deps/v8/tools/release/create_release.py index d1a066f00b6171..37e9e8673c6d7d 100755 --- a/deps/v8/tools/release/create_release.py +++ b/deps/v8/tools/release/create_release.py @@ -1,19 +1,18 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2015 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# for py2/py3 compatibility -from __future__ import print_function - import argparse import os import sys import tempfile -import urllib2 from common_includes import * +import urllib.request as urllib2 + + class Preparation(Step): MESSAGE = "Preparation." @@ -48,7 +47,7 @@ def RunStep(self): # Use the highest version from main or from tags to determine the new # version. authoritative_version = sorted( - [main_version, latest_version], key=SortingKey)[1] + [main_version, latest_version], key=LooseVersion)[1] self.StoreVersion(authoritative_version, "authoritative_") # Variables prefixed with 'new_' contain the new version numbers for the diff --git a/deps/v8/tools/release/git_recipes.py b/deps/v8/tools/release/git_recipes.py index a90266aa7146df..865e13bf31a120 100644 --- a/deps/v8/tools/release/git_recipes.py +++ b/deps/v8/tools/release/git_recipes.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2014 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are diff --git a/deps/v8/tools/release/list_deprecated.py b/deps/v8/tools/release/list_deprecated.py index e25a5d713be43a..3549ecd427e785 100755 --- a/deps/v8/tools/release/list_deprecated.py +++ b/deps/v8/tools/release/list_deprecated.py @@ -30,13 +30,13 @@ def __init__(self, path): self.blame_list = self.get_blame_list() @classmethod - def get_api_header_files(clazz, options): + def get_api_header_files(cls, options): files = subprocess.check_output( ['git', 'ls-tree', '--name-only', '-r', 'HEAD', options.include_dir], encoding='UTF-8') - files = filter(lambda l: l.endswith('.h'), files.splitlines()) + files = map(Path, filter(lambda l: l.endswith('.h'), files.splitlines())) with Pool(processes=24) as pool: - return pool.map(HeaderFile, files) + return pool.map(cls, files) def extract_version(self, hash): if hash in VERSION_CACHE: @@ -129,14 +129,22 @@ def filter_and_print(self, macro, options): content = line[start:pos].strip().replace('""', '') deprecated.append((index + 1, commit_datetime, commit_hash, content)) index = index + 1 - if len(deprecated) == 0: return for linenumber, commit_datetime, commit_hash, content in deprecated: - commit_date = commit_datetime.date() - file_position = (f"{self.path}:{linenumber}").ljust(40) - v8_version = self.extract_version(commit_hash) - print(f"{file_position} v{v8_version} {commit_date} {commit_hash[:8]}" - f" {content}") - return len(deprecated) + self.print_details(linenumber, commit_datetime, commit_hash, content) + + def print_details(self, linenumber, commit_datetime, commit_hash, content): + commit_date = commit_datetime.date() + file_position = (f"{self.path}:{linenumber}").ljust(40) + v8_version = f"v{self.extract_version(commit_hash)}".rjust(5) + print(f"{file_position} {v8_version} {commit_date} {commit_hash[:8]}" + f" {content}") + + def print_v8_version(self, options): + commit_hash, commit_datetime = subprocess.check_output( + ['git', 'log', '-1', '--format=%H%n%ct', self.path], + encoding='UTF-8').splitlines() + commit_datetime = datetime.fromtimestamp(int(commit_datetime)) + self.print_details(11, commit_datetime, commit_hash, content="") def parse_options(args): @@ -163,10 +171,17 @@ def parse_options(args): def main(args): options = parse_options(args) + + print("# CURRENT V8 VERSION:") + version = HeaderFile(Path(options.include_dir) / 'v8-version.h') + version.print_v8_version(options) + header_files = HeaderFile.get_api_header_files(options) + print("\n") print("# V8_DEPRECATE_SOON:") for header in header_files: header.filter_and_print("V8_DEPRECATE_SOON", options) + print("\n") print("# V8_DEPRECATED:") for header in header_files: diff --git a/deps/v8/tools/release/merge_to_branch.py b/deps/v8/tools/release/merge_to_branch.py index 08a36125f8d385..ca5b2ce67461f2 100755 --- a/deps/v8/tools/release/merge_to_branch.py +++ b/deps/v8/tools/release/merge_to_branch.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2014 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -26,9 +26,6 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# for py2/py3 compatibility -from __future__ import print_function - import argparse from collections import OrderedDict import sys diff --git a/deps/v8/tools/release/roll_merge.py b/deps/v8/tools/release/roll_merge.py index d25f95e3971afe..d1abe56eddf457 100755 --- a/deps/v8/tools/release/roll_merge.py +++ b/deps/v8/tools/release/roll_merge.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2014 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -26,9 +26,6 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# for py2/py3 compatibility -from __future__ import print_function - import argparse from collections import OrderedDict import sys diff --git a/deps/v8/tools/release/script_test.py b/deps/v8/tools/release/script_test.py index 0f345b7fa838c6..a0899911c6d3b8 100755 --- a/deps/v8/tools/release/script_test.py +++ b/deps/v8/tools/release/script_test.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2014 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -29,9 +29,6 @@ # Wraps test execution with a coverage analysis. To get the best speed, the # native python coverage version >= 3.7.1 should be installed. -# for py2/py3 compatibility -from __future__ import print_function - import coverage import os import unittest diff --git a/deps/v8/tools/release/search_related_commits.py b/deps/v8/tools/release/search_related_commits.py deleted file mode 100755 index 48e6ae25922dec..00000000000000 --- a/deps/v8/tools/release/search_related_commits.py +++ /dev/null @@ -1,221 +0,0 @@ -#!/usr/bin/env python -# Copyright 2015 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# for py2/py3 compatibility -from __future__ import print_function - -import argparse -import operator -import os -import re -from sets import Set -from subprocess import Popen, PIPE -import sys - -def search_all_related_commits( - git_working_dir, start_hash, until, separator, verbose=False): - - all_commits_raw = _find_commits_inbetween( - start_hash, until, git_working_dir, verbose) - if verbose: - print("All commits between and : " + all_commits_raw) - - # Adding start hash too - all_commits = [start_hash] - all_commits.extend(all_commits_raw.splitlines()) - all_related_commits = {} - already_treated_commits = Set([]) - for commit in all_commits: - if commit in already_treated_commits: - continue - - related_commits = _search_related_commits( - git_working_dir, commit, until, separator, verbose) - if len(related_commits) > 0: - all_related_commits[commit] = related_commits - already_treated_commits.update(related_commits) - - already_treated_commits.update(commit) - - return all_related_commits - -def _search_related_commits( - git_working_dir, start_hash, until, separator, verbose=False): - - if separator: - commits_between = _find_commits_inbetween( - start_hash, separator, git_working_dir, verbose) - if commits_between == "": - return [] - - # Extract commit position - original_message = git_execute( - git_working_dir, - ["show", "-s", "--format=%B", start_hash], - verbose) - title = original_message.splitlines()[0] - - matches = re.search("(\{#)([0-9]*)(\})", original_message) - - if not matches: - return [] - - commit_position = matches.group(2) - if verbose: - print("1.) Commit position to look for: " + commit_position) - - search_range = start_hash + ".." + until - - def git_args(grep_pattern): - return [ - "log", - "--reverse", - "--grep=" + grep_pattern, - "--format=%H", - search_range, - ] - - found_by_hash = git_execute( - git_working_dir, git_args(start_hash), verbose).strip() - - if verbose: - print("2.) Found by hash: " + found_by_hash) - - found_by_commit_pos = git_execute( - git_working_dir, git_args(commit_position), verbose).strip() - - if verbose: - print("3.) Found by commit position: " + found_by_commit_pos) - - # Replace brackets or else they are wrongly interpreted by --grep - title = title.replace("[", "\\[") - title = title.replace("]", "\\]") - - found_by_title = git_execute( - git_working_dir, git_args(title), verbose).strip() - - if verbose: - print("4.) Found by title: " + found_by_title) - - hits = ( - _convert_to_array(found_by_hash) + - _convert_to_array(found_by_commit_pos) + - _convert_to_array(found_by_title)) - hits = _remove_duplicates(hits) - - if separator: - for current_hit in hits: - commits_between = _find_commits_inbetween( - separator, current_hit, git_working_dir, verbose) - if commits_between != "": - return hits - return [] - - return hits - -def _find_commits_inbetween(start_hash, end_hash, git_working_dir, verbose): - commits_between = git_execute( - git_working_dir, - ["rev-list", "--reverse", start_hash + ".." + end_hash], - verbose) - return commits_between.strip() - -def _convert_to_array(string_of_hashes): - return string_of_hashes.splitlines() - -def _remove_duplicates(array): - no_duplicates = [] - for current in array: - if not current in no_duplicates: - no_duplicates.append(current) - return no_duplicates - -def git_execute(working_dir, args, verbose=False): - command = ["git", "-C", working_dir] + args - if verbose: - print("Git working dir: " + working_dir) - print("Executing git command:" + str(command)) - p = Popen(args=command, stdin=PIPE, - stdout=PIPE, stderr=PIPE) - output, err = p.communicate() - rc = p.returncode - if rc != 0: - raise Exception(err) - if verbose: - print("Git return value: " + output) - return output - -def _pretty_print_entry(hash, git_dir, pre_text, verbose): - text_to_print = git_execute( - git_dir, - ["show", - "--quiet", - "--date=iso", - hash, - "--format=%ad # %H # %s"], - verbose) - return pre_text + text_to_print.strip() - -def main(options): - all_related_commits = search_all_related_commits( - options.git_dir, - options.of[0], - options.until[0], - options.separator, - options.verbose) - - sort_key = lambda x: ( - git_execute( - options.git_dir, - ["show", "--quiet", "--date=iso", x, "--format=%ad"], - options.verbose)).strip() - - high_level_commits = sorted(all_related_commits.keys(), key=sort_key) - - for current_key in high_level_commits: - if options.prettyprint: - yield _pretty_print_entry( - current_key, - options.git_dir, - "+", - options.verbose) - else: - yield "+" + current_key - - found_commits = all_related_commits[current_key] - for current_commit in found_commits: - if options.prettyprint: - yield _pretty_print_entry( - current_commit, - options.git_dir, - "| ", - options.verbose) - else: - yield "| " + current_commit - -if __name__ == "__main__": # pragma: no cover - parser = argparse.ArgumentParser( - "This tool analyzes the commit range between and . " - "It finds commits which belong together e.g. Implement/Revert pairs and " - "Implement/Port/Revert triples. All supplied hashes need to be " - "from the same branch e.g. main.") - parser.add_argument("-g", "--git-dir", required=False, default=".", - help="The path to your git working directory.") - parser.add_argument("--verbose", action="store_true", - help="Enables a very verbose output") - parser.add_argument("of", nargs=1, - help="Hash of the commit to be searched.") - parser.add_argument("until", nargs=1, - help="Commit when searching should stop") - parser.add_argument("--separator", required=False, - help="The script will only list related commits " - "which are separated by hash <--separator>.") - parser.add_argument("--prettyprint", action="store_true", - help="Pretty prints the output") - - args = sys.argv[1:] - options = parser.parse_args(args) - for current_line in main(options): - print(current_line) diff --git a/deps/v8/tools/release/test_scripts.py b/deps/v8/tools/release/test_scripts.py index e8757cf27719e0..1777984a5896cc 100755 --- a/deps/v8/tools/release/test_scripts.py +++ b/deps/v8/tools/release/test_scripts.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2013 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -26,9 +26,7 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# for py2/py3 compatibility -from __future__ import print_function - +import json import os import shutil import tempfile @@ -44,7 +42,6 @@ from create_release import * import merge_to_branch from merge_to_branch import MergeToBranch -from auto_tag import AutoTag import roll_merge from roll_merge import RollMerge @@ -93,6 +90,10 @@ def testNormalizeVersionTags(self): ] self.assertEquals(expected, NormalizeVersionTags(input)) + def testCommand(self): + """Ensure json can decode the output of commands.""" + json.dumps(Command('ls', pipe=True)) + def Cmd(*args, **kwargs): """Convenience function returning a shell command test expectation.""" diff --git a/deps/v8/tools/release/test_search_related_commits.py b/deps/v8/tools/release/test_search_related_commits.py deleted file mode 100755 index 6943915fd63a99..00000000000000 --- a/deps/v8/tools/release/test_search_related_commits.py +++ /dev/null @@ -1,274 +0,0 @@ -#!/usr/bin/env python -# Copyright 2015 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -from collections import namedtuple -from os import path -import search_related_commits -import shutil -from subprocess import Popen, PIPE, check_call -import unittest - - -TEST_CONFIG = { - "GIT_REPO": "/tmp/test-v8-search-related-commits", -} - -class TestSearchRelatedCommits(unittest.TestCase): - - base_dir = TEST_CONFIG["GIT_REPO"] - - def _execute_git(self, git_args): - - fullCommand = ["git", "-C", self.base_dir] + git_args - p = Popen(args=fullCommand, stdin=PIPE, - stdout=PIPE, stderr=PIPE) - output, err = p.communicate() - rc = p.returncode - if rc != 0: - raise Exception(err) - return output - - def setUp(self): - if path.exists(self.base_dir): - shutil.rmtree(self.base_dir) - - check_call(["git", "init", self.base_dir]) - - # Initial commit - message = """[turbofan] Sanitize language mode for javascript operators. - - R=mstarzinger@chromium.org - - Review URL: https://codereview.chromium.org/1084243005 - - Cr-Commit-Position: refs/heads/main@{#28059}""" - self._make_empty_commit(message) - - message = """[crankshaft] Do some stuff - - R=hablich@chromium.org - - Review URL: https://codereview.chromium.org/1084243007 - - Cr-Commit-Position: refs/heads/main@{#28030}""" - - self._make_empty_commit(message) - - def tearDown(self): - if path.exists(self.base_dir): - shutil.rmtree(self.base_dir) - - def _assert_correct_standard_result( - self, result, all_commits, hash_of_first_commit): - self.assertEqual(len(result), 1, "Main commit not found") - self.assertTrue( - result.get(hash_of_first_commit), - "Main commit is wrong") - - self.assertEqual( - len(result[hash_of_first_commit]), - 1, - "Child commit not found") - self.assertEqual( - all_commits[2], - result[hash_of_first_commit][0], - "Child commit wrong") - - def _get_commits(self): - commits = self._execute_git( - ["log", "--format=%H", "--reverse"]).splitlines() - return commits - - def _make_empty_commit(self, message): - self._execute_git(["commit", "--allow-empty", "-m", message]) - - def testSearchByCommitPosition(self): - message = """Revert of some stuff. - > Cr-Commit-Position: refs/heads/main@{#28059} - R=mstarzinger@chromium.org - - Review URL: https://codereview.chromium.org/1084243005 - - Cr-Commit-Position: refs/heads/main@{#28088}""" - - self._make_empty_commit(message) - - commits = self._get_commits() - hash_of_first_commit = commits[0] - - result = search_related_commits.search_all_related_commits( - self.base_dir, hash_of_first_commit, "HEAD", None) - - self._assert_correct_standard_result(result, commits, hash_of_first_commit) - - def testSearchByTitle(self): - message = """Revert of some stuff. - > [turbofan] Sanitize language mode for javascript operators. - > Cr-Commit-Position: refs/heads/main@{#289} - R=mstarzinger@chromium.org - - Review URL: https://codereview.chromium.org/1084243005 - - Cr-Commit-Position: refs/heads/main@{#28088}""" - - self._make_empty_commit(message) - - commits = self._get_commits() - hash_of_first_commit = commits[0] - - result = search_related_commits.search_all_related_commits( - self.base_dir, hash_of_first_commit, "HEAD", None) - - self._assert_correct_standard_result(result, commits, hash_of_first_commit) - - def testSearchByHash(self): - commits = self._get_commits() - hash_of_first_commit = commits[0] - - message = """Revert of some stuff. - > [turbofan] Sanitize language mode for javascript operators. - > Reverting """ + hash_of_first_commit + """ - > R=mstarzinger@chromium.org - - Review URL: https://codereview.chromium.org/1084243005 - - Cr-Commit-Position: refs/heads/main@{#28088}""" - - self._make_empty_commit(message) - - #Fetch again for an update - commits = self._get_commits() - hash_of_first_commit = commits[0] - - result = search_related_commits.search_all_related_commits( - self.base_dir, - hash_of_first_commit, - "HEAD", - None) - - self._assert_correct_standard_result(result, commits, hash_of_first_commit) - - def testConsiderSeparator(self): - commits = self._get_commits() - hash_of_first_commit = commits[0] - - # Related commits happen before separator so it is not a hit - message = """Revert of some stuff: Not a hit - > [turbofan] Sanitize language mode for javascript operators. - > Reverting """ + hash_of_first_commit + """ - > R=mstarzinger@chromium.org - - Review URL: https://codereview.chromium.org/1084243005 - - Cr-Commit-Position: refs/heads/main@{#28088}""" - self._make_empty_commit(message) - - # Related commits happen before and after separator so it is a hit - commit_pos_of_main = "27088" - message = """Implement awesome feature: Main commit - - Review URL: https://codereview.chromium.org/1084243235 - - Cr-Commit-Position: refs/heads/main@{#""" + commit_pos_of_main + "}" - self._make_empty_commit(message) - - # Separator commit - message = """Commit which is the origin of the branch - - Review URL: https://codereview.chromium.org/1084243456 - - Cr-Commit-Position: refs/heads/main@{#28173}""" - self._make_empty_commit(message) - - # Filler commit - message = "Some unrelated commit: Not a hit" - self._make_empty_commit(message) - - # Related commit after separator: a hit - message = "Patch r" + commit_pos_of_main +""" done - - Review URL: https://codereview.chromium.org/1084243235 - - Cr-Commit-Position: refs/heads/main@{#29567}""" - self._make_empty_commit(message) - - #Fetch again for an update - commits = self._get_commits() - hash_of_first_commit = commits[0] - hash_of_hit = commits[3] - hash_of_separator = commits[4] - hash_of_child_hit = commits[6] - - result = search_related_commits.search_all_related_commits( - self.base_dir, - hash_of_first_commit, - "HEAD", - hash_of_separator) - - self.assertTrue(result.get(hash_of_hit), "Hit not found") - self.assertEqual(len(result), 1, "More than one hit found") - self.assertEqual( - len(result.get(hash_of_hit)), - 1, - "More than one child hit found") - self.assertEqual( - result.get(hash_of_hit)[0], - hash_of_child_hit, - "Wrong commit found") - - def testPrettyPrint(self): - message = """Revert of some stuff. - > [turbofan] Sanitize language mode for javascript operators. - > Cr-Commit-Position: refs/heads/main@{#289} - R=mstarzinger@chromium.org - - Review URL: https://codereview.chromium.org/1084243005 - - Cr-Commit-Position: refs/heads/main@{#28088}""" - - self._make_empty_commit(message) - - commits = self._get_commits() - hash_of_first_commit = commits[0] - OptionsStruct = namedtuple( - "OptionsStruct", - "git_dir of until all prettyprint separator verbose") - options = OptionsStruct( - git_dir= self.base_dir, - of= [hash_of_first_commit], - until= [commits[2]], - all= True, - prettyprint= True, - separator = None, - verbose=False) - output = [] - for current_line in search_related_commits.main(options): - output.append(current_line) - - self.assertIs(len(output), 2, "Not exactly two entries written") - self.assertTrue(output[0].startswith("+"), "Main entry not marked with +") - self.assertTrue(output[1].startswith("| "), "Child entry not marked with |") - - def testNothingFound(self): - commits = self._get_commits() - - self._execute_git(["commit", "--allow-empty", "-m", "A"]) - self._execute_git(["commit", "--allow-empty", "-m", "B"]) - self._execute_git(["commit", "--allow-empty", "-m", "C"]) - self._execute_git(["commit", "--allow-empty", "-m", "D"]) - - hash_of_first_commit = commits[0] - result = search_related_commits.search_all_related_commits( - self.base_dir, - hash_of_first_commit, - "HEAD", - None) - - self.assertEqual(len(result), 0, "Results found where none should be.") - - -if __name__ == "__main__": - #import sys;sys.argv = ['', 'Test.testName'] - unittest.main() diff --git a/deps/v8/tools/run.py b/deps/v8/tools/run.py index 59b3c15e682b58..99ccea1f6c3edc 100755 --- a/deps/v8/tools/run.py +++ b/deps/v8/tools/run.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2014 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -6,8 +6,6 @@ """This program wraps an arbitrary command since gn currently can only execute scripts.""" -from __future__ import print_function - import subprocess import sys diff --git a/deps/v8/tools/run_perf.py b/deps/v8/tools/run_perf.py index 1e22b298a8025d..5b2862fdd96428 100644 --- a/deps/v8/tools/run_perf.py +++ b/deps/v8/tools/run_perf.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 # Copyright 2014 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -102,11 +103,9 @@ The test flags are passed to the js test file after '--'. """ -# for py2/py3 compatibility -from __future__ import print_function -from functools import reduce - from collections import OrderedDict +from math import sqrt +from statistics import mean, stdev import copy import json import logging @@ -119,18 +118,11 @@ import time import traceback -import numpy - from testrunner.local import android from testrunner.local import command from testrunner.local import utils from testrunner.objects.output import Output, NULL_OUTPUT -# for py2/py3 compatibility -try: - basestring # Python 2 -except NameError: # Python 3 - basestring = str SUPPORTED_ARCHS = ['arm', 'ia32', @@ -265,11 +257,12 @@ def HasEnoughRuns(self, graph_config, confidence_level): return False logging.debug(' Results: %d entries', len(results)) - mean = numpy.mean(results) - mean_stderr = numpy.std(results) / numpy.sqrt(len(results)) - logging.debug(' Mean: %.2f, mean_stderr: %.2f', mean, mean_stderr) - logging.info('>>> Confidence level is %.2f', mean / (1000.0 * mean_stderr)) - return confidence_level * mean_stderr < mean / 1000.0 + avg = mean(results) + avg_stderr = stdev(results) / sqrt(len(results)) + logging.debug(' Mean: %.2f, mean_stderr: %.2f', avg, avg_stderr) + logging.info('>>> Confidence level is %.2f', + avg / max(1000.0 * avg_stderr, .1)) + return confidence_level * avg_stderr < avg / 1000.0 def __str__(self): # pragma: no cover return json.dumps(self.ToDict(), indent=2, separators=(',', ': ')) @@ -289,7 +282,8 @@ def RunResultsProcessor(results_processor, output, count): stderr=subprocess.PIPE, ) new_output = copy.copy(output) - new_output.stdout, _ = p.communicate(input=output.stdout) + new_output.stdout = p.communicate( + input=output.stdout.encode('utf-8'))[0].decode('utf-8') logging.info('>>> Processed stdout (#%d):\n%s', count, output.stdout) return new_output @@ -340,7 +334,7 @@ def __init__(self, suite, parent, arch): assert isinstance(suite.get('path', []), list) assert isinstance(suite.get('owners', []), list) - assert isinstance(suite['name'], basestring) + assert isinstance(suite['name'], str) assert isinstance(suite.get('flags', []), list) assert isinstance(suite.get('test_flags', []), list) assert isinstance(suite.get('resources', []), list) diff --git a/deps/v8/tools/sanitizers/tsan_suppressions.txt b/deps/v8/tools/sanitizers/tsan_suppressions.txt index 270340e4843d60..f9e3942039d824 100644 --- a/deps/v8/tools/sanitizers/tsan_suppressions.txt +++ b/deps/v8/tools/sanitizers/tsan_suppressions.txt @@ -4,3 +4,7 @@ # Incorrectly detected lock cycles in test-lockers # https://code.google.com/p/thread-sanitizer/issues/detail?id=81 deadlock:LockAndUnlockDifferentIsolatesThread::Run + +# A global safepoint might lock client isolate mutexes in any order, which +# would be reported as potential deadlocks. +deadlock:GlobalSafepoint::EnterGlobalSafepointScope diff --git a/deps/v8/tools/splaytree.mjs b/deps/v8/tools/splaytree.mjs index d942d1f463bcd9..ac25cf0668d69a 100644 --- a/deps/v8/tools/splaytree.mjs +++ b/deps/v8/tools/splaytree.mjs @@ -49,7 +49,7 @@ export class SplayTree { * @return {boolean} Whether the tree is empty. */ isEmpty() { - return !this.root_; + return this.root_ === null; } /** @@ -100,7 +100,7 @@ export class SplayTree { throw Error(`Key not found: ${key}`); } const removed = this.root_; - if (!this.root_.left) { + if (this.root_.left === null) { this.root_ = this.root_.right; } else { const { right } = this.root_; @@ -133,7 +133,7 @@ export class SplayTree { findMin() { if (this.isEmpty()) return null; let current = this.root_; - while (current.left) { + while (current.left !== null) { current = current.left; } return current; @@ -145,7 +145,7 @@ export class SplayTree { findMax(opt_startNode) { if (this.isEmpty()) return null; let current = opt_startNode || this.root_; - while (current.right) { + while (current.right !== null) { current = current.right; } return current; @@ -164,7 +164,7 @@ export class SplayTree { // the left subtree. if (this.root_.key <= key) { return this.root_; - } else if (this.root_.left) { + } else if (this.root_.left !== null) { return this.findMax(this.root_.left); } else { return null; @@ -186,7 +186,7 @@ export class SplayTree { */ exportValues() { const result = []; - this.traverse_(function(node) { result.push(node.value); }); + this.traverse_(function(node) { result.push(node.value) }); return result; } @@ -212,36 +212,28 @@ export class SplayTree { let current = this.root_; while (true) { if (key < current.key) { - if (!current.left) { - break; - } + if (current.left === null) break; if (key < current.left.key) { // Rotate right. const tmp = current.left; current.left = tmp.right; tmp.right = current; current = tmp; - if (!current.left) { - break; - } + if (current.left === null) break; } // Link right. right.left = current; right = current; current = current.left; } else if (key > current.key) { - if (!current.right) { - break; - } + if (current.right === null) break; if (key > current.right.key) { // Rotate left. const tmp = current.right; current.right = tmp.left; tmp.left = current; current = tmp; - if (!current.right) { - break; - } + if (current.right === null) break; } // Link left. left.right = current; @@ -269,9 +261,7 @@ export class SplayTree { const nodesToVisit = [this.root_]; while (nodesToVisit.length > 0) { const node = nodesToVisit.shift(); - if (node == null) { - continue; - } + if (node === null) continue; f(node); nodesToVisit.push(node.left); nodesToVisit.push(node.right); @@ -298,4 +288,4 @@ class SplayTreeNode { */ this.right = null; } -}; \ No newline at end of file +}; diff --git a/deps/v8/tools/system-analyzer/app-model.mjs b/deps/v8/tools/system-analyzer/app-model.mjs index 4e339cb0d5940e..5bc15fe6a62de5 100644 --- a/deps/v8/tools/system-analyzer/app-model.mjs +++ b/deps/v8/tools/system-analyzer/app-model.mjs @@ -17,7 +17,6 @@ class State { _mapTimeline; _deoptTimeline; _codeTimeline; - _apiTimeline; _tickTimeline; _timerTimeline; _minStartTime = Number.POSITIVE_INFINITY; @@ -42,13 +41,12 @@ class State { } setTimelines( - mapTimeline, icTimeline, deoptTimeline, codeTimeline, apiTimeline, - tickTimeline, timerTimeline) { + mapTimeline, icTimeline, deoptTimeline, codeTimeline, tickTimeline, + timerTimeline) { this._mapTimeline = mapTimeline; this._icTimeline = icTimeline; this._deoptTimeline = deoptTimeline; this._codeTimeline = codeTimeline; - this._apiTimeline = apiTimeline; this._tickTimeline = tickTimeline; this._timerTimeline = timerTimeline; for (let timeline of arguments) { @@ -78,10 +76,6 @@ class State { return this._codeTimeline; } - get apiTimeline() { - return this._apiTimeline; - } - get tickTimeline() { return this._tickTimeline; } @@ -93,8 +87,7 @@ class State { get timelines() { return [ this._mapTimeline, this._icTimeline, this._deoptTimeline, - this._codeTimeline, this._apiTimeline, this._tickTimeline, - this._timerTimeline + this._codeTimeline, this._tickTimeline, this._timerTimeline ]; } diff --git a/deps/v8/tools/system-analyzer/helper.mjs b/deps/v8/tools/system-analyzer/helper.mjs index ba6d0614f2242a..717faca5d50e26 100644 --- a/deps/v8/tools/system-analyzer/helper.mjs +++ b/deps/v8/tools/system-analyzer/helper.mjs @@ -2,63 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -export const KB = 1024; -export const MB = KB * KB; -export const GB = MB * KB; -export const kMicro2Milli = 1 / 1000; - -export function formatBytes(bytes) { - const units = ['B', 'KiB', 'MiB', 'GiB']; - const divisor = 1024; - let index = 0; - while (index < units.length && bytes >= divisor) { - index++; - bytes /= divisor; - } - return bytes.toFixed(2) + units[index]; -} - -export function formatMicroSeconds(micro) { - return (micro * kMicro2Milli).toFixed(1) + 'ms'; -} - -export function formatDurationMicros(micros, secondsDigits = 3) { - return formatDurationMillis(micros * kMicro2Milli, secondsDigits); -} - -export function formatDurationMillis(millis, secondsDigits = 3) { - if (millis < 1000) { - if (millis < 1) { - return (millis / kMicro2Milli).toFixed(1) + 'ns'; - } - return millis.toFixed(2) + 'ms'; - } - let seconds = millis / 1000; - const hours = Math.floor(seconds / 3600); - const minutes = Math.floor((seconds % 3600) / 60); - seconds = seconds % 60; - let buffer = '' - if (hours > 0) buffer += hours + 'h '; - if (hours > 0 || minutes > 0) buffer += minutes + 'm '; - buffer += seconds.toFixed(secondsDigits) + 's' - return buffer; -} - -export function delay(time) { - return new Promise(resolver => setTimeout(resolver, time)); -} - -export function defer() { - let resolve_func, reject_func; - const p = new Promise((resolve, reject) => { - resolve_func = resolve; - reject_func = resolve; - }); - p.resolve = resolve_func; - p.reject = reject_func; - return p; -} - export class Group { constructor(key, id, parentTotal, entries) { this.key = key; @@ -105,3 +48,35 @@ export function groupBy(array, keyFunction, collect = false) { // Sort by length return groups.sort((a, b) => b.length - a.length); } + +export function arrayEquals(left, right) { + if (left == right) return true; + if (left.length != right.length) return false; + for (let i = 0; i < left.length; i++) { + if (left[i] != right[i]) return false; + } + return true; +} + +export function entriesEquals(left, right) { + if (left == right) return true; + if (left == undefined) return right == undefined; + const leftEntries = Object.entries(left); + const rightEntries = Object.entries(right); + if (leftEntries.length !== rightEntries.length) return false; + for (let i = 0; i < leftEntries.length; i++) { + const l = leftEntries[i]; + const r = rightEntries[i]; + if (l[0] != r[0]) return false; + if (l[1] != r[1]) return false; + } + return true; +} + +export function keysEquals(left, right) { + if (left == right) return true; + if (left == undefined) return right == undefined; + return arrayEquals(Object.keys(left), Object.keys(right)); +} + +export * from '../js/helper.mjs' diff --git a/deps/v8/tools/system-analyzer/index.css b/deps/v8/tools/system-analyzer/index.css index 4525f0d9b40f12..4d2cda9035cd07 100644 --- a/deps/v8/tools/system-analyzer/index.css +++ b/deps/v8/tools/system-analyzer/index.css @@ -1,4 +1,5 @@ :root { + --code-font: Consolas, Monaco, Menlo, monospace; --background-color: #000000; --surface-color-rgb: 18, 18, 18; --surface-color: rgb(var(--surface-color-rgb)); @@ -13,6 +14,7 @@ --map-background-color: #5e5454; --timeline-background-color: #1f1f1f; --file-reader-background-color: #ffffff80; + --file-reader-border-color: #ffffff; --red: #dc6eae; --green: #aedc6e; --yellow: #eeff41; @@ -68,6 +70,10 @@ kbd { white-space: nowrap; } +kbd, code, pre { + font-family: var(--code-font); +} + a { color: var(--primary-color); text-decoration: none; @@ -173,9 +179,9 @@ button:hover { .colorbox { display: inline-block; - width: 10px; - height: 10px; - border: 1px var(--background-color) solid; + width: 8px; + height: 8px; + border: 2px var(--background-color) solid; border-radius: 50%; } @@ -227,6 +233,7 @@ button:hover, .mark:hover, .clickable:active, .mark:active { + border-radius: 3px; background-color: var(--primary-color); color: var(--on-primary-color); cursor: pointer; @@ -243,17 +250,16 @@ button:hover, padding: 0 10px 0 10px; } .legend dt { - font-family: monospace; + font-family: var(--code-font); } .legend h3 { margin-top: 10px; } - .panelCloserLabel { float: left; cursor: zoom-out; - margin: 0 10px 0 0; + margin: 0 5px 0 0; transition: transform 0.2s ease-out; user-select: none; } @@ -274,4 +280,4 @@ button:hover, } .panelCloserInput:checked ~ * { display: none; -} \ No newline at end of file +} diff --git a/deps/v8/tools/system-analyzer/index.html b/deps/v8/tools/system-analyzer/index.html index e85a59d6e69cce..f8b99f3ddac6f8 100644 --- a/deps/v8/tools/system-analyzer/index.html +++ b/deps/v8/tools/system-analyzer/index.html @@ -11,7 +11,7 @@ - + - +
      @@ -61,7 +61,6 @@ -
      @@ -92,7 +91,6 @@

      Legend

      -
      @@ -155,8 +153,8 @@

      LOG_FLAGS:

      Log detailed generated generated code
      - - --log-api + + --log-code
      Log details about deoptimized code
      @@ -176,6 +174,12 @@

      LOG_FLAGS:

      Keyboard Shortcuts for Navigation

      +
      A
      +
      Scroll left
      + +
      D
      +
      Sroll right
      +
      SHIFT + Arrow Up
      Follow Map transition forward (first child)
      diff --git a/deps/v8/tools/system-analyzer/index.mjs b/deps/v8/tools/system-analyzer/index.mjs index 2cae0d3b6dd03b..21254aa74e57ee 100644 --- a/deps/v8/tools/system-analyzer/index.mjs +++ b/deps/v8/tools/system-analyzer/index.mjs @@ -5,7 +5,6 @@ import {Script, SourcePosition} from '../profile.mjs'; import {State} from './app-model.mjs'; -import {ApiLogEntry} from './log/api.mjs'; import {CodeLogEntry} from './log/code.mjs'; import {DeoptLogEntry} from './log/code.mjs'; import {SharedLibLogEntry} from './log/code.mjs'; @@ -15,9 +14,8 @@ import {MapLogEntry} from './log/map.mjs'; import {TickLogEntry} from './log/tick.mjs'; import {TimerLogEntry} from './log/timer.mjs'; import {Processor} from './processor.mjs'; -import {Timeline} from './timeline.mjs' import {FocusEvent, SelectionEvent, SelectRelatedEvent, SelectTimeEvent, ToolTipEvent,} from './view/events.mjs'; -import {$, CSSColor, groupBy} from './view/helper.mjs'; +import {$, groupBy} from './view/helper.mjs'; class App { _state; @@ -35,14 +33,12 @@ class App { icTrack: $('#ic-track'), deoptTrack: $('#deopt-track'), codeTrack: $('#code-track'), - apiTrack: $('#api-track'), timerTrack: $('#timer-track'), icList: $('#ic-list'), mapList: $('#map-list'), codeList: $('#code-list'), deoptList: $('#deopt-list'), - apiList: $('#api-list'), mapPanel: $('#map-panel'), codePanel: $('#code-panel'), @@ -51,11 +47,11 @@ class App { toolTip: $('#tool-tip'), }; this._view.logFileReader.addEventListener( - 'fileuploadstart', (e) => this.handleFileUploadStart(e)); + 'fileuploadstart', this.handleFileUploadStart.bind(this)); this._view.logFileReader.addEventListener( - 'fileuploadchunk', (e) => this.handleFileUploadChunk(e)); + 'fileuploadchunk', this.handleFileUploadChunk.bind(this)); this._view.logFileReader.addEventListener( - 'fileuploadend', (e) => this.handleFileUploadEnd(e)); + 'fileuploadend', this.handleFileUploadEnd.bind(this)); this._startupPromise = this._loadCustomElements(); this._view.codeTrack.svg = true; } @@ -65,7 +61,6 @@ class App { SourcePosition, MapLogEntry, IcLogEntry, - ApiLogEntry, CodeLogEntry, DeoptLogEntry, SharedLibLogEntry, @@ -91,14 +86,14 @@ class App { document.addEventListener( 'keydown', e => this._navigation?.handleKeyDown(e)); document.addEventListener( - SelectRelatedEvent.name, e => this.handleSelectRelatedEntries(e)); + SelectRelatedEvent.name, this.handleSelectRelatedEntries.bind(this)); document.addEventListener( - SelectionEvent.name, e => this.handleSelectEntries(e)) + SelectionEvent.name, this.handleSelectEntries.bind(this)) document.addEventListener( - FocusEvent.name, e => this.handleFocusLogEntryl(e)); + FocusEvent.name, this.handleFocusLogEntry.bind(this)); document.addEventListener( - SelectTimeEvent.name, e => this.handleTimeRangeSelect(e)); - document.addEventListener(ToolTipEvent.name, e => this.handleToolTip(e)); + SelectTimeEvent.name, this.handleTimeRangeSelect.bind(this)); + document.addEventListener(ToolTipEvent.name, this.handleToolTip.bind(this)); } handleSelectRelatedEntries(e) { @@ -126,7 +121,6 @@ class App { entries = entry.entries.concat(entry.sourcePositions); break; case TimerLogEntry: - case ApiLogEntry: case CodeLogEntry: case TickLogEntry: case SharedLibLogEntry: @@ -151,7 +145,7 @@ class App { handleSelectEntries(e) { e.stopImmediatePropagation(); - this.showEntries(e.entries); + this.selectEntries(e.entries); } selectEntries(entries) { @@ -160,29 +154,28 @@ class App { this.selectEntriesOfSingleType(group.entries); missingTypes.delete(group.key); }); - missingTypes.forEach(type => this.selectEntriesOfSingleType([], type)); + missingTypes.forEach( + type => this.selectEntriesOfSingleType([], type, false)); } - selectEntriesOfSingleType(entries, type) { + selectEntriesOfSingleType(entries, type, focusView = true) { const entryType = entries[0]?.constructor ?? type; switch (entryType) { case Script: entries = entries.flatMap(script => script.sourcePositions); - return this.showSourcePositions(entries); + return this.showSourcePositions(entries, focusView); case SourcePosition: - return this.showSourcePositions(entries); + return this.showSourcePositions(entries, focusView); case MapLogEntry: - return this.showMapEntries(entries); + return this.showMapEntries(entries, focusView); case IcLogEntry: - return this.showIcEntries(entries); - case ApiLogEntry: - return this.showApiEntries(entries); + return this.showIcEntries(entries, focusView); case CodeLogEntry: - return this.showCodeEntries(entries); + return this.showCodeEntries(entries, focusView); case DeoptLogEntry: - return this.showDeoptEntries(entries); + return this.showDeoptEntries(entries, focusView); case SharedLibLogEntry: - return this.showSharedLibEntries(entries); + return this.showSharedLibEntries(entries, focusView); case TimerLogEntry: case TickLogEntry: break; @@ -215,11 +208,6 @@ class App { if (focusView) this._view.codePanel.show(); } - showApiEntries(entries, focusView = true) { - this._view.apiList.selectedLogEntries = entries; - if (focusView) this._view.apiList.show(); - } - showTickEntries(entries, focusView = true) {} showTimerEntries(entries, focusView = true) {} @@ -230,22 +218,21 @@ class App { handleTimeRangeSelect(e) { e.stopImmediatePropagation(); - this.selectTimeRange(e.start, e.end); + this.selectTimeRange(e.start, e.end, e.focus, e.zoom); } - selectTimeRange(start, end) { + selectTimeRange(start, end, focus = false, zoom = false) { this._state.selectTimeRange(start, end); this.showMapEntries(this._state.mapTimeline.selectionOrSelf, false); this.showIcEntries(this._state.icTimeline.selectionOrSelf, false); this.showDeoptEntries(this._state.deoptTimeline.selectionOrSelf, false); this.showCodeEntries(this._state.codeTimeline.selectionOrSelf, false); - this.showApiEntries(this._state.apiTimeline.selectionOrSelf, false); this.showTickEntries(this._state.tickTimeline.selectionOrSelf, false); this.showTimerEntries(this._state.timerTimeline.selectionOrSelf, false); - this._view.timelinePanel.timeSelection = {start, end}; + this._view.timelinePanel.timeSelection = {start, end, focus, zoom}; } - handleFocusLogEntryl(e) { + handleFocusLogEntry(e) { e.stopImmediatePropagation(); this.focusLogEntry(e.entry); } @@ -260,8 +247,6 @@ class App { return this.focusMapLogEntry(entry); case IcLogEntry: return this.focusIcLogEntry(entry); - case ApiLogEntry: - return this.focusApiLogEntry(entry); case CodeLogEntry: return this.focusCodeLogEntry(entry); case DeoptLogEntry: @@ -281,11 +266,11 @@ class App { this._state.map = entry; this._view.mapTrack.focusedEntry = entry; this._view.mapPanel.map = entry; - this._view.mapPanel.show(); if (focusSourcePosition) { this.focusCodeLogEntry(entry.code, false); this.focusSourcePosition(entry.sourcePosition); } + this._view.mapPanel.show(); } focusIcLogEntry(entry) { @@ -312,12 +297,6 @@ class App { // no-op. } - focusApiLogEntry(entry) { - this._state.apiLogEntry = entry; - this._view.apiTrack.focusedEntry = entry; - this.focusSourcePosition(entry.sourcePosition); - } - focusTickLogEntry(entry) { this._state.tickLogEntry = entry; this._view.tickTrack.focusedEntry = entry; @@ -361,6 +340,8 @@ class App { this.restartApp(); $('#container').className = 'initial'; this._processor = new Processor(); + this._processor.setProgressCallback( + e.detail.totalSize, e.detail.progressCallback); } async handleFileUploadChunk(e) { @@ -378,18 +359,16 @@ class App { const icTimeline = processor.icTimeline; const deoptTimeline = processor.deoptTimeline; const codeTimeline = processor.codeTimeline; - const apiTimeline = processor.apiTimeline; const tickTimeline = processor.tickTimeline; const timerTimeline = processor.timerTimeline; this._state.setTimelines( - mapTimeline, icTimeline, deoptTimeline, codeTimeline, apiTimeline, - tickTimeline, timerTimeline); + mapTimeline, icTimeline, deoptTimeline, codeTimeline, tickTimeline, + timerTimeline); this._view.mapPanel.timeline = mapTimeline; this._view.icList.timeline = icTimeline; this._view.mapList.timeline = mapTimeline; this._view.deoptList.timeline = deoptTimeline; this._view.codeList.timeline = codeTimeline; - this._view.apiList.timeline = apiTimeline; this._view.scriptPanel.scripts = processor.scripts; this._view.codePanel.timeline = codeTimeline; this._view.codePanel.timeline = codeTimeline; @@ -408,7 +387,6 @@ class App { this._view.icTrack.data = this._state.icTimeline; this._view.deoptTrack.data = this._state.deoptTimeline; this._view.codeTrack.data = this._state.codeTimeline; - this._view.apiTrack.data = this._state.apiTimeline; this._view.tickTrack.data = this._state.tickTimeline; this._view.timerTrack.data = this._state.timerTimeline; } @@ -420,115 +398,53 @@ class Navigation { this.state = state; this._view = view; } + get map() { return this.state.map } + set map(value) { this.state.map = value } + get chunks() { return this.state.mapTimeline.chunks; } + increaseTimelineResolution() { this._view.timelinePanel.nofChunks *= 1.5; this.state.nofChunks *= 1.5; } + decreaseTimelineResolution() { this._view.timelinePanel.nofChunks /= 1.5; this.state.nofChunks /= 1.5; } - selectNextEdge() { - if (!this.map) return; - if (this.map.children.length != 1) return; - this.map = this.map.children[0].to; - this._view.mapTrack.selectedEntry = this.map; - this.updateUrl(); - this._view.mapPanel.map = this.map; - } - selectPrevEdge() { - if (!this.map) return; - if (!this.map.parent) return; - this.map = this.map.parent; - this._view.mapTrack.selectedEntry = this.map; - this.updateUrl(); - this._view.mapPanel.map = this.map; - } - selectDefaultMap() { - this.map = this.chunks[0].at(0); - this._view.mapTrack.selectedEntry = this.map; - this.updateUrl(); - this._view.mapPanel.map = this.map; - } - moveInChunks(next) { - if (!this.map) return this.selectDefaultMap(); - let chunkIndex = this.map.chunkIndex(this.chunks); - let chunk = this.chunks[chunkIndex]; - let index = chunk.indexOf(this.map); - if (next) { - chunk = chunk.next(this.chunks); - } else { - chunk = chunk.prev(this.chunks); - } - if (!chunk) return; - index = Math.min(index, chunk.size() - 1); - this.map = chunk.at(index); - this._view.mapTrack.selectedEntry = this.map; - this.updateUrl(); - this._view.mapPanel.map = this.map; - } - moveInChunk(delta) { - if (!this.map) return this.selectDefaultMap(); - let chunkIndex = this.map.chunkIndex(this.chunks) - let chunk = this.chunks[chunkIndex]; - let index = chunk.indexOf(this.map) + delta; - let map; - if (index < 0) { - map = chunk.prev(this.chunks).last(); - } else if (index >= chunk.size()) { - map = chunk.next(this.chunks).first() - } else { - map = chunk.at(index); - } - this.map = map; - this._view.mapTrack.selectedEntry = this.map; - this.updateUrl(); - this._view.mapPanel.map = this.map; - } + updateUrl() { let entries = this.state.entries; let params = new URLSearchParams(entries); window.history.pushState(entries, '', '?' + params.toString()); } + + scrollLeft() {} + + scrollRight() {} + handleKeyDown(event) { switch (event.key) { - case 'ArrowUp': - event.preventDefault(); - if (event.shiftKey) { - this.selectPrevEdge(); - } else { - this.moveInChunk(-1); - } + case 'd': + this.scrollLeft(); return false; - case 'ArrowDown': - event.preventDefault(); - if (event.shiftKey) { - this.selectNextEdge(); - } else { - this.moveInChunk(1); - } + case 'a': + this.scrollRight(); return false; - case 'ArrowLeft': - this.moveInChunks(false); - break; - case 'ArrowRight': - this.moveInChunks(true); - break; case '+': this.increaseTimelineResolution(); - break; + return false; case '-': this.decreaseTimelineResolution(); - break; + return false; } } } diff --git a/deps/v8/tools/system-analyzer/log/api.mjs b/deps/v8/tools/system-analyzer/log/api.mjs deleted file mode 100644 index 8e29cb39d58749..00000000000000 --- a/deps/v8/tools/system-analyzer/log/api.mjs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2020 the V8 project authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -import {LogEntry} from './log.mjs'; - -export class ApiLogEntry extends LogEntry { - constructor(type, time, name, argument) { - super(type, time); - this._name = name; - this._argument = argument; - } - - get name() { - return this._name; - } - - get argument() { - return this._argument; - } - - static get propertyNames() { - return ['type', 'name', 'argument']; - } -} diff --git a/deps/v8/tools/system-analyzer/log/code.mjs b/deps/v8/tools/system-analyzer/log/code.mjs index feee95361e1daa..06051a2e520bfd 100644 --- a/deps/v8/tools/system-analyzer/log/code.mjs +++ b/deps/v8/tools/system-analyzer/log/code.mjs @@ -2,9 +2,25 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import {formatBytes} from '../helper.mjs'; - import {LogEntry} from './log.mjs'; +class CodeString { + constructor(string) { + if (typeof string !== 'string') { + throw new Error('Expected string'); + } + this.string = string; + } + + get isCode() { + return true; + } + + toString() { + return this.string; + } +} + export class DeoptLogEntry extends LogEntry { constructor( type, time, entry, deoptReason, deoptLocation, scriptOffset, @@ -48,14 +64,33 @@ export class DeoptLogEntry extends LogEntry { } } -export class CodeLogEntry extends LogEntry { - constructor(type, time, kindName, kind, entry) { +class CodeLikeLogEntry extends LogEntry { + constructor(type, time, profilerEntry) { super(type, time); + this._entry = profilerEntry; + profilerEntry.logEntry = this; + this._relatedEntries = []; + } + + get entry() { + return this._entry; + } + + add(entry) { + this._relatedEntries.push(entry); + } + + relatedEntries() { + return this._relatedEntries; + } +} + +export class CodeLogEntry extends CodeLikeLogEntry { + constructor(type, time, kindName, kind, profilerEntry) { + super(type, time, profilerEntry); this._kind = kind; this._kindName = kindName; - this._entry = entry; this._feedbackVector = undefined; - entry.logEntry = this; } get kind() { @@ -66,12 +101,12 @@ export class CodeLogEntry extends LogEntry { return this._kindName === 'Builtin'; } - get kindName() { - return this._kindName; + get isBytecodeKind() { + return this._kindName === 'Unopt'; } - get entry() { - return this._entry; + get kindName() { + return this._kindName; } get functionName() { @@ -113,6 +148,8 @@ export class CodeLogEntry extends LogEntry { get toolTipDict() { const dict = super.toolTipDict; dict.size = formatBytes(dict.size); + dict.source = new CodeString(dict.source); + dict.code = new CodeString(dict.code); return dict; } @@ -178,20 +215,15 @@ export class FeedbackVectorEntry extends LogEntry { } } -export class SharedLibLogEntry extends LogEntry { - constructor(entry) { - super('SHARED_LIB', 0); - this._entry = entry; +export class SharedLibLogEntry extends CodeLikeLogEntry { + constructor(profilerEntry) { + super('SHARED_LIB', 0, profilerEntry); } get name() { return this._entry.name; } - get entry() { - return this._entry; - } - toString() { return `SharedLib`; } diff --git a/deps/v8/tools/system-analyzer/log/tick.mjs b/deps/v8/tools/system-analyzer/log/tick.mjs index 64dbeb3780aef1..e8093df93f1d32 100644 --- a/deps/v8/tools/system-analyzer/log/tick.mjs +++ b/deps/v8/tools/system-analyzer/log/tick.mjs @@ -10,6 +10,28 @@ export class TickLogEntry extends LogEntry { super(TickLogEntry.extractType(vmState, processedStack), time); this.state = vmState; this.stack = processedStack; + this._endTime = time; + } + + end(time) { + if (this.isInitialized) throw new Error('Invalid timer change'); + this._endTime = time; + } + + get isInitialized() { + return this._endTime !== this._time; + } + + get startTime() { + return this._time; + } + + get endTime() { + return this._endTime; + } + + get duration() { + return this._endTime - this._time; } static extractType(vmState, processedStack) { @@ -34,4 +56,4 @@ export class TickLogEntry extends LogEntry { if (entry?.vmState) return Profile.vmStateString(entry.vmState); return 'Other'; } -} \ No newline at end of file +} diff --git a/deps/v8/tools/system-analyzer/log/timer.mjs b/deps/v8/tools/system-analyzer/log/timer.mjs index d2ca02a46c830a..01bfbd0421edfb 100644 --- a/deps/v8/tools/system-analyzer/log/timer.mjs +++ b/deps/v8/tools/system-analyzer/log/timer.mjs @@ -30,7 +30,7 @@ export class TimerLogEntry extends LogEntry { } get duration() { - return this._endTime - this._time; + return Math.max(0, this._endTime - this._time); } covers(time) { @@ -53,4 +53,4 @@ export class TimerLogEntry extends LogEntry { 'duration', ]; } -} \ No newline at end of file +} diff --git a/deps/v8/tools/system-analyzer/processor.mjs b/deps/v8/tools/system-analyzer/processor.mjs index 4f192ba96f66ea..f5dba619cdaf7c 100644 --- a/deps/v8/tools/system-analyzer/processor.mjs +++ b/deps/v8/tools/system-analyzer/processor.mjs @@ -6,7 +6,6 @@ import {LogReader, parseString, parseVarArgs} from '../logreader.mjs'; import {Profile} from '../profile.mjs'; import {RemoteLinuxCppEntriesProvider, RemoteMacOSCppEntriesProvider} from '../tickprocessor.mjs' -import {ApiLogEntry} from './log/api.mjs'; import {CodeLogEntry, DeoptLogEntry, FeedbackVectorEntry, SharedLibLogEntry} from './log/code.mjs'; import {IcLogEntry} from './log/ic.mjs'; import {Edge, MapLogEntry} from './log/map.mjs'; @@ -49,7 +48,6 @@ class AsyncConsumer { export class Processor extends LogReader { _profile = new Profile(); - _apiTimeline = new Timeline(); _codeTimeline = new Timeline(); _deoptTimeline = new Timeline(); _icTimeline = new Timeline(); @@ -59,7 +57,13 @@ export class Processor extends LogReader { _formatPCRegexp = /(.*):[0-9]+:[0-9]+$/; _lastTimestamp = 0; _lastCodeLogEntry; + _lastTickLogEntry; _chunkRemainder = ''; + + _totalInputBytes = 0; + _processedInputChars = 0; + _progressCallback; + MAJOR_VERSION = 7; MINOR_VERSION = 6; constructor() { @@ -70,18 +74,19 @@ export class Processor extends LogReader { parseInt, parseInt, parseInt, parseInt, parseString, parseString, parseString, parseString, parseString, parseString ]; - this.dispatchTable_ = { + this.setDispatchTable({ __proto__: null, 'v8-version': { parsers: [ parseInt, parseInt, ], - processor: this.processV8Version + processor: this.processV8Version, }, 'shared-library': { parsers: [parseString, parseInt, parseInt, parseInt], - processor: this.processSharedLibrary + processor: this.processSharedLibrary.bind(this), + isAsync: true, }, 'code-creation': { parsers: [ @@ -189,7 +194,7 @@ export class Processor extends LogReader { parsers: [parseString, parseVarArgs], processor: this.processApiEvent }, - }; + }); // TODO(cbruni): Choose correct cpp entries provider this._cppEntriesProvider = new RemoteLinuxCppEntriesProvider(); } @@ -203,11 +208,27 @@ export class Processor extends LogReader { this._chunkConsumer.push(chunk) } + setProgressCallback(totalSize, callback) { + this._totalInputBytes = totalSize; + this._progressCallback = callback; + } + + async _updateProgress() { + if (!this._progressCallback) return; + // We use chars and bytes interchangeably for simplicity. This causes us to + // slightly underestimate progress. + this._progressCallback( + this._processedInputChars / this._totalInputBytes, + this._processedInputChars); + } + async _processChunk(chunk) { + const prevProcessedInputChars = this._processedInputChars; let end = chunk.length; let current = 0; let next = 0; let line; + let lineNumber = 1; try { while (current < end) { next = chunk.indexOf('\n', current); @@ -221,10 +242,14 @@ export class Processor extends LogReader { this._chunkRemainder = ''; } current = next + 1; + lineNumber++; await this.processLogLine(line); + this._processedInputChars = prevProcessedInputChars + current; } + this._updateProgress(); } catch (e) { - console.error(`Error occurred during parsing, trying to continue: ${e}`); + console.error( + `Could not parse log line ${lineNumber}, trying to continue: ${e}`); } } @@ -248,6 +273,9 @@ export class Processor extends LogReader { async finalize() { await this._chunkConsumer.consumeAll(); + if (this._profile.warnings.size > 0) { + console.warn('Found profiler warnings:', this._profile.warnings); + } // TODO(cbruni): print stats; this._mapTimeline.transitions = new Map(); let id = 0; @@ -310,12 +338,13 @@ export class Processor extends LogReader { timestamp, codeSize, instructionStart, inliningId, scriptOffset, deoptKind, deoptLocation, deoptReason) { this._lastTimestamp = timestamp; - const codeEntry = this._profile.findEntry(instructionStart); + const profCodeEntry = this._profile.findEntry(instructionStart); const logEntry = new DeoptLogEntry( - deoptKind, timestamp, codeEntry, deoptReason, deoptLocation, + deoptKind, timestamp, profCodeEntry, deoptReason, deoptLocation, scriptOffset, instructionStart, codeSize, inliningId); + profCodeEntry.logEntry.add(logEntry); this._deoptTimeline.push(logEntry); - this.addSourcePosition(codeEntry, logEntry); + this.addSourcePosition(profCodeEntry, logEntry); logEntry.functionSourcePosition = logEntry.sourcePosition; // custom parse deopt location if (deoptLocation === '') return; @@ -324,7 +353,7 @@ export class Processor extends LogReader { if (inlinedPos > 0) { deoptLocation = deoptLocation.substring(0, inlinedPos) } - const script = this.getProfileEntryScript(codeEntry); + const script = this.getProfileEntryScript(profCodeEntry); if (!script) return; const colSeparator = deoptLocation.lastIndexOf(':'); const rowSeparator = deoptLocation.lastIndexOf(':', colSeparator - 1); @@ -338,16 +367,16 @@ export class Processor extends LogReader { processFeedbackVector( timestamp, fbv_address, fbv_length, instructionStart, optimization_marker, optimization_tier, invocation_count, profiler_ticks, fbv_string) { - const codeEntry = this._profile.findEntry(instructionStart); - if (!codeEntry) { + const profCodeEntry = this._profile.findEntry(instructionStart); + if (!profCodeEntry) { console.warn('Didn\'t find code for FBV', {fbv, instructionStart}); return; } const fbv = new FeedbackVectorEntry( - timestamp, codeEntry.logEntry, fbv_address, fbv_length, + timestamp, profCodeEntry.logEntry, fbv_address, fbv_length, optimization_marker, optimization_tier, invocation_count, profiler_ticks, fbv_string); - codeEntry.logEntry.setFeedbackVector(fbv); + profCodeEntry.logEntry.setFeedbackVector(fbv); } processScriptSource(scriptId, url, source) { @@ -387,7 +416,12 @@ export class Processor extends LogReader { const entryStack = this._profile.recordTick( time_ns, vmState, this.processStack(pc, tos_or_external_callback, stack)); - this._tickTimeline.push(new TickLogEntry(time_ns, vmState, entryStack)) + const newEntry = new TickLogEntry(time_ns, vmState, entryStack); + this._tickTimeline.push(newEntry); + if (this._lastTickLogEntry !== undefined) { + this._lastTickLogEntry.end(time_ns); + } + this._lastTickLogEntry = newEntry; } processCodeSourceInfo( @@ -479,14 +513,18 @@ export class Processor extends LogReader { return; } } - // TODO: use SourcePosition directly. - let edge = new Edge(type, name, reason, time, from_, to_); - const codeEntry = this._profile.findEntry(pc) - to_.entry = codeEntry; - let script = this.getProfileEntryScript(codeEntry); - if (script) { - to_.sourcePosition = script.addSourcePosition(line, column, to_) + if (pc) { + const profCodeEntry = this._profile.findEntry(pc); + if (profCodeEntry) { + to_.entry = profCodeEntry; + profCodeEntry.logEntry.add(to_); + let script = this.getProfileEntryScript(profCodeEntry); + if (script) { + to_.sourcePosition = script.addSourcePosition(line, column, to_); + } + } } + let edge = new Edge(type, name, reason, time, from_, to_); if (to_.parent !== undefined && to_.parent === from_) { // Fix bug where we double log transitions. console.warn('Fixing up double transition'); @@ -540,19 +578,7 @@ export class Processor extends LogReader { } processApiEvent(type, varArgs) { - let name, arg1; - if (varArgs.length == 0) { - const index = type.indexOf(':'); - if (index > 0) { - name = type; - type = type.substr(0, index); - } - } else { - name = varArgs[0]; - arg1 = varArgs[1]; - } - this._apiTimeline.push( - new ApiLogEntry(type, this._lastTimestamp, name, arg1)); + // legacy events that are no longer supported } processTimerEventStart(type, time) { @@ -589,10 +615,6 @@ export class Processor extends LogReader { return this._codeTimeline; } - get apiTimeline() { - return this._apiTimeline; - } - get tickTimeline() { return this._tickTimeline; } diff --git a/deps/v8/tools/system-analyzer/view/code-panel-template.html b/deps/v8/tools/system-analyzer/view/code-panel-template.html index 105e6b980c13ea..13c1923639ad7d 100644 --- a/deps/v8/tools/system-analyzer/view/code-panel-template.html +++ b/deps/v8/tools/system-analyzer/view/code-panel-template.html @@ -9,17 +9,24 @@ #sourceCode { white-space: pre-line; } - .register { + .reg, .addr { border-bottom: 1px dashed; border-radius: 2px; } - .register:hover { + .reg:hover, .addr:hover { background-color: var(--border-color); } - .register.selected { + .reg.selected, .addr.selected { color: var(--default-color); background-color: var(--border-color); } + .addr:hover { + cursor: pointer; + } + .basicBlock:hover { + background-color: var(--border-color); + border-radius: 2px; + }
      @@ -37,7 +44,5 @@

      FeedbackVector

      Disassembly

      
      -    

      Source Code

      -
      
         
      diff --git a/deps/v8/tools/system-analyzer/view/code-panel.mjs b/deps/v8/tools/system-analyzer/view/code-panel.mjs index 084c8fb2d35f70..3d8e02697a414a 100644 --- a/deps/v8/tools/system-analyzer/view/code-panel.mjs +++ b/deps/v8/tools/system-analyzer/view/code-panel.mjs @@ -1,15 +1,10 @@ // Copyright 2020 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. + import {SelectRelatedEvent} from './events.mjs'; import {CollapsableElement, DOM, formatBytes, formatMicroSeconds} from './helper.mjs'; -const kRegisters = ['rsp', 'rbp', 'rax', 'rbx', 'rcx', 'rdx', 'rsi', 'rdi']; -// Add Interpreter and x64 registers -for (let i = 0; i < 14; i++) { - kRegisters.push(`r${i}`); -} - DOM.defineCustomElement('view/code-panel', (templateText) => class CodePanel extends CollapsableElement { @@ -23,8 +18,7 @@ DOM.defineCustomElement('view/code-panel', this._codeSelectNode = this.$('#codeSelect'); this._disassemblyNode = this.$('#disassembly'); this._feedbackVectorNode = this.$('#feedbackVector'); - this._sourceNode = this.$('#sourceCode'); - this._registerSelector = new RegisterSelector(this._disassemblyNode); + this._selectionHandler = new SelectionHandler(this._disassemblyNode); this._codeSelectNode.onchange = this._handleSelectCode.bind(this); this.$('#selectedRelatedButton').onclick = @@ -56,7 +50,8 @@ DOM.defineCustomElement('view/code-panel', script: entry.script, type: entry.type, kind: entry.kindName, - variants: entry.variants.length > 1 ? entry.variants : undefined, + variants: entry.variants.length > 1 ? [undefined, ...entry.variants] : + undefined, }; } this.requestUpdate(); @@ -66,7 +61,6 @@ DOM.defineCustomElement('view/code-panel', this._updateSelect(); this._updateDisassembly(); this._updateFeedbackVector(); - this._sourceNode.innerText = this._entry?.source ?? ''; } _updateFeedbackVector() { @@ -81,24 +75,14 @@ DOM.defineCustomElement('view/code-panel', } _updateDisassembly() { - if (!this._entry?.code) { - this._disassemblyNode.innerText = ''; - return; - } - const rawCode = this._entry?.code; + this._disassemblyNode.innerText = ''; + if (!this._entry?.code) return; try { - this._disassemblyNode.innerText = rawCode; - let formattedCode = this._disassemblyNode.innerHTML; - for (let register of kRegisters) { - const button = `${register}` - formattedCode = formattedCode.replaceAll(register, button); - } - // Let's replace the base-address since it doesn't add any value. - // TODO - this._disassemblyNode.innerHTML = formattedCode; + this._disassemblyNode.appendChild( + new AssemblyFormatter(this._entry).fragment); } catch (e) { console.error(e); - this._disassemblyNode.innerText = rawCode; + this._disassemblyNode.innerText = this._entry.code; } } @@ -135,34 +119,246 @@ DOM.defineCustomElement('view/code-panel', } }); -class RegisterSelector { - _currentRegister; +const kRegisters = ['rsp', 'rbp', 'rax', 'rbx', 'rcx', 'rdx', 'rsi', 'rdi']; +// Make sure we dont match register on bytecode: Star1 or Star2 +const kAvoidBytecodeOpsRegexpSource = '(.*?[^a-zA-Z])' +// Look for registers in strings like: movl rbx,[rcx-0x30] +const kRegisterRegexpSource = `(?${kRegisters.join('|')}|r[0-9]+)` +const kRegisterSplitRegexp = + new RegExp(`${kAvoidBytecodeOpsRegexpSource}${kRegisterRegexpSource}`) +const kIsRegisterRegexp = new RegExp(`^${kRegisterRegexpSource}$`); + +const kFullAddressRegexp = /(0x[0-9a-f]{8,})/; +const kRelativeAddressRegexp = /([+-]0x[0-9a-f]+)/; +const kAnyAddressRegexp = /(?
      [+-]?0x[0-9a-f]+)/; + +const kJmpRegexp = new RegExp(`jmp ${kRegisterRegexpSource}`); +const kMovRegexp = + new RegExp(`mov. ${kRegisterRegexpSource},${kAnyAddressRegexp.source}`); + +class AssemblyFormatter { + constructor(codeLogEntry) { + this._fragment = new DocumentFragment(); + this._entry = codeLogEntry; + this._lines = new Map(); + this._previousLine = undefined; + this._parseLines(); + this._format(); + } + + get fragment() { + return this._fragment; + } + + _format() { + let block = DOM.div(['basicBlock', 'header']); + this._lines.forEach(line => { + if (!block || line.isBlockStart) { + this._fragment.appendChild(block); + block = DOM.div('basicBlock'); + } + block.appendChild(line.format()) + }); + this._fragment.appendChild(block); + } + + _parseLines() { + this._entry.code.split('\n').forEach(each => this._parseLine(each)); + this._findBasicBlocks(); + } + + _parseLine(line) { + const parts = line.split(' '); + // Use unique placeholder for address: + let lineAddress = -this._lines.size; + for (let part of parts) { + if (kFullAddressRegexp.test(part)) { + lineAddress = parseInt(part); + break; + } + } + const newLine = new AssemblyLine(lineAddress, parts); + // special hack for: mov reg 0x...; jmp reg; + if (lineAddress <= 0 && this._previousLine) { + const jmpMatch = line.match(kJmpRegexp); + if (jmpMatch) { + const register = jmpMatch.groups.register; + const movMatch = this._previousLine.line.match(kMovRegexp); + if (movMatch.groups.register === register) { + newLine.outgoing.push(movMatch.groups.address); + } + } + } + this._lines.set(lineAddress, newLine); + this._previousLine = newLine; + } + + _findBasicBlocks() { + const lines = Array.from(this._lines.values()); + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + let forceBasicBlock = i == 0; + if (i > 0 && i < lines.length - 1) { + const prevHasAddress = lines[i - 1].address > 0; + const currentHasAddress = lines[i].address > 0; + const nextHasAddress = lines[i + 1].address > 0; + if (prevHasAddress !== currentHasAddress && + currentHasAddress == nextHasAddress) { + forceBasicBlock = true; + } + } + if (forceBasicBlock) { + // Add fake-incoming address to mark a block start. + line.addIncoming(0); + } + line.outgoing.forEach(address => { + const outgoing = this._lines.get(address); + if (outgoing) outgoing.addIncoming(line.address); + }) + } + } +} + +class AssemblyLine { + constructor(address, parts) { + this.address = address; + this.outgoing = []; + this.incoming = []; + parts.forEach(part => { + const fullMatch = part.match(kFullAddressRegexp); + if (fullMatch) { + let inlineAddress = parseInt(fullMatch[0]); + if (inlineAddress != this.address) this.outgoing.push(inlineAddress); + if (Number.isNaN(inlineAddress)) throw 'invalid address'; + } else if (kRelativeAddressRegexp.test(part)) { + this.outgoing.push(this._toAbsoluteAddress(part)); + } + }); + this.line = parts.join(' '); + } + + get isBlockStart() { + return this.incoming.length > 0; + } + + addIncoming(address) { + this.incoming.push(address); + } + + format() { + const content = DOM.span({textContent: this.line + '\n'}); + let formattedCode = content.innerHTML.split(kRegisterSplitRegexp) + .map(part => this._formatRegisterPart(part)) + .join(''); + formattedCode = + formattedCode.split(kAnyAddressRegexp) + .map((part, index) => this._formatAddressPart(part, index)) + .join(''); + // Let's replace the base-address since it doesn't add any value. + // TODO + content.innerHTML = formattedCode; + return content; + } + + _formatRegisterPart(part) { + if (!kIsRegisterRegexp.test(part)) return part; + return `${part}` + } + + _formatAddressPart(part, index) { + if (kFullAddressRegexp.test(part)) { + // The first or second address must be the line address + if (index <= 1) { + return `${part}`; + } + return `${part}`; + } else if (kRelativeAddressRegexp.test(part)) { + return `${part}`; + } else { + return part; + } + } + + _toAbsoluteAddress(part) { + return this.address + parseInt(part); + } +} + +class SelectionHandler { + _currentRegisterHovered; + _currentRegisterClicked; + constructor(node) { this._node = node; - this._node.onmousemove = this._handleDisassemblyMouseMove.bind(this); + this._node.onmousemove = this._handleMouseMove.bind(this); + this._node.onclick = this._handleClick.bind(this); } - _handleDisassemblyMouseMove(event) { + $(query) { + return this._node.querySelectorAll(query); + } + + _handleClick(event) { const target = event.target; - if (!target.classList.contains('register')) { - this._clear(); - return; - }; - this._select(target.innerText); + if (target.classList.contains('addr')) { + return this._handleClickAddress(target); + } else if (target.classList.contains('reg')) { + this._handleClickRegister(target); + } else { + this._clearRegisterSelection(); + } + } + + _handleClickAddress(target) { + let targetAddress = target.getAttribute('data-addr') ?? target.innerText; + // Clear any selection + for (let addrNode of this.$('.addr.selected')) { + addrNode.classList.remove('selected'); + } + // Highlight all matching addresses + let lineAddrNode; + for (let addrNode of this.$(`.addr[data-addr="${targetAddress}"]`)) { + addrNode.classList.add('selected'); + if (addrNode.classList.contains('line') && lineAddrNode == undefined) { + lineAddrNode = addrNode; + } + } + // Jump to potential target address. + if (lineAddrNode) { + lineAddrNode.scrollIntoView({behavior: 'smooth', block: 'nearest'}); + } + } + + _handleClickRegister(target) { + this._setRegisterSelection(target.innerText); + this._currentRegisterClicked = this._currentRegisterHovered; + } + + _handleMouseMove(event) { + if (this._currentRegisterClicked) return; + const target = event.target; + if (!target.classList.contains('reg')) { + this._clearRegisterSelection(); + } else { + this._setRegisterSelection(target.innerText); + } } - _clear() { - if (this._currentRegister == undefined) return; - for (let node of this._node.querySelectorAll('.register')) { + _clearRegisterSelection() { + if (!this._currentRegisterHovered) return; + for (let node of this.$('.reg.selected')) { node.classList.remove('selected'); } + this._currentRegisterClicked = undefined; + this._currentRegisterHovered = undefined; } - _select(register) { - if (register == this._currentRegister) return; - this._clear(); - this._currentRegister = register; - for (let node of this._node.querySelectorAll(`.register.${register}`)) { + _setRegisterSelection(register) { + if (register == this._currentRegisterHovered) return; + this._clearRegisterSelection(); + this._currentRegisterHovered = register; + for (let node of this.$(`.reg.${register}`)) { node.classList.add('selected'); } } diff --git a/deps/v8/tools/system-analyzer/view/events.mjs b/deps/v8/tools/system-analyzer/view/events.mjs index f91fd6ffe82e58..024ed27f3c1ba6 100644 --- a/deps/v8/tools/system-analyzer/view/events.mjs +++ b/deps/v8/tools/system-analyzer/view/events.mjs @@ -50,10 +50,12 @@ export class SelectTimeEvent extends AppEvent { return 'timerangeselect'; } - constructor(start = 0, end = Infinity) { + constructor(start = 0, end = Infinity, focus = false, zoom = false) { super(SelectTimeEvent.name); this.start = start; this.end = end; + this.focus = focus; + this.zoom = zoom; } } diff --git a/deps/v8/tools/system-analyzer/view/helper.mjs b/deps/v8/tools/system-analyzer/view/helper.mjs index 50dc6a9a03739f..93823e1106c503 100644 --- a/deps/v8/tools/system-analyzer/view/helper.mjs +++ b/deps/v8/tools/system-analyzer/view/helper.mjs @@ -122,117 +122,7 @@ export class CSSColor { } } -export class DOM { - static element(type, options) { - const node = document.createElement(type); - if (options !== undefined) { - if (typeof options === 'string') { - // Old behaviour: options = class string - node.className = options; - } else if (Array.isArray(options)) { - // Old behaviour: options = class array - DOM.addClasses(node, options); - } else { - // New behaviour: options = attribute dict - for (const [key, value] of Object.entries(options)) { - if (key == 'className') { - node.className = value; - } else if (key == 'classList') { - node.classList = value; - } else if (key == 'textContent') { - node.textContent = value; - } else if (key == 'children') { - for (const child of value) { - node.appendChild(child); - } - } else { - node.setAttribute(key, value); - } - } - } - } - return node; - } - - static addClasses(node, classes) { - const classList = node.classList; - if (typeof classes === 'string') { - classList.add(classes); - } else { - for (let i = 0; i < classes.length; i++) { - classList.add(classes[i]); - } - } - return node; - } - - static text(string) { - return document.createTextNode(string); - } - - static button(label, clickHandler) { - const button = DOM.element('button'); - button.innerText = label; - button.onclick = clickHandler; - return button; - } - - static div(options) { - return this.element('div', options); - } - - static span(options) { - return this.element('span', options); - } - - static table(options) { - return this.element('table', options); - } - - static tbody(options) { - return this.element('tbody', options); - } - - static td(textOrNode, className) { - const node = this.element('td'); - if (typeof textOrNode === 'object') { - node.appendChild(textOrNode); - } else if (textOrNode) { - node.innerText = textOrNode; - } - if (className) node.className = className; - return node; - } - - static tr(classes) { - return this.element('tr', classes); - } - - static removeAllChildren(node) { - let range = document.createRange(); - range.selectNodeContents(node); - range.deleteContents(); - } - - static defineCustomElement( - path, nameOrGenerator, maybeGenerator = undefined) { - let generator = nameOrGenerator; - let name = nameOrGenerator; - if (typeof nameOrGenerator == 'function') { - console.assert(maybeGenerator === undefined); - name = path.substring(path.lastIndexOf('/') + 1, path.length); - } else { - console.assert(typeof nameOrGenerator == 'string'); - generator = maybeGenerator; - } - path = path + '-template.html'; - fetch(path) - .then(stream => stream.text()) - .then( - templateText => - customElements.define(name, generator(templateText))); - } -} +import {DOM} from '../../js/web-api-helper.mjs'; const SVGNamespace = 'http://www.w3.org/2000/svg'; export class SVG { @@ -259,45 +149,7 @@ export function $(id) { return document.querySelector(id) } -export class V8CustomElement extends HTMLElement { - _updateTimeoutId; - _updateCallback = this.forceUpdate.bind(this); - - constructor(templateText) { - super(); - const shadowRoot = this.attachShadow({mode: 'open'}); - shadowRoot.innerHTML = templateText; - } - - $(id) { - return this.shadowRoot.querySelector(id); - } - - querySelectorAll(query) { - return this.shadowRoot.querySelectorAll(query); - } - - requestUpdate(useAnimation = false) { - if (useAnimation) { - window.cancelAnimationFrame(this._updateTimeoutId); - this._updateTimeoutId = - window.requestAnimationFrame(this._updateCallback); - } else { - // Use timeout tasks to asynchronously update the UI without blocking. - clearTimeout(this._updateTimeoutId); - const kDelayMs = 5; - this._updateTimeoutId = setTimeout(this._updateCallback, kDelayMs); - } - } - - forceUpdate() { - this._update(); - } - - _update() { - throw Error('Subclass responsibility'); - } -} +import {V8CustomElement} from '../../js/web-api-helper.mjs' export class CollapsableElement extends V8CustomElement { constructor(templateText) { @@ -319,7 +171,6 @@ export class CollapsableElement extends V8CustomElement { this._closer.checked = true; this._requestUpdateIfVisible(); } - this.scrollIntoView(); } show() { @@ -327,7 +178,7 @@ export class CollapsableElement extends V8CustomElement { this._closer.checked = false; this._requestUpdateIfVisible(); } - this.scrollIntoView(); + this.scrollIntoView({behavior: 'smooth', block: 'center'}); } requestUpdate(useAnimation = false) { @@ -468,3 +319,4 @@ export function gradientStopsFromGroups( } export * from '../helper.mjs'; +export * from '../../js/web-api-helper.mjs' diff --git a/deps/v8/tools/system-analyzer/view/log-file-reader-template.html b/deps/v8/tools/system-analyzer/view/log-file-reader-template.html deleted file mode 100644 index 68403300e30b8f..00000000000000 --- a/deps/v8/tools/system-analyzer/view/log-file-reader-template.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - -
      -
      - - Drag and drop a v8.log file into this area, or click to choose from disk. - - -
      -
      -
      -
      -
      diff --git a/deps/v8/tools/system-analyzer/view/log-file-reader.mjs b/deps/v8/tools/system-analyzer/view/log-file-reader.mjs index 5edb90d2fca567..8d65c030f14f7c 100644 --- a/deps/v8/tools/system-analyzer/view/log-file-reader.mjs +++ b/deps/v8/tools/system-analyzer/view/log-file-reader.mjs @@ -1,110 +1,12 @@ // Copyright 2020 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import {delay} from '../helper.mjs'; -import {DOM, V8CustomElement} from './helper.mjs'; - -DOM.defineCustomElement('view/log-file-reader', - (templateText) => - class LogFileReader extends V8CustomElement { - constructor() { - super(templateText); - this.addEventListener('click', e => this.handleClick(e)); - this.addEventListener('dragover', e => this.handleDragOver(e)); - this.addEventListener('drop', e => this.handleChange(e)); - this.$('#file').addEventListener('change', e => this.handleChange(e)); - this.$('#fileReader') - .addEventListener('keydown', e => this.handleKeyEvent(e)); - } - - set error(message) { - this._updateLabel(message); - this.root.className = 'fail'; - } - - _updateLabel(text) { - this.$('#label').innerText = text; - } - - handleKeyEvent(event) { - if (event.key == 'Enter') this.handleClick(event); - } - - handleClick(event) { - this.$('#file').click(); - } - - handleChange(event) { - // Used for drop and file change. - event.preventDefault(); - this.dispatchEvent( - new CustomEvent('fileuploadstart', {bubbles: true, composed: true})); - const host = event.dataTransfer ? event.dataTransfer : event.target; - this.readFile(host.files[0]); - } - - handleDragOver(event) { - event.preventDefault(); - } - - connectedCallback() { - this.fileReader.focus(); - } - - get fileReader() { - return this.$('#fileReader'); - } - - get root() { - return this.$('#root'); - } - - readFile(file) { - if (!file) { - this.error = 'Failed to load file.'; - return; - } - this.fileReader.blur(); - this.root.className = 'loading'; - // Delay the loading a bit to allow for CSS animations to happen. - window.requestAnimationFrame(() => this.asyncReadFile(file)); - } - - async asyncReadFile(file) { - const decoder = globalThis.TextDecoderStream; - if (decoder) { - await this._streamFile(file, decoder); - } else { - await this._readFullFile(file); - } - this._updateLabel(`Finished loading '${file.name}'.`); - this.dispatchEvent( - new CustomEvent('fileuploadend', {bubbles: true, composed: true})); - this.root.className = 'done'; - } - - async _readFullFile(file) { - const text = await file.text(); - this._handleFileChunk(text) - } - - async _streamFile(file, decoder) { - const stream = file.stream().pipeThrough(new decoder()); - const reader = stream.getReader(); - let chunk, readerDone; - do { - const readResult = await reader.read(); - chunk = readResult.value; - readerDone = readResult.done; - if (chunk) this._handleFileChunk(chunk); - } while (!readerDone); - } - - _handleFileChunk(chunk) { - this.dispatchEvent(new CustomEvent('fileuploadchunk', { - bubbles: true, - composed: true, - detail: chunk, - })); - } -}); +import {DOM, FileReader} from './helper.mjs'; + +DOM.defineCustomElement( + '../js/log-file-reader', + (templateText) => class LogFileReader extends FileReader { + constructor() { + super(templateText); + } + }); diff --git a/deps/v8/tools/system-analyzer/view/property-link-table-template.html b/deps/v8/tools/system-analyzer/view/property-link-table-template.html index 85f2cdc178caae..29724a9034857e 100644 --- a/deps/v8/tools/system-analyzer/view/property-link-table-template.html +++ b/deps/v8/tools/system-analyzer/view/property-link-table-template.html @@ -6,34 +6,58 @@
      -
      \ No newline at end of file + diff --git a/deps/v8/tools/system-analyzer/view/property-link-table.mjs b/deps/v8/tools/system-analyzer/view/property-link-table.mjs index 17cecc58ed90b6..95c496d2611a55 100644 --- a/deps/v8/tools/system-analyzer/view/property-link-table.mjs +++ b/deps/v8/tools/system-analyzer/view/property-link-table.mjs @@ -3,124 +3,141 @@ // found in the LICENSE file. import {App} from '../index.mjs' -import {FocusEvent} from './events.mjs'; -import {DOM, ExpandableText, V8CustomElement} from './helper.mjs'; - -DOM.defineCustomElement( - 'view/property-link-table', - template => class PropertyLinkTable extends V8CustomElement { - _instance; - _propertyDict; - _instanceLinkButtons = false; - _logEntryClickHandler = this._handleLogEntryClick.bind(this); - _logEntryRelatedHandler = this._handleLogEntryRelated.bind(this); - _arrayValueSelectHandler = this._handleArrayValueSelect.bind(this); - - constructor() { - super(template); - } - - set instanceLinkButtons(newValue) { - this._instanceLinkButtons = newValue; - } - - set propertyDict(propertyDict) { - if (this._propertyDict === propertyDict) return; - if (typeof propertyDict !== 'object') { - throw new Error( - `Invalid property dict, expected object: ${propertyDict}`); - } - this._propertyDict = propertyDict; - this.requestUpdate(); - } - - _update() { - this._fragment = new DocumentFragment(); - this._table = DOM.table('properties'); - for (let key in this._propertyDict) { - const value = this._propertyDict[key]; - this._addKeyValue(key, value); - } - this._addFooter(); - this._fragment.appendChild(this._table); - - const newContent = DOM.div(); - newContent.appendChild(this._fragment); - this.$('#content').replaceWith(newContent); - newContent.id = 'content'; - this._fragment = undefined; - } - - _addKeyValue(key, value) { - if (key == 'title') { - this._addTitle(value); - return; - } - if (key == '__this__') { - this._instance = value; - return; - } - const row = this._table.insertRow(); - row.insertCell().innerText = key; - const cell = row.insertCell(); - if (value == undefined) return; - if (Array.isArray(value)) { - cell.appendChild(this._addArrayValue(value)); - return; - } - if (App.isClickable(value)) { - cell.className = 'clickable'; - cell.onclick = this._logEntryClickHandler; - cell.data = value; - } - new ExpandableText(cell, value.toString()); - } - - _addArrayValue(array) { - if (array.length == 0) { - return DOM.text('empty'); - } else if (array.length > 200) { - return DOM.text(`${array.length} items`); - } - const select = DOM.element('select'); - select.onchange = this._arrayValueSelectHandler; - for (let value of array) { - const option = DOM.element('option'); - option.innerText = value.toString(); - option.data = value; - select.add(option); - } - return select; - } - - _addTitle(value) { - const title = DOM.element('h3'); - title.innerText = value; - this._fragment.appendChild(title); - } - - _addFooter() { - if (this._instance === undefined) return; - if (!this._instanceLinkButtons) return; - const td = this._table.createTFoot().insertRow().insertCell(); - td.colSpan = 2; - let showButton = - td.appendChild(DOM.button('Show', this._logEntryClickHandler)); - showButton.data = this._instance; - let showRelatedButton = td.appendChild( - DOM.button('Show Related', this._logEntryRelatedClickHandler)); - showRelatedButton.data = this._instance; - } - - _handleArrayValueSelect(event) { - const logEntry = event.currentTarget.selectedOptions[0].data; - this.dispatchEvent(new FocusEvent(logEntry)); - } - _handleLogEntryClick(event) { - this.dispatchEvent(new FocusEvent(event.currentTarget.data)); - } - - _handleLogEntryRelated(event) { - this.dispatchEvent(new SelectRelatedEvent(event.currentTarget.data)); - } - }); + +import {FocusEvent, SelectRelatedEvent} from './events.mjs'; +import {DOM, entriesEquals, ExpandableText, V8CustomElement} from './helper.mjs'; + +DOM.defineCustomElement('view/property-link-table', + template => + class PropertyLinkTable extends V8CustomElement { + _object; + _propertyDict; + _instanceLinkButtons = false; + + _showHandler = this._handleShow.bind(this); + _showSourcePositionHandler = this._handleShowSourcePosition.bind(this); + _showRelatedHandler = this._handleShowRelated.bind(this); + _arrayValueSelectHandler = this._handleArrayValueSelect.bind(this); + + constructor() { + super(template); + } + + set instanceLinkButtons(newValue) { + this._instanceLinkButtons = newValue; + } + + set propertyDict(propertyDict) { + if (entriesEquals(this._propertyDict, propertyDict)) return; + if (typeof propertyDict !== 'object') { + throw new Error( + `Invalid property dict, expected object: ${propertyDict}`); + } + this._propertyDict = propertyDict; + this.requestUpdate(); + } + + _update() { + this._fragment = new DocumentFragment(); + this._table = DOM.table(); + for (let key in this._propertyDict) { + const value = this._propertyDict[key]; + this._addKeyValue(key, value); + } + + const tableDiv = DOM.div('properties'); + tableDiv.appendChild(this._table); + this._fragment.appendChild(tableDiv); + this._createFooter(); + + const newContent = DOM.div(); + newContent.appendChild(this._fragment); + this.$('#content').replaceWith(newContent); + newContent.id = 'content'; + this._fragment = undefined; + } + + _addKeyValue(key, value) { + if (key == 'title') { + this._addTitle(value); + return; + } + if (key == '__this__') { + this._object = value; + return; + } + const row = this._table.insertRow(); + row.insertCell().innerText = key; + const cell = row.insertCell(); + if (value == undefined) return; + if (Array.isArray(value)) { + cell.appendChild(this._addArrayValue(value)); + return; + } else if (App.isClickable(value)) { + cell.className = 'clickable'; + cell.onclick = this._showHandler; + cell.data = value; + } + if (value.isCode) { + cell.classList.add('code'); + } + new ExpandableText(cell, value.toString()); + } + + _addArrayValue(array) { + if (array.length == 0) { + return DOM.text('empty'); + } else if (array.length > 200) { + return DOM.text(`${array.length} items`); + } + const select = DOM.element('select'); + select.onchange = this._arrayValueSelectHandler; + for (let value of array) { + const option = DOM.element('option'); + option.innerText = value === undefined ? '' : value.toString(); + option.data = value; + select.add(option); + } + return select; + } + + _addTitle(value) { + const title = DOM.element('h3'); + title.innerText = value; + this._fragment.appendChild(title); + } + + _createFooter() { + if (this._object === undefined) return; + if (!this._instanceLinkButtons) return; + const footer = DOM.div('footer'); + let showButton = footer.appendChild(DOM.button('Show', this._showHandler)); + showButton.data = this._object; + if (this._object.sourcePosition) { + let showSourcePositionButton = footer.appendChild( + DOM.button('Source Position', this._showSourcePositionHandler)); + showSourcePositionButton.data = this._object; + } + let showRelatedButton = footer.appendChild( + DOM.button('Show Related', this._showRelatedHandler)); + showRelatedButton.data = this._object; + this._fragment.appendChild(footer); + } + + _handleArrayValueSelect(event) { + const logEntry = event.currentTarget.selectedOptions[0].data; + this.dispatchEvent(new FocusEvent(logEntry)); + } + + _handleShow(event) { + this.dispatchEvent(new FocusEvent(event.currentTarget.data)); + } + + _handleShowSourcePosition(event) { + this.dispatchEvent(new FocusEvent(event.currentTarget.data.sourcePosition)); + } + + _handleShowRelated(event) { + this.dispatchEvent(new SelectRelatedEvent(event.currentTarget.data)); + } +}); diff --git a/deps/v8/tools/system-analyzer/view/script-panel-template.html b/deps/v8/tools/system-analyzer/view/script-panel-template.html index de3150366a5f6b..1039a8c4521067 100644 --- a/deps/v8/tools/system-analyzer/view/script-panel-template.html +++ b/deps/v8/tools/system-analyzer/view/script-panel-template.html @@ -7,7 +7,7 @@ - - - - - -

      - Chrome V8 profiling log processor -

      -

      -Process V8's profiling information log (sampling profiler tick information) -in your browser. Particularly useful if you don't have the V8 shell (d8) -at hand on your system. You still have to run Chrome with the appropriate - - command line flags -to produce the profiling log. -

      -

      Usage:

      -

      -Click on the button and browse to the profiling log file (usually, v8.log). -Process will start automatically and the output will be visible in the below -text area. -

      -

      Limitations and disclaimer:

      -

      -This page offers a subset of the functionalities of the command-line tick -processor utility in the V8 repository. In particular, this page cannot -access the command-line utility that provides library symbol information, -hence the [C++] section of the output stays empty. Also consider that this -web-based tool is provided only for convenience and quick reference, you -should refer to the - - command-line -version for full output. -

      -

      - -

      -

      - -

      -

      -Copyright the V8 Authors - Last change to this page: 12/12/2012 -

      - - - - diff --git a/deps/v8/tools/tickprocessor.mjs b/deps/v8/tools/tickprocessor.mjs index 1929c3069de64a..6afcea07978927 100644 --- a/deps/v8/tools/tickprocessor.mjs +++ b/deps/v8/tools/tickprocessor.mjs @@ -510,10 +510,9 @@ export class TickProcessor extends LogReader { onlySummary, runtimeTimerFilter, preprocessJson) { - super({}, - timedRange, - pairwiseTimedRange); - this.dispatchTable_ = { + super(timedRange, pairwiseTimedRange); + this.setDispatchTable({ + __proto__: null, 'shared-library': { parsers: [parseString, parseInt, parseInt, parseInt], processor: this.processSharedLibrary @@ -575,17 +574,17 @@ export class TickProcessor extends LogReader { processor: this.advanceDistortion }, // Ignored events. - 'profiler': null, - 'function-creation': null, - 'function-move': null, - 'function-delete': null, - 'heap-sample-item': null, - 'current-time': null, // Handled specially, not parsed. + 'profiler': undefined, + 'function-creation': undefined, + 'function-move': undefined, + 'function-delete': undefined, + 'heap-sample-item': undefined, + 'current-time': undefined, // Handled specially, not parsed. // Obsolete row types. - 'code-allocate': null, - 'begin-code-region': null, - 'end-code-region': null - }; + 'code-allocate': undefined, + 'begin-code-region': undefined, + 'end-code-region': undefined + }); this.preprocessJson = preprocessJson; this.cppEntriesProvider_ = cppEntriesProvider; diff --git a/deps/v8/tools/torque/format-torque.py b/deps/v8/tools/torque/format-torque.py index 638ca100fb9efb..30404a8151ced0 100755 --- a/deps/v8/tools/torque/format-torque.py +++ b/deps/v8/tools/torque/format-torque.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright 2014 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be @@ -7,14 +7,17 @@ """This program either generates the parser files for Torque, generating the source and header files directly in V8's src directory.""" -# for py2/py3 compatibility -from __future__ import print_function - import subprocess import sys import re from subprocess import Popen, PIPE +def decode(arg, encoding="utf-8"): + return arg.decode(encoding) + +def encode(arg, encoding="utf-8"): + return arg.encode(encoding) + kPercentEscape = r'α'; # Unicode alpha kDerefEscape = r'☆'; # Unicode star kAddressofEscape = r'⌂'; # Unicode house @@ -103,8 +106,8 @@ def process(filename, lint, should_format): p = Popen(['clang-format', '-assume-filename=.ts'], stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True) else: p = Popen(['clang-format', '-assume-filename=.ts'], stdin=PIPE, stdout=PIPE, stderr=PIPE) - output, err = p.communicate(preprocess(content)) - output = postprocess(output) + output, err = p.communicate(encode(preprocess(content))) + output = postprocess(decode(output)) rc = p.returncode if (rc != 0): print("error code " + str(rc) + " running clang-format. Exiting...") @@ -116,7 +119,7 @@ def process(filename, lint, should_format): if should_format: output_file = open(filename, 'wb') - output_file.write(output); + output_file.write(encode(output)) output_file.close() def print_usage(): diff --git a/deps/v8/tools/turbolizer/OWNERS b/deps/v8/tools/turbolizer/OWNERS index b7694bd267bcab..fc52961eff7c55 100644 --- a/deps/v8/tools/turbolizer/OWNERS +++ b/deps/v8/tools/turbolizer/OWNERS @@ -1,2 +1 @@ danno@chromium.org -sigurds@chromium.org diff --git a/deps/v8/tools/turbolizer/info-view.html b/deps/v8/tools/turbolizer/info-view.html index 534860d54adad9..aceb59569497c0 100644 --- a/deps/v8/tools/turbolizer/info-view.html +++ b/deps/v8/tools/turbolizer/info-view.html @@ -22,6 +22,14 @@
+ + + + + + + + diff --git a/deps/v8/tools/turbolizer/src/edge.ts b/deps/v8/tools/turbolizer/src/edge.ts index 30d265c5614da4..c94ef9112e69e8 100644 --- a/deps/v8/tools/turbolizer/src/edge.ts +++ b/deps/v8/tools/turbolizer/src/edge.ts @@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import { GNode, DEFAULT_NODE_BUBBLE_RADIUS } from "../src/node"; +import { GNode, MINIMUM_EDGE_SEPARATION, DEFAULT_NODE_BUBBLE_RADIUS } from "../src/node"; import { Graph } from "./graph"; -export const MINIMUM_EDGE_SEPARATION = 20; +const BEZIER_CONSTANT = 0.3; export class Edge { target: GNode; @@ -64,20 +64,31 @@ export class Edge { const outputApproach = source.getOutputApproach(showTypes); const horizontalPos = this.getInputHorizontalPosition(graph, showTypes); - let result = "M" + outputX + "," + outputY + - "L" + outputX + "," + outputApproach + - "L" + horizontalPos + "," + outputApproach; + let result: string; - if (horizontalPos != inputX) { - result += "L" + horizontalPos + "," + inputApproach; - } else { - if (inputApproach < outputApproach) { - inputApproach = outputApproach; + if (inputY < outputY) { + result = `M ${outputX} ${outputY} + L ${outputX} ${outputApproach} + L ${horizontalPos} ${outputApproach}`; + + if (horizontalPos != inputX) { + result += `L ${horizontalPos} ${inputApproach}`; + } else { + if (inputApproach < outputApproach) { + inputApproach = outputApproach; + } } + + result += `L ${inputX} ${inputApproach} + L ${inputX} ${inputY}`; + } else { + const controlY = outputY + (inputY - outputY) * BEZIER_CONSTANT; + result = `M ${outputX} ${outputY} + C ${outputX} ${controlY}, + ${inputX} ${outputY}, + ${inputX} ${inputY}`; } - result += "L" + inputX + "," + inputApproach + - "L" + inputX + "," + inputY; return result; } diff --git a/deps/v8/tools/turbolizer/src/graph-layout.ts b/deps/v8/tools/turbolizer/src/graph-layout.ts index 3687c28c86a8bf..ad32557e905062 100644 --- a/deps/v8/tools/turbolizer/src/graph-layout.ts +++ b/deps/v8/tools/turbolizer/src/graph-layout.ts @@ -3,11 +3,11 @@ // found in the LICENSE file. import { MAX_RANK_SENTINEL } from "../src/constants"; -import { MINIMUM_EDGE_SEPARATION, Edge } from "../src/edge"; -import { NODE_INPUT_WIDTH, MINIMUM_NODE_OUTPUT_APPROACH, DEFAULT_NODE_BUBBLE_RADIUS, GNode } from "../src/node"; +import { Edge } from "../src/edge"; +import { GNode, MINIMUM_EDGE_SEPARATION, NODE_INPUT_WIDTH, MINIMUM_NODE_OUTPUT_APPROACH, DEFAULT_NODE_BUBBLE_RADIUS } from "../src/node"; import { Graph } from "./graph"; -const DEFAULT_NODE_ROW_SEPARATION = 130; +const DEFAULT_NODE_ROW_SEPARATION = 150; const traceLayout = false; function newGraphOccupation(graph: Graph) { diff --git a/deps/v8/tools/turbolizer/src/graph-view.ts b/deps/v8/tools/turbolizer/src/graph-view.ts index 3cb5e6fbc22259..798a5cd340eb6f 100644 --- a/deps/v8/tools/turbolizer/src/graph-view.ts +++ b/deps/v8/tools/turbolizer/src/graph-view.ts @@ -19,6 +19,13 @@ function nodeToStringKey(n: GNode) { return "" + n.id; } +function nodeOriginToStringKey(n: GNode): string | undefined { + if (n.nodeLabel && n.nodeLabel.origin) { + return "" + n.nodeLabel.origin.nodeId; + } + return undefined; +} + interface GraphState { showTypes: boolean; selection: MySelection; @@ -132,7 +139,7 @@ export class GraphView extends PhaseView { } }; - view.state.selection = new MySelection(nodeToStringKey); + view.state.selection = new MySelection(nodeToStringKey, nodeOriginToStringKey); const defs = svg.append('svg:defs'); defs.append('svg:marker') @@ -254,12 +261,14 @@ export class GraphView extends PhaseView { this.toolbox.appendChild(createImgInput("toggle-types", "toggle types", partial(this.toggleTypesAction, this))); + const adaptedSelection = this.adaptSelectionToCurrentPhase(data.data, rememberedSelection); + this.phaseName = data.name; - this.createGraph(data.data, rememberedSelection); + this.createGraph(data.data, adaptedSelection); this.broker.addNodeHandler(this.selectionHandler); - if (rememberedSelection != null && rememberedSelection.size > 0) { - this.attachSelection(rememberedSelection); + if (adaptedSelection != null && adaptedSelection.size > 0) { + this.attachSelection(adaptedSelection); this.connectVisibleSelectedNodes(); this.viewSelection(); } else { @@ -286,14 +295,14 @@ export class GraphView extends PhaseView { this.deleteContent(); } - createGraph(data, rememberedSelection) { + createGraph(data, selection) { this.graph = new Graph(data); this.showControlAction(this); - if (rememberedSelection != undefined) { + if (selection != undefined) { for (const n of this.graph.nodes()) { - n.visible = n.visible || rememberedSelection.has(nodeToStringKey(n)); + n.visible = n.visible || selection.has(nodeToStringKey(n)); } } @@ -359,6 +368,33 @@ export class GraphView extends PhaseView { }); } + adaptSelectionToCurrentPhase(data, selection) { + const updatedGraphSelection = new Set(); + if (!data || !(selection instanceof Map)) return updatedGraphSelection; + // Adding survived nodes (with the same id) + for (const node of data.nodes) { + const stringKey = this.state.selection.stringKey(node); + if (selection.has(stringKey)) { + updatedGraphSelection.add(stringKey); + } + } + // Adding children of nodes + for (const node of data.nodes) { + const originStringKey = this.state.selection.originStringKey(node); + if (originStringKey && selection.has(originStringKey)) { + updatedGraphSelection.add(this.state.selection.stringKey(node)); + } + } + // Adding ancestors of nodes + selection.forEach(selectedNode => { + const originStringKey = this.state.selection.originStringKey(selectedNode); + if (originStringKey) { + updatedGraphSelection.add(originStringKey); + } + }); + return updatedGraphSelection; + } + attachSelection(s) { if (!(s instanceof Set)) return; this.selectionHandler.clear(); diff --git a/deps/v8/tools/turbolizer/src/graph.ts b/deps/v8/tools/turbolizer/src/graph.ts index 0eb2e3e1e698a7..8eb0d26d20d04e 100644 --- a/deps/v8/tools/turbolizer/src/graph.ts +++ b/deps/v8/tools/turbolizer/src/graph.ts @@ -1,5 +1,5 @@ -import { GNode } from "./node"; -import { Edge, MINIMUM_EDGE_SEPARATION } from "./edge"; +import { GNode, MINIMUM_EDGE_SEPARATION } from "./node"; +import { Edge } from "./edge"; export class Graph { nodeMap: Array; diff --git a/deps/v8/tools/turbolizer/src/graphmultiview.ts b/deps/v8/tools/turbolizer/src/graphmultiview.ts index 4f8f6339199543..19113eef2bd1ba 100644 --- a/deps/v8/tools/turbolizer/src/graphmultiview.ts +++ b/deps/v8/tools/turbolizer/src/graphmultiview.ts @@ -8,6 +8,7 @@ import { SequenceView } from "../src/sequence-view"; import { SourceResolver } from "../src/source-resolver"; import { SelectionBroker } from "../src/selection-broker"; import { View, PhaseView } from "../src/view"; +import { GNode } from "./node"; const multiviewID = "multiview"; @@ -61,6 +62,10 @@ export class GraphMultiView extends View { view.divNode.addEventListener("keyup", (e: KeyboardEvent) => { if (e.keyCode == 191) { // keyCode == '/' searchInput.focus(); + } else if (e.keyCode == 78) { // keyCode == 'n' + view.displayNextGraphPhase(); + } else if (e.keyCode == 66) { // keyCode == 'b' + view.displayPreviousGraphPhase(); } }); searchInput.setAttribute("value", window.sessionStorage.getItem("lastSearch") || ""); @@ -101,7 +106,7 @@ export class GraphMultiView extends View { this.displayPhase(this.sourceResolver.getPhase(initialPhaseIndex)); } - displayPhase(phase, selection?: Set) { + displayPhase(phase, selection?: Map) { if (phase.type == "graph") { this.displayPhaseView(this.graph, phase, selection); } else if (phase.type == "schedule") { @@ -111,18 +116,46 @@ export class GraphMultiView extends View { } } - displayPhaseView(view: PhaseView, data, selection?: Set) { + displayPhaseView(view: PhaseView, data, selection?: Map) { const rememberedSelection = selection ? selection : this.hideCurrentPhase(); view.initializeContent(data, rememberedSelection); this.currentPhaseView = view; } - displayPhaseByName(phaseName, selection?: Set) { + displayPhaseByName(phaseName, selection?: Map) { const phaseId = this.sourceResolver.getPhaseIdByName(phaseName); this.selectMenu.selectedIndex = phaseId; this.displayPhase(this.sourceResolver.getPhase(phaseId), selection); } + displayNextGraphPhase() { + let nextPhaseIndex = this.selectMenu.selectedIndex + 1; + while (nextPhaseIndex < this.sourceResolver.phases.length) { + const nextPhase = this.sourceResolver.getPhase(nextPhaseIndex); + if (nextPhase.type == "graph") { + this.selectMenu.selectedIndex = nextPhaseIndex; + window.sessionStorage.setItem("lastSelectedPhase", nextPhaseIndex.toString()); + this.displayPhase(nextPhase); + break; + } + nextPhaseIndex += 1; + } + } + + displayPreviousGraphPhase() { + let previousPhaseIndex = this.selectMenu.selectedIndex - 1; + while (previousPhaseIndex >= 0) { + const previousPhase = this.sourceResolver.getPhase(previousPhaseIndex); + if (previousPhase.type == "graph") { + this.selectMenu.selectedIndex = previousPhaseIndex; + window.sessionStorage.setItem("lastSelectedPhase", previousPhaseIndex.toString()); + this.displayPhase(previousPhase); + break; + } + previousPhaseIndex -= 1; + } + } + hideCurrentPhase() { let rememberedSelection = null; if (this.currentPhaseView != null) { diff --git a/deps/v8/tools/turbolizer/src/node.ts b/deps/v8/tools/turbolizer/src/node.ts index 02906d1204850c..90db8adb1ad6a4 100644 --- a/deps/v8/tools/turbolizer/src/node.ts +++ b/deps/v8/tools/turbolizer/src/node.ts @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import { MINIMUM_EDGE_SEPARATION, Edge } from "../src/edge"; +import { Edge } from "../src/edge"; import { NodeLabel } from "./node-label"; import { MAX_RANK_SENTINEL } from "./constants"; import { alignUp, measureText } from "./util"; @@ -10,6 +10,7 @@ import { alignUp, measureText } from "./util"; export const DEFAULT_NODE_BUBBLE_RADIUS = 12; export const NODE_INPUT_WIDTH = 50; export const MINIMUM_NODE_OUTPUT_APPROACH = 15; +export const MINIMUM_EDGE_SEPARATION = 20; const MINIMUM_NODE_INPUT_APPROACH = 15 + 2 * DEFAULT_NODE_BUBBLE_RADIUS; export class GNode { diff --git a/deps/v8/tools/turbolizer/src/selection.ts b/deps/v8/tools/turbolizer/src/selection.ts index 044a1969c31e56..a3f3dd941fbab1 100644 --- a/deps/v8/tools/turbolizer/src/selection.ts +++ b/deps/v8/tools/turbolizer/src/selection.ts @@ -2,13 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import { GNode } from "./node"; + export class MySelection { selection: any; stringKey: (o: any) => string; + originStringKey: (node: GNode) => string; - constructor(stringKeyFnc) { + constructor(stringKeyFnc, originStringKeyFnc?) { this.selection = new Map(); this.stringKey = stringKeyFnc; + this.originStringKey = originStringKeyFnc; } isEmpty(): boolean { @@ -50,7 +54,7 @@ export class MySelection { } detachSelection() { - const result = this.selectedKeys(); + const result = this.selection; this.clear(); return result; } diff --git a/deps/v8/tools/turbolizer/src/source-resolver.ts b/deps/v8/tools/turbolizer/src/source-resolver.ts index 4d5bd250b75681..4632ad306aafc4 100644 --- a/deps/v8/tools/turbolizer/src/source-resolver.ts +++ b/deps/v8/tools/turbolizer/src/source-resolver.ts @@ -81,7 +81,7 @@ interface InstructionsPhase { name: string; data: any; instructionOffsetToPCOffset?: any; - blockIdtoInstructionRange?: any; + blockIdToInstructionRange?: any; nodeIdToInstructionRange?: any; codeOffsetsInfo?: CodeOffsetsInfo; } @@ -595,8 +595,8 @@ export class SourceResolver { if (phase.nodeIdToInstructionRange) { this.readNodeIdToInstructionRange(phase.nodeIdToInstructionRange); } - if (phase.blockIdtoInstructionRange) { - this.readBlockIdToInstructionRange(phase.blockIdtoInstructionRange); + if (phase.blockIdToInstructionRange) { + this.readBlockIdToInstructionRange(phase.blockIdToInstructionRange); } if (phase.instructionOffsetToPCOffset) { this.readInstructionOffsetToPCOffset(phase.instructionOffsetToPCOffset); diff --git a/deps/v8/tools/turbolizer/src/text-view.ts b/deps/v8/tools/turbolizer/src/text-view.ts index dcda2db2de9dc4..fbf43f03d977a2 100644 --- a/deps/v8/tools/turbolizer/src/text-view.ts +++ b/deps/v8/tools/turbolizer/src/text-view.ts @@ -20,7 +20,7 @@ export abstract class TextView extends PhaseView { instructionIdToHtmlElementsMap: Map>; nodeIdToHtmlElementsMap: Map>; blockIdToHtmlElementsMap: Map>; - blockIdtoNodeIds: Map>; + blockIdToNodeIds: Map>; nodeIdToBlockId: Array; patterns: any; sourceResolver: SourceResolver; @@ -34,7 +34,7 @@ export abstract class TextView extends PhaseView { view.instructionIdToHtmlElementsMap = new Map(); view.nodeIdToHtmlElementsMap = new Map(); view.blockIdToHtmlElementsMap = new Map(); - view.blockIdtoNodeIds = new Map(); + view.blockIdToNodeIds = new Map(); view.nodeIdToBlockId = []; view.selection = new MySelection(anyToString); view.blockSelection = new MySelection(anyToString); @@ -147,10 +147,10 @@ export abstract class TextView extends PhaseView { addNodeIdToBlockId(anyNodeId, anyBlockId) { const blockId = anyToString(anyBlockId); - if (!this.blockIdtoNodeIds.has(blockId)) { - this.blockIdtoNodeIds.set(blockId, []); + if (!this.blockIdToNodeIds.has(blockId)) { + this.blockIdToNodeIds.set(blockId, []); } - this.blockIdtoNodeIds.get(blockId).push(anyToString(anyNodeId)); + this.blockIdToNodeIds.get(blockId).push(anyToString(anyNodeId)); this.nodeIdToBlockId[anyNodeId] = blockId; } diff --git a/deps/v8/tools/turbolizer/src/view.ts b/deps/v8/tools/turbolizer/src/view.ts index d93eeeda8f6522..cd76c6de441cd0 100644 --- a/deps/v8/tools/turbolizer/src/view.ts +++ b/deps/v8/tools/turbolizer/src/view.ts @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import { GNode } from "./node"; + export abstract class View { protected container: HTMLElement; protected divNode: HTMLElement; @@ -22,8 +24,8 @@ export abstract class View { } export abstract class PhaseView extends View { - public abstract initializeContent(data: any, rememberedSelection: Set): void; - public abstract detachSelection(): Set; + public abstract initializeContent(data: any, rememberedSelection: Map): void; + public abstract detachSelection(): Map; public abstract onresize(): void; public abstract searchInputAction(searchInput: HTMLInputElement, e: Event, onlyVisible: boolean): void; diff --git a/deps/v8/tools/unittests/__init__.py b/deps/v8/tools/unittests/__init__.py index 3841a861c8396a..e1bbf0cdfc21f9 100644 --- a/deps/v8/tools/unittests/__init__.py +++ b/deps/v8/tools/unittests/__init__.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2018 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. diff --git a/deps/v8/tools/unittests/compare_torque_output_test.py b/deps/v8/tools/unittests/compare_torque_output_test.py index a6086d96c9a8d7..f5f240cdaf3eae 100644 --- a/deps/v8/tools/unittests/compare_torque_output_test.py +++ b/deps/v8/tools/unittests/compare_torque_output_test.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2020 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -24,7 +24,7 @@ def _compare_from(self, test_folder): file1 = os.path.join(TEST_DATA, test_folder, 'f1') file2 = os.path.join(TEST_DATA, test_folder, 'f2') proc = subprocess.Popen([ - 'python', '-u', + sys.executable, '-u', COMPARE_SCRIPT, file1, file2, self.tmp_file ], stdout=subprocess.PIPE, stderr=subprocess.PIPE) _, err = proc.communicate() @@ -34,7 +34,7 @@ def test_content_diff(self): exitcode, output = self._compare_from('test1') self.assertEqual(1, exitcode) full_match = r'^Found.*-line 2\+line 2 with diff.*\+line 3\n\n$' - self.assertRegexpMatches(output, re.compile(full_match, re.M | re.S)) + self.assertRegex(output.decode('utf-8'), re.compile(full_match, re.M | re.S)) def test_no_diff(self): exitcode, output = self._compare_from('test2') @@ -44,12 +44,12 @@ def test_no_diff(self): def test_right_only(self): exitcode, output = self._compare_from('test3') self.assertEqual(1, exitcode) - self.assertRegexpMatches(output, r'Some files exist only in.*f2\nfile3') + self.assertRegex(output.decode('utf-8'), r'Some files exist only in.*f2\nfile3') def test_left_only(self): exitcode, output = self._compare_from('test4') self.assertEqual(1, exitcode) - self.assertRegexpMatches(output, r'Some files exist only in.*f1\nfile4') + self.assertRegex(output.decode('utf-8'), r'Some files exist only in.*f1\nfile4') def tearDown(self): os.unlink(self.tmp_file) diff --git a/deps/v8/tools/unittests/predictable_wrapper_test.py b/deps/v8/tools/unittests/predictable_wrapper_test.py index c085fb8879f954..2f806e7c111797 100755 --- a/deps/v8/tools/unittests/predictable_wrapper_test.py +++ b/deps/v8/tools/unittests/predictable_wrapper_test.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2017 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. diff --git a/deps/v8/tools/unittests/run_perf_test.py b/deps/v8/tools/unittests/run_perf_test.py index 28f71b2b339115..18f91d7bda2ad9 100755 --- a/deps/v8/tools/unittests/run_perf_test.py +++ b/deps/v8/tools/unittests/run_perf_test.py @@ -1,11 +1,8 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2014 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# for py2/py3 compatibility -from __future__ import print_function - from collections import namedtuple import json import os @@ -28,6 +25,8 @@ TEST_WORKSPACE = os.path.join(tempfile.gettempdir(), 'test-v8-run-perf') +SORT_KEY = lambda x: x['graphs'] + V8_JSON = { 'path': ['.'], 'owners': ['username@chromium.org'], @@ -101,8 +100,8 @@ def setUpClass(cls): def testBuildDirectory(self): base_path = os.path.join(TEST_DATA, 'builddirs', 'dir1', 'out') expected_path = os.path.join(base_path, 'build') - self.assertEquals( - expected_path, run_perf.find_build_directory(base_path, 'x64')) + self.assertEqual(expected_path, + run_perf.find_build_directory(base_path, 'x64')) class PerfTest(unittest.TestCase): @@ -196,8 +195,8 @@ def _VerifyResults(self, suite, units, traces, file_name=None): {'units': units, 'graphs': [suite, trace['name']], 'results': trace['results'], - 'stddev': trace['stddev']} for trace in traces]), - sorted(self._LoadResults(file_name)['traces'])) + 'stddev': trace['stddev']} for trace in traces], key=SORT_KEY), + sorted(self._LoadResults(file_name)['traces'], key=SORT_KEY)) def _VerifyRunnableDurations(self, runs, timeout, file_name=None): self.assertListEqual([ @@ -368,7 +367,7 @@ def testNestedSuite(self): 'graphs': ['test', 'DeltaBlue'], 'results': [200.0], 'stddev': ''}, - ]), sorted(self._LoadResults()['traces'])) + ], key=SORT_KEY), sorted(self._LoadResults()['traces'], key=SORT_KEY)) self._VerifyErrors([]) self._VerifyMockMultiple( (os.path.join('out', 'x64.release', 'd7'), '--flag', 'run.js'), @@ -381,7 +380,7 @@ def testNestedSuite(self): def testOneRunStdDevRegExp(self): test_input = dict(V8_JSON) - test_input['stddev_regexp'] = '^%s\-stddev: (.+)$' + test_input['stddev_regexp'] = r'^%s-stddev: (.+)$' self._WriteTestInput(test_input) self._MockCommand(['.'], ['Richards: 1.234\nRichards-stddev: 0.23\n' 'DeltaBlue: 10657567\nDeltaBlue-stddev: 106\n']) @@ -396,7 +395,7 @@ def testOneRunStdDevRegExp(self): def testTwoRunsStdDevRegExp(self): test_input = dict(V8_JSON) - test_input['stddev_regexp'] = '^%s\-stddev: (.+)$' + test_input['stddev_regexp'] = r'^%s-stddev: (.+)$' test_input['run_count'] = 2 self._WriteTestInput(test_input) self._MockCommand(['.'], ['Richards: 3\nRichards-stddev: 0.7\n' @@ -408,13 +407,14 @@ def testTwoRunsStdDevRegExp(self): {'name': 'Richards', 'results': [2.0, 3.0], 'stddev': '0.7'}, {'name': 'DeltaBlue', 'results': [5.0, 6.0], 'stddev': '0.8'}, ]) - self._VerifyErrors( - ['Test test/Richards should only run once since a stddev is provided ' - 'by the test.', - 'Test test/DeltaBlue should only run once since a stddev is provided ' - 'by the test.', - 'Regexp "^DeltaBlue\-stddev: (.+)$" did not match for test ' - 'test/DeltaBlue.']) + self._VerifyErrors([ + 'Test test/Richards should only run once since a stddev is provided ' + 'by the test.', + 'Test test/DeltaBlue should only run once since a stddev is provided ' + 'by the test.', + r'Regexp "^DeltaBlue-stddev: (.+)$" did not match for test ' + r'test/DeltaBlue.' + ]) self._VerifyMock( os.path.join('out', 'x64.release', 'd7'), '--flag', 'run.js') @@ -605,7 +605,7 @@ def testNormal(self): 'results': [2.1, 2.1], 'stddev': '', }, - ]), sorted(results['traces'])) + ], key=SORT_KEY), sorted(results['traces'], key=SORT_KEY)) def testResultsProcessor(self): results = self._RunPerf('d8_mocked2.py', 'test2.json') diff --git a/deps/v8/tools/unittests/run_tests_test.py b/deps/v8/tools/unittests/run_tests_test.py index 89acacaaa36e88..14daae6865a052 100755 --- a/deps/v8/tools/unittests/run_tests_test.py +++ b/deps/v8/tools/unittests/run_tests_test.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2017 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -17,9 +17,6 @@ # TODO(machenbach): Coverage data from multiprocessing doesn't work. # TODO(majeski): Add some tests for the fuzzers. -# for py2/py3 compatibility -from __future__ import print_function - import collections import contextlib import json @@ -30,7 +27,7 @@ import tempfile import unittest -from cStringIO import StringIO +from io import StringIO TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) TEST_DATA_ROOT = os.path.join(TOOLS_ROOT, 'unittests', 'testdata') @@ -277,7 +274,9 @@ def replace_variable_data(data): # We need lexicographic sorting here to avoid non-deterministic behaviour # The original sorting key is duration, but in our fake test we have # non-deterministic durations before we reset them to 1 - json_output['slowest_tests'].sort(key= lambda x: str(x)) + def sort_key(x): + return str(sorted(x.items())) + json_output['slowest_tests'].sort(key=sort_key) with open(os.path.join(TEST_DATA_ROOT, expected_results_name)) as f: expected_test_results = json.load(f) @@ -351,7 +350,8 @@ def testAutoDetect(self): v8_enable_verify_csa=False, v8_enable_lite_mode=False, v8_enable_pointer_compression=False, v8_enable_pointer_compression_shared_cage=False, - v8_enable_virtual_memory_cage=False) + v8_enable_shared_ro_heap=False, + v8_enable_sandbox=False) result = run_tests( basedir, '--progress=verbose', diff --git a/deps/v8/tools/unittests/testdata/predictable_mocked.py b/deps/v8/tools/unittests/testdata/predictable_mocked.py index b9e73f64542766..cd1a54d54e1408 100644 --- a/deps/v8/tools/unittests/testdata/predictable_mocked.py +++ b/deps/v8/tools/unittests/testdata/predictable_mocked.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2017 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. diff --git a/deps/v8/tools/unittests/testdata/testroot1/v8_build_config.json b/deps/v8/tools/unittests/testdata/testroot1/v8_build_config.json index d5d0f9981d6571..a1cff614429147 100644 --- a/deps/v8/tools/unittests/testdata/testroot1/v8_build_config.json +++ b/deps/v8/tools/unittests/testdata/testroot1/v8_build_config.json @@ -22,7 +22,8 @@ "v8_enable_lite_mode": false, "v8_enable_pointer_compression": true, "v8_enable_pointer_compression_shared_cage": true, - "v8_enable_virtual_memory_cage": false, + "v8_enable_sandbox": false, + "v8_enable_shared_ro_heap": true, "v8_control_flow_integrity": false, "v8_enable_single_generation": false, "v8_enable_third_party_heap": false, diff --git a/deps/v8/tools/unittests/testdata/testroot2/v8_build_config.json b/deps/v8/tools/unittests/testdata/testroot2/v8_build_config.json index 590af4d59ad11a..049078cb703ee9 100644 --- a/deps/v8/tools/unittests/testdata/testroot2/v8_build_config.json +++ b/deps/v8/tools/unittests/testdata/testroot2/v8_build_config.json @@ -22,7 +22,8 @@ "v8_enable_lite_mode": false, "v8_enable_pointer_compression": false, "v8_enable_pointer_compression_shared_cage": false, - "v8_enable_virtual_memory_cage": false, + "v8_enable_sandbox": false, + "v8_enable_shared_ro_heap": false, "v8_control_flow_integrity": false, "v8_enable_single_generation": false, "v8_enable_third_party_heap": false, diff --git a/deps/v8/tools/unittests/testdata/testroot3/v8_build_config.json b/deps/v8/tools/unittests/testdata/testroot3/v8_build_config.json index d5d0f9981d6571..a1cff614429147 100644 --- a/deps/v8/tools/unittests/testdata/testroot3/v8_build_config.json +++ b/deps/v8/tools/unittests/testdata/testroot3/v8_build_config.json @@ -22,7 +22,8 @@ "v8_enable_lite_mode": false, "v8_enable_pointer_compression": true, "v8_enable_pointer_compression_shared_cage": true, - "v8_enable_virtual_memory_cage": false, + "v8_enable_sandbox": false, + "v8_enable_shared_ro_heap": true, "v8_control_flow_integrity": false, "v8_enable_single_generation": false, "v8_enable_third_party_heap": false, diff --git a/deps/v8/tools/unittests/v8_presubmit_test.py b/deps/v8/tools/unittests/v8_presubmit_test.py index 2c66d1891b8ff8..7b784b2d8cf502 100755 --- a/deps/v8/tools/unittests/v8_presubmit_test.py +++ b/deps/v8/tools/unittests/v8_presubmit_test.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2018 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. diff --git a/deps/v8/tools/v8_presubmit.py b/deps/v8/tools/v8_presubmit.py index f4212794513667..ac6d06f6c11add 100755 --- a/deps/v8/tools/v8_presubmit.py +++ b/deps/v8/tools/v8_presubmit.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright 2012 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without @@ -27,34 +27,28 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -# for py2/py3 compatibility -from __future__ import absolute_import -from __future__ import print_function - -try: - import hashlib - md5er = hashlib.md5 -except ImportError as e: - import md5 - md5er = md5.new +import hashlib +md5er = hashlib.md5 import json +import multiprocessing import optparse import os from os.path import abspath, join, dirname, basename, exists import pickle import re -import sys import subprocess -import multiprocessing from subprocess import PIPE +import sys from testrunner.local import statusfile from testrunner.local import testsuite from testrunner.local import utils +def decode(arg, encoding="utf-8"): + return arg.decode(encoding) + # Special LINT rules diverging from default and reason. # build/header_guard: Our guards have the form "V8_FOO_H_", not "SRC_FOO_H_". # We now run our own header guard check in PRESUBMIT.py. @@ -76,7 +70,7 @@ -whitespace/comments """.split() -LINT_OUTPUT_PATTERN = re.compile(r'^.+[:(]\d+[:)]|^Done processing') +LINT_OUTPUT_PATTERN = re.compile(r'^.+[:(]\d+[:)]') FLAGS_LINE = re.compile("//\s*Flags:.*--([A-z0-9-])+_[A-z0-9].*\n") ASSERT_OPTIMIZED_PATTERN = re.compile("assertOptimized") FLAGS_ENABLE_OPT = re.compile("//\s*Flags:.*--opt[^-].*\n") @@ -84,6 +78,9 @@ FLAGS_NO_ALWAYS_OPT = re.compile("//\s*Flags:.*--no-?always-opt.*\n") TOOLS_PATH = dirname(abspath(__file__)) +DEPS_DEPOT_TOOLS_PATH = abspath( + join(TOOLS_PATH, '..', 'third_party', 'depot_tools')) + def CppLintWorker(command): try: @@ -92,23 +89,27 @@ def CppLintWorker(command): out_lines = "" error_count = -1 while True: - out_line = process.stderr.readline() + out_line = decode(process.stderr.readline()) if out_line == '' and process.poll() != None: if error_count == -1: print("Failed to process %s" % command.pop()) return 1 break - m = LINT_OUTPUT_PATTERN.match(out_line) - if m: - out_lines += out_line + if out_line.strip() == 'Total errors found: 0': + out_lines += "Done processing %s\n" % command.pop() error_count += 1 + else: + m = LINT_OUTPUT_PATTERN.match(out_line) + if m: + out_lines += out_line + error_count += 1 sys.stdout.write(out_lines) return error_count except KeyboardInterrupt: process.kill() except: print('Error running cpplint.py. Please make sure you have depot_tools' + - ' in your $PATH. Lint check skipped.') + ' in your third_party directory. Lint check skipped.') process.kill() def TorqueLintWorker(command): @@ -118,14 +119,14 @@ def TorqueLintWorker(command): out_lines = "" error_count = 0 while True: - out_line = process.stderr.readline() + out_line = decode(process.stderr.readline()) if out_line == '' and process.poll() != None: break out_lines += out_line error_count += 1 sys.stdout.write(out_lines) if error_count != 0: - sys.stdout.write( + sys.stdout.write( "warning: formatting and overwriting unformatted Torque files\n") return error_count except KeyboardInterrupt: @@ -148,15 +149,16 @@ def format_file(command): sys.stdout.write("error code " + str(rc) + " running clang-format.\n") return rc - if output != contents: + if decode(output) != contents: return 1 return 0 except KeyboardInterrupt: process.kill() except Exception: - print('Error running clang-format. Please make sure you have depot_tools' + - ' in your $PATH. Lint check skipped.') + print( + 'Error running clang-format. Please make sure you have depot_tools' + + ' in your third_party directory. Lint check skipped.') process.kill() rc = format_file(command) @@ -177,7 +179,7 @@ def Load(self): try: sums_file = None try: - sums_file = open(self.sums_file_name, 'r') + sums_file = open(self.sums_file_name, 'rb') self.sums = pickle.load(sums_file) except: # Cannot parse pickle for any reason. Not much we can do about it. @@ -188,7 +190,7 @@ def Load(self): def Save(self): try: - sums_file = open(self.sums_file_name, 'w') + sums_file = open(self.sums_file_name, 'wb') pickle.dump(self.sums, sums_file) except: # Failed to write pickle. Try to clean-up behind us. @@ -205,7 +207,7 @@ def FilterUnchangedFiles(self, files): changed_or_new = [] for file in files: try: - handle = open(file, "r") + handle = open(file, "rb") file_sum = md5er(handle.read()).digest() if not file in self.sums or self.sums[file] != file_sum: changed_or_new.append(file) @@ -389,13 +391,9 @@ def GetProcessorWorker(self): def GetProcessorScript(self): filters = ','.join([n for n in LINT_RULES]) arguments = ['--filter', filters] - for path in [TOOLS_PATH] + os.environ["PATH"].split(os.pathsep): - path = path.strip('"') - cpplint = os.path.join(path, 'cpplint.py') - if os.path.isfile(cpplint): - return cpplint, arguments - return None, arguments + cpplint = os.path.join(DEPS_DEPOT_TOOLS_PATH, 'cpplint.py') + return cpplint, arguments class TorqueLintProcessor(CacheableSourceFileProcessor): @@ -441,19 +439,15 @@ def IsRelevant(self, name): return name.endswith('.js') or name.endswith('.mjs') def GetPathsToSearch(self): - return ['tools/system-analyzer'] + return ['tools/system-analyzer', 'tools/heap-layout', 'tools/js'] def GetProcessorWorker(self): return JSLintWorker def GetProcessorScript(self): - for path in [TOOLS_PATH] + os.environ["PATH"].split(os.pathsep): - path = path.strip('"') - clang_format = os.path.join(path, 'clang_format.py') - if os.path.isfile(clang_format): - return clang_format, [] + jslint = os.path.join(DEPS_DEPOT_TOOLS_PATH, 'clang_format.py') + return jslint, [] - return None, [] COPYRIGHT_HEADER_PATTERN = re.compile( r'Copyright [\d-]*20[0-2][0-9] the V8 project authors. All rights reserved.') @@ -490,7 +484,7 @@ def FindFilesIn(self, path): output = subprocess.Popen('git ls-files --full-name', stdout=PIPE, cwd=path, shell=True) result = [] - for file in output.stdout.read().split(): + for file in decode(output.stdout.read()).split(): for dir_part in os.path.dirname(file).replace(os.sep, '/').split('/'): if self.IgnoreDir(dir_part): break @@ -623,8 +617,8 @@ def ProcessFiles(self, files): violations = 0 for file in files: try: - handle = open(file) - contents = handle.read() + handle = open(file, "rb") + contents = decode(handle.read(), "ISO-8859-1") if len(contents) > 0 and not self.ProcessContents(file, contents): success = False violations += 1 @@ -730,15 +724,32 @@ def CheckDeps(workspace): return subprocess.call([sys.executable, checkdeps_py, workspace]) == 0 +def FindTests(workspace): + scripts = [] + # TODO(almuthanna): unskip valid tests when they are properly migrated + exclude = [ + 'tools/clang', + 'tools/mb/mb_test.py', + 'tools/cppgc/gen_cmake_test.py', + 'tools/ignition/linux_perf_report_test.py', + 'tools/ignition/bytecode_dispatches_report_test.py', + 'tools/ignition/linux_perf_bytecode_annotate_test.py', + ] + scripts_without_excluded = [] + for root, dirs, files in os.walk(join(workspace, 'tools')): + for f in files: + if f.endswith('_test.py'): + fullpath = os.path.join(root, f) + scripts.append(fullpath) + for script in scripts: + if not any(exc_dir in script for exc_dir in exclude): + scripts_without_excluded.append(script) + return scripts_without_excluded + + def PyTests(workspace): result = True - for script in [ - join(workspace, 'tools', 'clusterfuzz', 'v8_foozzie_test.py'), - join(workspace, 'tools', 'release', 'test_scripts.py'), - join(workspace, 'tools', 'unittests', 'run_tests_test.py'), - join(workspace, 'tools', 'unittests', 'run_perf_test.py'), - join(workspace, 'tools', 'testrunner', 'testproc', 'variant_unittest.py'), - ]: + for script in FindTests(workspace): print('Running ' + script) result &= subprocess.call( [sys.executable, script], stdout=subprocess.PIPE) == 0 diff --git a/deps/v8/tools/v8heapconst.py b/deps/v8/tools/v8heapconst.py index 306eeb7aa279d3..66466b7e820e02 100644 --- a/deps/v8/tools/v8heapconst.py +++ b/deps/v8/tools/v8heapconst.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 # Copyright 2019 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can # be found in the LICENSE file. @@ -6,6 +7,8 @@ # be modified manually. # List of known V8 instance types. +# yapf: disable + INSTANCE_TYPES = { 0: "INTERNALIZED_STRING_TYPE", 2: "EXTERNAL_INTERNALIZED_STRING_TYPE", @@ -55,497 +58,514 @@ 151: "BREAK_POINT_INFO_TYPE", 152: "CACHED_TEMPLATE_OBJECT_TYPE", 153: "CALL_HANDLER_INFO_TYPE", - 154: "CLASS_POSITIONS_TYPE", - 155: "DEBUG_INFO_TYPE", - 156: "ENUM_CACHE_TYPE", - 157: "FEEDBACK_CELL_TYPE", - 158: "FUNCTION_TEMPLATE_RARE_DATA_TYPE", - 159: "INTERCEPTOR_INFO_TYPE", - 160: "INTERPRETER_DATA_TYPE", - 161: "MODULE_REQUEST_TYPE", - 162: "PROMISE_CAPABILITY_TYPE", - 163: "PROMISE_REACTION_TYPE", - 164: "PROPERTY_DESCRIPTOR_OBJECT_TYPE", - 165: "PROTOTYPE_INFO_TYPE", - 166: "REG_EXP_BOILERPLATE_DESCRIPTION_TYPE", - 167: "SCRIPT_TYPE", - 168: "SCRIPT_OR_MODULE_TYPE", - 169: "SOURCE_TEXT_MODULE_INFO_ENTRY_TYPE", - 170: "STACK_FRAME_INFO_TYPE", - 171: "TEMPLATE_OBJECT_DESCRIPTION_TYPE", - 172: "TUPLE2_TYPE", - 173: "WASM_CONTINUATION_OBJECT_TYPE", - 174: "WASM_EXCEPTION_TAG_TYPE", - 175: "WASM_INDIRECT_FUNCTION_TABLE_TYPE", - 176: "FIXED_ARRAY_TYPE", - 177: "HASH_TABLE_TYPE", - 178: "EPHEMERON_HASH_TABLE_TYPE", - 179: "GLOBAL_DICTIONARY_TYPE", - 180: "NAME_DICTIONARY_TYPE", - 181: "NUMBER_DICTIONARY_TYPE", - 182: "ORDERED_HASH_MAP_TYPE", - 183: "ORDERED_HASH_SET_TYPE", - 184: "ORDERED_NAME_DICTIONARY_TYPE", - 185: "SIMPLE_NUMBER_DICTIONARY_TYPE", - 186: "CLOSURE_FEEDBACK_CELL_ARRAY_TYPE", - 187: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE", - 188: "SCRIPT_CONTEXT_TABLE_TYPE", - 189: "BYTE_ARRAY_TYPE", - 190: "BYTECODE_ARRAY_TYPE", - 191: "FIXED_DOUBLE_ARRAY_TYPE", - 192: "INTERNAL_CLASS_WITH_SMI_ELEMENTS_TYPE", - 193: "SLOPPY_ARGUMENTS_ELEMENTS_TYPE", - 194: "AWAIT_CONTEXT_TYPE", - 195: "BLOCK_CONTEXT_TYPE", - 196: "CATCH_CONTEXT_TYPE", - 197: "DEBUG_EVALUATE_CONTEXT_TYPE", - 198: "EVAL_CONTEXT_TYPE", - 199: "FUNCTION_CONTEXT_TYPE", - 200: "MODULE_CONTEXT_TYPE", - 201: "NATIVE_CONTEXT_TYPE", - 202: "SCRIPT_CONTEXT_TYPE", - 203: "WITH_CONTEXT_TYPE", + 154: "CALL_SITE_INFO_TYPE", + 155: "CLASS_POSITIONS_TYPE", + 156: "DEBUG_INFO_TYPE", + 157: "ENUM_CACHE_TYPE", + 158: "ERROR_STACK_DATA_TYPE", + 159: "FEEDBACK_CELL_TYPE", + 160: "FUNCTION_TEMPLATE_RARE_DATA_TYPE", + 161: "INTERCEPTOR_INFO_TYPE", + 162: "INTERPRETER_DATA_TYPE", + 163: "MODULE_REQUEST_TYPE", + 164: "PROMISE_CAPABILITY_TYPE", + 165: "PROMISE_ON_STACK_TYPE", + 166: "PROMISE_REACTION_TYPE", + 167: "PROPERTY_DESCRIPTOR_OBJECT_TYPE", + 168: "PROTOTYPE_INFO_TYPE", + 169: "REG_EXP_BOILERPLATE_DESCRIPTION_TYPE", + 170: "SCRIPT_TYPE", + 171: "SCRIPT_OR_MODULE_TYPE", + 172: "SOURCE_TEXT_MODULE_INFO_ENTRY_TYPE", + 173: "STACK_FRAME_INFO_TYPE", + 174: "TEMPLATE_OBJECT_DESCRIPTION_TYPE", + 175: "TUPLE2_TYPE", + 176: "WASM_CONTINUATION_OBJECT_TYPE", + 177: "WASM_EXCEPTION_TAG_TYPE", + 178: "WASM_INDIRECT_FUNCTION_TABLE_TYPE", + 179: "FIXED_ARRAY_TYPE", + 180: "HASH_TABLE_TYPE", + 181: "EPHEMERON_HASH_TABLE_TYPE", + 182: "GLOBAL_DICTIONARY_TYPE", + 183: "NAME_DICTIONARY_TYPE", + 184: "NAME_TO_INDEX_HASH_TABLE_TYPE", + 185: "NUMBER_DICTIONARY_TYPE", + 186: "ORDERED_HASH_MAP_TYPE", + 187: "ORDERED_HASH_SET_TYPE", + 188: "ORDERED_NAME_DICTIONARY_TYPE", + 189: "REGISTERED_SYMBOL_TABLE_TYPE", + 190: "SIMPLE_NUMBER_DICTIONARY_TYPE", + 191: "CLOSURE_FEEDBACK_CELL_ARRAY_TYPE", + 192: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE", + 193: "SCRIPT_CONTEXT_TABLE_TYPE", + 194: "BYTE_ARRAY_TYPE", + 195: "BYTECODE_ARRAY_TYPE", + 196: "FIXED_DOUBLE_ARRAY_TYPE", + 197: "INTERNAL_CLASS_WITH_SMI_ELEMENTS_TYPE", + 198: "SLOPPY_ARGUMENTS_ELEMENTS_TYPE", + 199: "TURBOFAN_BITSET_TYPE_TYPE", + 200: "TURBOFAN_HEAP_CONSTANT_TYPE_TYPE", + 201: "TURBOFAN_OTHER_NUMBER_CONSTANT_TYPE_TYPE", + 202: "TURBOFAN_RANGE_TYPE_TYPE", + 203: "TURBOFAN_UNION_TYPE_TYPE", 204: "FOREIGN_TYPE", 205: "WASM_INTERNAL_FUNCTION_TYPE", 206: "WASM_TYPE_INFO_TYPE", - 207: "TURBOFAN_BITSET_TYPE_TYPE", - 208: "TURBOFAN_HEAP_CONSTANT_TYPE_TYPE", - 209: "TURBOFAN_OTHER_NUMBER_CONSTANT_TYPE_TYPE", - 210: "TURBOFAN_RANGE_TYPE_TYPE", - 211: "TURBOFAN_UNION_TYPE_TYPE", - 212: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE", - 213: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_AND_JOB_TYPE", - 214: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE", - 215: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_WITH_JOB_TYPE", - 216: "WASM_FUNCTION_DATA_TYPE", - 217: "WASM_CAPI_FUNCTION_DATA_TYPE", - 218: "WASM_EXPORTED_FUNCTION_DATA_TYPE", - 219: "WASM_JS_FUNCTION_DATA_TYPE", - 220: "EXPORTED_SUB_CLASS_BASE_TYPE", - 221: "EXPORTED_SUB_CLASS_TYPE", - 222: "EXPORTED_SUB_CLASS2_TYPE", - 223: "SMALL_ORDERED_HASH_MAP_TYPE", - 224: "SMALL_ORDERED_HASH_SET_TYPE", - 225: "SMALL_ORDERED_NAME_DICTIONARY_TYPE", - 226: "ABSTRACT_INTERNAL_CLASS_SUBCLASS1_TYPE", - 227: "ABSTRACT_INTERNAL_CLASS_SUBCLASS2_TYPE", - 228: "DESCRIPTOR_ARRAY_TYPE", - 229: "STRONG_DESCRIPTOR_ARRAY_TYPE", - 230: "SOURCE_TEXT_MODULE_TYPE", - 231: "SYNTHETIC_MODULE_TYPE", - 232: "WEAK_FIXED_ARRAY_TYPE", - 233: "TRANSITION_ARRAY_TYPE", - 234: "CELL_TYPE", - 235: "CODE_TYPE", - 236: "CODE_DATA_CONTAINER_TYPE", - 237: "COVERAGE_INFO_TYPE", - 238: "EMBEDDER_DATA_ARRAY_TYPE", - 239: "FEEDBACK_METADATA_TYPE", - 240: "FEEDBACK_VECTOR_TYPE", - 241: "FILLER_TYPE", - 242: "FREE_SPACE_TYPE", - 243: "INTERNAL_CLASS_TYPE", - 244: "INTERNAL_CLASS_WITH_STRUCT_ELEMENTS_TYPE", - 245: "MAP_TYPE", - 246: "MEGA_DOM_HANDLER_TYPE", - 247: "ON_HEAP_BASIC_BLOCK_PROFILER_DATA_TYPE", - 248: "PREPARSE_DATA_TYPE", - 249: "PROPERTY_ARRAY_TYPE", - 250: "PROPERTY_CELL_TYPE", - 251: "SCOPE_INFO_TYPE", - 252: "SHARED_FUNCTION_INFO_TYPE", - 253: "SMI_BOX_TYPE", - 254: "SMI_PAIR_TYPE", - 255: "SORT_STATE_TYPE", - 256: "SWISS_NAME_DICTIONARY_TYPE", - 257: "WASM_API_FUNCTION_REF_TYPE", - 258: "WEAK_ARRAY_LIST_TYPE", - 259: "WEAK_CELL_TYPE", - 260: "WASM_ARRAY_TYPE", - 261: "WASM_STRUCT_TYPE", - 262: "JS_PROXY_TYPE", + 207: "AWAIT_CONTEXT_TYPE", + 208: "BLOCK_CONTEXT_TYPE", + 209: "CATCH_CONTEXT_TYPE", + 210: "DEBUG_EVALUATE_CONTEXT_TYPE", + 211: "EVAL_CONTEXT_TYPE", + 212: "FUNCTION_CONTEXT_TYPE", + 213: "MODULE_CONTEXT_TYPE", + 214: "NATIVE_CONTEXT_TYPE", + 215: "SCRIPT_CONTEXT_TYPE", + 216: "WITH_CONTEXT_TYPE", + 217: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE", + 218: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_AND_JOB_TYPE", + 219: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE", + 220: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_WITH_JOB_TYPE", + 221: "WASM_FUNCTION_DATA_TYPE", + 222: "WASM_CAPI_FUNCTION_DATA_TYPE", + 223: "WASM_EXPORTED_FUNCTION_DATA_TYPE", + 224: "WASM_JS_FUNCTION_DATA_TYPE", + 225: "EXPORTED_SUB_CLASS_BASE_TYPE", + 226: "EXPORTED_SUB_CLASS_TYPE", + 227: "EXPORTED_SUB_CLASS2_TYPE", + 228: "SMALL_ORDERED_HASH_MAP_TYPE", + 229: "SMALL_ORDERED_HASH_SET_TYPE", + 230: "SMALL_ORDERED_NAME_DICTIONARY_TYPE", + 231: "ABSTRACT_INTERNAL_CLASS_SUBCLASS1_TYPE", + 232: "ABSTRACT_INTERNAL_CLASS_SUBCLASS2_TYPE", + 233: "DESCRIPTOR_ARRAY_TYPE", + 234: "STRONG_DESCRIPTOR_ARRAY_TYPE", + 235: "SOURCE_TEXT_MODULE_TYPE", + 236: "SYNTHETIC_MODULE_TYPE", + 237: "WEAK_FIXED_ARRAY_TYPE", + 238: "TRANSITION_ARRAY_TYPE", + 239: "CELL_TYPE", + 240: "CODE_TYPE", + 241: "CODE_DATA_CONTAINER_TYPE", + 242: "COVERAGE_INFO_TYPE", + 243: "EMBEDDER_DATA_ARRAY_TYPE", + 244: "FEEDBACK_METADATA_TYPE", + 245: "FEEDBACK_VECTOR_TYPE", + 246: "FILLER_TYPE", + 247: "FREE_SPACE_TYPE", + 248: "INTERNAL_CLASS_TYPE", + 249: "INTERNAL_CLASS_WITH_STRUCT_ELEMENTS_TYPE", + 250: "MAP_TYPE", + 251: "MEGA_DOM_HANDLER_TYPE", + 252: "ON_HEAP_BASIC_BLOCK_PROFILER_DATA_TYPE", + 253: "PREPARSE_DATA_TYPE", + 254: "PROPERTY_ARRAY_TYPE", + 255: "PROPERTY_CELL_TYPE", + 256: "SCOPE_INFO_TYPE", + 257: "SHARED_FUNCTION_INFO_TYPE", + 258: "SMI_BOX_TYPE", + 259: "SMI_PAIR_TYPE", + 260: "SORT_STATE_TYPE", + 261: "SWISS_NAME_DICTIONARY_TYPE", + 262: "WASM_API_FUNCTION_REF_TYPE", + 263: "WASM_ON_FULFILLED_DATA_TYPE", + 264: "WEAK_ARRAY_LIST_TYPE", + 265: "WEAK_CELL_TYPE", + 266: "WASM_ARRAY_TYPE", + 267: "WASM_STRUCT_TYPE", + 268: "JS_PROXY_TYPE", 1057: "JS_OBJECT_TYPE", - 263: "JS_GLOBAL_OBJECT_TYPE", - 264: "JS_GLOBAL_PROXY_TYPE", - 265: "JS_MODULE_NAMESPACE_TYPE", + 269: "JS_GLOBAL_OBJECT_TYPE", + 270: "JS_GLOBAL_PROXY_TYPE", + 271: "JS_MODULE_NAMESPACE_TYPE", 1040: "JS_SPECIAL_API_OBJECT_TYPE", 1041: "JS_PRIMITIVE_WRAPPER_TYPE", 1058: "JS_API_OBJECT_TYPE", 2058: "JS_LAST_DUMMY_API_OBJECT_TYPE", - 2059: "JS_BOUND_FUNCTION_TYPE", - 2060: "JS_FUNCTION_TYPE", - 2061: "BIGINT64_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2062: "BIGUINT64_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2063: "FLOAT32_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2064: "FLOAT64_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2065: "INT16_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2066: "INT32_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2067: "INT8_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2068: "UINT16_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2069: "UINT32_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2070: "UINT8_CLAMPED_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2071: "UINT8_TYPED_ARRAY_CONSTRUCTOR_TYPE", - 2072: "JS_ARRAY_CONSTRUCTOR_TYPE", - 2073: "JS_PROMISE_CONSTRUCTOR_TYPE", - 2074: "JS_REG_EXP_CONSTRUCTOR_TYPE", - 2075: "JS_CLASS_CONSTRUCTOR_TYPE", - 2076: "JS_ARRAY_ITERATOR_PROTOTYPE_TYPE", - 2077: "JS_ITERATOR_PROTOTYPE_TYPE", - 2078: "JS_MAP_ITERATOR_PROTOTYPE_TYPE", - 2079: "JS_OBJECT_PROTOTYPE_TYPE", - 2080: "JS_PROMISE_PROTOTYPE_TYPE", - 2081: "JS_REG_EXP_PROTOTYPE_TYPE", - 2082: "JS_SET_ITERATOR_PROTOTYPE_TYPE", - 2083: "JS_SET_PROTOTYPE_TYPE", - 2084: "JS_STRING_ITERATOR_PROTOTYPE_TYPE", - 2085: "JS_TYPED_ARRAY_PROTOTYPE_TYPE", - 2086: "JS_MAP_KEY_ITERATOR_TYPE", - 2087: "JS_MAP_KEY_VALUE_ITERATOR_TYPE", - 2088: "JS_MAP_VALUE_ITERATOR_TYPE", - 2089: "JS_SET_KEY_VALUE_ITERATOR_TYPE", - 2090: "JS_SET_VALUE_ITERATOR_TYPE", - 2091: "JS_GENERATOR_OBJECT_TYPE", - 2092: "JS_ASYNC_FUNCTION_OBJECT_TYPE", - 2093: "JS_ASYNC_GENERATOR_OBJECT_TYPE", - 2094: "JS_DATA_VIEW_TYPE", - 2095: "JS_TYPED_ARRAY_TYPE", - 2096: "JS_MAP_TYPE", - 2097: "JS_SET_TYPE", - 2098: "JS_WEAK_MAP_TYPE", - 2099: "JS_WEAK_SET_TYPE", - 2100: "JS_ARGUMENTS_OBJECT_TYPE", - 2101: "JS_ARRAY_TYPE", - 2102: "JS_ARRAY_BUFFER_TYPE", - 2103: "JS_ARRAY_ITERATOR_TYPE", - 2104: "JS_ASYNC_FROM_SYNC_ITERATOR_TYPE", - 2105: "JS_COLLATOR_TYPE", - 2106: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", - 2107: "JS_DATE_TYPE", - 2108: "JS_DATE_TIME_FORMAT_TYPE", - 2109: "JS_DISPLAY_NAMES_TYPE", - 2110: "JS_ERROR_TYPE", - 2111: "JS_FINALIZATION_REGISTRY_TYPE", - 2112: "JS_LIST_FORMAT_TYPE", - 2113: "JS_LOCALE_TYPE", - 2114: "JS_MESSAGE_OBJECT_TYPE", - 2115: "JS_NUMBER_FORMAT_TYPE", - 2116: "JS_PLURAL_RULES_TYPE", - 2117: "JS_PROMISE_TYPE", - 2118: "JS_REG_EXP_TYPE", - 2119: "JS_REG_EXP_STRING_ITERATOR_TYPE", - 2120: "JS_RELATIVE_TIME_FORMAT_TYPE", - 2121: "JS_SEGMENT_ITERATOR_TYPE", - 2122: "JS_SEGMENTER_TYPE", - 2123: "JS_SEGMENTS_TYPE", - 2124: "JS_STRING_ITERATOR_TYPE", - 2125: "JS_TEMPORAL_CALENDAR_TYPE", - 2126: "JS_TEMPORAL_DURATION_TYPE", - 2127: "JS_TEMPORAL_INSTANT_TYPE", - 2128: "JS_TEMPORAL_PLAIN_DATE_TYPE", - 2129: "JS_TEMPORAL_PLAIN_DATE_TIME_TYPE", - 2130: "JS_TEMPORAL_PLAIN_MONTH_DAY_TYPE", - 2131: "JS_TEMPORAL_PLAIN_TIME_TYPE", - 2132: "JS_TEMPORAL_PLAIN_YEAR_MONTH_TYPE", - 2133: "JS_TEMPORAL_TIME_ZONE_TYPE", - 2134: "JS_TEMPORAL_ZONED_DATE_TIME_TYPE", - 2135: "JS_V8_BREAK_ITERATOR_TYPE", - 2136: "JS_WEAK_REF_TYPE", - 2137: "WASM_GLOBAL_OBJECT_TYPE", - 2138: "WASM_INSTANCE_OBJECT_TYPE", - 2139: "WASM_MEMORY_OBJECT_TYPE", - 2140: "WASM_MODULE_OBJECT_TYPE", - 2141: "WASM_SUSPENDER_OBJECT_TYPE", - 2142: "WASM_TABLE_OBJECT_TYPE", - 2143: "WASM_TAG_OBJECT_TYPE", - 2144: "WASM_VALUE_OBJECT_TYPE", + 2059: "JS_DATA_VIEW_TYPE", + 2060: "JS_TYPED_ARRAY_TYPE", + 2061: "JS_ARRAY_BUFFER_TYPE", + 2062: "JS_PROMISE_TYPE", + 2063: "JS_BOUND_FUNCTION_TYPE", + 2064: "JS_WRAPPED_FUNCTION_TYPE", + 2065: "JS_FUNCTION_TYPE", + 2066: "BIGINT64_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2067: "BIGUINT64_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2068: "FLOAT32_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2069: "FLOAT64_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2070: "INT16_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2071: "INT32_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2072: "INT8_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2073: "UINT16_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2074: "UINT32_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2075: "UINT8_CLAMPED_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2076: "UINT8_TYPED_ARRAY_CONSTRUCTOR_TYPE", + 2077: "JS_ARRAY_CONSTRUCTOR_TYPE", + 2078: "JS_PROMISE_CONSTRUCTOR_TYPE", + 2079: "JS_REG_EXP_CONSTRUCTOR_TYPE", + 2080: "JS_CLASS_CONSTRUCTOR_TYPE", + 2081: "JS_ARRAY_ITERATOR_PROTOTYPE_TYPE", + 2082: "JS_ITERATOR_PROTOTYPE_TYPE", + 2083: "JS_MAP_ITERATOR_PROTOTYPE_TYPE", + 2084: "JS_OBJECT_PROTOTYPE_TYPE", + 2085: "JS_PROMISE_PROTOTYPE_TYPE", + 2086: "JS_REG_EXP_PROTOTYPE_TYPE", + 2087: "JS_SET_ITERATOR_PROTOTYPE_TYPE", + 2088: "JS_SET_PROTOTYPE_TYPE", + 2089: "JS_STRING_ITERATOR_PROTOTYPE_TYPE", + 2090: "JS_TYPED_ARRAY_PROTOTYPE_TYPE", + 2091: "JS_MAP_KEY_ITERATOR_TYPE", + 2092: "JS_MAP_KEY_VALUE_ITERATOR_TYPE", + 2093: "JS_MAP_VALUE_ITERATOR_TYPE", + 2094: "JS_SET_KEY_VALUE_ITERATOR_TYPE", + 2095: "JS_SET_VALUE_ITERATOR_TYPE", + 2096: "JS_GENERATOR_OBJECT_TYPE", + 2097: "JS_ASYNC_FUNCTION_OBJECT_TYPE", + 2098: "JS_ASYNC_GENERATOR_OBJECT_TYPE", + 2099: "JS_MAP_TYPE", + 2100: "JS_SET_TYPE", + 2101: "JS_WEAK_MAP_TYPE", + 2102: "JS_WEAK_SET_TYPE", + 2103: "JS_ARGUMENTS_OBJECT_TYPE", + 2104: "JS_ARRAY_TYPE", + 2105: "JS_ARRAY_ITERATOR_TYPE", + 2106: "JS_ASYNC_FROM_SYNC_ITERATOR_TYPE", + 2107: "JS_COLLATOR_TYPE", + 2108: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", + 2109: "JS_DATE_TYPE", + 2110: "JS_DATE_TIME_FORMAT_TYPE", + 2111: "JS_DISPLAY_NAMES_TYPE", + 2112: "JS_ERROR_TYPE", + 2113: "JS_EXTERNAL_OBJECT_TYPE", + 2114: "JS_FINALIZATION_REGISTRY_TYPE", + 2115: "JS_LIST_FORMAT_TYPE", + 2116: "JS_LOCALE_TYPE", + 2117: "JS_MESSAGE_OBJECT_TYPE", + 2118: "JS_NUMBER_FORMAT_TYPE", + 2119: "JS_PLURAL_RULES_TYPE", + 2120: "JS_REG_EXP_TYPE", + 2121: "JS_REG_EXP_STRING_ITERATOR_TYPE", + 2122: "JS_RELATIVE_TIME_FORMAT_TYPE", + 2123: "JS_SEGMENT_ITERATOR_TYPE", + 2124: "JS_SEGMENTER_TYPE", + 2125: "JS_SEGMENTS_TYPE", + 2126: "JS_SHADOW_REALM_TYPE", + 2127: "JS_SHARED_STRUCT_TYPE", + 2128: "JS_STRING_ITERATOR_TYPE", + 2129: "JS_TEMPORAL_CALENDAR_TYPE", + 2130: "JS_TEMPORAL_DURATION_TYPE", + 2131: "JS_TEMPORAL_INSTANT_TYPE", + 2132: "JS_TEMPORAL_PLAIN_DATE_TYPE", + 2133: "JS_TEMPORAL_PLAIN_DATE_TIME_TYPE", + 2134: "JS_TEMPORAL_PLAIN_MONTH_DAY_TYPE", + 2135: "JS_TEMPORAL_PLAIN_TIME_TYPE", + 2136: "JS_TEMPORAL_PLAIN_YEAR_MONTH_TYPE", + 2137: "JS_TEMPORAL_TIME_ZONE_TYPE", + 2138: "JS_TEMPORAL_ZONED_DATE_TIME_TYPE", + 2139: "JS_V8_BREAK_ITERATOR_TYPE", + 2140: "JS_WEAK_REF_TYPE", + 2141: "WASM_GLOBAL_OBJECT_TYPE", + 2142: "WASM_INSTANCE_OBJECT_TYPE", + 2143: "WASM_MEMORY_OBJECT_TYPE", + 2144: "WASM_MODULE_OBJECT_TYPE", + 2145: "WASM_SUSPENDER_OBJECT_TYPE", + 2146: "WASM_TABLE_OBJECT_TYPE", + 2147: "WASM_TAG_OBJECT_TYPE", + 2148: "WASM_VALUE_OBJECT_TYPE", } # List of known V8 maps. KNOWN_MAPS = { - ("read_only_space", 0x02119): (245, "MetaMap"), - ("read_only_space", 0x02141): (131, "NullMap"), - ("read_only_space", 0x02169): (229, "StrongDescriptorArrayMap"), - ("read_only_space", 0x02191): (258, "WeakArrayListMap"), - ("read_only_space", 0x021d5): (156, "EnumCacheMap"), - ("read_only_space", 0x02209): (176, "FixedArrayMap"), - ("read_only_space", 0x02255): (8, "OneByteInternalizedStringMap"), - ("read_only_space", 0x022a1): (242, "FreeSpaceMap"), - ("read_only_space", 0x022c9): (241, "OnePointerFillerMap"), - ("read_only_space", 0x022f1): (241, "TwoPointerFillerMap"), - ("read_only_space", 0x02319): (131, "UninitializedMap"), - ("read_only_space", 0x02391): (131, "UndefinedMap"), - ("read_only_space", 0x023d5): (130, "HeapNumberMap"), - ("read_only_space", 0x02409): (131, "TheHoleMap"), - ("read_only_space", 0x02469): (131, "BooleanMap"), - ("read_only_space", 0x0250d): (189, "ByteArrayMap"), - ("read_only_space", 0x02535): (176, "FixedCOWArrayMap"), - ("read_only_space", 0x0255d): (177, "HashTableMap"), - ("read_only_space", 0x02585): (128, "SymbolMap"), - ("read_only_space", 0x025ad): (40, "OneByteStringMap"), - ("read_only_space", 0x025d5): (251, "ScopeInfoMap"), - ("read_only_space", 0x025fd): (252, "SharedFunctionInfoMap"), - ("read_only_space", 0x02625): (235, "CodeMap"), - ("read_only_space", 0x0264d): (234, "CellMap"), - ("read_only_space", 0x02675): (250, "GlobalPropertyCellMap"), - ("read_only_space", 0x0269d): (204, "ForeignMap"), - ("read_only_space", 0x026c5): (233, "TransitionArrayMap"), - ("read_only_space", 0x026ed): (45, "ThinOneByteStringMap"), - ("read_only_space", 0x02715): (240, "FeedbackVectorMap"), - ("read_only_space", 0x0274d): (131, "ArgumentsMarkerMap"), - ("read_only_space", 0x027ad): (131, "ExceptionMap"), - ("read_only_space", 0x02809): (131, "TerminationExceptionMap"), - ("read_only_space", 0x02871): (131, "OptimizedOutMap"), - ("read_only_space", 0x028d1): (131, "StaleRegisterMap"), - ("read_only_space", 0x02931): (188, "ScriptContextTableMap"), - ("read_only_space", 0x02959): (186, "ClosureFeedbackCellArrayMap"), - ("read_only_space", 0x02981): (239, "FeedbackMetadataArrayMap"), - ("read_only_space", 0x029a9): (176, "ArrayListMap"), - ("read_only_space", 0x029d1): (129, "BigIntMap"), - ("read_only_space", 0x029f9): (187, "ObjectBoilerplateDescriptionMap"), - ("read_only_space", 0x02a21): (190, "BytecodeArrayMap"), - ("read_only_space", 0x02a49): (236, "CodeDataContainerMap"), - ("read_only_space", 0x02a71): (237, "CoverageInfoMap"), - ("read_only_space", 0x02a99): (191, "FixedDoubleArrayMap"), - ("read_only_space", 0x02ac1): (179, "GlobalDictionaryMap"), - ("read_only_space", 0x02ae9): (157, "ManyClosuresCellMap"), - ("read_only_space", 0x02b11): (246, "MegaDomHandlerMap"), - ("read_only_space", 0x02b39): (176, "ModuleInfoMap"), - ("read_only_space", 0x02b61): (180, "NameDictionaryMap"), - ("read_only_space", 0x02b89): (157, "NoClosuresCellMap"), - ("read_only_space", 0x02bb1): (181, "NumberDictionaryMap"), - ("read_only_space", 0x02bd9): (157, "OneClosureCellMap"), - ("read_only_space", 0x02c01): (182, "OrderedHashMapMap"), - ("read_only_space", 0x02c29): (183, "OrderedHashSetMap"), - ("read_only_space", 0x02c51): (184, "OrderedNameDictionaryMap"), - ("read_only_space", 0x02c79): (248, "PreparseDataMap"), - ("read_only_space", 0x02ca1): (249, "PropertyArrayMap"), - ("read_only_space", 0x02cc9): (153, "SideEffectCallHandlerInfoMap"), - ("read_only_space", 0x02cf1): (153, "SideEffectFreeCallHandlerInfoMap"), - ("read_only_space", 0x02d19): (153, "NextCallSideEffectFreeCallHandlerInfoMap"), - ("read_only_space", 0x02d41): (185, "SimpleNumberDictionaryMap"), - ("read_only_space", 0x02d69): (223, "SmallOrderedHashMapMap"), - ("read_only_space", 0x02d91): (224, "SmallOrderedHashSetMap"), - ("read_only_space", 0x02db9): (225, "SmallOrderedNameDictionaryMap"), - ("read_only_space", 0x02de1): (230, "SourceTextModuleMap"), - ("read_only_space", 0x02e09): (256, "SwissNameDictionaryMap"), - ("read_only_space", 0x02e31): (231, "SyntheticModuleMap"), - ("read_only_space", 0x02e59): (257, "WasmApiFunctionRefMap"), - ("read_only_space", 0x02e81): (217, "WasmCapiFunctionDataMap"), - ("read_only_space", 0x02ea9): (218, "WasmExportedFunctionDataMap"), - ("read_only_space", 0x02ed1): (205, "WasmInternalFunctionMap"), - ("read_only_space", 0x02ef9): (219, "WasmJSFunctionDataMap"), - ("read_only_space", 0x02f21): (206, "WasmTypeInfoMap"), - ("read_only_space", 0x02f49): (232, "WeakFixedArrayMap"), - ("read_only_space", 0x02f71): (178, "EphemeronHashTableMap"), - ("read_only_space", 0x02f99): (238, "EmbedderDataArrayMap"), - ("read_only_space", 0x02fc1): (259, "WeakCellMap"), - ("read_only_space", 0x02fe9): (32, "StringMap"), - ("read_only_space", 0x03011): (41, "ConsOneByteStringMap"), - ("read_only_space", 0x03039): (33, "ConsStringMap"), - ("read_only_space", 0x03061): (37, "ThinStringMap"), - ("read_only_space", 0x03089): (35, "SlicedStringMap"), - ("read_only_space", 0x030b1): (43, "SlicedOneByteStringMap"), - ("read_only_space", 0x030d9): (34, "ExternalStringMap"), - ("read_only_space", 0x03101): (42, "ExternalOneByteStringMap"), - ("read_only_space", 0x03129): (50, "UncachedExternalStringMap"), - ("read_only_space", 0x03151): (0, "InternalizedStringMap"), - ("read_only_space", 0x03179): (2, "ExternalInternalizedStringMap"), - ("read_only_space", 0x031a1): (10, "ExternalOneByteInternalizedStringMap"), - ("read_only_space", 0x031c9): (18, "UncachedExternalInternalizedStringMap"), - ("read_only_space", 0x031f1): (26, "UncachedExternalOneByteInternalizedStringMap"), - ("read_only_space", 0x03219): (58, "UncachedExternalOneByteStringMap"), - ("read_only_space", 0x03241): (104, "SharedOneByteStringMap"), - ("read_only_space", 0x03269): (96, "SharedStringMap"), - ("read_only_space", 0x03291): (109, "SharedThinOneByteStringMap"), - ("read_only_space", 0x032b9): (101, "SharedThinStringMap"), - ("read_only_space", 0x032e1): (96, "TwoByteSeqStringMigrationSentinelMap"), - ("read_only_space", 0x03309): (104, "OneByteSeqStringMigrationSentinelMap"), - ("read_only_space", 0x03331): (131, "SelfReferenceMarkerMap"), - ("read_only_space", 0x03359): (131, "BasicBlockCountersMarkerMap"), - ("read_only_space", 0x0339d): (147, "ArrayBoilerplateDescriptionMap"), - ("read_only_space", 0x0349d): (159, "InterceptorInfoMap"), - ("read_only_space", 0x05d11): (132, "PromiseFulfillReactionJobTaskMap"), - ("read_only_space", 0x05d39): (133, "PromiseRejectReactionJobTaskMap"), - ("read_only_space", 0x05d61): (134, "CallableTaskMap"), - ("read_only_space", 0x05d89): (135, "CallbackTaskMap"), - ("read_only_space", 0x05db1): (136, "PromiseResolveThenableJobTaskMap"), - ("read_only_space", 0x05dd9): (139, "FunctionTemplateInfoMap"), - ("read_only_space", 0x05e01): (140, "ObjectTemplateInfoMap"), - ("read_only_space", 0x05e29): (141, "AccessCheckInfoMap"), - ("read_only_space", 0x05e51): (142, "AccessorInfoMap"), - ("read_only_space", 0x05e79): (143, "AccessorPairMap"), - ("read_only_space", 0x05ea1): (144, "AliasedArgumentsEntryMap"), - ("read_only_space", 0x05ec9): (145, "AllocationMementoMap"), - ("read_only_space", 0x05ef1): (148, "AsmWasmDataMap"), - ("read_only_space", 0x05f19): (149, "AsyncGeneratorRequestMap"), - ("read_only_space", 0x05f41): (150, "BreakPointMap"), - ("read_only_space", 0x05f69): (151, "BreakPointInfoMap"), - ("read_only_space", 0x05f91): (152, "CachedTemplateObjectMap"), - ("read_only_space", 0x05fb9): (154, "ClassPositionsMap"), - ("read_only_space", 0x05fe1): (155, "DebugInfoMap"), - ("read_only_space", 0x06009): (158, "FunctionTemplateRareDataMap"), - ("read_only_space", 0x06031): (160, "InterpreterDataMap"), - ("read_only_space", 0x06059): (161, "ModuleRequestMap"), - ("read_only_space", 0x06081): (162, "PromiseCapabilityMap"), - ("read_only_space", 0x060a9): (163, "PromiseReactionMap"), - ("read_only_space", 0x060d1): (164, "PropertyDescriptorObjectMap"), - ("read_only_space", 0x060f9): (165, "PrototypeInfoMap"), - ("read_only_space", 0x06121): (166, "RegExpBoilerplateDescriptionMap"), - ("read_only_space", 0x06149): (167, "ScriptMap"), - ("read_only_space", 0x06171): (168, "ScriptOrModuleMap"), - ("read_only_space", 0x06199): (169, "SourceTextModuleInfoEntryMap"), - ("read_only_space", 0x061c1): (170, "StackFrameInfoMap"), - ("read_only_space", 0x061e9): (171, "TemplateObjectDescriptionMap"), - ("read_only_space", 0x06211): (172, "Tuple2Map"), - ("read_only_space", 0x06239): (173, "WasmContinuationObjectMap"), - ("read_only_space", 0x06261): (174, "WasmExceptionTagMap"), - ("read_only_space", 0x06289): (175, "WasmIndirectFunctionTableMap"), - ("read_only_space", 0x062b1): (193, "SloppyArgumentsElementsMap"), - ("read_only_space", 0x062d9): (228, "DescriptorArrayMap"), - ("read_only_space", 0x06301): (214, "UncompiledDataWithoutPreparseDataMap"), - ("read_only_space", 0x06329): (212, "UncompiledDataWithPreparseDataMap"), - ("read_only_space", 0x06351): (215, "UncompiledDataWithoutPreparseDataWithJobMap"), - ("read_only_space", 0x06379): (213, "UncompiledDataWithPreparseDataAndJobMap"), - ("read_only_space", 0x063a1): (247, "OnHeapBasicBlockProfilerDataMap"), - ("read_only_space", 0x063c9): (207, "TurbofanBitsetTypeMap"), - ("read_only_space", 0x063f1): (211, "TurbofanUnionTypeMap"), - ("read_only_space", 0x06419): (210, "TurbofanRangeTypeMap"), - ("read_only_space", 0x06441): (208, "TurbofanHeapConstantTypeMap"), - ("read_only_space", 0x06469): (209, "TurbofanOtherNumberConstantTypeMap"), - ("read_only_space", 0x06491): (243, "InternalClassMap"), - ("read_only_space", 0x064b9): (254, "SmiPairMap"), - ("read_only_space", 0x064e1): (253, "SmiBoxMap"), - ("read_only_space", 0x06509): (220, "ExportedSubClassBaseMap"), - ("read_only_space", 0x06531): (221, "ExportedSubClassMap"), - ("read_only_space", 0x06559): (226, "AbstractInternalClassSubclass1Map"), - ("read_only_space", 0x06581): (227, "AbstractInternalClassSubclass2Map"), - ("read_only_space", 0x065a9): (192, "InternalClassWithSmiElementsMap"), - ("read_only_space", 0x065d1): (244, "InternalClassWithStructElementsMap"), - ("read_only_space", 0x065f9): (222, "ExportedSubClass2Map"), - ("read_only_space", 0x06621): (255, "SortStateMap"), - ("read_only_space", 0x06649): (146, "AllocationSiteWithWeakNextMap"), - ("read_only_space", 0x06671): (146, "AllocationSiteWithoutWeakNextMap"), - ("read_only_space", 0x06699): (137, "LoadHandler1Map"), - ("read_only_space", 0x066c1): (137, "LoadHandler2Map"), - ("read_only_space", 0x066e9): (137, "LoadHandler3Map"), - ("read_only_space", 0x06711): (138, "StoreHandler0Map"), - ("read_only_space", 0x06739): (138, "StoreHandler1Map"), - ("read_only_space", 0x06761): (138, "StoreHandler2Map"), - ("read_only_space", 0x06789): (138, "StoreHandler3Map"), - ("map_space", 0x02119): (1057, "ExternalMap"), - ("map_space", 0x02141): (2114, "JSMessageObjectMap"), + ("read_only_space", 0x02149): (250, "MetaMap"), + ("read_only_space", 0x02171): (131, "NullMap"), + ("read_only_space", 0x02199): (234, "StrongDescriptorArrayMap"), + ("read_only_space", 0x021c1): (264, "WeakArrayListMap"), + ("read_only_space", 0x02205): (157, "EnumCacheMap"), + ("read_only_space", 0x02239): (179, "FixedArrayMap"), + ("read_only_space", 0x02285): (8, "OneByteInternalizedStringMap"), + ("read_only_space", 0x022d1): (247, "FreeSpaceMap"), + ("read_only_space", 0x022f9): (246, "OnePointerFillerMap"), + ("read_only_space", 0x02321): (246, "TwoPointerFillerMap"), + ("read_only_space", 0x02349): (131, "UninitializedMap"), + ("read_only_space", 0x023c1): (131, "UndefinedMap"), + ("read_only_space", 0x02405): (130, "HeapNumberMap"), + ("read_only_space", 0x02439): (131, "TheHoleMap"), + ("read_only_space", 0x02499): (131, "BooleanMap"), + ("read_only_space", 0x0253d): (194, "ByteArrayMap"), + ("read_only_space", 0x02565): (179, "FixedCOWArrayMap"), + ("read_only_space", 0x0258d): (180, "HashTableMap"), + ("read_only_space", 0x025b5): (128, "SymbolMap"), + ("read_only_space", 0x025dd): (40, "OneByteStringMap"), + ("read_only_space", 0x02605): (256, "ScopeInfoMap"), + ("read_only_space", 0x0262d): (257, "SharedFunctionInfoMap"), + ("read_only_space", 0x02655): (240, "CodeMap"), + ("read_only_space", 0x0267d): (239, "CellMap"), + ("read_only_space", 0x026a5): (255, "GlobalPropertyCellMap"), + ("read_only_space", 0x026cd): (204, "ForeignMap"), + ("read_only_space", 0x026f5): (238, "TransitionArrayMap"), + ("read_only_space", 0x0271d): (45, "ThinOneByteStringMap"), + ("read_only_space", 0x02745): (245, "FeedbackVectorMap"), + ("read_only_space", 0x0277d): (131, "ArgumentsMarkerMap"), + ("read_only_space", 0x027dd): (131, "ExceptionMap"), + ("read_only_space", 0x02839): (131, "TerminationExceptionMap"), + ("read_only_space", 0x028a1): (131, "OptimizedOutMap"), + ("read_only_space", 0x02901): (131, "StaleRegisterMap"), + ("read_only_space", 0x02961): (193, "ScriptContextTableMap"), + ("read_only_space", 0x02989): (191, "ClosureFeedbackCellArrayMap"), + ("read_only_space", 0x029b1): (244, "FeedbackMetadataArrayMap"), + ("read_only_space", 0x029d9): (179, "ArrayListMap"), + ("read_only_space", 0x02a01): (129, "BigIntMap"), + ("read_only_space", 0x02a29): (192, "ObjectBoilerplateDescriptionMap"), + ("read_only_space", 0x02a51): (195, "BytecodeArrayMap"), + ("read_only_space", 0x02a79): (241, "CodeDataContainerMap"), + ("read_only_space", 0x02aa1): (242, "CoverageInfoMap"), + ("read_only_space", 0x02ac9): (196, "FixedDoubleArrayMap"), + ("read_only_space", 0x02af1): (182, "GlobalDictionaryMap"), + ("read_only_space", 0x02b19): (159, "ManyClosuresCellMap"), + ("read_only_space", 0x02b41): (251, "MegaDomHandlerMap"), + ("read_only_space", 0x02b69): (179, "ModuleInfoMap"), + ("read_only_space", 0x02b91): (183, "NameDictionaryMap"), + ("read_only_space", 0x02bb9): (159, "NoClosuresCellMap"), + ("read_only_space", 0x02be1): (185, "NumberDictionaryMap"), + ("read_only_space", 0x02c09): (159, "OneClosureCellMap"), + ("read_only_space", 0x02c31): (186, "OrderedHashMapMap"), + ("read_only_space", 0x02c59): (187, "OrderedHashSetMap"), + ("read_only_space", 0x02c81): (184, "NameToIndexHashTableMap"), + ("read_only_space", 0x02ca9): (189, "RegisteredSymbolTableMap"), + ("read_only_space", 0x02cd1): (188, "OrderedNameDictionaryMap"), + ("read_only_space", 0x02cf9): (253, "PreparseDataMap"), + ("read_only_space", 0x02d21): (254, "PropertyArrayMap"), + ("read_only_space", 0x02d49): (153, "SideEffectCallHandlerInfoMap"), + ("read_only_space", 0x02d71): (153, "SideEffectFreeCallHandlerInfoMap"), + ("read_only_space", 0x02d99): (153, "NextCallSideEffectFreeCallHandlerInfoMap"), + ("read_only_space", 0x02dc1): (190, "SimpleNumberDictionaryMap"), + ("read_only_space", 0x02de9): (228, "SmallOrderedHashMapMap"), + ("read_only_space", 0x02e11): (229, "SmallOrderedHashSetMap"), + ("read_only_space", 0x02e39): (230, "SmallOrderedNameDictionaryMap"), + ("read_only_space", 0x02e61): (235, "SourceTextModuleMap"), + ("read_only_space", 0x02e89): (261, "SwissNameDictionaryMap"), + ("read_only_space", 0x02eb1): (236, "SyntheticModuleMap"), + ("read_only_space", 0x02ed9): (262, "WasmApiFunctionRefMap"), + ("read_only_space", 0x02f01): (222, "WasmCapiFunctionDataMap"), + ("read_only_space", 0x02f29): (223, "WasmExportedFunctionDataMap"), + ("read_only_space", 0x02f51): (205, "WasmInternalFunctionMap"), + ("read_only_space", 0x02f79): (224, "WasmJSFunctionDataMap"), + ("read_only_space", 0x02fa1): (263, "WasmOnFulfilledDataMap"), + ("read_only_space", 0x02fc9): (206, "WasmTypeInfoMap"), + ("read_only_space", 0x02ff1): (237, "WeakFixedArrayMap"), + ("read_only_space", 0x03019): (181, "EphemeronHashTableMap"), + ("read_only_space", 0x03041): (243, "EmbedderDataArrayMap"), + ("read_only_space", 0x03069): (265, "WeakCellMap"), + ("read_only_space", 0x03091): (32, "StringMap"), + ("read_only_space", 0x030b9): (41, "ConsOneByteStringMap"), + ("read_only_space", 0x030e1): (33, "ConsStringMap"), + ("read_only_space", 0x03109): (37, "ThinStringMap"), + ("read_only_space", 0x03131): (35, "SlicedStringMap"), + ("read_only_space", 0x03159): (43, "SlicedOneByteStringMap"), + ("read_only_space", 0x03181): (34, "ExternalStringMap"), + ("read_only_space", 0x031a9): (42, "ExternalOneByteStringMap"), + ("read_only_space", 0x031d1): (50, "UncachedExternalStringMap"), + ("read_only_space", 0x031f9): (0, "InternalizedStringMap"), + ("read_only_space", 0x03221): (2, "ExternalInternalizedStringMap"), + ("read_only_space", 0x03249): (10, "ExternalOneByteInternalizedStringMap"), + ("read_only_space", 0x03271): (18, "UncachedExternalInternalizedStringMap"), + ("read_only_space", 0x03299): (26, "UncachedExternalOneByteInternalizedStringMap"), + ("read_only_space", 0x032c1): (58, "UncachedExternalOneByteStringMap"), + ("read_only_space", 0x032e9): (104, "SharedOneByteStringMap"), + ("read_only_space", 0x03311): (96, "SharedStringMap"), + ("read_only_space", 0x03339): (109, "SharedThinOneByteStringMap"), + ("read_only_space", 0x03361): (101, "SharedThinStringMap"), + ("read_only_space", 0x03389): (96, "TwoByteSeqStringMigrationSentinelMap"), + ("read_only_space", 0x033b1): (104, "OneByteSeqStringMigrationSentinelMap"), + ("read_only_space", 0x033d9): (131, "SelfReferenceMarkerMap"), + ("read_only_space", 0x03401): (131, "BasicBlockCountersMarkerMap"), + ("read_only_space", 0x03445): (147, "ArrayBoilerplateDescriptionMap"), + ("read_only_space", 0x03545): (161, "InterceptorInfoMap"), + ("read_only_space", 0x06015): (132, "PromiseFulfillReactionJobTaskMap"), + ("read_only_space", 0x0603d): (133, "PromiseRejectReactionJobTaskMap"), + ("read_only_space", 0x06065): (134, "CallableTaskMap"), + ("read_only_space", 0x0608d): (135, "CallbackTaskMap"), + ("read_only_space", 0x060b5): (136, "PromiseResolveThenableJobTaskMap"), + ("read_only_space", 0x060dd): (139, "FunctionTemplateInfoMap"), + ("read_only_space", 0x06105): (140, "ObjectTemplateInfoMap"), + ("read_only_space", 0x0612d): (141, "AccessCheckInfoMap"), + ("read_only_space", 0x06155): (142, "AccessorInfoMap"), + ("read_only_space", 0x0617d): (143, "AccessorPairMap"), + ("read_only_space", 0x061a5): (144, "AliasedArgumentsEntryMap"), + ("read_only_space", 0x061cd): (145, "AllocationMementoMap"), + ("read_only_space", 0x061f5): (148, "AsmWasmDataMap"), + ("read_only_space", 0x0621d): (149, "AsyncGeneratorRequestMap"), + ("read_only_space", 0x06245): (150, "BreakPointMap"), + ("read_only_space", 0x0626d): (151, "BreakPointInfoMap"), + ("read_only_space", 0x06295): (152, "CachedTemplateObjectMap"), + ("read_only_space", 0x062bd): (154, "CallSiteInfoMap"), + ("read_only_space", 0x062e5): (155, "ClassPositionsMap"), + ("read_only_space", 0x0630d): (156, "DebugInfoMap"), + ("read_only_space", 0x06335): (158, "ErrorStackDataMap"), + ("read_only_space", 0x0635d): (160, "FunctionTemplateRareDataMap"), + ("read_only_space", 0x06385): (162, "InterpreterDataMap"), + ("read_only_space", 0x063ad): (163, "ModuleRequestMap"), + ("read_only_space", 0x063d5): (164, "PromiseCapabilityMap"), + ("read_only_space", 0x063fd): (165, "PromiseOnStackMap"), + ("read_only_space", 0x06425): (166, "PromiseReactionMap"), + ("read_only_space", 0x0644d): (167, "PropertyDescriptorObjectMap"), + ("read_only_space", 0x06475): (168, "PrototypeInfoMap"), + ("read_only_space", 0x0649d): (169, "RegExpBoilerplateDescriptionMap"), + ("read_only_space", 0x064c5): (170, "ScriptMap"), + ("read_only_space", 0x064ed): (171, "ScriptOrModuleMap"), + ("read_only_space", 0x06515): (172, "SourceTextModuleInfoEntryMap"), + ("read_only_space", 0x0653d): (173, "StackFrameInfoMap"), + ("read_only_space", 0x06565): (174, "TemplateObjectDescriptionMap"), + ("read_only_space", 0x0658d): (175, "Tuple2Map"), + ("read_only_space", 0x065b5): (176, "WasmContinuationObjectMap"), + ("read_only_space", 0x065dd): (177, "WasmExceptionTagMap"), + ("read_only_space", 0x06605): (178, "WasmIndirectFunctionTableMap"), + ("read_only_space", 0x0662d): (198, "SloppyArgumentsElementsMap"), + ("read_only_space", 0x06655): (233, "DescriptorArrayMap"), + ("read_only_space", 0x0667d): (219, "UncompiledDataWithoutPreparseDataMap"), + ("read_only_space", 0x066a5): (217, "UncompiledDataWithPreparseDataMap"), + ("read_only_space", 0x066cd): (220, "UncompiledDataWithoutPreparseDataWithJobMap"), + ("read_only_space", 0x066f5): (218, "UncompiledDataWithPreparseDataAndJobMap"), + ("read_only_space", 0x0671d): (252, "OnHeapBasicBlockProfilerDataMap"), + ("read_only_space", 0x06745): (199, "TurbofanBitsetTypeMap"), + ("read_only_space", 0x0676d): (203, "TurbofanUnionTypeMap"), + ("read_only_space", 0x06795): (202, "TurbofanRangeTypeMap"), + ("read_only_space", 0x067bd): (200, "TurbofanHeapConstantTypeMap"), + ("read_only_space", 0x067e5): (201, "TurbofanOtherNumberConstantTypeMap"), + ("read_only_space", 0x0680d): (248, "InternalClassMap"), + ("read_only_space", 0x06835): (259, "SmiPairMap"), + ("read_only_space", 0x0685d): (258, "SmiBoxMap"), + ("read_only_space", 0x06885): (225, "ExportedSubClassBaseMap"), + ("read_only_space", 0x068ad): (226, "ExportedSubClassMap"), + ("read_only_space", 0x068d5): (231, "AbstractInternalClassSubclass1Map"), + ("read_only_space", 0x068fd): (232, "AbstractInternalClassSubclass2Map"), + ("read_only_space", 0x06925): (197, "InternalClassWithSmiElementsMap"), + ("read_only_space", 0x0694d): (249, "InternalClassWithStructElementsMap"), + ("read_only_space", 0x06975): (227, "ExportedSubClass2Map"), + ("read_only_space", 0x0699d): (260, "SortStateMap"), + ("read_only_space", 0x069c5): (146, "AllocationSiteWithWeakNextMap"), + ("read_only_space", 0x069ed): (146, "AllocationSiteWithoutWeakNextMap"), + ("read_only_space", 0x06a15): (137, "LoadHandler1Map"), + ("read_only_space", 0x06a3d): (137, "LoadHandler2Map"), + ("read_only_space", 0x06a65): (137, "LoadHandler3Map"), + ("read_only_space", 0x06a8d): (138, "StoreHandler0Map"), + ("read_only_space", 0x06ab5): (138, "StoreHandler1Map"), + ("read_only_space", 0x06add): (138, "StoreHandler2Map"), + ("read_only_space", 0x06b05): (138, "StoreHandler3Map"), + ("map_space", 0x02149): (2113, "ExternalMap"), + ("map_space", 0x02171): (2117, "JSMessageObjectMap"), } # List of known V8 objects. KNOWN_OBJECTS = { - ("read_only_space", 0x021b9): "EmptyWeakArrayList", - ("read_only_space", 0x021c5): "EmptyDescriptorArray", - ("read_only_space", 0x021fd): "EmptyEnumCache", - ("read_only_space", 0x02231): "EmptyFixedArray", - ("read_only_space", 0x02239): "NullValue", - ("read_only_space", 0x02341): "UninitializedValue", - ("read_only_space", 0x023b9): "UndefinedValue", - ("read_only_space", 0x023fd): "NanValue", - ("read_only_space", 0x02431): "TheHoleValue", - ("read_only_space", 0x0245d): "HoleNanValue", - ("read_only_space", 0x02491): "TrueValue", - ("read_only_space", 0x024d1): "FalseValue", - ("read_only_space", 0x02501): "empty_string", - ("read_only_space", 0x0273d): "EmptyScopeInfo", - ("read_only_space", 0x02775): "ArgumentsMarker", - ("read_only_space", 0x027d5): "Exception", - ("read_only_space", 0x02831): "TerminationException", - ("read_only_space", 0x02899): "OptimizedOut", - ("read_only_space", 0x028f9): "StaleRegister", - ("read_only_space", 0x03381): "EmptyPropertyArray", - ("read_only_space", 0x03389): "EmptyByteArray", - ("read_only_space", 0x03391): "EmptyObjectBoilerplateDescription", - ("read_only_space", 0x033c5): "EmptyArrayBoilerplateDescription", - ("read_only_space", 0x033d1): "EmptyClosureFeedbackCellArray", - ("read_only_space", 0x033d9): "EmptySlowElementDictionary", - ("read_only_space", 0x033fd): "EmptyOrderedHashMap", - ("read_only_space", 0x03411): "EmptyOrderedHashSet", - ("read_only_space", 0x03425): "EmptyFeedbackMetadata", - ("read_only_space", 0x03431): "EmptyPropertyDictionary", - ("read_only_space", 0x03459): "EmptyOrderedPropertyDictionary", - ("read_only_space", 0x03471): "EmptySwissPropertyDictionary", - ("read_only_space", 0x034c5): "NoOpInterceptorInfo", - ("read_only_space", 0x034ed): "EmptyWeakFixedArray", - ("read_only_space", 0x034f5): "InfinityValue", - ("read_only_space", 0x03501): "MinusZeroValue", - ("read_only_space", 0x0350d): "MinusInfinityValue", - ("read_only_space", 0x03519): "SelfReferenceMarker", - ("read_only_space", 0x03559): "BasicBlockCountersMarker", - ("read_only_space", 0x0359d): "OffHeapTrampolineRelocationInfo", - ("read_only_space", 0x035a9): "TrampolineTrivialCodeDataContainer", - ("read_only_space", 0x035b5): "TrampolinePromiseRejectionCodeDataContainer", - ("read_only_space", 0x035c1): "GlobalThisBindingScopeInfo", - ("read_only_space", 0x035f1): "EmptyFunctionScopeInfo", - ("read_only_space", 0x03615): "NativeScopeInfo", - ("read_only_space", 0x0362d): "HashSeed", - ("old_space", 0x04211): "ArgumentsIteratorAccessor", - ("old_space", 0x04255): "ArrayLengthAccessor", - ("old_space", 0x04299): "BoundFunctionLengthAccessor", - ("old_space", 0x042dd): "BoundFunctionNameAccessor", - ("old_space", 0x04321): "ErrorStackAccessor", - ("old_space", 0x04365): "FunctionArgumentsAccessor", - ("old_space", 0x043a9): "FunctionCallerAccessor", - ("old_space", 0x043ed): "FunctionNameAccessor", - ("old_space", 0x04431): "FunctionLengthAccessor", - ("old_space", 0x04475): "FunctionPrototypeAccessor", - ("old_space", 0x044b9): "StringLengthAccessor", - ("old_space", 0x044fd): "InvalidPrototypeValidityCell", - ("old_space", 0x04505): "EmptyScript", - ("old_space", 0x04545): "ManyClosuresCell", - ("old_space", 0x04551): "ArrayConstructorProtector", - ("old_space", 0x04565): "NoElementsProtector", - ("old_space", 0x04579): "MegaDOMProtector", - ("old_space", 0x0458d): "IsConcatSpreadableProtector", - ("old_space", 0x045a1): "ArraySpeciesProtector", - ("old_space", 0x045b5): "TypedArraySpeciesProtector", - ("old_space", 0x045c9): "PromiseSpeciesProtector", - ("old_space", 0x045dd): "RegExpSpeciesProtector", - ("old_space", 0x045f1): "StringLengthProtector", - ("old_space", 0x04605): "ArrayIteratorProtector", - ("old_space", 0x04619): "ArrayBufferDetachingProtector", - ("old_space", 0x0462d): "PromiseHookProtector", - ("old_space", 0x04641): "PromiseResolveProtector", - ("old_space", 0x04655): "MapIteratorProtector", - ("old_space", 0x04669): "PromiseThenProtector", - ("old_space", 0x0467d): "SetIteratorProtector", - ("old_space", 0x04691): "StringIteratorProtector", - ("old_space", 0x046a5): "SingleCharacterStringCache", - ("old_space", 0x04aad): "StringSplitCache", - ("old_space", 0x04eb5): "RegExpMultipleCache", - ("old_space", 0x052bd): "BuiltinsConstantsTable", - ("old_space", 0x056e5): "AsyncFunctionAwaitRejectSharedFun", - ("old_space", 0x05709): "AsyncFunctionAwaitResolveSharedFun", - ("old_space", 0x0572d): "AsyncGeneratorAwaitRejectSharedFun", - ("old_space", 0x05751): "AsyncGeneratorAwaitResolveSharedFun", - ("old_space", 0x05775): "AsyncGeneratorYieldResolveSharedFun", - ("old_space", 0x05799): "AsyncGeneratorReturnResolveSharedFun", - ("old_space", 0x057bd): "AsyncGeneratorReturnClosedRejectSharedFun", - ("old_space", 0x057e1): "AsyncGeneratorReturnClosedResolveSharedFun", - ("old_space", 0x05805): "AsyncIteratorValueUnwrapSharedFun", - ("old_space", 0x05829): "PromiseAllResolveElementSharedFun", - ("old_space", 0x0584d): "PromiseAllSettledResolveElementSharedFun", - ("old_space", 0x05871): "PromiseAllSettledRejectElementSharedFun", - ("old_space", 0x05895): "PromiseAnyRejectElementSharedFun", - ("old_space", 0x058b9): "PromiseCapabilityDefaultRejectSharedFun", - ("old_space", 0x058dd): "PromiseCapabilityDefaultResolveSharedFun", - ("old_space", 0x05901): "PromiseCatchFinallySharedFun", - ("old_space", 0x05925): "PromiseGetCapabilitiesExecutorSharedFun", - ("old_space", 0x05949): "PromiseThenFinallySharedFun", - ("old_space", 0x0596d): "PromiseThrowerFinallySharedFun", - ("old_space", 0x05991): "PromiseValueThunkFinallySharedFun", - ("old_space", 0x059b5): "ProxyRevokeSharedFun", + ("read_only_space", 0x021e9): "EmptyWeakArrayList", + ("read_only_space", 0x021f5): "EmptyDescriptorArray", + ("read_only_space", 0x0222d): "EmptyEnumCache", + ("read_only_space", 0x02261): "EmptyFixedArray", + ("read_only_space", 0x02269): "NullValue", + ("read_only_space", 0x02371): "UninitializedValue", + ("read_only_space", 0x023e9): "UndefinedValue", + ("read_only_space", 0x0242d): "NanValue", + ("read_only_space", 0x02461): "TheHoleValue", + ("read_only_space", 0x0248d): "HoleNanValue", + ("read_only_space", 0x024c1): "TrueValue", + ("read_only_space", 0x02501): "FalseValue", + ("read_only_space", 0x02531): "empty_string", + ("read_only_space", 0x0276d): "EmptyScopeInfo", + ("read_only_space", 0x027a5): "ArgumentsMarker", + ("read_only_space", 0x02805): "Exception", + ("read_only_space", 0x02861): "TerminationException", + ("read_only_space", 0x028c9): "OptimizedOut", + ("read_only_space", 0x02929): "StaleRegister", + ("read_only_space", 0x03429): "EmptyPropertyArray", + ("read_only_space", 0x03431): "EmptyByteArray", + ("read_only_space", 0x03439): "EmptyObjectBoilerplateDescription", + ("read_only_space", 0x0346d): "EmptyArrayBoilerplateDescription", + ("read_only_space", 0x03479): "EmptyClosureFeedbackCellArray", + ("read_only_space", 0x03481): "EmptySlowElementDictionary", + ("read_only_space", 0x034a5): "EmptyOrderedHashMap", + ("read_only_space", 0x034b9): "EmptyOrderedHashSet", + ("read_only_space", 0x034cd): "EmptyFeedbackMetadata", + ("read_only_space", 0x034d9): "EmptyPropertyDictionary", + ("read_only_space", 0x03501): "EmptyOrderedPropertyDictionary", + ("read_only_space", 0x03519): "EmptySwissPropertyDictionary", + ("read_only_space", 0x0356d): "NoOpInterceptorInfo", + ("read_only_space", 0x03595): "EmptyArrayList", + ("read_only_space", 0x035a1): "EmptyWeakFixedArray", + ("read_only_space", 0x035a9): "InfinityValue", + ("read_only_space", 0x035b5): "MinusZeroValue", + ("read_only_space", 0x035c1): "MinusInfinityValue", + ("read_only_space", 0x035cd): "SelfReferenceMarker", + ("read_only_space", 0x0360d): "BasicBlockCountersMarker", + ("read_only_space", 0x03651): "OffHeapTrampolineRelocationInfo", + ("read_only_space", 0x0365d): "GlobalThisBindingScopeInfo", + ("read_only_space", 0x0368d): "EmptyFunctionScopeInfo", + ("read_only_space", 0x036b1): "NativeScopeInfo", + ("read_only_space", 0x036c9): "HashSeed", + ("old_space", 0x04215): "ArgumentsIteratorAccessor", + ("old_space", 0x04259): "ArrayLengthAccessor", + ("old_space", 0x0429d): "BoundFunctionLengthAccessor", + ("old_space", 0x042e1): "BoundFunctionNameAccessor", + ("old_space", 0x04325): "ErrorStackAccessor", + ("old_space", 0x04369): "FunctionArgumentsAccessor", + ("old_space", 0x043ad): "FunctionCallerAccessor", + ("old_space", 0x043f1): "FunctionNameAccessor", + ("old_space", 0x04435): "FunctionLengthAccessor", + ("old_space", 0x04479): "FunctionPrototypeAccessor", + ("old_space", 0x044bd): "StringLengthAccessor", + ("old_space", 0x04501): "WrappedFunctionLengthAccessor", + ("old_space", 0x04545): "WrappedFunctionNameAccessor", + ("old_space", 0x04589): "InvalidPrototypeValidityCell", + ("old_space", 0x04591): "EmptyScript", + ("old_space", 0x045d1): "ManyClosuresCell", + ("old_space", 0x045dd): "ArrayConstructorProtector", + ("old_space", 0x045f1): "NoElementsProtector", + ("old_space", 0x04605): "MegaDOMProtector", + ("old_space", 0x04619): "IsConcatSpreadableProtector", + ("old_space", 0x0462d): "ArraySpeciesProtector", + ("old_space", 0x04641): "TypedArraySpeciesProtector", + ("old_space", 0x04655): "PromiseSpeciesProtector", + ("old_space", 0x04669): "RegExpSpeciesProtector", + ("old_space", 0x0467d): "StringLengthProtector", + ("old_space", 0x04691): "ArrayIteratorProtector", + ("old_space", 0x046a5): "ArrayBufferDetachingProtector", + ("old_space", 0x046b9): "PromiseHookProtector", + ("old_space", 0x046cd): "PromiseResolveProtector", + ("old_space", 0x046e1): "MapIteratorProtector", + ("old_space", 0x046f5): "PromiseThenProtector", + ("old_space", 0x04709): "SetIteratorProtector", + ("old_space", 0x0471d): "StringIteratorProtector", + ("old_space", 0x04731): "SingleCharacterStringCache", + ("old_space", 0x04b39): "StringSplitCache", + ("old_space", 0x04f41): "RegExpMultipleCache", + ("old_space", 0x05349): "BuiltinsConstantsTable", + ("old_space", 0x05775): "AsyncFunctionAwaitRejectSharedFun", + ("old_space", 0x05799): "AsyncFunctionAwaitResolveSharedFun", + ("old_space", 0x057bd): "AsyncGeneratorAwaitRejectSharedFun", + ("old_space", 0x057e1): "AsyncGeneratorAwaitResolveSharedFun", + ("old_space", 0x05805): "AsyncGeneratorYieldResolveSharedFun", + ("old_space", 0x05829): "AsyncGeneratorReturnResolveSharedFun", + ("old_space", 0x0584d): "AsyncGeneratorReturnClosedRejectSharedFun", + ("old_space", 0x05871): "AsyncGeneratorReturnClosedResolveSharedFun", + ("old_space", 0x05895): "AsyncIteratorValueUnwrapSharedFun", + ("old_space", 0x058b9): "PromiseAllResolveElementSharedFun", + ("old_space", 0x058dd): "PromiseAllSettledResolveElementSharedFun", + ("old_space", 0x05901): "PromiseAllSettledRejectElementSharedFun", + ("old_space", 0x05925): "PromiseAnyRejectElementSharedFun", + ("old_space", 0x05949): "PromiseCapabilityDefaultRejectSharedFun", + ("old_space", 0x0596d): "PromiseCapabilityDefaultResolveSharedFun", + ("old_space", 0x05991): "PromiseCatchFinallySharedFun", + ("old_space", 0x059b5): "PromiseGetCapabilitiesExecutorSharedFun", + ("old_space", 0x059d9): "PromiseThenFinallySharedFun", + ("old_space", 0x059fd): "PromiseThrowerFinallySharedFun", + ("old_space", 0x05a21): "PromiseValueThunkFinallySharedFun", + ("old_space", 0x05a45): "ProxyRevokeSharedFun", } # Lower 32 bits of first page addresses for various heap spaces. HEAP_FIRST_PAGES = { - 0x080c0000: "old_space", - 0x08100000: "map_space", - 0x08000000: "read_only_space", + 0x000c0000: "old_space", + 0x00100000: "map_space", + 0x00000000: "read_only_space", } # List of known V8 Frame Markers. @@ -556,7 +576,7 @@ "WASM", "WASM_TO_JS", "JS_TO_WASM", - "RETURN_PROMISE_ON_SUSPEND", + "STACK_SWITCH", "WASM_DEBUG_BREAK", "C_WASM_ENTRY", "WASM_EXIT", diff --git a/deps/v8/tools/v8windbg/BUILD.gn b/deps/v8/tools/v8windbg/BUILD.gn index e30b826b0f4962..5516a6109f2b1b 100644 --- a/deps/v8/tools/v8windbg/BUILD.gn +++ b/deps/v8/tools/v8windbg/BUILD.gn @@ -75,8 +75,8 @@ action("copy_prereqs") { outputs = [ "$root_out_dir/dbgeng.dll" ] args = [ - rebase_path("//build"), - rebase_path(root_out_dir), + rebase_path("//build", root_build_dir), + rebase_path(root_out_dir, root_build_dir), target_cpu, ] } diff --git a/deps/v8/tools/wasm/code-size-factors.py b/deps/v8/tools/wasm/code-size-factors.py new file mode 100755 index 00000000000000..57c691988ca61c --- /dev/null +++ b/deps/v8/tools/wasm/code-size-factors.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python3 +# vim:fenc=utf-8:ts=2:sw=2:softtabstop=2:expandtab: +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import sys +import re + +liftoff_regex = re.compile('^Compiled function .* using Liftoff, ' + '.*bodysize ([0-9]+) codesize ([0-9]+)$') +turbofan_regex = re.compile('^Compiled function .* using TurboFan, ' + '.*bodysize ([0-9]+) codesize ([0-9]+) ') +wasm2js_regex = re.compile('^Compiled WasmToJS wrapper .* ' + 'codesize ([0-9]+)$') + + +def main(): + print('Reading --trace-wasm-compilation-times lines from stdin...') + liftoff_values = [] + turbofan_values = [] + wasm2js_values = [] + for line in sys.stdin: + match(line, liftoff_regex, liftoff_values) + match(line, turbofan_regex, turbofan_values) + match_wasm2js(line, wasm2js_values) + + evaluate('Liftoff', liftoff_values) + evaluate('TurboFan', turbofan_values) + evaluate_wasm2js(wasm2js_values) + + +def match(line, regex, array): + m = regex.match(line) + if m: + array.append([int(m.group(1)), int(m.group(2))]) + + +def match_wasm2js(line, array): + m = wasm2js_regex.match(line) + if m: + array.append(int(m.group(1))) + + +def evaluate(name, values): + n = len(values) + if n == 0: + print(f'No values for {name}') + return + + print(f'Computing base and factor for {name} based on {n} values') + sum_xy = sum(x * y for [x, y] in values) + sum_x = sum(x for [x, y] in values) + sum_y = sum(y for [x, y] in values) + sum_xx = sum(x * x for [x, y] in values) + + factor = (n * sum_xy - sum_x * sum_y) / (n * sum_xx - sum_x * sum_x) + base = (sum_y - factor * sum_x) / n + + print(f'--> [{name}] Trend line: base: {base:.2f}, factor {factor:.2f}') + + min_y = min(y for [x, y] in values) + + simple_factor = (sum_y - n * min_y) / sum_x + print(f'--> [{name}] Simple analysis: Min {min_y}, ' + f'factor {simple_factor:.2f}') + + +def evaluate_wasm2js(values): + n = len(values) + if n == 0: + print('No wasm2js wrappers') + return + + print(f'--> [Wasm2js wrappers] {n} compiled, size min {min(values)}, ' + f'max {max(values)}, avg {(sum(values) / n):.2f}') + + +main() diff --git a/doc/abi_version_registry.json b/doc/abi_version_registry.json index 8f7690c283cc04..0ed54e8e717fe5 100644 --- a/doc/abi_version_registry.json +++ b/doc/abi_version_registry.json @@ -1,5 +1,6 @@ { "NODE_MODULE_VERSION": [ + { "modules": 108,"runtime": "node", "variant": "v8_10.1", "versions": "18.0.0" }, { "modules": 107,"runtime": "electron", "variant": "electron", "versions": "20" }, { "modules": 106,"runtime": "electron", "variant": "electron", "versions": "19" }, { "modules": 105,"runtime": "node", "variant": "v8_9.8", "versions": "18.0.0-pre" }, diff --git a/doc/api/assert.md b/doc/api/assert.md index 1987402958fe22..4847bbf86dda68 100644 --- a/doc/api/assert.md +++ b/doc/api/assert.md @@ -6,7 +6,7 @@ -The `assert` module provides a set of assertion functions for verifying +The `node:assert` module provides a set of assertion functions for verifying invariants. ## Strict assertion mode @@ -16,7 +16,7 @@ added: v9.9.0 changes: - version: v15.0.0 pr-url: https://github.com/nodejs/node/pull/34001 - description: Exposed as `require('assert/strict')`. + description: Exposed as `require('node:assert/strict')`. - version: - v13.9.0 - v12.16.2 @@ -42,25 +42,25 @@ assertion mode, error messages for objects display the objects, often truncated. To use strict assertion mode: ```mjs -import { strict as assert } from 'assert'; +import { strict as assert } from 'node:assert'; ``` ```cjs -const assert = require('assert').strict; +const assert = require('node:assert').strict; ``` ```mjs -import assert from 'assert/strict'; +import assert from 'node:assert/strict'; ``` ```cjs -const assert = require('assert/strict'); +const assert = require('node:assert/strict'); ``` Example error diff: ```mjs -import { strict as assert } from 'assert'; +import { strict as assert } from 'node:assert'; assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5]); // AssertionError: Expected inputs to be strictly deep-equal: @@ -79,7 +79,7 @@ assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5]); ``` ```cjs -const assert = require('assert/strict'); +const assert = require('node:assert/strict'); assert.deepEqual([[[1, 2, 3]], 4, 5], [[[1, 2, '3']], 4, 5]); // AssertionError: Expected inputs to be strictly deep-equal: @@ -114,11 +114,11 @@ Legacy assertion mode uses the [`==` operator][] in: To use legacy assertion mode: ```mjs -import assert from 'assert'; +import assert from 'node:assert'; ``` ```cjs -const assert = require('assert'); +const assert = require('node:assert'); ``` Legacy assertion mode may have surprising results, especially when using @@ -133,8 +133,8 @@ assert.deepEqual(/a/gi, new Date()); * Extends: {errors.Error} -Indicates the failure of an assertion. All errors thrown by the `assert` module -will be instances of the `AssertionError` class. +Indicates the failure of an assertion. All errors thrown by the `node:assert` +module will be instances of the `AssertionError` class. ### `new assert.AssertionError(options)` @@ -166,7 +166,7 @@ and: * `operator` {string} Set to the passed in operator value. ```mjs -import assert from 'assert'; +import assert from 'node:assert'; // Generate an AssertionError to compare the error message later: const { message } = new assert.AssertionError({ @@ -191,7 +191,7 @@ try { ``` ```cjs -const assert = require('assert'); +const assert = require('node:assert'); // Generate an AssertionError to compare the error message later: const { message } = new assert.AssertionError({ @@ -241,8 +241,8 @@ for the verification to take place. The usual pattern would be to call it in a [`process.on('exit')`][] handler. ```mjs -import assert from 'assert'; -import process from 'process'; +import assert from 'node:assert'; +import process from 'node:process'; const tracker = new assert.CallTracker(); @@ -261,7 +261,7 @@ process.on('exit', () => { ``` ```cjs -const assert = require('assert'); +const assert = require('node:assert'); const tracker = new assert.CallTracker(); @@ -297,7 +297,7 @@ function has not been called exactly `exact` times when error. ```mjs -import assert from 'assert'; +import assert from 'node:assert'; // Creates call tracker. const tracker = new assert.CallTracker(); @@ -310,7 +310,7 @@ const callsfunc = tracker.calls(func); ``` ```cjs -const assert = require('assert'); +const assert = require('node:assert'); // Creates call tracker. const tracker = new assert.CallTracker(); @@ -344,7 +344,7 @@ The arrays contains information about the expected and actual number of calls of the functions that have not been called the expected number of times. ```mjs -import assert from 'assert'; +import assert from 'node:assert'; // Creates call tracker. const tracker = new assert.CallTracker(); @@ -372,7 +372,7 @@ tracker.report(); ``` ```cjs -const assert = require('assert'); +const assert = require('node:assert'); // Creates call tracker. const tracker = new assert.CallTracker(); @@ -412,7 +412,7 @@ Iterates through the list of functions passed to have not been called the expected number of times. ```mjs -import assert from 'assert'; +import assert from 'node:assert'; // Creates call tracker. const tracker = new assert.CallTracker(); @@ -430,7 +430,7 @@ tracker.verify(); ``` ```cjs -const assert = require('assert'); +const assert = require('node:assert'); // Creates call tracker. const tracker = new assert.CallTracker(); @@ -463,7 +463,7 @@ An alias of [`assert.ok()`][]. -The `async_hooks` module provides an API to track asynchronous resources. It -can be accessed using: +The `node:async_hooks` module provides an API to track asynchronous resources. +It can be accessed using: ```mjs -import async_hooks from 'async_hooks'; +import async_hooks from 'node:async_hooks'; ``` ```cjs -const async_hooks = require('async_hooks'); +const async_hooks = require('node:async_hooks'); ``` ## Terminology @@ -34,7 +34,7 @@ interface, and each thread will use a new set of async IDs. Following is a simple overview of the public API. ```mjs -import async_hooks from 'async_hooks'; +import async_hooks from 'node:async_hooks'; // Return the ID of the current execution context. const eid = async_hooks.executionAsyncId(); @@ -82,7 +82,7 @@ function promiseResolve(asyncId) { } ``` ```cjs -const async_hooks = require('async_hooks'); +const async_hooks = require('node:async_hooks'); // Return the ID of the current execution context. const eid = async_hooks.executionAsyncId(); @@ -155,7 +155,7 @@ specifics of all functions that can be passed to `callbacks` is in the [Hook Callbacks][] section. ```mjs -import { createHook } from 'async_hooks'; +import { createHook } from 'node:async_hooks'; const asyncHook = createHook({ init(asyncId, type, triggerAsyncId, resource) { }, @@ -164,7 +164,7 @@ const asyncHook = createHook({ ``` ```cjs -const async_hooks = require('async_hooks'); +const async_hooks = require('node:async_hooks'); const asyncHook = async_hooks.createHook({ init(asyncId, type, triggerAsyncId, resource) { }, @@ -220,8 +220,8 @@ This will print to the file and will not invoke `AsyncHook` recursively because it is synchronous. ```mjs -import { writeFileSync } from 'fs'; -import { format } from 'util'; +import { writeFileSync } from 'node:fs'; +import { format } from 'node:util'; function debug(...args) { // Use a function like this one when debugging inside an AsyncHook callback @@ -230,8 +230,8 @@ function debug(...args) { ``` ```cjs -const fs = require('fs'); -const util = require('util'); +const fs = require('node:fs'); +const util = require('node:util'); function debug(...args) { // Use a function like this one when debugging inside an AsyncHook callback @@ -261,13 +261,13 @@ The `AsyncHook` instance is disabled by default. If the `AsyncHook` instance should be enabled immediately after creation, the following pattern can be used. ```mjs -import { createHook } from 'async_hooks'; +import { createHook } from 'node:async_hooks'; const hook = createHook(callbacks).enable(); ``` ```cjs -const async_hooks = require('async_hooks'); +const async_hooks = require('node:async_hooks'); const hook = async_hooks.createHook(callbacks).enable(); ``` @@ -307,7 +307,7 @@ closing it before the resource can be used. The following snippet demonstrates this. ```mjs -import { createServer } from 'net'; +import { createServer } from 'node:net'; createServer().listen(function() { this.close(); }); // OR @@ -315,7 +315,7 @@ clearTimeout(setTimeout(() => {}, 10)); ``` ```cjs -require('net').createServer().listen(function() { this.close(); }); +require('node:net').createServer().listen(function() { this.close(); }); // OR clearTimeout(setTimeout(() => {}, 10)); ``` @@ -361,9 +361,9 @@ created, while `triggerAsyncId` shows _why_ a resource was created. The following is a simple demonstration of `triggerAsyncId`: ```mjs -import { createHook, executionAsyncId } from 'async_hooks'; -import { stdout } from 'process'; -import net from 'net'; +import { createHook, executionAsyncId } from 'node:async_hooks'; +import { stdout } from 'node:process'; +import net from 'node:net'; createHook({ init(asyncId, type, triggerAsyncId) { @@ -378,9 +378,9 @@ net.createServer((conn) => {}).listen(8080); ``` ```cjs -const { createHook, executionAsyncId } = require('async_hooks'); -const { stdout } = require('process'); -const net = require('net'); +const { createHook, executionAsyncId } = require('node:async_hooks'); +const { stdout } = require('node:process'); +const net = require('node:net'); createHook({ init(asyncId, type, triggerAsyncId) { @@ -433,9 +433,9 @@ callback to `listen()` will look like. The output formatting is slightly more elaborate to make calling context easier to see. ```js -const async_hooks = require('async_hooks'); -const fs = require('fs'); -const net = require('net'); +const async_hooks = require('node:async_hooks'); +const fs = require('node:fs'); +const net = require('node:net'); const { fd } = process.stdout; let indent = 0; @@ -619,8 +619,8 @@ return an empty object as there is no handle or request object to use, but having an object representing the top-level can be helpful. ```mjs -import { open } from 'fs'; -import { executionAsyncId, executionAsyncResource } from 'async_hooks'; +import { open } from 'node:fs'; +import { executionAsyncId, executionAsyncResource } from 'node:async_hooks'; console.log(executionAsyncId(), executionAsyncResource()); // 1 {} open(new URL(import.meta.url), 'r', (err, fd) => { @@ -629,8 +629,8 @@ open(new URL(import.meta.url), 'r', (err, fd) => { ``` ```cjs -const { open } = require('fs'); -const { executionAsyncId, executionAsyncResource } = require('async_hooks'); +const { open } = require('node:fs'); +const { executionAsyncId, executionAsyncResource } = require('node:async_hooks'); console.log(executionAsyncId(), executionAsyncResource()); // 1 {} open(__filename, 'r', (err, fd) => { @@ -642,7 +642,7 @@ This can be used to implement continuation local storage without the use of a tracking `Map` to store the metadata: ```mjs -import { createServer } from 'http'; +import { createServer } from 'node:http'; import { executionAsyncId, executionAsyncResource, @@ -668,12 +668,12 @@ const server = createServer((req, res) => { ``` ```cjs -const { createServer } = require('http'); +const { createServer } = require('node:http'); const { executionAsyncId, executionAsyncResource, createHook -} = require('async_hooks'); +} = require('node:async_hooks'); const sym = Symbol('state'); // Private symbol to avoid pollution createHook({ @@ -707,7 +707,7 @@ changes: track when something calls. ```mjs -import { executionAsyncId } from 'async_hooks'; +import { executionAsyncId } from 'node:async_hooks'; console.log(executionAsyncId()); // 1 - bootstrap fs.open(path, 'r', (err, fd) => { @@ -716,7 +716,7 @@ fs.open(path, 'r', (err, fd) => { ``` ```cjs -const async_hooks = require('async_hooks'); +const async_hooks = require('node:async_hooks'); console.log(async_hooks.executionAsyncId()); // 1 - bootstrap fs.open(path, 'r', (err, fd) => { @@ -788,7 +788,7 @@ V8. This means that programs using promises or `async`/`await` will not get correct execution and trigger ids for promise callback contexts by default. ```mjs -import { executionAsyncId, triggerAsyncId } from 'async_hooks'; +import { executionAsyncId, triggerAsyncId } from 'node:async_hooks'; Promise.resolve(1729).then(() => { console.log(`eid ${executionAsyncId()} tid ${triggerAsyncId()}`); @@ -798,7 +798,7 @@ Promise.resolve(1729).then(() => { ``` ```cjs -const { executionAsyncId, triggerAsyncId } = require('async_hooks'); +const { executionAsyncId, triggerAsyncId } = require('node:async_hooks'); Promise.resolve(1729).then(() => { console.log(`eid ${executionAsyncId()} tid ${triggerAsyncId()}`); @@ -816,7 +816,7 @@ Installing async hooks via `async_hooks.createHook` enables promise execution tracking: ```mjs -import { createHook, executionAsyncId, triggerAsyncId } from 'async_hooks'; +import { createHook, executionAsyncId, triggerAsyncId } from 'node:async_hooks'; createHook({ init() {} }).enable(); // forces PromiseHooks to be enabled. Promise.resolve(1729).then(() => { console.log(`eid ${executionAsyncId()} tid ${triggerAsyncId()}`); @@ -826,7 +826,7 @@ Promise.resolve(1729).then(() => { ``` ```cjs -const { createHook, executionAsyncId, triggerAsyncId } = require('async_hooks'); +const { createHook, executionAsyncId, triggerAsyncId } = require('node:async_hooks'); createHook({ init() {} }).enable(); // forces PromiseHooks to be enabled. Promise.resolve(1729).then(() => { diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 3f4c80015cf512..5757e93e314c78 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -17,7 +17,7 @@ While the `Buffer` class is available within the global scope, it is still recommended to explicitly reference it via an import or require statement. ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; // Creates a zero-filled Buffer of length 10. const buf1 = Buffer.alloc(10); @@ -50,7 +50,7 @@ const buf7 = Buffer.from('tést', 'latin1'); ``` ```cjs -const { Buffer } = require('buffer'); +const { Buffer } = require('node:buffer'); // Creates a zero-filled Buffer of length 10. const buf1 = Buffer.alloc(10); @@ -104,7 +104,7 @@ specified. If no character encoding is specified, UTF-8 will be used as the default. ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const buf = Buffer.from('hello world', 'utf8'); @@ -120,7 +120,7 @@ console.log(Buffer.from('fhqwhgads', 'utf16le')); ``` ```cjs -const { Buffer } = require('buffer'); +const { Buffer } = require('node:buffer'); const buf = Buffer.from('hello world', 'utf8'); @@ -136,7 +136,7 @@ console.log(Buffer.from('fhqwhgads', 'utf16le')); ``` Node.js buffers accept all case variations of encoding strings that they -receive. For example, UTF-8 can be specified as `'utf8'`, `'UTF8'` or `'uTf8'`. +receive. For example, UTF-8 can be specified as `'utf8'`, `'UTF8'`, or `'uTf8'`. The character encodings currently supported by Node.js are the following: @@ -199,7 +199,7 @@ The following legacy character encodings are also supported: U+FFFF. In Node.js, these code points are always supported. ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; Buffer.from('1ag123', 'hex'); // Prints , data truncated when first non-hexadecimal value @@ -213,7 +213,7 @@ Buffer.from('1634', 'hex'); ``` ```cjs -const { Buffer } = require('buffer'); +const { Buffer } = require('node:buffer'); Buffer.from('1ag123', 'hex'); // Prints , data truncated when first non-hexadecimal value @@ -265,7 +265,7 @@ There are two ways to create new [`TypedArray`][] instances from a `Buffer`: of the target type. ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const buf = Buffer.from([1, 2, 3, 4]); const uint32array = new Uint32Array(buf); @@ -276,7 +276,7 @@ console.log(uint32array); ``` ```cjs -const { Buffer } = require('buffer'); +const { Buffer } = require('node:buffer'); const buf = Buffer.from([1, 2, 3, 4]); const uint32array = new Uint32Array(buf); @@ -290,7 +290,7 @@ console.log(uint32array); [`TypedArray`][] that shares its memory with the `Buffer`. ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const buf = Buffer.from('hello', 'utf16le'); const uint16array = new Uint16Array( @@ -304,7 +304,7 @@ console.log(uint16array); ``` ```cjs -const { Buffer } = require('buffer'); +const { Buffer } = require('node:buffer'); const buf = Buffer.from('hello', 'utf16le'); const uint16array = new Uint16Array( @@ -318,12 +318,12 @@ console.log(uint16array); ``` It is possible to create a new `Buffer` that shares the same allocated -memory as a [`TypedArray`][] instance by using the `TypedArray` object’s +memory as a [`TypedArray`][] instance by using the `TypedArray` object's `.buffer` property in the same way. [`Buffer.from()`][`Buffer.from(arrayBuf)`] behaves like `new Uint8Array()` in this context. ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const arr = new Uint16Array(2); @@ -350,7 +350,7 @@ console.log(buf2); ``` ```cjs -const { Buffer } = require('buffer'); +const { Buffer } = require('node:buffer'); const arr = new Uint16Array(2); @@ -381,7 +381,7 @@ possible to use only a portion of the underlying [`ArrayBuffer`][] by passing in `byteOffset` and `length` parameters. ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const arr = new Uint16Array(20); const buf = Buffer.from(arr.buffer, 0, 16); @@ -391,7 +391,7 @@ console.log(buf.length); ``` ```cjs -const { Buffer } = require('buffer'); +const { Buffer } = require('node:buffer'); const arr = new Uint16Array(20); const buf = Buffer.from(arr.buffer, 0, 16); @@ -420,7 +420,7 @@ function: `Buffer` instances can be iterated over using `for..of` syntax: ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const buf = Buffer.from([1, 2, 3]); @@ -434,7 +434,7 @@ for (const b of buf) { ``` ```cjs -const { Buffer } = require('buffer'); +const { Buffer } = require('node:buffer'); const buf = Buffer.from([1, 2, 3]); @@ -457,7 +457,7 @@ added: - v15.7.0 - v14.18.0 changes: - - version: REPLACEME + - version: v18.0.0 pr-url: https://github.com/nodejs/node/pull/41270 description: No longer experimental. --> @@ -484,7 +484,7 @@ changes: * `options` {Object} * `endings` {string} One of either `'transparent'` or `'native'`. When set to `'native'`, line endings in string source parts will be converted to - the platform native line-ending as specified by `require('os').EOL`. + the platform native line-ending as specified by `require('node:os').EOL`. * `type` {string} The Blob content-type. The intent is for `type` to convey the MIME media type of the data, however no validation of the type format is performed. @@ -521,7 +521,7 @@ added: The total size of the `Blob` in bytes. -### `blob.slice([start, [end, [type]]])` +### `blob.slice([start[, end[, type]]])` -The `child_process` module provides the ability to spawn subprocesses in +The `node:child_process` module provides the ability to spawn subprocesses in a manner that is similar, but not identical, to popen(3). This capability is primarily provided by the [`child_process.spawn()`][] function: ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const ls = spawn('ls', ['-lh', '/usr']); ls.stdout.on('data', (data) => { @@ -54,8 +54,8 @@ without blocking the Node.js event loop. The [`child_process.spawnSync()`][] function provides equivalent functionality in a synchronous manner that blocks the event loop until the spawned process either exits or is terminated. -For convenience, the `child_process` module provides a handful of synchronous -and asynchronous alternatives to [`child_process.spawn()`][] and +For convenience, the `node:child_process` module provides a handful of +synchronous and asynchronous alternatives to [`child_process.spawn()`][] and [`child_process.spawnSync()`][]. Each of these alternatives are implemented on top of [`child_process.spawn()`][] or [`child_process.spawnSync()`][]. @@ -110,7 +110,7 @@ spaces it needs to be quoted. ```js // On Windows Only... -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const bat = spawn('cmd.exe', ['/c', 'my.bat']); bat.stdout.on('data', (data) => { @@ -128,7 +128,7 @@ bat.on('exit', (code) => { ```js // OR... -const { exec, spawn } = require('child_process'); +const { exec, spawn } = require('node:child_process'); exec('my.bat', (err, stdout, stderr) => { if (err) { console.error(err); @@ -198,7 +198,7 @@ directly by the shell and special characters (vary based on need to be dealt with accordingly: ```js -const { exec } = require('child_process'); +const { exec } = require('node:child_process'); exec('"/path/to/test file/test.sh" arg1 arg2'); // Double quotes are used so that the space in the path is not interpreted as @@ -226,7 +226,7 @@ stderr output. If `encoding` is `'buffer'`, or an unrecognized character encoding, `Buffer` objects will be passed to the callback instead. ```js -const { exec } = require('child_process'); +const { exec } = require('node:child_process'); exec('cat *.js missing_file | wc -l', (error, stdout, stderr) => { if (error) { console.error(`exec error: ${error}`); @@ -252,8 +252,8 @@ rejected promise is returned, with the same `error` object given in the callback, but with two additional properties `stdout` and `stderr`. ```js -const util = require('util'); -const exec = util.promisify(require('child_process').exec); +const util = require('node:util'); +const exec = util.promisify(require('node:child_process').exec); async function lsExample() { const { stdout, stderr } = await exec('ls'); @@ -268,7 +268,7 @@ If the `signal` option is enabled, calling `.abort()` on the corresponding the error passed to the callback will be an `AbortError`: ```js -const { exec } = require('child_process'); +const { exec } = require('node:child_process'); const controller = new AbortController(); const { signal } = controller; const child = exec('grep ssh', { signal }, (error) => { @@ -338,7 +338,7 @@ not spawned, behaviors such as I/O redirection and file globbing are not supported. ```js -const { execFile } = require('child_process'); +const { execFile } = require('node:child_process'); const child = execFile('node', ['--version'], (error, stdout, stderr) => { if (error) { throw error; @@ -362,8 +362,8 @@ rejected promise is returned, with the same `error` object given in the callback, but with two additional properties `stdout` and `stderr`. ```js -const util = require('util'); -const execFile = util.promisify(require('child_process').execFile); +const util = require('node:util'); +const execFile = util.promisify(require('node:child_process').execFile); async function getVersion() { const { stdout } = await execFile('node', ['--version']); console.log(stdout); @@ -380,7 +380,7 @@ If the `signal` option is enabled, calling `.abort()` on the corresponding the error passed to the callback will be an `AbortError`: ```js -const { execFile } = require('child_process'); +const { execFile } = require('node:child_process'); const controller = new AbortController(); const { signal } = controller; const child = execFile('node', ['--version'], { signal }, (error) => { @@ -506,7 +506,7 @@ if (process.argv[2] === 'child') { console.log(`Hello from ${process.argv[2]}!`); }, 1_000); } else { - const { fork } = require('child_process'); + const { fork } = require('node:child_process'); const controller = new AbortController(); const { signal } = controller; const child = fork(__filename, ['child'], { signal }); @@ -625,7 +625,7 @@ Example of running `ls -lh /usr`, capturing `stdout`, `stderr`, and the exit code: ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const ls = spawn('ls', ['-lh', '/usr']); ls.stdout.on('data', (data) => { @@ -644,7 +644,7 @@ ls.on('close', (code) => { Example: A very elaborate way to run `ps ax | grep ssh` ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const ps = spawn('ps', ['ax']); const grep = spawn('grep', ['ssh']); @@ -681,7 +681,7 @@ grep.on('close', (code) => { Example of checking for failed `spawn`: ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const subprocess = spawn('bad_command'); subprocess.on('error', (err) => { @@ -702,7 +702,7 @@ If the `signal` option is enabled, calling `.abort()` on the corresponding the error passed to the callback will be an `AbortError`: ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const controller = new AbortController(); const { signal } = controller; const grep = spawn('grep', ['ssh'], { signal }); @@ -745,7 +745,7 @@ Example of a long-running process, by detaching and also ignoring its parent `stdio` file descriptors, in order to ignore the parent's termination: ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const subprocess = spawn(process.argv[0], ['child_program.js'], { detached: true, @@ -758,8 +758,8 @@ subprocess.unref(); Alternatively one can redirect the child process' output into files: ```js -const fs = require('fs'); -const { spawn } = require('child_process'); +const fs = require('node:fs'); +const { spawn } = require('node:child_process'); const out = fs.openSync('./out.log', 'a'); const err = fs.openSync('./out.log', 'a'); @@ -853,7 +853,7 @@ pipes between the parent and child. The value is one of the following: default is `'ignore'`. ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); // Child will use parent's stdios. spawn('prg', [], { stdio: 'inherit' }); @@ -1152,7 +1152,7 @@ streams. The `'close'` event will always emit after [`'exit'`][] was already emitted, or [`'error'`][] if the child failed to spawn. ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const ls = spawn('ls', ['-lh', '/usr']); ls.stdout.on('data', (data) => { @@ -1348,7 +1348,7 @@ signal(7) for a list of available signals. This function returns `true` if kill(2) succeeds, and `false` otherwise. ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const grep = spawn('grep', ['ssh']); grep.on('close', (code, signal) => { @@ -1382,7 +1382,7 @@ new process in a shell or with the use of the `shell` option of `ChildProcess`: ```js 'use strict'; -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const subprocess = spawn( 'sh', @@ -1427,7 +1427,7 @@ fails to spawn due to errors, then the value is `undefined` and `error` is emitted. ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const grep = spawn('grep', ['ssh']); console.log(`Spawned child pid: ${grep.pid}`); @@ -1445,7 +1445,7 @@ restore the removed reference count for the child process, forcing the parent to wait for the child to exit before exiting itself. ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const subprocess = spawn(process.argv[0], ['child_program.js'], { detached: true, @@ -1495,7 +1495,7 @@ message might not be the same as what is originally sent. For example, in the parent script: ```js -const cp = require('child_process'); +const cp = require('node:child_process'); const n = cp.fork(`${__dirname}/sub.js`); n.on('message', (m) => { @@ -1553,10 +1553,10 @@ The `sendHandle` argument can be used, for instance, to pass the handle of a TCP server object to the child process as illustrated in the example below: ```js -const subprocess = require('child_process').fork('subprocess.js'); +const subprocess = require('node:child_process').fork('subprocess.js'); // Open up the server object and send the handle. -const server = require('net').createServer(); +const server = require('node:net').createServer(); server.on('connection', (socket) => { socket.end('handled by parent'); }); @@ -1580,11 +1580,11 @@ process.on('message', (m, server) => { Once the server is now shared between the parent and child, some connections can be handled by the parent and some by the child. -While the example above uses a server created using the `net` module, `dgram` -module servers use exactly the same workflow with the exceptions of listening on -a `'message'` event instead of `'connection'` and using `server.bind()` instead -of `server.listen()`. This is, however, currently only supported on Unix -platforms. +While the example above uses a server created using the `node:net` module, +`node:dgram` module servers use exactly the same workflow with the exceptions of +listening on a `'message'` event instead of `'connection'` and using +`server.bind()` instead of `server.listen()`. This is, however, currently only +supported on Unix platforms. #### Example: sending a socket object @@ -1593,13 +1593,13 @@ socket to the child process. The example below spawns two children that each handle connections with "normal" or "special" priority: ```js -const { fork } = require('child_process'); +const { fork } = require('node:child_process'); const normal = fork('subprocess.js', ['normal']); const special = fork('subprocess.js', ['special']); // Open up the server and send sockets to child. Use pauseOnConnect to prevent // the sockets from being read before they are sent to the child process. -const server = require('net').createServer({ pauseOnConnect: true }); +const server = require('node:net').createServer({ pauseOnConnect: true }); server.on('connection', (socket) => { // If this is special priority... @@ -1724,9 +1724,9 @@ pipe, so only the parent's `subprocess.stdio[1]` is a stream, all other values in the array are `null`. ```js -const assert = require('assert'); -const fs = require('fs'); -const child_process = require('child_process'); +const assert = require('node:assert'); +const fs = require('node:fs'); +const child_process = require('node:child_process'); const subprocess = child_process.spawn('ls', { stdio: [ @@ -1766,7 +1766,7 @@ then this will be `null`. refer to the same value. ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const subprocess = spawn('ls'); @@ -1792,7 +1792,7 @@ independently of the child, unless there is an established IPC channel between the child and the parent. ```js -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); const subprocess = spawn(process.argv[0], ['child_program.js'], { detached: true, @@ -1833,7 +1833,7 @@ added: --> Child processes support a serialization mechanism for IPC that is based on the -[serialization API of the `v8` module][v8.serdes], based on the +[serialization API of the `node:v8` module][v8.serdes], based on the [HTML structured clone algorithm][]. This is generally more powerful and supports more built-in JavaScript object types, such as `BigInt`, `Map` and `Set`, `ArrayBuffer` and `TypedArray`, `Buffer`, `Error`, `RegExp` etc. diff --git a/doc/api/cli.md b/doc/api/cli.md index 92acc87e648a34..07969b6dd91b11 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -98,7 +98,7 @@ analysis using a debugger (such as `lldb`, `gdb`, and `mdb`). If this flag is passed, the behavior can still be set to not abort through [`process.setUncaughtExceptionCaptureCallback()`][] (and through usage of the -`domain` module that uses it). +`node:domain` module that uses it). ### `--completion-bash` @@ -226,7 +226,7 @@ added: v9.8.0 Make built-in language features like `eval` and `new Function` that generate code from strings throw an exception instead. This does not affect the Node.js -`vm` module. +`node:vm` module. ### `--dns-result-order=order` @@ -283,7 +283,9 @@ modifying the stack trace. ### `--experimental-global-webcrypto` Expose the [Web Crypto API][] on the global scope. @@ -301,7 +303,12 @@ Enable experimental `import.meta.resolve()` support. ### `--experimental-loader=module` Specify the `module` of a custom experimental [ECMAScript module loader][]. @@ -310,7 +317,9 @@ Specify the `module` of a custom experimental [ECMAScript module loader][]. ### `--experimental-network-imports` > Stability: 1 - Experimental @@ -328,7 +337,7 @@ Use the specified file as a security policy. ### `--no-experimental-fetch` Disable experimental support for the [Fetch API][]. @@ -337,10 +346,18 @@ Disable experimental support for the [Fetch API][]. +--> Use this flag to disable top-level await in REPL. +### `--experimental-shadow-realm` + + + +Use this flag to enable [ShadowRealm][] support. + ### `--experimental-specifier-resolution=mode` -Enable experimental ES Module support in the `vm` module. +Enable experimental ES Module support in the `node:vm` module. ### `--experimental-wasi-unstable-preview1` @@ -422,6 +439,18 @@ under this flag. To allow polyfills to be added, `--require` runs before freezing intrinsics. +### `--force-node-api-uncaught-exceptions-policy` + + + +Enforces `uncaughtException` event on Node-API asynchronous callbacks. + +To prevent from an existing add-on from crashing the process, this flag is not +enabled by default. In the future, this flag will be enabled by default to +enforce the correct behavior. + ### `--heapsnapshot-near-heap-limit=max_count` -Specify the maximum size, in bytes, of HTTP headers. Defaults to 16 KB. +Specify the maximum size, in bytes, of HTTP headers. Defaults to 16 KiB. ### `--napi-modules` @@ -754,6 +783,21 @@ Load an OpenSSL configuration file on startup. Among other uses, this can be used to enable FIPS-compliant crypto if Node.js is built against FIPS-enabled OpenSSL. +### `--openssl-shared-config` + + + +Enable OpenSSL default configuration section, `openssl_conf` to be read from +the OpenSSL configuration file. The default configuration file is named +`openssl.cnf` but this can be changed using the environment variable +`OPENSSL_CONF`, or by using the command line option `--openssl-config`. +The location of the default OpenSSL configuration file depends on how OpenSSL +is being linked to Node.js. Sharing the OpenSSL configuration may have unwanted +implications and it is recommended to use a configuration section specific to +Node.js which is `nodejs_conf` and is default when this option is not used. + ### `--openssl-legacy-provider` + +Starts the Node.js command line test runner. This flag cannot be combined with +`--check`, `--eval`, `--interactive`, or the inspector. See the documentation +on [running tests from the command line][] for more details. + ### `--test-only` Configures the test runner to only execute top level tests that have the `only` @@ -1603,6 +1657,7 @@ Node.js options that are allowed are: * `--experimental-modules` * `--experimental-network-imports` * `--experimental-policy` +* `--experimental-shadow-realm` * `--experimental-specifier-resolution` * `--experimental-top-level-await` * `--experimental-vm-modules` @@ -1610,6 +1665,7 @@ Node.js options that are allowed are: * `--experimental-wasm-modules` * `--force-context-aware` * `--force-fips` +* `--force-node-api-uncaught-exceptions-policy` * `--frozen-intrinsics` * `--heapsnapshot-near-heap-limit` * `--heapsnapshot-signal` @@ -1634,6 +1690,7 @@ Node.js options that are allowed are: * `--node-memory-debug` * `--openssl-config` * `--openssl-legacy-provider` +* `--openssl-shared-config` * `--pending-deprecation` * `--policy-integrity` * `--preserve-symlinks-main` @@ -1932,9 +1989,9 @@ changes: The `TZ` environment variable is used to specify the timezone configuration. -While the Node.js support for `TZ` will not handle all of the various -[ways that `TZ` is handled in other environments][], it will support basic -[timezone IDs][] (such as `'Etc/UTC'`, `'Europe/Paris'` or `'America/New_York'`. +While Node.js does not support all of the various [ways that `TZ` is handled in +other environments][], it does support basic [timezone IDs][] (such as +`'Etc/UTC'`, `'Europe/Paris'`, or `'America/New_York'`). It may support a few other abbreviations or aliases, but these are strongly discouraged and not guaranteed. @@ -1983,13 +2040,39 @@ Sets the max memory size of V8's old memory section. As memory consumption approaches the limit, V8 will spend more time on garbage collection in an effort to free unused memory. -On a machine with 2 GB of memory, consider setting this to -1536 (1.5 GB) to leave some memory for other uses and avoid swapping. +On a machine with 2 GiB of memory, consider setting this to +1536 (1.5 GiB) to leave some memory for other uses and avoid swapping. ```console $ node --max-old-space-size=1536 index.js ``` +### `--max-semi-space-size=SIZE` (in megabytes) + +Sets the maximum [semi-space][] size for V8's [scavenge garbage collector][] in +MiB (megabytes). +Increasing the max size of a semi-space may improve throughput for Node.js at +the cost of more memory consumption. + +Since the young generation size of the V8 heap is three times (see +[`YoungGenerationSizeFromSemiSpaceSize`][] in V8) the size of the semi-space, +an increase of 1 MiB to semi-space applies to each of the three individual +semi-spaces and causes the heap size to increase by 3 MiB. The throughput +improvement depends on your workload (see [#42511][]). + +The default value is 16 MiB for 64-bit systems and 8 MiB for 32-bit systems. To +get the best configuration for your application, you should try different +max-semi-space-size values when running benchmarks for your application. + +For example, benchmark on a 64-bit systems: + +```bash +for MiB in 16 32 64 128; do + node --max-semi-space-size=$MiB index.js +done +``` + +[#42511]: https://github.com/nodejs/node/issues/42511 [Chrome DevTools Protocol]: https://chromedevtools.github.io/devtools-protocol/ [CommonJS]: modules.md [ECMAScript module loader]: esm.md#loaders @@ -1998,6 +2081,7 @@ $ node --max-old-space-size=1536 index.js [OSSL_PROVIDER-legacy]: https://www.openssl.org/docs/man3.0/man7/OSSL_PROVIDER-legacy.html [REPL]: repl.md [ScriptCoverage]: https://chromedevtools.github.io/devtools-protocol/tot/Profiler#type-ScriptCoverage +[ShadowRealm]: https://github.com/tc39/proposal-shadowrealm [Source Map]: https://sourcemaps.info/spec.html [Subresource Integrity]: https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity [V8 JavaScript code coverage]: https://v8project.blogspot.com/2017/12/javascript-code-coverage.html @@ -2015,6 +2099,7 @@ $ node --max-old-space-size=1536 index.js [`NODE_OPTIONS`]: #node_optionsoptions [`NO_COLOR`]: https://no-color.org [`SlowBuffer`]: buffer.md#class-slowbuffer +[`YoungGenerationSizeFromSemiSpaceSize`]: https://chromium.googlesource.com/v8/v8.git/+/refs/tags/10.3.129/src/heap/heap.cc#328 [`dns.lookup()`]: dns.md#dnslookuphostname-options-callback [`dns.setDefaultResultOrder()`]: dns.md#dnssetdefaultresultorderorder [`dnsPromises.lookup()`]: dns.md#dnspromiseslookuphostname-options @@ -2033,6 +2118,9 @@ $ node --max-old-space-size=1536 index.js [jitless]: https://v8.dev/blog/jitless [libuv threadpool documentation]: https://docs.libuv.org/en/latest/threadpool.html [remote code execution]: https://www.owasp.org/index.php/Code_Injection +[running tests from the command line]: test.md#running-tests-from-the-command-line +[scavenge garbage collector]: https://v8.dev/blog/orinoco-parallel-scavenger [security warning]: #warning-binding-inspector-to-a-public-ipport-combination-is-insecure +[semi-space]: https://www.memorymanagement.org/glossary/s.html#semi.space [timezone IDs]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones [ways that `TZ` is handled in other environments]: https://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html diff --git a/doc/api/cluster.md b/doc/api/cluster.md index 7270a4e580bf7c..89fb26199885e9 100644 --- a/doc/api/cluster.md +++ b/doc/api/cluster.md @@ -15,10 +15,10 @@ The cluster module allows easy creation of child processes that all share server ports. ```mjs -import cluster from 'cluster'; -import http from 'http'; -import { cpus } from 'os'; -import process from 'process'; +import cluster from 'node:cluster'; +import http from 'node:http'; +import { cpus } from 'node:os'; +import process from 'node:process'; const numCPUs = cpus().length; @@ -46,10 +46,10 @@ if (cluster.isPrimary) { ``` ```cjs -const cluster = require('cluster'); -const http = require('http'); -const numCPUs = require('os').cpus().length; -const process = require('process'); +const cluster = require('node:cluster'); +const http = require('node:http'); +const numCPUs = require('node:os').cpus().length; +const process = require('node:process'); if (cluster.isPrimary) { console.log(`Primary ${process.pid} is running`); @@ -143,7 +143,7 @@ will be dropped and new connections will be refused. Node.js does not automatically manage the number of workers, however. It is the application's responsibility to manage the worker pool based on its own needs. -Although a primary use case for the `cluster` module is networking, it can +Although a primary use case for the `node:cluster` module is networking, it can also be used for other use cases requiring worker processes. ## Class: `Worker` @@ -195,33 +195,37 @@ added: v0.11.2 Similar to the `cluster.on('exit')` event, but specific to this worker. ```mjs -import cluster from 'cluster'; - -const worker = cluster.fork(); -worker.on('exit', (code, signal) => { - if (signal) { - console.log(`worker was killed by signal: ${signal}`); - } else if (code !== 0) { - console.log(`worker exited with error code: ${code}`); - } else { - console.log('worker success!'); - } -}); +import cluster from 'node:cluster'; + +if (cluster.isPrimary) { + const worker = cluster.fork(); + worker.on('exit', (code, signal) => { + if (signal) { + console.log(`worker was killed by signal: ${signal}`); + } else if (code !== 0) { + console.log(`worker exited with error code: ${code}`); + } else { + console.log('worker success!'); + } + }); +} ``` ```cjs -const cluster = require('cluster'); - -const worker = cluster.fork(); -worker.on('exit', (code, signal) => { - if (signal) { - console.log(`worker was killed by signal: ${signal}`); - } else if (code !== 0) { - console.log(`worker exited with error code: ${code}`); - } else { - console.log('worker success!'); - } -}); +const cluster = require('node:cluster'); + +if (cluster.isPrimary) { + const worker = cluster.fork(); + worker.on('exit', (code, signal) => { + if (signal) { + console.log(`worker was killed by signal: ${signal}`); + } else if (code !== 0) { + console.log(`worker exited with error code: ${code}`); + } else { + console.log('worker success!'); + } + }); +} ``` ### Event: `'listening'` @@ -235,16 +239,12 @@ added: v0.7.0 Similar to the `cluster.on('listening')` event, but specific to this worker. ```mjs -import cluster from 'cluster'; - cluster.fork().on('listening', (address) => { // Worker is listening }); ``` ```cjs -const cluster = require('cluster'); - cluster.fork().on('listening', (address) => { // Worker is listening }); @@ -271,10 +271,10 @@ Here is an example using the message system. It keeps a count in the primary process of the number of HTTP requests received by the workers: ```mjs -import cluster from 'cluster'; -import http from 'http'; -import { cpus } from 'os'; -import process from 'process'; +import cluster from 'node:cluster'; +import http from 'node:http'; +import { cpus } from 'node:os'; +import process from 'node:process'; if (cluster.isPrimary) { @@ -315,9 +315,9 @@ if (cluster.isPrimary) { ``` ```cjs -const cluster = require('cluster'); -const http = require('http'); -const process = require('process'); +const cluster = require('node:cluster'); +const http = require('node:http'); +const process = require('node:process'); if (cluster.isPrimary) { @@ -335,7 +335,7 @@ if (cluster.isPrimary) { } // Start workers and listen for messages containing notifyRequest - const numCPUs = require('os').cpus().length; + const numCPUs = require('node:os').cpus().length; for (let i = 0; i < numCPUs; i++) { cluster.fork(); } @@ -429,7 +429,7 @@ if (cluster.isPrimary) { }); } else if (cluster.isWorker) { - const net = require('net'); + const net = require('node:net'); const server = net.createServer((socket) => { // Connections never end }); @@ -477,7 +477,7 @@ worker.kill(); added: v0.8.0 --> -* {number} +* {integer} Each new worker is given its own unique id, this id is stored in the `id`. @@ -505,10 +505,10 @@ This function returns `true` if the worker's process has terminated (either because of exiting or being signaled). Otherwise, it returns `false`. ```mjs -import cluster from 'cluster'; -import http from 'http'; -import { cpus } from 'os'; -import process from 'process'; +import cluster from 'node:cluster'; +import http from 'node:http'; +import { cpus } from 'node:os'; +import process from 'node:process'; const numCPUs = cpus().length; @@ -538,10 +538,10 @@ if (cluster.isPrimary) { ``` ```cjs -const cluster = require('cluster'); -const http = require('http'); -const numCPUs = require('os').cpus().length; -const process = require('process'); +const cluster = require('node:cluster'); +const http = require('node:http'); +const numCPUs = require('node:os').cpus().length; +const process = require('node:process'); if (cluster.isPrimary) { console.log(`Primary ${process.pid} is running`); @@ -741,7 +741,7 @@ primary. The event handler is executed with two arguments, the `worker` contains the worker object and the `address` object contains the following connection -properties: `address`, `port` and `addressType`. This is very useful if the +properties: `address`, `port`, and `addressType`. This is very useful if the worker is listening on more than one address. ```js @@ -982,7 +982,7 @@ The defaults above apply to the first call only; the defaults for later calls are the current values at the time of `cluster.setupPrimary()` is called. ```mjs -import cluster from 'cluster'; +import cluster from 'node:cluster'; cluster.setupPrimary({ exec: 'worker.js', @@ -998,7 +998,7 @@ cluster.fork(); // http worker ``` ```cjs -const cluster = require('cluster'); +const cluster = require('node:cluster'); cluster.setupPrimary({ exec: 'worker.js', @@ -1026,7 +1026,7 @@ added: v0.7.0 A reference to the current worker object. Not available in the primary process. ```mjs -import cluster from 'cluster'; +import cluster from 'node:cluster'; if (cluster.isPrimary) { console.log('I am primary'); @@ -1038,7 +1038,7 @@ if (cluster.isPrimary) { ``` ```cjs -const cluster = require('cluster'); +const cluster = require('node:cluster'); if (cluster.isPrimary) { console.log('I am primary'); @@ -1067,7 +1067,7 @@ advance. However, it is guaranteed that the removal from the `cluster.workers` list happens before the last `'disconnect'` or `'exit'` event is emitted. ```mjs -import cluster from 'cluster'; +import cluster from 'node:cluster'; for (const worker of Object.values(cluster.workers)) { worker.send('big announcement to all workers'); @@ -1075,7 +1075,7 @@ for (const worker of Object.values(cluster.workers)) { ``` ```cjs -const cluster = require('cluster'); +const cluster = require('node:cluster'); for (const worker of Object.values(cluster.workers)) { worker.send('big announcement to all workers'); diff --git a/doc/api/console.md b/doc/api/console.md index bd890e20a79a59..1818d6f776b9f5 100644 --- a/doc/api/console.md +++ b/doc/api/console.md @@ -6,16 +6,16 @@ -The `console` module provides a simple debugging console that is similar to the -JavaScript console mechanism provided by web browsers. +The `node:console` module provides a simple debugging console that is similar to +the JavaScript console mechanism provided by web browsers. The module exports two specific components: -* A `Console` class with methods such as `console.log()`, `console.error()` and +* A `Console` class with methods such as `console.log()`, `console.error()`, and `console.warn()` that can be used to write to any Node.js stream. * A global `console` instance configured to write to [`process.stdout`][] and [`process.stderr`][]. The global `console` can be used without calling - `require('console')`. + `require('node:console')`. _**Warning**_: The global console object's methods are neither consistently synchronous like the browser APIs they resemble, nor are they consistently @@ -77,11 +77,11 @@ changes: The `Console` class can be used to create a simple logger with configurable -output streams and can be accessed using either `require('console').Console` +output streams and can be accessed using either `require('node:console').Console` or `console.Console` (or their destructured counterparts): ```js -const { Console } = require('console'); +const { Console } = require('node:console'); ``` ```js @@ -408,7 +408,7 @@ added: v10.0.0 Try to construct a table with the columns of the properties of `tabularData` (or use `properties`) and rows of `tabularData` and log it. Falls back to just -logging the argument if it can’t be parsed as tabular. +logging the argument if it can't be parsed as tabular. ```js // These can't be parsed as tabular data @@ -459,7 +459,7 @@ changes: description: The elapsed time is displayed with a suitable time unit. - version: v6.0.0 pr-url: https://github.com/nodejs/node/pull/5901 - description: This method no longer supports multiple calls that don’t map + description: This method no longer supports multiple calls that don't map to individual `console.time()` calls; see below for details. --> diff --git a/doc/api/corepack.md b/doc/api/corepack.md index c5525108c41826..87c515d3a24cf7 100644 --- a/doc/api/corepack.md +++ b/doc/api/corepack.md @@ -57,7 +57,7 @@ successfully retrieved. When running outside of an existing project (for example when running `yarn init`), Corepack will by default use predefined versions roughly corresponding to the latest stable releases from each tool. Those versions can -be overriden by running the [`corepack prepare`][] command along with the +be overridden by running the [`corepack prepare`][] command along with the package manager version you wish to set: ```bash diff --git a/doc/api/crypto.md b/doc/api/crypto.md index d88be8da3d086e..8d6a01c8f065b2 100644 --- a/doc/api/crypto.md +++ b/doc/api/crypto.md @@ -6,11 +6,12 @@ -The `crypto` module provides cryptographic functionality that includes a set of -wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions. +The `node:crypto` module provides cryptographic functionality that includes a +set of wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify +functions. ```mjs -const { createHmac } = await import('crypto'); +const { createHmac } = await import('node:crypto'); const secret = 'abcdefg'; const hash = createHmac('sha256', secret) @@ -22,7 +23,7 @@ console.log(hash); ``` ```cjs -const crypto = require('crypto'); +const crypto = require('node:crypto'); const secret = 'abcdefg'; const hash = crypto.createHmac('sha256', secret) @@ -36,8 +37,8 @@ console.log(hash); ## Determining if crypto support is unavailable It is possible for Node.js to be built without including support for the -`crypto` module. In such cases, attempting to `import` from `crypto` or -calling `require('crypto')` will result in an error being thrown. +`node:crypto` module. In such cases, attempting to `import` from `crypto` or +calling `require('node:crypto')` will result in an error being thrown. When using CommonJS, the error thrown can be caught using try/catch: @@ -46,7 +47,7 @@ When using CommonJS, the error thrown can be caught using try/catch: ```cjs let crypto; try { - crypto = require('crypto'); + crypto = require('node:crypto'); } catch (err) { console.log('crypto support is disabled!'); } @@ -64,7 +65,7 @@ of Node.js where crypto support is not enabled, consider using the ```mjs let crypto; try { - crypto = await import('crypto'); + crypto = await import('node:crypto'); } catch (err) { console.log('crypto support is disabled!'); } @@ -82,7 +83,7 @@ Netscape and was specified formally as part of [HTML5's `keygen` element][]. `` is deprecated since [HTML 5.2][] and new projects should not use this element anymore. -The `crypto` module provides the `Certificate` class for working with SPKAC +The `node:crypto` module provides the `Certificate` class for working with SPKAC data. The most common usage is handling output generated by the HTML5 `` element. Node.js uses [OpenSSL's SPKAC implementation][] internally. @@ -103,7 +104,7 @@ changes: includes a public key and a challenge. ```mjs -const { Certificate } = await import('crypto'); +const { Certificate } = await import('node:crypto'); const spkac = getSpkacSomehow(); const challenge = Certificate.exportChallenge(spkac); console.log(challenge.toString('utf8')); @@ -111,7 +112,7 @@ console.log(challenge.toString('utf8')); ``` ```cjs -const { Certificate } = require('crypto'); +const { Certificate } = require('node:crypto'); const spkac = getSpkacSomehow(); const challenge = Certificate.exportChallenge(spkac); console.log(challenge.toString('utf8')); @@ -135,7 +136,7 @@ changes: which includes a public key and a challenge. ```mjs -const { Certificate } = await import('crypto'); +const { Certificate } = await import('node:crypto'); const spkac = getSpkacSomehow(); const publicKey = Certificate.exportPublicKey(spkac); console.log(publicKey); @@ -143,7 +144,7 @@ console.log(publicKey); ``` ```cjs -const { Certificate } = require('crypto'); +const { Certificate } = require('node:crypto'); const spkac = getSpkacSomehow(); const publicKey = Certificate.exportPublicKey(spkac); console.log(publicKey); @@ -168,8 +169,8 @@ changes: `false` otherwise. ```mjs -import { Buffer } from 'buffer'; -const { Certificate } = await import('crypto'); +import { Buffer } from 'node:buffer'; +const { Certificate } = await import('node:crypto'); const spkac = getSpkacSomehow(); console.log(Certificate.verifySpkac(Buffer.from(spkac))); @@ -177,8 +178,8 @@ console.log(Certificate.verifySpkac(Buffer.from(spkac))); ``` ```cjs -const { Certificate } = require('crypto'); -const { Buffer } = require('buffer'); +const { Certificate } = require('node:crypto'); +const { Buffer } = require('node:buffer'); const spkac = getSpkacSomehow(); console.log(Certificate.verifySpkac(Buffer.from(spkac))); @@ -198,14 +199,14 @@ Instances of the `Certificate` class can be created using the `new` keyword or by calling `crypto.Certificate()` as a function: ```mjs -const { Certificate } = await import('crypto'); +const { Certificate } = await import('node:crypto'); const cert1 = new Certificate(); const cert2 = Certificate(); ``` ```cjs -const { Certificate } = require('crypto'); +const { Certificate } = require('node:crypto'); const cert1 = new Certificate(); const cert2 = Certificate(); @@ -223,7 +224,7 @@ added: v0.11.8 includes a public key and a challenge. ```mjs -const { Certificate } = await import('crypto'); +const { Certificate } = await import('node:crypto'); const cert = Certificate(); const spkac = getSpkacSomehow(); const challenge = cert.exportChallenge(spkac); @@ -232,7 +233,7 @@ console.log(challenge.toString('utf8')); ``` ```cjs -const { Certificate } = require('crypto'); +const { Certificate } = require('node:crypto'); const cert = Certificate(); const spkac = getSpkacSomehow(); const challenge = cert.exportChallenge(spkac); @@ -252,7 +253,7 @@ added: v0.11.8 which includes a public key and a challenge. ```mjs -const { Certificate } = await import('crypto'); +const { Certificate } = await import('node:crypto'); const cert = Certificate(); const spkac = getSpkacSomehow(); const publicKey = cert.exportPublicKey(spkac); @@ -261,7 +262,7 @@ console.log(publicKey); ``` ```cjs -const { Certificate } = require('crypto'); +const { Certificate } = require('node:crypto'); const cert = Certificate(); const spkac = getSpkacSomehow(); const publicKey = cert.exportPublicKey(spkac); @@ -281,8 +282,8 @@ added: v0.11.8 `false` otherwise. ```mjs -import { Buffer } from 'buffer'; -const { Certificate } = await import('crypto'); +import { Buffer } from 'node:buffer'; +const { Certificate } = await import('node:crypto'); const cert = Certificate(); const spkac = getSpkacSomehow(); @@ -291,8 +292,8 @@ console.log(cert.verifySpkac(Buffer.from(spkac))); ``` ```cjs -const { Certificate } = require('crypto'); -const { Buffer } = require('buffer'); +const { Certificate } = require('node:crypto'); +const { Buffer } = require('node:buffer'); const cert = Certificate(); const spkac = getSpkacSomehow(); @@ -327,7 +328,7 @@ const { scrypt, randomFill, createCipheriv -} = await import('crypto'); +} = await import('node:crypto'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -360,7 +361,7 @@ const { scrypt, randomFill, createCipheriv -} = require('crypto'); +} = require('node:crypto'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -404,7 +405,7 @@ const { scrypt, randomFill, createCipheriv -} = await import('crypto'); +} = await import('node:crypto'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -433,17 +434,17 @@ scrypt(password, 'salt', 24, (err, key) => { const { createReadStream, createWriteStream, -} = require('fs'); +} = require('node:fs'); const { pipeline -} = require('stream'); +} = require('node:stream'); const { scrypt, randomFill, createCipheriv, -} = require('crypto'); +} = require('node:crypto'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -475,7 +476,7 @@ const { scrypt, randomFill, createCipheriv -} = await import('crypto'); +} = await import('node:crypto'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -502,7 +503,7 @@ const { scrypt, randomFill, createCipheriv, -} = require('crypto'); +} = require('node:crypto'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -655,11 +656,11 @@ directly using the `new` keyword. Example: Using `Decipher` objects as streams: ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const { scryptSync, createDecipheriv -} = await import('crypto'); +} = await import('node:crypto'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -694,8 +695,8 @@ decipher.end(); const { scryptSync, createDecipheriv, -} = require('crypto'); -const { Buffer } = require('buffer'); +} = require('node:crypto'); +const { Buffer } = require('node:buffer'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -733,11 +734,11 @@ import { createReadStream, createWriteStream, } from 'fs'; -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const { scryptSync, createDecipheriv -} = await import('crypto'); +} = await import('node:crypto'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -758,12 +759,12 @@ input.pipe(decipher).pipe(output); const { createReadStream, createWriteStream, -} = require('fs'); +} = require('node:fs'); const { scryptSync, createDecipheriv, -} = require('crypto'); -const { Buffer } = require('buffer'); +} = require('node:crypto'); +const { Buffer } = require('node:buffer'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -783,11 +784,11 @@ input.pipe(decipher).pipe(output); Example: Using the [`decipher.update()`][] and [`decipher.final()`][] methods: ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const { scryptSync, createDecipheriv -} = await import('crypto'); +} = await import('node:crypto'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -811,8 +812,8 @@ console.log(decrypted); const { scryptSync, createDecipheriv, -} = require('crypto'); -const { Buffer } = require('buffer'); +} = require('node:crypto'); +const { Buffer } = require('node:buffer'); const algorithm = 'aes-192-cbc'; const password = 'Password used to generate key'; @@ -981,11 +982,11 @@ Instances of the `DiffieHellman` class can be created using the [`crypto.createDiffieHellman()`][] function. ```mjs -import assert from 'assert'; +import assert from 'node:assert'; const { createDiffieHellman -} = await import('crypto'); +} = await import('node:crypto'); // Generate Alice's keys... const alice = createDiffieHellman(2048); @@ -1004,11 +1005,11 @@ assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex')); ``` ```cjs -const assert = require('assert'); +const assert = require('node:assert'); const { createDiffieHellman, -} = require('crypto'); +} = require('node:crypto'); // Generate Alice's keys... const alice = createDiffieHellman(2048); @@ -1152,8 +1153,7 @@ added: v0.11.12 A bit field containing any warnings and/or errors resulting from a check performed during initialization of the `DiffieHellman` object. -The following values are valid for this property (as defined in `constants` -module): +The following values are valid for this property (as defined in `node:constants` module): * `DH_CHECK_P_NOT_SAFE_PRIME` * `DH_CHECK_P_NOT_PRIME` @@ -1172,12 +1172,12 @@ its keys after creation. In other words, it does not implement `setPublicKey()` or `setPrivateKey()` methods. ```mjs -const { createDiffieHellmanGroup } = await import('crypto'); +const { createDiffieHellmanGroup } = await import('node:crypto'); const dh = createDiffieHellmanGroup('modp1'); ``` ```cjs -const { createDiffieHellmanGroup } = require('crypto'); +const { createDiffieHellmanGroup } = require('node:crypto'); const dh = createDiffieHellmanGroup('modp1'); ``` @@ -1209,11 +1209,11 @@ Instances of the `ECDH` class can be created using the [`crypto.createECDH()`][] function. ```mjs -import assert from 'assert'; +import assert from 'node:assert'; const { createECDH -} = await import('crypto'); +} = await import('node:crypto'); // Generate Alice's keys... const alice = createECDH('secp521r1'); @@ -1232,11 +1232,11 @@ assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex')); ``` ```cjs -const assert = require('assert'); +const assert = require('node:assert'); const { createECDH, -} = require('crypto'); +} = require('node:crypto'); // Generate Alice's keys... const alice = createECDH('secp521r1'); @@ -1289,7 +1289,7 @@ Example (uncompressing a key): const { createECDH, ECDH -} = await import('crypto'); +} = await import('node:crypto'); const ecdh = createECDH('secp256k1'); ecdh.generateKeys(); @@ -1310,7 +1310,7 @@ console.log(uncompressedKey === ecdh.getPublicKey('hex')); const { createECDH, ECDH, -} = require('crypto'); +} = require('node:crypto'); const ecdh = createECDH('secp256k1'); ecdh.generateKeys(); @@ -1461,7 +1461,7 @@ Example (obtaining a shared secret): const { createECDH, createHash -} = await import('crypto'); +} = await import('node:crypto'); const alice = createECDH('secp256k1'); const bob = createECDH('secp256k1'); @@ -1488,7 +1488,7 @@ console.log(aliceSecret === bobSecret); const { createECDH, createHash, -} = require('crypto'); +} = require('node:crypto'); const alice = createECDH('secp256k1'); const bob = createECDH('secp256k1'); @@ -1535,7 +1535,7 @@ Example: Using `Hash` objects as streams: ```mjs const { createHash -} = await import('crypto'); +} = await import('node:crypto'); const hash = createHash('sha256'); @@ -1557,7 +1557,7 @@ hash.end(); ```cjs const { createHash, -} = require('crypto'); +} = require('node:crypto'); const hash = createHash('sha256'); @@ -1579,9 +1579,9 @@ hash.end(); Example: Using `Hash` and piped streams: ```mjs -import { createReadStream } from 'fs'; -import { stdout } from 'process'; -const { createHash } = await import('crypto'); +import { createReadStream } from 'node:fs'; +import { stdout } from 'node:process'; +const { createHash } = await import('node:crypto'); const hash = createHash('sha256'); @@ -1590,9 +1590,9 @@ input.pipe(hash).setEncoding('hex').pipe(stdout); ``` ```cjs -const { createReadStream } = require('fs'); -const { createHash } = require('crypto'); -const { stdout } = require('process'); +const { createReadStream } = require('node:fs'); +const { createHash } = require('node:crypto'); +const { stdout } = require('node:process'); const hash = createHash('sha256'); @@ -1605,7 +1605,7 @@ Example: Using the [`hash.update()`][] and [`hash.digest()`][] methods: ```mjs const { createHash -} = await import('crypto'); +} = await import('node:crypto'); const hash = createHash('sha256'); @@ -1618,7 +1618,7 @@ console.log(hash.digest('hex')); ```cjs const { createHash, -} = require('crypto'); +} = require('node:crypto'); const hash = createHash('sha256'); @@ -1651,7 +1651,7 @@ its [`hash.digest()`][] method has been called. // Calculate a rolling hash. const { createHash -} = await import('crypto'); +} = await import('node:crypto'); const hash = createHash('sha256'); @@ -1671,7 +1671,7 @@ console.log(hash.copy().digest('hex')); // Calculate a rolling hash. const { createHash, -} = require('crypto'); +} = require('node:crypto'); const hash = createHash('sha256'); @@ -1749,7 +1749,7 @@ Example: Using `Hmac` objects as streams: ```mjs const { createHmac -} = await import('crypto'); +} = await import('node:crypto'); const hmac = createHmac('sha256', 'a secret'); @@ -1771,7 +1771,7 @@ hmac.end(); ```cjs const { createHmac, -} = require('crypto'); +} = require('node:crypto'); const hmac = createHmac('sha256', 'a secret'); @@ -1793,11 +1793,11 @@ hmac.end(); Example: Using `Hmac` and piped streams: ```mjs -import { createReadStream } from 'fs'; -import { stdout } from 'process'; +import { createReadStream } from 'node:fs'; +import { stdout } from 'node:process'; const { createHmac -} = await import('crypto'); +} = await import('node:crypto'); const hmac = createHmac('sha256', 'a secret'); @@ -1808,11 +1808,11 @@ input.pipe(hmac).pipe(stdout); ```cjs const { createReadStream, -} = require('fs'); +} = require('node:fs'); const { createHmac, -} = require('crypto'); -const { stdout } = require('process'); +} = require('node:crypto'); +const { stdout } = require('node:process'); const hmac = createHmac('sha256', 'a secret'); @@ -1825,7 +1825,7 @@ Example: Using the [`hmac.update()`][] and [`hmac.digest()`][] methods: ```mjs const { createHmac -} = await import('crypto'); +} = await import('node:crypto'); const hmac = createHmac('sha256', 'a secret'); @@ -1838,7 +1838,7 @@ console.log(hmac.digest('hex')); ```cjs const { createHmac, -} = require('crypto'); +} = require('node:crypto'); const hmac = createHmac('sha256', 'a secret'); @@ -1927,7 +1927,7 @@ added: v15.0.0 Example: Converting a `CryptoKey` instance to a `KeyObject`: ```mjs -const { webcrypto, KeyObject } = await import('crypto'); +const { webcrypto, KeyObject } = await import('node:crypto'); const { subtle } = webcrypto; const key = await subtle.generateKey({ @@ -1947,7 +1947,7 @@ const { subtle, }, KeyObject, -} = require('crypto'); +} = require('node:crypto'); (async function() { const key = await subtle.generateKey({ @@ -2090,7 +2090,9 @@ PKCS#1 and SEC1 encryption. ### `keyObject.equals(otherKeyObject)` * `otherKeyObject`: {KeyObject} A `KeyObject` with which to @@ -2151,7 +2153,7 @@ const { generateKeyPairSync, createSign, createVerify -} = await import('crypto'); +} = await import('node:crypto'); const { privateKey, publicKey } = generateKeyPairSync('ec', { namedCurve: 'sect239k1' @@ -2174,7 +2176,7 @@ const { generateKeyPairSync, createSign, createVerify, -} = require('crypto'); +} = require('node:crypto'); const { privateKey, publicKey } = generateKeyPairSync('ec', { namedCurve: 'sect239k1' @@ -2199,7 +2201,7 @@ const { generateKeyPairSync, createSign, createVerify -} = await import('crypto'); +} = await import('node:crypto'); const { privateKey, publicKey } = generateKeyPairSync('rsa', { modulusLength: 2048, @@ -2222,7 +2224,7 @@ const { generateKeyPairSync, createSign, createVerify, -} = require('crypto'); +} = require('node:crypto'); const { privateKey, publicKey } = generateKeyPairSync('rsa', { modulusLength: 2048, @@ -2455,7 +2457,7 @@ Encapsulates an X509 certificate and provides read-only access to its information. ```mjs -const { X509Certificate } = await import('crypto'); +const { X509Certificate } = await import('node:crypto'); const x509 = new X509Certificate('{... pem encoded cert ...}'); @@ -2463,7 +2465,7 @@ console.log(x509.subject); ``` ```cjs -const { X509Certificate } = require('crypto'); +const { X509Certificate } = require('node:crypto'); const x509 = new X509Certificate('{... pem encoded cert ...}'); @@ -2493,7 +2495,7 @@ added: v15.6.0 @@ -2533,10 +2537,12 @@ considered, even if the certificate contains no subject alternative names. @@ -2859,7 +2865,7 @@ added: v15.6.0 Verifies that this certificate was signed by the given public key. Does not perform any other validation checks on the certificate. -## `crypto` module methods and properties +## `node:crypto` module methods and properties ### `crypto.constants` @@ -2906,12 +2912,12 @@ is currently in use. Setting to true requires a FIPS build of Node.js. This property is deprecated. Please use `crypto.setFips()` and `crypto.getFips()` instead. -### `crypto.checkPrime(candidate[, options, [callback]])` +### `crypto.checkPrime(candidate[, options[, callback]])` -### DEP0089: `require('assert')` +### DEP0089: `require('node:assert')` -Type: Runtime +Type: End-of-Life Using a non-nullish non-integer value for `family` option, a non-nullish non-number value for `hints` option, a non-nullish non-boolean value for `all` option, or a non-nullish non-boolean value for `verbatim` option in -[`dns.lookup()`][] and [`dnsPromises.lookup()`][] is deprecated. +[`dns.lookup()`][] and [`dnsPromises.lookup()`][] throws an +`ERR_INVALID_ARG_TYPE` error. ### DEP0154: RSA-PSS generate key pair options @@ -3019,7 +3024,7 @@ it was an aborted or graceful destroy. @@ -3068,7 +3075,7 @@ Use [`buffer.subarray`][] which does the same thing instead. @@ -3082,10 +3089,12 @@ the errors used for value type validation. @@ -3099,7 +3108,9 @@ which diminished its usefulness. @@ -3117,10 +3128,12 @@ resources and not the actual references. diff --git a/doc/api/dgram.md b/doc/api/dgram.md index a67ee8e2f412a2..df50a7b107513a 100644 --- a/doc/api/dgram.md +++ b/doc/api/dgram.md @@ -8,10 +8,10 @@ -The `dgram` module provides an implementation of UDP datagram sockets. +The `node:dgram` module provides an implementation of UDP datagram sockets. ```mjs -import dgram from 'dgram'; +import dgram from 'node:dgram'; const server = dgram.createSocket('udp4'); @@ -34,7 +34,7 @@ server.bind(41234); ``` ```cjs -const dgram = require('dgram'); +const dgram = require('node:dgram'); const server = dgram.createSocket('udp4'); server.on('error', (err) => { @@ -113,6 +113,13 @@ exist and calls such as `socket.address()` and `socket.setTTL()` will fail. The `'message'` event is emitted when a new datagram is available on a socket. @@ -154,8 +161,8 @@ When sharing a UDP socket across multiple `cluster` workers, the `EADDRINUSE` error will occur: ```mjs -import cluster from 'cluster'; -import dgram from 'dgram'; +import cluster from 'node:cluster'; +import dgram from 'node:dgram'; if (cluster.isPrimary) { cluster.fork(); // Works ok. @@ -169,8 +176,8 @@ if (cluster.isPrimary) { ``` ```cjs -const cluster = require('cluster'); -const dgram = require('dgram'); +const cluster = require('node:cluster'); +const dgram = require('node:dgram'); if (cluster.isPrimary) { cluster.fork(); // Works ok. @@ -214,7 +221,7 @@ added: v0.1.99 * Returns: {Object} Returns an object containing the address information for a socket. -For UDP sockets, this object will contain `address`, `family` and `port` +For UDP sockets, this object will contain `address`, `family`, and `port` properties. This method throws `EBADF` if called on an unbound socket. @@ -256,7 +263,7 @@ attempting to bind with a closed socket), an [`Error`][] may be thrown. Example of a UDP server listening on port 41234: ```mjs -import dgram from 'dgram'; +import dgram from 'node:dgram'; const server = dgram.createSocket('udp4'); @@ -279,7 +286,7 @@ server.bind(41234); ``` ```cjs -const dgram = require('dgram'); +const dgram = require('node:dgram'); const server = dgram.createSocket('udp4'); server.on('error', (err) => { @@ -569,8 +576,8 @@ This method throws [`ERR_SOCKET_BAD_PORT`][] if called on an unbound socket. Example of sending a UDP packet to a port on `localhost`; ```mjs -import dgram from 'dgram'; -import { Buffer } from 'buffer'; +import dgram from 'node:dgram'; +import { Buffer } from 'node:buffer'; const message = Buffer.from('Some bytes'); const client = dgram.createSocket('udp4'); @@ -580,8 +587,8 @@ client.send(message, 41234, 'localhost', (err) => { ``` ```cjs -const dgram = require('dgram'); -const { Buffer } = require('buffer'); +const dgram = require('node:dgram'); +const { Buffer } = require('node:buffer'); const message = Buffer.from('Some bytes'); const client = dgram.createSocket('udp4'); @@ -594,8 +601,8 @@ Example of sending a UDP packet composed of multiple buffers to a port on `127.0.0.1`; ```mjs -import dgram from 'dgram'; -import { Buffer } from 'buffer'; +import dgram from 'node:dgram'; +import { Buffer } from 'node:buffer'; const buf1 = Buffer.from('Some '); const buf2 = Buffer.from('bytes'); @@ -606,8 +613,8 @@ client.send([buf1, buf2], 41234, (err) => { ``` ```cjs -const dgram = require('dgram'); -const { Buffer } = require('buffer'); +const dgram = require('node:dgram'); +const { Buffer } = require('node:buffer'); const buf1 = Buffer.from('Some '); const buf2 = Buffer.from('bytes'); @@ -626,8 +633,8 @@ Example of sending a UDP packet using a socket connected to a port on `localhost`: ```mjs -import dgram from 'dgram'; -import { Buffer } from 'buffer'; +import dgram from 'node:dgram'; +import { Buffer } from 'node:buffer'; const message = Buffer.from('Some bytes'); const client = dgram.createSocket('udp4'); @@ -639,8 +646,8 @@ client.connect(41234, 'localhost', (err) => { ``` ```cjs -const dgram = require('dgram'); -const { Buffer } = require('buffer'); +const dgram = require('node:dgram'); +const { Buffer } = require('node:buffer'); const message = Buffer.from('Some bytes'); const client = dgram.createSocket('udp4'); @@ -868,7 +875,7 @@ Calling `socket.unref()` multiple times will have no addition effect. The `socket.unref()` method returns a reference to the socket so calls can be chained. -## `dgram` module functions +## `node:dgram` module functions ### `dgram.createSocket(options[, callback])` diff --git a/doc/api/diagnostics_channel.md b/doc/api/diagnostics_channel.md index fc13f0d38e4393..eff642f96743b4 100644 --- a/doc/api/diagnostics_channel.md +++ b/doc/api/diagnostics_channel.md @@ -6,17 +6,17 @@ -The `diagnostics_channel` module provides an API to create named channels +The `node:diagnostics_channel` module provides an API to create named channels to report arbitrary message data for diagnostics purposes. It can be accessed using: ```mjs -import diagnostics_channel from 'diagnostics_channel'; +import diagnostics_channel from 'node:diagnostics_channel'; ``` ```cjs -const diagnostics_channel = require('diagnostics_channel'); +const diagnostics_channel = require('node:diagnostics_channel'); ``` It is intended that a module writer wanting to report diagnostics messages @@ -38,7 +38,7 @@ other modules. Following is a simple overview of the public API. ```mjs -import diagnostics_channel from 'diagnostics_channel'; +import diagnostics_channel from 'node:diagnostics_channel'; // Get a reusable channel object const channel = diagnostics_channel.channel('my-channel'); @@ -58,7 +58,7 @@ if (channel.hasSubscribers) { ``` ```cjs -const diagnostics_channel = require('diagnostics_channel'); +const diagnostics_channel = require('node:diagnostics_channel'); // Get a reusable channel object const channel = diagnostics_channel.channel('my-channel'); @@ -95,7 +95,7 @@ This API is optional but helpful when trying to publish messages from very performance-sensitive code. ```mjs -import diagnostics_channel from 'diagnostics_channel'; +import diagnostics_channel from 'node:diagnostics_channel'; if (diagnostics_channel.hasSubscribers('my-channel')) { // There are subscribers, prepare and publish message @@ -103,7 +103,7 @@ if (diagnostics_channel.hasSubscribers('my-channel')) { ``` ```cjs -const diagnostics_channel = require('diagnostics_channel'); +const diagnostics_channel = require('node:diagnostics_channel'); if (diagnostics_channel.hasSubscribers('my-channel')) { // There are subscribers, prepare and publish message @@ -126,13 +126,13 @@ channel. It produces a channel object which is optimized to reduce overhead at publish time as much as possible. ```mjs -import diagnostics_channel from 'diagnostics_channel'; +import diagnostics_channel from 'node:diagnostics_channel'; const channel = diagnostics_channel.channel('my-channel'); ``` ```cjs -const diagnostics_channel = require('diagnostics_channel'); +const diagnostics_channel = require('node:diagnostics_channel'); const channel = diagnostics_channel.channel('my-channel'); ``` @@ -170,7 +170,7 @@ This API is optional but helpful when trying to publish messages from very performance-sensitive code. ```mjs -import diagnostics_channel from 'diagnostics_channel'; +import diagnostics_channel from 'node:diagnostics_channel'; const channel = diagnostics_channel.channel('my-channel'); @@ -180,7 +180,7 @@ if (channel.hasSubscribers) { ``` ```cjs -const diagnostics_channel = require('diagnostics_channel'); +const diagnostics_channel = require('node:diagnostics_channel'); const channel = diagnostics_channel.channel('my-channel'); @@ -203,7 +203,7 @@ Publish a message to any subscribers to the channel. This will trigger message handlers synchronously so they will execute within the same context. ```mjs -import diagnostics_channel from 'diagnostics_channel'; +import diagnostics_channel from 'node:diagnostics_channel'; const channel = diagnostics_channel.channel('my-channel'); @@ -213,7 +213,7 @@ channel.publish({ ``` ```cjs -const diagnostics_channel = require('diagnostics_channel'); +const diagnostics_channel = require('node:diagnostics_channel'); const channel = diagnostics_channel.channel('my-channel'); @@ -239,7 +239,7 @@ will be run synchronously whenever a message is published to the channel. Any errors thrown in the message handler will trigger an [`'uncaughtException'`][]. ```mjs -import diagnostics_channel from 'diagnostics_channel'; +import diagnostics_channel from 'node:diagnostics_channel'; const channel = diagnostics_channel.channel('my-channel'); @@ -249,7 +249,7 @@ channel.subscribe((message, name) => { ``` ```cjs -const diagnostics_channel = require('diagnostics_channel'); +const diagnostics_channel = require('node:diagnostics_channel'); const channel = diagnostics_channel.channel('my-channel'); @@ -280,7 +280,7 @@ Remove a message handler previously registered to this channel with [`channel.subscribe(onMessage)`][]. ```mjs -import diagnostics_channel from 'diagnostics_channel'; +import diagnostics_channel from 'node:diagnostics_channel'; const channel = diagnostics_channel.channel('my-channel'); @@ -294,7 +294,7 @@ channel.unsubscribe(onMessage); ``` ```cjs -const diagnostics_channel = require('diagnostics_channel'); +const diagnostics_channel = require('node:diagnostics_channel'); const channel = diagnostics_channel.channel('my-channel'); diff --git a/doc/api/dns.md b/doc/api/dns.md index e5a1b5e3ff82c6..dc2f578fa05336 100644 --- a/doc/api/dns.md +++ b/doc/api/dns.md @@ -6,7 +6,7 @@ -The `dns` module enables name resolution. For example, use it to look up IP +The `node:dns` module enables name resolution. For example, use it to look up IP addresses of host names. Although named for the [Domain Name System (DNS)][], it does not always use the @@ -16,7 +16,7 @@ communication. To perform name resolution the way other applications on the same system do, use [`dns.lookup()`][]. ```js -const dns = require('dns'); +const dns = require('node:dns'); dns.lookup('example.org', (err, address, family) => { console.log('address: %j family: IPv%s', address, family); @@ -24,14 +24,14 @@ dns.lookup('example.org', (err, address, family) => { // address: "93.184.216.34" family: IPv4 ``` -All other functions in the `dns` module connect to an actual DNS server to +All other functions in the `node:dns` module connect to an actual DNS server to perform name resolution. They will always use the network to perform DNS queries. These functions do not use the same set of configuration files used by [`dns.lookup()`][] (e.g. `/etc/hosts`). Use these functions to always perform DNS queries, bypassing other name-resolution facilities. ```js -const dns = require('dns'); +const dns = require('node:dns'); dns.resolve4('archive.org', (err, addresses) => { if (err) throw err; @@ -65,7 +65,7 @@ the servers used for a resolver using other resolvers: ```js -const { Resolver } = require('dns'); +const { Resolver } = require('node:dns'); const resolver = new Resolver(); resolver.setServers(['4.4.4.4']); @@ -75,7 +75,7 @@ resolver.resolve4('example.org', (err, addresses) => { }); ``` -The following methods from the `dns` module are available: +The following methods from the `node:dns` module are available: * [`resolver.getServers()`][`dns.getServers()`] * [`resolver.resolve()`][`dns.resolve()`] @@ -179,7 +179,12 @@ section if a custom port is used. ```js - const fs = require('fs'); + const fs = require('node:fs'); fs.readFile('a file that does not exist', (err, data) => { if (err) { console.error('There was an error reading the file!', err); @@ -77,7 +77,7 @@ Errors that occur within _Asynchronous APIs_ may be reported in multiple ways: [`EventEmitter`][], errors can be routed to that object's `'error'` event. ```js - const net = require('net'); + const net = require('node:net'); const connection = net.connect('localhost'); // Adding an 'error' event handler to a stream: @@ -109,7 +109,7 @@ used appropriately or a handler has been registered for the [`'uncaughtException'`][] event. ```js -const EventEmitter = require('events'); +const EventEmitter = require('node:events'); const ee = new EventEmitter(); setImmediate(() => { @@ -137,7 +137,7 @@ completes or an error is raised, the callback function is called with the the first argument will be passed as `null`. ```js -const fs = require('fs'); +const fs = require('node:fs'); function errorFirstCallback(err, data) { if (err) { @@ -157,7 +157,7 @@ use `throw` inside an error-first callback: ```js // THIS WILL NOT WORK: -const fs = require('fs'); +const fs = require('node:fs'); try { fs.readFile('/some/file/that/does-not-exist', (err, data) => { @@ -372,7 +372,7 @@ acceptable values for a function; whether that is a numeric range, or outside the set of options for a given function parameter. ```js -require('net').connect(-1); +require('node:net').connect(-1); // Throws "RangeError: "port" option should be >= 0 and < 65536: -1" ``` @@ -409,7 +409,7 @@ are almost always indicative of a broken program. ```js try { - require('vm').runInThisContext('binary ! isNotOk'); + require('node:vm').runInThisContext('binary ! isNotOk'); } catch (err) { // 'err' will be a SyntaxError. } @@ -570,7 +570,7 @@ Indicates that a provided argument is not an allowable type. For example, passing a function to a parameter which expects a string would be a `TypeError`. ```js -require('url').parse(() => { }); +require('node:url').parse(() => { }); // Throws TypeError, since it expected a string. ``` @@ -638,11 +638,11 @@ order to be compatible with the web platform's `AbortError`. ### `ERR_AMBIGUOUS_ARGUMENT` A function argument is being used in a way that suggests that the function -signature may be misunderstood. This is thrown by the `assert` module when the -`message` parameter in `assert.throws(block, message)` matches the error message -thrown by `block` because that usage suggests that the user believes `message` -is the expected message rather than the message the `AssertionError` will -display if `block` does not throw. +signature may be misunderstood. This is thrown by the `node:assert` module when +the `message` parameter in `assert.throws(block, message)` matches the error +message thrown by `block` because that usage suggests that the user believes +`message` is the expected message rather than the message the `AssertionError` +will display if `block` does not throw. @@ -657,7 +657,7 @@ required, but not provided to a Node.js API. A special type of error that can be triggered whenever Node.js detects an exceptional logic violation that should never occur. These are raised typically -by the `assert` module. +by the `node:assert` module. @@ -818,14 +818,14 @@ key lies outside of the elliptic curve. ### `ERR_CRYPTO_ENGINE_UNKNOWN` An invalid crypto engine identifier was passed to -[`require('crypto').setEngine()`][]. +[`require('node:crypto').setEngine()`][]. ### `ERR_CRYPTO_FIPS_FORCED` The [`--force-fips`][] command-line argument was used but there was an attempt -to enable or disable FIPS mode in the `crypto` module. +to enable or disable FIPS mode in the `node:crypto` module. @@ -1164,8 +1164,8 @@ ongoing asynchronous operations. ### `ERR_DOMAIN_CALLBACK_NOT_AVAILABLE` -The `domain` module was not usable since it could not establish the required -error handling hooks, because +The `node:domain` module was not usable since it could not establish the +required error handling hooks, because [`process.setUncaughtExceptionCaptureCallback()`][] had been called at an earlier point in time. @@ -1174,10 +1174,17 @@ earlier point in time. ### `ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE` [`process.setUncaughtExceptionCaptureCallback()`][] could not be called -because the `domain` module has been loaded at an earlier point in time. +because the `node:domain` module has been loaded at an earlier point in time. The stack trace is extended to include the point in time at which the -`domain` module had been loaded. +`node:domain` module had been loaded. + + + +### `ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION` + +[`v8.startupSnapshot.setDeserializeMainFunction()`][] could not be called +because it had already been called before. @@ -1744,13 +1751,13 @@ time. > Stability: 1 - Experimental The `--input-type` flag was used to attempt to execute a file. This flag can -only be used with input via `--eval`, `--print` or `STDIN`. +only be used with input via `--eval`, `--print`, or `STDIN`. ### `ERR_INSPECTOR_ALREADY_ACTIVATED` -While using the `inspector` module, an attempt was made to activate the +While using the `node:inspector` module, an attempt was made to activate the inspector when it already started to listen on a port. Use `inspector.close()` before activating it on a different address. @@ -1758,21 +1765,21 @@ before activating it on a different address. ### `ERR_INSPECTOR_ALREADY_CONNECTED` -While using the `inspector` module, an attempt was made to connect when the +While using the `node:inspector` module, an attempt was made to connect when the inspector was already connected. ### `ERR_INSPECTOR_CLOSED` -While using the `inspector` module, an attempt was made to use the inspector -after the session had already closed. +While using the `node:inspector` module, an attempt was made to use the +inspector after the session had already closed. ### `ERR_INSPECTOR_COMMAND` -An error occurred while issuing a command via the `inspector` module. +An error occurred while issuing a command via the `node:inspector` module. @@ -1784,14 +1791,14 @@ The `inspector` is not active when `inspector.waitForDebugger()` is called. ### `ERR_INSPECTOR_NOT_AVAILABLE` -The `inspector` module is not available for use. +The `node:inspector` module is not available for use. ### `ERR_INSPECTOR_NOT_CONNECTED` -While using the `inspector` module, an attempt was made to use the inspector -before it was connected. +While using the `node:inspector` module, an attempt was made to use the +inspector before it was connected. @@ -2005,7 +2012,7 @@ performing another operation. ### `ERR_INVALID_SYNC_FORK_INPUT` -A `Buffer`, `TypedArray`, `DataView` or `string` was provided as stdio input to +A `Buffer`, `TypedArray`, `DataView`, or `string` was provided as stdio input to an asynchronous fork. See the documentation for the [`child_process`][] module for more information. @@ -2092,6 +2099,17 @@ An attempt was made to open an IPC communication channel with a synchronously forked Node.js process. See the documentation for the [`child_process`][] module for more information. + + +### `ERR_LOADER_CHAIN_INCOMPLETE` + + + +An ESM loader hook returned without calling `next()` and without explicitly +signaling a short circuit. + ### `ERR_MANIFEST_ASSERT_INTEGRITY` @@ -2303,6 +2321,13 @@ has occurred when attempting to start the loop. Once no more items are left in the queue, the idle loop must be suspended. This error indicates that the idle loop has failed to stop. + + +### `ERR_NOT_BUILDING_SNAPSHOT` + +An attempt was made to use operations that can only be used when building +V8 startup snapshot even though Node.js isn't building one. + ### `ERR_NO_CRYPTO` @@ -2344,6 +2369,40 @@ The `package.json` [`"exports"`][] field does not export the requested subpath. Because exports are encapsulated, private internal modules that are not exported cannot be imported through the package resolution, unless using an absolute URL. + + +### `ERR_PARSE_ARGS_INVALID_OPTION_VALUE` + + + +When `strict` set to `true`, thrown by [`util.parseArgs()`][] if a {boolean} +value is provided for an option of type {string}, or if a {string} +value is provided for an option of type {boolean}. + + + +### `ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL` + + + +Thrown by [`util.parseArgs()`][], when a postional argument is provided and +`allowPositionals` is set to `false`. + + + +### `ERR_PARSE_ARGS_UNKNOWN_OPTION` + + + +When `strict` set to `true`, thrown by [`util.parseArgs()`][] if an argument +is not configured in `options`. + ### `ERR_PERFORMANCE_INVALID_TIMESTAMP` @@ -2523,7 +2582,7 @@ Prevents an abort if a string decoder was set on the Socket or if the decoder is in `objectMode`. ```js -const Socket = require('net').Socket; +const Socket = require('node:net').Socket; const instance = new Socket(); instance.setEncoding('utf8'); @@ -2685,8 +2744,8 @@ category. ### `ERR_TRACE_EVENTS_UNAVAILABLE` -The `trace_events` module could not be loaded because Node.js was compiled with -the `--without-v8-platform` flag. +The `node:trace_events` module could not be loaded because Node.js was compiled +with the `--without-v8-platform` flag. @@ -2853,12 +2912,6 @@ Cached data cannot be created for modules which have already been evaluated. The module being returned from the linker function is from a different context than the parent module. Linked modules must share the same context. - - -### `ERR_VM_MODULE_LINKING_ERRORED` - -The linker function returned a module for which linking has failed. - ### `ERR_VM_MODULE_LINK_FAILURE` @@ -2890,6 +2943,17 @@ The WASI instance has already started. The WASI instance has not been started. + + +### `ERR_WEBASSEMBLY_RESPONSE` + + + +The `Response` that has been passed to `WebAssembly.compileStreaming` or to +`WebAssembly.instantiateStreaming` is not a valid WebAssembly response. + ### `ERR_WORKER_INIT_FAILED` @@ -2951,11 +3015,11 @@ changes: - v10.15.0 commit: 186035243fad247e3955f pr-url: https://github.com/nodejs-private/node-private/pull/143 - description: Max header size in `http_parser` was set to 8 KB. + description: Max header size in `http_parser` was set to 8 KiB. --> Too much HTTP header data was received. In order to protect against malicious or -malconfigured clients, if more than 8 KB of HTTP header data is received then +malconfigured clients, if more than 8 KiB of HTTP header data is received then HTTP parsing will abort without a request or response object being created, and an `Error` with this code will be emitted. @@ -3198,7 +3262,7 @@ added: v9.0.0 removed: v10.0.0 --> -The `repl` module was unable to parse data from the REPL history file. +The `node:repl` module was unable to parse data from the REPL history file. @@ -3333,6 +3397,17 @@ Used when a given value is out of the accepted range. The module must be successfully linked before instantiation. + + +### `ERR_VM_MODULE_LINKING_ERRORED` + + + +The linker function returned a module for which linking has failed. + ### `ERR_WORKER_UNSUPPORTED_EXTENSION` @@ -3374,7 +3449,7 @@ The native call from `process.cpuUsage` could not be processed. [Node.js error codes]: #nodejs-error-codes [RFC 7230 Section 3]: https://tools.ietf.org/html/rfc7230#section-3 [Subresource Integrity specification]: https://www.w3.org/TR/SRI/#the-integrity-attribute -[V8's stack trace API]: https://github.com/v8/v8/wiki/Stack-Trace-API +[V8's stack trace API]: https://v8.dev/docs/stack-trace-api [WHATWG Supported Encodings]: util.md#whatwg-supported-encodings [WHATWG URL API]: url.md#the-whatwg-url-api [`"exports"`]: packages.md#exports @@ -3426,7 +3501,7 @@ The native call from `process.cpuUsage` could not be processed. [`process.send()`]: process.md#processsendmessage-sendhandle-options-callback [`process.setUncaughtExceptionCaptureCallback()`]: process.md#processsetuncaughtexceptioncapturecallbackfn [`readable._read()`]: stream.md#readable_readsize -[`require('crypto').setEngine()`]: crypto.md#cryptosetengineengine-flags +[`require('node:crypto').setEngine()`]: crypto.md#cryptosetengineengine-flags [`require()`]: modules.md#requireid [`server.close()`]: net.md#serverclosecallback [`server.listen()`]: net.md#serverlisten @@ -3439,6 +3514,8 @@ The native call from `process.cpuUsage` could not be processed. [`subprocess.send()`]: child_process.md#subprocesssendmessage-sendhandle-options-callback [`url.parse()`]: url.md#urlparseurlstring-parsequerystring-slashesdenotehost [`util.getSystemErrorName(error.errno)`]: util.md#utilgetsystemerrornameerr +[`util.parseArgs()`]: util.md#utilparseargsconfig +[`v8.startupSnapshot.setDeserializeMainFunction()`]: v8.md#v8startupsnapshotsetdeserializemainfunctioncallback-data [`zlib`]: zlib.md [crypto digest algorithm]: crypto.md#cryptogethashes [debugger]: debugger.md diff --git a/doc/api/esm.md b/doc/api/esm.md index 90cca55946b1af..c5ef7eb863f6b7 100644 --- a/doc/api/esm.md +++ b/doc/api/esm.md @@ -7,6 +7,10 @@ ```js -const dependencyAsset = await import.meta.resolve('component-lib/asset.css'); +const dependencyAsset = import.meta.resolve('component-lib/asset.css'); ``` `import.meta.resolve` also accepts a second argument which is the parent module @@ -352,11 +363,11 @@ from which to resolve from: ```js -await import.meta.resolve('./dep', import.meta.url); +import.meta.resolve('./dep', import.meta.url); ``` -This function is asynchronous because the ES module resolver in Node.js is -allowed to be asynchronous. +This function is synchronous because the ES module resolver in Node.js is +synchronous. ## Interoperability with CommonJS @@ -467,7 +478,7 @@ semantics implemented. ### Differences between ES modules and CommonJS -#### No `require`, `exports` or `module.exports` +#### No `require`, `exports`, or `module.exports` In most cases, the ES module `import` can be used to load CommonJS modules. @@ -567,8 +578,6 @@ would provide the exports interface for the instantiation of `module.wasm`. added: v14.8.0 --> -> Stability: 1 - Experimental - The `await` keyword may be used in the top level body of an ECMAScript module. Assuming an `a.mjs` with @@ -593,8 +602,8 @@ If a top level `await` expression never resolves, the `node` process will exit with a `13` [status code][]. ```js -import { spawn } from 'child_process'; -import { execPath } from 'process'; +import { spawn } from 'node:child_process'; +import { execPath } from 'node:process'; spawn(execPath, [ '--input-type=module', @@ -647,7 +656,7 @@ references to the local dependencies: ```mjs // file.mjs -import worker_threads from 'worker_threads'; +import worker_threads from 'node:worker_threads'; import { configure, resize } from 'https://example.com/imagelib.mjs'; configure({ worker_threads }); ``` @@ -675,6 +684,19 @@ of Node.js applications. ## Loaders + + > Stability: 1 - Experimental > This API is currently being redesigned and will still change. @@ -687,12 +709,43 @@ provided via a `--experimental-loader ./loader-name.mjs` argument to Node.js. When hooks are used they apply to the entry point and all `import` calls. They won't apply to `require` calls; those still follow [CommonJS][] rules. +Loaders follow the pattern of `--require`: + +```console +node \ + --experimental-loader unpkg \ + --experimental-loader http-to-https \ + --experimental-loader cache-buster +``` + +These are called in the following sequence: `cache-buster` calls +`http-to-https` which calls `unpkg`. + ### Hooks -#### `resolve(specifier, context, defaultResolve)` +Hooks are part of a chain, even if that chain consists of only one custom +(user-provided) hook and the default hook, which is always present. Hook +functions nest: each one must always return a plain object, and chaining happens +as a result of each function calling `next()`, which is a reference +to the subsequent loader's hook. + +A hook that returns a value lacking a required property triggers an exception. +A hook that returns without calling `next()` _and_ without returning +`shortCircuit: true` also triggers an exception. These errors are to help +prevent unintentional breaks in the chain. + +#### `resolve(specifier, context, nextResolve)` > The loaders API is being redesigned. This hook may disappear or its > signature may change. Do not rely on the API described below. @@ -779,15 +849,21 @@ export async function resolve(specifier, context, defaultResolve) { > In a previous version of this API, this was split across 3 separate, now > deprecated, hooks (`getFormat`, `getSource`, and `transformSource`). -* `url` {string} +* `url` {string} The URL returned by the `resolve` chain * `context` {Object} + * `conditions` {string\[]} Export conditions of the relevant `package.json` * `format` {string|null|undefined} The format optionally supplied by the - `resolve` hook. + `resolve` hook chain * `importAssertions` {Object} -* `defaultLoad` {Function} +* `nextLoad` {Function} The subsequent `load` hook in the chain, or the + Node.js default `load` hook after the last user-supplied `load` hook + * `specifier` {string} + * `context` {Object} * Returns: {Object} * `format` {string} - * `source` {string|ArrayBuffer|TypedArray} + * `shortCircuit` {undefined|boolean} A signal that this hook intends to + terminate the chain of `resolve` hooks. **Default:** `false` + * `source` {string|ArrayBuffer|TypedArray} The source for Node.js to evaluate The `load` hook provides a way to define a custom method of determining how a URL should be interpreted, retrieved, and parsed. It is also in charge of @@ -828,20 +904,10 @@ avoid reading files from disk. It could also be used to map an unrecognized format to a supported one, for example `yaml` to `module`. ```js -/** - * @param {string} url - * @param {{ - format: string, - }} context If resolve settled with a `format`, that value is included here. - * @param {Function} defaultLoad - * @returns {Promise<{ - format: string, - source: string | ArrayBuffer | SharedArrayBuffer | Uint8Array, - }>} - */ -export async function load(url, context, defaultLoad) { +export async function load(url, context, nextLoad) { const { format } = context; - if (Math.random() > 0.5) { // Some condition. + + if (Math.random() > 0.5) { // Some condition /* For some or all URLs, do some custom logic for retrieving the source. Always return an object of the form { @@ -851,11 +917,13 @@ export async function load(url, context, defaultLoad) { */ return { format, + shortCircuit: true, source: '...', }; } - // Defer to Node.js for all other URLs. - return defaultLoad(url, context, defaultLoad); + + // Defer to the next hook in the chain. + return nextLoad(url, context); } ``` @@ -864,13 +932,22 @@ source to a supported one (see [Examples](#examples) below). #### `globalPreload()` + + > The loaders API is being redesigned. This hook may disappear or its > signature may change. Do not rely on the API described below. > In a previous version of this API, this hook was named > `getGlobalPreloadCode`. -* Returns: {string} +* `context` {Object} Information to assist the preload code + * `port` {MessagePort} +* Returns: {string} Code to run before application startup Sometimes it might be necessary to run some code inside of the same global scope that the application runs in. This hook allows the return of a string @@ -884,13 +961,7 @@ If the code needs more advanced `require` features, it has to construct its own `require` using `module.createRequire()`. ```js -/** - * @param {{ - port: MessagePort, - }} utilities Things that preload code might find useful - * @returns {string} Code to run before application startup - */ -export function globalPreload(utilities) { +export function globalPreload(context) { return `\ globalThis.someInjectedProperty = 42; console.log('I just set some globals!'); @@ -915,10 +986,6 @@ close normally. /** * This example has the application context send a message to the loader * and sends the message back to the application context - * @param {{ - port: MessagePort, - }} utilities Things that preload code might find useful - * @returns {string} Code to run before application startup */ export function globalPreload({ port }) { port.onmessage = (evt) => { @@ -936,22 +1003,24 @@ export function globalPreload({ port }) { ### Examples The various loader hooks can be used together to accomplish wide-ranging -customizations of Node.js’ code loading and evaluation behaviors. +customizations of the Node.js code loading and evaluation behaviors. #### HTTPS loader -In current Node.js, specifiers starting with `https://` are unsupported. The -loader below registers hooks to enable rudimentary support for such specifiers. -While this may seem like a significant improvement to Node.js core +In current Node.js, specifiers starting with `https://` are experimental (see +[HTTPS and HTTP imports][]). + +The loader below registers hooks to enable rudimentary support for such +specifiers. While this may seem like a significant improvement to Node.js core functionality, there are substantial downsides to actually using this loader: performance is much slower than loading files from disk, there is no caching, and there is no security. ```js // https-loader.mjs -import { get } from 'https'; +import { get } from 'node:https'; -export function resolve(specifier, context, defaultResolve) { +export function resolve(specifier, context, nextResolve) { const { parentURL = null } = context; // Normally Node.js would error on specifiers starting with 'https://', so @@ -959,19 +1028,21 @@ export function resolve(specifier, context, defaultResolve) { // passed along to the later hooks below. if (specifier.startsWith('https://')) { return { + shortCircuit: true, url: specifier }; } else if (parentURL && parentURL.startsWith('https://')) { return { - url: new URL(specifier, parentURL).href + shortCircuit: true, + url: new URL(specifier, parentURL).href, }; } // Let Node.js handle all other specifiers. - return defaultResolve(specifier, context, defaultResolve); + return nextResolve(specifier, context); } -export function load(url, context, defaultLoad) { +export function load(url, context, nextLoad) { // For JavaScript to be loaded over the network, we need to fetch and // return it. if (url.startsWith('https://')) { @@ -983,6 +1054,7 @@ export function load(url, context, defaultLoad) { // This example assumes all network-provided JavaScript is ES module // code. format: 'module', + shortCircuit: true, source: data, })); }).on('error', (err) => reject(err)); @@ -990,7 +1062,7 @@ export function load(url, context, defaultLoad) { } // Let Node.js handle all other URLs. - return defaultLoad(url, context, defaultLoad); + return nextLoad(url, context); } ``` @@ -1008,7 +1080,7 @@ prints the current version of CoffeeScript per the module at the URL in #### Transpiler loader -Sources that are in formats Node.js doesn’t understand can be converted into +Sources that are in formats Node.js doesn't understand can be converted into JavaScript using the [`load` hook][load hook]. Before that hook gets called, however, a [`resolve` hook][resolve hook] needs to tell Node.js not to throw an error on unknown file types. @@ -1027,30 +1099,32 @@ import CoffeeScript from 'coffeescript'; const baseURL = pathToFileURL(`${cwd()}/`).href; -// CoffeeScript files end in .coffee, .litcoffee or .coffee.md. +// CoffeeScript files end in .coffee, .litcoffee, or .coffee.md. const extensionsRegex = /\.coffee$|\.litcoffee$|\.coffee\.md$/; -export async function resolve(specifier, context, defaultResolve) { - const { parentURL = baseURL } = context; - - // Node.js normally errors on unknown file extensions, so return a URL for - // specifiers ending in the CoffeeScript file extensions. +export function resolve(specifier, context, nextResolve) { if (extensionsRegex.test(specifier)) { + const { parentURL = baseURL } = context; + + // Node.js normally errors on unknown file extensions, so return a URL for + // specifiers ending in the CoffeeScript file extensions. return { + shortCircuit: true, url: new URL(specifier, parentURL).href }; } // Let Node.js handle all other specifiers. - return defaultResolve(specifier, context, defaultResolve); + return nextResolve(specifier, context); } -export async function load(url, context, defaultLoad) { - // Now that we patched resolve to let CoffeeScript URLs through, we need to - // tell Node.js what format such URLs should be interpreted as. Because - // CoffeeScript transpiles into JavaScript, it should be one of the two - // JavaScript formats: 'commonjs' or 'module'. +export async function load(url, context, nextLoad) { if (extensionsRegex.test(url)) { + // Now that we patched resolve to let CoffeeScript URLs through, we need to + // tell Node.js what format such URLs should be interpreted as. Because + // CoffeeScript transpiles into JavaScript, it should be one of the two + // JavaScript formats: 'commonjs' or 'module'. + // CoffeeScript files can be either CommonJS or ES modules, so we want any // CoffeeScript file to be treated by Node.js the same as a .js file at the // same location. To determine how Node.js would interpret an arbitrary .js @@ -1063,25 +1137,26 @@ export async function load(url, context, defaultLoad) { // loader. Avoiding the need for a separate CommonJS handler is a future // enhancement planned for ES module loaders. if (format === 'commonjs') { - return { format }; + return { + format, + shortCircuit: true, + }; } - const { source: rawSource } = await defaultLoad(url, { format }); + const { source: rawSource } = await nextLoad(url, { ...context, format }); // This hook converts CoffeeScript source code into JavaScript source code // for all imported CoffeeScript files. - const transformedSource = CoffeeScript.compile(rawSource.toString(), { - bare: true, - filename: url, - }); + const transformedSource = coffeeCompile(rawSource.toString(), url); return { format, + shortCircuit: true, source: transformedSource, }; } // Let Node.js handle all other URLs. - return defaultLoad(url, context, defaultLoad); + return nextLoad(url, context); } async function getPackageType(url) { @@ -1119,7 +1194,7 @@ async function getPackageType(url) { import { scream } from './scream.coffee' console.log scream 'hello, world' -import { version } from 'process' +import { version } from 'node:process' console.log "Brought to you by Node.js version #{version}" ``` @@ -1190,7 +1265,7 @@ The resolver can throw the following errors: > 2. If _specifier_ is a valid URL, then > 1. Set _resolved_ to the result of parsing and reserializing > _specifier_ as a URL. -> 3. Otherwise, if _specifier_ starts with _"/"_, _"./"_ or _"../"_, then +> 3. Otherwise, if _specifier_ starts with _"/"_, _"./"_, or _"../"_, then > 1. Set _resolved_ to the URL resolution of _specifier_ relative to > _parentURL_. > 4. Otherwise, if _specifier_ starts with _"#"_, then @@ -1371,14 +1446,14 @@ _internal_, _conditions_) > 2. Return **PACKAGE\_RESOLVE**(_target_ + _subpath_, > _packageURL_ + _"/"_). > 2. Otherwise, throw an _Invalid Package Target_ error. -> 3. If _target_ split on _"/"_ or _"\\"_ contains any _"."_, _".."_ or +> 3. If _target_ split on _"/"_ or _"\\"_ contains any _"."_, _".."_, or > _"node\_modules"_ segments after the first segment, case insensitive and > including percent encoded variants, throw an _Invalid Package Target_ > error. > 4. Let _resolvedTarget_ be the URL resolution of the concatenation of > _packageURL_ and _target_. > 5. Assert: _resolvedTarget_ is contained in _packageURL_. -> 6. If _subpath_ split on _"/"_ or _"\\"_ contains any _"."_, _".."_ or +> 6. If _subpath_ split on _"/"_ or _"\\"_ contains any _"."_, _".."_, or > _"node\_modules"_ segments, case insensitive and including percent > encoded variants, throw an _Invalid Module Specifier_ error. > 7. If _pattern_ is **true**, then @@ -1489,6 +1564,7 @@ success! [Determining module system]: packages.md#determining-module-system [Dynamic `import()`]: https://wiki.developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Dynamic_Imports [ES Module Integration Proposal for WebAssembly]: https://github.com/webassembly/esm-integration +[HTTPS and HTTP imports]: #https-and-http-imports [Import Assertions]: #import-assertions [Import Assertions proposal]: https://github.com/tc39/proposal-import-assertions [JSON modules]: #json-modules @@ -1519,9 +1595,9 @@ success! [`util.TextDecoder`]: util.md#class-utiltextdecoder [cjs-module-lexer]: https://github.com/nodejs/cjs-module-lexer/tree/1.2.2 [custom https loader]: #https-loader -[load hook]: #loadurl-context-defaultload +[load hook]: #loadurl-context-nextload [percent-encoded]: url.md#percent-encoding-in-urls -[resolve hook]: #resolvespecifier-context-defaultresolve +[resolve hook]: #resolvespecifier-context-nextresolve [special scheme]: https://url.spec.whatwg.org/#special-scheme [status code]: process.md#exit-codes [the official standard format]: https://tc39.github.io/ecma262/#sec-modules diff --git a/doc/api/events.md b/doc/api/events.md index 2fd0a4287285fc..d68f1759395610 100644 --- a/doc/api/events.md +++ b/doc/api/events.md @@ -30,8 +30,20 @@ The following example shows a simple `EventEmitter` instance with a single listener. The `eventEmitter.on()` method is used to register listeners, while the `eventEmitter.emit()` method is used to trigger the event. -```js -const EventEmitter = require('events'); +```mjs +import { EventEmitter } from 'node:events'; + +class MyEmitter extends EventEmitter {} + +const myEmitter = new MyEmitter(); +myEmitter.on('event', () => { + console.log('an event occurred!'); +}); +myEmitter.emit('event'); +``` + +```cjs +const EventEmitter = require('node:events'); class MyEmitter extends EventEmitter {} @@ -144,7 +156,7 @@ myEmitter.emit('error', new Error('whoops!')); ``` To guard against crashing the Node.js process the [`domain`][] module can be -used. (Note, however, that the `domain` module is deprecated.) +used. (Note, however, that the `node:domain` module is deprecated.) As a best practice, listeners should always be added for the `'error'` events. @@ -160,8 +172,19 @@ myEmitter.emit('error', new Error('whoops!')); It is possible to monitor `'error'` events without consuming the emitted error by installing a listener using the symbol `events.errorMonitor`. -```js -const { EventEmitter, errorMonitor } = require('events'); +```mjs +import { EventEmitter, errorMonitor } from 'node:events'; + +const myEmitter = new EventEmitter(); +myEmitter.on(errorMonitor, (err) => { + MyMonitoringTool.log(err); +}); +myEmitter.emit('error', new Error('whoops!')); +// Still throws and crashes Node.js +``` + +```cjs +const { EventEmitter, errorMonitor } = require('node:events'); const myEmitter = new EventEmitter(); myEmitter.on(errorMonitor, (err) => { @@ -208,8 +231,20 @@ ee2[Symbol.for('nodejs.rejection')] = console.log; Setting `events.captureRejections = true` will change the default for all new instances of `EventEmitter`. -```js -const events = require('events'); +```mjs +import { EventEmitter } from 'node:events'; + +EventEmitter.captureRejections = true; +const ee1 = new EventEmitter(); +ee1.on('something', async (value) => { + throw new Error('kaboom'); +}); + +ee1.on('error', console.log); +``` + +```cjs +const events = require('node:events'); events.captureRejections = true; const ee1 = new events.EventEmitter(); ee1.on('something', async (value) => { @@ -235,10 +270,14 @@ changes: description: Added captureRejections option. --> -The `EventEmitter` class is defined and exposed by the `events` module: +The `EventEmitter` class is defined and exposed by the `node:events` module: -```js -const EventEmitter = require('events'); +```mjs +import { EventEmitter } from 'node:events'; +``` + +```cjs +const EventEmitter = require('node:events'); ``` All `EventEmitter`s emit the event `'newListener'` when new listeners are @@ -337,8 +376,41 @@ to each. Returns `true` if the event had listeners, `false` otherwise. -```js -const EventEmitter = require('events'); +```mjs +import { EventEmitter } from 'node:events'; +const myEmitter = new EventEmitter(); + +// First listener +myEmitter.on('event', function firstListener() { + console.log('Helloooo! first listener'); +}); +// Second listener +myEmitter.on('event', function secondListener(arg1, arg2) { + console.log(`event with parameters ${arg1}, ${arg2} in second listener`); +}); +// Third listener +myEmitter.on('event', function thirdListener(...args) { + const parameters = args.join(', '); + console.log(`event with parameters ${parameters} in third listener`); +}); + +console.log(myEmitter.listeners('event')); + +myEmitter.emit('event', 1, 2, 3, 4, 5); + +// Prints: +// [ +// [Function: firstListener], +// [Function: secondListener], +// [Function: thirdListener] +// ] +// Helloooo! first listener +// event with parameters 1, 2 in second listener +// event with parameters 1, 2, 3, 4, 5 in third listener +``` + +```cjs +const EventEmitter = require('node:events'); const myEmitter = new EventEmitter(); // First listener @@ -381,8 +453,23 @@ added: v6.0.0 Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or `Symbol`s. -```js -const EventEmitter = require('events'); +```mjs +import { EventEmitter } from 'node:events'; + +const myEE = new EventEmitter(); +myEE.on('foo', () => {}); +myEE.on('bar', () => {}); + +const sym = Symbol('symbol'); +myEE.on(sym, () => {}); + +console.log(myEE.eventNames()); +// Prints: [ 'foo', 'bar', Symbol(symbol) ] +``` + +```cjs +const EventEmitter = require('node:events'); + const myEE = new EventEmitter(); myEE.on('foo', () => {}); myEE.on('bar', () => {}); @@ -757,8 +844,27 @@ promise rejection happens when emitting an event and It is possible to use [`events.captureRejectionSymbol`][rejectionsymbol] in place of `Symbol.for('nodejs.rejection')`. -```js -const { EventEmitter, captureRejectionSymbol } = require('events'); +```mjs +import { EventEmitter, captureRejectionSymbol } from 'node:events'; + +class MyClass extends EventEmitter { + constructor() { + super({ captureRejections: true }); + } + + [captureRejectionSymbol](err, event, ...args) { + console.log('rejection happened for', event, 'with', err, ...args); + this.destroy(err); + } + + destroy(err) { + // Tear the resource down here. + } +} +``` + +```cjs +const { EventEmitter, captureRejectionSymbol } = require('node:events'); class MyClass extends EventEmitter { constructor() { @@ -812,8 +918,8 @@ The [`--trace-warnings`][] command-line flag can be used to display the stack trace for such warnings. The emitted warning can be inspected with [`process.on('warning')`][] and will -have the additional `emitter`, `type` and `count` properties, referring to -the event emitter instance, the event’s name and the number of attached +have the additional `emitter`, `type`, and `count` properties, referring to +the event emitter instance, the event's name and the number of attached listeners, respectively. Its `name` property is set to `'MaxListenersExceededWarning'`. @@ -853,8 +959,25 @@ the emitter. For `EventTarget`s this is the only way to get the event listeners for the event target. This is useful for debugging and diagnostic purposes. -```js -const { getEventListeners, EventEmitter } = require('events'); +```mjs +import { getEventListeners, EventEmitter } from 'node:events'; + +{ + const ee = new EventEmitter(); + const listener = () => console.log('Events are fun'); + ee.on('foo', listener); + getEventListeners(ee, 'foo'); // [listener] +} +{ + const et = new EventTarget(); + const listener = () => console.log('Events are fun'); + et.addEventListener('foo', listener); + getEventListeners(et, 'foo'); // [listener] +} +``` + +```cjs +const { getEventListeners, EventEmitter } = require('node:events'); { const ee = new EventEmitter(); @@ -897,8 +1020,33 @@ This method is intentionally generic and works with the web platform [EventTarget][WHATWG-EventTarget] interface, which has no special `'error'` event semantics and does not listen to the `'error'` event. -```js -const { once, EventEmitter } = require('events'); +```mjs +import { once, EventEmitter } from 'node:events'; +import process from 'node:process'; + +const ee = new EventEmitter(); + +process.nextTick(() => { + ee.emit('myevent', 42); +}); + +const [value] = await once(ee, 'myevent'); +console.log(value); + +const err = new Error('kaboom'); +process.nextTick(() => { + ee.emit('error', err); +}); + +try { + await once(ee, 'myevent'); +} catch (err) { + console.log('error happened', err); +} +``` + +```cjs +const { once, EventEmitter } = require('node:events'); async function run() { const ee = new EventEmitter(); @@ -930,8 +1078,22 @@ is used to wait for another event. If `events.once()` is used to wait for the '`error'` event itself, then it is treated as any other kind of event without special handling: -```js -const { EventEmitter, once } = require('events'); +```mjs +import { EventEmitter, once } from 'node:events'; + +const ee = new EventEmitter(); + +once(ee, 'error') + .then(([err]) => console.log('ok', err.message)) + .catch((err) => console.log('error', err.message)); + +ee.emit('error', new Error('boom')); + +// Prints: ok boom +``` + +```cjs +const { EventEmitter, once } = require('node:events'); const ee = new EventEmitter(); @@ -946,8 +1108,32 @@ ee.emit('error', new Error('boom')); An {AbortSignal} can be used to cancel waiting for the event: -```js -const { EventEmitter, once } = require('events'); +```mjs +import { EventEmitter, once } from 'node:events'; + +const ee = new EventEmitter(); +const ac = new AbortController(); + +async function foo(emitter, event, signal) { + try { + await once(emitter, event, { signal }); + console.log('event emitted!'); + } catch (error) { + if (error.name === 'AbortError') { + console.error('Waiting for the event was canceled!'); + } else { + console.error('There was an error', error.message); + } + } +} + +foo(ee, 'foo', ac.signal); +ac.abort(); // Abort waiting for the event +ee.emit('foo'); // Prints: Waiting for the event was canceled! +``` + +```cjs +const { EventEmitter, once } = require('node:events'); const ee = new EventEmitter(); const ac = new AbortController(); @@ -979,8 +1165,32 @@ because the `process.nextTick()` queue is drained before the `Promise` microtask queue, and because `EventEmitter` emits all events synchronously, it is possible for `events.once()` to miss an event. -```js -const { EventEmitter, once } = require('events'); +```mjs +import { EventEmitter, once } from 'node:events'; +import process from 'node:process'; + +const myEE = new EventEmitter(); + +async function foo() { + await once(myEE, 'bar'); + console.log('bar'); + + // This Promise will never resolve because the 'foo' event will + // have already been emitted before the Promise is created. + await once(myEE, 'foo'); + console.log('foo'); +} + +process.nextTick(() => { + myEE.emit('bar'); + myEE.emit('foo'); +}); + +foo().then(() => console.log('done')); +``` + +```cjs +const { EventEmitter, once } = require('node:events'); const myEE = new EventEmitter(); @@ -1006,8 +1216,27 @@ To catch both events, create each of the Promises _before_ awaiting either of them, then it becomes possible to use `Promise.all()`, `Promise.race()`, or `Promise.allSettled()`: -```js -const { EventEmitter, once } = require('events'); +```mjs +import { EventEmitter, once } from 'node:events'; +import process from 'node:process'; + +const myEE = new EventEmitter(); + +async function foo() { + await Promise.all([once(myEE, 'bar'), once(myEE, 'foo')]); + console.log('foo', 'bar'); +} + +process.nextTick(() => { + myEE.emit('bar'); + myEE.emit('foo'); +}); + +foo().then(() => console.log('done')); +``` + +```cjs +const { EventEmitter, once } = require('node:events'); const myEE = new EventEmitter(); @@ -1075,8 +1304,19 @@ deprecated: v3.2.0 A class method that returns the number of listeners for the given `eventName` registered on the given `emitter`. -```js -const { EventEmitter, listenerCount } = require('events'); +```mjs +import { EventEmitter, listenerCount } from 'node:events'; + +const myEmitter = new EventEmitter(); +myEmitter.on('event', () => {}); +myEmitter.on('event', () => {}); +console.log(listenerCount(myEmitter, 'event')); +// Prints: 2 +``` + +```cjs +const { EventEmitter, listenerCount } = require('node:events'); + const myEmitter = new EventEmitter(); myEmitter.on('event', () => {}); myEmitter.on('event', () => {}); @@ -1098,8 +1338,29 @@ added: * `signal` {AbortSignal} Can be used to cancel awaiting events. * Returns: {AsyncIterator} that iterates `eventName` events emitted by the `emitter` -```js -const { on, EventEmitter } = require('events'); +```mjs +import { on, EventEmitter } from 'node:events'; +import process from 'node:process'; + +const ee = new EventEmitter(); + +// Emit later on +process.nextTick(() => { + ee.emit('foo', 'bar'); + ee.emit('foo', 42); +}); + +for await (const event of on(ee, 'foo')) { + // The execution of this inner block is synchronous and it + // processes one event at a time (even with await). Do not use + // if concurrent execution is required. + console.log(event); // prints ['bar'] [42] +} +// Unreachable here +``` + +```cjs +const { on, EventEmitter } = require('node:events'); (async () => { const ee = new EventEmitter(); @@ -1127,8 +1388,36 @@ composed of the emitted event arguments. An {AbortSignal} can be used to cancel waiting on events: -```js -const { on, EventEmitter } = require('events'); +```mjs +import { on, EventEmitter } from 'node:events'; +import process from 'node:process'; + +const ac = new AbortController(); + +(async () => { + const ee = new EventEmitter(); + + // Emit later on + process.nextTick(() => { + ee.emit('foo', 'bar'); + ee.emit('foo', 42); + }); + + for await (const event of on(ee, 'foo', { signal: ac.signal })) { + // The execution of this inner block is synchronous and it + // processes one event at a time (even with await). Do not use + // if concurrent execution is required. + console.log(event); // prints ['bar'] [42] + } + // Unreachable here +})(); + +process.nextTick(() => ac.abort()); +``` + +```cjs +const { on, EventEmitter } = require('node:events'); + const ac = new AbortController(); (async () => { @@ -1164,11 +1453,20 @@ added: v15.4.0 or {EventEmitter} instances. If none are specified, `n` is set as the default max for all newly created {EventTarget} and {EventEmitter} objects. -```js +```mjs +import { setMaxListeners, EventEmitter } from 'node:events'; + +const target = new EventTarget(); +const emitter = new EventEmitter(); + +setMaxListeners(5, target, emitter); +``` + +```cjs const { setMaxListeners, EventEmitter -} = require('events'); +} = require('node:events'); const target = new EventTarget(); const emitter = new EventEmitter(); @@ -1188,10 +1486,39 @@ Integrates `EventEmitter` with {AsyncResource} for `EventEmitter`s that require manual async tracking. Specifically, all events emitted by instances of `events.EventEmitterAsyncResource` will run within its [async context][]. -```js -const { EventEmitterAsyncResource } = require('events'); -const { notStrictEqual, strictEqual } = require('assert'); -const { executionAsyncId } = require('async_hooks'); +```mjs +import { EventEmitterAsyncResource } from 'node:events'; +import { notStrictEqual, strictEqual } from 'node:assert'; +import { executionAsyncId } from 'node:async_hooks'; + +// Async tracking tooling will identify this as 'Q'. +const ee1 = new EventEmitterAsyncResource({ name: 'Q' }); + +// 'foo' listeners will run in the EventEmitters async context. +ee1.on('foo', () => { + strictEqual(executionAsyncId(), ee1.asyncId); + strictEqual(triggerAsyncId(), ee1.triggerAsyncId); +}); + +const ee2 = new EventEmitter(); + +// 'foo' listeners on ordinary EventEmitters that do not track async +// context, however, run in the same async context as the emit(). +ee2.on('foo', () => { + notStrictEqual(executionAsyncId(), ee2.asyncId); + notStrictEqual(triggerAsyncId(), ee2.triggerAsyncId); +}); + +Promise.resolve().then(() => { + ee1.emit('foo'); + ee2.emit('foo'); +}); +``` + +```cjs +const { EventEmitterAsyncResource } = require('node:events'); +const { notStrictEqual, strictEqual } = require('node:assert'); +const { executionAsyncId } = require('node:async_hooks'); // Async tracking tooling will identify this as 'Q'. const ee1 = new EventEmitterAsyncResource({ name: 'Q' }); @@ -1587,6 +1914,10 @@ changes: * `type` {string} @@ -1599,6 +1930,8 @@ added: v14.5.0 **Default:** `false`. * `capture` {boolean} Not directly used by Node.js. Added for API completeness. **Default:** `false`. + * `signal` {AbortSignal} The listener will be removed when the given + AbortSignal object's `abort()` method is called. Adds a new handler for the `type` event. Any given `listener` is added only once per `type` and per `capture` option value. @@ -1633,7 +1966,7 @@ added: v14.5.0 --> * `event` {Event} -* Returns: {boolean} `true` if either event’s `cancelable` attribute value is +* Returns: {boolean} `true` if either event's `cancelable` attribute value is false or its `preventDefault()` method was not invoked, otherwise `false`. Dispatches the `event` to the list of handlers for `event.type`. diff --git a/doc/api/fs.md b/doc/api/fs.md index c32c624f48b4a7..167712f1643a8e 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -8,27 +8,27 @@ -The `fs` module enables interacting with the file system in a +The `node:fs` module enables interacting with the file system in a way modeled on standard POSIX functions. To use the promise-based APIs: ```mjs -import * as fs from 'fs/promises'; +import * as fs from 'node:fs/promises'; ``` ```cjs -const fs = require('fs/promises'); +const fs = require('node:fs/promises'); ``` To use the callback and sync APIs: ```mjs -import * as fs from 'fs'; +import * as fs from 'node:fs'; ``` ```cjs -const fs = require('fs'); +const fs = require('node:fs'); ``` All file system operations have synchronous, callback, and promise-based @@ -40,7 +40,7 @@ Promise-based operations return a promise that is fulfilled when the asynchronous operation is complete. ```mjs -import { unlink } from 'fs/promises'; +import { unlink } from 'node:fs/promises'; try { await unlink('/tmp/hello'); @@ -51,7 +51,7 @@ try { ``` ```cjs -const { unlink } = require('fs/promises'); +const { unlink } = require('node:fs/promises'); (async function(path) { try { @@ -72,7 +72,7 @@ reserved for an exception. If the operation is completed successfully, then the first argument is `null` or `undefined`. ```mjs -import { unlink } from 'fs'; +import { unlink } from 'node:fs'; unlink('/tmp/hello', (err) => { if (err) throw err; @@ -81,7 +81,7 @@ unlink('/tmp/hello', (err) => { ``` ```cjs -const { unlink } = require('fs'); +const { unlink } = require('node:fs'); unlink('/tmp/hello', (err) => { if (err) throw err; @@ -89,7 +89,7 @@ unlink('/tmp/hello', (err) => { }); ``` -The callback-based versions of the `fs` module APIs are preferable over +The callback-based versions of the `node:fs` module APIs are preferable over the use of the promise APIs when maximal performance (both in terms of execution time and memory allocation) is required. @@ -100,7 +100,7 @@ execution until the operation is complete. Exceptions are thrown immediately and can be handled using `try…catch`, or can be allowed to bubble up. ```mjs -import { unlinkSync } from 'fs'; +import { unlinkSync } from 'node:fs'; try { unlinkSync('/tmp/hello'); @@ -111,7 +111,7 @@ try { ``` ```cjs -const { unlinkSync } = require('fs'); +const { unlinkSync } = require('node:fs'); try { unlinkSync('/tmp/hello'); @@ -128,7 +128,7 @@ added: v10.0.0 changes: - version: v14.0.0 pr-url: https://github.com/nodejs/node/pull/31553 - description: Exposed as `require('fs/promises')`. + description: Exposed as `require('node:fs/promises')`. - version: - v11.14.0 - v10.17.0 @@ -136,7 +136,7 @@ changes: description: This API is no longer experimental. - version: v10.1.0 pr-url: https://github.com/nodejs/node/pull/20504 - description: The API is accessible via `require('fs').promises` only. + description: The API is accessible via `require('node:fs').promises` only. --> The `fs/promises` API provides asynchronous file system methods that return @@ -184,7 +184,7 @@ changes: - v15.14.0 - v14.18.0 pr-url: https://github.com/nodejs/node/pull/37490 - description: The `data` argument supports `AsyncIterable`, `Iterable` and `Stream`. + description: The `data` argument supports `AsyncIterable`, `Iterable`, and `Stream`. - version: v14.0.0 pr-url: https://github.com/nodejs/node/pull/31030 description: The `data` parameter won't coerce unsupported input to @@ -237,7 +237,7 @@ Closes the file handle after waiting for any pending operation on the handle to complete. ```mjs -import { open } from 'fs/promises'; +import { open } from 'node:fs/promises'; let filehandle; try { @@ -262,8 +262,8 @@ added: v16.11.0 * `highWaterMark` {integer} **Default:** `64 * 1024` * Returns: {fs.ReadStream} -Unlike the 16 kb default `highWaterMark` for a {stream.Readable}, the stream -returned by this method has a default `highWaterMark` of 64 kb. +Unlike the 16 KiB default `highWaterMark` for a {stream.Readable}, the stream +returned by this method has a default `highWaterMark` of 64 KiB. `options` can include `start` and `end` values to read a range of bytes from the file instead of the entire file. Both `start` and `end` are inclusive and @@ -282,7 +282,7 @@ By default, the stream will emit a `'close'` event after it has been destroyed. Set the `emitClose` option to `false` to change this behavior. ```mjs -import { open } from 'fs/promises'; +import { open } from 'node:fs/promises'; const fd = await open('/dev/input/event0'); // Create a stream from some character device. @@ -308,7 +308,7 @@ automatically. An example to read the last 10 bytes of a file which is 100 bytes long: ```mjs -import { open } from 'fs/promises'; +import { open } from 'node:fs/promises'; const fd = await open('sample.txt'); fd.createReadStream({ start: 90, end: 99 }); @@ -374,7 +374,7 @@ added: v10.0.0 file data read. * `offset` {integer} The location in the buffer at which to start filling. * `length` {integer} The number of bytes to read. -* `position` {integer} The location where to begin reading data from the +* `position` {integer|null} The location where to begin reading data from the file. If `null`, data will be read from the current file position, and the position will be updated. If `position` is an integer, the current file position will remain unchanged. @@ -399,6 +399,33 @@ added: * `options` {Object} * `buffer` {Buffer|TypedArray|DataView} A buffer that will be filled with the file data read. **Default:** `Buffer.alloc(16384)` + * `offset` {integer} The location in the buffer at which to start filling. + **Default:** `0` + * `length` {integer} The number of bytes to read. **Default:** + `buffer.byteLength - offset` + * `position` {integer|null} The location where to begin reading data from the + file. If `null`, data will be read from the current file position, and + the position will be updated. If `position` is an integer, the current + file position will remain unchanged. **Default:**: `null` +* Returns: {Promise} Fulfills upon success with an object with two properties: + * `bytesRead` {integer} The number of bytes read + * `buffer` {Buffer|TypedArray|DataView} A reference to the passed in `buffer` + argument. + +Reads data from the file and stores that in the given buffer. + +If the file is not modified concurrently, the end-of-file is reached when the +number of bytes read is zero. + +#### `filehandle.read(buffer[, options])` + + + +* `buffer` {Buffer|TypedArray|DataView} A buffer that will be filled with the + file data read. +* `options` {Object} * `offset` {integer} The location in the buffer at which to start filling. **Default:** `0` * `length` {integer} The number of bytes to read. **Default:** @@ -448,7 +475,7 @@ await file.close(); ```cjs const { open, -} = require('fs/promises'); +} = require('node:fs/promises'); (async () => { const file = await open('./some/file/to/read'); @@ -497,9 +524,9 @@ added: --> * `buffers` {Buffer\[]|TypedArray\[]|DataView\[]} -* `position` {integer} The offset from the beginning of the file where the data - should be read from. If `position` is not a `number`, the data will be read - from the current position. +* `position` {integer|null} The offset from the beginning of the file where + the data should be read from. If `position` is not a `number`, the data will + be read from the current position. **Default:** `null` * Returns: {Promise} Fulfills upon success an object containing two properties: * `bytesRead` {integer} the number of bytes read * `buffers` {Buffer\[]|TypedArray\[]|DataView\[]} property containing @@ -529,7 +556,7 @@ changes: added: v10.0.0 --> -* Returns: {Promise} Fufills with `undefined` upon success. +* Returns: {Promise} Fulfills with `undefined` upon success. Request that all data for the open file descriptor is flushed to the storage device. The specific implementation is operating system and device specific. @@ -552,7 +579,7 @@ retained in the file. The following example retains only the first four bytes of the file: ```mjs -import { open } from 'fs/promises'; +import { open } from 'node:fs/promises'; let filehandle = null; try { @@ -581,7 +608,7 @@ added: v10.0.0 Change the file system timestamps of the object referenced by the {FileHandle} then resolves the promise with no arguments upon success. -#### `filehandle.write(buffer[, offset[, length[, position]]])` +#### `filehandle.write(buffer, offset[, length[, position]])` + +* `buffer` {Buffer|TypedArray|DataView} +* `options` {Object} + * `offset` {integer} **Default:** `0` + * `length` {integer} **Default:** `buffer.byteLength - offset` + * `position` {integer} **Default:** `null` +* Returns: {Promise} + +Write `buffer` to the file. + +Similar to the above `filehandle.write` function, this version takes an +optional `options` object. If no `options` object is specified, it will +default with the above values. + #### `filehandle.write(string[, position[, encoding]])` * `string` {string} -* `position` {integer} The offset from the beginning of the file where the +* `position` {integer|null} The offset from the beginning of the file where the data from `string` should be written. If `position` is not a `number` the data will be written at the current position. See the POSIX pwrite(2) - documentation for more detail. + documentation for more detail. **Default:** `null` * `encoding` {string} The expected string encoding. **Default:** `'utf8'` * Returns: {Promise} @@ -663,7 +709,7 @@ changes: - v15.14.0 - v14.18.0 pr-url: https://github.com/nodejs/node/pull/37490 - description: The `data` argument supports `AsyncIterable`, `Iterable` and `Stream`. + description: The `data` argument supports `AsyncIterable`, `Iterable`, and `Stream`. - version: v14.0.0 pr-url: https://github.com/nodejs/node/pull/31030 description: The `data` parameter won't coerce unsupported input to @@ -677,7 +723,7 @@ changes: * Returns: {Promise} Asynchronously writes data to a file, replacing the file if it already exists. -`data` can be a string, a buffer, an {AsyncIterable} or {Iterable} object. +`data` can be a string, a buffer, an {AsyncIterable}, or an {Iterable} object. The promise is resolved with no arguments upon success. If `options` is a string, then it specifies the `encoding`. @@ -699,9 +745,9 @@ added: v12.9.0 --> * `buffers` {Buffer\[]|TypedArray\[]|DataView\[]} -* `position` {integer} The offset from the beginning of the file where the +* `position` {integer|null} The offset from the beginning of the file where the data from `buffers` should be written. If `position` is not a `number`, - the data will be written at the current position. + the data will be written at the current position. **Default:** `null` * Returns: {Promise} Write an array of {ArrayBufferView}s to the file. @@ -743,8 +789,7 @@ with an {Error} object. The following example checks if the file `/etc/passwd` can be read and written by the current process. ```mjs -import { access } from 'fs/promises'; -import { constants } from 'fs'; +import { access, constants } from 'node:fs/promises'; try { await access('/etc/passwd', constants.R_OK | constants.W_OK); @@ -846,8 +891,7 @@ error occurs after the destination file has been opened for writing, an attempt will be made to remove the destination. ```mjs -import { constants } from 'fs'; -import { copyFile } from 'fs/promises'; +import { copyFile, constants } from 'node:fs/promises'; try { await copyFile('source.txt', 'destination.txt'); @@ -870,7 +914,9 @@ try { @@ -2746,7 +2830,7 @@ descriptor. See [`fs.utimes()`][]. * `fd` {integer} * `options` {Object} * `buffer` {Buffer|TypedArray|DataView} **Default:** `Buffer.alloc(16384)` + * `offset` {integer} **Default:** `0` + * `length` {integer} **Default:** `buffer.byteLength - offset` + * `position` {integer|bigint|null} **Default:** `null` +* `callback` {Function} + * `err` {Error} + * `bytesRead` {integer} + * `buffer` {Buffer} + +Similar to the [`fs.read()`][] function, this version takes an optional +`options` object. If no `options` object is specified, it will default with the +above values. + +### `fs.read(fd, buffer[, options], callback)` + + + +* `fd` {integer} +* `buffer` {Buffer|TypedArray|DataView} The buffer that the data will be + written to. +* `options` {Object} * `offset` {integer} **Default:** `0` * `length` {integer} **Default:** `buffer.byteLength - offset` * `position` {integer|bigint} **Default:** `null` @@ -3248,7 +3356,7 @@ above values. @@ -4120,7 +4228,7 @@ The `atime` and `mtime` arguments follow these rules: * Values can be either numbers representing Unix epoch time in seconds, `Date`s, or a numeric string like `'123456789.0'`. -* If the value can not be converted to a number, or is `NaN`, `Infinity` or +* If the value can not be converted to a number, or is `NaN`, `Infinity`, or `-Infinity`, an `Error` will be thrown. ### `fs.watch(filename[, options][, listener])` @@ -4241,7 +4349,7 @@ guaranteed to be provided. Therefore, don't assume that `filename` argument is always provided in the callback, and have some fallback logic if it is `null`. ```mjs -import { watch } from 'fs'; +import { watch } from 'node:fs'; watch('somedir', (eventType, filename) => { console.log(`event type is: ${eventType}`); if (filename) { @@ -4289,7 +4397,7 @@ The `listener` gets two arguments the current stat object and the previous stat object: ```mjs -import { watchFile } from 'fs'; +import { watchFile } from 'node:fs'; watchFile('message.text', (curr, prev) => { console.log(`the current mtime is: ${curr.mtime}`); @@ -4323,12 +4431,12 @@ This happens when: * the file is deleted, followed by a restore * the file is renamed and then renamed a second time back to its original name -### `fs.write(fd, buffer[, offset[, length[, position]]], callback)` +### `fs.write(fd, buffer, offset[, length[, position]], callback)` + +* `fd` {integer} +* `buffer` {Buffer|TypedArray|DataView} +* `options` {Object} + * `offset` {integer} **Default:** `0` + * `length` {integer} **Default:** `buffer.byteLength - offset` + * `position` {integer} **Default:** `null` +* `callback` {Function} + * `err` {Error} + * `bytesWritten` {integer} + * `buffer` {Buffer|TypedArray|DataView} + +Write `buffer` to the file specified by `fd`. + +Similar to the above `fs.write` function, this version takes an +optional `options` object. If no `options` object is specified, it will +default with the above values. + ### `fs.write(fd, string[, position[, encoding]], callback)` @@ -5303,7 +5436,7 @@ Similar to [`fs.readFile()`][], when the path is a directory, the behavior of `fs.readFileSync()` is platform-specific. ```mjs -import { readFileSync } from 'fs'; +import { readFileSync } from 'node:fs'; // macOS, Linux, and Windows readFileSync(''); @@ -5338,7 +5471,7 @@ object with an `encoding` property specifying the character encoding to use for the link path returned. If the `encoding` is set to `'buffer'`, the link path returned will be passed as a {Buffer} object. -### `fs.readSync(fd, buffer, offset, length, position)` +### `fs.readSync(fd, buffer, offset, length[, position])` * `fd` {integer} @@ -5384,7 +5517,7 @@ changes: * `options` {Object} * `offset` {integer} **Default:** `0` * `length` {integer} **Default:** `buffer.byteLength - offset` - * `position` {integer|bigint} **Default:** `null` + * `position` {integer|bigint|null} **Default:** `null` * Returns: {number} Returns the number of `bytesRead`. @@ -5405,7 +5538,7 @@ added: * `fd` {integer} * `buffers` {ArrayBufferView\[]} -* `position` {integer} +* `position` {integer|null} **Default:** `null` * Returns: {number} The number of bytes read. For detailed information, see the documentation of the asynchronous version of @@ -5629,7 +5762,7 @@ changes: * `target` {string|Buffer|URL} * `path` {string|Buffer|URL} -* `type` {string} +* `type` {string|null} **Default:** `null` Returns `undefined`. @@ -5681,7 +5814,7 @@ changes: protocol. - version: v4.1.0 pr-url: https://github.com/nodejs/node/pull/2387 - description: Numeric strings, `NaN` and `Infinity` are now allowed + description: Numeric strings, `NaN`, and `Infinity` are now allowed time specifiers. --> @@ -5738,7 +5871,7 @@ for more details. For detailed information, see the documentation of the asynchronous version of this API: [`fs.writeFile()`][]. -### `fs.writeSync(fd, buffer[, offset[, length[, position]]])` +### `fs.writeSync(fd, buffer, offset[, length[, position]])` + +* `fd` {integer} +* `buffer` {Buffer|TypedArray|DataView} +* `options` {Object} + * `offset` {integer} **Default:** `0` + * `length` {integer} **Default:** `buffer.byteLength - offset` + * `position` {integer} **Default:** `null` * Returns: {number} The number of bytes written. For detailed information, see the documentation of the asynchronous version of @@ -5785,8 +5935,8 @@ changes: * `fd` {integer} * `string` {string} -* `position` {integer} -* `encoding` {string} +* `position` {integer|null} **Default:** `null` +* `encoding` {string} **Default:** `'utf8'` * Returns: {number} The number of bytes written. For detailed information, see the documentation of the asynchronous version of @@ -5800,7 +5950,7 @@ added: v12.9.0 * `fd` {integer} * `buffers` {ArrayBufferView\[]} -* `position` {integer} +* `position` {integer|null} **Default:** `null` * Returns: {number} The number of bytes written. For detailed information, see the documentation of the asynchronous version of @@ -5823,7 +5973,7 @@ Created by [`fs.opendir()`][], [`fs.opendirSync()`][], or [`fsPromises.opendir()`][]. ```mjs -import { opendir } from 'fs/promises'; +import { opendir } from 'node:fs/promises'; try { const dir = await opendir('./'); @@ -5856,7 +6006,7 @@ closed. -For most `fs` module functions, the `path` or `filename` argument may be passed -as a {URL} object using the `file:` protocol. +For most `node:fs` module functions, the `path` or `filename` argument may be +passed as a {URL} object using the `file:` protocol. ```mjs -import { readFileSync } from 'fs'; +import { readFileSync } from 'node:fs'; readFileSync(new URL('file:///tmp/hello')); ``` @@ -7194,7 +7360,7 @@ On Windows, `file:` {URL}s with a host name convert to UNC paths, while `file:` with no host name and no drive letter will result in an error: ```mjs -import { readFileSync } from 'fs'; +import { readFileSync } from 'node:fs'; // On Windows : // - WHATWG file URLs with hostname convert to UNC path @@ -7218,7 +7384,7 @@ On all other platforms, `file:` {URL}s with a host name are unsupported and will result in an error: ```mjs -import { readFileSync } from 'fs'; +import { readFileSync } from 'node:fs'; // On other platforms: // - WHATWG file URLs with hostname are unsupported @@ -7235,7 +7401,7 @@ A `file:` {URL} having encoded slash characters will result in an error on all platforms: ```mjs -import { readFileSync } from 'fs'; +import { readFileSync } from 'node:fs'; // On Windows readFileSync(new URL('file:///C:/p/a/t/h/%2F')); @@ -7253,7 +7419,7 @@ readFileSync(new URL('file:///p/a/t/h/%2f')); On Windows, `file:` {URL}s having encoded backslash will result in an error: ```mjs -import { readFileSync } from 'fs'; +import { readFileSync } from 'node:fs'; // On Windows readFileSync(new URL('file:///C:/path/%5C')); @@ -7273,8 +7439,8 @@ be relative or absolute: Example using an absolute path on POSIX: ```mjs -import { open } from 'fs/promises'; -import { Buffer } from 'buffer'; +import { open } from 'node:fs/promises'; +import { Buffer } from 'node:buffer'; let fd; try { @@ -7314,7 +7480,7 @@ are completed. Failure to do so will result in a memory leak that will eventually cause an application to crash. ```mjs -import { open, close, fstat } from 'fs'; +import { open, close, fstat } from 'node:fs'; function closeFd(fd) { close(fd, (err) => { @@ -7348,7 +7514,7 @@ that resources are not leaked. However, it is still required that they are closed when operations are completed: ```mjs -import { open } from 'fs/promises'; +import { open } from 'node:fs/promises'; let file; try { @@ -7450,7 +7616,7 @@ fs.open('', 'a+', (err, fd) => { ``` On Windows, opening an existing hidden file using the `'w'` flag (either -through `fs.open()` or `fs.writeFile()` or `fsPromises.open()`) will fail with +through `fs.open()`, `fs.writeFile()`, or `fsPromises.open()`) will fail with `EPERM`. Existing hidden files can be opened for writing with the `'r+'` flag. A call to `fs.ftruncate()` or `filehandle.truncate()` can be used to reset @@ -7458,6 +7624,7 @@ the file contents. [#25741]: https://github.com/nodejs/node/issues/25741 [Common System Errors]: errors.md#common-system-errors +[FS constants]: #fs-constants [File access constants]: #file-access-constants [MDN-Date]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date [MDN-Number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type diff --git a/doc/api/globals.md b/doc/api/globals.md index 7274ff3d801ad1..82e91167b2fb34 100644 --- a/doc/api/globals.md +++ b/doc/api/globals.md @@ -60,7 +60,7 @@ changes: description: Added the new optional reason argument. --> -* `reason` {any} An optional reason, retrievable on the `AbortSignal`s +* `reason` {any} An optional reason, retrievable on the `AbortSignal`'s `reason` property. Triggers the abort signal, causing the `abortController.signal` to emit @@ -210,7 +210,7 @@ If `abortSignal.aborted` is `true`, throws `abortSignal.reason`. ## Class: `Blob` @@ -232,7 +232,7 @@ Used to handle binary data. See the [buffer section][]. ## Class: `ByteLengthQueuingStrategy` > Stability: 1 - Experimental. @@ -260,7 +260,7 @@ Global alias for [`buffer.atob()`][]. ## `BroadcastChannel` See {BroadcastChannel}. @@ -308,7 +308,7 @@ added: v0.0.1 ## Class: `CompressionStream` > Stability: 1 - Experimental. @@ -330,7 +330,7 @@ Used to print to stdout and stderr. See the [`console`][] section. ## Class: `CountQueuingStrategy` > Stability: 1 - Experimental. @@ -340,7 +340,9 @@ A browser-compatible implementation of [`CountQueuingStrategy`][]. ## `Crypto` > Stability: 1 - Experimental. Enable this API with the @@ -348,12 +350,14 @@ added: v17.6.0 A browser-compatible implementation of {Crypto}. This global is available only if the Node.js binary was compiled with including support for the -`crypto` module. +`node:crypto` module. ## `crypto` > Stability: 1 - Experimental. Enable this API with the @@ -364,7 +368,9 @@ A browser-compatible implementation of the [Web Crypto API][]. ## `CryptoKey` > Stability: 1 - Experimental. Enable this API with the @@ -372,12 +378,12 @@ added: v17.6.0 A browser-compatible implementation of {CryptoKey}. This global is available only if the Node.js binary was compiled with including support for the -`crypto` module. +`node:crypto` module. ## Class: `DecompressionStream` > Stability: 1 - Experimental. @@ -421,7 +427,9 @@ This variable may appear to be global but is not. See [`exports`][]. ## `fetch` > Stability: 1 - Experimental. Disable this API with the [`--no-experimental-fetch`][] @@ -432,7 +440,9 @@ A browser-compatible implementation of the [`fetch()`][] function. ## Class `FormData` > Stability: 1 - Experimental. Disable this API with the [`--no-experimental-fetch`][] @@ -458,7 +468,9 @@ Node.js this is different. The top-level scope is not the global scope; ## Class `Headers` > Stability: 1 - Experimental. Disable this API with the [`--no-experimental-fetch`][] @@ -559,7 +571,7 @@ DataHandler.prototype.load = async function load(key) { ## Class: `ReadableByteStreamController` > Stability: 1 - Experimental. @@ -569,7 +581,7 @@ A browser-compatible implementation of [`ReadableByteStreamController`][]. ## Class: `ReadableStream` > Stability: 1 - Experimental. @@ -579,7 +591,7 @@ A browser-compatible implementation of [`ReadableStream`][]. ## Class: `ReadableStreamBYOBReader` > Stability: 1 - Experimental. @@ -589,7 +601,7 @@ A browser-compatible implementation of [`ReadableStreamBYOBReader`][]. ## Class: `ReadableStreamBYOBRequest` > Stability: 1 - Experimental. @@ -599,7 +611,7 @@ A browser-compatible implementation of [`ReadableStreamBYOBRequest`][]. ## Class: `ReadableStreamDefaultController` > Stability: 1 - Experimental. @@ -609,7 +621,7 @@ A browser-compatible implementation of [`ReadableStreamDefaultController`][]. ## Class: `ReadableStreamDefaultReader` > Stability: 1 - Experimental. @@ -623,7 +635,9 @@ This variable may appear to be global but is not. See [`require()`][]. ## `Response` > Stability: 1 - Experimental. Disable this API with the [`--no-experimental-fetch`][] @@ -634,7 +648,9 @@ A browser-compatible implementation of {Response}. ## `Request` > Stability: 1 - Experimental. Disable this API with the [`--no-experimental-fetch`][] @@ -685,7 +701,9 @@ The WHATWG [`structuredClone`][] method. ## `SubtleCrypto` > Stability: 1 - Experimental. Enable this API with the @@ -693,7 +711,7 @@ added: v17.6.0 A browser-compatible implementation of {SubtleCrypto}. This global is available only if the Node.js binary was compiled with including support for the -`crypto` module. +`node:crypto` module. ## `DOMException` @@ -718,7 +736,7 @@ The WHATWG `TextDecoder` class. See the [`TextDecoder`][] section. ## Class: `TextDecoderStream` > Stability: 1 - Experimental. @@ -738,7 +756,7 @@ The WHATWG `TextEncoder` class. See the [`TextEncoder`][] section. ## Class: `TextEncoderStream` > Stability: 1 - Experimental. @@ -748,7 +766,7 @@ A browser-compatible implementation of [`TextEncoderStream`][]. ## Class: `TransformStream` > Stability: 1 - Experimental. @@ -758,7 +776,7 @@ A browser-compatible implementation of [`TransformStream`][]. ## Class: `TransformStreamDefaultController` > Stability: 1 - Experimental. @@ -802,7 +820,7 @@ The object that acts as the namespace for all W3C ## Class: `WritableStream` > Stability: 1 - Experimental. @@ -812,7 +830,7 @@ A browser-compatible implementation of [`WritableStream`][]. ## Class: `WritableStreamDefaultController` > Stability: 1 - Experimental. @@ -822,7 +840,7 @@ A browser-compatible implementation of [`WritableStreamDefaultController`][]. ## Class: `WritableStreamDefaultWriter` > Stability: 1 - Experimental. diff --git a/doc/api/http.md b/doc/api/http.md index 708c6113bbbc4b..88f2378421998e 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -6,7 +6,7 @@ -To use the HTTP server and client one must `require('http')`. +To use the HTTP server and client one must `require('node:http')`. The HTTP interfaces in Node.js are designed to support many features of the protocol which have been traditionally difficult to use. @@ -188,7 +188,7 @@ of these values set to their respective defaults. To configure any of them, a custom [`http.Agent`][] instance must be created. ```js -const http = require('http'); +const http = require('node:http'); const keepAliveAgent = new http.Agent({ keepAlive: true }); options.agent = keepAliveAgent; http.request(options, onResponseCallback); @@ -301,7 +301,9 @@ removed from the array on `'timeout'`. @@ -438,6 +440,15 @@ deprecated: Emitted when the request has been aborted by the client. This event is only emitted on the first call to `abort()`. +### Event: `'close'` + + + +Indicates that the request is completed, or its underlying connection was +terminated prematurely (before the response completion). + ### Event: `'connect'` + +Emitted when the request has been sent. More specifically, this event is emitted +when the last segment of the response headers and body have been handed off to +the operating system for transmission over the network. It does not imply that +the server has received anything yet. + ### Event: `'information'` + +See [`writable.cork()`][]. + ### `request.end([data[, encoding]][, callback])` + +* Returns: {string\[]} + +Returns an array containing the unique names of the current outgoing headers. +All header names are lowercase. + +```js +request.setHeader('Foo', 'bar'); +request.setHeader('Cookie', ['foo=bar', 'bar=baz']); + +const headerNames = request.getHeaderNames(); +// headerNames === ['foo', 'Cookie'] +``` + +### `request.getHeaders()` + + + +* Returns: {Object} + +Returns a shallow copy of the current outgoing headers. Since a shallow copy +is used, array values may be mutated without additional calls to various +header-related http module methods. The keys of the returned object are the +header names and the values are the respective header values. All header names +are lowercase. + +The object returned by the `response.getHeaders()` method _does not_ +prototypically inherit from the JavaScript `Object`. This means that typical +`Object` methods such as `obj.toString()`, `obj.hasOwnProperty()`, and others +are not defined and _will not work_. + +```js +request.setHeader('Foo', 'bar'); +request.setHeader('Cookie', ['foo=bar', 'bar=baz']); + +const headers = response.getHeaders(); +// headers === { foo: 'bar', 'cookie': ['foo=bar', 'bar=baz'] } +``` + ### `request.getRawHeaderNames()` + +* `name` {string} +* Returns: {boolean} + +Returns `true` if the header identified by `name` is currently set in the +outgoing headers. The header name matching is case-insensitive. + +```js +const hasContentType = request.hasHeader('content-type'); +``` + ### `request.maxHeadersCount` * {number} **Default:** `2000` @@ -918,7 +1012,7 @@ might be reused. But if server closes connection at unfortunate time, client may run into a 'ECONNRESET' error. ```js -const http = require('http'); +const http = require('node:http'); // Server has a 5 seconds keep-alive timeout by default http @@ -942,7 +1036,7 @@ By marking a request whether it reused socket or not, we can do automatic error retry base on it. ```js -const http = require('http'); +const http = require('node:http'); const agent = new http.Agent({ keepAlive: true }); function retriableRequest() { @@ -1052,7 +1146,7 @@ this property. In particular, the socket will not emit `'readable'` events because of how the protocol parser attaches to the socket. ```js -const http = require('http'); +const http = require('node:http'); const options = { host: 'www.google.com', }; @@ -1070,6 +1164,16 @@ This property is guaranteed to be an instance of the {net.Socket} class, a subclass of {stream.Duplex}, unless the user specified a socket type other than {net.Socket}. +### `request.uncork()` + + + +See [`writable.uncork()`][]. + ### `request.writableEnded` + +Closes all connections connected to this server. + +### `server.closeIdleConnections()` + + + +Closes all connections connected to this server which are not sending a request +or waiting for a response. + ### `server.headersTimeout` -* {number} **Default:** `0` +* {number} **Default:** `300000` Sets the timeout value in milliseconds for receiving the entire request from the client. @@ -1505,7 +1628,7 @@ affects new connections to the server, not any existing connections. added: v0.1.17 --> -* Extends: {Stream} +* Extends: {http.OutgoingMessage} This object is created internally by an HTTP server, not by the user. It is passed as the second parameter to the [`'request'`][] event. @@ -1853,7 +1976,7 @@ because of how the protocol parser attaches to the socket. After `response.end()`, the property is nulled. ```js -const http = require('http'); +const http = require('node:http'); const server = http.createServer((req, res) => { const ip = res.socket.remoteAddress; const port = res.socket.remotePort; @@ -1954,7 +2077,7 @@ it will switch to implicit header mode and flush the implicit headers. This sends a chunk of the response body. This method may be called multiple times to provide successive parts of the body. -In the `http` module, the response body is omitted when the +In the `node:http` module, the response body is omitted when the request is a HEAD request. Similarly, the `204` and `304` responses _must not_ include a message body. @@ -2099,7 +2222,7 @@ changes: An `IncomingMessage` object is created by [`http.Server`][] or [`http.ClientRequest`][] and passed as the first argument to the [`'request'`][] and [`'response'`][] event respectively. It may be used to access response -status, headers and data. +status, headers, and data. Different from its `socket` value which is a subclass of {stream.Duplex}, the `IncomingMessage` itself extends {stream.Readable} and is created separately to @@ -2243,8 +2366,28 @@ header name: `last-modified`, `location`, `max-forwards`, `proxy-authorization`, `referer`, `retry-after`, `server`, or `user-agent` are discarded. * `set-cookie` is always an array. Duplicates are added to the array. -* For duplicate `cookie` headers, the values are joined together with '; '. -* For all other headers, the values are joined together with ', '. +* For duplicate `cookie` headers, the values are joined together with `; `. +* For all other headers, the values are joined together with `, `. + +### `message.headersDistinct` + + + +* {Object} + +Similar to [`message.headers`][], but there is no join logic and the values are +always arrays of strings, even for headers received just once. + +```js +// Prints something like: +// +// { 'user-agent': ['curl/7.22.0'], +// host: ['127.0.0.1:8000'], +// accept: ['*/*'] } +console.log(request.headersDistinct); +``` ### `message.httpVersion` @@ -2378,6 +2521,18 @@ added: v0.3.0 The request/response trailers object. Only populated at the `'end'` event. +### `message.trailersDistinct` + + + +* {Object} + +Similar to [`message.trailers`][], but there is no join logic and the values are +always arrays of strings, even for headers received just once. +Only populated at the `'end'` event. + ### `message.url` -Emitted when `outgoingMessage.end` was called. +Emitted after `outgoingMessage.end()` is called. When the event is emitted, all data has been processed but not necessarily completely flushed. @@ -2472,11 +2627,11 @@ added: v0.3.0 Adds HTTP trailers (headers but at the end of the message) to the message. -Trailers are **only** be emitted if the message is chunked encoded. If not, -the trailer will be silently discarded. +Trailers will **only** be emitted if the message is chunked encoded. If not, +the trailers will be silently discarded. -HTTP requires the `Trailer` header to be sent to emit trailers, -with a list of header fields in its value, e.g. +HTTP requires the `Trailer` header to be sent to emit trailers, +with a list of header field names in its value, e.g. ```js message.writeHead(200, { 'Content-Type': 'text/plain', @@ -2489,6 +2644,28 @@ message.end(); Attempting to set a header field name or value that contains invalid characters will result in a `TypeError` being thrown. +### `outgoingMessage.appendHeader(name, value)` + + + +* `name` {string} Header name +* `value` {string|string\[]} Header value +* Returns: {this} + +Append a single header value for the header object. + +If the value is an array, this is equivalent of calling this method multiple +times. + +If there were no previous value for the header, this is equivalent of calling +[`outgoingMessage.setHeader(name, value)`][]. + +Depending of the value of `options.uniqueHeaders` when the client request or the +server were created, this will end up in the header being sent multiple times or +a single time with values joined using `; `. + ### `outgoingMessage.connection` See [`writable.cork()`][]. @@ -2538,14 +2717,14 @@ changes: Finishes the outgoing message. If any parts of the body are unsent, it will flush them to the underlying system. If the message is chunked, it will -send the terminating chunk `0\r\n\r\n`, and send the trailer (if any). +send the terminating chunk `0\r\n\r\n`, and send the trailers (if any). -If `chunk` is specified, it is equivalent to call +If `chunk` is specified, it is equivalent to calling `outgoingMessage.write(chunk, encoding)`, followed by `outgoingMessage.end(callback)`. -If `callback` is provided, it will be called when the message is finished. -(equivalent to the callback to event `finish`) +If `callback` is provided, it will be called when the message is finished +(equivalent to a listener of the `'finish'` event). ### `outgoingMessage.flushHeaders()` @@ -2553,7 +2732,7 @@ If `callback` is provided, it will be called when the message is finished. added: v1.6.0 --> -Compulsorily flushes the message headers +Flushes the message headers. For efficiency reason, Node.js normally buffers the message headers until `outgoingMessage.end()` is called or the first chunk of message data @@ -2562,7 +2741,7 @@ packet. It is usually desired (it saves a TCP round-trip), but not when the first data is not sent until possibly much later. `outgoingMessage.flushHeaders()` -bypasses the optimization and kickstarts the request. +bypasses the optimization and kickstarts the message. ### `outgoingMessage.getHeader(name)` @@ -2573,24 +2752,24 @@ added: v0.4.0 * `name` {string} Name of header * Returns {string | undefined} -Gets the value of HTTP header with the given name. If such a name doesn't -exist in message, it will be `undefined`. +Gets the value of the HTTP header with the given name. If that header is not +set, the returned value will be `undefined`. ### `outgoingMessage.getHeaderNames()` * Returns {string\[]} -Returns an array of names of headers of the outgoing outgoingMessage. All -names are lowercase. +Returns an array containing the unique names of the current outgoing headers. +All names are lowercase. ### `outgoingMessage.getHeaders()` * Returns: {Object} @@ -2602,8 +2781,8 @@ object are the header names and the values are the respective header values. All header names are lowercase. The object returned by the `outgoingMessage.getHeaders()` method does -not prototypically inherit from the JavaScript Object. This means that -typical Object methods such as `obj.toString()`, `obj.hasOwnProperty()`, +not prototypically inherit from the JavaScript `Object`. This means that +typical `Object` methods such as `obj.toString()`, `obj.hasOwnProperty()`, and others are not defined and will not work. ```js @@ -2617,7 +2796,7 @@ const headers = outgoingMessage.getHeaders(); ### `outgoingMessage.hasHeader(name)` * `name` {string} @@ -2646,14 +2825,11 @@ Read-only. `true` if the headers were sent, otherwise `false`. added: v9.0.0 --> -Overrides the pipe method of legacy `Stream` which is the parent class of -`http.outgoingMessage`. - -Since `OutgoingMessage` should be a write-only stream, -call this function will throw an `Error`. Thus, it disabled the pipe method -it inherits from `Stream`. +Overrides the `stream.pipe()` method inherited from the legacy `Stream` class +which is the parent class of `http.OutgoingMessage`. -The User should not call this function directly. +Calling this method will throw an `Error` because `outgoingMessage` is a +write-only stream. ### `outgoingMessage.removeHeader(name)` @@ -2676,10 +2852,12 @@ added: v0.4.0 --> * `name` {string} Header name -* `value` {string} Header value +* `value` {any} Header value * Returns: {this} -Sets a single header value for the header object. +Sets a single header value. If the header already exists in the to-be-sent +headers, its value will be replaced. Use an array of strings to send multiple +headers with the same name. ### `outgoingMessage.setTimeout(msesc[, callback])` @@ -2711,7 +2889,9 @@ After calling `outgoingMessage.end()`, this property will be nulled. ### `outgoingMessage.uncork()` See [`writable.uncork()`][] @@ -2719,71 +2899,67 @@ See [`writable.uncork()`][] ### `outgoingMessage.writableCorked` * {number} -This `outgoingMessage.writableCorked` will return the time how many -`outgoingMessage.cork()` have been called. +The number of times `outgoingMessage.cork()` has been called. ### `outgoingMessage.writableEnded` * {boolean} -Readonly, `true` if `outgoingMessage.end()` has been called. Noted that -this property does not reflect whether the data has been flush. For that -purpose, use `message.writableFinished` instead. +Is `true` if `outgoingMessage.end()` has been called. This property does +not indicate whether the data has been flushed. For that purpose, use +`message.writableFinished` instead. ### `outgoingMessage.writableFinished` * {boolean} -Readonly. `true` if all data has been flushed to the underlying system. +Is `true` if all data has been flushed to the underlying system. ### `outgoingMessage.writableHighWaterMark` * {number} -This `outgoingMessage.writableHighWaterMark` will be the `highWaterMark` of -underlying socket if socket exists. Else, it would be the default -`highWaterMark`. - -`highWaterMark` is the maximum amount of data that can be potentially -buffered by the socket. +The `highWaterMark` of the underlying socket if assigned. Otherwise, the default +buffer level when [`writable.write()`][] starts returning false (`16384`). ### `outgoingMessage.writableLength` * {number} -Readonly, This `outgoingMessage.writableLength` contains the number of -bytes (or objects) in the buffer ready to send. +The number of buffered bytes. ### `outgoingMessage.writableObjectMode` * {boolean} -Readonly, always returns `false`. +Always `false`. ### `outgoingMessage.write(chunk[, encoding][, callback])` @@ -2791,7 +2967,7 @@ Readonly, always returns `false`. added: v0.1.29 changes: - version: v0.11.6 - description: add `callback` argument. + description: The `callback` argument was added. --> * `chunk` {string | Buffer} @@ -2799,35 +2975,17 @@ changes: * `callback` {Function} * Returns {boolean} -If this method is called and the header is not sent, it will call -`this._implicitHeader` to flush implicit header. -If the message should not have a body (indicated by `this._hasBody`), -the call is ignored and `chunk` will not be sent. It could be useful -when handling a particular message which must not include a body. -e.g. response to `HEAD` request, `204` and `304` response. - -`chunk` can be a string or a buffer. When `chunk` is a string, the -`encoding` parameter specifies how to encode `chunk` into a byte stream. -`callback` will be called when the `chunk` is flushed. - -If the message is transferred in chucked encoding -(indicated by `this.chunkedEncoding`), `chunk` will be flushed as -one chunk among a stream of chunks. Otherwise, it will be flushed as the -body of message. +Sends a chunk of the body. This method can be called multiple times. -This method handles the raw body of the HTTP message and has nothing to do -with higher-level multi-part body encodings that may be used. +The `encoding` argument is only relevant when `chunk` is a string. Defaults to +`'utf8'`. -If it is the first call to this method of a message, it will send the -buffered header first, then flush the `chunk` as described above. - -The second and successive calls to this method will assume the data -will be streamed and send the new data separately. It means that the response -is buffered up to the first chunk of the body. +The `callback` argument is optional and will be called when this chunk of data +is flushed. Returns `true` if the entire data was flushed successfully to the kernel buffer. Returns `false` if all or part of the data was queued in the user -memory. Event `drain` will be emitted when the buffer is free again. +memory. The `'drain'` event will be emitted when the buffer is free again. ## `http.METHODS` @@ -2856,10 +3014,16 @@ Found'`. -The `http2` module provides an implementation of the [HTTP/2][] protocol. It -can be accessed using: +The `node:http2` module provides an implementation of the [HTTP/2][] protocol. +It can be accessed using: ```js -const http2 = require('http2'); +const http2 = require('node:http2'); ``` ## Determining if crypto support is unavailable It is possible for Node.js to be built without including support for the -`crypto` module. In such cases, attempting to `import` from `http2` or -calling `require('http2')` will result in an error being thrown. +`node:crypto` module. In such cases, attempting to `import` from `node:http2` or +calling `require('node:http2')` will result in an error being thrown. When using CommonJS, the error thrown can be caught using try/catch: ```cjs let http2; try { - http2 = require('http2'); + http2 = require('node:http2'); } catch (err) { console.log('http2 support is disabled!'); } @@ -59,7 +59,7 @@ of Node.js where crypto support is not enabled, consider using the ```mjs let http2; try { - http2 = await import('http2'); + http2 = await import('node:http2'); } catch (err) { console.log('http2 support is disabled!'); } @@ -85,8 +85,8 @@ Since there are no browsers known that support with browser clients. ```js -const http2 = require('http2'); -const fs = require('fs'); +const http2 = require('node:http2'); +const fs = require('node:fs'); const server = http2.createSecureServer({ key: fs.readFileSync('localhost-privkey.pem'), @@ -118,8 +118,8 @@ openssl req -x509 -newkey rsa:2048 -nodes -sha256 -subj '/CN=localhost' \ The following illustrates an HTTP/2 client: ```js -const http2 = require('http2'); -const fs = require('fs'); +const http2 = require('node:http2'); +const fs = require('node:fs'); const client = http2.connect('https://localhost:8443', { ca: fs.readFileSync('localhost-cert.pem') }); @@ -320,7 +320,7 @@ added: v8.4.0 The `'stream'` event is emitted when a new `Http2Stream` is created. ```js -const http2 = require('http2'); +const http2 = require('node:http2'); session.on('stream', (stream, headers, flags) => { const method = headers[':method']; const path = headers[':path']; @@ -340,7 +340,7 @@ and would instead register a handler for the `'stream'` event emitted by the `http2.createSecureServer()`, respectively, as in the example below: ```js -const http2 = require('http2'); +const http2 = require('node:http2'); // Create an unencrypted HTTP/2 server const server = http2.createServer(); @@ -532,7 +532,7 @@ frames have been acknowledged. +* `headers` {HTTP/2 Headers Object} +* `flags` {number} + The `'headers'` event is emitted when an additional block of headers is received for a stream, such as when a block of `1xx` informational headers is received. The listener callback is passed the [HTTP/2 Headers Object][] and flags @@ -1496,6 +1499,9 @@ stream.on('headers', (headers, flags) => { added: v8.4.0 --> +* `headers` {HTTP/2 Headers Object} +* `flags` {number} + The `'push'` event is emitted when response headers for a Server Push stream are received. The listener callback is passed the [HTTP/2 Headers Object][] and flags associated with the headers. @@ -1512,13 +1518,16 @@ stream.on('push', (headers, flags) => { added: v8.4.0 --> +* `headers` {HTTP/2 Headers Object} +* `flags` {number} + The `'response'` event is emitted when a response `HEADERS` frame has been received for this stream from the connected HTTP/2 server. The listener is invoked with two arguments: an `Object` containing the received [HTTP/2 Headers Object][], and flags associated with the headers. ```js -const http2 = require('http2'); +const http2 = require('node:http2'); const client = http2.connect('https://localhost'); const req = client.request({ ':path': '/' }); req.on('response', (headers, flags) => { @@ -1577,7 +1586,7 @@ accepts push streams, `false` otherwise. Settings are the same for every +* `session` {ServerHttp2Session} + The `'session'` event is emitted when a new `Http2Session` is created by the `Http2Server`. @@ -1982,6 +1993,9 @@ The `'session'` event is emitted when a new `Http2Session` is created by the added: v8.4.0 --> +* `error` {Error} +* `session` {ServerHttp2Session} + The `'sessionError'` event is emitted when an `'error'` event is emitted by an `Http2Session` object associated with the `Http2Server`. @@ -2003,7 +2017,7 @@ an `Http2Session` associated with the server. See also [`Http2Session`'s `'stream'` event][]. ```js -const http2 = require('http2'); +const http2 = require('node:http2'); const { HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, @@ -2061,7 +2075,7 @@ closed, although the server has already stopped allowing new sessions. See +* `session` {ServerHttp2Session} + The `'session'` event is emitted when a new `Http2Session` is created by the `Http2SecureServer`. @@ -2197,6 +2213,9 @@ The `'session'` event is emitted when a new `Http2Session` is created by the added: v8.4.0 --> +* `error` {Error} +* `session` {ServerHttp2Session} + The `'sessionError'` event is emitted when an `'error'` event is emitted by an `Http2Session` object associated with the `Http2SecureServer`. @@ -2218,7 +2237,7 @@ an `Http2Session` associated with the server. See also [`Http2Session`'s `'stream'` event][]. ```js -const http2 = require('http2'); +const http2 = require('node:http2'); const { HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, @@ -2258,6 +2277,8 @@ a given number of milliseconds set using `http2secureServer.setTimeout()`. added: v8.4.0 --> +* `socket` {stream.Duplex} + The `'unknownProtocol'` event is emitted when a connecting client fails to negotiate an allowed protocol (i.e. HTTP/2 or HTTP/1.1). The event handler receives the socket for handling. If no listener is registered for this event, @@ -2287,7 +2308,7 @@ closed, although the server has already stopped allowing new sessions. See + +See [`server.closeAllConnections()`][] in the `node:http` module. + +### `server.closeIdleConnections()` + + + +See [`server.closeIdleConnections()`][] in the `node:http` module. ### `server.headersTimeout` @@ -143,7 +159,7 @@ added: v11.3.0 * {number} **Default:** `60000` -See [`http.Server#headersTimeout`][]. +See [`server.headersTimeout`][] in the `node:http` module. ### `server.listen()` @@ -154,7 +170,7 @@ This method is identical to [`server.listen()`][] from [`net.Server`][]. * {number} **Default:** `2000` -See [`http.Server#maxHeadersCount`][]. +See [`server.maxHeadersCount`][] in the `node:http` module. ### `server.requestTimeout` @@ -164,7 +180,7 @@ added: v14.11.0 * {number} **Default:** `0` -See [`http.Server#requestTimeout`][]. +See [`server.requestTimeout`][] in the `node:http` module. ### `server.setTimeout([msecs][, callback])` @@ -176,7 +192,7 @@ added: v0.11.2 * `callback` {Function} * Returns: {https.Server} -See [`http.Server#setTimeout()`][]. +See [`server.setTimeout()`][] in the `node:http` module. ### `server.timeout` @@ -190,7 +206,7 @@ changes: * {number} **Default:** 0 (no timeout) -See [`http.Server#timeout`][]. +See [`server.timeout`][] in the `node:http` module. ### `server.keepAliveTimeout` @@ -200,7 +216,7 @@ added: v8.0.0 * {number} **Default:** `5000` (5 seconds) -See [`http.Server#keepAliveTimeout`][]. +See [`server.keepAliveTimeout`][] in the `node:http` module. ## `https.createServer([options][, requestListener])` @@ -215,8 +231,8 @@ added: v0.3.4 ```js // curl -k https://localhost:8000/ -const https = require('https'); -const fs = require('fs'); +const https = require('node:https'); +const fs = require('node:fs'); const options = { key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), @@ -232,8 +248,8 @@ https.createServer(options, (req, res) => { Or ```js -const https = require('https'); -const fs = require('fs'); +const https = require('node:https'); +const fs = require('node:fs'); const options = { pfx: fs.readFileSync('test/fixtures/test_cert.pfx'), @@ -274,7 +290,7 @@ string, it is automatically parsed with [`new URL()`][]. If it is a [`URL`][] object, it will be automatically converted to an ordinary `options` object. ```js -const https = require('https'); +const https = require('node:https'); https.get('https://encrypted.google.com/', (res) => { console.log('statusCode:', res.statusCode); @@ -353,7 +369,7 @@ class. The `ClientRequest` instance is a writable stream. If one needs to upload a file with a POST request, then write to the `ClientRequest` object. ```js -const https = require('https'); +const https = require('node:https'); const options = { hostname: 'encrypted.google.com', @@ -427,9 +443,9 @@ Example pinning on certificate fingerprint, or the public key (similar to `pin-sha256`): ```js -const tls = require('tls'); -const https = require('https'); -const crypto = require('crypto'); +const tls = require('node:tls'); +const https = require('node:https'); +const crypto = require('node:crypto'); function sha256(s) { return crypto.createHash('sha256').update(s).digest('base64'); @@ -446,7 +462,7 @@ const options = { return err; } - // Pin the public key, similar to HPKP pin-sha25 pinning + // Pin the public key, similar to HPKP pin-sha256 pinning const pubkey256 = 'pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU='; if (sha256(cert.pubkey) !== pubkey256) { const msg = 'Certificate verification error: ' + @@ -523,14 +539,7 @@ headers: max-age=0; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; p [`http.Agent(options)`]: http.md#new-agentoptions [`http.Agent`]: http.md#class-httpagent [`http.ClientRequest`]: http.md#class-httpclientrequest -[`http.Server#headersTimeout`]: http.md#serverheaderstimeout -[`http.Server#keepAliveTimeout`]: http.md#serverkeepalivetimeout -[`http.Server#maxHeadersCount`]: http.md#servermaxheaderscount -[`http.Server#requestTimeout`]: http.md#serverrequesttimeout -[`http.Server#setTimeout()`]: http.md#serversettimeoutmsecs-callback -[`http.Server#timeout`]: http.md#servertimeout [`http.Server`]: http.md#class-httpserver -[`http.close()`]: http.md#serverclosecallback [`http.createServer()`]: http.md#httpcreateserveroptions-requestlistener [`http.get()`]: http.md#httpgetoptions-callback [`http.request()`]: http.md#httprequestoptions-callback @@ -539,7 +548,16 @@ headers: max-age=0; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; p [`import()`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#dynamic_imports [`net.Server`]: net.md#class-netserver [`new URL()`]: url.md#new-urlinput-base +[`server.close()`]: http.md#serverclosecallback +[`server.closeAllConnections()`]: http.md#servercloseallconnections +[`server.closeIdleConnections()`]: http.md#servercloseidleconnections +[`server.headersTimeout`]: http.md#serverheaderstimeout +[`server.keepAliveTimeout`]: http.md#serverkeepalivetimeout [`server.listen()`]: net.md#serverlisten +[`server.maxHeadersCount`]: http.md#servermaxheaderscount +[`server.requestTimeout`]: http.md#serverrequesttimeout +[`server.setTimeout()`]: http.md#serversettimeoutmsecs-callback +[`server.timeout`]: http.md#servertimeout [`tls.connect()`]: tls.md#tlsconnectoptions-callback [`tls.createSecureContext()`]: tls.md#tlscreatesecurecontextoptions [`tls.createServer()`]: tls.md#tlscreateserveroptions-secureconnectionlistener diff --git a/doc/api/index.md b/doc/api/index.md index 03d2185f21d154..c999258769c95b 100644 --- a/doc/api/index.md +++ b/doc/api/index.md @@ -39,7 +39,7 @@ * [Internationalization](intl.md) * [Modules: CommonJS modules](modules.md) * [Modules: ECMAScript modules](esm.md) -* [Modules: `module` API](module.md) +* [Modules: `node:module` API](module.md) * [Modules: Packages](packages.md) * [Net](net.md) * [OS](os.md) diff --git a/doc/api/inspector.md b/doc/api/inspector.md index ea31db782d0b0f..90bc90e2d12226 100644 --- a/doc/api/inspector.md +++ b/doc/api/inspector.md @@ -6,12 +6,13 @@ -The `inspector` module provides an API for interacting with the V8 inspector. +The `node:inspector` module provides an API for interacting with the V8 +inspector. It can be accessed using: ```js -const inspector = require('inspector'); +const inspector = require('node:inspector'); ``` ## `inspector.close()` @@ -23,7 +24,7 @@ Deactivate the inspector. Blocks until there are no active connections. * {Object} An object to send messages to the remote inspector console. ```js -require('inspector').console.log('a message'); +require('node:inspector').console.log('a message'); ``` The inspector console does not have API parity with Node.js @@ -170,7 +171,7 @@ enabled agents or configured breakpoints. @@ -12,7 +12,7 @@ added: v0.3.7 Provides general utility methods when interacting with instances of `Module`, the [`module`][] variable often seen in [CommonJS][] modules. Accessed -via `import 'module'` or `require('module')`. +via `import 'node:module'` or `require('node:module')`. ### `module.builtinModules` @@ -34,13 +34,13 @@ by the [module wrapper][]. To access it, require the `Module` module: ```mjs // module.mjs // In an ECMAScript module -import { builtinModules as builtin } from 'module'; +import { builtinModules as builtin } from 'node:module'; ``` ```cjs // module.cjs // In a CommonJS module -const builtin = require('module').builtinModules; +const builtin = require('node:module').builtinModules; ``` ### `module.createRequire(filename)` @@ -55,7 +55,7 @@ added: v12.2.0 * Returns: {require} Require function ```mjs -import { createRequire } from 'module'; +import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); // sibling-module.js is a CommonJS module. @@ -73,9 +73,9 @@ builtin [ES Modules][] to match the properties of the [CommonJS][] exports. It does not add or remove exported names from the [ES Modules][]. ```js -const fs = require('fs'); -const assert = require('assert'); -const { syncBuiltinESMExports } = require('module'); +const fs = require('node:fs'); +const assert = require('node:assert'); +const { syncBuiltinESMExports } = require('node:module'); fs.readFile = newAPI; @@ -89,7 +89,7 @@ fs.newAPI = newAPI; syncBuiltinESMExports(); -import('fs').then((esmFS) => { +import('node:fs').then((esmFS) => { // It syncs the existing readFile property with the new value assert.strictEqual(esmFS.readFile, newAPI); // readFileSync has been deleted from the required fs @@ -122,13 +122,13 @@ To enable source map parsing, Node.js must be run with the flag ```mjs // module.mjs // In an ECMAScript module -import { findSourceMap, SourceMap } from 'module'; +import { findSourceMap, SourceMap } from 'node:module'; ``` ```cjs // module.cjs // In a CommonJS module -const { findSourceMap, SourceMap } = require('module'); +const { findSourceMap, SourceMap } = require('node:module'); ``` diff --git a/doc/api/modules.md b/doc/api/modules.md index 0264c4ff558fe1..18e6d29797770e 100644 --- a/doc/api/modules.md +++ b/doc/api/modules.md @@ -333,15 +333,17 @@ described in greater detail elsewhere in this documentation. The core modules are defined within the Node.js source and are located in the `lib/` folder. -Core modules are always preferentially loaded if their identifier is -passed to `require()`. For instance, `require('http')` will always -return the built in HTTP module, even if there is a file by that name. - -Core modules can also be identified using the `node:` prefix, in which case +Core modules can be identified using the `node:` prefix, in which case it bypasses the `require` cache. For instance, `require('node:http')` will always return the built in HTTP module, even if there is `require.cache` entry by that name. +Some core modules are always preferentially loaded if their identifier is +passed to `require()`. For instance, `require('http')` will always +return the built-in HTTP module, even if there is a file by that name. The list +of core modules that can be loaded without using the `node:` prefix is exposed +as [`module.builtinModules`][]. + ## Cycles @@ -560,7 +562,7 @@ wrapper that looks like the following: By doing this, Node.js achieves a few things: -* It keeps top-level variables (defined with `var`, `const` or `let`) scoped to +* It keeps top-level variables (defined with `var`, `const`, or `let`) scoped to the module rather than the global object. * It helps to provide some global-looking variables that are actually specific to the module, such as: @@ -688,7 +690,7 @@ const myLocalModule = require('./path/myLocalModule'); const jsonData = require('./path/filename.json'); // Importing a module from node_modules or Node.js built-in module: -const crypto = require('crypto'); +const crypto = require('node:crypto'); ``` #### `require.cache` @@ -712,13 +714,13 @@ Use with care! ```js -const assert = require('assert'); -const realFs = require('fs'); +const assert = require('node:assert'); +const realFs = require('node:fs'); const fakeFs = {}; require.cache.fs = { exports: fakeFs }; -assert.strictEqual(require('fs'), fakeFs); +assert.strictEqual(require('node:fs'), fakeFs); assert.strictEqual(require('node:fs'), realFs); ``` @@ -871,7 +873,7 @@ which is probably not what is desired. For example, suppose we were making a module called `a.js`: ```js -const EventEmitter = require('events'); +const EventEmitter = require('node:events'); module.exports = new EventEmitter(); @@ -1092,6 +1094,7 @@ This section was moved to [`__dirname`]: #__dirname [`__filename`]: #__filename [`import()`]: https://wiki.developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Dynamic_Imports +[`module.builtinModules`]: module.md#modulebuiltinmodules [`module.children`]: #modulechildren [`module.id`]: #moduleid [`module` core module]: module.md diff --git a/doc/api/n-api.md b/doc/api/n-api.md index 002f8be0a568f7..883e708cac8ad2 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -1187,10 +1187,13 @@ added: - v16.14.0 --> +> Stability: 1 - Experimental + ````c NAPI_EXTERN napi_status node_api_throw_syntax_error(napi_env env, const char* code, const char* msg); +``` * `[in] env`: The environment that the API is invoked under. * `[in] code`: Optional error code to be set on the error. @@ -1305,6 +1308,8 @@ added: - v16.14.0 --> +> Stability: 1 - Experimental + ```c NAPI_EXTERN napi_status node_api_create_syntax_error(napi_env env, napi_value code, @@ -2506,8 +2511,9 @@ of the ECMAScript Language Specification. #### `node_api_symbol_for` > Stability: 1 - Experimental diff --git a/doc/api/net.md b/doc/api/net.md index e57fe6077aae8e..e0858e314f4ae7 100644 --- a/doc/api/net.md +++ b/doc/api/net.md @@ -8,24 +8,24 @@ -The `net` module provides an asynchronous network API for creating stream-based +The `node:net` module provides an asynchronous network API for creating stream-based TCP or [IPC][] servers ([`net.createServer()`][]) and clients ([`net.createConnection()`][]). It can be accessed using: ```js -const net = require('net'); +const net = require('node:net'); ``` ## IPC support -The `net` module supports IPC with named pipes on Windows, and Unix domain +The `node:net` module supports IPC with named pipes on Windows, and Unix domain sockets on other operating systems. ### Identifying paths for IPC connections -[`net.connect()`][], [`net.createConnection()`][], [`server.listen()`][] and +[`net.connect()`][], [`net.createConnection()`][], [`server.listen()`][], and [`socket.connect()`][] take a `path` parameter to identify IPC endpoints. On Unix, the local domain is also known as the Unix domain. The path is a @@ -285,6 +285,13 @@ Emitted when the server has been bound after calling [`server.listen()`][]. * Returns: {Object|string|null} @@ -710,7 +717,7 @@ Not applicable to Unix sockets. * `err` {Error|null} The error object. See [`dns.lookup()`][]. * `address` {string} The IP address. -* `family` {string|null} The address type. See [`dns.lookup()`][]. +* `family` {number|null} The address type. See [`dns.lookup()`][]. * `host` {string} The host name. ### Event: `'ready'` @@ -738,6 +745,13 @@ See also: [`socket.setTimeout()`][]. * Returns: {Object} @@ -822,7 +836,9 @@ behavior. + +* Returns: {net.Socket} + +Close the TCP connection by sending an RST packet and destroy the stream. +If this TCP socket is in connecting status, it will send an RST packet and destroy this TCP socket once it is connected. +Otherwise, it will call `socket.destroy` with an `ERR_SOCKET_CLOSED` Error. +If this is not a TCP socket (for example, a pipe), calling this method will immediately throw an `ERR_INVALID_HANDLE_TYPE` Error. + ### `socket.resume()` * Returns: {net.Socket} The socket itself. @@ -1153,7 +1182,7 @@ algorithm. -The `os` module provides operating system-related utility methods and +The `node:os` module provides operating system-related utility methods and properties. It can be accessed using: ```js -const os = require('os'); +const os = require('node:os'); ``` ## `os.EOL` @@ -224,6 +224,13 @@ always `[0, 0, 0]`. * Returns: {Object} diff --git a/doc/api/packages.md b/doc/api/packages.md index 3851cfc13c20ed..2dce76f8539c43 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -198,9 +198,9 @@ Strings passed in as an argument to `--eval` (or `-e`), or piped to `node` via is set. ```bash -node --input-type=module --eval "import { sep } from 'path'; console.log(sep);" +node --input-type=module --eval "import { sep } from 'node:path'; console.log(sep);" -echo "import { sep } from 'path'; console.log(sep);" | node --input-type=module +echo "import { sep } from 'node:path'; console.log(sep);" | node --input-type=module ``` For completeness there is also `--input-type=commonjs`, for explicitly running @@ -224,91 +224,99 @@ in your project's `package.json`. ## Package entry points -In a package’s `package.json` file, two fields can define entry points for a -package: [`"main"`][] and [`"exports"`][]. The [`"main"`][] field is supported -in all versions of Node.js, but its capabilities are limited: it only defines -the main entry point of the package. +In a package's `package.json` file, two fields can define entry points for a +package: [`"main"`][] and [`"exports"`][]. Both fields apply to both ES module +and CommonJS module entry points. -The [`"exports"`][] field provides an alternative to [`"main"`][] where the -package main entry point can be defined while also encapsulating the package, -**preventing any other entry points besides those defined in [`"exports"`][]**. -This encapsulation allows module authors to define a public interface for -their package. +The [`"main"`][] field is supported in all versions of Node.js, but its +capabilities are limited: it only defines the main entry point of the package. -If both [`"exports"`][] and [`"main"`][] are defined, the [`"exports"`][] field -takes precedence over [`"main"`][]. [`"exports"`][] are not specific to ES -modules or CommonJS; [`"main"`][] is overridden by [`"exports"`][] if it -exists. As such [`"main"`][] cannot be used as a fallback for CommonJS but it -can be used as a fallback for legacy versions of Node.js that do not support the -[`"exports"`][] field. +The [`"exports"`][] provides a modern alternative to [`"main"`][] allowing +multiple entry points to be defined, conditional entry resolution support +between environments, and **preventing any other entry points besides those +defined in [`"exports"`][]**. This encapsulation allows module authors to +clearly define the public interface for their package. + +For new packages targeting the currently supported versions of Node.js, the +[`"exports"`][] field is recommended. For packages supporting Node.js 10 and +below, the [`"main"`][] field is required. If both [`"exports"`][] and +[`"main"`][] are defined, the [`"exports"`][] field takes precedence over +[`"main"`][] in supported versions of Node.js. [Conditional exports][] can be used within [`"exports"`][] to define different package entry points per environment, including whether the package is referenced via `require` or via `import`. For more information about supporting -both CommonJS and ES Modules in a single package please consult +both CommonJS and ES modules in a single package please consult [the dual CommonJS/ES module packages section][]. -**Warning**: Introducing the [`"exports"`][] field prevents consumers of a -package from using any entry points that are not defined, including the +Existing packages introducing the [`"exports"`][] field will prevent consumers +of the package from using any entry points that are not defined, including the [`package.json`][] (e.g. `require('your-package/package.json')`. **This will likely be a breaking change.** To make the introduction of [`"exports"`][] non-breaking, ensure that every previously supported entry point is exported. It is best to explicitly specify -entry points so that the package’s public API is well-defined. For example, +entry points so that the package's public API is well-defined. For example, a project that previous exported `main`, `lib`, `feature`, and the `package.json` could use the following `package.exports`: ```json { - "name": "my-mod", + "name": "my-package", "exports": { ".": "./lib/index.js", "./lib": "./lib/index.js", "./lib/index": "./lib/index.js", "./lib/index.js": "./lib/index.js", "./feature": "./feature/index.js", + "./feature/index": "./feature/index.js", "./feature/index.js": "./feature/index.js", "./package.json": "./package.json" } } ``` -Alternatively a project could choose to export entire folders: +Alternatively a project could choose to export entire folders both with and +without extensioned subpaths using export patterns: ```json { - "name": "my-mod", + "name": "my-package", "exports": { ".": "./lib/index.js", "./lib": "./lib/index.js", "./lib/*": "./lib/*.js", + "./lib/*.js": "./lib/*.js", "./feature": "./feature/index.js", "./feature/*": "./feature/*.js", + "./feature/*.js": "./feature/*.js", "./package.json": "./package.json" } } ``` -As a last resort, package encapsulation can be disabled entirely by creating an -export for the root of the package `"./*": "./*"`. This exposes every file -in the package at the cost of disabling the encapsulation and potential tooling -benefits this provides. As the ES Module loader in Node.js enforces the use of -[the full specifier path][], exporting the root rather than being explicit -about entry is less expressive than either of the prior examples. Not only -is encapsulation lost but module consumers are unable to -`import feature from 'my-mod/feature'` as they need to provide the full -path `import feature from 'my-mod/feature/index.js`. +With the above providing backwards-compatibility for any minor package versions, +a future major change for the package can then properly restrict the exports +to only the specific feature exports exposed: + +```json +{ + "name": "my-package", + "exports": { + ".": "./lib/index.js", + "./feature/*.js": "./feature/*.js", + "./feature/internal/*": null + } +} +``` ### Main entry point export -To set the main entry point for a package, it is advisable to define both -[`"exports"`][] and [`"main"`][] in the package’s [`package.json`][] file: +When writing a new package, it is recommended to use the [`"exports"`][] field: ```json { - "main": "./main.js", - "exports": "./main.js" + "exports": "./index.js" } ``` @@ -323,6 +331,18 @@ package. It is not a strong encapsulation since a direct require of any absolute subpath of the package such as `require('/path/to/node_modules/pkg/subpath.js')` will still load `subpath.js`. +All currently supported versions of Node.js and modern build tools support the +`"exports"` field. For projects using an older version of Node.js or a related +build tool, compatibility can be achieved by including the `"main"` field +alongside `"exports"` pointing to the same module: + +```json +{ + "main": "./index.js", + "exports": "./index.js" +} +``` + ### Subpath exports + +If the `"."` export is the only export, the [`"exports"`][] field provides sugar +for this case being the direct [`"exports"`][] field value. + +```json +{ + "exports": { + ".": "./index.js" + } +} +``` + +can be written: + +```json +{ + "exports": "./index.js" +} +``` + ### Subpath imports -In addition to the [`"exports"`][] field, it is possible to define internal -package import maps that only apply to import specifiers from within the package -itself. +In addition to the [`"exports"`][] field, there is a package `"imports"` field +to create private mappings that only apply to import specifiers from within the +package itself. -Entries in the imports field must always start with `#` to ensure they are -disambiguated from package specifiers. +Entries in the `"imports"` field must always start with `#` to ensure they are +disambiguated from external package specifiers. For example, the imports field can be used to gain the benefits of conditional exports for internal modules: @@ -397,8 +461,8 @@ file `./dep-polyfill.js` relative to the package in other environments. Unlike the `"exports"` field, the `"imports"` field permits mapping to external packages. -The resolution rules for the imports field are otherwise -analogous to the exports field. +The resolution rules for the imports field are otherwise analogous to the +exports field. ### Subpath patterns @@ -406,6 +470,17 @@ analogous to the exports field. added: - v14.13.0 - v12.20.0 +changes: + - version: + - v16.10.0 + - v14.19.0 + pr-url: https://github.com/nodejs/node/pull/40041 + description: Support pattern trailers in "imports" field. + - version: + - v16.9.0 + - v14.19.0 + pr-url: https://github.com/nodejs/node/pull/39635 + description: Support pattern trailers. --> For packages with a small number of exports or imports, we recommend @@ -419,10 +494,10 @@ For these use cases, subpath export patterns can be used instead: // ./node_modules/es-module-package/package.json { "exports": { - "./features/*": "./src/features/*.js" + "./features/*.js": "./src/features/*.js" }, "imports": { - "#internal/*": "./src/internal/*.js" + "#internal/*.js": "./src/internal/*.js" } } ``` @@ -434,19 +509,19 @@ All instances of `*` on the right hand side will then be replaced with this value, including if it contains any `/` separators. ```js -import featureX from 'es-module-package/features/x'; +import featureX from 'es-module-package/features/x.js'; // Loads ./node_modules/es-module-package/src/features/x.js -import featureY from 'es-module-package/features/y/y'; +import featureY from 'es-module-package/features/y/y.js'; // Loads ./node_modules/es-module-package/src/features/y/y.js -import internalZ from '#internal/z'; +import internalZ from '#internal/z.js'; // Loads ./node_modules/es-module-package/src/internal/z.js ``` -This is a direct static replacement without any special handling for file -extensions. In the previous example, `pkg/features/x.json` would be resolved to -`./src/features/x.json.js` in the mapping. +This is a direct static matching and replacement without any special handling +for file extensions. Including the `"*.js"` on both sides of the mapping +restricts the exposed package exports to only JS files. The property of exports being statically enumerable is maintained with exports patterns since the individual exports for a package can be determined by @@ -460,48 +535,20 @@ To exclude private subfolders from patterns, `null` targets can be used: // ./node_modules/es-module-package/package.json { "exports": { - "./features/*": "./src/features/*.js", + "./features/*.js": "./src/features/*.js", "./features/private-internal/*": null } } ``` ```js -import featureInternal from 'es-module-package/features/private-internal/m'; +import featureInternal from 'es-module-package/features/private-internal/m.js'; // Throws: ERR_PACKAGE_PATH_NOT_EXPORTED -import featureX from 'es-module-package/features/x'; +import featureX from 'es-module-package/features/x.js'; // Loads ./node_modules/es-module-package/src/features/x.js ``` -### Exports sugar - - - -If the `"."` export is the only export, the [`"exports"`][] field provides sugar -for this case being the direct [`"exports"`][] field value. - -If the `"."` export has a fallback array or string value, then the -[`"exports"`][] field can be set to this value directly. - -```json -{ - "exports": { - ".": "./main.js" - } -} -``` - -can be written: - -```json -{ - "exports": "./main.js" -} -``` - ### Conditional exports -Within a package, the values defined in the package’s -`package.json` [`"exports"`][] field can be referenced via the package’s name. +Within a package, the values defined in the package's +`package.json` [`"exports"`][] field can be referenced via the package's name. For example, assuming the `package.json` is: ```json @@ -709,8 +753,8 @@ For example, assuming the `package.json` is: { "name": "a-package", "exports": { - ".": "./main.mjs", - "./foo": "./foo.js" + ".": "./index.mjs", + "./foo.js": "./foo.js" } } ``` @@ -719,7 +763,7 @@ Then any module _in that package_ can reference an export in the package itself: ```js // ./a-module.mjs -import { something } from 'a-package'; // Imports "something" from ./main.mjs. +import { something } from 'a-package'; // Imports "something" from ./index.mjs. ``` Self-referencing is available only if `package.json` has [`"exports"`][], and @@ -741,7 +785,7 @@ and in a CommonJS one. For example, this code will also work: ```cjs // ./a-module.js -const { something } = require('a-package/foo'); // Loads from ./foo.js. +const { something } = require('a-package/foo.js'); // Loads from ./foo.js. ``` Finally, self-referencing also works with scoped packages. For example, this @@ -854,7 +898,6 @@ CommonJS entry point for `require`. // ./node_modules/pkg/package.json { "type": "module", - "main": "./index.cjs", "exports": { "import": "./wrapper.mjs", "require": "./index.cjs" @@ -905,7 +948,7 @@ This approach is appropriate for any of the following use cases: install both this package and those other packages. For example a `utilities` package is used directly in an application, and a `utilities-plus` package adds a few more functions to `utilities`. Because the wrapper exports - underlying CommonJS files, it doesn’t matter if `utilities-plus` is written in + underlying CommonJS files, it doesn't matter if `utilities-plus` is written in CommonJS or ES module syntax; it will work either way. * The package stores internal state, and the package author would prefer not to refactor the package to isolate its state management. See the next section. @@ -915,14 +958,13 @@ be to add an export, e.g. `"./module"`, to point to an all-ES module-syntax version of the package. This could be used via `import 'pkg/module'` by users who are certain that the CommonJS version will not be loaded anywhere in the application, such as by dependencies; or if the CommonJS version can be loaded -but doesn’t affect the ES module version (for example, because the package is +but doesn't affect the ES module version (for example, because the package is stateless): ```json // ./node_modules/pkg/package.json { "type": "module", - "main": "./index.cjs", "exports": { ".": "./index.cjs", "./module": "./wrapper.mjs" @@ -939,7 +981,6 @@ points directly: // ./node_modules/pkg/package.json { "type": "module", - "main": "./index.cjs", "exports": { "import": "./index.mjs", "require": "./index.cjs" @@ -949,22 +990,22 @@ points directly: This can be done if both the CommonJS and ES module versions of the package are equivalent, for example because one is the transpiled output of the other; and -the package’s management of state is carefully isolated (or the package is +the package's management of state is carefully isolated (or the package is stateless). The reason that state is an issue is because both the CommonJS and ES module versions of the package might get used within an application; for example, the -user’s application code could `import` the ES module version while a dependency +user's application code could `import` the ES module version while a dependency `require`s the CommonJS version. If that were to occur, two copies of the package would be loaded in memory and therefore two separate states would be present. This would likely cause hard-to-troubleshoot bugs. -Aside from writing a stateless package (if JavaScript’s `Math` were a package, +Aside from writing a stateless package (if JavaScript's `Math` were a package, for example, it would be stateless as all of its methods are static), there are -some ways to isolate state so that it’s shared between the potentially loaded +some ways to isolate state so that it's shared between the potentially loaded CommonJS and ES module instances of the package: -1. If possible, contain all state within an instantiated object. JavaScript’s +1. If possible, contain all state within an instantiated object. JavaScript's `Date`, for example, needs to be instantiated to contain state; if it were a package, it would be used like this: @@ -974,7 +1015,7 @@ CommonJS and ES module instances of the package: // someDate contains state; Date does not ``` - The `new` keyword isn’t required; a package’s function can return a new + The `new` keyword isn't required; a package's function can return a new object, or modify a passed-in object, to keep the state external to the package. @@ -1001,7 +1042,7 @@ CommonJS and ES module instances of the package: each reference of `pkg` will contain the same state; and modifying that state from either module system will apply to both. -Any plugins that attach to the package’s singleton would need to separately +Any plugins that attach to the package's singleton would need to separately attach to both the CommonJS and ES module singletons. This approach is appropriate for any of the following use cases: @@ -1025,7 +1066,6 @@ conditional exports for consumers could be to add an export, e.g. // ./node_modules/pkg/package.json { "type": "module", - "main": "./index.cjs", "exports": { ".": "./index.cjs", "./module": "./index.mjs" @@ -1076,7 +1116,7 @@ changes: } ``` -The `"name"` field defines your package’s name. Publishing to the +The `"name"` field defines your package's name. Publishing to the _npm_ registry requires a name that satisfies [certain requirements](https://docs.npmjs.com/files/package.json#name). @@ -1093,7 +1133,7 @@ added: v0.4.0 ```json { - "main": "./main.js" + "main": "./index.js" } ``` @@ -1107,7 +1147,8 @@ It also defines the script that is used when the [package directory is loaded via `require()`](modules.md#folders-as-modules). ```cjs -require('./path/to/directory'); // This resolves to ./path/to/directory/main.js. +// This resolves to ./path/to/directory/index.js. +require('./path/to/directory'); ``` ### `"packageManager"` @@ -1159,7 +1200,7 @@ Files ending with `.js` are loaded as ES modules when the nearest parent `"module"`. The nearest parent `package.json` is defined as the first `package.json` found -when searching in the current folder, that folder’s parent, and so on up +when searching in the current folder, that folder's parent, and so on up until a node\_modules folder or the volume root is reached. ```json @@ -1270,7 +1311,7 @@ added: Entries in the imports field must be strings starting with `#`. -Import maps permit mapping to external packages. +Package imports permit mapping to external packages. This field defines [subpath imports][] for the current package. @@ -1294,8 +1335,10 @@ This field defines [subpath imports][] for the current package. [`package.json`]: #nodejs-packagejson-field-definitions [entry points]: #package-entry-points [folders as modules]: modules.md#folders-as-modules +[import maps]: https://github.com/WICG/import-maps [load ECMASCript modules from CommonJS modules]: modules.md#the-mjs-extension [loader hooks]: esm.md#loaders +[packages folder mapping]: https://github.com/WICG/import-maps#packages-via-trailing-slashes [self-reference]: #self-referencing-a-package-using-its-name [subpath exports]: #subpath-exports [subpath imports]: #subpath-imports diff --git a/doc/api/path.md b/doc/api/path.md index cc2bb4d1a8a3e3..149a01cdb1b072 100644 --- a/doc/api/path.md +++ b/doc/api/path.md @@ -6,19 +6,19 @@ -The `path` module provides utilities for working with file and directory paths. -It can be accessed using: +The `node:path` module provides utilities for working with file and directory +paths. It can be accessed using: ```js -const path = require('path'); +const path = require('node:path'); ``` ## Windows vs. POSIX -The default operation of the `path` module varies based on the operating system -on which a Node.js application is running. Specifically, when running on a -Windows operating system, the `path` module will assume that Windows-style -paths are being used. +The default operation of the `node:path` module varies based on the operating +system on which a Node.js application is running. Specifically, when running on +a Windows operating system, the `node:path` module will assume that +Windows-style paths are being used. So using `path.basename()` might yield different results on POSIX and Windows: @@ -447,7 +447,7 @@ added: v0.11.15 changes: - version: v15.3.0 pr-url: https://github.com/nodejs/node/pull/34962 - description: Exposed as `require('path/posix')`. + description: Exposed as `require('node:path/posix')`. --> * {Object} @@ -455,7 +455,7 @@ changes: The `path.posix` property provides access to POSIX specific implementations of the `path` methods. -The API is accessible via `require('path').posix` or `require('path/posix')`. +The API is accessible via `require('node:path').posix` or `require('node:path/posix')`. ## `path.relative(from, to)` @@ -592,7 +592,7 @@ added: v0.11.15 changes: - version: v15.3.0 pr-url: https://github.com/nodejs/node/pull/34962 - description: Exposed as `require('path/win32')`. + description: Exposed as `require('node:path/win32')`. --> * {Object} @@ -600,7 +600,7 @@ changes: The `path.win32` property provides access to Windows-specific implementations of the `path` methods. -The API is accessible via `require('path').win32` or `require('path/win32')`. +The API is accessible via `require('node:path').win32` or `require('node:path/win32')`. [MSDN-Rel-Path]: https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#fully-qualified-vs-relative-paths [`TypeError`]: errors.md#class-typeerror diff --git a/doc/api/perf_hooks.md b/doc/api/perf_hooks.md index 857da3d13d5525..46c2b58eab7f9d 100644 --- a/doc/api/perf_hooks.md +++ b/doc/api/perf_hooks.md @@ -15,9 +15,10 @@ Node.js supports the following [Web Performance APIs][]: * [High Resolution Time][] * [Performance Timeline][] * [User Timing][] +* [Resource Timing][] ```js -const { PerformanceObserver, performance } = require('perf_hooks'); +const { PerformanceObserver, performance } = require('node:perf_hooks'); const obs = new PerformanceObserver((items) => { console.log(items.getEntries()[0].duration); @@ -64,7 +65,18 @@ added: v16.7.0 * `name` {string} If `name` is not provided, removes all `PerformanceMeasure` objects from the -Performance Timeline. If `name` is provided, removes only the named mark. +Performance Timeline. If `name` is provided, removes only the named measure. + +### `performance.clearResourceTimings([name])` + + + +* `name` {string} + +If `name` is not provided, removes all `PerformanceResourceTiming` objects from +the Resource Timeline. If `name` is provided, removes only the named resource. ### `performance.eventLoopUtilization([utilization1[, utilization2]])` @@ -111,8 +123,8 @@ of how a mostly idle process will have a high ELU. ```js 'use strict'; -const { eventLoopUtilization } = require('perf_hooks').performance; -const { spawnSync } = require('child_process'); +const { eventLoopUtilization } = require('node:perf_hooks').performance; +const { spawnSync } = require('node:child_process'); setImmediate(() => { const elu = eventLoopUtilization(); @@ -184,7 +196,7 @@ changes: * `options` {Object} * `detail` {any} Additional optional detail to include with the mark. * `startTime` {number} An optional timestamp to be used as the mark time. - **Defaults**: `performance.now()`. + **Default**: `performance.now()`. Creates a new `PerformanceMark` entry in the Performance Timeline. A `PerformanceMark` is a subclass of `PerformanceEntry` whose @@ -198,6 +210,31 @@ and can be queried with `performance.getEntries`, observation is performed, the entries should be cleared from the global Performance Timeline manually with `performance.clearMarks`. +### `performance.markResourceTiming(timingInfo, requestedUrl, initiatorType, global, cacheMode)` + + + +* `timingInfo` {Object} [Fetch Timing Info][] +* `requestedUrl` {string} The resource url +* `initiatorType` {string} The initiator name, e.g: 'fetch' +* `global` {Object} +* `cacheMode` {string} The cache mode must be an empty string ('') or 'local' + +_This property is an extension by Node.js. It is not available in Web browsers._ + +Creates a new `PerformanceResourceTiming` entry in the Resource Timeline. A +`PerformanceResourceTiming` is a subclass of `PerformanceEntry` whose +`performanceEntry.entryType` is always `'resource'`. Performance resources +are used to mark moments in the Resource Timeline. + +The created `PerformanceMark` entry is put in the global Resource Timeline +and can be queried with `performance.getEntries`, +`performance.getEntriesByName`, and `performance.getEntriesByType`. When the +observation is performed, the entries should be cleared from the global +Performance Timeline manually with `performance.clearResourceTimings`. + ### `performance.measure(name[, startMarkOrOptions[, endMark]])` + +* Extends: {PerformanceEntry} + +Provides detailed network timing data regarding the loading of an application's +resources. + +The constructor of this class is not exposed to users directly. + +### `performanceResourceTiming.workerStart` + + + +* {number} + +The high resolution millisecond timestamp at immediately before dispatching +the `fetch` request. If the resource is not intercepted by a worker the property +will always return 0. + +### `performanceResourceTiming.redirectStart` + + + +* {number} + +The high resolution millisecond timestamp that represents the start time +of the fetch which initiates the redirect. + +### `performanceResourceTiming.redirectEnd` + + + +* {number} + +The high resolution millisecond timestamp that will be created immediately after +receiving the last byte of the response of the last redirect. + +### `performanceResourceTiming.fetchStart` + + + +* {number} + +The high resolution millisecond timestamp immediately before the Node.js starts +to fetch the resource. + +### `performanceResourceTiming.domainLookupStart` + + + +* {number} + +The high resolution millisecond timestamp immediately before the Node.js starts +the domain name lookup for the resource. + +### `performanceResourceTiming.domainLookupEnd` + + + +* {number} + +The high resolution millisecond timestamp representing the time immediately +after the Node.js finished the domain name lookup for the resource. + +### `performanceResourceTiming.connectStart` + + + +* {number} + +The high resolution millisecond timestamp representing the time immediately +before Node.js starts to establish the connection to the server to retrieve +the resource. + +### `performanceResourceTiming.connectEnd` + + + +* {number} + +The high resolution millisecond timestamp representing the time immediately +after Node.js finishes establishing the connection to the server to retrieve +the resource. + +### `performanceResourceTiming.secureConnectionStart` + + + +* {number} + +The high resolution millisecond timestamp representing the time immediately +before Node.js starts the handshake process to secure the current connection. + +### `performanceResourceTiming.requestStart` + + + +* {number} + +The high resolution millisecond timestamp representing the time immediately +before Node.js receives the first byte of the response from the server. + +### `performanceResourceTiming.responseEnd` + + + +* {number} + +The high resolution millisecond timestamp representing the time immediately +after Node.js receives the last byte of the resource or immediately before +the transport connection is closed, whichever comes first. + +### `performanceResourceTiming.transferSize` + + + +* {number} + +A number representing the size (in octets) of the fetched resource. The size +includes the response header fields plus the response payload body. + +### `performanceResourceTiming.encodedBodySize` + + + +* {number} + +A number representing the size (in octets) received from the fetch +(HTTP or cache), of the payload body, before removing any applied +content-codings. + +### `performanceResourceTiming.decodedBodySize` + + + +* {number} + +A number representing the size (in octets) received from the fetch +(HTTP or cache), of the message body, after removing any applied +content-codings. + +### `performanceResourceTiming.toJSON()` + + + +Returns a `object` that is the JSON representation of the +`PerformanceResourceTiming` object + ## Class: `perf_hooks.PerformanceObserver` ### `new PerformanceObserver(callback)` @@ -660,7 +879,7 @@ initialized. > Stability: 0 - Deprecated @@ -206,7 +208,7 @@ Because of the unreliability of the event in cases like the [`Promise.race()`][] example above it has been deprecated. ```mjs -import process from 'process'; +import process from 'node:process'; process.on('multipleResolves', (type, promise, reason) => { console.error(type, promise, reason); @@ -235,7 +237,7 @@ main().then(console.log); ``` ```cjs -const process = require('process'); +const process = require('node:process'); process.on('multipleResolves', (type, promise, reason) => { console.error(type, promise, reason); @@ -296,7 +298,7 @@ of unhandled rejections grows, and the `'rejectionHandled'` event is emitted when the list of unhandled rejections shrinks. ```mjs -import process from 'process'; +import process from 'node:process'; const unhandledRejections = new Map(); process.on('unhandledRejection', (reason, promise) => { @@ -308,7 +310,7 @@ process.on('rejectionHandled', (promise) => { ``` ```cjs -const process = require('process'); +const process = require('node:process'); const unhandledRejections = new Map(); process.on('unhandledRejection', (reason, promise) => { @@ -357,7 +359,7 @@ provided exit code. Otherwise, in the presence of such handler the process will exit with 0. ```mjs -import process from 'process'; +import process from 'node:process'; process.on('uncaughtException', (err, origin) => { fs.writeSync( @@ -377,7 +379,7 @@ console.log('This will not run.'); ``` ```cjs -const process = require('process'); +const process = require('node:process'); process.on('uncaughtException', (err, origin) => { fs.writeSync( @@ -453,7 +455,7 @@ once an `'uncaughtException'` event is emitted. The process will still crash if no `'uncaughtException'` listener is installed. ```mjs -import process from 'process'; +import process from 'node:process'; process.on('uncaughtExceptionMonitor', (err, origin) => { MyMonitoringTool.logSync(err, origin); @@ -465,7 +467,7 @@ nonexistentFunc(); ``` ```cjs -const process = require('process'); +const process = require('node:process'); process.on('uncaughtExceptionMonitor', (err, origin) => { MyMonitoringTool.logSync(err, origin); @@ -503,7 +505,7 @@ useful for detecting and keeping track of promises that were rejected whose rejections have not yet been handled. ```mjs -import process from 'process'; +import process from 'node:process'; process.on('unhandledRejection', (reason, promise) => { console.log('Unhandled Rejection at:', promise, 'reason:', reason); @@ -516,7 +518,7 @@ somePromise.then((res) => { ``` ```cjs -const process = require('process'); +const process = require('node:process'); process.on('unhandledRejection', (reason, promise) => { console.log('Unhandled Rejection at:', promise, 'reason:', reason); @@ -532,7 +534,7 @@ The following will also trigger the `'unhandledRejection'` event to be emitted: ```mjs -import process from 'process'; +import process from 'node:process'; function SomeResource() { // Initially set the loaded status to a rejected promise @@ -544,7 +546,7 @@ const resource = new SomeResource(); ``` ```cjs -const process = require('process'); +const process = require('node:process'); function SomeResource() { // Initially set the loaded status to a rejected promise @@ -583,7 +585,7 @@ Node.js can emit warnings whenever it detects bad coding practices that could lead to sub-optimal application performance, bugs, or security vulnerabilities. ```mjs -import process from 'process'; +import process from 'node:process'; process.on('warning', (warning) => { console.warn(warning.name); // Print the warning name @@ -593,7 +595,7 @@ process.on('warning', (warning) => { ``` ```cjs -const process = require('process'); +const process = require('node:process'); process.on('warning', (warning) => { console.warn(warning.name); // Print the warning name @@ -704,7 +706,7 @@ The name of each event will be the uppercase common name for the signal (e.g. `'SIGINT'` for `SIGINT` signals). ```mjs -import process from 'process'; +import process from 'node:process'; // Begin reading from stdin so the process does not exit. process.stdin.resume(); @@ -723,7 +725,7 @@ process.on('SIGTERM', handle); ``` ```cjs -const process = require('process'); +const process = require('node:process'); // Begin reading from stdin so the process does not exit. process.stdin.resume(); @@ -768,7 +770,7 @@ process.on('SIGTERM', handle); * `'SIGKILL'` cannot have a listener installed, it will unconditionally terminate Node.js on all platforms. * `'SIGSTOP'` cannot have a listener installed. -* `'SIGBUS'`, `'SIGFPE'`, `'SIGSEGV'` and `'SIGILL'`, when not raised +* `'SIGBUS'`, `'SIGFPE'`, `'SIGSEGV'`, and `'SIGILL'`, when not raised artificially using kill(2), inherently leave the process in a state from which it is not safe to call JS listeners. Doing so might cause the process to stop responding. @@ -830,7 +832,7 @@ passed through to V8 will contain underscores instead of non-leading dashes: ```mjs -import { allowedNodeEnvironmentFlags } from 'process'; +import { allowedNodeEnvironmentFlags } from 'node:process'; allowedNodeEnvironmentFlags.forEach((flag) => { // -r @@ -841,7 +843,7 @@ allowedNodeEnvironmentFlags.forEach((flag) => { ``` ```cjs -const { allowedNodeEnvironmentFlags } = require('process'); +const { allowedNodeEnvironmentFlags } = require('node:process'); allowedNodeEnvironmentFlags.forEach((flag) => { // -r @@ -872,13 +874,13 @@ Possible values are: `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`, `'ppc64'`, `'s390'`, `'s390x'`, and `'x64'`. ```mjs -import { arch } from 'process'; +import { arch } from 'node:process'; console.log(`This processor architecture is ${arch}`); ``` ```cjs -const { arch } = require('process'); +const { arch } = require('node:process'); console.log(`This processor architecture is ${arch}`); ``` @@ -901,7 +903,7 @@ arguments. For example, assuming the following script for `process-args.js`: ```mjs -import { argv } from 'process'; +import { argv } from 'node:process'; // print process.argv argv.forEach((val, index) => { @@ -910,7 +912,7 @@ argv.forEach((val, index) => { ``` ```cjs -const { argv } = require('process'); +const { argv } = require('node:process'); // print process.argv argv.forEach((val, index) => { @@ -1009,7 +1011,7 @@ Node.js process or throws an exception if doing so fails (for instance, if the specified `directory` does not exist). ```mjs -import { chdir, cwd } from 'process'; +import { chdir, cwd } from 'node:process'; console.log(`Starting directory: ${cwd()}`); try { @@ -1021,7 +1023,7 @@ try { ``` ```cjs -const { chdir, cwd } = require('process'); +const { chdir, cwd } = require('node:process'); console.log(`Starting directory: ${cwd()}`); try { @@ -1129,7 +1131,7 @@ The result of a previous call to `process.cpuUsage()` can be passed as the argument to the function, to get a diff reading. ```mjs -import { cpuUsage } from 'process'; +import { cpuUsage } from 'node:process'; const startUsage = cpuUsage(); // { user: 38579, system: 6986 } @@ -1143,7 +1145,7 @@ console.log(cpuUsage(startUsage)); ``` ```cjs -const { cpuUsage } = require('process'); +const { cpuUsage } = require('node:process'); const startUsage = cpuUsage(); // { user: 38579, system: 6986 } @@ -1168,13 +1170,13 @@ The `process.cwd()` method returns the current working directory of the Node.js process. ```mjs -import { cwd } from 'process'; +import { cwd } from 'node:process'; console.log(`Current directory: ${cwd()}`); ``` ```cjs -const { cwd } = require('process'); +const { cwd } = require('node:process'); console.log(`Current directory: ${cwd()}`); ``` @@ -1190,13 +1192,13 @@ added: v0.7.2 The port used by the Node.js debugger when enabled. ```mjs -import process from 'process'; +import process from 'node:process'; process.debugPort = 5858; ``` ```cjs -const process = require('process'); +const process = require('node:process'); process.debugPort = 5858; ``` @@ -1251,9 +1253,9 @@ the call returns, by passing the `RTLD_NOW` constant. In this example the constant is assumed to be available. ```mjs -import { dlopen } from 'process'; -import { constants } from 'os'; -import { fileURLToPath } from 'url'; +import { dlopen } from 'node:process'; +import { constants } from 'node:os'; +import { fileURLToPath } from 'node:url'; const module = { exports: {} }; dlopen(module, fileURLToPath(new URL('local.node', import.meta.url)), @@ -1262,9 +1264,9 @@ module.exports.foo(); ``` ```cjs -const { dlopen } = require('process'); -const { constants } = require('os'); -const { join } = require('path'); +const { dlopen } = require('node:process'); +const { constants } = require('node:os'); +const { join } = require('node:path'); const module = { exports: {} }; dlopen(module, join(__dirname, 'local.node'), constants.dlopen.RTLD_NOW); @@ -1292,7 +1294,7 @@ specific process warnings. These can be listened for by adding a handler to the [`'warning'`][process_warning] event. ```mjs -import { emitWarning } from 'process'; +import { emitWarning } from 'node:process'; // Emit a warning with a code and additional detail. emitWarning('Something happened!', { @@ -1305,7 +1307,7 @@ emitWarning('Something happened!', { ``` ```cjs -const { emitWarning } = require('process'); +const { emitWarning } = require('node:process'); // Emit a warning with a code and additional detail. emitWarning('Something happened!', { @@ -1322,7 +1324,7 @@ In this example, an `Error` object is generated internally by [`'warning'`][process_warning] handler. ```mjs -import process from 'process'; +import process from 'node:process'; process.on('warning', (warning) => { console.warn(warning.name); // 'Warning' @@ -1334,7 +1336,7 @@ process.on('warning', (warning) => { ``` ```cjs -const process = require('process'); +const process = require('node:process'); process.on('warning', (warning) => { console.warn(warning.name); // 'Warning' @@ -1366,7 +1368,7 @@ specific process warnings. These can be listened for by adding a handler to the [`'warning'`][process_warning] event. ```mjs -import { emitWarning } from 'process'; +import { emitWarning } from 'node:process'; // Emit a warning using a string. emitWarning('Something happened!'); @@ -1374,7 +1376,7 @@ emitWarning('Something happened!'); ``` ```cjs -const { emitWarning } = require('process'); +const { emitWarning } = require('node:process'); // Emit a warning using a string. emitWarning('Something happened!'); @@ -1382,7 +1384,7 @@ emitWarning('Something happened!'); ``` ```mjs -import { emitWarning } from 'process'; +import { emitWarning } from 'node:process'; // Emit a warning using a string and a type. emitWarning('Something Happened!', 'CustomWarning'); @@ -1390,7 +1392,7 @@ emitWarning('Something Happened!', 'CustomWarning'); ``` ```cjs -const { emitWarning } = require('process'); +const { emitWarning } = require('node:process'); // Emit a warning using a string and a type. emitWarning('Something Happened!', 'CustomWarning'); @@ -1398,14 +1400,14 @@ emitWarning('Something Happened!', 'CustomWarning'); ``` ```mjs -import { emitWarning } from 'process'; +import { emitWarning } from 'node:process'; emitWarning('Something happened!', 'CustomWarning', 'WARN001'); // Emits: (node:56338) [WARN001] CustomWarning: Something happened! ``` ```cjs -const { emitWarning } = require('process'); +const { emitWarning } = require('node:process'); process.emitWarning('Something happened!', 'CustomWarning', 'WARN001'); // Emits: (node:56338) [WARN001] CustomWarning: Something happened! @@ -1416,7 +1418,7 @@ In each of the previous examples, an `Error` object is generated internally by handler. ```mjs -import process from 'process'; +import process from 'node:process'; process.on('warning', (warning) => { console.warn(warning.name); @@ -1427,7 +1429,7 @@ process.on('warning', (warning) => { ``` ```cjs -const process = require('process'); +const process = require('node:process'); process.on('warning', (warning) => { console.warn(warning.name); @@ -1442,7 +1444,7 @@ If `warning` is passed as an `Error` object, it will be passed through to the `code` and `ctor` arguments will be ignored): ```mjs -import { emitWarning } from 'process'; +import { emitWarning } from 'node:process'; // Emit a warning using an Error object. const myWarning = new Error('Something happened!'); @@ -1455,7 +1457,7 @@ emitWarning(myWarning); ``` ```cjs -const { emitWarning } = require('process'); +const { emitWarning } = require('node:process'); // Emit a warning using an Error object. const myWarning = new Error('Something happened!'); @@ -1489,7 +1491,7 @@ As a best practice, warnings should be emitted only once per process. To do so, place the `emitWarning()` behind a boolean. ```mjs -import { emitWarning } from 'process'; +import { emitWarning } from 'node:process'; function emitMyWarning() { if (!emitMyWarning.warned) { @@ -1504,7 +1506,7 @@ emitMyWarning(); ``` ```cjs -const { emitWarning } = require('process'); +const { emitWarning } = require('node:process'); function emitMyWarning() { if (!emitMyWarning.warned) { @@ -1525,7 +1527,7 @@ added: v0.1.27 changes: - version: v11.14.0 pr-url: https://github.com/nodejs/node/pull/26544 - description: Worker threads will now use a copy of the parent thread’s + description: Worker threads will now use a copy of the parent thread's `process.env` by default, configurable through the `env` option of the `Worker` constructor. - version: v10.0.0 @@ -1569,14 +1571,14 @@ $ node -e 'process.env.foo = "bar"' && echo $foo While the following will: ```mjs -import { env } from 'process'; +import { env } from 'node:process'; env.foo = 'bar'; console.log(env.foo); ``` ```cjs -const { env } = require('process'); +const { env } = require('node:process'); env.foo = 'bar'; console.log(env.foo); @@ -1587,7 +1589,7 @@ to a string. **This behavior is deprecated.** Future versions of Node.js may throw an error when the value is not a string, number, or boolean. ```mjs -import { env } from 'process'; +import { env } from 'node:process'; env.test = null; console.log(env.test); @@ -1598,7 +1600,7 @@ console.log(env.test); ``` ```cjs -const { env } = require('process'); +const { env } = require('node:process'); env.test = null; console.log(env.test); @@ -1611,7 +1613,7 @@ console.log(env.test); Use `delete` to delete a property from `process.env`. ```mjs -import { env } from 'process'; +import { env } from 'node:process'; env.TEST = 1; delete env.TEST; @@ -1620,7 +1622,7 @@ console.log(env.TEST); ``` ```cjs -const { env } = require('process'); +const { env } = require('node:process'); env.TEST = 1; delete env.TEST; @@ -1631,7 +1633,7 @@ console.log(env.TEST); On Windows operating systems, environment variables are case-insensitive. ```mjs -import { env } from 'process'; +import { env } from 'node:process'; env.TEST = 1; console.log(env.test); @@ -1639,7 +1641,7 @@ console.log(env.test); ``` ```cjs -const { env } = require('process'); +const { env } = require('node:process'); env.TEST = 1; console.log(env.test); @@ -1648,7 +1650,7 @@ console.log(env.test); Unless explicitly specified when creating a [`Worker`][] instance, each [`Worker`][] thread has its own copy of `process.env`, based on its -parent thread’s `process.env`, or whatever was specified as the `env` option +parent thread's `process.env`, or whatever was specified as the `env` option to the [`Worker`][] constructor. Changes to `process.env` will not be visible across [`Worker`][] threads, and only the main thread can make changes that are visible to the operating system or to native add-ons. @@ -1725,13 +1727,13 @@ called. To exit with a 'failure' code: ```mjs -import { exit } from 'process'; +import { exit } from 'node:process'; exit(1); ``` ```cjs -const { exit } = require('process'); +const { exit } = require('node:process'); exit(1); ``` @@ -1753,7 +1755,7 @@ For instance, the following example illustrates a _misuse_ of the truncated and lost: ```mjs -import { exit } from 'process'; +import { exit } from 'node:process'; // This is an example of what *not* to do: if (someConditionNotMet()) { @@ -1763,7 +1765,7 @@ if (someConditionNotMet()) { ``` ```cjs -const { exit } = require('process'); +const { exit } = require('node:process'); // This is an example of what *not* to do: if (someConditionNotMet()) { @@ -1782,7 +1784,7 @@ Rather than calling `process.exit()` directly, the code _should_ set the scheduling any additional work for the event loop: ```mjs -import process from 'process'; +import process from 'node:process'; // How to properly set the exit code while letting // the process exit gracefully. @@ -1793,7 +1795,7 @@ if (someConditionNotMet()) { ``` ```cjs -const process = require('process'); +const process = require('node:process'); // How to properly set the exit code while letting // the process exit gracefully. @@ -1842,8 +1844,8 @@ containing the types of the active resources that are currently keeping the event loop alive. ```mjs -import { getActiveResourcesInfo } from 'process'; -import { setTimeout } from 'timers'; +import { getActiveResourcesInfo } from 'node:process'; +import { setTimeout } from 'node:timers'; console.log('Before:', getActiveResourcesInfo()); setTimeout(() => {}, 1000); @@ -1854,8 +1856,8 @@ console.log('After:', getActiveResourcesInfo()); ``` ```cjs -const { getActiveResourcesInfo } = require('process'); -const { setTimeout } = require('timers'); +const { getActiveResourcesInfo } = require('node:process'); +const { setTimeout } = require('node:timers'); console.log('Before:', getActiveResourcesInfo()); setTimeout(() => {}, 1000); @@ -1875,7 +1877,7 @@ The `process.getegid()` method returns the numerical effective group identity of the Node.js process. (See getegid(2).) ```mjs -import process from 'process'; +import process from 'node:process'; if (process.getegid) { console.log(`Current gid: ${process.getegid()}`); @@ -1883,7 +1885,7 @@ if (process.getegid) { ``` ```cjs -const process = require('process'); +const process = require('node:process'); if (process.getegid) { console.log(`Current gid: ${process.getegid()}`); @@ -1905,7 +1907,7 @@ The `process.geteuid()` method returns the numerical effective user identity of the process. (See geteuid(2).) ```mjs -import process from 'process'; +import process from 'node:process'; if (process.geteuid) { console.log(`Current uid: ${process.geteuid()}`); @@ -1913,7 +1915,7 @@ if (process.geteuid) { ``` ```cjs -const process = require('process'); +const process = require('node:process'); if (process.geteuid) { console.log(`Current uid: ${process.geteuid()}`); @@ -1935,7 +1937,7 @@ The `process.getgid()` method returns the numerical group identity of the process. (See getgid(2).) ```mjs -import process from 'process'; +import process from 'node:process'; if (process.getgid) { console.log(`Current gid: ${process.getgid()}`); @@ -1943,7 +1945,7 @@ if (process.getgid) { ``` ```cjs -const process = require('process'); +const process = require('node:process'); if (process.getgid) { console.log(`Current gid: ${process.getgid()}`); @@ -1966,7 +1968,7 @@ IDs. POSIX leaves it unspecified if the effective group ID is included but Node.js ensures it always is. ```mjs -import process from 'process'; +import process from 'node:process'; if (process.getgroups) { console.log(process.getgroups()); // [ 16, 21, 297 ] @@ -1974,7 +1976,7 @@ if (process.getgroups) { ``` ```cjs -const process = require('process'); +const process = require('node:process'); if (process.getgroups) { console.log(process.getgroups()); // [ 16, 21, 297 ] @@ -1996,7 +1998,7 @@ The `process.getuid()` method returns the numeric user identity of the process. (See getuid(2).) ```mjs -import process from 'process'; +import process from 'node:process'; if (process.getuid) { console.log(`Current uid: ${process.getuid()}`); @@ -2004,7 +2006,7 @@ if (process.getuid) { ``` ```cjs -const process = require('process'); +const process = require('node:process'); if (process.getuid) { console.log(`Current uid: ${process.getuid()}`); @@ -2054,7 +2056,7 @@ past, and not related to the time of day and therefore not subject to clock drift. The primary use is for measuring performance between intervals: ```mjs -import { hrtime } from 'process'; +import { hrtime } from 'node:process'; const NS_PER_SEC = 1e9; const time = hrtime(); @@ -2070,7 +2072,7 @@ setTimeout(() => { ``` ```cjs -const { hrtime } = require('process'); +const { hrtime } = require('node:process'); const NS_PER_SEC = 1e9; const time = hrtime(); @@ -2101,7 +2103,7 @@ argument since the difference can just be computed directly by subtraction of the two `bigint`s. ```mjs -import { hrtime } from 'process'; +import { hrtime } from 'node:process'; const start = hrtime.bigint(); // 191051479007711n @@ -2116,7 +2118,7 @@ setTimeout(() => { ``` ```cjs -const { hrtime } = require('process'); +const { hrtime } = require('node:process'); const start = hrtime.bigint(); // 191051479007711n @@ -2147,7 +2149,7 @@ access or the `CAP_SETGID` capability. Use care when dropping privileges: ```mjs -import { getgroups, initgroups, setgid } from 'process'; +import { getgroups, initgroups, setgid } from 'node:process'; console.log(getgroups()); // [ 0 ] initgroups('nodeuser', 1000); // switch user @@ -2157,7 +2159,7 @@ console.log(getgroups()); // [ 27, 30, 46, 1000 ] ``` ```cjs -const { getgroups, initgroups, setgid } = require('process'); +const { getgroups, initgroups, setgid } = require('node:process'); console.log(getgroups()); // [ 0 ] initgroups('nodeuser', 1000); // switch user @@ -2196,7 +2198,7 @@ signal sender, like the `kill` system call. The signal sent may do something other than kill the target process. ```mjs -import process, { kill } from 'process'; +import process, { kill } from 'node:process'; process.on('SIGHUP', () => { console.log('Got SIGHUP signal.'); @@ -2211,7 +2213,7 @@ kill(process.pid, 'SIGHUP'); ``` ```cjs -const process = require('process'); +const process = require('node:process'); process.on('SIGHUP', () => { console.log('Got SIGHUP signal.'); @@ -2274,7 +2276,7 @@ Returns an object describing the memory usage of the Node.js process measured in bytes. ```mjs -import { memoryUsage } from 'process'; +import { memoryUsage } from 'node:process'; console.log(memoryUsage()); // Prints: @@ -2288,7 +2290,7 @@ console.log(memoryUsage()); ``` ```cjs -const { memoryUsage } = require('process'); +const { memoryUsage } = require('node:process'); console.log(memoryUsage()); // Prints: @@ -2341,14 +2343,14 @@ This is the same value as the `rss` property provided by `process.memoryUsage()` but `process.memoryUsage.rss()` is faster. ```mjs -import { memoryUsage } from 'process'; +import { memoryUsage } from 'node:process'; console.log(memoryUsage.rss()); // 35655680 ``` ```cjs -const { rss } = require('process'); +const { rss } = require('node:process'); console.log(memoryUsage.rss()); // 35655680 @@ -2359,7 +2361,7 @@ console.log(memoryUsage.rss()); -The `querystring` module provides utilities for parsing and formatting URL +The `node:querystring` module provides utilities for parsing and formatting URL query strings. It can be accessed using: ```js -const querystring = require('querystring'); +const querystring = require('node:querystring'); ``` The `querystring` API is considered Legacy. While it is still maintained, diff --git a/doc/api/readline.md b/doc/api/readline.md index d3a01755fa0f57..443d89f8b49390 100644 --- a/doc/api/readline.md +++ b/doc/api/readline.md @@ -6,8 +6,8 @@ -The `readline` module provides an interface for reading data from a [Readable][] -stream (such as [`process.stdin`][]) one line at a time. +The `node:readline` module provides an interface for reading data from a +[Readable][] stream (such as [`process.stdin`][]) one line at a time. To use the promise-based APIs: @@ -16,7 +16,7 @@ import * as readline from 'node:readline/promises'; ``` ```cjs -const readline = require('readline/promises'); +const readline = require('node:readline/promises'); ``` To use the callback and sync APIs: @@ -26,10 +26,11 @@ import * as readline from 'node:readline'; ``` ```cjs -const readline = require('readline'); +const readline = require('node:readline'); ``` -The following simple example illustrates the basic use of the `readline` module. +The following simple example illustrates the basic use of the `node:readline` +module. ```mjs import * as readline from 'node:readline/promises'; @@ -45,8 +46,8 @@ rl.close(); ``` ```cjs -const readline = require('readline'); -const { stdin: input, stdout: output } = require('process'); +const readline = require('node:readline'); +const { stdin: input, stdout: output } = require('node:process'); const rl = readline.createInterface({ input, output }); @@ -758,7 +759,7 @@ The `readlinePromises.createInterface()` method creates a new `readlinePromises. instance. ```js -const readlinePromises = require('readline/promises'); +const readlinePromises = require('node:readline/promises'); const rl = readlinePromises.createInterface({ input: process.stdin, output: process.stdout @@ -891,7 +892,7 @@ setTimeout(() => ac.abort(), 10000); -The `repl` module provides a Read-Eval-Print-Loop (REPL) implementation that -is available both as a standalone program or includible in other applications. -It can be accessed using: +The `node:repl` module provides a Read-Eval-Print-Loop (REPL) implementation +that is available both as a standalone program or includible in other +applications. It can be accessed using: ```js -const repl = require('repl'); +const repl = require('node:repl'); ``` ## Design and features -The `repl` module exports the [`repl.REPLServer`][] class. While running, +The `node:repl` module exports the [`repl.REPLServer`][] class. While running, instances of [`repl.REPLServer`][] will accept individual lines of user input, evaluate those according to a user-defined evaluation function, then output the result. Input and output may be from `stdin` and `stdout`, respectively, or may @@ -107,7 +107,7 @@ scope. It is possible to expose a variable to the REPL explicitly by assigning it to the `context` object associated with each `REPLServer`: ```js -const repl = require('repl'); +const repl = require('node:repl'); const msg = 'message'; repl.start('> ').context.m = msg; @@ -125,7 +125,7 @@ Context properties are not read-only by default. To specify read-only globals, context properties must be defined using `Object.defineProperty()`: ```js -const repl = require('repl'); +const repl = require('node:repl'); const msg = 'message'; const r = repl.start('> '); @@ -141,7 +141,7 @@ Object.defineProperty(r.context, 'm', { The default evaluator will automatically load Node.js core modules into the REPL environment when used. For instance, unless otherwise declared as a global or scoped variable, the input `fs` will be evaluated on-demand as -`global.fs = require('fs')`. +`global.fs = require('node:fs')`. ```console > fs.createReadStream('./some/file'); @@ -284,7 +284,7 @@ The following illustrates a hypothetical example of a REPL that performs translation of text from one language to another: ```js -const repl = require('repl'); +const repl = require('node:repl'); const { Translator } = require('translator'); const myTranslator = new Translator('en', 'fr'); @@ -355,7 +355,7 @@ function for the `writer` option on construction. The following example, for instance, simply converts any input text to upper case: ```js -const repl = require('repl'); +const repl = require('node:repl'); const r = repl.start({ prompt: '> ', eval: myEval, writer: myWriter }); @@ -381,7 +381,7 @@ Instances of `repl.REPLServer` are created using the [`repl.start()`][] method or directly using the JavaScript `new` keyword. ```js -const repl = require('repl'); +const repl = require('node:repl'); const options = { useColors: true }; @@ -425,7 +425,7 @@ This can be used primarily to re-initialize REPL context to some pre-defined state: ```js -const repl = require('repl'); +const repl = require('node:repl'); function initializeContext(context) { context.m = 'test'; @@ -476,7 +476,7 @@ properties: The following example shows two new commands added to the REPL instance: ```js -const repl = require('repl'); +const repl = require('node:repl'); const replServer = repl.start({ prompt: '> ' }); replServer.defineCommand('sayhello', { @@ -654,7 +654,7 @@ The `repl.start()` method creates and starts a [`repl.REPLServer`][] instance. If `options` is a string, then it specifies the input prompt: ```js -const repl = require('repl'); +const repl = require('node:repl'); // a Unix style prompt repl.start('$ '); @@ -662,9 +662,9 @@ repl.start('$ '); ## The Node.js REPL -Node.js itself uses the `repl` module to provide its own interactive interface -for executing JavaScript. This can be used by executing the Node.js binary -without passing any arguments (or by passing the `-i` argument): +Node.js itself uses the `node:repl` module to provide its own interactive +interface for executing JavaScript. This can be used by executing the Node.js +binary without passing any arguments (or by passing the `-i` argument): ```console $ node @@ -726,8 +726,8 @@ The following example, for instance, provides separate REPLs on `stdin`, a Unix socket, and a TCP socket: ```js -const net = require('net'); -const repl = require('repl'); +const net = require('node:net'); +const repl = require('node:repl'); let connections = 0; repl.start({ diff --git a/doc/api/report.md b/doc/api/report.md index cee349d00736fb..ecfd666775506c 100644 --- a/doc/api/report.md +++ b/doc/api/report.md @@ -131,11 +131,20 @@ is provided below for reference. } ], "javascriptHeap": { - "totalMemory": 6127616, - "totalCommittedMemory": 4357352, - "usedMemory": 3221136, - "availableMemory": 1521370240, - "memoryLimit": 1526909922, + "totalMemory": 5660672, + "executableMemory": 524288, + "totalCommittedMemory": 5488640, + "availableMemory": 4341379928, + "totalGlobalHandlesMemory": 8192, + "usedGlobalHandlesMemory": 3136, + "usedMemory": 4816432, + "memoryLimit": 4345298944, + "mallocedMemory": 254128, + "externalMemory": 315644, + "peakMallocedMemory": 98752, + "nativeContextCount": 1, + "detachedContextCount": 0, + "doesZapGarbage": 0, "heapSpaces": { "read_only_space": { "memorySize": 524288, @@ -515,7 +524,7 @@ Node.js report completed When a report is written, start and end messages are issued to stderr and the filename of the report is returned to the caller. The default filename -includes the date, time, PID and a sequence number. The sequence number helps +includes the date, time, PID, and a sequence number. The sequence number helps in associating the report dump with the runtime state if generated multiple times for the same Node.js process. @@ -542,7 +551,7 @@ Special meaning is attached to `stdout` and `stderr`. Usage of these will result in report being written to the associated standard streams. In cases where standard streams are used, the value in `directory` is ignored. URLs are not supported. Defaults to a composite filename that contains -timestamp, PID and sequence number. +timestamp, PID, and sequence number. `directory` specifies the filesystem directory where the report will be written. URLs are not supported. Defaults to the current working directory of the diff --git a/doc/api/stream.md b/doc/api/stream.md index 398b553f466462..41a98aa827df74 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -7,7 +7,7 @@ A stream is an abstract interface for working with streaming data in Node.js. -The `stream` module provides an API for implementing the stream interface. +The `node:stream` module provides an API for implementing the stream interface. There are many stream objects provided by Node.js. For instance, a [request to an HTTP server][http-incoming-message] and [`process.stdout`][] @@ -16,14 +16,14 @@ are both stream instances. Streams can be readable, writable, or both. All streams are instances of [`EventEmitter`][]. -To access the `stream` module: +To access the `node:stream` module: ```js -const stream = require('stream'); +const stream = require('node:stream'); ``` -The `stream` module is useful for creating new types of stream instances. It is -usually not necessary to use the `stream` module to consume streams. +The `node:stream` module is useful for creating new types of stream instances. +It is usually not necessary to use the `node:stream` module to consume streams. ## Organization of this document @@ -56,8 +56,8 @@ added: v15.0.0 The `stream/promises` API provides an alternative set of asynchronous utility functions for streams that return `Promise` objects rather than using -callbacks. The API is accessible via `require('stream/promises')` -or `require('stream').promises`. +callbacks. The API is accessible via `require('node:stream/promises')` +or `require('node:stream').promises`. ### Object mode @@ -134,7 +134,7 @@ manner. The following is an example of using streams in a Node.js application that implements an HTTP server: ```js -const http = require('http'); +const http = require('node:http'); const server = http.createServer((req, res) => { // `req` is an http.IncomingMessage, which is a readable stream. @@ -190,7 +190,7 @@ various ways to communicate the current state of the stream. Applications that are either writing data to or consuming data from a stream are not required to implement the stream interfaces directly and will generally -have no reason to call `require('stream')`. +have no reason to call `require('node:stream')`. Developers wishing to implement new types of streams should refer to the section [API for stream implementers][]. @@ -422,7 +422,7 @@ Use `end()` instead of destroy if data should flush before close, or wait for the `'drain'` event before destroying the stream. ```cjs -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); const myStream = new Writable(); @@ -432,7 +432,7 @@ myStream.on('error', (fooErr) => console.error(fooErr.message)); // foo error ``` ```cjs -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); const myStream = new Writable(); @@ -441,7 +441,7 @@ myStream.on('error', function wontHappen() {}); ``` ```cjs -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); const myStream = new Writable(); myStream.destroy(); @@ -459,7 +459,7 @@ but instead implement [`writable._destroy()`][writable-_destroy]. ##### `writable.closed` * {boolean} @@ -477,7 +477,7 @@ added: v8.0.0 Is `true` after [`writable.destroy()`][writable-destroy] has been called. ```cjs -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); const myStream = new Writable(); @@ -523,7 +523,7 @@ Calling the [`stream.write()`][stream-write] method after calling ```js // Write 'hello, ' and then end with 'world!'. -const fs = require('fs'); +const fs = require('node:fs'); const file = fs.createWriteStream('example.txt'); file.write('hello, '); file.end('world!'); @@ -599,7 +599,7 @@ the stream has not been destroyed, errored or ended. ##### `writable.writableAborted` > Stability: 1 - Experimental @@ -637,7 +637,7 @@ called in order to fully uncork the stream. * {Error} @@ -871,7 +871,7 @@ data. While in this state, attaching a listener for the `'data'` event will not switch `readable.readableFlowing` to `true`. ```js -const { PassThrough, Writable } = require('stream'); +const { PassThrough, Writable } = require('node:stream'); const pass = new PassThrough(); const writable = new Writable(); @@ -1041,7 +1041,7 @@ event. This is also true if there never was any data to be read. For instance, in the following example, `foo.txt` is an empty file: ```js -const fs = require('fs'); +const fs = require('node:fs'); const rr = fs.createReadStream('foo.txt'); rr.on('readable', () => { console.log(`readable: ${rr.read()}`); @@ -1120,7 +1120,7 @@ Is `true` after `'close'` has been emitted. ##### `readable.destroyed` * {boolean} @@ -1200,7 +1200,7 @@ The following example pipes all of the data from the `readable` into a file named `file.txt`: ```js -const fs = require('fs'); +const fs = require('node:fs'); const readable = getReadableStreamSomehow(); const writable = fs.createWriteStream('file.txt'); // All the data from readable goes into 'file.txt'. @@ -1214,7 +1214,8 @@ The `readable.pipe()` method returns a reference to the _destination_ stream making it possible to set up chains of piped streams: ```js -const fs = require('fs'); +const fs = require('node:fs'); +const zlib = require('node:zlib'); const r = fs.createReadStream('file.txt'); const z = zlib.createGzip(); const w = fs.createWriteStream('file.txt.gz'); @@ -1387,7 +1388,7 @@ Becomes `true` when [`'end'`][] event is emitted. * {Error} @@ -1518,7 +1519,7 @@ If the `destination` is specified, but no pipe is set up for it, then the method does nothing. ```js -const fs = require('fs'); +const fs = require('node:fs'); const readable = getReadableStreamSomehow(); const writable = fs.createWriteStream('file.txt'); // All the data from readable goes into 'file.txt', @@ -1570,7 +1571,7 @@ section for more information. // Pull off a header delimited by \n\n. // Use unshift() if we get too much. // Call the callback with (error, header, stream). -const { StringDecoder } = require('string_decoder'); +const { StringDecoder } = require('node:string_decoder'); function parseHeader(stream, callback) { stream.on('error', callback); stream.on('readable', onReadable); @@ -1620,8 +1621,9 @@ added: v0.9.4 * `stream` {Stream} An "old style" readable stream * Returns: {this} -Prior to Node.js 0.10, streams did not implement the entire `stream` module API -as it is currently defined. (See [Compatibility][] for more information.) +Prior to Node.js 0.10, streams did not implement the entire `node:stream` +module API as it is currently defined. (See [Compatibility][] for more +information.) When using an older Node.js library that emits [`'data'`][] events and has a [`stream.pause()`][stream-pause] method that is advisory only, the @@ -1634,7 +1636,7 @@ libraries. ```js const { OldReader } = require('./old-api-module.js'); -const { Readable } = require('stream'); +const { Readable } = require('node:stream'); const oreader = new OldReader(); const myReader = new Readable().wrap(oreader); @@ -1656,7 +1658,7 @@ changes: * Returns: {AsyncIterator} to fully consume the stream. ```js -const fs = require('fs'); +const fs = require('node:fs'); async function print(readable) { readable.setEncoding('utf8'); @@ -1674,7 +1676,7 @@ If the loop terminates with a `break`, `return`, or a `throw`, the stream will be destroyed. In other terms, iterating over a stream will consume the stream fully. The stream will be read in chunks of size equal to the `highWaterMark` option. In the code example above, data will be in a single chunk if the file -has less then 64 KB of data because no `highWaterMark` option is provided to +has less then 64 KiB of data because no `highWaterMark` option is provided to [`fs.createReadStream()`][]. ##### `readable.iterator([options])` @@ -1697,7 +1699,7 @@ destruction of the stream if the `for await...of` loop is exited by `return`, emitted an error during iteration. ```js -const { Readable } = require('stream'); +const { Readable } = require('node:stream'); async function printIterator(readable) { for await (const chunk of readable.iterator({ destroyOnReturn: false })) { @@ -1759,8 +1761,8 @@ for every chunk in the stream. If the `fn` function returns a promise - that promise will be `await`ed before being passed to the result stream. ```mjs -import { Readable } from 'stream'; -import { Resolver } from 'dns/promises'; +import { Readable } from 'node:stream'; +import { Resolver } from 'node:dns/promises'; // With a synchronous mapper. for await (const chunk of Readable.from([1, 2, 3, 4]).map((x) => x * 2)) { @@ -1806,8 +1808,8 @@ passed to the result stream. If the `fn` function returns a promise - that promise will be `await`ed. ```mjs -import { Readable } from 'stream'; -import { Resolver } from 'dns/promises'; +import { Readable } from 'node:stream'; +import { Resolver } from 'node:dns/promises'; // With a synchronous predicate. for await (const chunk of Readable.from([1, 2, 3, 4]).filter((x) => x > 2)) { @@ -1832,7 +1834,9 @@ for await (const result of dnsResults) { ##### `readable.forEach(fn[, options])` > Stability: 1 - Experimental @@ -1864,8 +1868,8 @@ uses the [`readable`][] event in the underlying machinary and can limit the number of concurrent `fn` calls. ```mjs -import { Readable } from 'stream'; -import { Resolver } from 'dns/promises'; +import { Readable } from 'node:stream'; +import { Resolver } from 'node:dns/promises'; // With a synchronous predicate. for await (const chunk of Readable.from([1, 2, 3, 4]).filter((x) => x > 2)) { @@ -1891,7 +1895,9 @@ console.log('done'); // Stream has finished ##### `readable.toArray([options])` > Stability: 1 - Experimental @@ -1909,8 +1915,8 @@ streams. It's intended for interoperability and convenience, not as the primary way to consume streams. ```mjs -import { Readable } from 'stream'; -import { Resolver } from 'dns/promises'; +import { Readable } from 'node:stream'; +import { Resolver } from 'node:dns/promises'; await Readable.from([1, 2, 3, 4]).toArray(); // [1, 2, 3, 4] @@ -1929,7 +1935,9 @@ const dnsResults = await Readable.from([ ##### `readable.some(fn[, options])` > Stability: 1 - Experimental @@ -1955,8 +1963,8 @@ calls on the chunks return a truthy value, the promise is fulfilled with `false`. ```mjs -import { Readable } from 'stream'; -import { stat } from 'fs/promises'; +import { Readable } from 'node:stream'; +import { stat } from 'node:fs/promises'; // With a synchronous predicate. await Readable.from([1, 2, 3, 4]).some((x) => x > 2); // true @@ -2004,8 +2012,8 @@ fulfilled with value for which `fn` returned a truthy value. If all of the `undefined`. ```mjs -import { Readable } from 'stream'; -import { stat } from 'fs/promises'; +import { Readable } from 'node:stream'; +import { stat } from 'node:fs/promises'; // With a synchronous predicate. await Readable.from([1, 2, 3, 4]).find((x) => x > 2); // 3 @@ -2028,7 +2036,9 @@ console.log('done'); // Stream has finished ##### `readable.every(fn[, options])` > Stability: 1 - Experimental @@ -2053,8 +2063,8 @@ destroyed and the promise is fulfilled with `false`. If all of the `fn` calls on the chunks return a truthy value, the promise is fulfilled with `true`. ```mjs -import { Readable } from 'stream'; -import { stat } from 'fs/promises'; +import { Readable } from 'node:stream'; +import { stat } from 'node:fs/promises'; // With a synchronous predicate. await Readable.from([1, 2, 3, 4]).every((x) => x > 2); // false @@ -2077,7 +2087,9 @@ console.log('done'); // Stream has finished ##### `readable.flatMap(fn[, options])` > Stability: 1 - Experimental @@ -2103,8 +2115,8 @@ It is possible to return a stream or another iterable or async iterable from stream. ```mjs -import { Readable } from 'stream'; -import { createReadStream } from 'fs'; +import { Readable } from 'node:stream'; +import { createReadStream } from 'node:fs'; // With a synchronous mapper. for await (const chunk of Readable.from([1, 2, 3, 4]).flatMap((x) => [x, x])) { @@ -2126,7 +2138,9 @@ for await (const result of concatResult) { ##### `readable.drop(limit[, options])` > Stability: 1 - Experimental @@ -2140,7 +2154,7 @@ added: v17.5.0 This method returns a new stream with the first `limit` chunks dropped. ```mjs -import { Readable } from 'stream'; +import { Readable } from 'node:stream'; await Readable.from([1, 2, 3, 4]).drop(2).toArray(); // [3, 4] ``` @@ -2148,7 +2162,9 @@ await Readable.from([1, 2, 3, 4]).drop(2).toArray(); // [3, 4] ##### `readable.take(limit[, options])` > Stability: 1 - Experimental @@ -2162,7 +2178,7 @@ added: v17.5.0 This method returns a new stream with the first `limit` chunks. ```mjs -import { Readable } from 'stream'; +import { Readable } from 'node:stream'; await Readable.from([1, 2, 3, 4]).take(2).toArray(); // [1, 2] ``` @@ -2170,7 +2186,9 @@ await Readable.from([1, 2, 3, 4]).take(2).toArray(); // [1, 2] ##### `readable.asIndexedPairs([options])` > Stability: 1 - Experimental @@ -2185,7 +2203,7 @@ with a counter in the form `[index, chunk]`. The first index value is 0 and it increases by 1 for each chunk produced. ```mjs -import { Readable } from 'stream'; +import { Readable } from 'node:stream'; const pairs = await Readable.from(['a', 'b', 'c']).asIndexedPairs().toArray(); console.log(pairs); // [[0, 'a'], [1, 'b'], [2, 'c']] @@ -2194,7 +2212,9 @@ console.log(pairs); // [[0, 'a'], [1, 'b'], [2, 'c']] ##### `readable.reduce(fn[, initial[, options]])` > Stability: 1 - Experimental @@ -2218,7 +2238,7 @@ result from the calculation on the previous element. It returns a promise for the final value of the reduction. The reducer function iterates the stream element-by-element which means that -there is no `concurrency` parameter or parallism. To perform a `reduce` +there is no `concurrency` parameter or parallelism. To perform a `reduce` concurrently, it can be chained to the [`readable.map`][] method. If no `initial` value is supplied the first chunk of the stream is used as the @@ -2226,7 +2246,7 @@ initial value. If the stream is empty, the promise is rejected with a `TypeError` with the `ERR_INVALID_ARGS` code property. ```mjs -import { Readable } from 'stream'; +import { Readable } from 'node:stream'; const ten = await Readable.from([1, 2, 3, 4]).reduce((previous, data) => { return previous + data; @@ -2361,7 +2381,8 @@ A function to get notified when a stream is no longer readable, writable or has experienced an error or a premature close event. ```js -const { finished } = require('stream'); +const { finished } = require('node:stream'); +const fs = require('node:fs'); const rs = fs.createReadStream('archive.tar'); @@ -2383,7 +2404,8 @@ or `'finish'`. The `finished` API provides promise version: ```js -const { finished } = require('stream/promises'); +const { finished } = require('node:stream/promises'); +const fs = require('node:fs'); const rs = fs.createReadStream('archive.tar'); @@ -2417,7 +2439,7 @@ const cleanup = finished(rs, (err) => { -The `stream` module API has been designed to make it possible to easily +The `node:stream` module API has been designed to make it possible to easily implement streams using JavaScript's prototypal inheritance model. First, a stream developer would declare a new JavaScript class that extends one @@ -2948,7 +3080,7 @@ parent class constructor: ```js -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); class MyWritable extends Writable { constructor({ highWaterMark, ...options }) { @@ -2999,7 +3131,7 @@ inheritance. This can be accomplished by directly creating instances of the objects and passing appropriate methods as constructor options. ```js -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); const myWritable = new Writable({ construct(callback) { @@ -3047,7 +3179,7 @@ changes: * `options` {Object} * `highWaterMark` {number} Buffer level when [`stream.write()`][stream-write] starts returning `false`. **Default:** - `16384` (16 KB), or `16` for `objectMode` streams. + `16384` (16 KiB), or `16` for `objectMode` streams. * `decodeStrings` {boolean} Whether to encode `string`s passed to [`stream.write()`][stream-write] to `Buffer`s (with the encoding specified in the [`stream.write()`][stream-write] call) before passing @@ -3081,7 +3213,7 @@ changes: ```js -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); class MyWritable extends Writable { constructor(options) { @@ -3095,8 +3227,8 @@ class MyWritable extends Writable { Or, when using pre-ES6 style constructors: ```js -const { Writable } = require('stream'); -const util = require('util'); +const { Writable } = require('node:stream'); +const util = require('node:util'); function MyWritable(options) { if (!(this instanceof MyWritable)) @@ -3109,7 +3241,7 @@ util.inherits(MyWritable, Writable); Or, using the simplified constructor approach: ```js -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); const myWritable = new Writable({ write(chunk, encoding, callback) { @@ -3126,7 +3258,7 @@ Calling `abort` on the `AbortController` corresponding to the passed on the writeable stream. ```js -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); const controller = new AbortController(); const myWritable = new Writable({ @@ -3161,8 +3293,8 @@ has returned, delaying any `_write()`, `_final()` and `_destroy()` calls until initialize resources before the stream can be used. ```js -const { Writable } = require('stream'); -const fs = require('fs'); +const { Writable } = require('node:stream'); +const fs = require('node:fs'); class WriteStream extends Writable { constructor(filename) { @@ -3318,7 +3450,7 @@ If a `Readable` stream pipes into a `Writable` stream when `Writable` emits an error, the `Readable` stream will be unpiped. ```js -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); const myWritable = new Writable({ write(chunk, encoding, callback) { @@ -3339,7 +3471,7 @@ is not of any real particular usefulness, the example illustrates each of the required elements of a custom [`Writable`][] stream instance: ```js -const { Writable } = require('stream'); +const { Writable } = require('node:stream'); class MyWritable extends Writable { _write(chunk, encoding, callback) { @@ -3360,8 +3492,8 @@ characters encoding, such as UTF-8. The following example shows how to decode multi-byte strings using `StringDecoder` and [`Writable`][]. ```js -const { Writable } = require('stream'); -const { StringDecoder } = require('string_decoder'); +const { Writable } = require('node:stream'); +const { StringDecoder } = require('node:string_decoder'); class StringWritable extends Writable { constructor(options) { @@ -3420,7 +3552,7 @@ changes: * `options` {Object} * `highWaterMark` {number} The maximum [number of bytes][hwm-gotcha] to store in the internal buffer before ceasing to read from the underlying resource. - **Default:** `16384` (16 KB), or `16` for `objectMode` streams. + **Default:** `16384` (16 KiB), or `16` for `objectMode` streams. * `encoding` {string} If specified, then buffers will be decoded to strings using the specified encoding. **Default:** `null`. * `objectMode` {boolean} Whether this stream should behave @@ -3441,7 +3573,7 @@ changes: ```js -const { Readable } = require('stream'); +const { Readable } = require('node:stream'); class MyReadable extends Readable { constructor(options) { @@ -3455,8 +3587,8 @@ class MyReadable extends Readable { Or, when using pre-ES6 style constructors: ```js -const { Readable } = require('stream'); -const util = require('util'); +const { Readable } = require('node:stream'); +const util = require('node:util'); function MyReadable(options) { if (!(this instanceof MyReadable)) @@ -3469,7 +3601,7 @@ util.inherits(MyReadable, Readable); Or, using the simplified constructor approach: ```js -const { Readable } = require('stream'); +const { Readable } = require('node:stream'); const myReadable = new Readable({ read(size) { @@ -3483,7 +3615,7 @@ Calling `abort` on the `AbortController` corresponding to the passed on the readable created. ```js -const { Readable } = require('stream'); +const { Readable } = require('node:stream'); const controller = new AbortController(); const read = new Readable({ read(size) { @@ -3514,8 +3646,8 @@ called. This is useful to initialize state or asynchronously initialize resources before the stream can be used. ```js -const { Readable } = require('stream'); -const fs = require('fs'); +const { Readable } = require('node:stream'); +const fs = require('node:fs'); class ReadStream extends Readable { constructor(filename) { @@ -3687,7 +3819,7 @@ Throwing an `Error` from within [`readable._read()`][] or manually emitting an `'error'` event results in undefined behavior. ```js -const { Readable } = require('stream'); +const { Readable } = require('node:stream'); const myReadable = new Readable({ read(size) { @@ -3709,7 +3841,7 @@ The following is a basic example of a `Readable` stream that emits the numerals from 1 to 1,000,000 in ascending order, and then ends. ```js -const { Readable } = require('stream'); +const { Readable } = require('node:stream'); class Counter extends Readable { constructor(opt) { @@ -3780,7 +3912,7 @@ changes: ```js -const { Duplex } = require('stream'); +const { Duplex } = require('node:stream'); class MyDuplex extends Duplex { constructor(options) { @@ -3793,8 +3925,8 @@ class MyDuplex extends Duplex { Or, when using pre-ES6 style constructors: ```js -const { Duplex } = require('stream'); -const util = require('util'); +const { Duplex } = require('node:stream'); +const util = require('node:util'); function MyDuplex(options) { if (!(this instanceof MyDuplex)) @@ -3807,7 +3939,7 @@ util.inherits(MyDuplex, Duplex); Or, using the simplified constructor approach: ```js -const { Duplex } = require('stream'); +const { Duplex } = require('node:stream'); const myDuplex = new Duplex({ read(size) { @@ -3822,8 +3954,8 @@ const myDuplex = new Duplex({ When using pipeline: ```js -const { Transform, pipeline } = require('stream'); -const fs = require('fs'); +const { Transform, pipeline } = require('node:stream'); +const fs = require('node:fs'); pipeline( fs.createReadStream('object.json') @@ -3871,7 +4003,7 @@ incoming written data via the [`Writable`][] interface that is read back out via the [`Readable`][] interface. ```js -const { Duplex } = require('stream'); +const { Duplex } = require('node:stream'); const kSource = Symbol('source'); class MyDuplex extends Duplex { @@ -3912,7 +4044,7 @@ that accepts JavaScript numbers that are converted to hexadecimal strings on the `Readable` side. ```js -const { Transform } = require('stream'); +const { Transform } = require('node:stream'); // All Transform streams are also Duplex Streams. const myTransform = new Transform({ @@ -3977,7 +4109,7 @@ output on the `Readable` side is not consumed. ```js -const { Transform } = require('stream'); +const { Transform } = require('node:stream'); class MyTransform extends Transform { constructor(options) { @@ -3990,8 +4122,8 @@ class MyTransform extends Transform { Or, when using pre-ES6 style constructors: ```js -const { Transform } = require('stream'); -const util = require('util'); +const { Transform } = require('node:stream'); +const util = require('node:util'); function MyTransform(options) { if (!(this instanceof MyTransform)) @@ -4004,7 +4136,7 @@ util.inherits(MyTransform, Transform); Or, using the simplified constructor approach: ```js -const { Transform } = require('stream'); +const { Transform } = require('node:stream'); const myTransform = new Transform({ transform(chunk, encoding, callback) { @@ -4148,7 +4280,7 @@ A Node.js readable stream can be created from an asynchronous generator using the `Readable.from()` utility method: ```js -const { Readable } = require('stream'); +const { Readable } = require('node:stream'); const ac = new AbortController(); const signal = ac.signal; @@ -4177,9 +4309,9 @@ handling of backpressure and errors. [`stream.pipeline()`][] abstracts away the handling of backpressure and backpressure-related errors: ```js -const fs = require('fs'); -const { pipeline } = require('stream'); -const { pipeline: pipelinePromise } = require('stream/promises'); +const fs = require('node:fs'); +const { pipeline } = require('node:stream'); +const { pipeline: pipelinePromise } = require('node:stream/promises'); const writable = fs.createWriteStream('./file'); diff --git a/doc/api/string_decoder.md b/doc/api/string_decoder.md index a628a5a8a14cf4..70387d2edba696 100644 --- a/doc/api/string_decoder.md +++ b/doc/api/string_decoder.md @@ -6,18 +6,18 @@ -The `string_decoder` module provides an API for decoding `Buffer` objects into -strings in a manner that preserves encoded multi-byte UTF-8 and UTF-16 +The `node:string_decoder` module provides an API for decoding `Buffer` objects +into strings in a manner that preserves encoded multi-byte UTF-8 and UTF-16 characters. It can be accessed using: ```js -const { StringDecoder } = require('string_decoder'); +const { StringDecoder } = require('node:string_decoder'); ``` The following example shows the basic use of the `StringDecoder` class. ```js -const { StringDecoder } = require('string_decoder'); +const { StringDecoder } = require('node:string_decoder'); const decoder = new StringDecoder('utf8'); const cent = Buffer.from([0xC2, 0xA2]); @@ -36,7 +36,7 @@ In the following example, the three UTF-8 encoded bytes of the European Euro symbol (`€`) are written over three separate operations: ```js -const { StringDecoder } = require('string_decoder'); +const { StringDecoder } = require('node:string_decoder'); const decoder = new StringDecoder('utf8'); decoder.write(Buffer.from([0xE2])); diff --git a/doc/api/synopsis.md b/doc/api/synopsis.md index 79b881952475f6..78d17ad685bd26 100644 --- a/doc/api/synopsis.md +++ b/doc/api/synopsis.md @@ -19,7 +19,7 @@ Commands in this document start with `$` or `>` to replicate how they would appear in a user's terminal. Do not include the `$` and `>` characters. They are there to show the start of each command. -Lines that don’t start with `$` or `>` character show the output of the previous +Lines that don't start with `$` or `>` character show the output of the previous command. First, make sure to have downloaded and installed Node.js. See @@ -55,7 +55,7 @@ Open `hello-world.js` in any preferred text editor and paste in the following content: ```js -const http = require('http'); +const http = require('node:http'); const hostname = '127.0.0.1'; const port = 3000; diff --git a/doc/api/test.md b/doc/api/test.md index 9ce8b731a460e9..52620899191142 100644 --- a/doc/api/test.md +++ b/doc/api/test.md @@ -1,6 +1,6 @@ # Test runner - + > Stability: 1 - Experimental @@ -219,10 +219,71 @@ test('a test that creates asynchronous activity', (t) => { }); ``` +## Running tests from the command line + +The Node.js test runner can be invoked from the command line by passing the +[`--test`][] flag: + +```bash +node --test +``` + +By default, Node.js will recursively search the current directory for +JavaScript source files matching a specific naming convention. Matching files +are executed as test files. More information on the expected test file naming +convention and behavior can be found in the [test runner execution model][] +section. + +Alternatively, one or more paths can be provided as the final argument(s) to +the Node.js command, as shown below. + +```bash +node --test test1.js test2.mjs custom_test_dir/ +``` + +In this example, the test runner will execute the files `test1.js` and +`test2.mjs`. The test runner will also recursively search the +`custom_test_dir/` directory for test files to execute. + +### Test runner execution model + +When searching for test files to execute, the test runner behaves as follows: + +* Any files explicitly provided by the user are executed. +* If the user did not explicitly specify any paths, the current working + directory is recursively searched for files as specified in the following + steps. +* `node_modules` directories are skipped unless explicitly provided by the + user. +* If a directory named `test` is encountered, the test runner will search it + recursively for all all `.js`, `.cjs`, and `.mjs` files. All of these files + are treated as test files, and do not need to match the specific naming + convention detailed below. This is to accommodate projects that place all of + their tests in a single `test` directory. +* In all other directories, `.js`, `.cjs`, and `.mjs` files matching the + following patterns are treated as test files: + * `^test$` - Files whose basename is the string `'test'`. Examples: + `test.js`, `test.cjs`, `test.mjs`. + * `^test-.+` - Files whose basename starts with the string `'test-'` + followed by one or more characters. Examples: `test-example.js`, + `test-another-example.mjs`. + * `.+[\.\-\_]test$` - Files whose basename ends with `.test`, `-test`, or + `_test`, preceded by one or more characters. Examples: `example.test.js`, + `example-test.cjs`, `example_test.mjs`. + * Other file types understood by Node.js such as `.node` and `.json` are not + automatically executed by the test runner, but are supported if explicitly + provided on the command line. + +Each matching test file is executed in a separate child process. If the child +process finishes with an exit code of 0, the test is considered passing. +Otherwise, the test is considered to be a failure. Test files must be +executable by Node.js, but are not required to use the `node:test` module +internally. + ## `test([name][, options][, fn])` * `name` {string} The name of the test, which is displayed when reporting test @@ -277,7 +338,7 @@ test('top level test', async (t) => { ## Class: `TestContext` An instance of `TestContext` is passed to each test function in order to @@ -287,7 +348,7 @@ exposed as part of the API. ### `context.diagnostic(message)` * `message` {string} Message to be displayed as a TAP diagnostic. @@ -296,10 +357,16 @@ This function is used to write TAP diagnostics to the output. Any diagnostic information is included at the end of the test's results. This function does not return a value. +```js +test('top level test', (t) => { + t.diagnostic('A diagnostic message'); +}); +``` + ### `context.runOnly(shouldRunOnlyTests)` * `shouldRunOnlyTests` {boolean} Whether or not to run `only` tests. @@ -309,10 +376,21 @@ have the `only` option set. Otherwise, all tests are run. If Node.js was not started with the [`--test-only`][] command-line option, this function is a no-op. +```js +test('top level test', (t) => { + // The test context can be set to run subtests with the 'only' option. + t.runOnly(true); + return Promise.all([ + t.test('this subtest is now skipped'), + t.test('this subtest is run', { only: true }), + ]); +}); +``` + ### `context.skip([message])` * `message` {string} Optional skip message to be displayed in TAP output. @@ -322,10 +400,17 @@ This function causes the test's output to indicate the test as skipped. If not terminate execution of the test function. This function does not return a value. +```js +test('top level test', (t) => { + // Make sure to return here as well if the test contains additional logic. + t.skip('this is skipped'); +}); +``` + ### `context.todo([message])` * `message` {string} Optional `TODO` message to be displayed in TAP output. @@ -334,10 +419,17 @@ This function adds a `TODO` directive to the test's output. If `message` is provided, it is included in the TAP output. Calling `todo()` does not terminate execution of the test function. This function does not return a value. +```js +test('top level test', (t) => { + // This test is marked as `TODO` + t.todo('this is a todo'); +}); +``` + ### `context.test([name][, options][, fn])` * `name` {string} The name of the subtest, which is displayed when reporting @@ -366,7 +458,21 @@ added: REPLACEME This function is used to create subtests under the current test. This function behaves in the same fashion as the top level [`test()`][] function. +```js +test('top level test', async (t) => { + await t.test( + 'This is a subtest', + { only: false, skip: false, concurrency: 1, todo: false }, + (t) => { + assert.ok('some relevant assertion here'); + } + ); +}); +``` + [TAP]: https://testanything.org/ [`--test-only`]: cli.md#--test-only +[`--test`]: cli.md#--test [`TestContext`]: #class-testcontext [`test()`]: #testname-options-fn +[test runner execution model]: #test-runner-execution-model diff --git a/doc/api/timers.md b/doc/api/timers.md index 86c70a09a214ad..d054ad7d419c32 100644 --- a/doc/api/timers.md +++ b/doc/api/timers.md @@ -8,7 +8,7 @@ The `timer` module exposes a global API for scheduling functions to be called at some future period of time. Because the timer functions are -globals, there is no need to call `require('timers')` to use the API. +globals, there is no need to call `require('node:timers')` to use the API. The timer functions within Node.js implement a similar API as the timers API provided by Web Browsers but use a different internal implementation that is @@ -169,7 +169,7 @@ event loop is doing. -The `tls` module provides an implementation of the Transport Layer Security +The `node:tls` module provides an implementation of the Transport Layer Security (TLS) and Secure Socket Layer (SSL) protocols that is built on top of OpenSSL. The module can be accessed using: ```js -const tls = require('tls'); +const tls = require('node:tls'); ``` ## Determining if crypto support is unavailable It is possible for Node.js to be built without including support for the -`crypto` module. In such cases, attempting to `import` from `tls` or -calling `require('tls')` will result in an error being thrown. +`node:crypto` module. In such cases, attempting to `import` from `tls` or +calling `require('node:tls')` will result in an error being thrown. When using CommonJS, the error thrown can be caught using try/catch: @@ -27,7 +27,7 @@ When using CommonJS, the error thrown can be caught using try/catch: ```cjs let tls; try { - tls = require('tls'); + tls = require('node:tls'); } catch (err) { console.log('tls support is disabled!'); } @@ -45,7 +45,7 @@ of Node.js where crypto support is not enabled, consider using the ```mjs let tls; try { - tls = await import('tls'); + tls = await import('node:tls'); } catch (err) { console.log('tls support is disabled!'); } @@ -127,10 +127,10 @@ the character "E" appended to the traditional abbreviations): * [ECDHE][]: An ephemeral version of the Elliptic Curve Diffie-Hellman key-agreement protocol. -To use perfect forward secrecy using `DHE` with the `tls` module, it is required -to generate Diffie-Hellman parameters and specify them with the `dhparam` -option to [`tls.createSecureContext()`][]. The following illustrates the use of -the OpenSSL command-line interface to generate such parameters: +To use perfect forward secrecy using `DHE` with the `node:tls` module, it is +required to generate Diffie-Hellman parameters and specify them with the +`dhparam` option to [`tls.createSecureContext()`][]. The following illustrates +the use of the OpenSSL command-line interface to generate such parameters: ```bash openssl dhparam -outform PEM -out dhparam.pem 2048 @@ -279,7 +279,7 @@ on disk, and they should be regenerated regularly. If clients advertise support for tickets, the server will send them. The server can disable tickets by supplying -`require('constants').SSL_OP_NO_TICKET` in `secureOptions`. +`require('node:constants').SSL_OP_NO_TICKET` in `secureOptions`. Both session identifiers and session tickets timeout, causing the server to create new sessions. The timeout can be configured with the `sessionTimeout` @@ -955,6 +955,13 @@ tlsSocket.once('session', (session) => { * Returns: {Object} @@ -1442,7 +1449,7 @@ Returns the numeric representation of the remote port. For example, `443`. -The `trace_events` module provides a mechanism to centralize tracing information -generated by V8, Node.js core, and userspace code. +The `node:trace_events` module provides a mechanism to centralize tracing +information generated by V8, Node.js core, and userspace code. Tracing can be enabled with the `--trace-event-categories` command-line flag -or by using the `trace_events` module. The `--trace-event-categories` flag +or by using the `node:trace_events` module. The `--trace-event-categories` flag accepts a list of comma-separated category names. The available categories are: @@ -32,7 +32,7 @@ The available categories are: measurements. * `node.promises.rejections`: Enables capture of trace data tracking the number of unhandled Promise rejections and handled-after-rejections. -* `node.vm.script`: Enables capture of trace data for the `vm` module's +* `node.vm.script`: Enables capture of trace data for the `node:vm` module's `runInNewContext()`, `runInContext()`, and `runInThisContext()` methods. * `v8`: The [V8][] events are GC, compiling, and execution related. @@ -55,10 +55,10 @@ node --trace-events-enabled node --trace-event-categories v8,node,node.async_hooks ``` -Alternatively, trace events may be enabled using the `trace_events` module: +Alternatively, trace events may be enabled using the `node:trace_events` module: ```js -const trace_events = require('trace_events'); +const trace_events = require('node:trace_events'); const tracing = trace_events.createTracing({ categories: ['node.perf'] }); tracing.enable(); // Enable trace event capture for the 'node.perf' category @@ -98,7 +98,7 @@ unlike `process.hrtime()` which returns nanoseconds. The features from this module are not available in [`Worker`][] threads. -## The `trace_events` module +## The `node:trace_events` module -The `tty` module provides the `tty.ReadStream` and `tty.WriteStream` classes. -In most cases, it will not be necessary or possible to use this module directly. -However, it can be accessed using: +The `node:tty` module provides the `tty.ReadStream` and `tty.WriteStream` +classes. In most cases, it will not be necessary or possible to use this module +directly. However, it can be accessed using: ```js -const tty = require('tty'); +const tty = require('node:tty'); ``` When Node.js detects that it is being run with a text terminal ("TTY") diff --git a/doc/api/url.md b/doc/api/url.md index 27bb6ade0900f6..1ba0ca9ddf3d32 100644 --- a/doc/api/url.md +++ b/doc/api/url.md @@ -6,15 +6,15 @@ -The `url` module provides utilities for URL resolution and parsing. It can be -accessed using: +The `node:url` module provides utilities for URL resolution and parsing. It can +be accessed using: ```mjs -import url from 'url'; +import url from 'node:url'; ``` ```cjs -const url = require('url'); +const url = require('node:url'); ``` ## URL strings and URL objects @@ -23,8 +23,8 @@ A URL string is a structured string containing multiple meaningful components. When parsed, a URL object is returned containing properties for each of these components. -The `url` module provides two APIs for working with URLs: a legacy API that is -Node.js specific, and a newer API that implements the same +The `node:url` module provides two APIs for working with URLs: a legacy API that +is Node.js specific, and a newer API that implements the same [WHATWG URL Standard][] used by web browsers. A comparison between the WHATWG and Legacy APIs is provided below. Above the URL @@ -66,13 +66,13 @@ const myURL = Parsing the URL string using the Legacy API: ```mjs -import url from 'url'; +import url from 'node:url'; const myURL = url.parse('https://user:pass@sub.example.com:8080/p/a/t/h?query=string#hash'); ``` ```cjs -const url = require('url'); +const url = require('node:url'); const myURL = url.parse('https://user:pass@sub.example.com:8080/p/a/t/h?query=string#hash'); ``` @@ -147,12 +147,12 @@ The URL constructor is accessible as a property on the global object. It can also be imported from the built-in url module: ```mjs -import { URL } from 'url'; +import { URL } from 'node:url'; console.log(URL === globalThis.URL); // Prints 'true'. ``` ```cjs -console.log(URL === require('url').URL); // Prints 'true'. +console.log(URL === require('node:url').URL); // Prints 'true'. ``` A `TypeError` will be thrown if the `input` or `base` are not valid URLs. Note @@ -630,7 +630,7 @@ object and can be used to retrieve the `Blob` later. const { Blob, resolveObjectURL, -} = require('buffer'); +} = require('node:buffer'); const blob = new Blob(['hello']); const id = URL.createObjectURL(blob); @@ -660,7 +660,7 @@ added: v16.7.0 `URL.createObjectURL()`. Removes the stored {Blob} identified by the given ID. Attempting to revoke a -ID that isn’t registered will silently fail. +ID that isn't registered will silently fail. ### Class: `URLSearchParams` @@ -854,7 +854,7 @@ Alias for [`urlSearchParams[@@iterator]()`][`urlSearchParams@@iterator()`]. -The `util` module supports the needs of Node.js internal APIs. Many of the +The `node:util` module supports the needs of Node.js internal APIs. Many of the utilities are useful for application and module developers as well. To access it: ```js -const util = require('util'); +const util = require('node:util'); ``` ## `util.callbackify(original)` @@ -30,7 +30,7 @@ first argument will be the rejection reason (or `null` if the `Promise` resolved), and the second argument will be the resolved value. ```js -const util = require('util'); +const util = require('node:util'); async function fn() { return 'hello world'; @@ -90,7 +90,7 @@ environment variable, then the returned function operates similar to [`console.error()`][]. If not, then the returned function is a no-op. ```js -const util = require('util'); +const util = require('node:util'); const debuglog = util.debuglog('foo'); debuglog('hello from foo [%d]', 123); @@ -109,7 +109,7 @@ environment variable set, then it will not print anything. The `section` supports wildcard also: ```js -const util = require('util'); +const util = require('node:util'); const debuglog = util.debuglog('foo-bar'); debuglog('hi there, it\'s foo-bar [%d]', 2333); @@ -130,7 +130,7 @@ with a different function that doesn't have any initialization or unnecessary wrapping. ```js -const util = require('util'); +const util = require('node:util'); let debuglog = util.debuglog('internals', (debug) => { // Replace with a logging function that optimizes out // testing if the section is enabled @@ -153,7 +153,7 @@ then the returned value will be `true`. If not, then the returned value will be `false`. ```js -const util = require('util'); +const util = require('node:util'); const enabled = util.debuglog('foo').enabled; if (enabled) { console.log('hello from foo [%d]', 123); @@ -197,7 +197,7 @@ The `util.deprecate()` method wraps `fn` (which may be a function or class) in such a way that it is marked as deprecated. ```js -const util = require('util'); +const util = require('node:util'); exports.obsoleteFunction = util.deprecate(() => { // Do something here. @@ -214,7 +214,7 @@ If the same optional `code` is supplied in multiple calls to `util.deprecate()`, the warning will be emitted only once for that `code`. ```js -const util = require('util'); +const util = require('node:util'); const fn1 = util.deprecate(someFunction, someMessage, 'DEP0001'); const fn2 = util.deprecate(someOtherFunction, someOtherMessage, 'DEP0001'); @@ -260,7 +260,7 @@ changes: was not a string. - version: v11.4.0 pr-url: https://github.com/nodejs/node/pull/23708 - description: The `%d`, `%f` and `%i` specifiers now support Symbols + description: The `%d`, `%f`, and `%i` specifiers now support Symbols properly. - version: v11.4.0 pr-url: https://github.com/nodejs/node/pull/24806 @@ -435,8 +435,8 @@ As an additional convenience, `superConstructor` will be accessible through the `constructor.super_` property. ```js -const util = require('util'); -const EventEmitter = require('events'); +const util = require('node:util'); +const EventEmitter = require('node:events'); function MyStream() { EventEmitter.call(this); @@ -462,7 +462,7 @@ stream.write('It works!'); // Received data: "It works!" ES6 example using `class` and `extends`: ```js -const EventEmitter = require('events'); +const EventEmitter = require('node:events'); class MyStream extends EventEmitter { write(data) { @@ -536,7 +536,7 @@ changes: description: The `depth` default changed to `20`. - version: v11.0.0 pr-url: https://github.com/nodejs/node/pull/22756 - description: The inspection output is now limited to about 128 MB. Data + description: The inspection output is now limited to about 128 MiB. Data above that size will not be fully inspected. - version: v10.12.0 pr-url: https://github.com/nodejs/node/pull/22788 @@ -586,7 +586,7 @@ changes: * `showProxy` {boolean} If `true`, `Proxy` inspection includes the [`target` and `handler`][] objects. **Default:** `false`. * `maxArrayLength` {integer} Specifies the maximum number of `Array`, - [`TypedArray`][], [`WeakMap`][] and [`WeakSet`][] elements to include when + [`TypedArray`][], [`WeakMap`][], and [`WeakSet`][] elements to include when formatting. Set to `null` or `Infinity` to show all elements. Set to `0` or negative to show no elements. **Default:** `100`. * `maxStringLength` {integer} Specifies the maximum number of characters to @@ -642,7 +642,7 @@ util.inspect(baz); // '[foo] {}' Circular references point to their anchor by using a reference index: ```js -const { inspect } = require('util'); +const { inspect } = require('node:util'); const obj = {}; obj.a = [obj]; @@ -660,7 +660,7 @@ console.log(inspect(obj)); The following example inspects all properties of the `util` object: ```js -const util = require('util'); +const util = require('node:util'); console.log(util.inspect(util, { showHidden: true, depth: null })); ``` @@ -668,7 +668,7 @@ console.log(util.inspect(util, { showHidden: true, depth: null })); The following example highlights the effect of the `compact` option: ```js -const util = require('util'); +const util = require('node:util'); const o = { a: [1, 2, [[ @@ -724,7 +724,7 @@ guarantee which entries are displayed. That means retrieving the same with no remaining strong references may be garbage collected at any time. ```js -const { inspect } = require('util'); +const { inspect } = require('node:util'); const obj = { a: 1 }; const obj2 = { b: 2 }; @@ -738,8 +738,8 @@ The `sorted` option ensures that an object's property insertion order does not impact the result of `util.inspect()`. ```js -const { inspect } = require('util'); -const assert = require('assert'); +const { inspect } = require('node:util'); +const assert = require('node:assert'); const o1 = { b: [2, 3, 1], @@ -766,7 +766,7 @@ The `numericSeparator` option adds an underscore every three digits to all numbers. ```js -const { inspect } = require('util'); +const { inspect } = require('node:util'); const thousand = 1_000; const million = 1_000_000; @@ -778,7 +778,7 @@ console.log(thousand, million, bigNumber, bigDecimal); ``` `util.inspect()` is a synchronous method intended for debugging. Its maximum -output length is approximately 128 MB. Inputs that result in longer output will +output length is approximately 128 MiB. Inputs that result in longer output will be truncated. ### Customizing `util.inspect` colors @@ -892,7 +892,7 @@ which `util.inspect()` will invoke and use the result of when inspecting the object. ```js -const util = require('util'); +const util = require('node:util'); class Box { constructor(value) { @@ -927,7 +927,7 @@ a string but may return a value of any type that will be formatted accordingly by `util.inspect()`. ```js -const util = require('util'); +const util = require('node:util'); const obj = { foo: 'this will not show up in the inspect() output' }; obj[util.inspect.custom] = (depth) => { @@ -996,7 +996,7 @@ object containing one or more valid [`util.inspect()`][] options. Setting option properties directly is also supported. ```js -const util = require('util'); +const util = require('node:util'); const arr = Array(101).fill(0); console.log(arr); // Logs the truncated array @@ -1020,6 +1020,86 @@ Otherwise, returns `false`. See [`assert.deepStrictEqual()`][] for more information about deep strict equality. +## `util.parseArgs([config])` + + + +> Stability: 1 - Experimental + +* `config` {Object} Used to provide arguments for parsing and to configure + the parser. `config` supports the following properties: + * `args` {string\[]} array of argument strings. **Default:** `process.argv` + with `execPath` and `filename` removed. + * `options` {Object} Used to describe arguments known to the parser. + Keys of `options` are the long names of options and values are an + {Object} accepting the following properties: + * `type` {string} Type of argument, which must be either `boolean` or `string`. + * `multiple` {boolean} Whether this option can be provided multiple + times. If `true`, all values will be collected in an array. If + `false`, values for the option are last-wins. **Default:** `false`. + * `short` {string} A single character alias for the option. + * `strict`: {boolean} Should an error be thrown when unknown arguments + are encountered, or when arguments are passed that do not match the + `type` configured in `options`. + **Default:** `true`. + * `allowPositionals`: {boolean} Whether this command accepts positional + arguments. + **Default:** `false` if `strict` is `true`, otherwise `true`. + +* Returns: {Object} The parsed command line arguments: + * `values` {Object} A mapping of parsed option names with their {string} + or {boolean} values. + * `positionals` {string\[]} Positional arguments. + +Provides a higher level API for command-line argument parsing than interacting +with `process.argv` directly. Takes a specification for the expected arguments +and returns a structured object with the parsed options and positionals. + +```mjs +import { parseArgs } from 'node:util'; +const args = ['-f', '--bar', 'b']; +const options = { + foo: { + type: 'boolean', + short: 'f' + }, + bar: { + type: 'string' + } +}; +const { + values, + positionals +} = parseArgs({ args, options }); +console.log(values, positionals); +// Prints: [Object: null prototype] { foo: true, bar: 'b' } [] +``` + +```cjs +const { parseArgs } = require('node:util'); +const args = ['-f', '--bar', 'b']; +const options = { + foo: { + type: 'boolean', + short: 'f' + }, + bar: { + type: 'string' + } +}; +const { + values, + positionals +} = parseArgs({ args, options }); +console.log(values, positionals); +// Prints: [Object: null prototype] { foo: true, bar: 'b' } [] +``` + +`util.parseArgs` is experimental and behavior may change. Join the +conversation in [pkgjs/parseargs][] to contribute to the design. + ## `util.promisify(original)` `util.types` provides type checks for different kinds of built-in objects. @@ -1409,7 +1489,7 @@ The result generally does not make any guarantees about what kinds of properties or behavior a value exposes in JavaScript. They are primarily useful for addon developers who prefer to do type checking in JavaScript. -The API is accessible via `require('util').types` or `require('util/types')`. +The API is accessible via `require('node:util').types` or `require('node:util/types')`. ### `util.types.isAnyArrayBuffer(value)` @@ -2210,7 +2290,7 @@ Alias for [`Array.isArray()`][]. Returns `true` if the given `object` is an `Array`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isArray([]); // Returns: true @@ -2235,7 +2315,7 @@ deprecated: v4.0.0 Returns `true` if the given `object` is a `Boolean`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isBoolean(1); // Returns: false @@ -2260,7 +2340,7 @@ deprecated: v4.0.0 Returns `true` if the given `object` is a `Buffer`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isBuffer({ length: 0 }); // Returns: false @@ -2285,7 +2365,7 @@ deprecated: v4.0.0 Returns `true` if the given `object` is a `Date`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isDate(new Date()); // Returns: true @@ -2311,7 +2391,7 @@ Returns `true` if the given `object` is an [`Error`][]. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isError(new Error()); // Returns: true @@ -2326,7 +2406,7 @@ possible to obtain an incorrect result when the `object` argument manipulates `@@toStringTag`. ```js -const util = require('util'); +const util = require('node:util'); const obj = { name: 'Error', message: 'an error occurred' }; util.isError(obj); @@ -2352,7 +2432,7 @@ Returns `true` if the given `object` is a `Function`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); function Foo() {} const Bar = () => {}; @@ -2381,7 +2461,7 @@ Returns `true` if the given `object` is strictly `null`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isNull(0); // Returns: false @@ -2408,7 +2488,7 @@ Returns `true` if the given `object` is `null` or `undefined`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isNullOrUndefined(0); // Returns: false @@ -2433,7 +2513,7 @@ deprecated: v4.0.0 Returns `true` if the given `object` is a `Number`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isNumber(false); // Returns: false @@ -2463,7 +2543,7 @@ Returns `true` if the given `object` is strictly an `Object` **and** not a Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isObject(5); // Returns: false @@ -2493,7 +2573,7 @@ Returns `true` if the given `object` is a primitive type. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isPrimitive(5); // Returns: true @@ -2530,7 +2610,7 @@ deprecated: v4.0.0 Returns `true` if the given `object` is a `RegExp`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isRegExp(/some regexp/); // Returns: true @@ -2555,7 +2635,7 @@ deprecated: v4.0.0 Returns `true` if the given `object` is a `string`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isString(''); // Returns: true @@ -2582,7 +2662,7 @@ deprecated: v4.0.0 Returns `true` if the given `object` is a `Symbol`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); util.isSymbol(5); // Returns: false @@ -2607,7 +2687,7 @@ deprecated: v4.0.0 Returns `true` if the given `object` is `undefined`. Otherwise, returns `false`. ```js -const util = require('util'); +const util = require('node:util'); const foo = undefined; util.isUndefined(5); @@ -2633,7 +2713,7 @@ The `util.log()` method prints the given `string` to `stdout` with an included timestamp. ```js -const util = require('util'); +const util = require('node:util'); util.log('Timestamped message.'); ``` @@ -2693,5 +2773,6 @@ util.log('Timestamped message.'); [default sort]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort [global symbol registry]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/for [list of deprecated APIS]: deprecations.md#list-of-deprecated-apis +[pkgjs/parseargs]: https://github.com/pkgjs/parseargs [semantically incompatible]: https://github.com/nodejs/node/issues/4179 [util.inspect.custom]: #utilinspectcustom diff --git a/doc/api/v8.md b/doc/api/v8.md index ca38d2ff703de2..0e58bad9dbe5c4 100644 --- a/doc/api/v8.md +++ b/doc/api/v8.md @@ -4,11 +4,11 @@ -The `v8` module exposes APIs that are specific to the version of [V8][] +The `node:v8` module exposes APIs that are specific to the version of [V8][] built into the Node.js binary. It can be accessed using: ```js -const v8 = require('v8'); +const v8 = require('node:v8'); ``` ## `v8.cachedDataVersionTag()` @@ -41,11 +41,14 @@ added: v12.8.0 * Returns: {Object} -Returns an object with the following properties: +Get statistics about code and its metadata in the heap, see V8 +[`GetHeapCodeAndMetadataStatistics`][] API. Returns an object with the +following properties: * `code_and_metadata_size` {number} * `bytecode_and_metadata_size` {number} * `external_script_source_size` {number} +* `cpu_profiler_metadata_size` {number} @@ -53,7 +56,8 @@ Returns an object with the following properties: { code_and_metadata_size: 212208, bytecode_and_metadata_size: 161368, - external_script_source_size: 1410794 + external_script_source_size: 1410794, + cpu_profiler_metadata_size: 0, } ``` @@ -80,7 +84,7 @@ for a duration depending on the heap size. ```js // Print heap snapshot to the console -const v8 = require('v8'); +const v8 = require('node:v8'); const stream = v8.getHeapSnapshot(); stream.pipe(process.stdout); ``` @@ -180,6 +184,9 @@ Returns an object with the following properties: * `does_zap_garbage` {number} * `number_of_native_contexts` {number} * `number_of_detached_contexts` {number} +* `total_global_handles_size` {number} +* `used_global_handles_size` {number} +* `external_memory` {number} `does_zap_garbage` is a 0/1 boolean, which signifies whether the `--zap_code_space` option is enabled or not. This makes V8 overwrite heap @@ -195,6 +202,15 @@ a memory leak. of contexts that were detached and not yet garbage collected. This number being non-zero indicates a potential memory leak. +`total_global_handles_size` The value of total\_global\_handles\_size is the +total memory size of V8 global handles. + +`used_global_handles_size` The value of used\_global\_handles\_size is the +used memory size of V8 global handles. + +`external_memory` The value of external\_memory is the memory size of array +buffers and external strings. + ```js @@ -209,7 +225,10 @@ being non-zero indicates a potential memory leak. peak_malloced_memory: 1127496, does_zap_garbage: 0, number_of_native_contexts: 1, - number_of_detached_contexts: 0 + number_of_detached_contexts: 0, + total_global_handles_size: 8192, + used_global_handles_size: 3296, + external_memory: 318824 } ``` @@ -233,7 +252,7 @@ Usage: ```js // Print GC events to stdout for one minute. -const v8 = require('v8'); +const v8 = require('node:v8'); v8.setFlagsFromString('--trace_gc'); setTimeout(() => { v8.setFlagsFromString('--notrace_gc'); }, 60e3); ``` @@ -275,10 +294,10 @@ disk unless [`v8.stopCoverage()`][] is invoked before the process exits. @@ -308,12 +327,12 @@ Generating a snapshot is a synchronous operation which blocks the event loop for a duration depending on the heap size. ```js -const { writeHeapSnapshot } = require('v8'); +const { writeHeapSnapshot } = require('node:v8'); const { Worker, isMainThread, parentPort -} = require('worker_threads'); +} = require('node:worker_threads'); if (isMainThread) { const worker = new Worker(__filename); @@ -437,7 +456,7 @@ For use inside of a custom [`serializer._writeHostObject()`][]. * `buffer` {Buffer|TypedArray|DataView} -Write raw bytes into the serializer’s internal buffer. The deserializer +Write raw bytes into the serializer's internal buffer. The deserializer will require a way to compute the length of the buffer. For use inside of a custom [`serializer._writeHostObject()`][]. @@ -552,7 +571,7 @@ For use inside of a custom [`deserializer._readHostObject()`][]. * `length` {integer} * Returns: {Buffer} -Read raw bytes from the deserializer’s internal buffer. The `length` parameter +Read raw bytes from the deserializer's internal buffer. The `length` parameter must correspond to the length of the buffer that was passed to [`serializer.writeRawBytes()`][]. For use inside of a custom [`deserializer._readHostObject()`][]. @@ -593,7 +612,7 @@ module to produce promise lifecycle events in addition to events for other async resources. For request context management, see [`AsyncLocalStorage`][]. ```mjs -import { promiseHooks } from 'v8'; +import { promiseHooks } from 'node:v8'; // There are four lifecycle events produced by promises: @@ -662,13 +681,13 @@ added: throw as it would produce an infinite microtask loop.** ```mjs -import { promiseHooks } from 'v8'; +import { promiseHooks } from 'node:v8'; const stop = promiseHooks.onInit((promise, parent) => {}); ``` ```cjs -const { promiseHooks } = require('v8'); +const { promiseHooks } = require('node:v8'); const stop = promiseHooks.onInit((promise, parent) => {}); ``` @@ -689,13 +708,13 @@ added: throw as it would produce an infinite microtask loop.** ```mjs -import { promiseHooks } from 'v8'; +import { promiseHooks } from 'node:v8'; const stop = promiseHooks.onSettled((promise) => {}); ``` ```cjs -const { promiseHooks } = require('v8'); +const { promiseHooks } = require('node:v8'); const stop = promiseHooks.onSettled((promise) => {}); ``` @@ -716,13 +735,13 @@ added: throw as it would produce an infinite microtask loop.** ```mjs -import { promiseHooks } from 'v8'; +import { promiseHooks } from 'node:v8'; const stop = promiseHooks.onBefore((promise) => {}); ``` ```cjs -const { promiseHooks } = require('v8'); +const { promiseHooks } = require('node:v8'); const stop = promiseHooks.onBefore((promise) => {}); ``` @@ -743,13 +762,13 @@ added: throw as it would produce an infinite microtask loop.** ```mjs -import { promiseHooks } from 'v8'; +import { promiseHooks } from 'node:v8'; const stop = promiseHooks.onAfter((promise) => {}); ``` ```cjs -const { promiseHooks } = require('v8'); +const { promiseHooks } = require('node:v8'); const stop = promiseHooks.onAfter((promise) => {}); ``` @@ -783,7 +802,7 @@ specifics of all functions that can be passed to `callbacks` is in the [Hook Callbacks][] section. ```mjs -import { promiseHooks } from 'v8'; +import { promiseHooks } from 'node:v8'; const stopAll = promiseHooks.createHook({ init(promise, parent) {} @@ -791,7 +810,7 @@ const stopAll = promiseHooks.createHook({ ``` ```cjs -const { promiseHooks } = require('v8'); +const { promiseHooks } = require('node:v8'); const stopAll = promiseHooks.createHook({ init(promise, parent) {} @@ -857,6 +876,137 @@ Called immediately after a promise continuation executes. This may be after a Called when the promise receives a resolution or rejection value. This may occur synchronously in the case of `Promise.resolve()` or `Promise.reject()`. +## Startup Snapshot API + + + +> Stability: 1 - Experimental + +The `v8.startupSnapshot` interface can be used to add serialization and +deserialization hooks for custom startup snapshots. Currently the startup +snapshots can only be built into the Node.js binary from source. + +```console +$ cd /path/to/node +$ ./configure --node-snapshot-main=entry.js +$ make node +# This binary contains the result of the execution of entry.js +$ out/Release/node +``` + +In the example above, `entry.js` can use methods from the `v8.startupSnapshot` +interface to specify how to save information for custom objects in the snapshot +during serialization and how the information can be used to synchronize these +objects during deserialization of the snapshot. For example, if the `entry.js` +contains the following script: + +```cjs +'use strict'; + +const fs = require('fs'); +const zlib = require('zlib'); +const path = require('path'); +const assert = require('assert'); + +const { + isBuildingSnapshot, + addSerializeCallback, + addDeserializeCallback, + setDeserializeMainFunction +} = require('v8').startupSnapshot; + +const filePath = path.resolve(__dirname, '../x1024.txt'); +const storage = {}; + +assert(isBuildingSnapshot()); + +addSerializeCallback(({ filePath }) => { + storage[filePath] = zlib.gzipSync(fs.readFileSync(filePath)); +}, { filePath }); + +addDeserializeCallback(({ filePath }) => { + storage[filePath] = zlib.gunzipSync(storage[filePath]); +}, { filePath }); + +setDeserializeMainFunction(({ filePath }) => { + console.log(storage[filePath].toString()); +}, { filePath }); +``` + +The resulted binary will simply print the data deserialized from the snapshot +during start up: + +```console +$ out/Release/node +# Prints content of ./test/fixtures/x1024.txt +``` + +Currently the API is only available to a Node.js instance launched from the +default snapshot, that is, the application deserialized from a user-land +snapshot cannot use these APIs again. + +### `v8.startupSnapshot.addSerializeCallback(callback[, data])` + + + +* `callback` {Function} Callback to be invoked before serialization. +* `data` {any} Optional data that will be passed to the `callback` when it + gets called. + +Add a callback that will be called when the Node.js instance is about to +get serialized into a snapshot and exit. This can be used to release +resources that should not or cannot be serialized or to convert user data +into a form more suitable for serialization. + +### `v8.startupSnapshot.addDeserializeCallback(callback[, data])` + + + +* `callback` {Function} Callback to be invoked after the snapshot is + deserialized. +* `data` {any} Optional data that will be passed to the `callback` when it + gets called. + +Add a callback that will be called when the Node.js instance is deserialized +from a snapshot. The `callback` and the `data` (if provided) will be +serialized into the snapshot, they can be used to re-initialize the state +of the application or to re-acquire resources that the application needs +when the application is restarted from the snapshot. + +### `v8.startupSnapshot.setDeserializeMainFunction(callback[, data])` + + + +* `callback` {Function} Callback to be invoked as the entry point after the + snapshot is deserialized. +* `data` {any} Optional data that will be passed to the `callback` when it + gets called. + +This sets the entry point of the Node.js application when it is deserialized +from a snapshot. This can be called only once in the snapshot building +script. If called, the deserialized application no longer needs an additional +entry point script to start up and will simply invoke the callback along with +the deserialized data (if provided), otherwise an entry point script still +needs to be provided to the deserialized application. + +### `v8.startupSnapshot.isBuildingSnapshot()` + + + +* Returns: {boolean} + +Returns true if the Node.js instance is run to build a snapshot. + [HTML structured clone algorithm]: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm [Hook Callbacks]: #hook-callbacks [V8]: https://developers.google.com/v8/ @@ -867,6 +1017,7 @@ occur synchronously in the case of `Promise.resolve()` or `Promise.reject()`. [`Deserializer`]: #class-v8deserializer [`ERR_BUFFER_TOO_LARGE`]: errors.md#err_buffer_too_large [`Error`]: errors.md#class-error +[`GetHeapCodeAndMetadataStatistics`]: https://v8docs.nodesource.com/node-13.2/d5/dda/classv8_1_1_isolate.html#a6079122af17612ef54ef3348ce170866 [`GetHeapSpaceStatistics`]: https://v8docs.nodesource.com/node-13.2/d5/dda/classv8_1_1_isolate.html#ac673576f24fdc7a33378f8f57e1d13a4 [`NODE_V8_COVERAGE`]: cli.md#node_v8_coveragedir [`Serializer`]: #class-v8serializer diff --git a/doc/api/vm.md b/doc/api/vm.md index 1938b9008afeb4..aa99c8430767a0 100644 --- a/doc/api/vm.md +++ b/doc/api/vm.md @@ -8,10 +8,10 @@ -The `vm` module enables compiling and running code within V8 Virtual +The `node:vm` module enables compiling and running code within V8 Virtual Machine contexts. -The `vm` module is not a security +The `node:vm` module is not a security mechanism. Do not use it to run untrusted code. JavaScript code can be compiled and run immediately or @@ -26,7 +26,7 @@ global variable. Any changes to global variables caused by the invoked code are reflected in the context object. ```js -const vm = require('vm'); +const vm = require('node:vm'); const x = 1; @@ -177,7 +177,7 @@ the value of another global variable, then execute the code multiple times. The globals are contained in the `context` object. ```js -const vm = require('vm'); +const vm = require('node:vm'); const context = { animal: 'cat', @@ -259,7 +259,7 @@ the code multiple times in different contexts. The globals are set on and contained within each individual `context`. ```js -const vm = require('vm'); +const vm = require('node:vm'); const script = new vm.Script('globalVar = "set"'); @@ -304,7 +304,7 @@ The following example compiles code that increments a `global` variable then executes that code multiple times: ```js -const vm = require('vm'); +const vm = require('node:vm'); global.globalVar = 0; @@ -351,7 +351,7 @@ loader][]. There is also no way to interact with the Loader yet, though support is planned. ```mjs -import vm from 'vm'; +import vm from 'node:vm'; const contextifiedObject = vm.createContext({ secret: 42, @@ -422,7 +422,7 @@ await bar.evaluate(); ``` ```cjs -const vm = require('vm'); +const vm = require('node:vm'); const contextifiedObject = vm.createContext({ secret: 42, @@ -560,6 +560,8 @@ The identifier of the current module, as set in the constructor. // ^^^^^ the module specifier ``` + * `referencingModule` {vm.Module} The `Module` object `link()` is called on. + * `extra` {Object} * `assert` {Object} The data from the assertion: @@ -571,8 +573,6 @@ The identifier of the current module, as set in the constructor. support, as opposed to, for example, triggering an error if an unsupported assertion is present. - * `referencingModule` {vm.Module} The `Module` object `link()` is called on. - * Returns: {vm.Module|Promise} * Returns: {Promise} @@ -712,7 +712,7 @@ allow the module to access information outside the specified `context`. Use `vm.runInContext()` to create objects in a specific context. ```mjs -import vm from 'vm'; +import vm from 'node:vm'; const contextifiedObject = vm.createContext({ secret: 42 }); @@ -740,7 +740,7 @@ await module.evaluate(); ``` ```cjs -const vm = require('vm'); +const vm = require('node:vm'); const contextifiedObject = vm.createContext({ secret: 42 }); (async () => { const module = new vm.SourceTextModule( @@ -812,7 +812,7 @@ provide a generic interface for exposing non-JavaScript sources to ECMAScript module graphs. ```js -const vm = require('vm'); +const vm = require('node:vm'); const source = '{ "a": 1 }'; const module = new vm.SyntheticModule(['default'], function() { @@ -863,7 +863,7 @@ it is called before the module is linked, an [`ERR_VM_MODULE_STATUS`][] error will be thrown. ```mjs -import vm from 'vm'; +import vm from 'node:vm'; const m = new vm.SyntheticModule(['x'], () => { m.setExport('x', 1); @@ -876,7 +876,7 @@ assert.strictEqual(m.namespace.x, 1); ``` ```cjs -const vm = require('vm'); +const vm = require('node:vm'); (async () => { const m = new vm.SyntheticModule(['x'], () => { m.setExport('x', 1); @@ -999,7 +999,7 @@ properties but also having the built-in objects and functions any standard will remain unchanged. ```js -const vm = require('vm'); +const vm = require('node:vm'); global.globalVar = 3; @@ -1075,7 +1075,7 @@ the V8 engine, while the result of `v8.getHeapSpaceStatistics()` measure the memory occupied by each heap space in the current V8 instance. ```js -const vm = require('vm'); +const vm = require('node:vm'); // Measure the memory used by the main context. vm.measureMemory({ mode: 'summary' }) // This is the same as vm.measureMemory() @@ -1190,7 +1190,7 @@ The following example compiles and executes different scripts using a single [contextified][] object: ```js -const vm = require('vm'); +const vm = require('node:vm'); const contextObject = { globalVar: 1 }; vm.createContext(contextObject); @@ -1302,7 +1302,7 @@ The following example compiles and executes code that increments a global variable and sets a new one. These globals are contained in the `contextObject`. ```js -const vm = require('vm'); +const vm = require('node:vm'); const contextObject = { animal: 'cat', @@ -1388,7 +1388,7 @@ the JavaScript [`eval()`][] function to run the same code: ```js -const vm = require('vm'); +const vm = require('node:vm'); let localVar = 'initial value'; const vmResult = vm.runInThisContext('localVar = "vm";'); @@ -1412,17 +1412,17 @@ When using either [`script.runInThisContext()`][] or [`vm.runInThisContext()`][], the code is executed within the current V8 global context. The code passed to this VM context will have its own isolated scope. -In order to run a simple web server using the `http` module the code passed to -the context must either call `require('http')` on its own, or have a reference -to the `http` module passed to it. For instance: +In order to run a simple web server using the `node:http` module the code passed +to the context must either call `require('node:http')` on its own, or have a +reference to the `node:http` module passed to it. For instance: ```js 'use strict'; -const vm = require('vm'); +const vm = require('node:vm'); const code = ` ((require) => { - const http = require('http'); + const http = require('node:http'); http.createServer((request, response) => { response.writeHead(200, { 'Content-Type': 'text/plain' }); @@ -1451,9 +1451,9 @@ According to the [V8 Embedder's Guide][]: When the method `vm.createContext()` is called, the `contextObject` argument (or a newly-created object if `contextObject` is `undefined`) is associated internally with a new instance of a V8 Context. This V8 Context provides the -`code` run using the `vm` module's methods with an isolated global environment -within which it can operate. The process of creating the V8 Context and -associating it with the `contextObject` is what this document refers to as +`code` run using the `node:vm` module's methods with an isolated global +environment within which it can operate. The process of creating the V8 Context +and associating it with the `contextObject` is what this document refers to as "contextifying" the object. ## Timeout interactions with asynchronous tasks and Promises @@ -1469,7 +1469,7 @@ timeout of 5 milliseconds schedules an infinite loop to run after a promise resolves. The scheduled loop is never interrupted by the timeout: ```js -const vm = require('vm'); +const vm = require('node:vm'); function loop() { console.log('entering loop'); @@ -1489,7 +1489,7 @@ This can be addressed by passing `microtaskMode: 'afterEvaluate'` to the code that creates the `Context`: ```js -const vm = require('vm'); +const vm = require('node:vm'); function loop() { while (1) console.log(Date.now()); diff --git a/doc/api/wasi.md b/doc/api/wasi.md index 644daa217e900e..1b457201345ff0 100644 --- a/doc/api/wasi.md +++ b/doc/api/wasi.md @@ -11,9 +11,9 @@ specification. WASI gives sandboxed WebAssembly applications access to the underlying operating system via a collection of POSIX-like functions. ```mjs -import { readFile } from 'fs/promises'; +import { readFile } from 'node:fs/promises'; import { WASI } from 'wasi'; -import { argv, env } from 'process'; +import { argv, env } from 'node:process'; const wasi = new WASI({ args: argv, @@ -37,10 +37,10 @@ wasi.start(instance); ```cjs 'use strict'; -const { readFile } = require('fs/promises'); +const { readFile } = require('node:fs/promises'); const { WASI } = require('wasi'); -const { argv, env } = require('process'); -const { join } = require('path'); +const { argv, env } = require('node:process'); +const { join } = require('node:path'); const wasi = new WASI({ args: argv, diff --git a/doc/api/webcrypto.md b/doc/api/webcrypto.md index 618a9cfdcfce4c..3a91d0d5e1c63a 100644 --- a/doc/api/webcrypto.md +++ b/doc/api/webcrypto.md @@ -1,15 +1,38 @@ # Web Crypto API + + > Stability: 1 - Experimental Node.js provides an implementation of the standard [Web Crypto API][]. -Use `require('crypto').webcrypto` to access this module. +Use `require('node:crypto').webcrypto` to access this module. ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; (async function() { @@ -39,7 +62,7 @@ or asymmetric key pairs (public key and private key). #### AES keys ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; async function generateAesKey(length = 256) { const key = await subtle.generateKey({ @@ -54,7 +77,7 @@ async function generateAesKey(length = 256) { #### ECDSA key pairs ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; async function generateEcKey(namedCurve = 'P-521') { const { @@ -69,22 +92,22 @@ async function generateEcKey(namedCurve = 'P-521') { } ``` -#### ED25519/ED448/X25519/X448 key pairs +#### Ed25519/Ed448/X25519/X448 key pairs + +> Stability: 1 - Experimental ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; async function generateEd25519Key() { return subtle.generateKey({ - name: 'NODE-ED25519', - namedCurve: 'NODE-ED25519', + name: 'Ed25519', }, true, ['sign', 'verify']); } async function generateX25519Key() { return subtle.generateKey({ - name: 'ECDH', - namedCurve: 'NODE-X25519', + name: 'X25519', }, true, ['deriveKey']); } ``` @@ -92,7 +115,7 @@ async function generateX25519Key() { #### HMAC keys ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; async function generateHmacKey(hash = 'SHA-256') { const key = await subtle.generateKey({ @@ -107,7 +130,7 @@ async function generateHmacKey(hash = 'SHA-256') { #### RSA key pairs ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; const publicExponent = new Uint8Array([1, 0, 1]); async function generateRsaKey(modulusLength = 2048, hash = 'SHA-256') { @@ -128,7 +151,7 @@ async function generateRsaKey(modulusLength = 2048, hash = 'SHA-256') { ### Encryption and decryption ```js -const crypto = require('crypto').webcrypto; +const crypto = require('node:crypto').webcrypto; async function aesEncrypt(plaintext) { const ec = new TextEncoder(); @@ -161,7 +184,7 @@ async function aesDecrypt(ciphertext, key, iv) { ### Exporting and importing keys ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; async function generateAndExportHmacKey(format = 'jwk', hash = 'SHA-512') { const key = await subtle.generateKey({ @@ -185,7 +208,7 @@ async function importHmacKey(keyData, format = 'jwk', hash = 'SHA-512') { ### Wrapping and unwrapping keys ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; async function generateAndWrapHmacKey(format = 'jwk', hash = 'SHA-512') { const [ @@ -203,7 +226,7 @@ async function generateAndWrapHmacKey(format = 'jwk', hash = 'SHA-512') { const wrappedKey = await subtle.wrapKey(format, key, wrappingKey, 'AES-KW'); - return wrappedKey; + return { wrappedKey, wrappingKey }; } async function unwrapHmacKey( @@ -215,7 +238,7 @@ async function unwrapHmacKey( const key = await subtle.unwrapKey( format, wrappedKey, - unwrappingKey, + wrappingKey, 'AES-KW', { name: 'HMAC', hash }, true, @@ -228,7 +251,7 @@ async function unwrapHmacKey( ### Sign and verify ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; async function sign(key, data) { const ec = new TextEncoder(); @@ -252,7 +275,7 @@ async function verify(key, signature, data) { ### Deriving bits and keys ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; async function pbkdf2(pass, salt, iterations = 1000, length = 256) { const ec = new TextEncoder(); @@ -295,7 +318,7 @@ async function pbkdf2Key(pass, salt, iterations = 1000, length = 256) { ### Digest ```js -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; async function digest(data, algorithm = 'SHA-512') { const ec = new TextEncoder(); @@ -315,7 +338,11 @@ implementation and the APIs supported for each: | `'RSA-PSS'` | ✔ | ✔ | ✔ | | | | | | | ✔ | ✔ | | | `'RSA-OAEP'` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | | | | | | `'ECDSA'` | ✔ | ✔ | ✔ | | | | | | | ✔ | ✔ | | +| `'Ed25519'`[^1] | ✔ | ✔ | ✔ | | | | | | | ✔ | ✔ | | +| `'Ed448'`[^1] | ✔ | ✔ | ✔ | | | | | | | ✔ | ✔ | | | `'ECDH'` | ✔ | ✔ | ✔ | | | | | ✔ | ✔ | | | | +| `'X25519'`[^1] | ✔ | ✔ | ✔ | | | | | ✔ | ✔ | | | | +| `'X448'`[^1] | ✔ | ✔ | ✔ | | | | | ✔ | ✔ | | | | | `'AES-CTR'` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | | | | | | `'AES-CBC'` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | | | | | | `'AES-GCM'` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | | | | | @@ -327,10 +354,6 @@ implementation and the APIs supported for each: | `'SHA-256'` | | | | | | | | | | | | ✔ | | `'SHA-384'` | | | | | | | | | | | | ✔ | | `'SHA-512'` | | | | | | | | | | | | ✔ | -| `'NODE-DSA'`[^1] | ✔ | ✔ | ✔ | | | | | | | ✔ | ✔ | | -| `'NODE-DH'`[^1] | ✔ | ✔ | ✔ | | | | | ✔ | ✔ | | | | -| `'NODE-ED25519'`[^1] | ✔ | ✔ | ✔ | | | | | | | ✔ | ✔ | | -| `'NODE-ED448'`[^1] | ✔ | ✔ | ✔ | | | | | | | ✔ | ✔ | | ## Class: `Crypto` @@ -338,8 +361,9 @@ implementation and the APIs supported for each: added: v15.0.0 --> -Calling `require('crypto').webcrypto` returns an instance of the `Crypto` class. -`Crypto` is a singleton that provides access to the remainder of the crypto API. +Calling `require('node:crypto').webcrypto` returns an instance of the `Crypto` +class. `Crypto` is a singleton that provides access to the remainder of the +crypto API. ### `crypto.subtle` @@ -393,7 +417,7 @@ added: v15.0.0 -* Type: {AesKeyGenParams|RsaHashedKeyGenParams|EcKeyGenParams|HmacKeyGenParams|NodeDsaKeyGenParams|NodeDhKeyGenParams} +* Type: {AesKeyGenParams|RsaHashedKeyGenParams|EcKeyGenParams|HmacKeyGenParams} @@ -458,18 +482,17 @@ Valid key usages depend on the key algorithm (identified by | `'AES-GCM'` | ✔ | ✔ | | | | | ✔ | ✔ | | `'AES-KW'` | | | | | | | ✔ | ✔ | | `'ECDH'` | | | | | ✔ | ✔ | | | +| `'X25519'`[^1] | | | | | ✔ | ✔ | | | +| `'X448'`[^1] | | | | | ✔ | ✔ | | | | `'ECDSA'` | | | ✔ | ✔ | | | | | +| `'Ed25519'`[^1] | | | ✔ | ✔ | | | | | +| `'Ed448'`[^1] | | | ✔ | ✔ | | | | | | `'HDKF'` | | | | | ✔ | ✔ | | | | `'HMAC'` | | | ✔ | ✔ | | | | | | `'PBKDF2'` | | | | | ✔ | ✔ | | | | `'RSA-OAEP'` | ✔ | ✔ | | | | | ✔ | ✔ | | `'RSA-PSS'` | | | ✔ | ✔ | | | | | | `'RSASSA-PKCS1-v1_5'` | | | ✔ | ✔ | | | | | -| `'NODE-DSA'`[^1] | | | ✔ | ✔ | | | | | -| `'NODE-DH'`[^1] | | | | | ✔ | ✔ | | | -| `'NODE-SCRYPT'`[^1] | | | | | ✔ | ✔ | | | -| `'NODE-ED25519'`[^1] | | | ✔ | ✔ | | | | | -| `'NODE-ED448'`[^1] | | | ✔ | ✔ | | | | | ## Class: `CryptoKeyPair` @@ -529,11 +552,15 @@ The algorithms currently supported include: -* `algorithm`: {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|NodeDhDeriveBitsParams|NodeScryptParams} +* `algorithm`: {AlgorithmIdentifier|EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params} * `baseKey`: {CryptoKey} * `length`: {number} * Returns: {Promise} containing {ArrayBuffer} @@ -551,18 +578,20 @@ The algorithms currently supported include: * `'ECDH'` * `'HKDF'` * `'PBKDF2'` -* `'NODE-DH'`[^1] -* `'NODE-SCRYPT'`[^1] ### `subtle.deriveKey(algorithm, baseKey, derivedKeyAlgorithm, extractable, keyUsages)` -* `algorithm`: {EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params|NodeDhDeriveBitsParams|NodeScryptParams} +* `algorithm`: {AlgorithmIdentifier|EcdhKeyDeriveParams|HkdfParams|Pbkdf2Params} * `baseKey`: {CryptoKey} * `derivedKeyAlgorithm`: {HmacKeyGenParams|AesKeyGenParams} * `extractable`: {boolean} @@ -585,8 +614,6 @@ The algorithms currently supported include: * `'ECDH'` * `'HKDF'` * `'PBKDF2'` -* `'NODE-DH'`[^1] -* '`NODE-SCRYPT'`[^1] ### `subtle.digest(algorithm, data)` @@ -639,16 +666,18 @@ The algorithms currently supported include: -* `format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, `'jwk'`, or - `'node.keyObject'`. +* `format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. * `key`: {CryptoKey} -* Returns: {Promise} containing {ArrayBuffer}, or, if `format` is - `'node.keyObject'`, a {KeyObject}. +* Returns: {Promise} containing {ArrayBuffer}. Exports the given key into the specified format, if supported. @@ -662,9 +691,6 @@ When `format` is `'jwk'` and the export is successful, the returned promise will be resolved with a JavaScript object conforming to the [JSON Web Key][] specification. -The special `'node.keyObject'` value for `format` is a Node.js-specific -extension that allows converting a {CryptoKey} into a Node.js {KeyObject}. - | Key Type | `'spki'` | `'pkcs8'` | `'jwk'` | `'raw'` | | --------------------- | -------- | --------- | ------- | ------- | | `'AES-CBC'` | | | ✔ | ✔ | @@ -673,17 +699,14 @@ extension that allows converting a {CryptoKey} into a Node.js {KeyObject}. | `'AES-KW'` | | | ✔ | ✔ | | `'ECDH'` | ✔ | ✔ | ✔ | ✔ | | `'ECDSA'` | ✔ | ✔ | ✔ | ✔ | +| `'Ed25519'`[^1] | ✔ | ✔ | ✔ | ✔ | +| `'Ed448'`[^1] | ✔ | ✔ | ✔ | ✔ | | `'HDKF'` | | | | | | `'HMAC'` | | | ✔ | ✔ | | `'PBKDF2'` | | | | | | `'RSA-OAEP'` | ✔ | ✔ | ✔ | | | `'RSA-PSS'` | ✔ | ✔ | ✔ | | | `'RSASSA-PKCS1-v1_5'` | ✔ | ✔ | ✔ | | -| `'NODE-DSA'`[^1] | ✔ | ✔ | | | -| `'NODE-DH'`[^1] | ✔ | ✔ | | | -| `'NODE-SCRYPT'`[^1] | | | | | -| `'NODE-ED25519'`[^1] | ✔ | ✔ | ✔ | ✔ | -| `'NODE-ED448'`[^1] | ✔ | ✔ | ✔ | ✔ | ### `subtle.generateKey(algorithm, extractable, keyUsages)` @@ -693,7 +716,7 @@ added: v15.0.0 -* `algorithm`: {RsaHashedKeyGenParams|EcKeyGenParams|HmacKeyGenParams|AesKeyGenParams|NodeDsaKeyGenParams|NodeDhKeyGenParams|NodeEdKeyGenParams} +* `algorithm`: {AlgorithmIdentifier|RsaHashedKeyGenParams|EcKeyGenParams|HmacKeyGenParams|AesKeyGenParams} @@ -712,11 +735,11 @@ include: * `'RSA-PSS'` * `'RSA-OAEP'` * `'ECDSA'` +* `'Ed25519'`[^1] +* `'Ed448'`[^1] * `'ECDH'` -* `'NODE-DSA'`[^1] -* `'NODE-DH'`[^1] -* `'NODE-ED25519'`[^1] -* `'NODE-ED448'`[^1] +* `'X25519'`[^1] +* `'X448'`[^1] The {CryptoKey} (secret key) generating algorithms supported include: @@ -731,18 +754,21 @@ The {CryptoKey} (secret key) generating algorithms supported include: -* `format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, `'jwk'`, or - `'node.keyObject'`. +* `format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. * `keyData`: {ArrayBuffer|TypedArray|DataView|Buffer|KeyObject} -* `algorithm`: {RsaHashedImportParams|EcKeyImportParams|HmacImportParams|AesImportParams|Pbkdf2ImportParams|NodeDsaImportParams|NodeDhImportParams|NodeScryptImportParams|NodeEdKeyImportParams} +* `algorithm`: {AlgorithmIdentifier|RsaHashedImportParams|EcKeyImportParams|HmacImportParams} @@ -755,9 +781,6 @@ as the given `format` to create a {CryptoKey} instance using the provided `algorithm`, `extractable`, and `keyUsages` arguments. If the import is successful, the returned promise will be resolved with the created {CryptoKey}. -The special `'node.keyObject'` value for `format` is a Node.js-specific -extension that allows converting a Node.js {KeyObject} into a {CryptoKey}. - If importing a `'PBKDF2'` key, `extractable` must be `false`. The algorithms currently supported include: @@ -769,28 +792,31 @@ The algorithms currently supported include: | `'AES-GCM'` | | | ✔ | ✔ | | `'AES-KW'` | | | ✔ | ✔ | | `'ECDH'` | ✔ | ✔ | ✔ | ✔ | +| `'X25519'`[^1] | ✔ | ✔ | ✔ | ✔ | +| `'X448'`[^1] | ✔ | ✔ | ✔ | ✔ | | `'ECDSA'` | ✔ | ✔ | ✔ | ✔ | +| `'Ed25519'`[^1] | ✔ | ✔ | ✔ | ✔ | +| `'Ed448'`[^1] | ✔ | ✔ | ✔ | ✔ | | `'HDKF'` | | | | ✔ | | `'HMAC'` | | | ✔ | ✔ | | `'PBKDF2'` | | | | ✔ | | `'RSA-OAEP'` | ✔ | ✔ | ✔ | | | `'RSA-PSS'` | ✔ | ✔ | ✔ | | | `'RSASSA-PKCS1-v1_5'` | ✔ | ✔ | ✔ | | -| `'NODE-DSA'`[^1] | ✔ | ✔ | | | -| `'NODE-DH'`[^1] | ✔ | ✔ | | | -| `'NODE-SCRYPT'`[^1] | | | | ✔ | -| `'NODE-ED25519'`[^1] | ✔ | ✔ | ✔ | ✔ | -| `'NODE-ED448'`[^1] | ✔ | ✔ | ✔ | ✔ | ### `subtle.sign(algorithm, key, data)` -* `algorithm`: {RsaSignParams|RsaPssParams|EcdsaParams|HmacParams|NodeDsaSignParams} +* `algorithm`: {AlgorithmIdentifier|RsaPssParams|EcdsaParams|Ed448Params} * `key`: {CryptoKey} * `data`: {ArrayBuffer|TypedArray|DataView|Buffer} * Returns: {Promise} containing {ArrayBuffer} @@ -807,10 +833,9 @@ The algorithms currently supported include: * `'RSASSA-PKCS1-v1_5'` * `'RSA-PSS'` * `'ECDSA'` +* `'Ed25519'`[^1] +* `'Ed448'`[^1] * `'HMAC'` -* `'NODE-DSA'`[^1] -* `'NODE-ED25519'`[^1] -* `'NODE-ED448'`[^1] ### `subtle.unwrapKey(format, wrappedKey, unwrappingKey, unwrapAlgo, unwrappedKeyAlgo, extractable, keyUsages)` @@ -824,8 +849,8 @@ added: v15.0.0 -* `unwrapAlgo`: {RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams|AesKwParams} -* `unwrappedKeyAlgo`: {RsaHashedImportParams|EcKeyImportParams|HmacImportParams|AesImportParams} +* `unwrapAlgo`: {AlgorithmIdentifier|RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams} +* `unwrappedKeyAlgo`: {AlgorithmIdentifier|RsaHashedImportParams|EcKeyImportParams|HmacImportParams} @@ -862,18 +887,20 @@ The unwrapped key algorithms supported include: * `'AES-CBC'` * `'AES-GCM'` * `'AES-KW'` -* `'NODE-DSA'`[^1] -* `'NODE-DH'`[^1] ### `subtle.verify(algorithm, key, signature, data)` -* `algorithm`: {RsaSignParams|RsaPssParams|EcdsaParams|HmacParams|NodeDsaSignParams} +* `algorithm`: {AlgorithmIdentifier|RsaPssParams|EcdsaParams|Ed448Params} * `key`: {CryptoKey} * `signature`: {ArrayBuffer|TypedArray|DataView|Buffer} * `data`: {ArrayBuffer|TypedArray|DataView|Buffer} @@ -891,10 +918,9 @@ The algorithms currently supported include: * `'RSASSA-PKCS1-v1_5'` * `'RSA-PSS'` * `'ECDSA'` +* `'Ed25519'`[^1] +* `'Ed448'`[^1] * `'HMAC'` -* `'NODE-DSA'`[^1] -* `'NODE-ED25519'`[^1] -* `'NODE-ED448'`[^1] ### `subtle.wrapKey(format, key, wrappingKey, wrapAlgo)` @@ -902,12 +928,16 @@ The algorithms currently supported include: added: v15.0.0 --> + + * `format`: {string} Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. * `key`: {CryptoKey} * `wrappingKey`: {CryptoKey} -* `wrapAlgo`: {RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams|AesKwParams} +* `wrapAlgo`: {AlgorithmIdentifier|RsaOaepParams|AesCtrParams|AesCbcParams|AesGcmParams} * Returns: {Promise} containing {ArrayBuffer} + + In cryptography, "wrapping a key" refers to exporting and then encrypting the keying material. The `subtle.wrapKey()` method exports the keying material into the format identified by `format`, then encrypts it using the method and @@ -932,6 +962,20 @@ The algorithm parameter objects define the methods and parameters used by the various {SubtleCrypto} methods. While described here as "classes", they are simple JavaScript dictionary objects. +### Class: `AlgorithmIdentifier` + + + +#### `algorithmIdentifier.name` + + + +* Type: {string} + ### Class: `AesCbcParams` - -#### `aesImportParams.name` - - - -* Type: {string} Must be one of `'AES-CTR'`, `'AES-CBC'`, `'AES-GCM'`, or - `'AES-KW'`. - ### Class: `AesKeyGenParams` - -#### `aesKwParams.name` - - - -* Type: {string} Must be `'AES-KW'`. - ### Class: `EcdhKeyDeriveParams` -* Type: {string} Must be `'ECDH'`. +* Type: {string} Must be `'ECDH'`, `'X25519'`, or `'X448'`. #### `ecdhKeyDeriveParams.public` @@ -1175,8 +1195,7 @@ added: v15.0.0 added: v15.0.0 --> -* Type: {string} Must be one of `'P-256'`, `'P-384'`, `'P-521'`, - `'NODE-ED25519'`, `'NODE-ED448'`, `'NODE-X25519'`, or `'NODE-X448'`. +* Type: {string} Must be one of `'P-256'`, `'P-384'`, `'P-521'`. ### Class: `EcKeyImportParams` @@ -1198,8 +1217,34 @@ added: v15.0.0 added: v15.0.0 --> -* Type: {string} Must be one of `'P-256'`, `'P-384'`, `'P-521'`, - `'NODE-ED25519'`, `'NODE-ED448'`, `'NODE-X25519'`, or `'NODE-X448'`. +* Type: {string} Must be one of `'P-256'`, `'P-384'`, `'P-521'`. + +### Class: `Ed448Params` + + + +#### `ed448Params.name` + + + +* Type: {string} Must be `'Ed448'`. + +#### `ed448Params.context` + + + +* Type: {ArrayBuffer|TypedArray|DataView|Buffer|undefined} + +The `context` member represents the optional context data to associate with +the message. +The Node.js Web Crypto API implementation only supports zero-length context +which is equivalent to not providing context at all. ### Class: `HkdfParams` @@ -1344,34 +1389,6 @@ added: v15.0.0 * Type: {string} Must be `'HMAC'`. -### Class: `HmacParams` - - - -#### `hmacParams.name` - - - -* Type: {string} Must be `'HMAC'`. - -### Class: `Pbkdf2ImportParams` - - - -#### `pbkdf2ImportParams.name` - - - -* Type: {string} Must be `'PBKDF2'` - ### Class: `Pbkdf2Params` - -#### `rsaSignParams.name` - - - -* Type: {string} Must be `'RSASSA-PKCS1-v1_5'` - -## Node.js-specific extensions - -The Node.js Web Crypto API extends various aspects of the Web Crypto API. -These extensions are consistently identified by prepending names with the -`node.` prefix. For instance, the `'node.keyObject'` key format can be -used with the `subtle.exportKey()` and `subtle.importKey()` methods to -convert between a WebCrypto {CryptoKey} object and a Node.js {KeyObject}. - -Care should be taken when using Node.js-specific extensions as they are -not supported by other WebCrypto implementations and reduce the portability -of code to other environments. - -### `NODE-DH` Algorithm - - - -The `NODE-DH` algorithm is the common implementation of Diffie-Hellman -key agreement. - -#### Class: `NodeDhImportParams` - - - -##### `nodeDhImportParams.name` - - - -* Type: {string} Must be `'NODE-DH'`. - -#### Class: `NodeDhKeyGenParams` - - - -##### `nodeDhKeyGenParams.generator` - - - -* Type: {number} A custom generator. - -##### `nodeDhKeyGenParams.group` - - - -* Type: {string} The Diffie-Hellman group name. - -##### `nodeDhKeyGenParams.prime` - - - -* Type: {Buffer} The prime parameter. - -##### `nodeDhKeyGenParams.primeLength` - - - -* Type: {number} The length in bits of the prime. - -#### Class: NodeDhDeriveBitsParams - - - -##### `nodeDhDeriveBitsParams.public` - - - -* Type: {CryptoKey} The other parties public key. - -### `NODE-DSA` Algorithm - - - -The `NODE-DSA` algorithm is the common implementation of the DSA digital -signature algorithm. - -#### Class: `NodeDsaImportParams` - - - -##### `nodeDsaImportParams.hash` - - - -* Type: {string|Object} - -If represented as a {string}, the value must be one of: - -* `'SHA-1'` -* `'SHA-256'` -* `'SHA-384'` -* `'SHA-512'` - -If represented as an {Object}, the object must have a `name` property -whose value is one of the above listed values. - -##### `nodeDsaImportParams.name` - - - -* Type: {string} Must be `'NODE-DSA'`. - -#### Class: `NodeDsaKeyGenParams` - - - -##### `nodeDsaKeyGenParams.divisorLength` - - - -* Type: {number} - -The optional length in bits of the DSA divisor. - -##### `nodeDsaKeyGenParams.hash` - - - -* Type: {string|Object} - -If represented as a {string}, the value must be one of: - -* `'SHA-1'` -* `'SHA-256'` -* `'SHA-384'` -* `'SHA-512'` - -If represented as an {Object}, the object must have a `name` property -whose value is one of the above listed values. - -##### `nodeDsaKeyGenParams.modulusLength` - - - -* Type: {number} - -The length in bits of the DSA modulus. As a best practice, this should be -at least `2048`. - -##### `nodeDsaKeyGenParams.name` - - - -* Type: {string} Must be `'NODE-DSA'`. - -#### Class: `NodeDsaSignParams` - - - -##### `nodeDsaSignParams.name` - - - -* Type: {string} Must be `'NODE-DSA'` - -### `NODE-ED25519` and `NODE-ED448` Algorithms - - - -#### Class: `NodeEdKeyGenParams` - - - -##### `nodeEdKeyGenParams.name` - - - -* Type: {string} Must be one of `'NODE-ED25519'`, `'NODE-ED448'` or `'ECDH'`. - -##### `nodeEdKeyGenParams.namedCurve` - - - -* Type: {string} Must be one of `'NODE-ED25519'`, `'NODE-ED448'`, - `'NODE-X25519'`, or `'NODE-X448'`. - -#### Class: `NodeEdKeyImportParams` - - - -##### `nodeEdKeyImportParams.name` - - - -* Type: {string} Must be one of `'NODE-ED25519'` or `'NODE-ED448'` - if importing an `Ed25519` or `Ed448` key, or `'ECDH'` if importing - an `X25519` or `X448` key. - -##### `nodeEdKeyImportParams.namedCurve` - - - -* Type: {string} Must be one of `'NODE-ED25519'`, `'NODE-ED448'`, - `'NODE-X25519'`, or `'NODE-X448'`. - -##### `nodeEdKeyImportParams.public` - - - -* Type: {boolean} - -The `public` parameter is used to specify that the `'raw'` format key is to be -interpreted as a public key. **Default:** `false`. - -### `NODE-SCRYPT` Algorithm - - - -The `NODE-SCRYPT` algorithm is the common implementation of the scrypt key -derivation algorithm. - -#### Class: `NodeScryptImportParams` - - - -##### `nodeScryptImportParams.name` - - - -* Type: {string} Must be `'NODE-SCRYPT'`. - -#### Class: `NodeScryptParams` - - - -##### `nodeScryptParams.encoding` - - - -* Type: {string} The string encoding when `salt` is a string. - -##### `nodeScryptParams.maxmem` - - - -* Type: {number} Memory upper bound. It is an error when (approximately) - `127 * N * r > maxmem`. **Default:** `32 * 1024 * 1024`. - -##### `nodeScryptParams.N` - - - -* Type: {number} The CPU/memory cost parameter. Must e a power of two - greater than 1. **Default:** `16384`. - -##### `nodeScryptParams.p` - - - -* Type: {number} Parallelization parameter. **Default:** `1`. - -##### `nodeScryptParams.r` - - - -* Type: {number} Block size parameter. **Default:** `8`. - -##### `nodeScryptParams.salt` - - - -* Type: {string|ArrayBuffer|Buffer|TypedArray|DataView} - -[^1]: Non-standard Node.js-specific extension +[^1]: An experimental implementation of + [Secure Curves in the Web Cryptography API][] as of 05 May 2022 [JSON Web Key]: https://tools.ietf.org/html/rfc7517 [Key usages]: #cryptokeyusages +[NIST SP 800-38D]: https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf [RFC 4122]: https://www.rfc-editor.org/rfc/rfc4122.txt +[Secure Curves in the Web Cryptography API]: https://wicg.github.io/webcrypto-secure-curves/ [Web Crypto API]: https://www.w3.org/TR/WebCryptoAPI/ diff --git a/doc/api/webstreams.md b/doc/api/webstreams.md index 2e81806d85e07d..f1e5b742799958 100644 --- a/doc/api/webstreams.md +++ b/doc/api/webstreams.md @@ -5,7 +5,7 @@ @@ -62,15 +62,15 @@ for await (const value of stream) ```cjs const { ReadableStream -} = require('stream/web'); +} = require('node:stream/web'); const { setInterval: every -} = require('timers/promises'); +} = require('node:timers/promises'); const { performance -} = require('perf_hooks'); +} = require('node:perf_hooks'); const SECOND = 1000; @@ -94,7 +94,7 @@ const stream = new ReadableStream({ @@ -179,7 +179,7 @@ console.log(await reader.read()); ``` ```cjs -const { ReadableStream } = require('stream/web'); +const { ReadableStream } = require('node:stream/web'); const stream = new ReadableStream(); @@ -206,10 +206,10 @@ added: v16.5.0 * `preventAbort` {boolean} When `true`, errors in this `ReadableStream` will not cause `transform.writable` to be aborted. * `preventCancel` {boolean} When `true`, errors in the destination - `transform.writable` is not cause this `ReadableStream` to be + `transform.writable` do not cause this `ReadableStream` to be canceled. * `preventClose` {boolean} When `true`, closing this `ReadableStream` - will no cause `transform.writable` to be closed. + does not cause `transform.writable` to be closed. * `signal` {AbortSignal} Allows the transfer of data to be canceled using an {AbortController}. * Returns: {ReadableStream} From `transform.readable`. @@ -251,7 +251,7 @@ for await (const chunk of transformedStream) const { ReadableStream, TransformStream, -} = require('stream/web'); +} = require('node:stream/web'); const stream = new ReadableStream({ start(controller) { @@ -283,12 +283,11 @@ added: v16.5.0 `ReadableStream`'s data will be written. * `options` {Object} * `preventAbort` {boolean} When `true`, errors in this `ReadableStream` - will not cause `transform.writable` to be aborted. - * `preventCancel` {boolean} When `true`, errors in the destination - `transform.writable` is not cause this `ReadableStream` to be - canceled. + will not cause `destination` to be aborted. + * `preventCancel` {boolean} When `true`, errors in the `destination` + will not cause this `ReadableStream` to be canceled. * `preventClose` {boolean} When `true`, closing this `ReadableStream` - will no cause `transform.writable` to be closed. + does not cause `destination` to be closed. * `signal` {AbortSignal} Allows the transfer of data to be canceled using an {AbortController}. * Returns: A promise fulfilled with `undefined` @@ -319,7 +318,7 @@ added: v16.5.0 * `options` {Object} * `preventCancel` {boolean} When `true`, prevents the {ReadableStream} from being closed when the async iterator abruptly terminates. - **Defaults**: `false` + **Default**: `false`. Creates and returns an async iterator usable for consuming this `ReadableStream`'s data. @@ -342,7 +341,7 @@ The {ReadableStream} object supports the async iterator protocol using `for await` syntax. ```mjs -import { Buffer } from 'buffer'; +import { Buffer } from 'node:buffer'; const stream = new ReadableStream(getSomeSource()); @@ -384,7 +383,7 @@ port2.postMessage(stream, [stream]); @@ -455,13 +454,13 @@ Releases this reader's lock on the underlying {ReadableStream}. The `ReadableStreamBYOBReader` is an alternative consumer for -byte-oriented {ReadableStream}'s (those that are created with +byte-oriented {ReadableStream}s (those that are created with `underlyingSource.type` set equal to `'bytes'` when the `ReadableStream` was created). @@ -577,7 +576,7 @@ available. Do not pass a pooled {Buffer} object instance in to this method. Pooled `Buffer` objects are created using `Buffer.allocUnsafe()`, -or `Buffer.from()`, or are often returned by various `fs` module +or `Buffer.from()`, or are often returned by various `node:fs` module callbacks. These types of `Buffer`s use a shared underlying {ArrayBuffer} object that contains all of the data from all of the pooled `Buffer` instances. When a `Buffer`, {TypedArray}, @@ -706,7 +705,7 @@ Signals an error that causes the {ReadableStream} to error and close. @@ -756,7 +755,7 @@ added: v16.5.0 @@ -876,7 +875,7 @@ port2.postMessage(stream, [stream]); @@ -967,7 +966,7 @@ Appends a new chunk of data to the {WritableStream}'s queue. @@ -1001,7 +1000,7 @@ with currently pending writes canceled. @@ -1107,7 +1106,7 @@ port2.postMessage(stream, [stream]); @@ -1161,7 +1160,7 @@ to be abruptly closed with an error. @@ -1198,7 +1197,7 @@ added: v16.5.0 @@ -1235,7 +1234,7 @@ added: v16.5.0 @@ -1279,7 +1278,7 @@ added: v16.6.0 @@ -1297,7 +1296,7 @@ added: v16.6.0 * `ignoreBOM` {boolean} When `true`, the `TextDecoderStream` will include the byte order mark in the decoded result. When `false`, the byte order mark will be removed from the output. This option is only used when `encoding` is - `'utf-8'`, `'utf-16be'` or `'utf-16le'`. **Default:** `false`. + `'utf-8'`, `'utf-16be'`, or `'utf-16le'`. **Default:** `false`. Creates a new `TextDecoderStream` instance. @@ -1354,7 +1353,7 @@ added: v16.6.0 @@ -1388,7 +1387,7 @@ added: v17.0.0 @@ -1445,7 +1444,7 @@ const { buffer, json, text, -} = require('stream/consumers'); +} = require('node:stream/consumers'); ``` #### `streamConsumers.arrayBuffer(stream)` diff --git a/doc/api/worker_threads.md b/doc/api/worker_threads.md index 3e8158470d432f..e6c4b30935be50 100644 --- a/doc/api/worker_threads.md +++ b/doc/api/worker_threads.md @@ -6,11 +6,11 @@ -The `worker_threads` module enables the use of threads that execute JavaScript -in parallel. To access it: +The `node:worker_threads` module enables the use of threads that execute +JavaScript in parallel. To access it: ```js -const worker = require('worker_threads'); +const worker = require('node:worker_threads'); ``` Workers (threads) are useful for performing CPU-intensive JavaScript operations. @@ -24,7 +24,7 @@ instances. ```js const { Worker, isMainThread, parentPort, workerData -} = require('worker_threads'); +} = require('node:worker_threads'); if (isMainThread) { module.exports = function parseJSAsync(script) { @@ -68,7 +68,9 @@ added: - v15.12.0 - v14.18.0 changes: - - version: v17.5.0 + - version: + - v17.5.0 + - v16.15.0 pr-url: https://github.com/nodejs/node/pull/41272 description: No longer experimental. --> @@ -88,7 +90,7 @@ const { isMainThread, setEnvironmentData, getEnvironmentData, -} = require('worker_threads'); +} = require('node:worker_threads'); if (isMainThread) { setEnvironmentData('Hello', 'World!'); @@ -109,7 +111,7 @@ added: v10.5.0 Is `true` if this code is not running inside of a [`Worker`][] thread. ```js -const { Worker, isMainThread } = require('worker_threads'); +const { Worker, isMainThread } = require('node:worker_threads'); if (isMainThread) { // This re-loads the current file inside a Worker instance. @@ -139,7 +141,7 @@ For example, Node.js marks the `ArrayBuffer`s it uses for its This operation cannot be undone. ```js -const { MessageChannel, markAsUntransferable } = require('worker_threads'); +const { MessageChannel, markAsUntransferable } = require('node:worker_threads'); const pooledBuffer = new ArrayBuffer(8); const typedArray1 = new Uint8Array(pooledBuffer); @@ -202,7 +204,7 @@ using `worker.postMessage()` are available in this thread using `parentPort.on('message')`. ```js -const { Worker, isMainThread, parentPort } = require('worker_threads'); +const { Worker, isMainThread, parentPort } = require('node:worker_threads'); if (isMainThread) { const worker = new Worker(__filename); @@ -235,10 +237,10 @@ changes: Receive a single message from a given `MessagePort`. If no message is available, `undefined` is returned, otherwise an object with a single `message` property that contains the message payload, corresponding to the oldest message in the -`MessagePort`’s queue. +`MessagePort`'s queue. ```js -const { MessageChannel, receiveMessageOnPort } = require('worker_threads'); +const { MessageChannel, receiveMessageOnPort } = require('node:worker_threads'); const { port1, port2 } = new MessageChannel(); port1.postMessage({ hello: 'world' }); @@ -284,7 +286,7 @@ constructor, to indicate that the current thread and the Worker thread should share read and write access to the same set of environment variables. ```js -const { Worker, SHARE_ENV } = require('worker_threads'); +const { Worker, SHARE_ENV } = require('node:worker_threads'); new Worker('process.env.SET_IN_WORKER = "foo"', { eval: true, env: SHARE_ENV }) .on('exit', () => { console.log(process.env.SET_IN_WORKER); // Prints 'foo'. @@ -298,7 +300,9 @@ added: - v15.12.0 - v14.18.0 changes: - - version: v17.5.0 + - version: + - v17.5.0 + - v16.15.0 pr-url: https://github.com/nodejs/node/pull/41272 description: No longer experimental. --> @@ -332,13 +336,13 @@ added: v10.5.0 --> An arbitrary JavaScript value that contains a clone of the data passed -to this thread’s `Worker` constructor. +to this thread's `Worker` constructor. The data is cloned as if using [`postMessage()`][`port.postMessage()`], according to the [HTML structured clone algorithm][]. ```js -const { Worker, isMainThread, workerData } = require('worker_threads'); +const { Worker, isMainThread, workerData } = require('node:worker_threads'); if (isMainThread) { const worker = new Worker(__filename, { workerData: 'Hello, world!' }); @@ -352,7 +356,7 @@ if (isMainThread) { @@ -367,7 +371,7 @@ const { isMainThread, BroadcastChannel, Worker -} = require('worker_threads'); +} = require('node:worker_threads'); const bc = new BroadcastChannel('hello'); @@ -462,7 +466,7 @@ yields an object with `port1` and `port2` properties, which refer to linked [`MessagePort`][] instances. ```js -const { MessageChannel } = require('worker_threads'); +const { MessageChannel } = require('node:worker_threads'); const { port1, port2 } = new MessageChannel(); port1.on('message', (message) => console.log('received', message)); @@ -501,7 +505,7 @@ The `'close'` event is emitted once either side of the channel has been disconnected. ```js -const { MessageChannel } = require('worker_threads'); +const { MessageChannel } = require('node:worker_threads'); const { port1, port2 } = new MessageChannel(); // Prints: @@ -618,7 +622,7 @@ In particular, the significant differences to `JSON` are: * {X509Certificate}s. ```js -const { MessageChannel } = require('worker_threads'); +const { MessageChannel } = require('node:worker_threads'); const { port1, port2 } = new MessageChannel(); port1.on('message', (message) => console.log(message)); @@ -629,7 +633,7 @@ circularData.foo = circularData; port2.postMessage(circularData); ``` -`transferList` may be a list of [`ArrayBuffer`][], [`MessagePort`][] and +`transferList` may be a list of [`ArrayBuffer`][], [`MessagePort`][], and [`FileHandle`][] objects. After transferring, they are not usable on the sending side of the channel anymore (even if they are not contained in `value`). Unlike with @@ -643,7 +647,7 @@ from either thread. They cannot be listed in `transferList`. `transferList`; in that case, the underlying memory is copied rather than moved. ```js -const { MessageChannel } = require('worker_threads'); +const { MessageChannel } = require('node:worker_threads'); const { port1, port2 } = new MessageChannel(); port1.on('message', (message) => console.log(message)); @@ -670,7 +674,7 @@ The message object is cloned immediately, and can be modified after posting without having side effects. For more information on the serialization and deserialization mechanisms -behind this API, see the [serialization API of the `v8` module][v8.serdes]. +behind this API, see the [serialization API of the `node:v8` module][v8.serdes]. #### Considerations when transferring TypedArrays and Buffers @@ -763,6 +767,18 @@ port2.postMessage(new URL('https://example.org')); // Prints: { } ``` +### `port.hasRef()` + + + +> Stability: 1 - Experimental + +* Returns: {boolean} + +If true, the `MessagePort` object will keep the Node.js event loop active. + ### `port.ref()` -* `filename` {string|URL} The path to the Worker’s main script or module. Must +* `filename` {string|URL} The path to the Worker's main script or module. Must be either an absolute path or a relative path (i.e. relative to the current working directory) starting with `./` or `../`, or a WHATWG `URL` object using `file:` or `data:` protocol. @@ -939,7 +955,7 @@ changes: * `env` {Object} If set, specifies the initial value of `process.env` inside the Worker thread. As a special value, [`worker.SHARE_ENV`][] may be used to specify that the parent thread and the child thread should share their - environment variables; in that case, changes to one thread’s `process.env` + environment variables; in that case, changes to one thread's `process.env` object affect the other thread as well. **Default:** `process.env`. * `eval` {boolean} If `true` and the first argument is a `string`, interpret the first argument to the constructor as a script that is executed once the @@ -957,7 +973,7 @@ changes: * `stderr` {boolean} If this is set to `true`, then `worker.stderr` is not automatically piped through to `process.stderr` in the parent. * `workerData` {any} Any JavaScript value that is cloned and made - available as [`require('worker_threads').workerData`][]. The cloning + available as [`require('node:worker_threads').workerData`][]. The cloning occurs as described in the [HTML structured clone algorithm][], and an error is thrown if the object cannot be cloned (e.g. because it contains `function`s). @@ -1019,7 +1035,7 @@ added: v10.5.0 * `value` {any} The transmitted value The `'message'` event is emitted when the worker thread has invoked -[`require('worker_threads').parentPort.postMessage()`][]. +[`require('node:worker_threads').parentPort.postMessage()`][]. See the [`port.on('message')`][] event for more details. All messages sent from the worker thread are emitted before the @@ -1107,7 +1123,7 @@ lifetime never accumulates any `idle` time, but is still be able to process messages. ```js -const { Worker, isMainThread, parentPort } = require('worker_threads'); +const { Worker, isMainThread, parentPort } = require('node:worker_threads'); if (isMainThread) { const worker = new Worker(__filename); @@ -1141,7 +1157,7 @@ added: v10.5.0 * `transferList` {Object\[]} Send a message to the worker that is received via -[`require('worker_threads').parentPort.on('message')`][]. +[`require('node:worker_threads').parentPort.on('message')`][]. See [`port.postMessage()`][] for more details. ### `worker.ref()` @@ -1241,7 +1257,7 @@ added: v10.5.0 * {integer} An integer identifier for the referenced thread. Inside the worker thread, -it is available as [`require('worker_threads').threadId`][]. +it is available as [`require('node:worker_threads').threadId`][]. This value is unique for each `Worker` instance inside a single process. ### `worker.unref()` @@ -1286,7 +1302,7 @@ if (isMainThread) { const { Worker, isMainThread, -} = require('worker_threads'); +} = require('node:worker_threads'); if (isMainThread) { new Worker(__filename); @@ -1330,11 +1346,11 @@ thread spawned will spawn another until the application crashes. [`WebAssembly.Module`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module [`Worker constructor options`]: #new-workerfilename-options [`Worker`]: #class-worker -[`cluster` module]: cluster.md [`data:` URL]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs [`fs.close()`]: fs.md#fsclosefd-callback [`fs.open()`]: fs.md#fsopenpath-flags-mode-callback [`markAsUntransferable()`]: #workermarkasuntransferableobject +[`node:cluster` module]: cluster.md [`perf_hooks.performance`]: perf_hooks.md#perf_hooksperformance [`perf_hooks` `eventLoopUtilization()`]: perf_hooks.md#performanceeventlooputilizationutilization1-utilization2 [`port.on('message')`]: #event-message @@ -1349,12 +1365,12 @@ thread spawned will spawn another until the application crashes. [`process.stdin`]: process.md#processstdin [`process.stdout`]: process.md#processstdout [`process.title`]: process.md#processtitle -[`require('worker_threads').isMainThread`]: #workerismainthread -[`require('worker_threads').parentPort.on('message')`]: #event-message -[`require('worker_threads').parentPort.postMessage()`]: #workerpostmessagevalue-transferlist -[`require('worker_threads').parentPort`]: #workerparentport -[`require('worker_threads').threadId`]: #workerthreadid -[`require('worker_threads').workerData`]: #workerworkerdata +[`require('node:worker_threads').isMainThread`]: #workerismainthread +[`require('node:worker_threads').parentPort.on('message')`]: #event-message +[`require('node:worker_threads').parentPort.postMessage()`]: #workerpostmessagevalue-transferlist +[`require('node:worker_threads').parentPort`]: #workerparentport +[`require('node:worker_threads').threadId`]: #workerthreadid +[`require('node:worker_threads').workerData`]: #workerworkerdata [`trace_events`]: tracing.md [`v8.getHeapSnapshot()`]: v8.md#v8getheapsnapshot [`vm`]: vm.md diff --git a/doc/api/zlib.md b/doc/api/zlib.md index 0b1a7cc7ca47ba..83a767a07e0253 100644 --- a/doc/api/zlib.md +++ b/doc/api/zlib.md @@ -6,13 +6,13 @@ -The `zlib` module provides compression functionality implemented using Gzip, -Deflate/Inflate, and Brotli. +The `node:zlib` module provides compression functionality implemented using +Gzip, Deflate/Inflate, and Brotli. To access it: ```js -const zlib = require('zlib'); +const zlib = require('node:zlib'); ``` Compression and decompression are built around the Node.js [Streams API][]. @@ -22,12 +22,12 @@ piping the source stream through a `zlib` `Transform` stream into a destination stream: ```js -const { createGzip } = require('zlib'); -const { pipeline } = require('stream'); +const { createGzip } = require('node:zlib'); +const { pipeline } = require('node:stream'); const { createReadStream, createWriteStream -} = require('fs'); +} = require('node:fs'); const gzip = createGzip(); const source = createReadStream('input.txt'); @@ -42,7 +42,7 @@ pipeline(source, gzip, destination, (err) => { // Or, Promisified -const { promisify } = require('util'); +const { promisify } = require('node:util'); const pipe = promisify(pipeline); async function do_gzip(input, output) { @@ -62,7 +62,7 @@ do_gzip('input.txt', 'input.txt.gz') It is also possible to compress or decompress data in a single step: ```js -const { deflate, unzip } = require('zlib'); +const { deflate, unzip } = require('node:zlib'); const input = '.................................'; deflate(input, (err, buffer) => { @@ -84,7 +84,7 @@ unzip(buffer, (err, buffer) => { // Or, Promisified -const { promisify } = require('util'); +const { promisify } = require('node:util'); const do_unzip = promisify(unzip); do_unzip(buffer) @@ -105,7 +105,7 @@ Creating and using a large number of zlib objects simultaneously can cause significant memory fragmentation. ```js -const zlib = require('zlib'); +const zlib = require('node:zlib'); const payload = Buffer.from('This is some data'); @@ -124,7 +124,7 @@ operations be cached to avoid duplication of effort. ## Compressing HTTP requests and responses -The `zlib` module can be used to implement support for the `gzip`, `deflate` +The `node:zlib` module can be used to implement support for the `gzip`, `deflate` and `br` content-encoding mechanisms defined by [HTTP](https://tools.ietf.org/html/rfc7230#section-4.2). @@ -140,10 +140,10 @@ tradeoffs involved in `zlib` usage. ```js // Client request example -const zlib = require('zlib'); -const http = require('http'); -const fs = require('fs'); -const { pipeline } = require('stream'); +const zlib = require('node:zlib'); +const http = require('node:http'); +const fs = require('node:fs'); +const { pipeline } = require('node:stream'); const request = http.get({ host: 'example.com', path: '/', @@ -181,10 +181,10 @@ request.on('response', (response) => { // server example // Running a gzip operation on every request is quite expensive. // It would be much more efficient to cache the compressed buffer. -const zlib = require('zlib'); -const http = require('http'); -const fs = require('fs'); -const { pipeline } = require('stream'); +const zlib = require('node:zlib'); +const http = require('node:http'); +const fs = require('node:fs'); +const { pipeline } = require('node:stream'); http.createServer((request, response) => { const raw = fs.createReadStream('index.html'); @@ -304,8 +304,8 @@ speed, at the cost of memory usage. There are equivalents to the zlib options for Brotli-based streams, although these options have different ranges than the zlib ones: -* zlib’s `level` option matches Brotli’s `BROTLI_PARAM_QUALITY` option. -* zlib’s `windowBits` option matches Brotli’s `BROTLI_PARAM_LGWIN` option. +* zlib's `level` option matches Brotli's `BROTLI_PARAM_QUALITY` option. +* zlib's `windowBits` option matches Brotli's `BROTLI_PARAM_LGWIN` option. See [below][Brotli parameters] for more details on Brotli-specific options. @@ -319,9 +319,9 @@ In the following example, `flush()` is used to write a compressed partial HTTP response to the client: ```js -const zlib = require('zlib'); -const http = require('http'); -const { pipeline } = require('stream'); +const zlib = require('node:zlib'); +const http = require('node:http'); +const { pipeline } = require('node:stream'); http.createServer((request, response) => { // For the sake of simplicity, the Accept-Encoding checks are omitted. @@ -365,14 +365,14 @@ added: v0.5.8 ### zlib constants All of the constants defined in `zlib.h` are also defined on -`require('zlib').constants`. In the normal course of operations, it will not be -necessary to use these constants. They are documented so that their presence is -not surprising. This section is taken almost directly from the +`require('node:zlib').constants`. In the normal course of operations, it will +not be necessary to use these constants. They are documented so that their +presence is not surprising. This section is taken almost directly from the [zlib documentation][]. -Previously, the constants were available directly from `require('zlib')`, for -instance `zlib.Z_NO_FLUSH`. Accessing the constants directly from the module is -currently still possible but is deprecated. +Previously, the constants were available directly from `require('node:zlib')`, +for instance `zlib.Z_NO_FLUSH`. Accessing the constants directly from the module +is currently still possible but is deprecated. Allowed flush values. @@ -678,11 +678,11 @@ changes: description: This class was renamed from `Zlib` to `ZlibBase`. --> -Not exported by the `zlib` module. It is documented here because it is the base -class of the compressor/decompressor classes. +Not exported by the `node:zlib` module. It is documented here because it is the +base class of the compressor/decompressor classes. -This class inherits from [`stream.Transform`][], allowing `zlib` objects to be -used in pipes and similar stream operations. +This class inherits from [`stream.Transform`][], allowing `node:zlib` objects to +be used in pipes and similar stream operations. ### `zlib.bytesRead` diff --git a/doc/api_assets/api.js b/doc/api_assets/api.js index 4304a254600da8..8854182c4c56f0 100644 --- a/doc/api_assets/api.js +++ b/doc/api_assets/api.js @@ -15,9 +15,13 @@ } mq.addEventListener('change', mqChangeListener); if (themeToggleButton) { - themeToggleButton.addEventListener('click', function() { - mq.removeEventListener('change', mqChangeListener); - }, { once: true }); + themeToggleButton.addEventListener( + 'click', + function() { + mq.removeEventListener('change', mqChangeListener); + }, + { once: true } + ); } } @@ -60,7 +64,7 @@ for (const picker of pickers) { const parentNode = picker.parentNode; - picker.addEventListener('click', (e) => { + picker.addEventListener('click', function(e) { e.preventDefault(); /* @@ -76,7 +80,7 @@ to close pickers if needed. */ - requestAnimationFrame(() => { + requestAnimationFrame(function() { parentNode.classList.add('expanded'); window.addEventListener('click', closeAllPickers); window.addEventListener('keydown', onKeyDown); @@ -90,9 +94,9 @@ let ignoreNextIntersection = false; new IntersectionObserver( - ([e]) => { + function(e) { const currentStatus = header.classList.contains('is-pinned'); - const newStatus = e.intersectionRatio < 1; + const newStatus = e[0].intersectionRatio < 1; // Same status, do nothing if (currentStatus === newStatus) { @@ -109,7 +113,7 @@ The timer is reset anyway after few milliseconds. */ ignoreNextIntersection = true; - setTimeout(() => { + setTimeout(function() { ignoreNextIntersection = false; }, 50); @@ -119,18 +123,34 @@ ).observe(header); } + function setupAltDocsLink() { + const linkWrapper = document.getElementById('alt-docs'); + + function updateHashes() { + for (const link of linkWrapper.querySelectorAll('a')) { + link.hash = location.hash; + } + } + + addEventListener('hashchange', updateHashes); + updateHashes(); + } + function bootstrap() { - // Check if we have JavaScript support + // Check if we have JavaScript support. document.documentElement.classList.add('has-js'); - // Restore user mode preferences + // Restore user mode preferences. setupTheme(); - // Handle pickers with click/taps rather than hovers + // Handle pickers with click/taps rather than hovers. setupPickers(); - // Track when the header is in sticky position + // Track when the header is in sticky position. setupStickyHeaders(); + + // Make link to other versions of the doc open to the same hash target (if it exists). + setupAltDocsLink(); } if (document.readyState === 'loading') { diff --git a/doc/api_assets/style.css b/doc/api_assets/style.css index 14302edc061a1d..c567fbed1c23d4 100644 --- a/doc/api_assets/style.css +++ b/doc/api_assets/style.css @@ -40,6 +40,17 @@ --color-text-secondary: var(--green2); } +h4 :target, +h5 :target { + scroll-margin-top: 55px; +} + +@supports not (content-visibility: auto) { + h3 :target { + scroll-margin-top: 55px; + } +} + .dark-mode { --background-color-highlight: var(--black2); --color-critical: var(--red4); diff --git a/doc/changelogs/CHANGELOG_IOJS.md b/doc/changelogs/CHANGELOG_IOJS.md index 6d240d516c74f7..87838efc613020 100644 --- a/doc/changelogs/CHANGELOG_IOJS.md +++ b/doc/changelogs/CHANGELOG_IOJS.md @@ -62,6 +62,7 @@
18 (Current) 17 (Current) 16 (LTS) 14 (LTS)
-17.8.0
+18.4.0
+18.3.0
+18.2.0
+18.1.0
+18.0.0
+
+17.9.1
+17.9.0
+17.8.0
17.7.2
17.7.1
17.7.0
@@ -48,7 +59,9 @@ release. 17.0.0
-16.14.2
+16.15.1
+16.15.0
+16.14.2
16.14.1
16.14.0
16.13.2
@@ -75,7 +88,9 @@ release. 16.0.0
-14.19.1
+14.19.3
+14.19.2
+14.19.1
14.19.0
14.18.3
14.18.2
diff --git a/Makefile b/Makefile index 4aace77c7c8c63..dc90da2fd1e438 100644 --- a/Makefile +++ b/Makefile @@ -366,13 +366,13 @@ ADDONS_BINDING_SOURCES := \ $(filter-out test/addons/??_*/*.h, $(wildcard test/addons/*/*.h)) ADDONS_PREREQS := config.gypi \ - deps/npm/node_modules/node-gyp/package.json tools/build-addons.js \ + deps/npm/node_modules/node-gyp/package.json tools/build-addons.mjs \ deps/uv/include/*.h deps/v8/include/*.h \ src/node.h src/node_buffer.h src/node_object_wrap.h src/node_version.h define run_build_addons env npm_config_loglevel=$(LOGLEVEL) npm_config_nodedir="$$PWD" \ - npm_config_python="$(PYTHON)" $(NODE) "$$PWD/tools/build-addons" \ + npm_config_python="$(PYTHON)" $(NODE) "$$PWD/tools/build-addons.mjs" \ "$$PWD/deps/npm/node_modules/node-gyp/bin/node-gyp.js" \ $1 touch $2 @@ -679,7 +679,7 @@ ifneq ("","$(wildcard deps/v8/tools/run-tests.py)") # Related CI job: node-test-commit-v8-linux test-v8: v8 ## Runs the V8 test suite on deps/v8. export PATH="$(NO_BIN_OVERRIDE_PATH)" && \ - deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) $(V8_TEST_OPTIONS) \ + $(PYTHON) deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) $(V8_TEST_OPTIONS) \ mjsunit cctest debugger inspector message preparser \ $(TAP_V8) $(info Testing hash seed) @@ -687,13 +687,13 @@ test-v8: v8 ## Runs the V8 test suite on deps/v8. test-v8-intl: v8 export PATH="$(NO_BIN_OVERRIDE_PATH)" && \ - deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) \ + $(PYTHON) deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) \ intl \ $(TAP_V8_INTL) test-v8-benchmarks: v8 export PATH="$(NO_BIN_OVERRIDE_PATH)" && \ - deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) \ + $(PYTHON) deps/v8/tools/run-tests.py --gn --arch=$(V8_ARCH) \ benchmarks \ $(TAP_V8_BENCHMARKS) @@ -1429,8 +1429,8 @@ CLANG_FORMAT_START ?= HEAD # $ make format-cpp # To format HEAD~1...HEAD (latest commit): # $ CLANG_FORMAT_START=`git rev-parse HEAD~1` make format-cpp -# To format diff between master and current branch head (master...HEAD): -# $ CLANG_FORMAT_START=master make format-cpp +# To format diff between main and current branch head (main...HEAD): +# $ CLANG_FORMAT_START=main make format-cpp format-cpp: ## Format C++ diff from $CLANG_FORMAT_START to current changes ifneq ("","$(wildcard tools/clang-format/node_modules/)") $(info Formatting C++ diff from $(CLANG_FORMAT_START)..) diff --git a/README.md b/README.md index dd62a755949174..3b0de86cf489ae 100644 --- a/README.md +++ b/README.md @@ -180,8 +180,6 @@ For information about the governance of the Node.js project, see **Matteo Collina** <> (he/him) * [mhdawson](https://github.com/mhdawson) - **Michael Dawson** <> (he/him) -* [mmarchini](https://github.com/mmarchini) - - **Mary Marchini** <> (she/her) * [MylesBorins](https://github.com/MylesBorins) - **Myles Borins** <> (he/him) * [RaisinTen](https://github.com/RaisinTen) - @@ -227,6 +225,8 @@ For information about the governance of the Node.js project, see **Isaac Z. Schlueter** <> * [joshgav](https://github.com/joshgav) - **Josh Gavant** <> +* [mmarchini](https://github.com/mmarchini) - + **Mary Marchini** <> (she/her) * [mscdex](https://github.com/mscdex) - **Brian White** <> * [nebrius](https://github.com/nebrius) - @@ -262,8 +262,6 @@ For information about the governance of the Node.js project, see **Anna Henningsen** <> (she/her) * [aduh95](https://github.com/aduh95) - **Antoine du Hamel** <> (he/him) -* [ak239](https://github.com/ak239) - - **Aleksei Koziatinskii** <> * [antsmartian](https://github.com/antsmartian) - **Anto Aravinth** <> (he/him) * [apapirovski](https://github.com/apapirovski) - @@ -288,8 +286,6 @@ For information about the governance of the Node.js project, see **Ben Noordhuis** <> * [BridgeAR](https://github.com/BridgeAR) - **Ruben Bridgewater** <> (he/him) -* [bzoz](https://github.com/bzoz) - - **Bartosz Sosnowski** <> * [cclauss](https://github.com/cclauss) - **Christian Clauss** <> (he/him) * [ChALkeR](https://github.com/ChALkeR) - @@ -331,9 +327,7 @@ For information about the governance of the Node.js project, see * [HarshithaKP](https://github.com/HarshithaKP) - **Harshitha K P** <> (she/her) * [himself65](https://github.com/himself65) - - **Zeyu Yang** <> (he/him) -* [hiroppy](https://github.com/hiroppy) - - **Yuta Hiroto** <> (he/him) + **Zeyu "Alex" Yang** <> (he/him) * [iansu](https://github.com/iansu) - **Ian Sutherland** <> * [indutny](https://github.com/indutny) - @@ -354,16 +348,18 @@ For information about the governance of the Node.js project, see **Juan José Arboleda** <> (he/him) * [JungMinu](https://github.com/JungMinu) - **Minwoo Jung** <> (he/him) +* [kuriyosh](https://github.com/kuriyosh) - + **Yoshiki Kurihara** <> (he/him) * [legendecas](https://github.com/legendecas) - **Chengzhong Wu** <> (he/him) * [Leko](https://github.com/Leko) - **Shingo Inoue** <> (he/him) * [linkgoron](https://github.com/linkgoron) - **Nitzan Uziely** <> +* [LiviaMedeiros](https://github.com/LiviaMedeiros) - + **LiviaMedeiros** <> * [lpinca](https://github.com/lpinca) - **Luigi Pinca** <> (he/him) -* [lundibundi](https://github.com/lundibundi) - - **Denys Otrishko** <> (he/him) * [Lxxyx](https://github.com/Lxxyx) - **Zijian Liu** <> (he/him) * [marsonya](https://github.com/marsonya) - @@ -380,8 +376,6 @@ For information about the governance of the Node.js project, see **Milad Fa** <> (he/him) * [mildsunrise](https://github.com/mildsunrise) - **Alba Mendez** <> (she/her) -* [mmarchini](https://github.com/mmarchini) - - **Mary Marchini** <> (she/her) * [mscdex](https://github.com/mscdex) - **Brian White** <> * [MylesBorins](https://github.com/MylesBorins) - @@ -396,6 +390,8 @@ For information about the governance of the Node.js project, see **Andrey Pechkurov** <> (he/him) * [Qard](https://github.com/Qard) - **Stephen Belanger** <> (he/him) +* [RafaelGSS](https://github.com/RafaelGSS) - + **Rafael Gonzaga** <> (he/him) * [RaisinTen](https://github.com/RaisinTen) - **Darshan Sen** <> (he/him) * [rexagod](https://github.com/rexagod) - @@ -444,8 +440,6 @@ For information about the governance of the Node.js project, see **Khaidi Chu** <> (he/him) * [yashLadha](https://github.com/yashLadha) - **Yash Ladha** <> (he/him) -* [yosuke-furukawa](https://github.com/yosuke-furukawa) - - **Yosuke Furukawa** <> * [ZYSzys](https://github.com/ZYSzys) - **Yongsheng Zhang** <> (he/him) @@ -458,6 +452,8 @@ For information about the governance of the Node.js project, see ### Collaborator emeriti +* [ak239](https://github.com/ak239) - + **Aleksei Koziatinskii** <> * [andrasq](https://github.com/andrasq) - **Andras** <> * [AnnaMag](https://github.com/AnnaMag) - @@ -472,6 +468,8 @@ For information about the governance of the Node.js project, see **Christopher Hiller** <> (he/him) * [brendanashworth](https://github.com/brendanashworth) - **Brendan Ashworth** <> +* [bzoz](https://github.com/bzoz) - + **Bartosz Sosnowski** <> * [calvinmetcalf](https://github.com/calvinmetcalf) - **Calvin Metcalf** <> * [chrisdickinson](https://github.com/chrisdickinson) - @@ -504,6 +502,8 @@ For information about the governance of the Node.js project, see **Glen Keane** <> (he/him) * [hashseed](https://github.com/hashseed) - **Yang Guo** <> (he/him) +* [hiroppy](https://github.com/hiroppy) - + **Yuta Hiroto** <> (he/him) * [iarna](https://github.com/iarna) - **Rebecca Turner** <> * [imran-iq](https://github.com/imran-iq) - @@ -536,6 +536,8 @@ For information about the governance of the Node.js project, see **Lance Ball** <> (he/him) * [lucamaraschi](https://github.com/lucamaraschi) - **Luca Maraschi** <> (he/him) +* [lundibundi](https://github.com/lundibundi) - + **Denys Otrishko** <> (he/him) * [lxe](https://github.com/lxe) - **Aleksey Smolenchuk** <> * [maclover7](https://github.com/maclover7) - @@ -550,6 +552,8 @@ For information about the governance of the Node.js project, see **Mikeal Rogers** <> * [misterdjules](https://github.com/misterdjules) - **Julien Gilli** <> +* [mmarchini](https://github.com/mmarchini) - + **Mary Marchini** <> (she/her) * [monsanto](https://github.com/monsanto) - **Christopher Monsanto** <> * [MoonBall](https://github.com/MoonBall) - @@ -628,6 +632,8 @@ For information about the governance of the Node.js project, see **Yihong Wang** <> * [yorkie](https://github.com/yorkie) - **Yorkie Liu** <> +* [yosuke-furukawa](https://github.com/yosuke-furukawa) - + **Yosuke Furukawa** <> @@ -640,6 +646,8 @@ maintaining the Node.js project. * [Ayase-252](https://github.com/Ayase-252) - **Qingyu Deng** <> +* [F3n67u](https://github.com/F3n67u) - + **Feng Yu** <> (he/him) * [himadriganguly](https://github.com/himadriganguly) - **Himadri Ganguly** <> (he/him) * [iam-frankqiu](https://github.com/iam-frankqiu) - @@ -671,10 +679,14 @@ Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys): `74F12602B6F1C4E913FAA37AD3A89613643B6201` * **James M Snell** <> `71DCFD284A79C3B38668286BC97EC7A07EDE3FC1` +* **Juan José Arboleda** <> + `61FC681DFB92A079F1685E77973F295594EC4689` * **Michaël Zasso** <> `8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600` * **Myles Borins** <> `C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8` +* **RafaelGSS** <> + `890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4` * **Richard Lau** <> `C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C` * **Rod Vagg** <> @@ -695,8 +707,10 @@ gpg --keyserver hkps://keys.openpgp.org --recv-keys 141F07595B7B3FFE74309A937405 gpg --keyserver hkps://keys.openpgp.org --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 gpg --keyserver hkps://keys.openpgp.org --recv-keys 74F12602B6F1C4E913FAA37AD3A89613643B6201 gpg --keyserver hkps://keys.openpgp.org --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 61FC681DFB92A079F1685E77973F295594EC4689 gpg --keyserver hkps://keys.openpgp.org --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 gpg --keyserver hkps://keys.openpgp.org --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 gpg --keyserver hkps://keys.openpgp.org --recv-keys C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C gpg --keyserver hkps://keys.openpgp.org --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D gpg --keyserver hkps://keys.openpgp.org --recv-keys A48C2BEE680E841632CD4E44F07496B3EB3C1762 diff --git a/SECURITY.md b/SECURITY.md index b22301a1f1d556..57943ce969e20b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,7 +4,7 @@ Report security bugs in Node.js via [HackerOne](https://hackerone.com/nodejs). -Your report will be acknowledged within 5 days, and you’ll receive a more +Your report will be acknowledged within 5 days, and you'll receive a more detailed response to your report within 10 days indicating the next steps in handling your submission. @@ -49,7 +49,7 @@ Here is the security disclosure policy for Node.js * This process can take some time, especially when coordination is required with maintainers of other projects. Every effort will be made to handle the - bug in as timely a manner as possible; however, it’s important that we follow + bug in as timely a manner as possible; however, it's important that we follow the release process above to ensure that the disclosure is handled in a consistent manner. diff --git a/benchmark/error/error.js b/benchmark/error/error.js new file mode 100644 index 00000000000000..c856f3e07f6bea --- /dev/null +++ b/benchmark/error/error.js @@ -0,0 +1,14 @@ +'use strict'; + +const common = require('../common.js'); + +const bench = common.createBenchmark(main, { + n: [1e7], +}); + +function main({ n }) { + bench.start(); + for (let i = 0; i < n; ++i) + new Error('test'); + bench.end(n); +} diff --git a/benchmark/error/node-error.js b/benchmark/error/node-error.js new file mode 100644 index 00000000000000..f672522b2d0a65 --- /dev/null +++ b/benchmark/error/node-error.js @@ -0,0 +1,21 @@ +'use strict'; + +const common = require('../common'); + +const bench = common.createBenchmark(main, { + n: [1e7], +}, { + flags: ['--expose-internals'] +}); + +function main({ n }) { + const { + codes: { + ERR_INVALID_STATE, + } + } = require('internal/errors'); + bench.start(); + for (let i = 0; i < n; ++i) + new ERR_INVALID_STATE.TypeError('test'); + bench.end(n); +} diff --git a/benchmark/fixtures/require-cachable.js b/benchmark/fixtures/require-cachable.js index 4afda3cda47675..85e3a81f4e9fb0 100644 --- a/benchmark/fixtures/require-cachable.js +++ b/benchmark/fixtures/require-cachable.js @@ -6,5 +6,5 @@ const { } = internalBinding('native_module'); for (const key of canBeRequired) { - require(key); + require(`node:${key}`); } diff --git a/benchmark/http/chunked.js b/benchmark/http/chunked.js index 9ae7bb7495f29a..ec86d0a1f65295 100644 --- a/benchmark/http/chunked.js +++ b/benchmark/http/chunked.js @@ -32,10 +32,11 @@ function main({ len, n, c, duration }) { send(n); }); - server.listen(common.PORT, () => { + server.listen(0, () => { bench.http({ connections: c, - duration + duration, + port: server.address().port, }, () => { server.close(); }); diff --git a/benchmark/http/client-request-body.js b/benchmark/http/client-request-body.js index 6e2323b3f07e8a..3d673d36b7bc63 100644 --- a/benchmark/http/client-request-body.js +++ b/benchmark/http/client-request-body.js @@ -32,7 +32,6 @@ function main({ dur, len, type, method }) { headers: { 'Connection': 'keep-alive', 'Transfer-Encoding': 'chunked' }, agent: new http.Agent({ maxSockets: 1 }), host: '127.0.0.1', - port: common.PORT, path: '/', method: 'POST' }; @@ -40,16 +39,17 @@ function main({ dur, len, type, method }) { const server = http.createServer((req, res) => { res.end(); }); - server.listen(options.port, options.host, () => { + server.listen(0, options.host, () => { setTimeout(done, dur * 1000); bench.start(); - pummel(); + pummel(server.address().port); }); - function pummel() { + function pummel(port) { + options.port = port; const req = http.request(options, (res) => { nreqs++; - pummel(); // Line up next request. + pummel(port); // Line up next request. res.resume(); }); if (method === 'write') { diff --git a/benchmark/http/end-vs-write-end.js b/benchmark/http/end-vs-write-end.js index 60174ef3adf4f2..9f128bf8c1499e 100644 --- a/benchmark/http/end-vs-write-end.js +++ b/benchmark/http/end-vs-write-end.js @@ -48,10 +48,11 @@ function main({ len, type, method, c, duration }) { fn(res); }); - server.listen(common.PORT, () => { + server.listen(0, () => { bench.http({ connections: c, - duration + duration, + port: server.address().port, }, () => { server.close(); }); diff --git a/benchmark/http/headers.js b/benchmark/http/headers.js index a3d2b7810be676..b405868eb0ea2b 100644 --- a/benchmark/http/headers.js +++ b/benchmark/http/headers.js @@ -27,11 +27,12 @@ function main({ len, n, duration }) { res.writeHead(200, headers); res.end(); }); - server.listen(common.PORT, () => { + server.listen(0, () => { bench.http({ path: '/', connections: 10, - duration + duration, + port: server.address().port, }, () => { server.close(); }); diff --git a/benchmark/http/incoming_headers.js b/benchmark/http/incoming_headers.js index 983bd5632fcb7d..7501d2cb92d456 100644 --- a/benchmark/http/incoming_headers.js +++ b/benchmark/http/incoming_headers.js @@ -14,7 +14,7 @@ function main({ connections, headers, w, duration }) { res.end(); }); - server.listen(common.PORT, () => { + server.listen(0, () => { const headers = { 'Content-Type': 'text/plain', 'Accept': 'text/plain', @@ -34,7 +34,8 @@ function main({ connections, headers, w, duration }) { path: '/', connections, headers, - duration + duration, + port: server.address().port, }, () => { server.close(); }); diff --git a/benchmark/http/set-header.js b/benchmark/http/set-header.js index 48e0163a6ced10..47681ebd1b1405 100644 --- a/benchmark/http/set-header.js +++ b/benchmark/http/set-header.js @@ -1,6 +1,5 @@ 'use strict'; const common = require('../common.js'); -const PORT = common.PORT; const bench = common.createBenchmark(main, { res: ['normal', 'setHeader', 'setHeaderWH'], @@ -17,16 +16,16 @@ const c = 50; // setHeader: statusCode = status, setHeader(...) x2 // setHeaderWH: setHeader(...), writeHead(status, ...) function main({ res, duration }) { - process.env.PORT = PORT; const server = require('../fixtures/simple-http-server.js') - .listen(PORT) + .listen(0) .on('listening', () => { const path = `/${type}/${len}/${chunks}/${res}/${chunkedEnc}`; bench.http({ path: path, connections: c, - duration + duration, + port: server.address().port, }, () => { server.close(); }); diff --git a/benchmark/http/simple.js b/benchmark/http/simple.js index 095b15ca4465fb..31e12ca7c27438 100644 --- a/benchmark/http/simple.js +++ b/benchmark/http/simple.js @@ -13,14 +13,15 @@ const bench = common.createBenchmark(main, { function main({ type, len, chunks, c, chunkedEnc, duration }) { const server = require('../fixtures/simple-http-server.js') - .listen(common.PORT) + .listen(0) .on('listening', () => { const path = `/${type}/${len}/${chunks}/normal/${chunkedEnc}`; bench.http({ path, connections: c, - duration + duration, + port: server.address().port, }, () => { server.close(); }); diff --git a/benchmark/http/upgrade.js b/benchmark/http/upgrade.js index 8d365fe46df24e..c4f5cd342284c3 100644 --- a/benchmark/http/upgrade.js +++ b/benchmark/http/upgrade.js @@ -20,7 +20,7 @@ const resData = 'HTTP/1.1 101 Web Socket Protocol Handshake\r\n' + function main({ n }) { const server = require('../fixtures/simple-http-server.js') - .listen(common.PORT) + .listen(0) .on('listening', () => { bench.start(); doBench(server.address(), n, () => { diff --git a/benchmark/perf_hooks/resourcetiming.js b/benchmark/perf_hooks/resourcetiming.js new file mode 100644 index 00000000000000..c71cfeae7ef06b --- /dev/null +++ b/benchmark/perf_hooks/resourcetiming.js @@ -0,0 +1,77 @@ +'use strict'; + +const common = require('../common.js'); + +const { + PerformanceObserver, + performance, +} = require('perf_hooks'); + +function createTimingInfo({ + startTime = 0, + redirectStartTime = 0, + redirectEndTime = 0, + postRedirectStartTime = 0, + finalServiceWorkerStartTime = 0, + finalNetworkRequestStartTime = 0, + finalNetworkResponseStartTime = 0, + endTime = 0, + encodedBodySize = 0, + decodedBodySize = 0, + finalConnectionTimingInfo = null +}) { + if (finalConnectionTimingInfo !== null) { + finalConnectionTimingInfo.domainLookupStartTime = + finalConnectionTimingInfo.domainLookupStartTime || 0; + finalConnectionTimingInfo.domainLookupEndTime = + finalConnectionTimingInfo.domainLookupEndTime || 0; + finalConnectionTimingInfo.connectionStartTime = + finalConnectionTimingInfo.connectionStartTime || 0; + finalConnectionTimingInfo.connectionEndTime = + finalConnectionTimingInfo.connectionEndTime || 0; + finalConnectionTimingInfo.secureConnectionStartTime = + finalConnectionTimingInfo.secureConnectionStartTime || 0; + finalConnectionTimingInfo.ALPNNegotiatedProtocol = + finalConnectionTimingInfo.ALPNNegotiatedProtocol || []; + } + return { + startTime, + redirectStartTime, + redirectEndTime, + postRedirectStartTime, + finalServiceWorkerStartTime, + finalNetworkRequestStartTime, + finalNetworkResponseStartTime, + endTime, + encodedBodySize, + decodedBodySize, + finalConnectionTimingInfo, + }; +} + +const bench = common.createBenchmark(main, { + n: [1e5], + observe: ['resource'], +}); + +function test() { + const timingInfo = createTimingInfo({ finalConnectionTimingInfo: {} }); + performance.markResourceTiming( + timingInfo, + 'http://localhost:8080', + 'fetch', + {}, + '' + ); +} + +function main({ n, observe }) { + const obs = new PerformanceObserver(() => { + bench.end(n); + }); + obs.observe({ entryTypes: [observe], buffered: true }); + + bench.start(); + for (let i = 0; i < 1e5; i++) + test(); +} diff --git a/common.gypi b/common.gypi index f4cec334c19a5f..ecb5dd907f2b75 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.16', + 'v8_embedder_string': '-node.8', ##### V8 defaults for Node.js ##### diff --git a/configure.py b/configure.py index 6519cf3b9624d2..e53a83f332ffd6 100755 --- a/configure.py +++ b/configure.py @@ -181,6 +181,12 @@ "e.g. /root/x/y.js will be referenced via require('root/x/y'). " "Can be used multiple times") +parser.add_argument("--openssl-conf-name", + action="store", + dest="openssl_conf_name", + default='nodejs_conf', + help="The OpenSSL config appname (config section name) used by Node.js") + parser.add_argument('--openssl-default-cipher-list', action='store', dest='openssl_default_cipher_list', @@ -782,6 +788,13 @@ help='Enable V8 transparent hugepage support. This feature is only '+ 'available on Linux platform.') +parser.add_argument('--v8-enable-short-builtin-calls', + action='store_true', + dest='v8_enable_short_builtin_calls', + default=None, + help='Enable V8 short builtin calls support. This feature is enabled '+ + 'on x86_64 platform by default.') + parser.add_argument('--node-builtin-modules-path', action='store', dest='node_builtin_modules_path', @@ -1242,7 +1255,7 @@ def configure_node(o): o['variables']['node_use_node_snapshot'] = b( not cross_compiling and not options.shared) - if options.without_node_code_cache or options.node_builtin_modules_path: + if options.without_node_code_cache or options.without_node_snapshot or options.node_builtin_modules_path: o['variables']['node_use_node_code_cache'] = 'false' else: # TODO(refack): fix this when implementing embedded code-cache when cross-compiling. @@ -1439,6 +1452,7 @@ def configure_library(lib, output, pkgname=None): def configure_v8(o): o['variables']['v8_enable_webassembly'] = 1 + o['variables']['v8_enable_javascript_promise_hooks'] = 1 o['variables']['v8_enable_lite_mode'] = 1 if options.v8_lite_mode else 0 o['variables']['v8_enable_gdbjit'] = 1 if options.gdb else 0 o['variables']['v8_no_strict_aliasing'] = 1 # Work around compiler bugs. @@ -1450,6 +1464,7 @@ def configure_v8(o): o['variables']['v8_use_siphash'] = 0 if options.without_siphash else 1 o['variables']['v8_enable_pointer_compression'] = 1 if options.enable_pointer_compression else 0 o['variables']['v8_enable_31bit_smis_on_64bit_arch'] = 1 if options.enable_pointer_compression else 0 + o['variables']['v8_enable_shared_ro_heap'] = 0 if options.enable_pointer_compression else 1 o['variables']['v8_trace_maps'] = 1 if options.trace_maps else 0 o['variables']['node_use_v8_platform'] = b(not options.without_v8_platform) o['variables']['node_use_bundled_v8'] = b(not options.without_bundled_v8) @@ -1464,6 +1479,8 @@ def configure_v8(o): if flavor != 'linux' and options.v8_enable_hugepage: raise Exception('--v8-enable-hugepage is supported only on linux.') o['variables']['v8_enable_hugepage'] = 1 if options.v8_enable_hugepage else 0 + if options.v8_enable_short_builtin_calls or o['variables']['target_arch'] == 'x64': + o['variables']['v8_enable_short_builtin_calls'] = 1 def configure_openssl(o): variables = o['variables'] @@ -1477,6 +1494,8 @@ def configure_openssl(o): if options.openssl_no_asm: variables['openssl_no_asm'] = 1 + o['defines'] += ['NODE_OPENSSL_CONF_NAME=' + options.openssl_conf_name] + if options.without_ssl: def without_ssl_error(option): error('--without-ssl is incompatible with %s' % option) @@ -1525,8 +1544,10 @@ def without_ssl_error(option): if options.openssl_no_asm and options.shared_openssl: error('--openssl-no-asm is incompatible with --shared-openssl') - if options.openssl_is_fips and not options.shared_openssl: + if options.openssl_is_fips: o['defines'] += ['OPENSSL_FIPS'] + + if options.openssl_is_fips and not options.shared_openssl: variables['node_fipsinstall'] = b(True) if options.shared_openssl: @@ -1651,7 +1672,7 @@ def icu_download(path): o['variables']['icu_small'] = b(True) locs = set(options.with_icu_locales.split(',')) locs.add('root') # must have root - o['variables']['icu_locales'] = ','.join(str(loc) for loc in locs) + o['variables']['icu_locales'] = ','.join(str(loc) for loc in sorted(locs)) # We will check a bit later if we can use the canned deps/icu-small o['variables']['icu_default_data'] = options.with_icu_default_data_dir or '' elif with_intl == 'full-icu': diff --git a/deps/acorn/acorn/CHANGELOG.md b/deps/acorn/acorn/CHANGELOG.md index 278fa50c9d83b1..d19b5f1bad0b93 100644 --- a/deps/acorn/acorn/CHANGELOG.md +++ b/deps/acorn/acorn/CHANGELOG.md @@ -1,3 +1,17 @@ +## 8.7.0 (2021-12-27) + +### New features + +Support quoted export names. + +Upgrade to Unicode 14. + +Add support for Unicode 13 properties in regular expressions. + +### Bug fixes + +Use a loop to find line breaks, because the existing regexp search would overrun the end of the searched range and waste a lot of time in minified code. + ## 8.6.0 (2021-11-18) ### Bug fixes diff --git a/deps/acorn/acorn/dist/acorn.js b/deps/acorn/acorn/dist/acorn.js index 5d9b521ac320bd..2d279e9fa8417d 100644 --- a/deps/acorn/acorn/dist/acorn.js +++ b/deps/acorn/acorn/dist/acorn.js @@ -33,8 +33,8 @@ // are only applied when a character is found to actually have a // code point above 128. // Generated by `bin/generate-identifier-regex.js`. - var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; - var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; + var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; + var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); @@ -48,10 +48,10 @@ // generated by bin/generate-identifier-regex.js // eslint-disable-next-line comma-spacing - var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938]; + var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938]; // eslint-disable-next-line comma-spacing - var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239]; + var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239]; // This has a complexity linear to the value of the code. The // assumption is that looking up astral identifier characters is @@ -256,6 +256,17 @@ return code === 10 || code === 13 || code === 0x2028 || code === 0x2029 } + function nextLineBreak(code, from, end) { + if ( end === void 0 ) end = code.length; + + for (var i = from; i < end; i++) { + var next = code.charCodeAt(i); + if (isNewLine(next)) + { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 } + } + return -1 + } + var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/; var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; @@ -264,11 +275,9 @@ var hasOwnProperty = ref.hasOwnProperty; var toString = ref.toString; - // Checks if an object has a property. - - function has(obj, propName) { - return hasOwnProperty.call(obj, propName) - } + var hasOwn = Object.hasOwn || (function (obj, propName) { return ( + hasOwnProperty.call(obj, propName) + ); }); var isArray = Array.isArray || (function (obj) { return ( toString.call(obj) === "[object Array]" @@ -278,6 +287,8 @@ return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$") } + var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/; + // These are used when `options.locations` is on, for the // `startLoc` and `endLoc` properties. @@ -304,14 +315,10 @@ function getLineInfo(input, offset) { for (var line = 1, cur = 0;;) { - lineBreakG.lastIndex = cur; - var match = lineBreakG.exec(input); - if (match && match.index < offset) { - ++line; - cur = match.index + match[0].length; - } else { - return new Position(line, offset - cur) - } + var nextBreak = nextLineBreak(input, cur, offset); + if (nextBreak < 0) { return new Position(line, offset - cur) } + ++line; + cur = nextBreak; } } @@ -417,7 +424,7 @@ var options = {}; for (var opt in defaultOptions) - { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; } + { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; } if (options.ecmaVersion === "latest") { options.ecmaVersion = 1e8; @@ -1583,7 +1590,7 @@ var parent = len === 0 ? null : this.privateNameStack[len - 1]; for (var i = 0; i < used.length; ++i) { var id = used[i]; - if (!has(declared, id.name)) { + if (!hasOwn(declared, id.name)) { if (parent) { parent.used.push(id); } else { @@ -1636,7 +1643,7 @@ if (this.eat(types$1.star)) { if (this.options.ecmaVersion >= 11) { if (this.eatContextual("as")) { - node.exported = this.parseIdent(true); + node.exported = this.parseModuleExportName(); this.checkExport(exports, node.exported.name, this.lastTokStart); } else { node.exported = null; @@ -1688,6 +1695,10 @@ this.checkUnreserved(spec.local); // check if export is defined this.checkLocalExport(spec.local); + + if (spec.local.type === "Literal") { + this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`."); + } } node.source = null; @@ -1699,7 +1710,7 @@ pp$8.checkExport = function(exports, name, pos) { if (!exports) { return } - if (has(exports, name)) + if (hasOwn(exports, name)) { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } exports[name] = true; }; @@ -1763,9 +1774,13 @@ } else { first = false; } var node = this.startNode(); - node.local = this.parseIdent(true); - node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local; - this.checkExport(exports, node.exported.name, node.exported.start); + node.local = this.parseModuleExportName(); + node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local; + this.checkExport( + exports, + node.exported[node.exported.type === "Identifier" ? "name" : "value"], + node.exported.start + ); nodes.push(this.finishNode(node, "ExportSpecifier")); } return nodes @@ -1817,7 +1832,7 @@ } else { first = false; } var node$2 = this.startNode(); - node$2.imported = this.parseIdent(true); + node$2.imported = this.parseModuleExportName(); if (this.eatContextual("as")) { node$2.local = this.parseIdent(); } else { @@ -1830,6 +1845,17 @@ return nodes }; + pp$8.parseModuleExportName = function() { + if (this.options.ecmaVersion >= 13 && this.type === types$1.string) { + var stringLiteral = this.parseLiteral(this.value); + if (loneSurrogate.test(stringLiteral.value)) { + this.raise(stringLiteral.start, "An export name cannot include a lone surrogate."); + } + return stringLiteral + } + return this.parseIdent(true) + }; + // Set `ExpressionStatement#directive` property for directive prologues. pp$8.adaptDirectivePrologue = function(statements) { for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) { @@ -2103,7 +2129,7 @@ if (bindingType === BIND_LEXICAL && expr.name === "let") { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); } if (checkClashes) { - if (has(checkClashes, expr.name)) + if (hasOwn(checkClashes, expr.name)) { this.raiseRecoverable(expr.start, "Argument name clash"); } checkClashes[expr.name] = true; } @@ -3598,26 +3624,30 @@ var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic"; var ecma11BinaryProperties = ecma10BinaryProperties; var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict"; + var ecma13BinaryProperties = ecma12BinaryProperties; var unicodeBinaryProperties = { 9: ecma9BinaryProperties, 10: ecma10BinaryProperties, 11: ecma11BinaryProperties, - 12: ecma12BinaryProperties + 12: ecma12BinaryProperties, + 13: ecma13BinaryProperties }; // #table-unicode-general-category-values var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu"; // #table-unicode-script-values - var ecma9ScriptValues = "Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; + var ecma9ScriptValues = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd"; var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"; var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"; + var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith"; var unicodeScriptValues = { 9: ecma9ScriptValues, 10: ecma10ScriptValues, 11: ecma11ScriptValues, - 12: ecma12ScriptValues + 12: ecma12ScriptValues, + 13: ecma13ScriptValues }; var data = {}; @@ -3635,17 +3665,19 @@ d.nonBinary.sc = d.nonBinary.Script; d.nonBinary.scx = d.nonBinary.Script_Extensions; } - buildUnicodeData(9); - buildUnicodeData(10); - buildUnicodeData(11); - buildUnicodeData(12); + + for (var i = 0, list = [9, 10, 11, 12, 13]; i < list.length; i += 1) { + var ecmaVersion = list[i]; + + buildUnicodeData(ecmaVersion); + } var pp$1 = Parser.prototype; var RegExpValidationState = function RegExpValidationState(parser) { this.parser = parser; this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : ""); - this.unicodeProperties = data[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion]; + this.unicodeProperties = data[parser.options.ecmaVersion >= 13 ? 13 : parser.options.ecmaVersion]; this.source = ""; this.flags = ""; this.start = 0; @@ -4444,7 +4476,7 @@ return false }; pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { - if (!has(state.unicodeProperties.nonBinary, name)) + if (!hasOwn(state.unicodeProperties.nonBinary, name)) { state.raise("Invalid property name"); } if (!state.unicodeProperties.nonBinary[name].test(value)) { state.raise("Invalid property value"); } @@ -4796,11 +4828,9 @@ if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); } this.pos = end + 2; if (this.options.locations) { - lineBreakG.lastIndex = start; - var match; - while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) { + for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) { ++this.curLine; - this.lineStart = match.index + match[0].length; + pos = this.lineStart = nextBreak; } } if (this.options.onComment) @@ -5511,7 +5541,7 @@ // Acorn is a tiny, fast JavaScript parser written in JavaScript. - var version = "8.6.0"; + var version = "8.7.0"; Parser.acorn = { Parser: Parser, diff --git a/deps/acorn/acorn/dist/acorn.mjs b/deps/acorn/acorn/dist/acorn.mjs index df5b26e5dd0f74..e99e9b30e1b635 100644 --- a/deps/acorn/acorn/dist/acorn.mjs +++ b/deps/acorn/acorn/dist/acorn.mjs @@ -27,8 +27,8 @@ var keywordRelationalOperator = /^in(stanceof)?$/; // are only applied when a character is found to actually have a // code point above 128. // Generated by `bin/generate-identifier-regex.js`. -var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; -var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); @@ -42,10 +42,10 @@ nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; // generated by bin/generate-identifier-regex.js // eslint-disable-next-line comma-spacing -var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938]; +var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938]; // eslint-disable-next-line comma-spacing -var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239]; +var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239]; // This has a complexity linear to the value of the code. The // assumption is that looking up astral identifier characters is @@ -250,6 +250,17 @@ function isNewLine(code) { return code === 10 || code === 13 || code === 0x2028 || code === 0x2029 } +function nextLineBreak(code, from, end) { + if ( end === void 0 ) end = code.length; + + for (var i = from; i < end; i++) { + var next = code.charCodeAt(i); + if (isNewLine(next)) + { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 } + } + return -1 +} + var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/; var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; @@ -258,11 +269,9 @@ var ref = Object.prototype; var hasOwnProperty = ref.hasOwnProperty; var toString = ref.toString; -// Checks if an object has a property. - -function has(obj, propName) { - return hasOwnProperty.call(obj, propName) -} +var hasOwn = Object.hasOwn || (function (obj, propName) { return ( + hasOwnProperty.call(obj, propName) +); }); var isArray = Array.isArray || (function (obj) { return ( toString.call(obj) === "[object Array]" @@ -272,6 +281,8 @@ function wordsRegexp(words) { return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$") } +var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/; + // These are used when `options.locations` is on, for the // `startLoc` and `endLoc` properties. @@ -298,14 +309,10 @@ var SourceLocation = function SourceLocation(p, start, end) { function getLineInfo(input, offset) { for (var line = 1, cur = 0;;) { - lineBreakG.lastIndex = cur; - var match = lineBreakG.exec(input); - if (match && match.index < offset) { - ++line; - cur = match.index + match[0].length; - } else { - return new Position(line, offset - cur) - } + var nextBreak = nextLineBreak(input, cur, offset); + if (nextBreak < 0) { return new Position(line, offset - cur) } + ++line; + cur = nextBreak; } } @@ -411,7 +418,7 @@ function getOptions(opts) { var options = {}; for (var opt in defaultOptions) - { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; } + { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; } if (options.ecmaVersion === "latest") { options.ecmaVersion = 1e8; @@ -1577,7 +1584,7 @@ pp$8.exitClassBody = function() { var parent = len === 0 ? null : this.privateNameStack[len - 1]; for (var i = 0; i < used.length; ++i) { var id = used[i]; - if (!has(declared, id.name)) { + if (!hasOwn(declared, id.name)) { if (parent) { parent.used.push(id); } else { @@ -1630,7 +1637,7 @@ pp$8.parseExport = function(node, exports) { if (this.eat(types$1.star)) { if (this.options.ecmaVersion >= 11) { if (this.eatContextual("as")) { - node.exported = this.parseIdent(true); + node.exported = this.parseModuleExportName(); this.checkExport(exports, node.exported.name, this.lastTokStart); } else { node.exported = null; @@ -1682,6 +1689,10 @@ pp$8.parseExport = function(node, exports) { this.checkUnreserved(spec.local); // check if export is defined this.checkLocalExport(spec.local); + + if (spec.local.type === "Literal") { + this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`."); + } } node.source = null; @@ -1693,7 +1704,7 @@ pp$8.parseExport = function(node, exports) { pp$8.checkExport = function(exports, name, pos) { if (!exports) { return } - if (has(exports, name)) + if (hasOwn(exports, name)) { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } exports[name] = true; }; @@ -1757,9 +1768,13 @@ pp$8.parseExportSpecifiers = function(exports) { } else { first = false; } var node = this.startNode(); - node.local = this.parseIdent(true); - node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local; - this.checkExport(exports, node.exported.name, node.exported.start); + node.local = this.parseModuleExportName(); + node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local; + this.checkExport( + exports, + node.exported[node.exported.type === "Identifier" ? "name" : "value"], + node.exported.start + ); nodes.push(this.finishNode(node, "ExportSpecifier")); } return nodes @@ -1811,7 +1826,7 @@ pp$8.parseImportSpecifiers = function() { } else { first = false; } var node$2 = this.startNode(); - node$2.imported = this.parseIdent(true); + node$2.imported = this.parseModuleExportName(); if (this.eatContextual("as")) { node$2.local = this.parseIdent(); } else { @@ -1824,6 +1839,17 @@ pp$8.parseImportSpecifiers = function() { return nodes }; +pp$8.parseModuleExportName = function() { + if (this.options.ecmaVersion >= 13 && this.type === types$1.string) { + var stringLiteral = this.parseLiteral(this.value); + if (loneSurrogate.test(stringLiteral.value)) { + this.raise(stringLiteral.start, "An export name cannot include a lone surrogate."); + } + return stringLiteral + } + return this.parseIdent(true) +}; + // Set `ExpressionStatement#directive` property for directive prologues. pp$8.adaptDirectivePrologue = function(statements) { for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) { @@ -2097,7 +2123,7 @@ pp$7.checkLValSimple = function(expr, bindingType, checkClashes) { if (bindingType === BIND_LEXICAL && expr.name === "let") { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); } if (checkClashes) { - if (has(checkClashes, expr.name)) + if (hasOwn(checkClashes, expr.name)) { this.raiseRecoverable(expr.start, "Argument name clash"); } checkClashes[expr.name] = true; } @@ -3592,26 +3618,30 @@ var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Ass var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic"; var ecma11BinaryProperties = ecma10BinaryProperties; var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict"; +var ecma13BinaryProperties = ecma12BinaryProperties; var unicodeBinaryProperties = { 9: ecma9BinaryProperties, 10: ecma10BinaryProperties, 11: ecma11BinaryProperties, - 12: ecma12BinaryProperties + 12: ecma12BinaryProperties, + 13: ecma13BinaryProperties }; // #table-unicode-general-category-values var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu"; // #table-unicode-script-values -var ecma9ScriptValues = "Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; +var ecma9ScriptValues = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd"; var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"; var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi"; +var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith"; var unicodeScriptValues = { 9: ecma9ScriptValues, 10: ecma10ScriptValues, 11: ecma11ScriptValues, - 12: ecma12ScriptValues + 12: ecma12ScriptValues, + 13: ecma13ScriptValues }; var data = {}; @@ -3629,17 +3659,19 @@ function buildUnicodeData(ecmaVersion) { d.nonBinary.sc = d.nonBinary.Script; d.nonBinary.scx = d.nonBinary.Script_Extensions; } -buildUnicodeData(9); -buildUnicodeData(10); -buildUnicodeData(11); -buildUnicodeData(12); + +for (var i = 0, list = [9, 10, 11, 12, 13]; i < list.length; i += 1) { + var ecmaVersion = list[i]; + + buildUnicodeData(ecmaVersion); +} var pp$1 = Parser.prototype; var RegExpValidationState = function RegExpValidationState(parser) { this.parser = parser; this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : ""); - this.unicodeProperties = data[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion]; + this.unicodeProperties = data[parser.options.ecmaVersion >= 13 ? 13 : parser.options.ecmaVersion]; this.source = ""; this.flags = ""; this.start = 0; @@ -4438,7 +4470,7 @@ pp$1.regexp_eatUnicodePropertyValueExpression = function(state) { return false }; pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { - if (!has(state.unicodeProperties.nonBinary, name)) + if (!hasOwn(state.unicodeProperties.nonBinary, name)) { state.raise("Invalid property name"); } if (!state.unicodeProperties.nonBinary[name].test(value)) { state.raise("Invalid property value"); } @@ -4790,11 +4822,9 @@ pp.skipBlockComment = function() { if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); } this.pos = end + 2; if (this.options.locations) { - lineBreakG.lastIndex = start; - var match; - while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) { + for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) { ++this.curLine; - this.lineStart = match.index + match[0].length; + pos = this.lineStart = nextBreak; } } if (this.options.onComment) @@ -5505,7 +5535,7 @@ pp.readWord = function() { // Acorn is a tiny, fast JavaScript parser written in JavaScript. -var version = "8.6.0"; +var version = "8.7.0"; Parser.acorn = { Parser: Parser, diff --git a/deps/acorn/acorn/dist/bin.js b/deps/acorn/acorn/dist/bin.js index 675cab9ac89cae..8e645009450b64 100644 --- a/deps/acorn/acorn/dist/bin.js +++ b/deps/acorn/acorn/dist/bin.js @@ -30,7 +30,7 @@ var options = {}; function help(status) { var print = (status === 0) ? console.log : console.error; print("usage: " + path.basename(process.argv[1]) + " [--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|...|--ecma2015|--ecma2016|--ecma2017|--ecma2018|...]"); - print(" [--tokenize] [--locations] [---allow-hash-bang] [--allow-await-outside-function] [--compact] [--silent] [--module] [--help] [--] [...]"); + print(" [--tokenize] [--locations] [--allow-hash-bang] [--allow-await-outside-function] [--compact] [--silent] [--module] [--help] [--] [...]"); process.exit(status); } diff --git a/deps/acorn/acorn/package.json b/deps/acorn/acorn/package.json index e242a235e00c84..8e2edc65cff81c 100644 --- a/deps/acorn/acorn/package.json +++ b/deps/acorn/acorn/package.json @@ -16,7 +16,7 @@ ], "./package.json": "./package.json" }, - "version": "8.6.0", + "version": "8.7.0", "engines": {"node": ">=0.4.0"}, "maintainers": [ { @@ -40,7 +40,7 @@ }, "license": "MIT", "scripts": { - "prepare": "cd ..; npm run build:main && npm run build:bin" + "prepare": "cd ..; npm run build:main" }, "bin": {"acorn": "./bin/acorn"} } diff --git a/deps/corepack/CHANGELOG.md b/deps/corepack/CHANGELOG.md new file mode 100644 index 00000000000000..1867c788f32932 --- /dev/null +++ b/deps/corepack/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changelog + +## [0.11.2](https://github.com/nodejs/corepack/compare/v0.11.1...v0.11.2) (2022-06-13) + +### Bug Fixes + +* only set bins on pack ([#127](https://github.com/nodejs/corepack/issues/127)) ([7ae489a](https://github.com/nodejs/corepack/commit/7ae489a86c3fe584b9915f4ec57deb7c316c1a25)) + +## [0.11.1](https://github.com/nodejs/corepack/compare/v0.11.0...v0.11.1) (2022-06-12) + + +### Bug Fixes + +* **ci:** YAML formatting in publish workflow ([#124](https://github.com/nodejs/corepack/issues/124)) ([01c7d63](https://github.com/nodejs/corepack/commit/01c7d638b04a1340b3939a7985e24b586e344995)) + +## 0.11.0 (2022-06-12) + + +### Features + +* auto setup proxy for http requests ([#69](https://github.com/nodejs/corepack/issues/69)) ([876ce02](https://github.com/nodejs/corepack/commit/876ce02fe7385ea5bc896b2dc93d1fb320361c64)) + + +### Bug Fixes + +* avoid symlinks to work on Windows ([#13](https://github.com/nodejs/corepack/issues/13)) ([b56df30](https://github.com/nodejs/corepack/commit/b56df30796da9c7cb0ba5e1bb7152c81582abba6)) +* avoid using eval to get the corepack version ([#45](https://github.com/nodejs/corepack/issues/45)) ([78d94eb](https://github.com/nodejs/corepack/commit/78d94eb297444d7558e8b4395f0108c97117f8ab)) +* bin file name for pnpm >=6.0 ([#35](https://github.com/nodejs/corepack/issues/35)) ([8ff2499](https://github.com/nodejs/corepack/commit/8ff2499e831c8cf2dea604ea985d830afc8a479e)) +* generate cmd shim files ([a900b4d](https://github.com/nodejs/corepack/commit/a900b4db12fcd4d99c0a4d011b426cdc6485d323)) +* handle package managers with a bin array correctly ([#20](https://github.com/nodejs/corepack/issues/20)) ([1836d17](https://github.com/nodejs/corepack/commit/1836d17b4fc4c0164df2fe1ccaca4d2f16f6f2d1)) +* handle parallel installs ([#84](https://github.com/nodejs/corepack/issues/84)) ([5cfc6c9](https://github.com/nodejs/corepack/commit/5cfc6c9df0dbec8e4de4324be37aa0a54a300552)) +* handle prereleases ([#32](https://github.com/nodejs/corepack/issues/32)) ([2a46b6d](https://github.com/nodejs/corepack/commit/2a46b6d13adae139141012254ef670d6ddcb5d11)) + + +### Performance Improvements + +* load binaries in the same process ([#97](https://github.com/nodejs/corepack/issues/97)) ([5ff6e82](https://github.com/nodejs/corepack/commit/5ff6e82028e58448ba5ba986854b61ecdc69885b)) diff --git a/deps/corepack/README.md b/deps/corepack/README.md index d58811c4cdaaee..6fc940814cdd4e 100644 --- a/deps/corepack/README.md +++ b/deps/corepack/README.md @@ -8,7 +8,7 @@ Corepack is a zero-runtime-dependency Node.js script that acts as a bridge betwe ### Default Installs -Corepack is distributed by default with Node.js 16.9, but is opt-in for the time being. Run `corepack enable` to install the required shims. +Corepack is distributed by default with Node.js 14.19.0 and 16.9.0, but is opt-in for the time being. Run `corepack enable` to install the required shims. ### Manual Installs @@ -104,8 +104,14 @@ This command will retrieve the given package manager from the specified archive ## Environment Variables +- `COREPACK_ENABLE_NETWORK` can be set to `0` to prevent Corepack from accessing the network (in which case you'll be responsible for hydrating the package manager versions that will be required for the projects you'll run, using `corepack hydrate`). + +- `COREPACK_HOME` can be set in order to define where Corepack should install the package managers. By default it is set to `$HOME/.node/corepack`. + - `COREPACK_ROOT` has no functional impact on Corepack itself; it's automatically being set in your environment by Corepack when it shells out to the underlying package managers, so that they can feature-detect its presence (useful for commands like `yarn init`). +- `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` are supported through [`node-proxy-agent`](https://github.com/TooTallNate/node-proxy-agent). + ## Contributing If you want to build corepack yourself, you can build the project like this: diff --git a/deps/corepack/dist/corepack.js b/deps/corepack/dist/corepack.js index f540b108b0a305..3290a0ff392bb4 100755 --- a/deps/corepack/dist/corepack.js +++ b/deps/corepack/dist/corepack.js @@ -3,14616 +3,16810 @@ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Cli.js": -/*!*********************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Cli.js ***! - \*********************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/@zkochan-cmd-shim-npm-5.2.2-ae7b6d5b86-9.zip/node_modules/@zkochan/cmd-shim/index.js": +/*!***********************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/@zkochan-cmd-shim-npm-5.2.2-ae7b6d5b86-9.zip/node_modules/@zkochan/cmd-shim/index.js ***! + \***********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var constants = __webpack_require__(/*! ../constants.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/constants.js"); -var Command = __webpack_require__(/*! ./Command.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Command.js"); -var core = __webpack_require__(/*! ../core.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/core.js"); -var format = __webpack_require__(/*! ../format.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/format.js"); -var HelpCommand = __webpack_require__(/*! ./HelpCommand.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/HelpCommand.js"); - -const errorCommandSymbol = Symbol(`clipanion/errorCommand`); -function getDefaultColorSettings() { - if (process.env.FORCE_COLOR === `0`) - return false; - if (process.env.FORCE_COLOR === `1`) - return true; - if (typeof process.stdout !== `undefined` && process.stdout.isTTY) - return true; - return false; +cmdShim.ifExists = cmdShimIfExists; +const util_1 = __webpack_require__(/*! util */ "util"); +const path = __webpack_require__(/*! path */ "path"); +const isWindows = __webpack_require__(/*! is-windows */ "../../../.yarn/berry/cache/is-windows-npm-1.0.2-898cd6f3d7-9.zip/node_modules/is-windows/index.js"); +const CMD_EXTENSION = __webpack_require__(/*! cmd-extension */ "../../../.yarn/berry/cache/cmd-extension-npm-1.0.2-11aa204c4b-9.zip/node_modules/cmd-extension/index.js"); +const shebangExpr = /^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/; +const DEFAULT_OPTIONS = { + // Create PowerShell file by default if the option hasn't been specified + createPwshFile: true, + createCmdFile: isWindows(), + fs: __webpack_require__(/*! fs */ "fs") +}; +/** + * Map from extensions of files that this module is frequently used for to their runtime. + * @type {Map} + */ +const extensionToProgramMap = new Map([ + ['.js', 'node'], + ['.cjs', 'node'], + ['.mjs', 'node'], + ['.cmd', 'cmd'], + ['.bat', 'cmd'], + ['.ps1', 'pwsh'], + ['.sh', 'sh'] +]); +function ingestOptions(opts) { + const opts_ = { ...DEFAULT_OPTIONS, ...opts }; + const fs = opts_.fs; + opts_.fs_ = { + chmod: fs.chmod ? util_1.promisify(fs.chmod) : (async () => { }), + mkdir: util_1.promisify(fs.mkdir), + readFile: util_1.promisify(fs.readFile), + stat: util_1.promisify(fs.stat), + unlink: util_1.promisify(fs.unlink), + writeFile: util_1.promisify(fs.writeFile) + }; + return opts_; } /** - * @template Context The context shared by all commands. Contexts are a set of values, defined when calling the `run`/`runExit` functions from the CLI instance, that will be made available to the commands via `this.context`. + * Try to create shims. + * + * @param src Path to program (executable or script). + * @param to Path to shims. + * Don't add an extension if you will create multiple types of shims. + * @param opts Options. + * @throws If `src` is missing. */ -class Cli { - constructor({ binaryLabel, binaryName: binaryNameOpt = `...`, binaryVersion, enableColors = getDefaultColorSettings() } = {}) { - this.registrations = new Map(); - this.builder = new core.CliBuilder({ binaryName: binaryNameOpt }); - this.binaryLabel = binaryLabel; - this.binaryName = binaryNameOpt; - this.binaryVersion = binaryVersion; - this.enableColors = enableColors; - } - /** - * Creates a new Cli and registers all commands passed as parameters. - * - * @param commandClasses The Commands to register - * @returns The created `Cli` instance - */ - static from(commandClasses, options = {}) { - const cli = new Cli(options); - for (const commandClass of commandClasses) - cli.register(commandClass); - return cli; +async function cmdShim(src, to, opts) { + const opts_ = ingestOptions(opts); + await opts_.fs_.stat(src); + await cmdShim_(src, to, opts_); +} +/** + * Try to create shims. + * + * Does nothing if `src` doesn't exist. + * + * @param src Path to program (executable or script). + * @param to Path to shims. + * Don't add an extension if you will create multiple types of shims. + * @param opts Options. + */ +function cmdShimIfExists(src, to, opts) { + return cmdShim(src, to, opts).catch(() => { }); +} +/** + * Try to unlink, but ignore errors. + * Any problems will surface later. + * + * @param path File to be removed. + */ +function rm(path, opts) { + return opts.fs_.unlink(path).catch(() => { }); +} +/** + * Try to create shims **even if `src` is missing**. + * + * @param src Path to program (executable or script). + * @param to Path to shims. + * Don't add an extension if you will create multiple types of shims. + * @param opts Options. + */ +async function cmdShim_(src, to, opts) { + const srcRuntimeInfo = await searchScriptRuntime(src, opts); + // Always tries to create all types of shims by calling `writeAllShims` as of now. + // Append your code here to change the behavior in response to `srcRuntimeInfo`. + // Create 3 shims for (Ba)sh in Cygwin / MSYS, no extension) & CMD (.cmd) & PowerShell (.ps1) + await writeShimsPreCommon(to, opts); + return writeAllShims(src, to, srcRuntimeInfo, opts); +} +/** + * Do processes before **all** shims are created. + * This must be called **only once** for one call of `cmdShim(IfExists)`. + * + * @param target Path of shims that are going to be created. + */ +function writeShimsPreCommon(target, opts) { + return opts.fs_.mkdir(path.dirname(target), { recursive: true }); +} +/** + * Write all types (sh & cmd & pwsh) of shims to files. + * Extensions (`.cmd` and `.ps1`) are appended to cmd and pwsh shims. + * + * + * @param src Path to program (executable or script). + * @param to Path to shims **without extensions**. + * Extensions are added for CMD and PowerShell shims. + * @param srcRuntimeInfo Return value of `await searchScriptRuntime(src)`. + * @param opts Options. + */ +function writeAllShims(src, to, srcRuntimeInfo, opts) { + const opts_ = ingestOptions(opts); + const generatorAndExts = [{ generator: generateShShim, extension: '' }]; + if (opts_.createCmdFile) { + generatorAndExts.push({ generator: generateCmdShim, extension: CMD_EXTENSION }); } - /** - * Registers a command inside the CLI. - */ - register(commandClass) { - var _a; - const specs = new Map(); - const command = new commandClass(); - for (const key in command) { - const value = command[key]; - if (typeof value === `object` && value !== null && value[Command.Command.isOption]) { - specs.set(key, value); - } - } - const builder = this.builder.command(); - const index = builder.cliIndex; - const paths = (_a = commandClass.paths) !== null && _a !== void 0 ? _a : command.paths; - if (typeof paths !== `undefined`) - for (const path of paths) - builder.addPath(path); - this.registrations.set(commandClass, { specs, builder, index }); - for (const [key, { definition }] of specs.entries()) - definition(builder, key); - builder.setContext({ - commandClass, - }); + if (opts_.createPwshFile) { + generatorAndExts.push({ generator: generatePwshShim, extension: '.ps1' }); } - process(input) { - const { contexts, process } = this.builder.compile(); - const state = process(input); - switch (state.selectedIndex) { - case constants.HELP_COMMAND_INDEX: - { - return HelpCommand.HelpCommand.from(state, contexts); - } - default: - { - const { commandClass } = contexts[state.selectedIndex]; - const record = this.registrations.get(commandClass); - if (typeof record === `undefined`) - throw new Error(`Assertion failed: Expected the command class to have been registered.`); - const command = new commandClass(); - command.path = state.path; - try { - for (const [key, { transformer }] of record.specs.entries()) - command[key] = transformer(record.builder, key, state); - return command; - } - catch (error) { - error[errorCommandSymbol] = command; - throw error; - } - } - break; - } + return Promise.all(generatorAndExts.map((generatorAndExt) => writeShim(src, to + generatorAndExt.extension, srcRuntimeInfo, generatorAndExt.generator, opts_))); +} +/** + * Do processes before writing shim. + * + * @param target Path to shim that is going to be created. + */ +function writeShimPre(target, opts) { + return rm(target, opts); +} +/** + * Do processes after writing the shim. + * + * @param target Path to just created shim. + */ +function writeShimPost(target, opts) { + // Only chmoding shims as of now. + // Some other processes may be appended. + return chmodShim(target, opts); +} +/** + * Look into runtime (e.g. `node` & `sh` & `pwsh`) and its arguments + * of the target program (script or executable). + * + * @param target Path to the executable or script. + * @return Promise of infomation of runtime of `target`. + */ +async function searchScriptRuntime(target, opts) { + const data = await opts.fs_.readFile(target, 'utf8'); + // First, check if the bin is a #! of some sort. + const firstLine = data.trim().split(/\r*\n/)[0]; + const shebang = firstLine.match(shebangExpr); + if (!shebang) { + // If not, infer script type from its extension. + // If the inference fails, it's something that'll be compiled, or some other + // sort of script, and just call it directly. + const targetExtension = path.extname(target).toLowerCase(); + return { + // undefined if extension is unknown but it's converted to null. + program: extensionToProgramMap.get(targetExtension) || null, + additionalArgs: '' + }; } - async run(input, context) { - let command; - if (!Array.isArray(input)) { - command = input; - } - else { - try { - command = this.process(input); - } - catch (error) { - context.stdout.write(this.error(error)); - return 1; - } - } - if (command.help) { - context.stdout.write(this.usage(command, { detailed: true })); - return 0; - } - command.context = context; - command.cli = { - binaryLabel: this.binaryLabel, - binaryName: this.binaryName, - binaryVersion: this.binaryVersion, - enableColors: this.enableColors, - definitions: () => this.definitions(), - error: (error, opts) => this.error(error, opts), - process: input => this.process(input), - run: (input, subContext) => this.run(input, { ...context, ...subContext }), - usage: (command, opts) => this.usage(command, opts), - }; - let exitCode; - try { - exitCode = await command.validateAndExecute().catch(error => command.catch(error).then(() => 0)); - } - catch (error) { - context.stdout.write(this.error(error, { command })); - return 1; - } - return exitCode; + return { + program: shebang[1], + additionalArgs: shebang[2] + }; +} +/** + * Write shim to the file system while executing the pre- and post-processes + * defined in `WriteShimPre` and `WriteShimPost`. + * + * @param src Path to the executable or script. + * @param to Path to the (sh) shim(s) that is going to be created. + * @param srcRuntimeInfo Result of `await searchScriptRuntime(src)`. + * @param generateShimScript Generator of shim script. + * @param opts Other options. + */ +async function writeShim(src, to, srcRuntimeInfo, generateShimScript, opts) { + const defaultArgs = opts.preserveSymlinks ? '--preserve-symlinks' : ''; + // `Array.prototype.filter` removes ''. + // ['--foo', '--bar'].join(' ') and [].join(' ') returns '--foo --bar' and '' respectively. + const args = [srcRuntimeInfo.additionalArgs, defaultArgs].filter(arg => arg).join(' '); + opts = Object.assign({}, opts, { + prog: srcRuntimeInfo.program, + args: args + }); + await writeShimPre(to, opts); + await opts.fs_.writeFile(to, generateShimScript(src, to, opts), 'utf8'); + return writeShimPost(to, opts); +} +/** + * Generate the content of a shim for CMD. + * + * @param src Path to the executable or script. + * @param to Path to the shim to be created. + * It is highly recommended to end with `.cmd` (or `.bat`). + * @param opts Options. + * @return The content of shim. + */ +function generateCmdShim(src, to, opts) { + // `shTarget` is not used to generate the content. + const shTarget = path.relative(path.dirname(to), src); + let target = shTarget.split('/').join('\\'); + const quotedPathToTarget = path.isAbsolute(target) ? `"${target}"` : `"%~dp0\\${target}"`; + let longProg; + let prog = opts.prog; + let args = opts.args || ''; + const nodePath = normalizePathEnvVar(opts.nodePath).win32; + if (!prog) { + prog = quotedPathToTarget; + args = ''; + target = ''; } - /** - * Runs a command and exits the current `process` with the exit code returned by the command. - * - * @param input An array containing the name of the command and its arguments. - * - * @example - * cli.runExit(process.argv.slice(2), Cli.defaultContext) - */ - async runExit(input, context) { - process.exitCode = await this.run(input, context); + else if (prog === 'node' && opts.nodeExecPath) { + prog = `"${opts.nodeExecPath}"`; + target = quotedPathToTarget; } - suggest(input, partial) { - const { suggest } = this.builder.compile(); - return suggest(input, partial); + else { + longProg = `"%~dp0\\${prog}.exe"`; + target = quotedPathToTarget; } - definitions({ colored = false } = {}) { - const data = []; - for (const [commandClass, { index }] of this.registrations) { - if (typeof commandClass.usage === `undefined`) - continue; - const { usage: path } = this.getUsageByIndex(index, { detailed: false }); - const { usage, options } = this.getUsageByIndex(index, { detailed: true, inlineOptions: false }); - const category = typeof commandClass.usage.category !== `undefined` - ? format.formatMarkdownish(commandClass.usage.category, { format: this.format(colored), paragraphs: false }) - : undefined; - const description = typeof commandClass.usage.description !== `undefined` - ? format.formatMarkdownish(commandClass.usage.description, { format: this.format(colored), paragraphs: false }) - : undefined; - const details = typeof commandClass.usage.details !== `undefined` - ? format.formatMarkdownish(commandClass.usage.details, { format: this.format(colored), paragraphs: true }) - : undefined; - const examples = typeof commandClass.usage.examples !== `undefined` - ? commandClass.usage.examples.map(([label, cli]) => [format.formatMarkdownish(label, { format: this.format(colored), paragraphs: false }), cli.replace(/\$0/g, this.binaryName)]) - : undefined; - data.push({ path, usage, category, description, details, examples, options }); - } - return data; + let progArgs = opts.progArgs ? `${opts.progArgs.join(` `)} ` : ''; + // @IF EXIST "%~dp0\node.exe" ( + // "%~dp0\node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* + // ) ELSE ( + // SETLOCAL + // SET PATHEXT=%PATHEXT:;.JS;=;% + // node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* + // ) + let cmd = '@SETLOCAL\r\n'; + if (nodePath) { + cmd += `\ +@IF NOT DEFINED NODE_PATH (\r + @SET "NODE_PATH=${nodePath}"\r +) ELSE (\r + @SET "NODE_PATH=%NODE_PATH%;${nodePath}"\r +)\r +`; } - usage(command = null, { colored, detailed = false, prefix = `$ ` } = {}) { - var _a; - // In case the default command is the only one, we can just show the command help rather than the general one - if (command === null) { - for (const commandClass of this.registrations.keys()) { - const paths = commandClass.paths; - const isDocumented = typeof commandClass.usage !== `undefined`; - const isExclusivelyDefault = !paths || paths.length === 0 || (paths.length === 1 && paths[0].length === 0); - const isDefault = isExclusivelyDefault || ((_a = paths === null || paths === void 0 ? void 0 : paths.some(path => path.length === 0)) !== null && _a !== void 0 ? _a : false); - if (isDefault) { - if (command) { - command = null; - break; - } - else { - command = commandClass; - } - } - else { - if (isDocumented) { - command = null; - continue; - } - } - } - if (command) { - detailed = true; - } - } - // @ts-ignore - const commandClass = command !== null && command instanceof Command.Command - ? command.constructor - : command; - let result = ``; - if (!commandClass) { - const commandsByCategories = new Map(); - for (const [commandClass, { index }] of this.registrations.entries()) { - if (typeof commandClass.usage === `undefined`) - continue; - const category = typeof commandClass.usage.category !== `undefined` - ? format.formatMarkdownish(commandClass.usage.category, { format: this.format(colored), paragraphs: false }) - : null; - let categoryCommands = commandsByCategories.get(category); - if (typeof categoryCommands === `undefined`) - commandsByCategories.set(category, categoryCommands = []); - const { usage } = this.getUsageByIndex(index); - categoryCommands.push({ commandClass, usage }); - } - const categoryNames = Array.from(commandsByCategories.keys()).sort((a, b) => { - if (a === null) - return -1; - if (b === null) - return +1; - return a.localeCompare(b, `en`, { usage: `sort`, caseFirst: `upper` }); - }); - const hasLabel = typeof this.binaryLabel !== `undefined`; - const hasVersion = typeof this.binaryVersion !== `undefined`; - if (hasLabel || hasVersion) { - if (hasLabel && hasVersion) - result += `${this.format(colored).header(`${this.binaryLabel} - ${this.binaryVersion}`)}\n\n`; - else if (hasLabel) - result += `${this.format(colored).header(`${this.binaryLabel}`)}\n`; - else - result += `${this.format(colored).header(`${this.binaryVersion}`)}\n`; - result += ` ${this.format(colored).bold(prefix)}${this.binaryName} \n`; - } - else { - result += `${this.format(colored).bold(prefix)}${this.binaryName} \n`; - } - for (const categoryName of categoryNames) { - const commands = commandsByCategories.get(categoryName).slice().sort((a, b) => { - return a.usage.localeCompare(b.usage, `en`, { usage: `sort`, caseFirst: `upper` }); - }); - const header = categoryName !== null - ? categoryName.trim() - : `General commands`; - result += `\n`; - result += `${this.format(colored).header(`${header}`)}\n`; - for (const { commandClass, usage } of commands) { - const doc = commandClass.usage.description || `undocumented`; - result += `\n`; - result += ` ${this.format(colored).bold(usage)}\n`; - result += ` ${format.formatMarkdownish(doc, { format: this.format(colored), paragraphs: false })}`; - } - } - result += `\n`; - result += format.formatMarkdownish(`You can also print more details about any of these commands by calling them with the \`-h,--help\` flag right after the command name.`, { format: this.format(colored), paragraphs: true }); - } - else { - if (!detailed) { - const { usage } = this.getUsageByRegistration(commandClass); - result += `${this.format(colored).bold(prefix)}${usage}\n`; - } - else { - const { description = ``, details = ``, examples = [], } = commandClass.usage || {}; - if (description !== ``) { - result += format.formatMarkdownish(description, { format: this.format(colored), paragraphs: false }).replace(/^./, $0 => $0.toUpperCase()); - result += `\n`; - } - if (details !== `` || examples.length > 0) { - result += `${this.format(colored).header(`Usage`)}\n`; - result += `\n`; - } - const { usage, options } = this.getUsageByRegistration(commandClass, { inlineOptions: false }); - result += `${this.format(colored).bold(prefix)}${usage}\n`; - if (options.length > 0) { - result += `\n`; - result += `${format.richFormat.header(`Options`)}\n`; - const maxDefinitionLength = options.reduce((length, option) => { - return Math.max(length, option.definition.length); - }, 0); - result += `\n`; - for (const { definition, description } of options) { - result += ` ${this.format(colored).bold(definition.padEnd(maxDefinitionLength))} ${format.formatMarkdownish(description, { format: this.format(colored), paragraphs: false })}`; - } - } - if (details !== ``) { - result += `\n`; - result += `${this.format(colored).header(`Details`)}\n`; - result += `\n`; - result += format.formatMarkdownish(details, { format: this.format(colored), paragraphs: true }); - } - if (examples.length > 0) { - result += `\n`; - result += `${this.format(colored).header(`Examples`)}\n`; - for (const [description, example] of examples) { - result += `\n`; - result += format.formatMarkdownish(description, { format: this.format(colored), paragraphs: false }); - result += `${example - .replace(/^/m, ` ${this.format(colored).bold(prefix)}`) - .replace(/\$0/g, this.binaryName)}\n`; - } - } - } - } - return result; + if (longProg) { + cmd += `\ +@IF EXIST ${longProg} (\r + ${longProg} ${args} ${target} ${progArgs}%*\r +) ELSE (\r + @SET PATHEXT=%PATHEXT:;.JS;=;%\r + ${prog} ${args} ${target} ${progArgs}%*\r +)\r +`; } - error(error, _a) { - var _b; - var { colored, command = (_b = error[errorCommandSymbol]) !== null && _b !== void 0 ? _b : null } = _a === void 0 ? {} : _a; - if (!(error instanceof Error)) - error = new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(error)})`); - let result = ``; - let name = error.name.replace(/([a-z])([A-Z])/g, `$1 $2`); - if (name === `Error`) - name = `Internal Error`; - result += `${this.format(colored).error(name)}: ${error.message}\n`; - const meta = error.clipanion; - if (typeof meta !== `undefined`) { - if (meta.type === `usage`) { - result += `\n`; - result += this.usage(command); - } - } - else { - if (error.stack) { - result += `${error.stack.replace(/^.*\n/, ``)}\n`; - } - } - return result; + else { + cmd += `@${prog} ${args} ${target} ${progArgs}%*\r\n`; } - getUsageByRegistration(klass, opts) { - const record = this.registrations.get(klass); - if (typeof record === `undefined`) - throw new Error(`Assertion failed: Unregistered command`); - return this.getUsageByIndex(record.index, opts); + return cmd; +} +/** + * Generate the content of a shim for (Ba)sh in, for example, Cygwin and MSYS(2). + * + * @param src Path to the executable or script. + * @param to Path to the shim to be created. + * It is highly recommended to end with `.sh` or to contain no extension. + * @param opts Options. + * @return The content of shim. + */ +function generateShShim(src, to, opts) { + let shTarget = path.relative(path.dirname(to), src); + let shProg = opts.prog && opts.prog.split('\\').join('/'); + let shLongProg; + shTarget = shTarget.split('\\').join('/'); + const quotedPathToTarget = path.isAbsolute(shTarget) ? `"${shTarget}"` : `"$basedir/${shTarget}"`; + let args = opts.args || ''; + const shNodePath = normalizePathEnvVar(opts.nodePath).posix; + if (!shProg) { + shProg = quotedPathToTarget; + args = ''; + shTarget = ''; } - getUsageByIndex(n, opts) { - return this.builder.getBuilderByIndex(n).usage(opts); + else if (opts.prog === 'node' && opts.nodeExecPath) { + shProg = `"${opts.nodeExecPath}"`; + shTarget = quotedPathToTarget; } - format(colored = this.enableColors) { - return colored ? format.richFormat : format.textFormat; + else { + shLongProg = `"$basedir/${opts.prog}"`; + shTarget = quotedPathToTarget; + } + let progArgs = opts.progArgs ? `${opts.progArgs.join(` `)} ` : ''; + // #!/bin/sh + // basedir=`dirname "$0"` + // + // case `uname` in + // *CYGWIN*) basedir=`cygpath -w "$basedir"`;; + // esac + // + // export NODE_PATH="" + // + // if [ -x "$basedir/node.exe" ]; then + // exec "$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@" + // else + // exec node "$basedir/node_modules/npm/bin/npm-cli.js" "$@" + // fi + let sh = `\ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") + +case \`uname\` in + *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; +esac + +`; + if (shNodePath) { + sh += `\ +if [ -z "$NODE_PATH" ]; then + export NODE_PATH="${shNodePath}" +else + export NODE_PATH="$NODE_PATH:${shNodePath}" +fi +`; + } + if (shLongProg) { + sh += `\ +if [ -x ${shLongProg} ]; then + exec ${shLongProg} ${args} ${shTarget} ${progArgs}"$@" +else + exec ${shProg} ${args} ${shTarget} ${progArgs}"$@" +fi +`; + } + else { + sh += `\ +${shProg} ${args} ${shTarget} ${progArgs}"$@" +exit $? +`; } + return sh; } /** - * The default context of the CLI. + * Generate the content of a shim for PowerShell. * - * Contains the stdio of the current `process`. + * @param src Path to the executable or script. + * @param to Path to the shim to be created. + * It is highly recommended to end with `.ps1`. + * @param opts Options. + * @return The content of shim. */ -Cli.defaultContext = { - stdin: process.stdin, - stdout: process.stdout, - stderr: process.stderr, -}; - -exports.Cli = Cli; - +function generatePwshShim(src, to, opts) { + let shTarget = path.relative(path.dirname(to), src); + const shProg = opts.prog && opts.prog.split('\\').join('/'); + let pwshProg = shProg && `"${shProg}$exe"`; + let pwshLongProg; + shTarget = shTarget.split('\\').join('/'); + const quotedPathToTarget = path.isAbsolute(shTarget) ? `"${shTarget}"` : `"$basedir/${shTarget}"`; + let args = opts.args || ''; + let normalizedPathEnvVar = normalizePathEnvVar(opts.nodePath); + const nodePath = normalizedPathEnvVar.win32; + const shNodePath = normalizedPathEnvVar.posix; + if (!pwshProg) { + pwshProg = quotedPathToTarget; + args = ''; + shTarget = ''; + } + else if (opts.prog === 'node' && opts.nodeExecPath) { + pwshProg = `"${opts.nodeExecPath}"`; + shTarget = quotedPathToTarget; + } + else { + pwshLongProg = `"$basedir/${opts.prog}$exe"`; + shTarget = quotedPathToTarget; + } + let progArgs = opts.progArgs ? `${opts.progArgs.join(` `)} ` : ''; + // #!/usr/bin/env pwsh + // $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + // + // $ret=0 + // $exe = "" + // if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + // # Fix case when both the Windows and Linux builds of Node + // # are installed in the same directory + // $exe = ".exe" + // } + // if (Test-Path "$basedir/node") { + // # Support pipeline input + // if ($MyInvocation.ExpectingInput) { + // $input | & "$basedir/node$exe" "$basedir/node_modules/npm/bin/npm-cli.js" $args + // } else { + // & "$basedir/node$exe" "$basedir/node_modules/npm/bin/npm-cli.js" $args + // } + // $ret=$LASTEXITCODE + // } else { + // # Support pipeline input + // if ($MyInvocation.ExpectingInput) { + // $input | & "node$exe" "$basedir/node_modules/npm/bin/npm-cli.js" $args + // } else { + // & "node$exe" "$basedir/node_modules/npm/bin/npm-cli.js" $args + // } + // $ret=$LASTEXITCODE + // } + // exit $ret + let pwsh = `\ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +${nodePath ? `\ +$pathsep=":" +$env_node_path=$env:NODE_PATH +$new_node_path="${nodePath}" +` : ''}\ +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +${nodePath ? ' $pathsep=";"\n' : ''}\ +}`; + if (shNodePath) { + pwsh += `\ + else { + $new_node_path="${shNodePath}" +} +if ([string]::IsNullOrEmpty($env_node_path)) { + $env:NODE_PATH=$new_node_path +} else { + $env:NODE_PATH="$env_node_path$pathsep$new_node_path" +} +`; + } + if (pwshLongProg) { + pwsh += ` +$ret=0 +if (Test-Path ${pwshLongProg}) { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${pwshLongProg} ${args} ${shTarget} ${progArgs}$args + } else { + & ${pwshLongProg} ${args} ${shTarget} ${progArgs}$args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${pwshProg} ${args} ${shTarget} ${progArgs}$args + } else { + & ${pwshProg} ${args} ${shTarget} ${progArgs}$args + } + $ret=$LASTEXITCODE +} +${nodePath ? '$env:NODE_PATH=$env_node_path\n' : ''}\ +exit $ret +`; + } + else { + pwsh += ` +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & ${pwshProg} ${args} ${shTarget} ${progArgs}$args +} else { + & ${pwshProg} ${args} ${shTarget} ${progArgs}$args +} +${nodePath ? '$env:NODE_PATH=$env_node_path\n' : ''}\ +exit $LASTEXITCODE +`; + } + return pwsh; +} +/** + * Chmod just created shim and make it executable + * + * @param to Path to shim. + */ +function chmodShim(to, opts) { + return opts.fs_.chmod(to, 0o755); +} +function normalizePathEnvVar(nodePath) { + if (!nodePath || !nodePath.length) { + return { + win32: '', + posix: '' + }; + } + let split = (typeof nodePath === 'string' ? nodePath.split(path.delimiter) : Array.from(nodePath)); + let result = {}; + for (let i = 0; i < split.length; i++) { + const win32 = split[i].split('/').join('\\'); + const posix = isWindows() ? split[i].split('\\').join('/').replace(/^([^:\\/]*):/, (_, $1) => `/mnt/${$1.toLowerCase()}`) : split[i]; + result.win32 = result.win32 ? `${result.win32};${win32}` : win32; + result.posix = result.posix ? `${result.posix}:${posix}` : posix; + result[i] = { win32, posix }; + } + return result; +} +module.exports = cmdShim; +//# sourceMappingURL=index.js.map /***/ }), -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Command.js": -/*!*************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Command.js ***! - \*************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/chownr-npm-2.0.0-638f1c9c61-9.zip/node_modules/chownr/chownr.js": +/*!**************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/chownr-npm-2.0.0-638f1c9c61-9.zip/node_modules/chownr/chownr.js ***! + \**************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; +const fs = __webpack_require__(/*! fs */ "fs") +const path = __webpack_require__(/*! path */ "path") -Object.defineProperty(exports, "__esModule", ({ value: true })); +/* istanbul ignore next */ +const LCHOWN = fs.lchown ? 'lchown' : 'chown' +/* istanbul ignore next */ +const LCHOWNSYNC = fs.lchownSync ? 'lchownSync' : 'chownSync' -var utils = __webpack_require__(/*! ./options/utils.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js"); +/* istanbul ignore next */ +const needEISDIRHandled = fs.lchown && + !process.version.match(/v1[1-9]+\./) && + !process.version.match(/v10\.[6-9]/) -function _interopNamespace(e) { - if (e && e.__esModule) return e; - var n = Object.create(null); - if (e) { - Object.keys(e).forEach(function (k) { - if (k !== 'default') { - var d = Object.getOwnPropertyDescriptor(e, k); - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: function () { - return e[k]; - } - }); - } - }); - } - n['default'] = e; - return Object.freeze(n); +const lchownSync = (path, uid, gid) => { + try { + return fs[LCHOWNSYNC](path, uid, gid) + } catch (er) { + if (er.code !== 'ENOENT') + throw er + } } -class Command { - constructor() { - /** - * Predefined that will be set to true if `-h,--help` has been used, in - * which case `Command#execute` won't be called. - */ - this.help = false; - } - /** - * Defines the usage information for the given command. - */ - static Usage(usage) { - return usage; - } - /** - * Standard error handler which will simply rethrow the error. Can be used - * to add custom logic to handle errors from the command or simply return - * the parent class error handling. - */ - async catch(error) { - throw error; - } - async validateAndExecute() { - const commandClass = this.constructor; - const cascade = commandClass.schema; - if (typeof cascade !== `undefined`) { - const { isDict, isUnknown, applyCascade } = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(__webpack_require__(/*! typanion */ "./.yarn/cache/typanion-npm-3.3.1-ee9997c7cf-212d2beb55.zip/node_modules/typanion/lib/index.js")); }); - const schema = applyCascade(isDict(isUnknown()), cascade); - const errors = []; - const coercions = []; - const check = schema(this, { errors, coercions }); - if (!check) - throw utils.formatError(`Invalid option schema`, errors); - for (const [, op] of coercions) { - op(); - } - } - const exitCode = await this.execute(); - if (typeof exitCode !== `undefined`) { - return exitCode; - } - else { - return 0; - } - } +/* istanbul ignore next */ +const chownSync = (path, uid, gid) => { + try { + return fs.chownSync(path, uid, gid) + } catch (er) { + if (er.code !== 'ENOENT') + throw er + } } -/** - * Used to detect option definitions. - */ -Command.isOption = utils.isOptionSymbol; -/** - * Just an helper to use along with the `paths` fields, to make it - * clearer that a command is the default one. - * - * @example - * class MyCommand extends Command { - * static paths = [Command.Default]; - * } - */ -Command.Default = []; - -exports.Command = Command; +/* istanbul ignore next */ +const handleEISDIR = + needEISDIRHandled ? (path, uid, gid, cb) => er => { + // Node prior to v10 had a very questionable implementation of + // fs.lchown, which would always try to call fs.open on a directory + // Fall back to fs.chown in those cases. + if (!er || er.code !== 'EISDIR') + cb(er) + else + fs.chown(path, uid, gid, cb) + } + : (_, __, ___, cb) => cb -/***/ }), +/* istanbul ignore next */ +const handleEISDirSync = + needEISDIRHandled ? (path, uid, gid) => { + try { + return lchownSync(path, uid, gid) + } catch (er) { + if (er.code !== 'EISDIR') + throw er + chownSync(path, uid, gid) + } + } + : (path, uid, gid) => lchownSync(path, uid, gid) -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/HelpCommand.js": -/*!*****************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/HelpCommand.js ***! - \*****************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +// fs.readdir could only accept an options object as of node v6 +const nodeVersion = process.version +let readdir = (path, options, cb) => fs.readdir(path, options, cb) +let readdirSync = (path, options) => fs.readdirSync(path, options) +/* istanbul ignore next */ +if (/^v4\./.test(nodeVersion)) + readdir = (path, options, cb) => fs.readdir(path, cb) -"use strict"; +const chown = (cpath, uid, gid, cb) => { + fs[LCHOWN](cpath, uid, gid, handleEISDIR(cpath, uid, gid, er => { + // Skip ENOENT error + cb(er && er.code !== 'ENOENT' ? er : null) + })) +} +const chownrKid = (p, child, uid, gid, cb) => { + if (typeof child === 'string') + return fs.lstat(path.resolve(p, child), (er, stats) => { + // Skip ENOENT error + if (er) + return cb(er.code !== 'ENOENT' ? er : null) + stats.name = child + chownrKid(p, stats, uid, gid, cb) + }) -Object.defineProperty(exports, "__esModule", ({ value: true })); + if (child.isDirectory()) { + chownr(path.resolve(p, child.name), uid, gid, er => { + if (er) + return cb(er) + const cpath = path.resolve(p, child.name) + chown(cpath, uid, gid, cb) + }) + } else { + const cpath = path.resolve(p, child.name) + chown(cpath, uid, gid, cb) + } +} -var Command = __webpack_require__(/*! ./Command.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Command.js"); -class HelpCommand extends Command.Command { - constructor(contexts) { - super(); - this.contexts = contexts; - this.commands = []; - } - static from(state, contexts) { - const command = new HelpCommand(contexts); - command.path = state.path; - for (const opt of state.options) { - switch (opt.name) { - case `-c`: - { - command.commands.push(Number(opt.value)); - } - break; - case `-i`: - { - command.index = Number(opt.value); - } - break; - } - } - return command; - } - async execute() { - let commands = this.commands; - if (typeof this.index !== `undefined` && this.index >= 0 && this.index < commands.length) - commands = [commands[this.index]]; - if (commands.length === 0) { - this.context.stdout.write(this.cli.usage()); - } - else if (commands.length === 1) { - this.context.stdout.write(this.cli.usage(this.contexts[commands[0]].commandClass, { detailed: true })); - } - else if (commands.length > 1) { - this.context.stdout.write(`Multiple commands match your selection:\n`); - this.context.stdout.write(`\n`); - let index = 0; - for (const command of this.commands) - this.context.stdout.write(this.cli.usage(this.contexts[command].commandClass, { prefix: `${index++}. `.padStart(5) })); - this.context.stdout.write(`\n`); - this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands.\n`); - } +const chownr = (p, uid, gid, cb) => { + readdir(p, { withFileTypes: true }, (er, children) => { + // any error other than ENOTDIR or ENOTSUP means it's not readable, + // or doesn't exist. give up. + if (er) { + if (er.code === 'ENOENT') + return cb() + else if (er.code !== 'ENOTDIR' && er.code !== 'ENOTSUP') + return cb(er) } -} - -exports.HelpCommand = HelpCommand; + if (er || !children.length) + return chown(p, uid, gid, cb) + let len = children.length + let errState = null + const then = er => { + if (errState) + return + if (er) + return cb(errState = er) + if (-- len === 0) + return chown(p, uid, gid, cb) + } -/***/ }), + children.forEach(child => chownrKid(p, child, uid, gid, then)) + }) +} -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/definitions.js": -/*!**************************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/definitions.js ***! - \**************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +const chownrKidSync = (p, child, uid, gid) => { + if (typeof child === 'string') { + try { + const stats = fs.lstatSync(path.resolve(p, child)) + stats.name = child + child = stats + } catch (er) { + if (er.code === 'ENOENT') + return + else + throw er + } + } -"use strict"; + if (child.isDirectory()) + chownrSync(path.resolve(p, child.name), uid, gid) + handleEISDirSync(path.resolve(p, child.name), uid, gid) +} -Object.defineProperty(exports, "__esModule", ({ value: true })); +const chownrSync = (p, uid, gid) => { + let children + try { + children = readdirSync(p, { withFileTypes: true }) + } catch (er) { + if (er.code === 'ENOENT') + return + else if (er.code === 'ENOTDIR' || er.code === 'ENOTSUP') + return handleEISDirSync(p, uid, gid) + else + throw er + } -var Command = __webpack_require__(/*! ../Command.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Command.js"); + if (children && children.length) + children.forEach(child => chownrKidSync(p, child, uid, gid)) -/** - * A command that prints the clipanion definitions. - */ -class DefinitionsCommand extends Command.Command { - async execute() { - this.context.stdout.write(`${JSON.stringify(this.cli.definitions(), null, 2)}\n`); - } + return handleEISDirSync(p, uid, gid) } -DefinitionsCommand.paths = [[`--clipanion=definitions`]]; -exports.DefinitionsCommand = DefinitionsCommand; +module.exports = chownr +chownr.sync = chownrSync /***/ }), -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/help.js": -/*!*******************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/help.js ***! - \*******************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/cmd-extension-npm-1.0.2-11aa204c4b-9.zip/node_modules/cmd-extension/index.js": +/*!***************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/cmd-extension-npm-1.0.2-11aa204c4b-9.zip/node_modules/cmd-extension/index.js ***! + \***************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; +const path = __webpack_require__(/*! path */ "path") -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var Command = __webpack_require__(/*! ../Command.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Command.js"); +let cmdExtension -/** - * A command that prints the usage of all commands. - * - * Paths: `-h`, `--help` - */ -class HelpCommand extends Command.Command { - async execute() { - this.context.stdout.write(this.cli.usage()); - } +if (process.env.PATHEXT) { + cmdExtension = process.env.PATHEXT + .split(path.delimiter) + .find(ext => ext.toUpperCase() === '.CMD') } -HelpCommand.paths = [[`-h`], [`--help`]]; -exports.HelpCommand = HelpCommand; +module.exports = cmdExtension || '.cmd' /***/ }), -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/index.js": -/*!********************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/index.js ***! - \********************************************************************************************************************************************************************/ +/***/ "../../../.yarn/berry/cache/fs-minipass-npm-2.1.0-501ef87306-9.zip/node_modules/fs-minipass/index.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/fs-minipass-npm-2.1.0-501ef87306-9.zip/node_modules/fs-minipass/index.js ***! + \***********************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; +const MiniPass = __webpack_require__(/*! minipass */ "../../../.yarn/berry/cache/minipass-npm-3.1.6-f032df1661-9.zip/node_modules/minipass/index.js") +const EE = (__webpack_require__(/*! events */ "events").EventEmitter) +const fs = __webpack_require__(/*! fs */ "fs") -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var definitions = __webpack_require__(/*! ./definitions.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/definitions.js"); -var help = __webpack_require__(/*! ./help.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/help.js"); -var version = __webpack_require__(/*! ./version.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/version.js"); - +let writev = fs.writev +/* istanbul ignore next */ +if (!writev) { + // This entire block can be removed if support for earlier than Node.js + // 12.9.0 is not needed. + const binding = process.binding('fs') + const FSReqWrap = binding.FSReqWrap || binding.FSReqCallback + writev = (fd, iovec, pos, cb) => { + const done = (er, bw) => cb(er, bw, iovec) + const req = new FSReqWrap() + req.oncomplete = done + binding.writeBuffers(fd, iovec, pos, req) + } +} -exports.DefinitionsCommand = definitions.DefinitionsCommand; -exports.HelpCommand = help.HelpCommand; -exports.VersionCommand = version.VersionCommand; +const _autoClose = Symbol('_autoClose') +const _close = Symbol('_close') +const _ended = Symbol('_ended') +const _fd = Symbol('_fd') +const _finished = Symbol('_finished') +const _flags = Symbol('_flags') +const _flush = Symbol('_flush') +const _handleChunk = Symbol('_handleChunk') +const _makeBuf = Symbol('_makeBuf') +const _mode = Symbol('_mode') +const _needDrain = Symbol('_needDrain') +const _onerror = Symbol('_onerror') +const _onopen = Symbol('_onopen') +const _onread = Symbol('_onread') +const _onwrite = Symbol('_onwrite') +const _open = Symbol('_open') +const _path = Symbol('_path') +const _pos = Symbol('_pos') +const _queue = Symbol('_queue') +const _read = Symbol('_read') +const _readSize = Symbol('_readSize') +const _reading = Symbol('_reading') +const _remain = Symbol('_remain') +const _size = Symbol('_size') +const _write = Symbol('_write') +const _writing = Symbol('_writing') +const _defaultFlag = Symbol('_defaultFlag') +const _errored = Symbol('_errored') +class ReadStream extends MiniPass { + constructor (path, opt) { + opt = opt || {} + super(opt) -/***/ }), + this.readable = true + this.writable = false -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/version.js": -/*!**********************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/version.js ***! - \**********************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + if (typeof path !== 'string') + throw new TypeError('path must be a string') -"use strict"; + this[_errored] = false + this[_fd] = typeof opt.fd === 'number' ? opt.fd : null + this[_path] = path + this[_readSize] = opt.readSize || 16*1024*1024 + this[_reading] = false + this[_size] = typeof opt.size === 'number' ? opt.size : Infinity + this[_remain] = this[_size] + this[_autoClose] = typeof opt.autoClose === 'boolean' ? + opt.autoClose : true + + if (typeof this[_fd] === 'number') + this[_read]() + else + this[_open]() + } + get fd () { return this[_fd] } + get path () { return this[_path] } -Object.defineProperty(exports, "__esModule", ({ value: true })); + write () { + throw new TypeError('this is a readable stream') + } -var Command = __webpack_require__(/*! ../Command.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Command.js"); + end () { + throw new TypeError('this is a readable stream') + } -/** - * A command that prints the version of the binary (`cli.binaryVersion`). - * - * Paths: `-v`, `--version` - */ -class VersionCommand extends Command.Command { - async execute() { - var _a; - this.context.stdout.write(`${(_a = this.cli.binaryVersion) !== null && _a !== void 0 ? _a : ``}\n`); + [_open] () { + fs.open(this[_path], 'r', (er, fd) => this[_onopen](er, fd)) + } + + [_onopen] (er, fd) { + if (er) + this[_onerror](er) + else { + this[_fd] = fd + this.emit('open', fd) + this[_read]() } -} -VersionCommand.paths = [[`-v`], [`--version`]]; + } -exports.VersionCommand = VersionCommand; + [_makeBuf] () { + return Buffer.allocUnsafe(Math.min(this[_readSize], this[_remain])) + } + [_read] () { + if (!this[_reading]) { + this[_reading] = true + const buf = this[_makeBuf]() + /* istanbul ignore if */ + if (buf.length === 0) + return process.nextTick(() => this[_onread](null, 0, buf)) + fs.read(this[_fd], buf, 0, buf.length, null, (er, br, buf) => + this[_onread](er, br, buf)) + } + } -/***/ }), + [_onread] (er, br, buf) { + this[_reading] = false + if (er) + this[_onerror](er) + else if (this[_handleChunk](br, buf)) + this[_read]() + } -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js": -/*!***********************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js ***! - \***********************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + [_close] () { + if (this[_autoClose] && typeof this[_fd] === 'number') { + const fd = this[_fd] + this[_fd] = null + fs.close(fd, er => er ? this.emit('error', er) : this.emit('close')) + } + } -"use strict"; + [_onerror] (er) { + this[_reading] = true + this[_close]() + this.emit('error', er) + } + [_handleChunk] (br, buf) { + let ret = false + // no effect if infinite + this[_remain] -= br + if (br > 0) + ret = super.write(br < buf.length ? buf.slice(0, br) : buf) -Object.defineProperty(exports, "__esModule", ({ value: true })); + if (br === 0 || this[_remain] <= 0) { + ret = false + this[_close]() + super.end() + } -var errors = __webpack_require__(/*! ../errors.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/errors.js"); -var Command = __webpack_require__(/*! ./Command.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Command.js"); -var Cli = __webpack_require__(/*! ./Cli.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/Cli.js"); -var index = __webpack_require__(/*! ./builtins/index.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/builtins/index.js"); -var index$1 = __webpack_require__(/*! ./options/index.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/index.js"); + return ret + } + emit (ev, data) { + switch (ev) { + case 'prefinish': + case 'finish': + break + case 'drain': + if (typeof this[_fd] === 'number') + this[_read]() + break -exports.UsageError = errors.UsageError; -exports.Command = Command.Command; -exports.Cli = Cli.Cli; -exports.Builtins = index; -exports.Option = index$1; + case 'error': + if (this[_errored]) + return + this[_errored] = true + return super.emit(ev, data) + default: + return super.emit(ev, data) + } + } +} -/***/ }), +class ReadStreamSync extends ReadStream { + [_open] () { + let threw = true + try { + this[_onopen](null, fs.openSync(this[_path], 'r')) + threw = false + } finally { + if (threw) + this[_close]() + } + } -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Array.js": -/*!*******************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Array.js ***! - \*******************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + [_read] () { + let threw = true + try { + if (!this[_reading]) { + this[_reading] = true + do { + const buf = this[_makeBuf]() + /* istanbul ignore next */ + const br = buf.length === 0 ? 0 + : fs.readSync(this[_fd], buf, 0, buf.length, null) + if (!this[_handleChunk](br, buf)) + break + } while (true) + this[_reading] = false + } + threw = false + } finally { + if (threw) + this[_close]() + } + } -"use strict"; + [_close] () { + if (this[_autoClose] && typeof this[_fd] === 'number') { + const fd = this[_fd] + this[_fd] = null + fs.closeSync(fd) + this.emit('close') + } + } +} +class WriteStream extends EE { + constructor (path, opt) { + opt = opt || {} + super(opt) + this.readable = false + this.writable = true + this[_errored] = false + this[_writing] = false + this[_ended] = false + this[_needDrain] = false + this[_queue] = [] + this[_path] = path + this[_fd] = typeof opt.fd === 'number' ? opt.fd : null + this[_mode] = opt.mode === undefined ? 0o666 : opt.mode + this[_pos] = typeof opt.start === 'number' ? opt.start : null + this[_autoClose] = typeof opt.autoClose === 'boolean' ? + opt.autoClose : true -Object.defineProperty(exports, "__esModule", ({ value: true })); + // truncating makes no sense when writing into the middle + const defaultFlag = this[_pos] !== null ? 'r+' : 'w' + this[_defaultFlag] = opt.flags === undefined + this[_flags] = this[_defaultFlag] ? defaultFlag : opt.flags -var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js"); + if (this[_fd] === null) + this[_open]() + } -function Array(descriptor, initialValueBase, optsBase) { - const [initialValue, opts] = utils.rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); - const { arity = 1 } = opts; - const optNames = descriptor.split(`,`); - const nameSet = new Set(optNames); - return utils.makeCommandOption({ - definition(builder) { - builder.addOption({ - names: optNames, - arity, - hidden: opts === null || opts === void 0 ? void 0 : opts.hidden, - description: opts === null || opts === void 0 ? void 0 : opts.description, - required: opts.required, - }); - }, - transformer(builder, key, state) { - let currentValue = typeof initialValue !== `undefined` - ? [...initialValue] - : undefined; - for (const { name, value } of state.options) { - if (!nameSet.has(name)) - continue; - currentValue = currentValue !== null && currentValue !== void 0 ? currentValue : []; - currentValue.push(value); - } - return currentValue; - }, - }); -} - -exports.Array = Array; + emit (ev, data) { + if (ev === 'error') { + if (this[_errored]) + return + this[_errored] = true + } + return super.emit(ev, data) + } -/***/ }), + get fd () { return this[_fd] } + get path () { return this[_path] } -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Boolean.js": -/*!*********************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Boolean.js ***! - \*********************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + [_onerror] (er) { + this[_close]() + this[_writing] = true + this.emit('error', er) + } -"use strict"; + [_open] () { + fs.open(this[_path], this[_flags], this[_mode], + (er, fd) => this[_onopen](er, fd)) + } + [_onopen] (er, fd) { + if (this[_defaultFlag] && + this[_flags] === 'r+' && + er && er.code === 'ENOENT') { + this[_flags] = 'w' + this[_open]() + } else if (er) + this[_onerror](er) + else { + this[_fd] = fd + this.emit('open', fd) + this[_flush]() + } + } -Object.defineProperty(exports, "__esModule", ({ value: true })); + end (buf, enc) { + if (buf) + this.write(buf, enc) -var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js"); + this[_ended] = true -function Boolean(descriptor, initialValueBase, optsBase) { - const [initialValue, opts] = utils.rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); - const optNames = descriptor.split(`,`); - const nameSet = new Set(optNames); - return utils.makeCommandOption({ - definition(builder) { - builder.addOption({ - names: optNames, - allowBinding: false, - arity: 0, - hidden: opts.hidden, - description: opts.description, - required: opts.required, - }); - }, - transformer(builer, key, state) { - let currentValue = initialValue; - for (const { name, value } of state.options) { - if (!nameSet.has(name)) - continue; - currentValue = value; - } - return currentValue; - }, - }); -} + // synthetic after-write logic, where drain/finish live + if (!this[_writing] && !this[_queue].length && + typeof this[_fd] === 'number') + this[_onwrite](null, 0) + return this + } -exports.Boolean = Boolean; + write (buf, enc) { + if (typeof buf === 'string') + buf = Buffer.from(buf, enc) + if (this[_ended]) { + this.emit('error', new Error('write() after end()')) + return false + } -/***/ }), + if (this[_fd] === null || this[_writing] || this[_queue].length) { + this[_queue].push(buf) + this[_needDrain] = true + return false + } -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Counter.js": -/*!*********************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Counter.js ***! - \*********************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + this[_writing] = true + this[_write](buf) + return true + } -"use strict"; + [_write] (buf) { + fs.write(this[_fd], buf, 0, buf.length, this[_pos], (er, bw) => + this[_onwrite](er, bw)) + } + [_onwrite] (er, bw) { + if (er) + this[_onerror](er) + else { + if (this[_pos] !== null) + this[_pos] += bw + if (this[_queue].length) + this[_flush]() + else { + this[_writing] = false -Object.defineProperty(exports, "__esModule", ({ value: true })); + if (this[_ended] && !this[_finished]) { + this[_finished] = true + this[_close]() + this.emit('finish') + } else if (this[_needDrain]) { + this[_needDrain] = false + this.emit('drain') + } + } + } + } -var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js"); + [_flush] () { + if (this[_queue].length === 0) { + if (this[_ended]) + this[_onwrite](null, 0) + } else if (this[_queue].length === 1) + this[_write](this[_queue].pop()) + else { + const iovec = this[_queue] + this[_queue] = [] + writev(this[_fd], iovec, this[_pos], + (er, bw) => this[_onwrite](er, bw)) + } + } -function Counter(descriptor, initialValueBase, optsBase) { - const [initialValue, opts] = utils.rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); - const optNames = descriptor.split(`,`); - const nameSet = new Set(optNames); - return utils.makeCommandOption({ - definition(builder) { - builder.addOption({ - names: optNames, - allowBinding: false, - arity: 0, - hidden: opts.hidden, - description: opts.description, - required: opts.required, - }); - }, - transformer(builder, key, state) { - let currentValue = initialValue; - for (const { name, value } of state.options) { - if (!nameSet.has(name)) - continue; - currentValue !== null && currentValue !== void 0 ? currentValue : (currentValue = 0); - // Negated options reset the counter - if (!value) { - currentValue = 0; - } - else { - currentValue += 1; - } - } - return currentValue; - }, - }); + [_close] () { + if (this[_autoClose] && typeof this[_fd] === 'number') { + const fd = this[_fd] + this[_fd] = null + fs.close(fd, er => er ? this.emit('error', er) : this.emit('close')) + } + } } -exports.Counter = Counter; +class WriteStreamSync extends WriteStream { + [_open] () { + let fd + // only wrap in a try{} block if we know we'll retry, to avoid + // the rethrow obscuring the error's source frame in most cases. + if (this[_defaultFlag] && this[_flags] === 'r+') { + try { + fd = fs.openSync(this[_path], this[_flags], this[_mode]) + } catch (er) { + if (er.code === 'ENOENT') { + this[_flags] = 'w' + return this[_open]() + } else + throw er + } + } else + fd = fs.openSync(this[_path], this[_flags], this[_mode]) + this[_onopen](null, fd) + } -/***/ }), + [_close] () { + if (this[_autoClose] && typeof this[_fd] === 'number') { + const fd = this[_fd] + this[_fd] = null + fs.closeSync(fd) + this.emit('close') + } + } -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Proxy.js": -/*!*******************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Proxy.js ***! - \*******************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + [_write] (buf) { + // throw the original, but try to close if it fails + let threw = true + try { + this[_onwrite](null, + fs.writeSync(this[_fd], buf, 0, buf.length, this[_pos])) + threw = false + } finally { + if (threw) + try { this[_close]() } catch (_) {} + } + } +} -"use strict"; +exports.ReadStream = ReadStream +exports.ReadStreamSync = ReadStreamSync + +exports.WriteStream = WriteStream +exports.WriteStreamSync = WriteStreamSync -Object.defineProperty(exports, "__esModule", ({ value: true })); +/***/ }), -var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js"); +/***/ "../../../.yarn/berry/cache/is-windows-npm-1.0.2-898cd6f3d7-9.zip/node_modules/is-windows/index.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/is-windows-npm-1.0.2-898cd6f3d7-9.zip/node_modules/is-windows/index.js ***! + \*********************************************************************************************************/ +/***/ ((module, exports) => { -/** - * Used to annotate that the command wants to retrieve all trailing - * arguments that cannot be tied to a declared option. - * - * Be careful: this function is order-dependent! Make sure to define it - * after any positional argument you want to declare. - * - * This function is mutually exclusive with Option.Rest. +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! + * is-windows * - * @example - * yarn run foo hello --foo=bar world - * ► proxy = ["hello", "--foo=bar", "world"] + * Copyright © 2015-2018, Jon Schlinkert. + * Released under the MIT License. */ -function Proxy(opts = {}) { - return utils.makeCommandOption({ - definition(builder, key) { - var _a; - builder.addProxy({ - name: (_a = opts.name) !== null && _a !== void 0 ? _a : key, - required: opts.required, - }); - }, - transformer(builder, key, state) { - return state.positionals.map(({ value }) => value); - }, - }); -} -exports.Proxy = Proxy; +(function(factory) { + if (exports && typeof exports === 'object' && "object" !== 'undefined') { + module.exports = factory(); + } else if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? + (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} +})(function() { + 'use strict'; + return function isWindows() { + return process && (process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE)); + }; +}); /***/ }), -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Rest.js": -/*!******************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Rest.js ***! - \******************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-9.zip/node_modules/isexe/index.js": +/*!***********************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-9.zip/node_modules/isexe/index.js ***! + \***********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; +var fs = __webpack_require__(/*! fs */ "fs") +var core +if (process.platform === 'win32' || global.TESTING_WINDOWS) { + core = __webpack_require__(/*! ./windows.js */ "../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-9.zip/node_modules/isexe/windows.js") +} else { + core = __webpack_require__(/*! ./mode.js */ "../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-9.zip/node_modules/isexe/mode.js") +} +module.exports = isexe +isexe.sync = sync -Object.defineProperty(exports, "__esModule", ({ value: true })); +function isexe (path, options, cb) { + if (typeof options === 'function') { + cb = options + options = {} + } -var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js"); -var core = __webpack_require__(/*! ../../core.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/core.js"); + if (!cb) { + if (typeof Promise !== 'function') { + throw new TypeError('callback not provided') + } -/** - * Used to annotate that the command supports any number of positional - * arguments. - * - * Be careful: this function is order-dependent! Make sure to define it - * after any positional argument you want to declare. - * - * This function is mutually exclusive with Option.Proxy. - * - * @example - * yarn add hello world - * ► rest = ["hello", "world"] - */ -function Rest(opts = {}) { - return utils.makeCommandOption({ - definition(builder, key) { - var _a; - builder.addRest({ - name: (_a = opts.name) !== null && _a !== void 0 ? _a : key, - required: opts.required, - }); - }, - transformer(builder, key, state) { - // The builder's arity.extra will always be NoLimits, - // because it is set when we call registerDefinition - const isRestPositional = (index) => { - const positional = state.positionals[index]; - // A NoLimits extra (i.e. an optional rest argument) - if (positional.extra === core.NoLimits) - return true; - // A leading positional (i.e. a required rest argument) - if (positional.extra === false && index < builder.arity.leading.length) - return true; - return false; - }; - let count = 0; - while (count < state.positionals.length && isRestPositional(count)) - count += 1; - return state.positionals.splice(0, count).map(({ value }) => value); - }, - }); + return new Promise(function (resolve, reject) { + isexe(path, options || {}, function (er, is) { + if (er) { + reject(er) + } else { + resolve(is) + } + }) + }) + } + + core(path, options || {}, function (er, is) { + // ignore EACCES because that just means we aren't allowed to run it + if (er) { + if (er.code === 'EACCES' || options && options.ignoreErrors) { + er = null + is = false + } + } + cb(er, is) + }) } -exports.Rest = Rest; +function sync (path, options) { + // my kingdom for a filtered catch + try { + return core.sync(path, options || {}) + } catch (er) { + if (options && options.ignoreErrors || er.code === 'EACCES') { + return false + } else { + throw er + } + } +} /***/ }), -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/String.js": -/*!********************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/String.js ***! - \********************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - +/***/ "../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-9.zip/node_modules/isexe/mode.js": +/*!**********************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-9.zip/node_modules/isexe/mode.js ***! + \**********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", ({ value: true })); +module.exports = isexe +isexe.sync = sync -var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js"); -var core = __webpack_require__(/*! ../../core.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/core.js"); +var fs = __webpack_require__(/*! fs */ "fs") -function StringOption(descriptor, initialValueBase, optsBase) { - const [initialValue, opts] = utils.rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); - const { arity = 1 } = opts; - const optNames = descriptor.split(`,`); - const nameSet = new Set(optNames); - return utils.makeCommandOption({ - definition(builder) { - builder.addOption({ - names: optNames, - arity: opts.tolerateBoolean ? 0 : arity, - hidden: opts.hidden, - description: opts.description, - required: opts.required, - }); - }, - transformer(builder, key, state) { - let usedName; - let currentValue = initialValue; - for (const { name, value } of state.options) { - if (!nameSet.has(name)) - continue; - usedName = name; - currentValue = value; - } - if (typeof currentValue === `string`) { - return utils.applyValidator(usedName !== null && usedName !== void 0 ? usedName : key, currentValue, opts.validator); - } - else { - return currentValue; - } - }, - }); +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, options)) + }) } -function StringPositional(opts = {}) { - const { required = true } = opts; - return utils.makeCommandOption({ - definition(builder, key) { - var _a; - builder.addPositional({ - name: (_a = opts.name) !== null && _a !== void 0 ? _a : key, - required: opts.required, - }); - }, - transformer(builder, key, state) { - var _a; - for (let i = 0; i < state.positionals.length; ++i) { - // We skip NoLimits extras. We only care about - // required and optional finite positionals. - if (state.positionals[i].extra === core.NoLimits) - continue; - // We skip optional positionals when we only - // care about required positionals. - if (required && state.positionals[i].extra === true) - continue; - // We skip required positionals when we only - // care about optional positionals. - if (!required && state.positionals[i].extra === false) - continue; - // We remove the positional from the list - const [positional] = state.positionals.splice(i, 1); - return utils.applyValidator((_a = opts.name) !== null && _a !== void 0 ? _a : key, positional.value, opts.validator); - } - return undefined; - }, - }); + +function sync (path, options) { + return checkStat(fs.statSync(path), options) } -// This function is badly typed, but it doesn't matter because the overloads provide the true public typings -function String(descriptor, ...args) { - if (typeof descriptor === `string`) { - return StringOption(descriptor, ...args); - } - else { - return StringPositional(descriptor); - } + +function checkStat (stat, options) { + return stat.isFile() && checkMode(stat, options) } -exports.String = String; +function checkMode (stat, options) { + var mod = stat.mode + var uid = stat.uid + var gid = stat.gid + var myUid = options.uid !== undefined ? + options.uid : process.getuid && process.getuid() + var myGid = options.gid !== undefined ? + options.gid : process.getgid && process.getgid() -/***/ }), + var u = parseInt('100', 8) + var g = parseInt('010', 8) + var o = parseInt('001', 8) + var ug = u | g -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/index.js": -/*!*******************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/index.js ***! - \*******************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + var ret = (mod & o) || + (mod & g) && gid === myGid || + (mod & u) && uid === myUid || + (mod & ug) && myUid === 0 -"use strict"; + return ret +} -Object.defineProperty(exports, "__esModule", ({ value: true })); +/***/ }), -var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js"); -var _Array = __webpack_require__(/*! ./Array.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Array.js"); -var _Boolean = __webpack_require__(/*! ./Boolean.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Boolean.js"); -var Counter = __webpack_require__(/*! ./Counter.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Counter.js"); -var _Proxy = __webpack_require__(/*! ./Proxy.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Proxy.js"); -var Rest = __webpack_require__(/*! ./Rest.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/Rest.js"); -var _String = __webpack_require__(/*! ./String.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/String.js"); +/***/ "../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-9.zip/node_modules/isexe/windows.js": +/*!*************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-9.zip/node_modules/isexe/windows.js ***! + \*************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +module.exports = isexe +isexe.sync = sync +var fs = __webpack_require__(/*! fs */ "fs") -exports.applyValidator = utils.applyValidator; -exports.cleanValidationError = utils.cleanValidationError; -exports.formatError = utils.formatError; -exports.isOptionSymbol = utils.isOptionSymbol; -exports.makeCommandOption = utils.makeCommandOption; -exports.rerouteArguments = utils.rerouteArguments; -exports.Array = _Array.Array; -exports.Boolean = _Boolean.Boolean; -exports.Counter = Counter.Counter; -exports.Proxy = _Proxy.Proxy; -exports.Rest = Rest.Rest; -exports.String = _String.String; +function checkPathExt (path, options) { + var pathext = options.pathExt !== undefined ? + options.pathExt : process.env.PATHEXT + + if (!pathext) { + return true + } + + pathext = pathext.split(';') + if (pathext.indexOf('') !== -1) { + return true + } + for (var i = 0; i < pathext.length; i++) { + var p = pathext[i].toLowerCase() + if (p && path.substr(-p.length).toLowerCase() === p) { + return true + } + } + return false +} + +function checkStat (stat, path, options) { + if (!stat.isSymbolicLink() && !stat.isFile()) { + return false + } + return checkPathExt(path, options) +} + +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, path, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), path, options) +} /***/ }), -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js": -/*!*******************************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/options/utils.js ***! - \*******************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/lru-cache-npm-6.0.0-b4c8668fe1-9.zip/node_modules/lru-cache/index.js": +/*!*******************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/lru-cache-npm-6.0.0-b4c8668fe1-9.zip/node_modules/lru-cache/index.js ***! + \*******************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); +// A linked list to keep track of recently-used-ness +const Yallist = __webpack_require__(/*! yallist */ "../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-9.zip/node_modules/yallist/yallist.js") -var errors = __webpack_require__(/*! ../../errors.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/errors.js"); +const MAX = Symbol('max') +const LENGTH = Symbol('length') +const LENGTH_CALCULATOR = Symbol('lengthCalculator') +const ALLOW_STALE = Symbol('allowStale') +const MAX_AGE = Symbol('maxAge') +const DISPOSE = Symbol('dispose') +const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet') +const LRU_LIST = Symbol('lruList') +const CACHE = Symbol('cache') +const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet') -const isOptionSymbol = Symbol(`clipanion/isOption`); -function makeCommandOption(spec) { - // We lie! But it's for the good cause: the cli engine will turn the specs into proper values after instantiation. - return { ...spec, [isOptionSymbol]: true }; -} -function rerouteArguments(a, b) { - if (typeof a === `undefined`) - return [a, b]; - if (typeof a === `object` && a !== null && !Array.isArray(a)) { - return [undefined, a]; +const naiveLength = () => 1 + +// lruList is a yallist where the head is the youngest +// item, and the tail is the oldest. the list contains the Hit +// objects as the entries. +// Each Hit object has a reference to its Yallist.Node. This +// never changes. +// +// cache is a Map (or PseudoMap) that matches the keys to +// the Yallist.Node object. +class LRUCache { + constructor (options) { + if (typeof options === 'number') + options = { max: options } + + if (!options) + options = {} + + if (options.max && (typeof options.max !== 'number' || options.max < 0)) + throw new TypeError('max must be a non-negative number') + // Kind of weird to have a default max of Infinity, but oh well. + const max = this[MAX] = options.max || Infinity + + const lc = options.length || naiveLength + this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc + this[ALLOW_STALE] = options.stale || false + if (options.maxAge && typeof options.maxAge !== 'number') + throw new TypeError('maxAge must be a number') + this[MAX_AGE] = options.maxAge || 0 + this[DISPOSE] = options.dispose + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false + this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false + this.reset() + } + + // resize the cache when the max changes. + set max (mL) { + if (typeof mL !== 'number' || mL < 0) + throw new TypeError('max must be a non-negative number') + + this[MAX] = mL || Infinity + trim(this) + } + get max () { + return this[MAX] + } + + set allowStale (allowStale) { + this[ALLOW_STALE] = !!allowStale + } + get allowStale () { + return this[ALLOW_STALE] + } + + set maxAge (mA) { + if (typeof mA !== 'number') + throw new TypeError('maxAge must be a non-negative number') + + this[MAX_AGE] = mA + trim(this) + } + get maxAge () { + return this[MAX_AGE] + } + + // resize the cache when the lengthCalculator changes. + set lengthCalculator (lC) { + if (typeof lC !== 'function') + lC = naiveLength + + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC + this[LENGTH] = 0 + this[LRU_LIST].forEach(hit => { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) + this[LENGTH] += hit.length + }) } - else { - return [a, b]; + trim(this) + } + get lengthCalculator () { return this[LENGTH_CALCULATOR] } + + get length () { return this[LENGTH] } + get itemCount () { return this[LRU_LIST].length } + + rforEach (fn, thisp) { + thisp = thisp || this + for (let walker = this[LRU_LIST].tail; walker !== null;) { + const prev = walker.prev + forEachStep(this, fn, walker, thisp) + walker = prev } -} -function cleanValidationError(message, lowerCase = false) { - let cleaned = message.replace(/^\.: /, ``); - if (lowerCase) - cleaned = cleaned[0].toLowerCase() + cleaned.slice(1); - return cleaned; -} -function formatError(message, errors$1) { - if (errors$1.length === 1) { - return new errors.UsageError(`${message}: ${cleanValidationError(errors$1[0], true)}`); + } + + forEach (fn, thisp) { + thisp = thisp || this + for (let walker = this[LRU_LIST].head; walker !== null;) { + const next = walker.next + forEachStep(this, fn, walker, thisp) + walker = next } - else { - return new errors.UsageError(`${message}:\n${errors$1.map(error => `\n- ${cleanValidationError(error)}`).join(``)}`); + } + + keys () { + return this[LRU_LIST].toArray().map(k => k.key) + } + + values () { + return this[LRU_LIST].toArray().map(k => k.value) + } + + reset () { + if (this[DISPOSE] && + this[LRU_LIST] && + this[LRU_LIST].length) { + this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)) } -} -function applyValidator(name, value, validator) { - if (typeof validator === `undefined`) - return value; - const errors = []; - const coercions = []; - const coercion = (v) => { - const orig = value; - value = v; - return coercion.bind(null, orig); - }; - const check = validator(value, { errors, coercions, coercion }); - if (!check) - throw formatError(`Invalid value for ${name}`, errors); - for (const [, op] of coercions) - op(); - return value; -} -exports.applyValidator = applyValidator; -exports.cleanValidationError = cleanValidationError; -exports.formatError = formatError; -exports.isOptionSymbol = isOptionSymbol; -exports.makeCommandOption = makeCommandOption; -exports.rerouteArguments = rerouteArguments; + this[CACHE] = new Map() // hash of items by key + this[LRU_LIST] = new Yallist() // list of items in order of use recency + this[LENGTH] = 0 // length of items in the list + } + dump () { + return this[LRU_LIST].map(hit => + isStale(this, hit) ? false : { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }).toArray().filter(h => h) + } -/***/ }), + dumpLru () { + return this[LRU_LIST] + } -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/constants.js": -/*!******************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/constants.js ***! - \******************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { + set (key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE] -"use strict"; + if (maxAge && typeof maxAge !== 'number') + throw new TypeError('maxAge must be a number') + const now = maxAge ? Date.now() : 0 + const len = this[LENGTH_CALCULATOR](value, key) -Object.defineProperty(exports, "__esModule", ({ value: true })); + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)) + return false + } -const NODE_INITIAL = 0; -const NODE_SUCCESS = 1; -const NODE_ERRORED = 2; -const START_OF_INPUT = `\u0001`; -const END_OF_INPUT = `\u0000`; -const HELP_COMMAND_INDEX = -1; -const HELP_REGEX = /^(-h|--help)(?:=([0-9]+))?$/; -const OPTION_REGEX = /^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/; -const BATCH_REGEX = /^-[a-zA-Z]{2,}$/; -const BINDING_REGEX = /^([^=]+)=([\s\S]*)$/; -const DEBUG = process.env.DEBUG_CLI === `1`; + const node = this[CACHE].get(key) + const item = node.value -exports.BATCH_REGEX = BATCH_REGEX; -exports.BINDING_REGEX = BINDING_REGEX; -exports.DEBUG = DEBUG; -exports.END_OF_INPUT = END_OF_INPUT; -exports.HELP_COMMAND_INDEX = HELP_COMMAND_INDEX; -exports.HELP_REGEX = HELP_REGEX; -exports.NODE_ERRORED = NODE_ERRORED; -exports.NODE_INITIAL = NODE_INITIAL; -exports.NODE_SUCCESS = NODE_SUCCESS; -exports.OPTION_REGEX = OPTION_REGEX; -exports.START_OF_INPUT = START_OF_INPUT; + // dispose of the old one before overwriting + // split out into 2 ifs for better coverage tracking + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) + this[DISPOSE](key, item.value) + } + item.now = now + item.maxAge = maxAge + item.value = value + this[LENGTH] += len - item.length + item.length = len + this.get(key) + trim(this) + return true + } -/***/ }), + const hit = new Entry(key, value, len, now, maxAge) -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/core.js": -/*!*************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/core.js ***! - \*************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + // oversized objects fall out of cache automatically. + if (hit.length > this[MAX]) { + if (this[DISPOSE]) + this[DISPOSE](key, value) -"use strict"; + return false + } + + this[LENGTH] += hit.length + this[LRU_LIST].unshift(hit) + this[CACHE].set(key, this[LRU_LIST].head) + trim(this) + return true + } + has (key) { + if (!this[CACHE].has(key)) return false + const hit = this[CACHE].get(key).value + return !isStale(this, hit) + } -Object.defineProperty(exports, "__esModule", ({ value: true })); + get (key) { + return get(this, key, true) + } -var constants = __webpack_require__(/*! ./constants.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/constants.js"); -var errors = __webpack_require__(/*! ./errors.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/errors.js"); + peek (key) { + return get(this, key, false) + } -// ------------------------------------------------------------------------ -function debug(str) { - if (constants.DEBUG) { - console.log(str); + pop () { + const node = this[LRU_LIST].tail + if (!node) + return null + + del(this, node) + return node.value + } + + del (key) { + del(this, this[CACHE].get(key)) + } + + load (arr) { + // reset the cache + this.reset() + + const now = Date.now() + // A previous serialized cache has the most recent items first + for (let l = arr.length - 1; l >= 0; l--) { + const hit = arr[l] + const expiresAt = hit.e || 0 + if (expiresAt === 0) + // the item was created without expiration in a non aged cache + this.set(hit.k, hit.v) + else { + const maxAge = expiresAt - now + // dont add already expired items + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge) + } + } } + } + + prune () { + this[CACHE].forEach((value, key) => get(this, key, false)) + } } -const basicHelpState = { - candidateUsage: null, - requiredOptions: [], - errorMessage: null, - ignoreOptions: false, - path: [], - positionals: [], - options: [], - remainder: null, - selectedIndex: constants.HELP_COMMAND_INDEX, -}; -function makeStateMachine() { - return { - nodes: [makeNode(), makeNode(), makeNode()], - }; + +const get = (self, key, doUse) => { + const node = self[CACHE].get(key) + if (node) { + const hit = node.value + if (isStale(self, hit)) { + del(self, node) + if (!self[ALLOW_STALE]) + return undefined + } else { + if (doUse) { + if (self[UPDATE_AGE_ON_GET]) + node.value.now = Date.now() + self[LRU_LIST].unshiftNode(node) + } + } + return hit.value + } } -function makeAnyOfMachine(inputs) { - const output = makeStateMachine(); - const heads = []; - let offset = output.nodes.length; - for (const input of inputs) { - heads.push(offset); - for (let t = 0; t < input.nodes.length; ++t) - if (!isTerminalNode(t)) - output.nodes.push(cloneNode(input.nodes[t], offset)); - offset += input.nodes.length - 2; + +const isStale = (self, hit) => { + if (!hit || (!hit.maxAge && !self[MAX_AGE])) + return false + + const diff = Date.now() - hit.now + return hit.maxAge ? diff > hit.maxAge + : self[MAX_AGE] && (diff > self[MAX_AGE]) +} + +const trim = self => { + if (self[LENGTH] > self[MAX]) { + for (let walker = self[LRU_LIST].tail; + self[LENGTH] > self[MAX] && walker !== null;) { + // We know that we're about to delete this one, and also + // what the next least recently used key will be, so just + // go ahead and set it now. + const prev = walker.prev + del(self, walker) + walker = prev } - for (const head of heads) - registerShortcut(output, constants.NODE_INITIAL, head); - return output; + } } -function injectNode(machine, node) { - machine.nodes.push(node); - return machine.nodes.length - 1; + +const del = (self, node) => { + if (node) { + const hit = node.value + if (self[DISPOSE]) + self[DISPOSE](hit.key, hit.value) + + self[LENGTH] -= hit.length + self[CACHE].delete(hit.key) + self[LRU_LIST].removeNode(node) + } } -function simplifyMachine(input) { - const visited = new Set(); - const process = (node) => { - if (visited.has(node)) - return; - visited.add(node); - const nodeDef = input.nodes[node]; - for (const transitions of Object.values(nodeDef.statics)) - for (const { to } of transitions) - process(to); - for (const [, { to }] of nodeDef.dynamics) - process(to); - for (const { to } of nodeDef.shortcuts) - process(to); - const shortcuts = new Set(nodeDef.shortcuts.map(({ to }) => to)); - while (nodeDef.shortcuts.length > 0) { - const { to } = nodeDef.shortcuts.shift(); - const toDef = input.nodes[to]; - for (const [segment, transitions] of Object.entries(toDef.statics)) { - const store = !Object.prototype.hasOwnProperty.call(nodeDef.statics, segment) - ? nodeDef.statics[segment] = [] - : nodeDef.statics[segment]; - for (const transition of transitions) { - if (!store.some(({ to }) => transition.to === to)) { - store.push(transition); - } - } - } - for (const [test, transition] of toDef.dynamics) - if (!nodeDef.dynamics.some(([otherTest, { to }]) => test === otherTest && transition.to === to)) - nodeDef.dynamics.push([test, transition]); - for (const transition of toDef.shortcuts) { - if (!shortcuts.has(transition.to)) { - nodeDef.shortcuts.push(transition); - shortcuts.add(transition.to); - } - } - } - }; - process(constants.NODE_INITIAL); + +class Entry { + constructor (key, value, length, now, maxAge) { + this.key = key + this.value = value + this.length = length + this.now = now + this.maxAge = maxAge || 0 + } } -function debugMachine(machine, { prefix = `` } = {}) { - // Don't iterate unless it's needed - if (constants.DEBUG) { - debug(`${prefix}Nodes are:`); - for (let t = 0; t < machine.nodes.length; ++t) { - debug(`${prefix} ${t}: ${JSON.stringify(machine.nodes[t])}`); - } - } + +const forEachStep = (self, fn, node, thisp) => { + let hit = node.value + if (isStale(self, hit)) { + del(self, node) + if (!self[ALLOW_STALE]) + hit = undefined + } + if (hit) + fn.call(thisp, hit.value, hit.key, self) } -function runMachineInternal(machine, input, partial = false) { - debug(`Running a vm on ${JSON.stringify(input)}`); - let branches = [{ node: constants.NODE_INITIAL, state: { - candidateUsage: null, - requiredOptions: [], - errorMessage: null, - ignoreOptions: false, - options: [], - path: [], - positionals: [], - remainder: null, - selectedIndex: null, - } }]; - debugMachine(machine, { prefix: ` ` }); - const tokens = [constants.START_OF_INPUT, ...input]; - for (let t = 0; t < tokens.length; ++t) { - const segment = tokens[t]; - debug(` Processing ${JSON.stringify(segment)}`); - const nextBranches = []; - for (const { node, state } of branches) { - debug(` Current node is ${node}`); - const nodeDef = machine.nodes[node]; - if (node === constants.NODE_ERRORED) { - nextBranches.push({ node, state }); - continue; - } - console.assert(nodeDef.shortcuts.length === 0, `Shortcuts should have been eliminated by now`); - const hasExactMatch = Object.prototype.hasOwnProperty.call(nodeDef.statics, segment); - if (!partial || t < tokens.length - 1 || hasExactMatch) { - if (hasExactMatch) { - const transitions = nodeDef.statics[segment]; - for (const { to, reducer } of transitions) { - nextBranches.push({ node: to, state: typeof reducer !== `undefined` ? execute(reducers, reducer, state, segment) : state }); - debug(` Static transition to ${to} found`); - } - } - else { - debug(` No static transition found`); - } - } - else { - let hasMatches = false; - for (const candidate of Object.keys(nodeDef.statics)) { - if (!candidate.startsWith(segment)) - continue; - if (segment === candidate) { - for (const { to, reducer } of nodeDef.statics[candidate]) { - nextBranches.push({ node: to, state: typeof reducer !== `undefined` ? execute(reducers, reducer, state, segment) : state }); - debug(` Static transition to ${to} found`); - } - } - else { - for (const { to } of nodeDef.statics[candidate]) { - nextBranches.push({ node: to, state: { ...state, remainder: candidate.slice(segment.length) } }); - debug(` Static transition to ${to} found (partial match)`); - } - } - hasMatches = true; - } - if (!hasMatches) { - debug(` No partial static transition found`); - } - } - if (segment !== constants.END_OF_INPUT) { - for (const [test, { to, reducer }] of nodeDef.dynamics) { - if (execute(tests, test, state, segment)) { - nextBranches.push({ node: to, state: typeof reducer !== `undefined` ? execute(reducers, reducer, state, segment) : state }); - debug(` Dynamic transition to ${to} found (via ${test})`); - } - } - } - } - if (nextBranches.length === 0 && segment === constants.END_OF_INPUT && input.length === 1) { - return [{ - node: constants.NODE_INITIAL, - state: basicHelpState, - }]; - } - if (nextBranches.length === 0) { - throw new errors.UnknownSyntaxError(input, branches.filter(({ node }) => { - return node !== constants.NODE_ERRORED; - }).map(({ state }) => { - return { usage: state.candidateUsage, reason: null }; - })); - } - if (nextBranches.every(({ node }) => node === constants.NODE_ERRORED)) { - throw new errors.UnknownSyntaxError(input, nextBranches.map(({ state }) => { - return { usage: state.candidateUsage, reason: state.errorMessage }; - })); - } - branches = trimSmallerBranches(nextBranches); + +module.exports = LRUCache + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/minipass-npm-3.1.6-f032df1661-9.zip/node_modules/minipass/index.js": +/*!*****************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/minipass-npm-3.1.6-f032df1661-9.zip/node_modules/minipass/index.js ***! + \*****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + +const proc = typeof process === 'object' && process ? process : { + stdout: null, + stderr: null, +} +const EE = __webpack_require__(/*! events */ "events") +const Stream = __webpack_require__(/*! stream */ "stream") +const Yallist = __webpack_require__(/*! yallist */ "../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-9.zip/node_modules/yallist/yallist.js") +const SD = (__webpack_require__(/*! string_decoder */ "string_decoder").StringDecoder) + +const EOF = Symbol('EOF') +const MAYBE_EMIT_END = Symbol('maybeEmitEnd') +const EMITTED_END = Symbol('emittedEnd') +const EMITTING_END = Symbol('emittingEnd') +const EMITTED_ERROR = Symbol('emittedError') +const CLOSED = Symbol('closed') +const READ = Symbol('read') +const FLUSH = Symbol('flush') +const FLUSHCHUNK = Symbol('flushChunk') +const ENCODING = Symbol('encoding') +const DECODER = Symbol('decoder') +const FLOWING = Symbol('flowing') +const PAUSED = Symbol('paused') +const RESUME = Symbol('resume') +const BUFFERLENGTH = Symbol('bufferLength') +const BUFFERPUSH = Symbol('bufferPush') +const BUFFERSHIFT = Symbol('bufferShift') +const OBJECTMODE = Symbol('objectMode') +const DESTROYED = Symbol('destroyed') + +// TODO remove when Node v8 support drops +const doIter = global._MP_NO_ITERATOR_SYMBOLS_ !== '1' +const ASYNCITERATOR = doIter && Symbol.asyncIterator + || Symbol('asyncIterator not implemented') +const ITERATOR = doIter && Symbol.iterator + || Symbol('iterator not implemented') + +// events that mean 'the stream is over' +// these are treated specially, and re-emitted +// if they are listened for after emitting. +const isEndish = ev => + ev === 'end' || + ev === 'finish' || + ev === 'prefinish' + +const isArrayBuffer = b => b instanceof ArrayBuffer || + typeof b === 'object' && + b.constructor && + b.constructor.name === 'ArrayBuffer' && + b.byteLength >= 0 + +const isArrayBufferView = b => !Buffer.isBuffer(b) && ArrayBuffer.isView(b) + +module.exports = class Minipass extends Stream { + constructor (options) { + super() + this[FLOWING] = false + // whether we're explicitly paused + this[PAUSED] = false + this.pipes = new Yallist() + this.buffer = new Yallist() + this[OBJECTMODE] = options && options.objectMode || false + if (this[OBJECTMODE]) + this[ENCODING] = null + else + this[ENCODING] = options && options.encoding || null + if (this[ENCODING] === 'buffer') + this[ENCODING] = null + this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null + this[EOF] = false + this[EMITTED_END] = false + this[EMITTING_END] = false + this[CLOSED] = false + this[EMITTED_ERROR] = null + this.writable = true + this.readable = true + this[BUFFERLENGTH] = 0 + this[DESTROYED] = false + } + + get bufferLength () { return this[BUFFERLENGTH] } + + get encoding () { return this[ENCODING] } + set encoding (enc) { + if (this[OBJECTMODE]) + throw new Error('cannot set encoding in objectMode') + + if (this[ENCODING] && enc !== this[ENCODING] && + (this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH])) + throw new Error('cannot change encoding') + + if (this[ENCODING] !== enc) { + this[DECODER] = enc ? new SD(enc) : null + if (this.buffer.length) + this.buffer = this.buffer.map(chunk => this[DECODER].write(chunk)) } - if (branches.length > 0) { - debug(` Results:`); - for (const branch of branches) { - debug(` - ${branch.node} -> ${JSON.stringify(branch.state)}`); - } + + this[ENCODING] = enc + } + + setEncoding (enc) { + this.encoding = enc + } + + get objectMode () { return this[OBJECTMODE] } + set objectMode (om) { this[OBJECTMODE] = this[OBJECTMODE] || !!om } + + write (chunk, encoding, cb) { + if (this[EOF]) + throw new Error('write after end') + + if (this[DESTROYED]) { + this.emit('error', Object.assign( + new Error('Cannot call write after a stream was destroyed'), + { code: 'ERR_STREAM_DESTROYED' } + )) + return true } - else { - debug(` No results`); + + if (typeof encoding === 'function') + cb = encoding, encoding = 'utf8' + + if (!encoding) + encoding = 'utf8' + + // convert array buffers and typed array views into buffers + // at some point in the future, we may want to do the opposite! + // leave strings and buffers as-is + // anything else switches us into object mode + if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) { + if (isArrayBufferView(chunk)) + chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength) + else if (isArrayBuffer(chunk)) + chunk = Buffer.from(chunk) + else if (typeof chunk !== 'string') + // use the setter so we throw if we have encoding set + this.objectMode = true } - return branches; -} -function checkIfNodeIsFinished(node, state) { - if (state.selectedIndex !== null) - return true; - if (Object.prototype.hasOwnProperty.call(node.statics, constants.END_OF_INPUT)) - for (const { to } of node.statics[constants.END_OF_INPUT]) - if (to === constants.NODE_SUCCESS) - return true; - return false; -} -function suggestMachine(machine, input, partial) { - // If we're accepting partial matches, then exact matches need to be - // prefixed with an extra space. - const prefix = partial && input.length > 0 ? [``] : []; - const branches = runMachineInternal(machine, input, partial); - const suggestions = []; - const suggestionsJson = new Set(); - const traverseSuggestion = (suggestion, node, skipFirst = true) => { - let nextNodes = [node]; - while (nextNodes.length > 0) { - const currentNodes = nextNodes; - nextNodes = []; - for (const node of currentNodes) { - const nodeDef = machine.nodes[node]; - const keys = Object.keys(nodeDef.statics); - // The fact that `key` is unused is likely a bug, but no one has investigated it yet. - // TODO: Investigate it. - // eslint-disable-next-line @typescript-eslint/no-unused-vars - for (const key of Object.keys(nodeDef.statics)) { - const segment = keys[0]; - for (const { to, reducer } of nodeDef.statics[segment]) { - if (reducer !== `pushPath`) - continue; - if (!skipFirst) - suggestion.push(segment); - nextNodes.push(to); - } - } - } - skipFirst = false; - } - const json = JSON.stringify(suggestion); - if (suggestionsJson.has(json)) - return; - suggestions.push(suggestion); - suggestionsJson.add(json); - }; - for (const { node, state } of branches) { - if (state.remainder !== null) { - traverseSuggestion([state.remainder], node); - continue; - } - const nodeDef = machine.nodes[node]; - const isFinished = checkIfNodeIsFinished(nodeDef, state); - for (const [candidate, transitions] of Object.entries(nodeDef.statics)) - if ((isFinished && candidate !== constants.END_OF_INPUT) || (!candidate.startsWith(`-`) && transitions.some(({ reducer }) => reducer === `pushPath`))) - traverseSuggestion([...prefix, candidate], node); - if (!isFinished) - continue; - for (const [test, { to }] of nodeDef.dynamics) { - if (to === constants.NODE_ERRORED) - continue; - const tokens = suggest(test, state); - if (tokens === null) - continue; - for (const token of tokens) { - traverseSuggestion([...prefix, token], node); - } - } + + // this ensures at this point that the chunk is a buffer or string + // don't buffer it up or send it to the decoder + if (!this.objectMode && !chunk.length) { + if (this[BUFFERLENGTH] !== 0) + this.emit('readable') + if (cb) + cb() + return this.flowing } - return [...suggestions].sort(); -} -function runMachine(machine, input) { - const branches = runMachineInternal(machine, [...input, constants.END_OF_INPUT]); - return selectBestState(input, branches.map(({ state }) => { - return state; - })); -} -function trimSmallerBranches(branches) { - let maxPathSize = 0; - for (const { state } of branches) - if (state.path.length > maxPathSize) - maxPathSize = state.path.length; - return branches.filter(({ state }) => { - return state.path.length === maxPathSize; - }); -} -function selectBestState(input, states) { - const terminalStates = states.filter(state => { - return state.selectedIndex !== null; - }); - if (terminalStates.length === 0) - throw new Error(); - const requiredOptionsSetStates = terminalStates.filter(state => state.requiredOptions.every(names => names.some(name => state.options.find(opt => opt.name === name)))); - if (requiredOptionsSetStates.length === 0) { - throw new errors.UnknownSyntaxError(input, terminalStates.map(state => ({ - usage: state.candidateUsage, - reason: null, - }))); + + // fast-path writing strings of same encoding to a stream with + // an empty buffer, skipping the buffer/decoder dance + if (typeof chunk === 'string' && !this[OBJECTMODE] && + // unless it is a string already ready for us to use + !(encoding === this[ENCODING] && !this[DECODER].lastNeed)) { + chunk = Buffer.from(chunk, encoding) } - let maxPathSize = 0; - for (const state of requiredOptionsSetStates) - if (state.path.length > maxPathSize) - maxPathSize = state.path.length; - const bestPathBranches = requiredOptionsSetStates.filter(state => { - return state.path.length === maxPathSize; - }); - const getPositionalCount = (state) => state.positionals.filter(({ extra }) => { - return !extra; - }).length + state.options.length; - const statesWithPositionalCount = bestPathBranches.map(state => { - return { state, positionalCount: getPositionalCount(state) }; - }); - let maxPositionalCount = 0; - for (const { positionalCount } of statesWithPositionalCount) - if (positionalCount > maxPositionalCount) - maxPositionalCount = positionalCount; - const bestPositionalStates = statesWithPositionalCount.filter(({ positionalCount }) => { - return positionalCount === maxPositionalCount; - }).map(({ state }) => { - return state; - }); - const fixedStates = aggregateHelpStates(bestPositionalStates); - if (fixedStates.length > 1) - throw new errors.AmbiguousSyntaxError(input, fixedStates.map(state => state.candidateUsage)); - return fixedStates[0]; -} -function aggregateHelpStates(states) { - const notHelps = []; - const helps = []; - for (const state of states) { - if (state.selectedIndex === constants.HELP_COMMAND_INDEX) { - helps.push(state); - } - else { - notHelps.push(state); - } + + if (Buffer.isBuffer(chunk) && this[ENCODING]) + chunk = this[DECODER].write(chunk) + + if (this.flowing) { + // if we somehow have something in the buffer, but we think we're + // flowing, then we need to flush all that out first, or we get + // chunks coming in out of order. Can't emit 'drain' here though, + // because we're mid-write, so that'd be bad. + if (this[BUFFERLENGTH] !== 0) + this[FLUSH](true) + + // if we are still flowing after flushing the buffer we can emit the + // chunk otherwise we have to buffer it. + this.flowing + ? this.emit('data', chunk) + : this[BUFFERPUSH](chunk) + } else + this[BUFFERPUSH](chunk) + + if (this[BUFFERLENGTH] !== 0) + this.emit('readable') + + if (cb) + cb() + + return this.flowing + } + + read (n) { + if (this[DESTROYED]) + return null + + try { + if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) + return null + + if (this[OBJECTMODE]) + n = null + + if (this.buffer.length > 1 && !this[OBJECTMODE]) { + if (this.encoding) + this.buffer = new Yallist([ + Array.from(this.buffer).join('') + ]) + else + this.buffer = new Yallist([ + Buffer.concat(Array.from(this.buffer), this[BUFFERLENGTH]) + ]) + } + + return this[READ](n || null, this.buffer.head.value) + } finally { + this[MAYBE_EMIT_END]() } - if (helps.length > 0) { - notHelps.push({ - ...basicHelpState, - path: findCommonPrefix(...helps.map(state => state.path)), - options: helps.reduce((options, state) => options.concat(state.options), []), - }); + } + + [READ] (n, chunk) { + if (n === chunk.length || n === null) + this[BUFFERSHIFT]() + else { + this.buffer.head.value = chunk.slice(n) + chunk = chunk.slice(0, n) + this[BUFFERLENGTH] -= n } - return notHelps; -} -function findCommonPrefix(firstPath, secondPath, ...rest) { - if (secondPath === undefined) - return Array.from(firstPath); - return findCommonPrefix(firstPath.filter((segment, i) => segment === secondPath[i]), ...rest); -} -function makeNode() { - return { - dynamics: [], - shortcuts: [], - statics: {}, - }; -} -function isTerminalNode(node) { - return node === constants.NODE_SUCCESS || node === constants.NODE_ERRORED; -} -function cloneTransition(input, offset = 0) { - return { - to: !isTerminalNode(input.to) ? input.to > 2 ? input.to + offset - 2 : input.to + offset : input.to, - reducer: input.reducer, - }; -} -function cloneNode(input, offset = 0) { - const output = makeNode(); - for (const [test, transition] of input.dynamics) - output.dynamics.push([test, cloneTransition(transition, offset)]); - for (const transition of input.shortcuts) - output.shortcuts.push(cloneTransition(transition, offset)); - for (const [segment, transitions] of Object.entries(input.statics)) - output.statics[segment] = transitions.map(transition => cloneTransition(transition, offset)); - return output; -} -function registerDynamic(machine, from, test, to, reducer) { - machine.nodes[from].dynamics.push([ - test, - { to, reducer: reducer }, - ]); -} -function registerShortcut(machine, from, to, reducer) { - machine.nodes[from].shortcuts.push({ to, reducer: reducer }); -} -function registerStatic(machine, from, test, to, reducer) { - const store = !Object.prototype.hasOwnProperty.call(machine.nodes[from].statics, test) - ? machine.nodes[from].statics[test] = [] - : machine.nodes[from].statics[test]; - store.push({ to, reducer: reducer }); -} -function execute(store, callback, state, segment) { - // TypeScript's control flow can't properly narrow - // generic conditionals for some mysterious reason - if (Array.isArray(callback)) { - const [name, ...args] = callback; - return store[name](state, segment, ...args); + + this.emit('data', chunk) + + if (!this.buffer.length && !this[EOF]) + this.emit('drain') + + return chunk + } + + end (chunk, encoding, cb) { + if (typeof chunk === 'function') + cb = chunk, chunk = null + if (typeof encoding === 'function') + cb = encoding, encoding = 'utf8' + if (chunk) + this.write(chunk, encoding) + if (cb) + this.once('end', cb) + this[EOF] = true + this.writable = false + + // if we haven't written anything, then go ahead and emit, + // even if we're not reading. + // we'll re-emit if a new 'end' listener is added anyway. + // This makes MP more suitable to write-only use cases. + if (this.flowing || !this[PAUSED]) + this[MAYBE_EMIT_END]() + return this + } + + // don't let the internal resume be overwritten + [RESUME] () { + if (this[DESTROYED]) + return + + this[PAUSED] = false + this[FLOWING] = true + this.emit('resume') + if (this.buffer.length) + this[FLUSH]() + else if (this[EOF]) + this[MAYBE_EMIT_END]() + else + this.emit('drain') + } + + resume () { + return this[RESUME]() + } + + pause () { + this[FLOWING] = false + this[PAUSED] = true + } + + get destroyed () { + return this[DESTROYED] + } + + get flowing () { + return this[FLOWING] + } + + get paused () { + return this[PAUSED] + } + + [BUFFERPUSH] (chunk) { + if (this[OBJECTMODE]) + this[BUFFERLENGTH] += 1 + else + this[BUFFERLENGTH] += chunk.length + return this.buffer.push(chunk) + } + + [BUFFERSHIFT] () { + if (this.buffer.length) { + if (this[OBJECTMODE]) + this[BUFFERLENGTH] -= 1 + else + this[BUFFERLENGTH] -= this.buffer.head.value.length } - else { - return store[callback](state, segment); + return this.buffer.shift() + } + + [FLUSH] (noDrain) { + do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]())) + + if (!noDrain && !this.buffer.length && !this[EOF]) + this.emit('drain') + } + + [FLUSHCHUNK] (chunk) { + return chunk ? (this.emit('data', chunk), this.flowing) : false + } + + pipe (dest, opts) { + if (this[DESTROYED]) + return + + const ended = this[EMITTED_END] + opts = opts || {} + if (dest === proc.stdout || dest === proc.stderr) + opts.end = false + else + opts.end = opts.end !== false + + const p = { dest: dest, opts: opts, ondrain: _ => this[RESUME]() } + this.pipes.push(p) + + dest.on('drain', p.ondrain) + this[RESUME]() + // piping an ended stream ends immediately + if (ended && p.opts.end) + p.dest.end() + return dest + } + + addListener (ev, fn) { + return this.on(ev, fn) + } + + on (ev, fn) { + try { + return super.on(ev, fn) + } finally { + if (ev === 'data' && !this.pipes.length && !this.flowing) + this[RESUME]() + else if (isEndish(ev) && this[EMITTED_END]) { + super.emit(ev) + this.removeAllListeners(ev) + } else if (ev === 'error' && this[EMITTED_ERROR]) { + fn.call(this, this[EMITTED_ERROR]) + } } -} -function suggest(callback, state) { - const fn = Array.isArray(callback) - ? tests[callback[0]] - : tests[callback]; - // @ts-ignore - if (typeof fn.suggest === `undefined`) - return null; - const args = Array.isArray(callback) - ? callback.slice(1) - : []; - // @ts-ignore - return fn.suggest(state, ...args); -} -const tests = { - always: () => { - return true; - }, - isOptionLike: (state, segment) => { - return !state.ignoreOptions && (segment !== `-` && segment.startsWith(`-`)); - }, - isNotOptionLike: (state, segment) => { - return state.ignoreOptions || segment === `-` || !segment.startsWith(`-`); - }, - isOption: (state, segment, name, hidden) => { - return !state.ignoreOptions && segment === name; - }, - isBatchOption: (state, segment, names) => { - return !state.ignoreOptions && constants.BATCH_REGEX.test(segment) && [...segment.slice(1)].every(name => names.includes(`-${name}`)); - }, - isBoundOption: (state, segment, names, options) => { - const optionParsing = segment.match(constants.BINDING_REGEX); - return !state.ignoreOptions && !!optionParsing && constants.OPTION_REGEX.test(optionParsing[1]) && names.includes(optionParsing[1]) - // Disallow bound options with no arguments (i.e. booleans) - && options.filter(opt => opt.names.includes(optionParsing[1])).every(opt => opt.allowBinding); - }, - isNegatedOption: (state, segment, name) => { - return !state.ignoreOptions && segment === `--no-${name.slice(2)}`; - }, - isHelp: (state, segment) => { - return !state.ignoreOptions && constants.HELP_REGEX.test(segment); - }, - isUnsupportedOption: (state, segment, names) => { - return !state.ignoreOptions && segment.startsWith(`-`) && constants.OPTION_REGEX.test(segment) && !names.includes(segment); - }, - isInvalidOption: (state, segment) => { - return !state.ignoreOptions && segment.startsWith(`-`) && !constants.OPTION_REGEX.test(segment); - }, -}; -// @ts-ignore -tests.isOption.suggest = (state, name, hidden = true) => { - return !hidden ? [name] : null; -}; -const reducers = { - setCandidateState: (state, segment, candidateState) => { - return { ...state, ...candidateState }; - }, - setSelectedIndex: (state, segment, index) => { - return { ...state, selectedIndex: index }; - }, - pushBatch: (state, segment) => { - return { ...state, options: state.options.concat([...segment.slice(1)].map(name => ({ name: `-${name}`, value: true }))) }; - }, - pushBound: (state, segment) => { - const [, name, value] = segment.match(constants.BINDING_REGEX); - return { ...state, options: state.options.concat({ name, value }) }; - }, - pushPath: (state, segment) => { - return { ...state, path: state.path.concat(segment) }; - }, - pushPositional: (state, segment) => { - return { ...state, positionals: state.positionals.concat({ value: segment, extra: false }) }; - }, - pushExtra: (state, segment) => { - return { ...state, positionals: state.positionals.concat({ value: segment, extra: true }) }; - }, - pushExtraNoLimits: (state, segment) => { - return { ...state, positionals: state.positionals.concat({ value: segment, extra: NoLimits }) }; - }, - pushTrue: (state, segment, name = segment) => { - return { ...state, options: state.options.concat({ name: segment, value: true }) }; - }, - pushFalse: (state, segment, name = segment) => { - return { ...state, options: state.options.concat({ name, value: false }) }; - }, - pushUndefined: (state, segment) => { - return { ...state, options: state.options.concat({ name: segment, value: undefined }) }; - }, - pushStringValue: (state, segment) => { - var _a; - const copy = { ...state, options: [...state.options] }; - const lastOption = state.options[state.options.length - 1]; - lastOption.value = ((_a = lastOption.value) !== null && _a !== void 0 ? _a : []).concat([segment]); - return copy; - }, - setStringValue: (state, segment) => { - const copy = { ...state, options: [...state.options] }; - const lastOption = state.options[state.options.length - 1]; - lastOption.value = segment; - return copy; - }, - inhibateOptions: (state) => { - return { ...state, ignoreOptions: true }; - }, - useHelp: (state, segment, command) => { - const [, /* name */ , index] = segment.match(constants.HELP_REGEX); - if (typeof index !== `undefined`) { - return { ...state, options: [{ name: `-c`, value: String(command) }, { name: `-i`, value: index }] }; - } - else { - return { ...state, options: [{ name: `-c`, value: String(command) }] }; - } - }, - setError: (state, segment, errorMessage) => { - if (segment === constants.END_OF_INPUT) { - return { ...state, errorMessage: `${errorMessage}.` }; - } - else { - return { ...state, errorMessage: `${errorMessage} ("${segment}").` }; - } - }, - setOptionArityError: (state, segment) => { - const lastOption = state.options[state.options.length - 1]; - return { ...state, errorMessage: `Not enough arguments to option ${lastOption.name}.` }; - }, -}; -// ------------------------------------------------------------------------ -const NoLimits = Symbol(); -class CommandBuilder { - constructor(cliIndex, cliOpts) { - this.allOptionNames = []; - this.arity = { leading: [], trailing: [], extra: [], proxy: false }; - this.options = []; - this.paths = []; - this.cliIndex = cliIndex; - this.cliOpts = cliOpts; - } - addPath(path) { - this.paths.push(path); - } - setArity({ leading = this.arity.leading, trailing = this.arity.trailing, extra = this.arity.extra, proxy = this.arity.proxy }) { - Object.assign(this.arity, { leading, trailing, extra, proxy }); + } + + get emittedEnd () { + return this[EMITTED_END] + } + + [MAYBE_EMIT_END] () { + if (!this[EMITTING_END] && + !this[EMITTED_END] && + !this[DESTROYED] && + this.buffer.length === 0 && + this[EOF]) { + this[EMITTING_END] = true + this.emit('end') + this.emit('prefinish') + this.emit('finish') + if (this[CLOSED]) + this.emit('close') + this[EMITTING_END] = false } - addPositional({ name = `arg`, required = true } = {}) { - if (!required && this.arity.extra === NoLimits) - throw new Error(`Optional parameters cannot be declared when using .rest() or .proxy()`); - if (!required && this.arity.trailing.length > 0) - throw new Error(`Optional parameters cannot be declared after the required trailing positional arguments`); - if (!required && this.arity.extra !== NoLimits) { - this.arity.extra.push(name); - } - else if (this.arity.extra !== NoLimits && this.arity.extra.length === 0) { - this.arity.leading.push(name); - } - else { - this.arity.trailing.push(name); + } + + emit (ev, data) { + // error and close are only events allowed after calling destroy() + if (ev !== 'error' && ev !== 'close' && ev !== DESTROYED && this[DESTROYED]) + return + else if (ev === 'data') { + if (!data) + return + + if (this.pipes.length) + this.pipes.forEach(p => + p.dest.write(data) === false && this.pause()) + } else if (ev === 'end') { + // only actual end gets this treatment + if (this[EMITTED_END] === true) + return + + this[EMITTED_END] = true + this.readable = false + + if (this[DECODER]) { + data = this[DECODER].end() + if (data) { + this.pipes.forEach(p => p.dest.write(data)) + super.emit('data', data) } + } + + this.pipes.forEach(p => { + p.dest.removeListener('drain', p.ondrain) + if (p.opts.end) + p.dest.end() + }) + } else if (ev === 'close') { + this[CLOSED] = true + // don't emit close before 'end' and 'finish' + if (!this[EMITTED_END] && !this[DESTROYED]) + return + } else if (ev === 'error') { + this[EMITTED_ERROR] = data } - addRest({ name = `arg`, required = 0 } = {}) { - if (this.arity.extra === NoLimits) - throw new Error(`Infinite lists cannot be declared multiple times in the same command`); - if (this.arity.trailing.length > 0) - throw new Error(`Infinite lists cannot be declared after the required trailing positional arguments`); - for (let t = 0; t < required; ++t) - this.addPositional({ name }); - this.arity.extra = NoLimits; + + // TODO: replace with a spread operator when Node v4 support drops + const args = new Array(arguments.length) + args[0] = ev + args[1] = data + if (arguments.length > 2) { + for (let i = 2; i < arguments.length; i++) { + args[i] = arguments[i] + } } - addProxy({ required = 0 } = {}) { - this.addRest({ required }); - this.arity.proxy = true; + + try { + return super.emit.apply(this, args) + } finally { + if (!isEndish(ev)) + this[MAYBE_EMIT_END]() + else + this.removeAllListeners(ev) } - addOption({ names, description, arity = 0, hidden = false, required = false, allowBinding = true }) { - if (!allowBinding && arity > 1) - throw new Error(`The arity cannot be higher than 1 when the option only supports the --arg=value syntax`); - if (!Number.isInteger(arity)) - throw new Error(`The arity must be an integer, got ${arity}`); - if (arity < 0) - throw new Error(`The arity must be positive, got ${arity}`); - this.allOptionNames.push(...names); - this.options.push({ names, description, arity, hidden, required, allowBinding }); + } + + // const all = await stream.collect() + collect () { + const buf = [] + if (!this[OBJECTMODE]) + buf.dataLength = 0 + // set the promise first, in case an error is raised + // by triggering the flow here. + const p = this.promise() + this.on('data', c => { + buf.push(c) + if (!this[OBJECTMODE]) + buf.dataLength += c.length + }) + return p.then(() => buf) + } + + // const data = await stream.concat() + concat () { + return this[OBJECTMODE] + ? Promise.reject(new Error('cannot concat in objectMode')) + : this.collect().then(buf => + this[OBJECTMODE] + ? Promise.reject(new Error('cannot concat in objectMode')) + : this[ENCODING] ? buf.join('') : Buffer.concat(buf, buf.dataLength)) + } + + // stream.promise().then(() => done, er => emitted error) + promise () { + return new Promise((resolve, reject) => { + this.on(DESTROYED, () => reject(new Error('stream destroyed'))) + this.on('error', er => reject(er)) + this.on('end', () => resolve()) + }) + } + + // for await (let chunk of stream) + [ASYNCITERATOR] () { + const next = () => { + const res = this.read() + if (res !== null) + return Promise.resolve({ done: false, value: res }) + + if (this[EOF]) + return Promise.resolve({ done: true }) + + let resolve = null + let reject = null + const onerr = er => { + this.removeListener('data', ondata) + this.removeListener('end', onend) + reject(er) + } + const ondata = value => { + this.removeListener('error', onerr) + this.removeListener('end', onend) + this.pause() + resolve({ value: value, done: !!this[EOF] }) + } + const onend = () => { + this.removeListener('error', onerr) + this.removeListener('data', ondata) + resolve({ done: true }) + } + const ondestroy = () => onerr(new Error('stream destroyed')) + return new Promise((res, rej) => { + reject = rej + resolve = res + this.once(DESTROYED, ondestroy) + this.once('error', onerr) + this.once('end', onend) + this.once('data', ondata) + }) } - setContext(context) { - this.context = context; + + return { next } + } + + // for (let chunk of stream) + [ITERATOR] () { + const next = () => { + const value = this.read() + const done = value === null + return { value, done } } - usage({ detailed = true, inlineOptions = true } = {}) { - const segments = [this.cliOpts.binaryName]; - const detailedOptionList = []; - if (this.paths.length > 0) - segments.push(...this.paths[0]); - if (detailed) { - for (const { names, arity, hidden, description, required } of this.options) { - if (hidden) - continue; - const args = []; - for (let t = 0; t < arity; ++t) - args.push(` #${t}`); - const definition = `${names.join(`,`)}${args.join(``)}`; - if (!inlineOptions && description) { - detailedOptionList.push({ definition, description, required }); - } - else { - segments.push(required ? `<${definition}>` : `[${definition}]`); - } - } - segments.push(...this.arity.leading.map(name => `<${name}>`)); - if (this.arity.extra === NoLimits) - segments.push(`...`); - else - segments.push(...this.arity.extra.map(name => `[${name}]`)); - segments.push(...this.arity.trailing.map(name => `<${name}>`)); - } - const usage = segments.join(` `); - return { usage, options: detailedOptionList }; - } - compile() { - if (typeof this.context === `undefined`) - throw new Error(`Assertion failed: No context attached`); - const machine = makeStateMachine(); - let firstNode = constants.NODE_INITIAL; - const candidateUsage = this.usage().usage; - const requiredOptions = this.options - .filter(opt => opt.required) - .map(opt => opt.names); - firstNode = injectNode(machine, makeNode()); - registerStatic(machine, constants.NODE_INITIAL, constants.START_OF_INPUT, firstNode, [`setCandidateState`, { candidateUsage, requiredOptions }]); - const positionalArgument = this.arity.proxy - ? `always` - : `isNotOptionLike`; - const paths = this.paths.length > 0 - ? this.paths - : [[]]; - for (const path of paths) { - let lastPathNode = firstNode; - // We allow options to be specified before the path. Note that we - // only do this when there is a path, otherwise there would be - // some redundancy with the options attached later. - if (path.length > 0) { - const optionPathNode = injectNode(machine, makeNode()); - registerShortcut(machine, lastPathNode, optionPathNode); - this.registerOptions(machine, optionPathNode); - lastPathNode = optionPathNode; - } - for (let t = 0; t < path.length; ++t) { - const nextPathNode = injectNode(machine, makeNode()); - registerStatic(machine, lastPathNode, path[t], nextPathNode, `pushPath`); - lastPathNode = nextPathNode; - } - if (this.arity.leading.length > 0 || !this.arity.proxy) { - const helpNode = injectNode(machine, makeNode()); - registerDynamic(machine, lastPathNode, `isHelp`, helpNode, [`useHelp`, this.cliIndex]); - registerStatic(machine, helpNode, constants.END_OF_INPUT, constants.NODE_SUCCESS, [`setSelectedIndex`, constants.HELP_COMMAND_INDEX]); - this.registerOptions(machine, lastPathNode); - } - if (this.arity.leading.length > 0) - registerStatic(machine, lastPathNode, constants.END_OF_INPUT, constants.NODE_ERRORED, [`setError`, `Not enough positional arguments`]); - let lastLeadingNode = lastPathNode; - for (let t = 0; t < this.arity.leading.length; ++t) { - const nextLeadingNode = injectNode(machine, makeNode()); - if (!this.arity.proxy) - this.registerOptions(machine, nextLeadingNode); - if (this.arity.trailing.length > 0 || t + 1 !== this.arity.leading.length) - registerStatic(machine, nextLeadingNode, constants.END_OF_INPUT, constants.NODE_ERRORED, [`setError`, `Not enough positional arguments`]); - registerDynamic(machine, lastLeadingNode, `isNotOptionLike`, nextLeadingNode, `pushPositional`); - lastLeadingNode = nextLeadingNode; - } - let lastExtraNode = lastLeadingNode; - if (this.arity.extra === NoLimits || this.arity.extra.length > 0) { - const extraShortcutNode = injectNode(machine, makeNode()); - registerShortcut(machine, lastLeadingNode, extraShortcutNode); - if (this.arity.extra === NoLimits) { - const extraNode = injectNode(machine, makeNode()); - if (!this.arity.proxy) - this.registerOptions(machine, extraNode); - registerDynamic(machine, lastLeadingNode, positionalArgument, extraNode, `pushExtraNoLimits`); - registerDynamic(machine, extraNode, positionalArgument, extraNode, `pushExtraNoLimits`); - registerShortcut(machine, extraNode, extraShortcutNode); - } - else { - for (let t = 0; t < this.arity.extra.length; ++t) { - const nextExtraNode = injectNode(machine, makeNode()); - if (!this.arity.proxy) - this.registerOptions(machine, nextExtraNode); - registerDynamic(machine, lastExtraNode, positionalArgument, nextExtraNode, `pushExtra`); - registerShortcut(machine, nextExtraNode, extraShortcutNode); - lastExtraNode = nextExtraNode; - } - } - lastExtraNode = extraShortcutNode; - } - if (this.arity.trailing.length > 0) - registerStatic(machine, lastExtraNode, constants.END_OF_INPUT, constants.NODE_ERRORED, [`setError`, `Not enough positional arguments`]); - let lastTrailingNode = lastExtraNode; - for (let t = 0; t < this.arity.trailing.length; ++t) { - const nextTrailingNode = injectNode(machine, makeNode()); - if (!this.arity.proxy) - this.registerOptions(machine, nextTrailingNode); - if (t + 1 < this.arity.trailing.length) - registerStatic(machine, nextTrailingNode, constants.END_OF_INPUT, constants.NODE_ERRORED, [`setError`, `Not enough positional arguments`]); - registerDynamic(machine, lastTrailingNode, `isNotOptionLike`, nextTrailingNode, `pushPositional`); - lastTrailingNode = nextTrailingNode; - } - registerDynamic(machine, lastTrailingNode, positionalArgument, constants.NODE_ERRORED, [`setError`, `Extraneous positional argument`]); - registerStatic(machine, lastTrailingNode, constants.END_OF_INPUT, constants.NODE_SUCCESS, [`setSelectedIndex`, this.cliIndex]); - } - return { - machine, - context: this.context, - }; - } - registerOptions(machine, node) { - registerDynamic(machine, node, [`isOption`, `--`], node, `inhibateOptions`); - registerDynamic(machine, node, [`isBatchOption`, this.allOptionNames], node, `pushBatch`); - registerDynamic(machine, node, [`isBoundOption`, this.allOptionNames, this.options], node, `pushBound`); - registerDynamic(machine, node, [`isUnsupportedOption`, this.allOptionNames], constants.NODE_ERRORED, [`setError`, `Unsupported option name`]); - registerDynamic(machine, node, [`isInvalidOption`], constants.NODE_ERRORED, [`setError`, `Invalid option name`]); - for (const option of this.options) { - const longestName = option.names.reduce((longestName, name) => { - return name.length > longestName.length ? name : longestName; - }, ``); - if (option.arity === 0) { - for (const name of option.names) { - registerDynamic(machine, node, [`isOption`, name, option.hidden || name !== longestName], node, `pushTrue`); - if (name.startsWith(`--`) && !name.startsWith(`--no-`)) { - registerDynamic(machine, node, [`isNegatedOption`, name], node, [`pushFalse`, name]); - } - } - } - else { - // We inject a new node at the end of the state machine - let lastNode = injectNode(machine, makeNode()); - // We register transitions from the starting node to this new node - for (const name of option.names) - registerDynamic(machine, node, [`isOption`, name, option.hidden || name !== longestName], lastNode, `pushUndefined`); - // For each argument, we inject a new node at the end and we - // register a transition from the current node to this new node - for (let t = 0; t < option.arity; ++t) { - const nextNode = injectNode(machine, makeNode()); - // We can provide better errors when another option or END_OF_INPUT is encountered - registerStatic(machine, lastNode, constants.END_OF_INPUT, constants.NODE_ERRORED, `setOptionArityError`); - registerDynamic(machine, lastNode, `isOptionLike`, constants.NODE_ERRORED, `setOptionArityError`); - // If the option has a single argument, no need to store it in an array - const action = option.arity === 1 - ? `setStringValue` - : `pushStringValue`; - registerDynamic(machine, lastNode, `isNotOptionLike`, nextNode, action); - lastNode = nextNode; - } - // In the end, we register a shortcut from - // the last node back to the starting node - registerShortcut(machine, lastNode, node); - } - } - } -} -class CliBuilder { - constructor({ binaryName = `...` } = {}) { - this.builders = []; - this.opts = { binaryName }; - } - static build(cbs, opts = {}) { - return new CliBuilder(opts).commands(cbs).compile(); - } - getBuilderByIndex(n) { - if (!(n >= 0 && n < this.builders.length)) - throw new Error(`Assertion failed: Out-of-bound command index (${n})`); - return this.builders[n]; - } - commands(cbs) { - for (const cb of cbs) - cb(this.command()); - return this; - } - command() { - const builder = new CommandBuilder(this.builders.length, this.opts); - this.builders.push(builder); - return builder; - } - compile() { - const machines = []; - const contexts = []; - for (const builder of this.builders) { - const { machine, context } = builder.compile(); - machines.push(machine); - contexts.push(context); - } - const machine = makeAnyOfMachine(machines); - simplifyMachine(machine); - return { - machine, - contexts, - process: (input) => { - return runMachine(machine, input); - }, - suggest: (input, partial) => { - return suggestMachine(machine, input, partial); - }, - }; + return { next } + } + + destroy (er) { + if (this[DESTROYED]) { + if (er) + this.emit('error', er) + else + this.emit(DESTROYED) + return this } -} -exports.CliBuilder = CliBuilder; -exports.CommandBuilder = CommandBuilder; -exports.NoLimits = NoLimits; -exports.aggregateHelpStates = aggregateHelpStates; -exports.cloneNode = cloneNode; -exports.cloneTransition = cloneTransition; -exports.debug = debug; -exports.debugMachine = debugMachine; -exports.execute = execute; -exports.injectNode = injectNode; -exports.isTerminalNode = isTerminalNode; -exports.makeAnyOfMachine = makeAnyOfMachine; -exports.makeNode = makeNode; -exports.makeStateMachine = makeStateMachine; -exports.reducers = reducers; -exports.registerDynamic = registerDynamic; -exports.registerShortcut = registerShortcut; -exports.registerStatic = registerStatic; -exports.runMachineInternal = runMachineInternal; -exports.selectBestState = selectBestState; -exports.simplifyMachine = simplifyMachine; -exports.suggest = suggest; -exports.tests = tests; -exports.trimSmallerBranches = trimSmallerBranches; + this[DESTROYED] = true + // throw away all buffered data, it's never coming out + this.buffer = new Yallist() + this[BUFFERLENGTH] = 0 -/***/ }), + if (typeof this.close === 'function' && !this[CLOSED]) + this.close() -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/errors.js": -/*!***************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/errors.js ***! - \***************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + if (er) + this.emit('error', er) + else // if no error to emit, still reject pending promises + this.emit(DESTROYED) -"use strict"; + return this + } + static isStream (s) { + return !!s && (s instanceof Minipass || s instanceof Stream || + s instanceof EE && ( + typeof s.pipe === 'function' || // readable + (typeof s.write === 'function' && typeof s.end === 'function') // writable + )) + } +} -Object.defineProperty(exports, "__esModule", ({ value: true })); -var constants = __webpack_require__(/*! ./constants.js */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/constants.js"); +/***/ }), -/** - * A generic usage error with the name `UsageError`. - * - * It should be used over `Error` only when it's the user's fault. - */ -class UsageError extends Error { - constructor(message) { - super(message); - this.clipanion = { type: `usage` }; - this.name = `UsageError`; - } -} -class UnknownSyntaxError extends Error { - constructor(input, candidates) { - super(); - this.input = input; - this.candidates = candidates; - this.clipanion = { type: `none` }; - this.name = `UnknownSyntaxError`; - if (this.candidates.length === 0) { - this.message = `Command not found, but we're not sure what's the alternative.`; - } - else if (this.candidates.every(candidate => candidate.reason !== null && candidate.reason === candidates[0].reason)) { - const [{ reason }] = this.candidates; - this.message = `${reason}\n\n${this.candidates.map(({ usage }) => `$ ${usage}`).join(`\n`)}`; - } - else if (this.candidates.length === 1) { - const [{ usage }] = this.candidates; - this.message = `Command not found; did you mean:\n\n$ ${usage}\n${whileRunning(input)}`; - } - else { - this.message = `Command not found; did you mean one of:\n\n${this.candidates.map(({ usage }, index) => { - return `${`${index}.`.padStart(4)} ${usage}`; - }).join(`\n`)}\n\n${whileRunning(input)}`; - } - } -} -class AmbiguousSyntaxError extends Error { - constructor(input, usages) { - super(); - this.input = input; - this.usages = usages; - this.clipanion = { type: `none` }; - this.name = `AmbiguousSyntaxError`; - this.message = `Cannot find which to pick amongst the following alternatives:\n\n${this.usages.map((usage, index) => { - return `${`${index}.`.padStart(4)} ${usage}`; - }).join(`\n`)}\n\n${whileRunning(input)}`; - } -} -const whileRunning = (input) => `While running ${input.filter(token => { - return token !== constants.END_OF_INPUT; -}).map(token => { - const json = JSON.stringify(token); - if (token.match(/\s/) || token.length === 0 || json !== `"${token}"`) { - return json; - } - else { - return token; - } -}).join(` `)}`; +/***/ "../../../.yarn/berry/cache/minizlib-npm-2.1.2-ea89cd0cfb-9.zip/node_modules/minizlib/constants.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/minizlib-npm-2.1.2-ea89cd0cfb-9.zip/node_modules/minizlib/constants.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -exports.AmbiguousSyntaxError = AmbiguousSyntaxError; -exports.UnknownSyntaxError = UnknownSyntaxError; -exports.UsageError = UsageError; +// Update with any zlib constants that are added or changed in the future. +// Node v6 didn't export this, so we just hard code the version and rely +// on all the other hard-coded values from zlib v4736. When node v6 +// support drops, we can just export the realZlibConstants object. +const realZlibConstants = (__webpack_require__(/*! zlib */ "zlib").constants) || + /* istanbul ignore next */ { ZLIB_VERNUM: 4736 } + +module.exports = Object.freeze(Object.assign(Object.create(null), { + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + Z_MEM_ERROR: -4, + Z_BUF_ERROR: -5, + Z_VERSION_ERROR: -6, + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + DEFLATE: 1, + INFLATE: 2, + GZIP: 3, + GUNZIP: 4, + DEFLATERAW: 5, + INFLATERAW: 6, + UNZIP: 7, + BROTLI_DECODE: 8, + BROTLI_ENCODE: 9, + Z_MIN_WINDOWBITS: 8, + Z_MAX_WINDOWBITS: 15, + Z_DEFAULT_WINDOWBITS: 15, + Z_MIN_CHUNK: 64, + Z_MAX_CHUNK: Infinity, + Z_DEFAULT_CHUNK: 16384, + Z_MIN_MEMLEVEL: 1, + Z_MAX_MEMLEVEL: 9, + Z_DEFAULT_MEMLEVEL: 8, + Z_MIN_LEVEL: -1, + Z_MAX_LEVEL: 9, + Z_DEFAULT_LEVEL: -1, + BROTLI_OPERATION_PROCESS: 0, + BROTLI_OPERATION_FLUSH: 1, + BROTLI_OPERATION_FINISH: 2, + BROTLI_OPERATION_EMIT_METADATA: 3, + BROTLI_MODE_GENERIC: 0, + BROTLI_MODE_TEXT: 1, + BROTLI_MODE_FONT: 2, + BROTLI_DEFAULT_MODE: 0, + BROTLI_MIN_QUALITY: 0, + BROTLI_MAX_QUALITY: 11, + BROTLI_DEFAULT_QUALITY: 11, + BROTLI_MIN_WINDOW_BITS: 10, + BROTLI_MAX_WINDOW_BITS: 24, + BROTLI_LARGE_MAX_WINDOW_BITS: 30, + BROTLI_DEFAULT_WINDOW: 22, + BROTLI_MIN_INPUT_BLOCK_BITS: 16, + BROTLI_MAX_INPUT_BLOCK_BITS: 24, + BROTLI_PARAM_MODE: 0, + BROTLI_PARAM_QUALITY: 1, + BROTLI_PARAM_LGWIN: 2, + BROTLI_PARAM_LGBLOCK: 3, + BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4, + BROTLI_PARAM_SIZE_HINT: 5, + BROTLI_PARAM_LARGE_WINDOW: 6, + BROTLI_PARAM_NPOSTFIX: 7, + BROTLI_PARAM_NDIRECT: 8, + BROTLI_DECODER_RESULT_ERROR: 0, + BROTLI_DECODER_RESULT_SUCCESS: 1, + BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2, + BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3, + BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0, + BROTLI_DECODER_PARAM_LARGE_WINDOW: 1, + BROTLI_DECODER_NO_ERROR: 0, + BROTLI_DECODER_SUCCESS: 1, + BROTLI_DECODER_NEEDS_MORE_INPUT: 2, + BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3, + BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1, + BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2, + BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3, + BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4, + BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5, + BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6, + BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7, + BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8, + BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9, + BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10, + BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11, + BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12, + BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13, + BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14, + BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15, + BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16, + BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19, + BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20, + BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21, + BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22, + BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25, + BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26, + BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27, + BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30, + BROTLI_DECODER_ERROR_UNREACHABLE: -31, +}, realZlibConstants)) /***/ }), -/***/ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/format.js": -/*!***************************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/format.js ***! - \***************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { +/***/ "../../../.yarn/berry/cache/minizlib-npm-2.1.2-ea89cd0cfb-9.zip/node_modules/minizlib/index.js": +/*!*****************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/minizlib-npm-2.1.2-ea89cd0cfb-9.zip/node_modules/minizlib/index.js ***! + \*****************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); - -const MAX_LINE_LENGTH = 80; -const richLine = Array(MAX_LINE_LENGTH).fill(`━`); -for (let t = 0; t <= 24; ++t) - richLine[richLine.length - t] = `\x1b[38;5;${232 + t}m━`; -const richFormat = { - header: str => `\x1b[1m━━━ ${str}${str.length < MAX_LINE_LENGTH - 5 ? ` ${richLine.slice(str.length + 5).join(``)}` : `:`}\x1b[0m`, - bold: str => `\x1b[1m${str}\x1b[22m`, - error: str => `\x1b[31m\x1b[1m${str}\x1b[22m\x1b[39m`, - code: str => `\x1b[36m${str}\x1b[39m`, -}; -const textFormat = { - header: str => str, - bold: str => str, - error: str => str, - code: str => str, -}; -function dedent(text) { - const lines = text.split(`\n`); - const nonEmptyLines = lines.filter(line => line.match(/\S/)); - const indent = nonEmptyLines.length > 0 ? nonEmptyLines.reduce((minLength, line) => Math.min(minLength, line.length - line.trimStart().length), Number.MAX_VALUE) : 0; - return lines - .map(line => line.slice(indent).trimRight()) - .join(`\n`); -} -function formatMarkdownish(text, { format, paragraphs }) { - // Enforce \n as newline character - text = text.replace(/\r\n?/g, `\n`); - // Remove the indentation, since it got messed up with the JS indentation - text = dedent(text); - // Remove surrounding newlines, since they got added for JS formatting - text = text.replace(/^\n+|\n+$/g, ``); - // List items always end with at least two newlines (in order to not be collapsed) - text = text.replace(/^(\s*)-([^\n]*?)\n+/gm, `$1-$2\n\n`); - // Single newlines are removed; larger than that are collapsed into one - text = text.replace(/\n(\n)?\n*/g, `$1`); - if (paragraphs) { - text = text.split(/\n/).map(paragraph => { - // Does the paragraph starts with a list? - const bulletMatch = paragraph.match(/^\s*[*-][\t ]+(.*)/); - if (!bulletMatch) - // No, cut the paragraphs into segments of 80 characters - return paragraph.match(/(.{1,80})(?: |$)/g).join(`\n`); - const indent = paragraph.length - paragraph.trimStart().length; - // Yes, cut the paragraphs into segments of (78 - indent) characters (to account for the prefix) - return bulletMatch[1].match(new RegExp(`(.{1,${78 - indent}})(?: |$)`, `g`)).map((line, index) => { - return ` `.repeat(indent) + (index === 0 ? `- ` : ` `) + line; - }).join(`\n`); - }).join(`\n\n`); - } - // Highlight the code segments - text = text.replace(/(`+)((?:.|[\n])*?)\1/g, ($0, $1, $2) => { - return format.code($1 + $2 + $1); - }); - // Highlight the code segments - text = text.replace(/(\*\*)((?:.|[\n])*?)\1/g, ($0, $1, $2) => { - return format.bold($1 + $2 + $1); - }); - return text ? `${text}\n` : ``; -} +const assert = __webpack_require__(/*! assert */ "assert") +const Buffer = (__webpack_require__(/*! buffer */ "buffer").Buffer) +const realZlib = __webpack_require__(/*! zlib */ "zlib") -exports.formatMarkdownish = formatMarkdownish; -exports.richFormat = richFormat; -exports.textFormat = textFormat; +const constants = exports.constants = __webpack_require__(/*! ./constants.js */ "../../../.yarn/berry/cache/minizlib-npm-2.1.2-ea89cd0cfb-9.zip/node_modules/minizlib/constants.js") +const Minipass = __webpack_require__(/*! minipass */ "../../../.yarn/berry/cache/minipass-npm-3.1.6-f032df1661-9.zip/node_modules/minipass/index.js") +const OriginalBufferConcat = Buffer.concat -/***/ }), +const _superWrite = Symbol('_superWrite') +class ZlibError extends Error { + constructor (err) { + super('zlib: ' + err.message) + this.code = err.code + this.errno = err.errno + /* istanbul ignore if */ + if (!this.code) + this.code = 'ZLIB_ERROR' -/***/ "./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/browser.js": -/*!****************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/browser.js ***! - \****************************************************************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { + this.message = 'zlib: ' + err.message + Error.captureStackTrace(this, this.constructor) + } -/* eslint-env browser */ + get name () { + return 'ZlibError' + } +} -/** - * This is the web browser implementation of `debug()`. - */ +// the Zlib class they all inherit from +// This thing manages the queue of requests, and returns +// true or false if there is anything in the queue when +// you call the .write() method. +const _opts = Symbol('opts') +const _flushFlag = Symbol('flushFlag') +const _finishFlushFlag = Symbol('finishFlushFlag') +const _fullFlushFlag = Symbol('fullFlushFlag') +const _handle = Symbol('handle') +const _onError = Symbol('onError') +const _sawError = Symbol('sawError') +const _level = Symbol('level') +const _strategy = Symbol('strategy') +const _ended = Symbol('ended') +const _defaultFullFlush = Symbol('_defaultFullFlush') -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = localstorage(); +class ZlibBase extends Minipass { + constructor (opts, mode) { + if (!opts || typeof opts !== 'object') + throw new TypeError('invalid options for ZlibBase constructor') -/** - * Colors. - */ + super(opts) + this[_sawError] = false + this[_ended] = false + this[_opts] = opts -exports.colors = [ - '#0000CC', - '#0000FF', - '#0033CC', - '#0033FF', - '#0066CC', - '#0066FF', - '#0099CC', - '#0099FF', - '#00CC00', - '#00CC33', - '#00CC66', - '#00CC99', - '#00CCCC', - '#00CCFF', - '#3300CC', - '#3300FF', - '#3333CC', - '#3333FF', - '#3366CC', - '#3366FF', - '#3399CC', - '#3399FF', - '#33CC00', - '#33CC33', - '#33CC66', - '#33CC99', - '#33CCCC', - '#33CCFF', - '#6600CC', - '#6600FF', - '#6633CC', - '#6633FF', - '#66CC00', - '#66CC33', - '#9900CC', - '#9900FF', - '#9933CC', - '#9933FF', - '#99CC00', - '#99CC33', - '#CC0000', - '#CC0033', - '#CC0066', - '#CC0099', - '#CC00CC', - '#CC00FF', - '#CC3300', - '#CC3333', - '#CC3366', - '#CC3399', - '#CC33CC', - '#CC33FF', - '#CC6600', - '#CC6633', - '#CC9900', - '#CC9933', - '#CCCC00', - '#CCCC33', - '#FF0000', - '#FF0033', - '#FF0066', - '#FF0099', - '#FF00CC', - '#FF00FF', - '#FF3300', - '#FF3333', - '#FF3366', - '#FF3399', - '#FF33CC', - '#FF33FF', - '#FF6600', - '#FF6633', - '#FF9900', - '#FF9933', - '#FFCC00', - '#FFCC33' -]; + this[_flushFlag] = opts.flush + this[_finishFlushFlag] = opts.finishFlush + // this will throw if any options are invalid for the class selected + try { + this[_handle] = new realZlib[mode](opts) + } catch (er) { + // make sure that all errors get decorated properly + throw new ZlibError(er) + } -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ + this[_onError] = (err) => { + // no sense raising multiple errors, since we abort on the first one. + if (this[_sawError]) + return -// eslint-disable-next-line complexity -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } + this[_sawError] = true - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } + // there is no way to cleanly recover. + // continuing only obscures problems. + this.close() + this.emit('error', err) + } - // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // Is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // Double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} + this[_handle].on('error', er => this[_onError](new ZlibError(er))) + this.once('end', () => this.close) + } -/** - * Colorize log arguments if enabled. - * - * @api public - */ + close () { + if (this[_handle]) { + this[_handle].close() + this[_handle] = null + this.emit('close') + } + } -function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); + reset () { + if (!this[_sawError]) { + assert(this[_handle], 'zlib binding closed') + return this[_handle].reset() + } + } - if (!this.useColors) { - return; - } + flush (flushFlag) { + if (this.ended) + return - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); + if (typeof flushFlag !== 'number') + flushFlag = this[_fullFlushFlag] + this.write(Object.assign(Buffer.alloc(0), { [_flushFlag]: flushFlag })) + } - // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, match => { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); + end (chunk, encoding, cb) { + if (chunk) + this.write(chunk, encoding) + this.flush(this[_finishFlushFlag]) + this[_ended] = true + return super.end(null, null, cb) + } - args.splice(lastC, 0, c); -} + get ended () { + return this[_ended] + } -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ -function log(...args) { - // This hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return typeof console === 'object' && - console.log && - console.log(...args); -} + write (chunk, encoding, cb) { + // process the chunk using the sync process + // then super.write() all the outputted chunks + if (typeof encoding === 'function') + cb = encoding, encoding = 'utf8' -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} + if (typeof chunk === 'string') + chunk = Buffer.from(chunk, encoding) -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ -function load() { - let r; - try { - r = exports.storage.getItem('debug'); - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } + if (this[_sawError]) + return + assert(this[_handle], 'zlib binding closed') - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } + // _processChunk tries to .close() the native handle after it's done, so we + // intercept that by temporarily making it a no-op. + const nativeHandle = this[_handle]._handle + const originalNativeClose = nativeHandle.close + nativeHandle.close = () => {} + const originalClose = this[_handle].close + this[_handle].close = () => {} + // It also calls `Buffer.concat()` at the end, which may be convenient + // for some, but which we are not interested in as it slows us down. + Buffer.concat = (args) => args + let result + try { + const flushFlag = typeof chunk[_flushFlag] === 'number' + ? chunk[_flushFlag] : this[_flushFlag] + result = this[_handle]._processChunk(chunk, flushFlag) + // if we don't throw, reset it back how it was + Buffer.concat = OriginalBufferConcat + } catch (err) { + // or if we do, put Buffer.concat() back before we emit error + // Error events call into user code, which may call Buffer.concat() + Buffer.concat = OriginalBufferConcat + this[_onError](new ZlibError(err)) + } finally { + if (this[_handle]) { + // Core zlib resets `_handle` to null after attempting to close the + // native handle. Our no-op handler prevented actual closure, but we + // need to restore the `._handle` property. + this[_handle]._handle = nativeHandle + nativeHandle.close = originalNativeClose + this[_handle].close = originalClose + // `_processChunk()` adds an 'error' listener. If we don't remove it + // after each call, these handlers start piling up. + this[_handle].removeAllListeners('error') + // make sure OUR error listener is still attached tho + } + } - return r; -} + if (this[_handle]) + this[_handle].on('error', er => this[_onError](new ZlibError(er))) -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ + let writeReturn + if (result) { + if (Array.isArray(result) && result.length > 0) { + // The first buffer is always `handle._outBuffer`, which would be + // re-used for later invocations; so, we always have to copy that one. + writeReturn = this[_superWrite](Buffer.from(result[0])) + for (let i = 1; i < result.length; i++) { + writeReturn = this[_superWrite](result[i]) + } + } else { + writeReturn = this[_superWrite](Buffer.from(result)) + } + } -function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} + if (cb) + cb() + return writeReturn + } -module.exports = __webpack_require__(/*! ./common */ "./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/common.js")(exports); + [_superWrite] (data) { + return super.write(data) + } +} -const {formatters} = module.exports; +class Zlib extends ZlibBase { + constructor (opts, mode) { + opts = opts || {} -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ + opts.flush = opts.flush || constants.Z_NO_FLUSH + opts.finishFlush = opts.finishFlush || constants.Z_FINISH + super(opts, mode) -formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } -}; + this[_fullFlushFlag] = constants.Z_FULL_FLUSH + this[_level] = opts.level + this[_strategy] = opts.strategy + } + params (level, strategy) { + if (this[_sawError]) + return -/***/ }), + if (!this[_handle]) + throw new Error('cannot switch params when binding is closed') -/***/ "./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/common.js": -/*!***************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/common.js ***! - \***************************************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // no way to test this without also not supporting params at all + /* istanbul ignore if */ + if (!this[_handle].params) + throw new Error('not supported in this implementation') + if (this[_level] !== level || this[_strategy] !== strategy) { + this.flush(constants.Z_SYNC_FLUSH) + assert(this[_handle], 'zlib binding closed') + // .params() calls .flush(), but the latter is always async in the + // core zlib. We override .flush() temporarily to intercept that and + // flush synchronously. + const origFlush = this[_handle].flush + this[_handle].flush = (flushFlag, cb) => { + this.flush(flushFlag) + cb() + } + try { + this[_handle].params(level, strategy) + } finally { + this[_handle].flush = origFlush + } + /* istanbul ignore else */ + if (this[_handle]) { + this[_level] = level + this[_strategy] = strategy + } + } + } +} -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - */ +// minimal 2-byte header +class Deflate extends Zlib { + constructor (opts) { + super(opts, 'Deflate') + } +} -function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = __webpack_require__(/*! ms */ "./.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip/node_modules/ms/index.js"); +class Inflate extends Zlib { + constructor (opts) { + super(opts, 'Inflate') + } +} - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); +// gzip - bigger header, same deflate compression +const _portable = Symbol('_portable') +class Gzip extends Zlib { + constructor (opts) { + super(opts, 'Gzip') + this[_portable] = opts && !!opts.portable + } - /** - * Active `debug` instances. - */ - createDebug.instances = []; + [_superWrite] (data) { + if (!this[_portable]) + return super[_superWrite](data) - /** - * The currently active debug mode names, and names to skip. - */ + // we'll always get the header emitted in one first chunk + // overwrite the OS indicator byte with 0xFF + this[_portable] = false + data[9] = 255 + return super[_superWrite](data) + } +} - createDebug.names = []; - createDebug.skips = []; +class Gunzip extends Zlib { + constructor (opts) { + super(opts, 'Gunzip') + } +} - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - createDebug.formatters = {}; +// raw - no header +class DeflateRaw extends Zlib { + constructor (opts) { + super(opts, 'DeflateRaw') + } +} - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - function selectColor(namespace) { - let hash = 0; +class InflateRaw extends Zlib { + constructor (opts) { + super(opts, 'InflateRaw') + } +} - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } +// auto-detect header. +class Unzip extends Zlib { + constructor (opts) { + super(opts, 'Unzip') + } +} - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; +class Brotli extends ZlibBase { + constructor (opts, mode) { + opts = opts || {} - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; + opts.flush = opts.flush || constants.BROTLI_OPERATION_PROCESS + opts.finishFlush = opts.finishFlush || constants.BROTLI_OPERATION_FINISH - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; - } + super(opts, mode) - const self = debug; + this[_fullFlushFlag] = constants.BROTLI_OPERATION_FLUSH + } +} - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; +class BrotliCompress extends Brotli { + constructor (opts) { + super(opts, 'BrotliCompress') + } +} - args[0] = createDebug.coerce(args[0]); +class BrotliDecompress extends Brotli { + constructor (opts) { + super(opts, 'BrotliDecompress') + } +} - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } +exports.Deflate = Deflate +exports.Inflate = Inflate +exports.Gzip = Gzip +exports.Gunzip = Gunzip +exports.DeflateRaw = DeflateRaw +exports.InflateRaw = InflateRaw +exports.Unzip = Unzip +/* istanbul ignore else */ +if (typeof realZlib.BrotliCompress === 'function') { + exports.BrotliCompress = BrotliCompress + exports.BrotliDecompress = BrotliDecompress +} else { + exports.BrotliCompress = exports.BrotliDecompress = class { + constructor () { + throw new Error('Brotli is not supported in this version of Node.js') + } + } +} - // Apply any `formatters` transformations - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return match; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - const val = args[index]; - match = formatter.call(self, val); - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); +/***/ }), - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); +/***/ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/index.js": +/*!*************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/index.js ***! + \*************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } +const optsArg = __webpack_require__(/*! ./lib/opts-arg.js */ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/opts-arg.js") +const pathArg = __webpack_require__(/*! ./lib/path-arg.js */ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/path-arg.js") - debug.namespace = namespace; - debug.enabled = createDebug.enabled(namespace); - debug.useColors = createDebug.useColors(); - debug.color = selectColor(namespace); - debug.destroy = destroy; - debug.extend = extend; - // Debug.formatArgs = formatArgs; - // debug.rawLog = rawLog; +const {mkdirpNative, mkdirpNativeSync} = __webpack_require__(/*! ./lib/mkdirp-native.js */ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/mkdirp-native.js") +const {mkdirpManual, mkdirpManualSync} = __webpack_require__(/*! ./lib/mkdirp-manual.js */ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/mkdirp-manual.js") +const {useNative, useNativeSync} = __webpack_require__(/*! ./lib/use-native.js */ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/use-native.js") - // env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - createDebug.instances.push(debug); +const mkdirp = (path, opts) => { + path = pathArg(path) + opts = optsArg(opts) + return useNative(opts) + ? mkdirpNative(path, opts) + : mkdirpManual(path, opts) +} - return debug; - } +const mkdirpSync = (path, opts) => { + path = pathArg(path) + opts = optsArg(opts) + return useNativeSync(opts) + ? mkdirpNativeSync(path, opts) + : mkdirpManualSync(path, opts) +} - function destroy() { - const index = createDebug.instances.indexOf(this); - if (index !== -1) { - createDebug.instances.splice(index, 1); - return true; - } - return false; - } +mkdirp.sync = mkdirpSync +mkdirp.native = (path, opts) => mkdirpNative(pathArg(path), optsArg(opts)) +mkdirp.manual = (path, opts) => mkdirpManual(pathArg(path), optsArg(opts)) +mkdirp.nativeSync = (path, opts) => mkdirpNativeSync(pathArg(path), optsArg(opts)) +mkdirp.manualSync = (path, opts) => mkdirpManualSync(pathArg(path), optsArg(opts)) - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } +module.exports = mkdirp - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.names = []; - createDebug.skips = []; +/***/ }), - let i; - const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - const len = split.length; +/***/ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/find-made.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/find-made.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - for (i = 0; i < len; i++) { - if (!split[i]) { - // ignore empty strings - continue; - } +const {dirname} = __webpack_require__(/*! path */ "path") - namespaces = split[i].replace(/\*/g, '.*?'); +const findMade = (opts, parent, path = undefined) => { + // we never want the 'made' return value to be a root directory + if (path === parent) + return Promise.resolve() - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } + return opts.statAsync(parent).then( + st => st.isDirectory() ? path : undefined, // will fail later + er => er.code === 'ENOENT' + ? findMade(opts, dirname(parent), parent) + : undefined + ) +} - for (i = 0; i < createDebug.instances.length; i++) { - const instance = createDebug.instances[i]; - instance.enabled = createDebug.enabled(instance.namespace); - } - } +const findMadeSync = (opts, parent, path = undefined) => { + if (path === parent) + return undefined - /** - * Disable debug output. - * - * @return {String} namespaces - * @api public - */ - function disable() { - const namespaces = [ - ...createDebug.names.map(toNamespace), - ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) - ].join(','); - createDebug.enable(''); - return namespaces; - } + try { + return opts.statSync(parent).isDirectory() ? path : undefined + } catch (er) { + return er.code === 'ENOENT' + ? findMadeSync(opts, dirname(parent), parent) + : undefined + } +} - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } +module.exports = {findMade, findMadeSync} - let i; - let len; - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } +/***/ }), - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } +/***/ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/mkdirp-manual.js": +/*!*************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/mkdirp-manual.js ***! + \*************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - return false; - } +const {dirname} = __webpack_require__(/*! path */ "path") - /** - * Convert regexp to namespace - * - * @param {RegExp} regxep - * @return {String} namespace - * @api private - */ - function toNamespace(regexp) { - return regexp.toString() - .substring(2, regexp.toString().length - 2) - .replace(/\.\*\?$/, '*'); - } +const mkdirpManual = (path, opts, made) => { + opts.recursive = false + const parent = dirname(path) + if (parent === path) { + return opts.mkdirAsync(path, opts).catch(er => { + // swallowed by recursive implementation on posix systems + // any other error is a failure + if (er.code !== 'EISDIR') + throw er + }) + } - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } + return opts.mkdirAsync(path, opts).then(() => made || path, er => { + if (er.code === 'ENOENT') + return mkdirpManual(parent, opts) + .then(made => mkdirpManual(path, opts, made)) + if (er.code !== 'EEXIST' && er.code !== 'EROFS') + throw er + return opts.statAsync(path).then(st => { + if (st.isDirectory()) + return made + else + throw er + }, () => { throw er }) + }) +} - createDebug.enable(createDebug.load()); +const mkdirpManualSync = (path, opts, made) => { + const parent = dirname(path) + opts.recursive = false - return createDebug; + if (parent === path) { + try { + return opts.mkdirSync(path, opts) + } catch (er) { + // swallowed by recursive implementation on posix systems + // any other error is a failure + if (er.code !== 'EISDIR') + throw er + else + return + } + } + + try { + opts.mkdirSync(path, opts) + return made || path + } catch (er) { + if (er.code === 'ENOENT') + return mkdirpManualSync(path, opts, mkdirpManualSync(parent, opts, made)) + if (er.code !== 'EEXIST' && er.code !== 'EROFS') + throw er + try { + if (!opts.statSync(path).isDirectory()) + throw er + } catch (_) { + throw er + } + } } -module.exports = setup; +module.exports = {mkdirpManual, mkdirpManualSync} /***/ }), -/***/ "./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/index.js": -/*!**************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/index.js ***! - \**************************************************************************************************************************************/ +/***/ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/mkdirp-native.js": +/*!*************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/mkdirp-native.js ***! + \*************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -/** - * Detect Electron renderer / nwjs process, which is node, but we should - * treat as a browser. - */ +const {dirname} = __webpack_require__(/*! path */ "path") +const {findMade, findMadeSync} = __webpack_require__(/*! ./find-made.js */ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/find-made.js") +const {mkdirpManual, mkdirpManualSync} = __webpack_require__(/*! ./mkdirp-manual.js */ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/mkdirp-manual.js") -if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = __webpack_require__(/*! ./browser.js */ "./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/browser.js"); -} else { - module.exports = __webpack_require__(/*! ./node.js */ "./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/node.js"); +const mkdirpNative = (path, opts) => { + opts.recursive = true + const parent = dirname(path) + if (parent === path) + return opts.mkdirAsync(path, opts) + + return findMade(opts, path).then(made => + opts.mkdirAsync(path, opts).then(() => made) + .catch(er => { + if (er.code === 'ENOENT') + return mkdirpManual(path, opts) + else + throw er + })) +} + +const mkdirpNativeSync = (path, opts) => { + opts.recursive = true + const parent = dirname(path) + if (parent === path) + return opts.mkdirSync(path, opts) + + const made = findMadeSync(opts, path) + try { + opts.mkdirSync(path, opts) + return made + } catch (er) { + if (er.code === 'ENOENT') + return mkdirpManualSync(path, opts) + else + throw er + } } +module.exports = {mkdirpNative, mkdirpNativeSync} + /***/ }), -/***/ "./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/node.js": -/*!*************************************************************************************************************************************!*\ - !*** ./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/node.js ***! - \*************************************************************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/opts-arg.js": +/*!********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/opts-arg.js ***! + \********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -/** - * Module dependencies. - */ +const { promisify } = __webpack_require__(/*! util */ "util") +const fs = __webpack_require__(/*! fs */ "fs") +const optsArg = opts => { + if (!opts) + opts = { mode: 0o777, fs } + else if (typeof opts === 'object') + opts = { mode: 0o777, fs, ...opts } + else if (typeof opts === 'number') + opts = { mode: opts, fs } + else if (typeof opts === 'string') + opts = { mode: parseInt(opts, 8), fs } + else + throw new TypeError('invalid options argument') -const tty = __webpack_require__(/*! tty */ "tty"); -const util = __webpack_require__(/*! util */ "util"); + opts.mkdir = opts.mkdir || opts.fs.mkdir || fs.mkdir + opts.mkdirAsync = promisify(opts.mkdir) + opts.stat = opts.stat || opts.fs.stat || fs.stat + opts.statAsync = promisify(opts.stat) + opts.statSync = opts.statSync || opts.fs.statSync || fs.statSync + opts.mkdirSync = opts.mkdirSync || opts.fs.mkdirSync || fs.mkdirSync + return opts +} +module.exports = optsArg + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/path-arg.js": +/*!********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/path-arg.js ***! + \********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const platform = process.env.__TESTING_MKDIRP_PLATFORM__ || process.platform +const { resolve, parse } = __webpack_require__(/*! path */ "path") +const pathArg = path => { + if (/\0/.test(path)) { + // simulate same failure that node raises + throw Object.assign( + new TypeError('path must be a string without null bytes'), + { + path, + code: 'ERR_INVALID_ARG_VALUE', + } + ) + } + + path = resolve(path) + if (platform === 'win32') { + const badWinChars = /[*|"<>?:]/ + const {root} = parse(path) + if (badWinChars.test(path.substr(root.length))) { + throw Object.assign(new Error('Illegal characters in path.'), { + path, + code: 'EINVAL', + }) + } + } + + return path +} +module.exports = pathArg + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/use-native.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/lib/use-native.js ***! + \**********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const fs = __webpack_require__(/*! fs */ "fs") + +const version = process.env.__TESTING_MKDIRP_NODE_VERSION__ || process.version +const versArr = version.replace(/^v/, '').split('.') +const hasNative = +versArr[0] > 10 || +versArr[0] === 10 && +versArr[1] >= 12 + +const useNative = !hasNative ? () => false : opts => opts.mkdir === fs.mkdir +const useNativeSync = !hasNative ? () => false : opts => opts.mkdirSync === fs.mkdirSync + +module.exports = {useNative, useNativeSync} + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ms-npm-2.1.2-ec0c1512ff-9.zip/node_modules/ms/index.js": +/*!*****************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ms-npm-2.1.2-ec0c1512ff-9.zip/node_modules/ms/index.js ***! + \*****************************************************************************************/ +/***/ ((module) => { /** - * This is the Node.js implementation of `debug()`. + * Helpers. */ -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; /** - * Colors. + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public */ -exports.colors = [6, 2, 3, 4, 5, 1]; +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; -try { - // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) - // eslint-disable-next-line import/no-extraneous-dependencies - const supportsColor = __webpack_require__(/*! supports-color */ "./.yarn/cache/supports-color-npm-7.1.0-df2ba1e338-899480ac85.zip/node_modules/supports-color/index.js"); +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } -} catch (error) { - // Swallow - we only care if `supports-color` is available; it doesn't have to be. +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } } /** - * Build up the default `inspectOpts` object from the environment variables. + * Short format for `ms`. * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ - -exports.inspectOpts = Object.keys(process.env).filter(key => { - return /^debug_/i.test(key); -}).reduce((obj, key) => { - // Camel-case - const prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - - // Coerce string value into JS value - let val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === 'null') { - val = null; - } else { - val = Number(val); - } - - obj[prop] = val; - return obj; -}, {}); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. + * @param {Number} ms + * @return {String} + * @api private */ -function useColors() { - return 'colors' in exports.inspectOpts ? - Boolean(exports.inspectOpts.colors) : - tty.isatty(process.stderr.fd); +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; } /** - * Adds ANSI color escape codes if enabled. + * Long format for `ms`. * - * @api public + * @param {Number} ms + * @return {String} + * @api private */ -function formatArgs(args) { - const {namespace: name, useColors} = this; - - if (useColors) { - const c = this.color; - const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); - const prefix = ` ${colorCode};1m${name} \u001B[0m`; - - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } -} - -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - return new Date().toISOString() + ' '; +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; } /** - * Invokes `util.format()` with the specified arguments and writes to stderr. + * Pluralization helper. */ -function log(...args) { - return process.stderr.write(util.format(...args) + '\n'); +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); } -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } -} -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ +/***/ }), -function load() { - return process.env.DEBUG; -} +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/comparator.js": +/*!**************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/comparator.js ***! + \**************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ +const ANY = Symbol('SemVer ANY') +// hoisted class for cyclic dependency +class Comparator { + static get ANY () { + return ANY + } -function init(debug) { - debug.inspectOpts = {}; + constructor (comp, options) { + options = parseOptions(options) - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } -module.exports = __webpack_require__(/*! ./common */ "./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/common.js")(exports); + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) -const {formatters} = module.exports; + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } -/** - * Map %o to `util.inspect()`, all on a single line. - */ + debug('comp', this) + } -formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .replace(/\s*\n\s*/g, ' '); -}; + parse (comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + const m = comp.match(r) -/** - * Map %O to `util.inspect()`, allowing multiple lines if needed. - */ + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`) + } -formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; + this.operator = m[1] !== undefined ? m[1] : '' + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } + } + toString () { + return this.value + } -/***/ }), + test (version) { + debug('Comparator.test', version, this.options.loose) -/***/ "./sources/Engine.ts": -/*!***************************!*\ - !*** ./sources/Engine.ts ***! - \***************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + if (this.semver === ANY || version === ANY) { + return true + } -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Engine": () => (/* binding */ Engine) -/* harmony export */ }); -/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/index.js"); -/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _config_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config.json */ "./config.json"); -/* harmony import */ var _folderUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./folderUtils */ "./sources/folderUtils.ts"); -/* harmony import */ var _corepackUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./corepackUtils */ "./sources/corepackUtils.ts"); -/* harmony import */ var _semverUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./semverUtils */ "./sources/semverUtils.ts"); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./types */ "./sources/types.ts"); + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) + } + + intersects (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false, + } + } + + if (this.operator === '') { + if (this.value === '') { + return true + } + return new Range(comp.value, options).test(this.value) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + return new Range(this.value, options).test(comp.semver) + } + const sameDirectionIncreasing = + (this.operator === '>=' || this.operator === '>') && + (comp.operator === '>=' || comp.operator === '>') + const sameDirectionDecreasing = + (this.operator === '<=' || this.operator === '<') && + (comp.operator === '<=' || comp.operator === '<') + const sameSemVer = this.semver.version === comp.semver.version + const differentDirectionsInclusive = + (this.operator === '>=' || this.operator === '<=') && + (comp.operator === '>=' || comp.operator === '<=') + const oppositeDirectionsLessThan = + cmp(this.semver, '<', comp.semver, options) && + (this.operator === '>=' || this.operator === '>') && + (comp.operator === '<=' || comp.operator === '<') + const oppositeDirectionsGreaterThan = + cmp(this.semver, '>', comp.semver, options) && + (this.operator === '<=' || this.operator === '<') && + (comp.operator === '>=' || comp.operator === '>') + return ( + sameDirectionIncreasing || + sameDirectionDecreasing || + (sameSemVer && differentDirectionsInclusive) || + oppositeDirectionsLessThan || + oppositeDirectionsGreaterThan + ) + } +} +module.exports = Comparator +const parseOptions = __webpack_require__(/*! ../internal/parse-options */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/parse-options.js") +const { re, t } = __webpack_require__(/*! ../internal/re */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/re.js") +const cmp = __webpack_require__(/*! ../functions/cmp */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/cmp.js") +const debug = __webpack_require__(/*! ../internal/debug */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/debug.js") +const SemVer = __webpack_require__(/*! ./semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const Range = __webpack_require__(/*! ./range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") +/***/ }), +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +// hoisted class for cyclic dependency +class Range { + constructor (range, options) { + options = parseOptions(options) -class Engine { - constructor(config = _config_json__WEBPACK_IMPORTED_MODULE_3__) { - this.config = config; - } - getPackageManagerFor(binaryName) { - for (const packageManager of _types__WEBPACK_IMPORTED_MODULE_7__.SupportedPackageManagerSet) { - for (const rangeDefinition of Object.values(this.config.definitions[packageManager].ranges)) { - const bins = Array.isArray(rangeDefinition.bin) - ? rangeDefinition.bin - : Object.keys(rangeDefinition.bin); - if (bins.includes(binaryName)) { - return packageManager; - } - } - } - return null; + if (range instanceof Range) { + if ( + range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease + ) { + return range + } else { + return new Range(range.raw, options) + } } - getBinariesFor(name) { - const binNames = new Set(); - for (const rangeDefinition of Object.values(this.config.definitions[name].ranges)) { - const bins = Array.isArray(rangeDefinition.bin) - ? rangeDefinition.bin - : Object.keys(rangeDefinition.bin); - for (const name of bins) { - binNames.add(name); - } - } - return binNames; + + if (range instanceof Comparator) { + // just put it in the set and return + this.raw = range.value + this.set = [[range]] + this.format() + return this } - async getDefaultDescriptors() { - const locators = []; - for (const name of _types__WEBPACK_IMPORTED_MODULE_7__.SupportedPackageManagerSet) - locators.push({ name, range: await this.getDefaultVersion(name) }); - return locators; + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First, split based on boolean or || + this.raw = range + this.set = range + .split('||') + // map the range to a 2d array of comparators + .map(r => this.parseRange(r.trim())) + // throw out any comparator lists that are empty + // this generally means that it was not a valid range, which is allowed + // in loose mode, but will still throw if the WHOLE range is invalid. + .filter(c => c.length) + + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${range}`) } - async getDefaultVersion(packageManager) { - const definition = this.config.definitions[packageManager]; - if (typeof definition === `undefined`) - throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`This package manager (${packageManager}) isn't supported by this corepack build`); - let lastKnownGood; - try { - lastKnownGood = JSON.parse(await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.readFile(this.getLastKnownGoodFile(), `utf8`)); - } - catch (_a) { - // Ignore errors; too bad + + // if we have any that are not the null set, throw out null sets. + if (this.set.length > 1) { + // keep the first one, in case they're all null sets + const first = this.set[0] + this.set = this.set.filter(c => !isNullSet(c[0])) + if (this.set.length === 0) { + this.set = [first] + } else if (this.set.length > 1) { + // if we have any that are *, then the range is just * + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c] + break + } } - if (typeof lastKnownGood !== `object` || lastKnownGood === null) - return definition.default; - if (!Object.prototype.hasOwnProperty.call(lastKnownGood, packageManager)) - return definition.default; - const override = lastKnownGood[packageManager]; - if (typeof override !== `string`) - return definition.default; - return override; + } } - async activatePackageManager(locator) { - const lastKnownGoodFile = this.getLastKnownGoodFile(); - let lastKnownGood; - try { - lastKnownGood = JSON.parse(await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.readFile(lastKnownGoodFile, `utf8`)); - } - catch (_a) { - // Ignore errors; too bad - } - if (typeof lastKnownGood !== `object` || lastKnownGood === null) - lastKnownGood = {}; - lastKnownGood[locator.name] = locator.reference; - await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.mkdir(path__WEBPACK_IMPORTED_MODULE_1___default().dirname(lastKnownGoodFile), { recursive: true }); - await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.writeFile(lastKnownGoodFile, `${JSON.stringify(lastKnownGood, null, 2)}\n`); - } - async ensurePackageManager(locator) { - const definition = this.config.definitions[locator.name]; - if (typeof definition === `undefined`) - throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`This package manager (${locator.name}) isn't supported by this corepack build`); - const ranges = Object.keys(definition.ranges).reverse(); - const range = ranges.find(range => _semverUtils__WEBPACK_IMPORTED_MODULE_6__.satisfiesWithPrereleases(locator.reference, range)); - if (typeof range === `undefined`) - throw new Error(`Assertion failed: Specified resolution (${locator.reference}) isn't supported by any of ${ranges.join(`, `)}`); - const installedLocation = await _corepackUtils__WEBPACK_IMPORTED_MODULE_5__.installVersion(_folderUtils__WEBPACK_IMPORTED_MODULE_4__.getInstallFolder(), locator, { - spec: definition.ranges[range], - }); - return { - location: installedLocation, - spec: definition.ranges[range], - }; - } - async resolveDescriptor(descriptor, { allowTags = false, useCache = true } = {}) { - const definition = this.config.definitions[descriptor.name]; - if (typeof definition === `undefined`) - throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`This package manager (${descriptor.name}) isn't supported by this corepack build`); - let finalDescriptor = descriptor; - if (descriptor.range.match(/^[a-z-]+$/)) { - if (!allowTags) - throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`Packages managers can't be referended via tags in this context`); - // We only resolve tags from the latest registry entry - const ranges = Object.keys(definition.ranges); - const tagRange = ranges[ranges.length - 1]; - const tags = await _corepackUtils__WEBPACK_IMPORTED_MODULE_5__.fetchAvailableTags(definition.ranges[tagRange].registry); - if (!Object.prototype.hasOwnProperty.call(tags, descriptor.range)) - throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`Tag not found (${descriptor.range})`); - finalDescriptor = { - name: descriptor.name, - range: tags[descriptor.range], - }; - } - // If a compatible version is already installed, no need to query one - // from the remote listings - const cachedVersion = await _corepackUtils__WEBPACK_IMPORTED_MODULE_5__.findInstalledVersion(_folderUtils__WEBPACK_IMPORTED_MODULE_4__.getInstallFolder(), finalDescriptor); - if (cachedVersion !== null && useCache) - return { name: finalDescriptor.name, reference: cachedVersion }; - const candidateRangeDefinitions = Object.keys(definition.ranges).filter(range => { - return _semverUtils__WEBPACK_IMPORTED_MODULE_6__.satisfiesWithPrereleases(finalDescriptor.range, range); - }); - const tagResolutions = await Promise.all(candidateRangeDefinitions.map(async (range) => { - return [range, await _corepackUtils__WEBPACK_IMPORTED_MODULE_5__.fetchAvailableVersions(definition.ranges[range].registry)]; - })); - // If a version is available under multiple strategies (for example if - // Yarn is published to both the v1 package and git), we only care - // about the latest one - const resolutionMap = new Map(); - for (const [range, resolutions] of tagResolutions) - for (const entry of resolutions) - resolutionMap.set(entry, range); - const candidates = [...resolutionMap.keys()]; - const maxSatisfying = semver__WEBPACK_IMPORTED_MODULE_2___default().maxSatisfying(candidates, finalDescriptor.range); - if (maxSatisfying === null) - return null; - return { name: finalDescriptor.name, reference: maxSatisfying }; - } - getLastKnownGoodFile() { - return path__WEBPACK_IMPORTED_MODULE_1___default().join(_folderUtils__WEBPACK_IMPORTED_MODULE_4__.getInstallFolder(), `lastKnownGood.json`); - } -} + this.format() + } -/***/ }), - -/***/ "./sources/commands/Disable.ts": -/*!*************************************!*\ - !*** ./sources/commands/Disable.ts ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "DisableCommand": () => (/* binding */ DisableCommand) -/* harmony export */ }); -/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var which__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! which */ "./.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip/node_modules/which/which.js"); -/* harmony import */ var which__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(which__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../types */ "./sources/types.ts"); + format () { + this.range = this.set + .map((comps) => { + return comps.join(' ').trim() + }) + .join('||') + .trim() + return this.range + } + toString () { + return this.range + } + parseRange (range) { + range = range.trim() + // memoize range parsing for performance. + // this is a very hot path, and fully deterministic. + const memoOpts = Object.keys(this.options).join(',') + const memoKey = `parseRange:${memoOpts}:${range}` + const cached = cache.get(memoKey) + if (cached) { + return cached + } + const loose = this.options.loose + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)) + debug('hyphen replace', range) + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range) -class DisableCommand extends clipanion__WEBPACK_IMPORTED_MODULE_4__.Command { - constructor() { - super(...arguments); - this.installDirectory = clipanion__WEBPACK_IMPORTED_MODULE_4__.Option.String(`--install-directory`, { - description: `Where the shims are located`, - }); - this.names = clipanion__WEBPACK_IMPORTED_MODULE_4__.Option.Rest(); - } - async execute() { - let installDirectory = this.installDirectory; - // Node always call realpath on the module it executes, so we already - // lost track of how the binary got called. To find it back, we need to - // iterate over the PATH variable. - if (typeof installDirectory === `undefined`) - installDirectory = path__WEBPACK_IMPORTED_MODULE_1___default().dirname(await which__WEBPACK_IMPORTED_MODULE_2___default()(`corepack`)); - const names = this.names.length === 0 - ? _types__WEBPACK_IMPORTED_MODULE_3__.SupportedPackageManagerSetWithoutNpm - : this.names; - for (const name of new Set(names)) { - if (!(0,_types__WEBPACK_IMPORTED_MODULE_3__.isSupportedPackageManager)(name)) - throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Invalid package manager name '${name}'`); - for (const binName of this.context.engine.getBinariesFor(name)) { - if (process.platform === `win32`) { - await this.removeWin32Link(installDirectory, binName); - } - else { - await this.removePosixLink(installDirectory, binName); - } - } - } - } - async removePosixLink(installDirectory, binName) { - const file = path__WEBPACK_IMPORTED_MODULE_1___default().join(installDirectory, binName); - try { - await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.unlink(file); - } - catch (err) { - if (err.code !== `ENOENT`) { - throw err; - } - } - } - async removeWin32Link(installDirectory, binName) { - for (const ext of [``, `.ps1`, `.cmd`]) { - const file = path__WEBPACK_IMPORTED_MODULE_1___default().join(installDirectory, `${binName}${ext}`); - try { - await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.unlink(file); - } - catch (err) { - if (err.code !== `ENOENT`) { - throw err; - } - } - } - } -} -DisableCommand.paths = [ - [`disable`], -]; -DisableCommand.usage = clipanion__WEBPACK_IMPORTED_MODULE_4__.Command.Usage({ - description: `Remove the Corepack shims from the install directory`, - details: ` - When run, this command will remove the shims for the specified package managers from the install directory, or all shims if no parameters are passed. + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace) - By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--bin-folder\` flag. - `, - examples: [[ - `Disable all shims, removing them if they're next to the \`coreshim\` binary`, - `$0 disable`, - ], [ - `Disable all shims, removing them from the specified directory`, - `$0 disable --install-directory /path/to/bin`, - ], [ - `Disable the Yarn shim only`, - `$0 disable yarn`, - ]], -}); + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace) + // normalize spaces + range = range.split(/\s+/).join(' ') -/***/ }), + // At this point, the range is completely trimmed and + // ready to be split into comparators. -/***/ "./sources/commands/Enable.ts": -/*!************************************!*\ - !*** ./sources/commands/Enable.ts ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + let rangeList = range + .split(' ') + .map(comp => parseComparator(comp, this.options)) + .join(' ') + .split(/\s+/) + // >=0.0.0 is equivalent to * + .map(comp => replaceGTE0(comp, this.options)) -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EnableCommand": () => (/* binding */ EnableCommand) -/* harmony export */ }); -/* harmony import */ var _zkochan_cmd_shim__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @zkochan/cmd-shim */ "./.yarn/cache/@zkochan-cmd-shim-npm-5.0.0-9e90407ba0-ace99c7c36.zip/node_modules/@zkochan/cmd-shim/index.js"); -/* harmony import */ var _zkochan_cmd_shim__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_zkochan_cmd_shim__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ "fs"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ "path"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var which__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! which */ "./.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip/node_modules/which/which.js"); -/* harmony import */ var which__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(which__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../types */ "./sources/types.ts"); + if (loose) { + // in loose mode, throw out any that are not valid comparators + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options) + return !!comp.match(re[t.COMPARATORLOOSE]) + }) + } + debug('range list', rangeList) + // if any comparators are the null set, then replace with JUST null set + // if more than one comparator, remove any * comparators + // also, don't include the same comparator more than once + const rangeMap = new Map() + const comparators = rangeList.map(comp => new Comparator(comp, this.options)) + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp] + } + rangeMap.set(comp.value, comp) + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete('') + } + const result = [...rangeMap.values()] + cache.set(memoKey, result) + return result + } + intersects (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + return this.set.some((thisComparators) => { + return ( + isSatisfiable(thisComparators, options) && + range.set.some((rangeComparators) => { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) + } + // if ANY of the sets match ALL of its comparators, then pass + test (version) { + if (!version) { + return false + } -class EnableCommand extends clipanion__WEBPACK_IMPORTED_MODULE_5__.Command { - constructor() { - super(...arguments); - this.installDirectory = clipanion__WEBPACK_IMPORTED_MODULE_5__.Option.String(`--install-directory`, { - description: `Where the shims are to be installed`, - }); - this.names = clipanion__WEBPACK_IMPORTED_MODULE_5__.Option.Rest(); + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } } - async execute() { - let installDirectory = this.installDirectory; - // Node always call realpath on the module it executes, so we already - // lost track of how the binary got called. To find it back, we need to - // iterate over the PATH variable. - if (typeof installDirectory === `undefined`) - installDirectory = path__WEBPACK_IMPORTED_MODULE_2___default().dirname(await which__WEBPACK_IMPORTED_MODULE_3___default()(`corepack`)); - // Otherwise the relative symlink we'll compute will be incorrect, if the - // install directory is within a symlink - installDirectory = fs__WEBPACK_IMPORTED_MODULE_1___default().realpathSync(installDirectory); - // We use `eval` so that Webpack doesn't statically transform it. - const manifestPath = eval(`require`).resolve(`corepack/package.json`); - const distFolder = path__WEBPACK_IMPORTED_MODULE_2___default().join(path__WEBPACK_IMPORTED_MODULE_2___default().dirname(manifestPath), `dist`); - if (!fs__WEBPACK_IMPORTED_MODULE_1___default().existsSync(distFolder)) - throw new Error(`Assertion failed: The stub folder doesn't exist`); - const names = this.names.length === 0 - ? _types__WEBPACK_IMPORTED_MODULE_4__.SupportedPackageManagerSetWithoutNpm - : this.names; - for (const name of new Set(names)) { - if (!(0,_types__WEBPACK_IMPORTED_MODULE_4__.isSupportedPackageManager)(name)) - throw new clipanion__WEBPACK_IMPORTED_MODULE_5__.UsageError(`Invalid package manager name '${name}'`); - for (const binName of this.context.engine.getBinariesFor(name)) { - if (process.platform === `win32`) { - await this.generateWin32Link(installDirectory, distFolder, binName); - } - else { - await this.generatePosixLink(installDirectory, distFolder, binName); - } - } - } - } - async generatePosixLink(installDirectory, distFolder, binName) { - const file = path__WEBPACK_IMPORTED_MODULE_2___default().join(installDirectory, binName); - const symlink = path__WEBPACK_IMPORTED_MODULE_2___default().relative(installDirectory, path__WEBPACK_IMPORTED_MODULE_2___default().join(distFolder, `${binName}.js`)); - if (fs__WEBPACK_IMPORTED_MODULE_1___default().existsSync(file)) { - const currentSymlink = await fs__WEBPACK_IMPORTED_MODULE_1___default().promises.readlink(file); - if (currentSymlink !== symlink) { - await fs__WEBPACK_IMPORTED_MODULE_1___default().promises.unlink(file); - } - else { - return; - } - } - await fs__WEBPACK_IMPORTED_MODULE_1___default().promises.symlink(symlink, file); - } - async generateWin32Link(installDirectory, distFolder, binName) { - const file = path__WEBPACK_IMPORTED_MODULE_2___default().join(installDirectory, binName); - await _zkochan_cmd_shim__WEBPACK_IMPORTED_MODULE_0___default()(path__WEBPACK_IMPORTED_MODULE_2___default().join(distFolder, `${binName}.js`), file, { - createCmdFile: true, - }); + + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } } + return false + } } -EnableCommand.paths = [ - [`enable`], -]; -EnableCommand.usage = clipanion__WEBPACK_IMPORTED_MODULE_5__.Command.Usage({ - description: `Add the Corepack shims to the install directories`, - details: ` - When run, this commmand will check whether the shims for the specified package managers can be found with the correct values inside the install directory. If not, or if they don't exist, they will be created. - - By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--bin-folder\` flag. - `, - examples: [[ - `Enable all shims, putting them next to the \`corepath\` binary`, - `$0 enable`, - ], [ - `Enable all shims, putting them in the specified directory`, - `$0 enable --install-directory /path/to/folder`, - ], [ - `Enable the Yarn shim only`, - `$0 enable yarn`, - ]], -}); +module.exports = Range +const LRU = __webpack_require__(/*! lru-cache */ "../../../.yarn/berry/cache/lru-cache-npm-6.0.0-b4c8668fe1-9.zip/node_modules/lru-cache/index.js") +const cache = new LRU({ max: 1000 }) -/***/ }), +const parseOptions = __webpack_require__(/*! ../internal/parse-options */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/parse-options.js") +const Comparator = __webpack_require__(/*! ./comparator */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/comparator.js") +const debug = __webpack_require__(/*! ../internal/debug */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/debug.js") +const SemVer = __webpack_require__(/*! ./semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const { + re, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace, +} = __webpack_require__(/*! ../internal/re */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/re.js") -/***/ "./sources/commands/Hydrate.ts": -/*!*************************************!*\ - !*** ./sources/commands/Hydrate.ts ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +const isNullSet = c => c.value === '<0.0.0-0' +const isAny = c => c.value === '' -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "HydrateCommand": () => (/* binding */ HydrateCommand) -/* harmony export */ }); -/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ "path"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _folderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../folderUtils */ "./sources/folderUtils.ts"); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../types */ "./sources/types.ts"); +// take a set of comparators and determine whether there +// exists a version which can satisfy it +const isSatisfiable = (comparators, options) => { + let result = true + const remainingComparators = comparators.slice() + let testComparator = remainingComparators.pop() + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options) + }) + testComparator = remainingComparators.pop() + } + return result +} -class HydrateCommand extends clipanion__WEBPACK_IMPORTED_MODULE_3__.Command { - constructor() { - super(...arguments); - this.activate = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Boolean(`--activate`, false, { - description: `If true, this release will become the default one for this package manager`, - }); - this.fileName = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.String(); - } - async execute() { - const installFolder = _folderUtils__WEBPACK_IMPORTED_MODULE_1__.getInstallFolder(); - const fileName = path__WEBPACK_IMPORTED_MODULE_0___default().resolve(this.context.cwd, this.fileName); - const archiveEntries = new Map(); - let hasShortEntries = false; - const { default: tar } = await Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! tar */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/index.js", 19)); - await tar.t({ file: fileName, onentry: entry => { - const segments = entry.header.path.split(/\//g); - if (segments.length < 3) { - hasShortEntries = true; - } - else { - let references = archiveEntries.get(segments[0]); - if (typeof references === `undefined`) - archiveEntries.set(segments[0], references = new Set()); - references.add(segments[1]); - } - } }); - if (hasShortEntries || archiveEntries.size < 1) - throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`Invalid archive format; did it get generated by 'corepack prepare'?`); - for (const [name, references] of archiveEntries) { - for (const reference of references) { - if (!(0,_types__WEBPACK_IMPORTED_MODULE_2__.isSupportedPackageManager)(name)) - throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`Unsupported package manager '${name}'`); - if (this.activate) - this.context.stdout.write(`Hydrating ${name}@${reference} for immediate activation...\n`); - else - this.context.stdout.write(`Hydrating ${name}@${reference}...\n`); - await tar.x({ file: fileName, cwd: installFolder }, [`${name}/${reference}`]); - if (this.activate) { - await this.context.engine.activatePackageManager({ name, reference }); - } - } - } - this.context.stdout.write(`All done!\n`); - } +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +const parseComparator = (comp, options) => { + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp } -HydrateCommand.paths = [ - [`hydrate`], -]; -HydrateCommand.usage = clipanion__WEBPACK_IMPORTED_MODULE_3__.Command.Usage({ - description: `Import a package manager into the cache`, - details: ` - This command unpacks a package manager archive into the cache. The archive must have been generated by the \`corepack prepare\` command - no other will work. - `, - examples: [[ - `Import a package manager in the cache`, - `$0 hydrate corepack.tgz`, - ]], -}); +const isX = id => !id || id.toLowerCase() === 'x' || id === '*' -/***/ }), +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 +const replaceTildes = (comp, options) => + comp.trim().split(/\s+/).map((c) => { + return replaceTilde(c, options) + }).join(' ') -/***/ "./sources/commands/Prepare.ts": -/*!*************************************!*\ - !*** ./sources/commands/Prepare.ts ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr) + let ret -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "PrepareCommand": () => (/* binding */ PrepareCommand) -/* harmony export */ }); -/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ "path"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _folderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../folderUtils */ "./sources/folderUtils.ts"); -/* harmony import */ var _specUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../specUtils */ "./sources/specUtils.ts"); + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0` + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0-0 + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0` + } else if (pr) { + debug('replaceTilde pr', pr) + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } else { + // ~1.2.3 == >=1.2.3 <1.3.0-0 + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0` + } + debug('tilde return', ret) + return ret + }) +} +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 +// ^1.2.3 --> >=1.2.3 <2.0.0-0 +// ^1.2.0 --> >=1.2.0 <2.0.0-0 +const replaceCarets = (comp, options) => + comp.trim().split(/\s+/).map((c) => { + return replaceCaret(c, options) + }).join(' ') +const replaceCaret = (comp, options) => { + debug('caret', comp, options) + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + const z = options.includePrerelease ? '-0' : '' + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr) + let ret -class PrepareCommand extends clipanion__WEBPACK_IMPORTED_MODULE_3__.Command { - constructor() { - super(...arguments); - this.activate = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Boolean(`--activate`, false, { - description: `If true, this release will become the default one for this package manager`, - }); - this.all = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Boolean(`--all`, false, { - description: `If true, all available default package managers will be installed`, - }); - this.json = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Boolean(`--json`, false, { - description: `If true, the output will be the path of the generated tarball`, - }); - this.output = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.String(`-o,--output`, { - description: `If true, the installed package managers will also be stored in a tarball`, - tolerateBoolean: true, - }); - this.specs = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Rest(); - } - async execute() { - if (this.all && this.specs.length > 0) - throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`The --all option cannot be used along with an explicit package manager specification`); - const specs = this.all - ? await this.context.engine.getDefaultDescriptors() - : this.specs; - const installLocations = []; - for (const request of specs) { - let spec; - if (typeof request === `undefined`) { - const lookup = await _specUtils__WEBPACK_IMPORTED_MODULE_2__.loadSpec(this.context.cwd); - switch (lookup.type) { - case `NoProject`: - throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`Couldn't find a project in the local directory - please explicit the package manager to pack, or run this command from a valid project`); - case `NoSpec`: - throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`The local project doesn't feature a 'packageManager' field - please explicit the package manager to pack, or update the manifest to reference it`); - default: { - spec = lookup.spec; - } - } - } - else { - spec = typeof request === `string` - ? _specUtils__WEBPACK_IMPORTED_MODULE_2__.parseSpec(request, `CLI arguments`) - : request; - } - const resolved = await this.context.engine.resolveDescriptor(spec); - if (resolved === null) - throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`Failed to successfully resolve '${spec.range}' to a valid ${spec.name} release`); - if (!this.json) { - if (this.activate) { - this.context.stdout.write(`Preparing ${spec.name}@${spec.range} for immediate activation...\n`); - } - else { - this.context.stdout.write(`Preparing ${spec.name}@${spec.range}...\n`); - } - } - const installSpec = await this.context.engine.ensurePackageManager(resolved); - installLocations.push(installSpec.location); - if (this.activate) { - await this.context.engine.activatePackageManager(resolved); - } + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0` + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` } - if (this.output) { - const outputName = typeof this.output === `string` - ? this.output - : `corepack.tgz`; - const baseInstallFolder = _folderUtils__WEBPACK_IMPORTED_MODULE_1__.getInstallFolder(); - const outputPath = path__WEBPACK_IMPORTED_MODULE_0___default().resolve(this.context.cwd, outputName); - if (!this.json) - this.context.stdout.write(`Packing the selected tools in ${path__WEBPACK_IMPORTED_MODULE_0___default().basename(outputPath)}...\n`); - const { default: tar } = await Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! tar */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/index.js", 19)); - await tar.c({ gzip: true, cwd: baseInstallFolder, file: path__WEBPACK_IMPORTED_MODULE_0___default().resolve(outputPath) }, installLocations.map(location => { - return path__WEBPACK_IMPORTED_MODULE_0___default().relative(baseInstallFolder, location); - })); - if (this.json) { - this.context.stdout.write(`${JSON.stringify(outputPath)}\n`); - } - else { - this.context.stdout.write(`All done!\n`); - } + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${+M + 1}.0.0-0` + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p + }${z} <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p + }${z} <${M}.${+m + 1}.0-0` } + } else { + ret = `>=${M}.${m}.${p + } <${+M + 1}.0.0-0` + } } + + debug('caret return', ret) + return ret + }) } -PrepareCommand.paths = [ - [`prepare`], -]; -PrepareCommand.usage = clipanion__WEBPACK_IMPORTED_MODULE_3__.Command.Usage({ - description: `Generate a package manager archive`, - details: ` - This command makes sure that the specified package managers are installed in the local cache. Calling this command explicitly unless you operate in an environment without network access (in which case you'd have to call \`prepare\` while building your image, to make sure all tools are available for later use). - When the \`-o,--output\` flag is set, Corepack will also compress the resulting package manager into a format suitable for \`corepack hydrate\`, and will store it at the specified location on the disk. - `, - examples: [[ - `Prepare the package manager from the active project`, - `$0 prepare`, - ], [ - `Prepare a specific Yarn version`, - `$0 prepare yarn@2.2.2`, - ], [ - `Generate an archive for a specific Yarn version`, - `$0 prepare yarn@2.2.2 -o`, - ], [ - `Generate a named archive`, - `$0 prepare yarn@2.2.2 --output=yarn.tgz`, - ]], -}); +const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options) + return comp.split(/\s+/).map((c) => { + return replaceXRange(c, options) + }).join(' ') +} +const replaceXRange = (comp, options) => { + comp = comp.trim() + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + const xM = isX(M) + const xm = xM || isX(m) + const xp = xm || isX(p) + const anyX = xp -/***/ }), + if (gtlt === '=' && anyX) { + gtlt = '' + } -/***/ "./sources/corepackUtils.ts": -/*!**********************************!*\ - !*** ./sources/corepackUtils.ts ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "fetchAvailableTags": () => (/* binding */ fetchAvailableTags), -/* harmony export */ "fetchAvailableVersions": () => (/* binding */ fetchAvailableVersions), -/* harmony export */ "findInstalledVersion": () => (/* binding */ findInstalledVersion), -/* harmony export */ "installVersion": () => (/* binding */ installVersion), -/* harmony export */ "runVersion": () => (/* binding */ runVersion) -/* harmony export */ }); -/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! child_process */ "child_process"); -/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ "fs"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ "path"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/index.js"); -/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _debugUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./debugUtils */ "./sources/debugUtils.ts"); -/* harmony import */ var _folderUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./folderUtils */ "./sources/folderUtils.ts"); -/* harmony import */ var _fsUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fsUtils */ "./sources/fsUtils.ts"); -/* harmony import */ var _httpUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./httpUtils */ "./sources/httpUtils.ts"); + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + if (gtlt === '<') { + pr = '-0' + } + ret = `${gtlt + M}.${m}.${p}${pr}` + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0` + } else if (xp) { + ret = `>=${M}.${m}.0${pr + } <${M}.${+m + 1}.0-0` + } + debug('xRange return', ret) + return ret + }) +} +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +const replaceStars = (comp, options) => { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp.trim().replace(re[t.STAR], '') +} +const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options) + return comp.trim() + .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '') +} -async function fetchAvailableTags(spec) { - switch (spec.type) { - case `npm`: { - const data = await _httpUtils__WEBPACK_IMPORTED_MODULE_7__.fetchAsJson(`https://registry.npmjs.org/${spec.package}`, { headers: { [`Accept`]: `application/vnd.npm.install-v1+json` } }); - return data[`dist-tags`]; - } - case `url`: { - const data = await _httpUtils__WEBPACK_IMPORTED_MODULE_7__.fetchAsJson(spec.url); - return data[spec.fields.tags]; - } - default: { - throw new Error(`Unsupported specification ${JSON.stringify(spec)}`); - } - } +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0-0 +const hyphenReplace = incPr => ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr, tb) => { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}` + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}` + } else if (fpr) { + from = `>=${from}` + } else { + from = `>=${from}${incPr ? '-0' : ''}` + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0` + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0` + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}` + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0` + } else { + to = `<=${to}` + } + + return (`${from} ${to}`).trim() } -async function fetchAvailableVersions(spec) { - switch (spec.type) { - case `npm`: { - const data = await _httpUtils__WEBPACK_IMPORTED_MODULE_7__.fetchAsJson(`https://registry.npmjs.org/${spec.package}`, { headers: { [`Accept`]: `application/vnd.npm.install-v1+json` } }); - return Object.keys(data.versions); - } - case `url`: { - const data = await _httpUtils__WEBPACK_IMPORTED_MODULE_7__.fetchAsJson(spec.url); - const field = data[spec.fields.versions]; - return Array.isArray(field) ? field : Object.keys(field); - } - default: { - throw new Error(`Unsupported specification ${JSON.stringify(spec)}`); + +const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (let i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === Comparator.ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true } + } } -} -async function findInstalledVersion(installTarget, descriptor) { - const installFolder = path__WEBPACK_IMPORTED_MODULE_2___default().join(installTarget, descriptor.name); - let folderContent; - try { - folderContent = await fs__WEBPACK_IMPORTED_MODULE_1___default().promises.readdir(installFolder); - } - catch (error) { - if (error.code === `ENOENT`) { - folderContent = []; - } - else { - throw error; - } - } - const candidateVersions = []; - for (const entry of folderContent) { - // Some dot-folders tend to pop inside directories, especially on OSX - if (entry.startsWith(`.`)) - continue; - candidateVersions.push(entry); - } - const bestMatch = semver__WEBPACK_IMPORTED_MODULE_3___default().maxSatisfying(candidateVersions, descriptor.range); - if (bestMatch === null) - return null; - return bestMatch; -} -async function installVersion(installTarget, locator, { spec }) { - const { default: tar } = await Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! tar */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/index.js", 19)); - const installFolder = path__WEBPACK_IMPORTED_MODULE_2___default().join(installTarget, locator.name, locator.reference); - if (fs__WEBPACK_IMPORTED_MODULE_1___default().existsSync(installFolder)) { - _debugUtils__WEBPACK_IMPORTED_MODULE_4__.log(`Reusing ${locator.name}@${locator.reference}`); - return installFolder; - } - const url = spec.url.replace(`{}`, locator.reference); - _debugUtils__WEBPACK_IMPORTED_MODULE_4__.log(`Installing ${locator.name}@${locator.reference} from ${url}`); - return await _fsUtils__WEBPACK_IMPORTED_MODULE_6__.mutex(installFolder, async () => { - // Creating a temporary folder inside the install folder means that we - // are sure it'll be in the same drive as the destination, so we can - // just move it there atomically once we are done - const tmpFolder = _folderUtils__WEBPACK_IMPORTED_MODULE_5__.getTemporaryFolder(installTarget); - const stream = await _httpUtils__WEBPACK_IMPORTED_MODULE_7__.fetchUrlStream(url); - const parsedUrl = new URL(url); - const ext = path__WEBPACK_IMPORTED_MODULE_2___default().posix.extname(parsedUrl.pathname); - let outputFile = null; - let sendTo; - if (ext === `.tgz`) { - sendTo = tar.x({ strip: 1, cwd: tmpFolder }); - } - else if (ext === `.js`) { - outputFile = path__WEBPACK_IMPORTED_MODULE_2___default().join(tmpFolder, path__WEBPACK_IMPORTED_MODULE_2___default().posix.basename(parsedUrl.pathname)); - sendTo = fs__WEBPACK_IMPORTED_MODULE_1___default().createWriteStream(outputFile); - } - stream.pipe(sendTo); - await new Promise(resolve => { - sendTo.on(`finish`, resolve); - }); - await fs__WEBPACK_IMPORTED_MODULE_1___default().promises.mkdir(path__WEBPACK_IMPORTED_MODULE_2___default().dirname(installFolder), { recursive: true }); - await fs__WEBPACK_IMPORTED_MODULE_1___default().promises.rename(tmpFolder, installFolder); - _debugUtils__WEBPACK_IMPORTED_MODULE_4__.log(`Install finished`); - return installFolder; - }); -} -async function runVersion(installSpec, locator, binName, args, context) { - let binPath = null; - if (Array.isArray(installSpec.spec.bin)) { - if (installSpec.spec.bin.some(bin => bin === binName)) { - const parsedUrl = new URL(installSpec.spec.url); - const ext = path__WEBPACK_IMPORTED_MODULE_2___default().posix.extname(parsedUrl.pathname); - if (ext === `.js`) { - binPath = path__WEBPACK_IMPORTED_MODULE_2___default().join(installSpec.location, path__WEBPACK_IMPORTED_MODULE_2___default().posix.basename(parsedUrl.pathname)); - } - } - } - else { - for (const [name, dest] of Object.entries(installSpec.spec.bin)) { - if (name === binName) { - binPath = path__WEBPACK_IMPORTED_MODULE_2___default().join(installSpec.location, dest); - break; - } - } - } - if (!binPath) - throw new Error(`Assertion failed: Unable to locate path for bin '${binName}'`); - return new Promise((resolve, reject) => { - process.on(`SIGINT`, () => { - // We don't want to exit the process before the child, so we just - // ignore SIGINT and wait for the regular exit to happen (the child - // will receive SIGINT too since it's part of the same process grp) - }); - const stdio = [`pipe`, `pipe`, `pipe`]; - if (context.stdin === process.stdin) - stdio[0] = `inherit`; - if (context.stdout === process.stdout) - stdio[1] = `inherit`; - if (context.stderr === process.stderr) - stdio[2] = `inherit`; - const v8CompileCache = typeof require !== `undefined` - ? eval(`require`).resolve(`./vcc.js`) - : eval(`require`).resolve(`corepack/dist/vcc.js`); - const child = (0,child_process__WEBPACK_IMPORTED_MODULE_0__.spawn)(process.execPath, [`--require`, v8CompileCache, binPath, ...args], { - cwd: context.cwd, - stdio, - env: Object.assign(Object.assign({}, process.env), { COREPACK_ROOT: path__WEBPACK_IMPORTED_MODULE_2___default().dirname(eval(`__dirname`)) }), - }); - activeChildren.add(child); - if (activeChildren.size === 1) { - process.on(`SIGINT`, sigintHandler); - process.on(`SIGTERM`, sigtermHandler); - } - if (context.stdin !== process.stdin) - context.stdin.pipe(child.stdin); - if (context.stdout !== process.stdout) - child.stdout.pipe(context.stdout); - if (context.stderr !== process.stderr) - child.stderr.pipe(context.stderr); - child.on(`error`, error => { - activeChildren.delete(child); - if (activeChildren.size === 0) { - process.off(`SIGINT`, sigintHandler); - process.off(`SIGTERM`, sigtermHandler); - } - reject(error); - }); - child.on(`exit`, exitCode => { - activeChildren.delete(child); - if (activeChildren.size === 0) { - process.off(`SIGINT`, sigintHandler); - process.off(`SIGTERM`, sigtermHandler); - } - resolve(exitCode !== null ? exitCode : 1); - }); - }); -} -const activeChildren = new Set(); -function sigintHandler() { - // We don't want SIGINT to kill our process; we want it to kill the - // innermost process, whose end will cause our own to exit. -} -function sigtermHandler() { - for (const child of activeChildren) { - child.kill(); - } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true } /***/ }), -/***/ "./sources/debugUtils.ts": -/*!*******************************!*\ - !*** ./sources/debugUtils.ts ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js ***! + \**********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "log": () => (/* binding */ log) -/* harmony export */ }); -/* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "./.yarn/__virtual__/debug-virtual-d208043b83/0/cache/debug-npm-4.1.1-540248b3aa-1e681f5cce.zip/node_modules/debug/src/index.js"); -/* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__); +const debug = __webpack_require__(/*! ../internal/debug */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/debug.js") +const { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__(/*! ../internal/constants */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/constants.js") +const { re, t } = __webpack_require__(/*! ../internal/re */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/re.js") -const log = debug__WEBPACK_IMPORTED_MODULE_0___default()(`corepack`); +const parseOptions = __webpack_require__(/*! ../internal/parse-options */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/parse-options.js") +const { compareIdentifiers } = __webpack_require__(/*! ../internal/identifiers */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/identifiers.js") +class SemVer { + constructor (version, options) { + options = parseOptions(options) + if (version instanceof SemVer) { + if (version.loose === !!options.loose && + version.includePrerelease === !!options.includePrerelease) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid Version: ${version}`) + } -/***/ }), + if (version.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ) + } -/***/ "./sources/folderUtils.ts": -/*!********************************!*\ - !*** ./sources/folderUtils.ts ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + this.includePrerelease = !!options.includePrerelease -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "getInstallFolder": () => (/* binding */ getInstallFolder), -/* harmony export */ "getTemporaryFolder": () => (/* binding */ getTemporaryFolder) -/* harmony export */ }); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! os */ "os"); -/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ "path"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) + + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } + this.raw = version + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] -function getInstallFolder() { - var _a; - return (_a = process.env.COREPACK_HOME) !== null && _a !== void 0 ? _a : (0,path__WEBPACK_IMPORTED_MODULE_2__.join)((0,os__WEBPACK_IMPORTED_MODULE_1__.homedir)(), `.node/corepack`); -} -function getTemporaryFolder(target = (0,os__WEBPACK_IMPORTED_MODULE_1__.tmpdir)()) { - (0,fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync)(target, { recursive: true }); - while (true) { - const rnd = Math.random() * 0x100000000; - const hex = rnd.toString(16).padStart(8, `0`); - const path = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(target, `corepack-${process.pid}-${hex}`); - try { - (0,fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync)(path); - return path; - } - catch (error) { - if (error.code === `EEXIST`) { - continue; - } - else { - throw error; - } + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } } + return id + }) } -} + this.build = m[5] ? m[5].split('.') : [] + this.format() + } -/***/ }), + format () { + this.version = `${this.major}.${this.minor}.${this.patch}` + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}` + } + return this.version + } -/***/ "./sources/fsUtils.ts": -/*!****************************!*\ - !*** ./sources/fsUtils.ts ***! - \****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + toString () { + return this.version + } -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "mutex": () => (/* binding */ mutex) -/* harmony export */ }); -async function mutex(p, cb) { - return await cb(); -} + compare (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer(other, this.options) + } + if (other.version === this.version) { + return 0 + } -/***/ }), + return this.compareMain(other) || this.comparePre(other) + } -/***/ "./sources/httpUtils.ts": -/*!******************************!*\ - !*** ./sources/httpUtils.ts ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + compareMain (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "fetchUrlStream": () => (/* binding */ fetchUrlStream), -/* harmony export */ "fetchAsBuffer": () => (/* binding */ fetchAsBuffer), -/* harmony export */ "fetchAsJson": () => (/* binding */ fetchAsJson) -/* harmony export */ }); -/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js"); + return ( + compareIdentifiers(this.major, other.major) || + compareIdentifiers(this.minor, other.minor) || + compareIdentifiers(this.patch, other.patch) + ) + } -async function fetchUrlStream(url, options = {}) { - if (process.env.COREPACK_ENABLE_NETWORK === `0`) - throw new clipanion__WEBPACK_IMPORTED_MODULE_0__.UsageError(`Network access disabled by the environment; can't reach ${url}`); - const { default: https } = await Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! https */ "https", 23)); - return new Promise((resolve, reject) => { - const request = https.get(url, options, response => { - var _a; - const statusCode = (_a = response.statusCode) !== null && _a !== void 0 ? _a : 500; - if (!(statusCode >= 200 && statusCode < 300)) - return reject(new Error(`Server answered with HTTP ${statusCode}`)); - return resolve(response); - }); - request.on(`error`, err => { - reject(new Error(`Error when performing the request`)); - }); - }); -} -async function fetchAsBuffer(url, options) { - const response = await fetchUrlStream(url, options); - return new Promise((resolve, reject) => { - const chunks = []; - response.on(`data`, chunk => { - chunks.push(chunk); - }); - response.on(`error`, error => { - reject(error); - }); - response.on(`end`, () => { - resolve(Buffer.concat(chunks)); - }); - }); -} -async function fetchAsJson(url, options) { - const buffer = await fetchAsBuffer(url, options); - const asText = buffer.toString(); - try { - return JSON.parse(asText); - } - catch (error) { - const truncated = asText.length > 30 - ? `${asText.slice(0, 30)}...` - : asText; - throw new Error(`Couldn't parse JSON data: ${JSON.stringify(truncated)}`); + comparePre (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) } -} - - -/***/ }), - -/***/ "./sources/miscUtils.ts": -/*!******************************!*\ - !*** ./sources/miscUtils.ts ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Cancellation": () => (/* binding */ Cancellation) -/* harmony export */ }); -class Cancellation extends Error { - constructor() { - super(`Cancelled operation`); + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 } -} + let i = 0 + do { + const a = this.prerelease[i] + const b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } -/***/ }), + compareBuild (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } -/***/ "./sources/semverUtils.ts": -/*!********************************!*\ - !*** ./sources/semverUtils.ts ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + let i = 0 + do { + const a = this.build[i] + const b = other.build[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "satisfiesWithPrereleases": () => (/* binding */ satisfiesWithPrereleases) -/* harmony export */ }); -/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/index.js"); -/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_0__); + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc (release, identifier) { + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier) + this.inc('pre', identifier) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier) + } + this.inc('pre', identifier) + break -/** - * Returns whether the given semver version satisfies the given range. Notably - * this supports prerelease versions so that "2.0.0-rc.0" satisfies the range - * ">=1.0.0", for example. - * - * This function exists because the semver.satisfies method does not include - * pre releases. This means ranges such as * would not satisfy 1.0.0-rc. The - * includePrerelease flag has a weird behavior and cannot be used (if you want - * to try it out, just run the `semverUtils` testsuite using this flag instead - * of our own implementation, and you'll see the failing cases). - * - * See https://github.com/yarnpkg/berry/issues/575 for more context. - */ -function satisfiesWithPrereleases(version, range, loose = false) { - let semverRange; - try { - semverRange = new (semver__WEBPACK_IMPORTED_MODULE_0___default().Range)(range, loose); - } - catch (err) { - return false; - } - if (!version) - return false; - let semverVersion; - try { - semverVersion = new (semver__WEBPACK_IMPORTED_MODULE_0___default().SemVer)(version, semverRange.loose); - if (semverVersion.prerelease) { - semverVersion.prerelease = []; + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if ( + this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0 + ) { + this.major++ } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case 'pre': + if (this.prerelease.length === 0) { + this.prerelease = [0] + } else { + let i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + this.prerelease.push(0) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = [identifier, 0] + } + } else { + this.prerelease = [identifier, 0] + } + } + break + + default: + throw new Error(`invalid increment argument: ${release}`) } - catch (err) { - return false; - } - // A range has multiple sets of comparators. A version must satisfy all - // comparators in a set and at least one set to satisfy the range. - return semverRange.set.some(comparatorSet => { - for (const comparator of comparatorSet) - if (comparator.semver.prerelease) - comparator.semver.prerelease = []; - return comparatorSet.every(comparator => { - return comparator.test(semverVersion); - }); - }); + this.format() + this.raw = this.version + return this + } } +module.exports = SemVer + /***/ }), -/***/ "./sources/specUtils.ts": -/*!******************************!*\ - !*** ./sources/specUtils.ts ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/clean.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/clean.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "parseSpec": () => (/* binding */ parseSpec), -/* harmony export */ "findProjectSpec": () => (/* binding */ findProjectSpec), -/* harmony export */ "loadSpec": () => (/* binding */ loadSpec) -/* harmony export */ }); -/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs"); -/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/index.js"); -/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ "./sources/types.ts"); +const parse = __webpack_require__(/*! ./parse */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/parse.js") +const clean = (version, options) => { + const s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} +module.exports = clean +/***/ }), +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/cmp.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/cmp.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +const eq = __webpack_require__(/*! ./eq */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/eq.js") +const neq = __webpack_require__(/*! ./neq */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/neq.js") +const gt = __webpack_require__(/*! ./gt */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gt.js") +const gte = __webpack_require__(/*! ./gte */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gte.js") +const lt = __webpack_require__(/*! ./lt */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lt.js") +const lte = __webpack_require__(/*! ./lte */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lte.js") -const nodeModulesRegExp = /[\\/]node_modules[\\/](@[^\\/]*[\\/])?([^@\\/][^\\/]*)$/; -function parseSpec(raw, source) { - if (typeof raw !== `string`) - throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Invalid package manager specification in ${source}; expected a string`); - const match = raw.match(/^(?!_)(.+)@(.+)$/); - if (match === null || !semver__WEBPACK_IMPORTED_MODULE_2___default().valid(match[2])) - throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Invalid package manager specification in ${source}; expected a semver version`); - if (!(0,_types__WEBPACK_IMPORTED_MODULE_3__.isSupportedPackageManager)(match[1])) - throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Unsupported package manager specification (${match})`); - return { - name: match[1], - range: match[2], - }; -} -/** - * Locates the active project's package manager specification. - * - * If the specification exists but doesn't match the active package manager, - * an error is thrown to prevent users from using the wrong package manager, - * which would lead to inconsistent project layouts. - * - * If the project doesn't include a specification file, we just assume that - * whatever the user uses is exactly what they want to use. Since the version - * isn't explicited, we fallback on known good versions. - * - * Finally, if the project doesn't exist at all, we ask the user whether they - * want to create one in the current project. If they do, we initialize a new - * project using the default package managers, and configure it so that we - * don't need to ask again in the future. - */ -async function findProjectSpec(initialCwd, locator, { transparent = false } = {}) { - // A locator is a valid descriptor (but not the other way around) - const fallbackLocator = { name: locator.name, range: locator.reference }; - while (true) { - const result = await loadSpec(initialCwd); - switch (result.type) { - case `NoProject`: - case `NoSpec`: - { - return fallbackLocator; - } - break; - case `Found`: - { - if (result.spec.name !== locator.name) { - if (transparent) { - return fallbackLocator; - } - else { - throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`This project is configured to use ${result.spec.name}`); - } - } - else { - return result.spec; - } - } - break; - } - } +const cmp = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a === b + + case '!==': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError(`Invalid operator: ${op}`) + } } -async function loadSpec(initialCwd) { - let nextCwd = initialCwd; - let currCwd = ``; - let selection = null; - while (nextCwd !== currCwd && (!selection || !selection.data.packageManager)) { - currCwd = nextCwd; - nextCwd = path__WEBPACK_IMPORTED_MODULE_1___default().dirname(currCwd); - if (nodeModulesRegExp.test(currCwd)) - continue; - const manifestPath = path__WEBPACK_IMPORTED_MODULE_1___default().join(currCwd, `package.json`); - if (!fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(manifestPath)) - continue; - const content = await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.readFile(manifestPath, `utf8`); - let data; - try { - data = JSON.parse(content); - } - catch (_a) { } - if (typeof data !== `object` || data === null) - throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Invalid package.json in ${path__WEBPACK_IMPORTED_MODULE_1___default().relative(initialCwd, manifestPath)}`); - selection = { data, manifestPath }; +module.exports = cmp + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/coerce.js": +/*!************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/coerce.js ***! + \************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const parse = __webpack_require__(/*! ./parse */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/parse.js") +const { re, t } = __webpack_require__(/*! ../internal/re */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/re.js") + +const coerce = (version, options) => { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + let match = null + if (!options.rtl) { + match = version.match(re[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + let next + while ((next = re[t.COERCERTL].exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length } - if (selection === null) - return { type: `NoProject`, target: path__WEBPACK_IMPORTED_MODULE_1___default().join(initialCwd, `package.json`) }; - const rawPmSpec = selection.data.packageManager; - if (typeof rawPmSpec === `undefined`) - return { type: `NoSpec`, target: selection.manifestPath }; - return { - type: `Found`, - spec: parseSpec(rawPmSpec, path__WEBPACK_IMPORTED_MODULE_1___default().relative(initialCwd, selection.manifestPath)), - }; + // leave it in a clean state + re[t.COERCERTL].lastIndex = -1 + } + + if (match === null) { + return null + } + + return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options) } +module.exports = coerce /***/ }), -/***/ "./sources/types.ts": -/*!**************************!*\ - !*** ./sources/types.ts ***! - \**************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare-build.js": +/*!*******************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare-build.js ***! + \*******************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "SupportedPackageManagers": () => (/* binding */ SupportedPackageManagers), -/* harmony export */ "SupportedPackageManagerSet": () => (/* binding */ SupportedPackageManagerSet), -/* harmony export */ "SupportedPackageManagerSetWithoutNpm": () => (/* binding */ SupportedPackageManagerSetWithoutNpm), -/* harmony export */ "isSupportedPackageManager": () => (/* binding */ isSupportedPackageManager) -/* harmony export */ }); -var SupportedPackageManagers; -(function (SupportedPackageManagers) { - SupportedPackageManagers["Npm"] = "npm"; - SupportedPackageManagers["Pnpm"] = "pnpm"; - SupportedPackageManagers["Yarn"] = "yarn"; -})(SupportedPackageManagers || (SupportedPackageManagers = {})); -const SupportedPackageManagerSet = new Set(Object.values(SupportedPackageManagers)); -const SupportedPackageManagerSetWithoutNpm = new Set(Object.values(SupportedPackageManagers)); -// npm is distributed with Node as a builtin; we don't want Corepack to override it unless the npm team is on board -SupportedPackageManagerSetWithoutNpm.delete(SupportedPackageManagers.Npm); -function isSupportedPackageManager(value) { - return SupportedPackageManagerSet.has(value); +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const compareBuild = (a, b, loose) => { + const versionA = new SemVer(a, loose) + const versionB = new SemVer(b, loose) + return versionA.compare(versionB) || versionA.compareBuild(versionB) } +module.exports = compareBuild /***/ }), -/***/ "./.yarn/cache/@zkochan-cmd-shim-npm-5.0.0-9e90407ba0-ace99c7c36.zip/node_modules/@zkochan/cmd-shim/index.js": +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare-loose.js": /*!*******************************************************************************************************************!*\ - !*** ./.yarn/cache/@zkochan-cmd-shim-npm-5.0.0-9e90407ba0-ace99c7c36.zip/node_modules/@zkochan/cmd-shim/index.js ***! + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare-loose.js ***! \*******************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; +const compare = __webpack_require__(/*! ./compare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +const compareLoose = (a, b) => compare(a, b, true) +module.exports = compareLoose -cmdShim.ifExists = cmdShimIfExists; -const util_1 = __webpack_require__(/*! util */ "util"); -const path = __webpack_require__(/*! path */ "path"); -const isWindows = __webpack_require__(/*! is-windows */ "./.yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-438b7e5265.zip/node_modules/is-windows/index.js"); -const shebangExpr = /^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/; -const DEFAULT_OPTIONS = { - // Create PowerShell file by default if the option hasn't been specified - createPwshFile: true, - createCmdFile: isWindows(), - fs: __webpack_require__(/*! fs */ "fs") -}; -/** - * Map from extensions of files that this module is frequently used for to their runtime. - * @type {Map} - */ -const extensionToProgramMap = new Map([ - ['.js', 'node'], - ['.cmd', 'cmd'], - ['.bat', 'cmd'], - ['.ps1', 'pwsh'], - ['.sh', 'sh'] -]); -function ingestOptions(opts) { - const opts_ = { ...DEFAULT_OPTIONS, ...opts }; - const fs = opts_.fs; - opts_.fs_ = { - chmod: fs.chmod ? util_1.promisify(fs.chmod) : (async () => { }), - mkdir: util_1.promisify(fs.mkdir), - readFile: util_1.promisify(fs.readFile), - stat: util_1.promisify(fs.stat), - unlink: util_1.promisify(fs.unlink), - writeFile: util_1.promisify(fs.writeFile) - }; - return opts_; + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js": +/*!*************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js ***! + \*************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const compare = (a, b, loose) => + new SemVer(a, loose).compare(new SemVer(b, loose)) + +module.exports = compare + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/diff.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/diff.js ***! + \**********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const parse = __webpack_require__(/*! ./parse */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/parse.js") +const eq = __webpack_require__(/*! ./eq */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/eq.js") + +const diff = (version1, version2) => { + if (eq(version1, version2)) { + return null + } else { + const v1 = parse(version1) + const v2 = parse(version2) + const hasPre = v1.prerelease.length || v2.prerelease.length + const prefix = hasPre ? 'pre' : '' + const defaultResult = hasPre ? 'prerelease' : '' + for (const key in v1) { + if (key === 'major' || key === 'minor' || key === 'patch') { + if (v1[key] !== v2[key]) { + return prefix + key + } + } + } + return defaultResult // may be undefined + } } -/** - * Try to create shims. - * - * @param src Path to program (executable or script). - * @param to Path to shims. - * Don't add an extension if you will create multiple types of shims. - * @param opts Options. - * @throws If `src` is missing. - */ -async function cmdShim(src, to, opts) { - const opts_ = ingestOptions(opts); - await opts_.fs_.stat(src); - await cmdShim_(src, to, opts_); +module.exports = diff + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/eq.js": +/*!********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/eq.js ***! + \********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const compare = __webpack_require__(/*! ./compare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +const eq = (a, b, loose) => compare(a, b, loose) === 0 +module.exports = eq + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gt.js": +/*!********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gt.js ***! + \********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const compare = __webpack_require__(/*! ./compare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +const gt = (a, b, loose) => compare(a, b, loose) > 0 +module.exports = gt + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gte.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gte.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const compare = __webpack_require__(/*! ./compare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +const gte = (a, b, loose) => compare(a, b, loose) >= 0 +module.exports = gte + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/inc.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/inc.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") + +const inc = (version, release, options, identifier) => { + if (typeof (options) === 'string') { + identifier = options + options = undefined + } + + try { + return new SemVer( + version instanceof SemVer ? version.version : version, + options + ).inc(release, identifier).version + } catch (er) { + return null + } } -/** - * Try to create shims. - * - * Does nothing if `src` doesn't exist. - * - * @param src Path to program (executable or script). - * @param to Path to shims. - * Don't add an extension if you will create multiple types of shims. - * @param opts Options. - */ -function cmdShimIfExists(src, to, opts) { - return cmdShim(src, to, opts).catch(() => { }); +module.exports = inc + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lt.js": +/*!********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lt.js ***! + \********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const compare = __webpack_require__(/*! ./compare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +const lt = (a, b, loose) => compare(a, b, loose) < 0 +module.exports = lt + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lte.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lte.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const compare = __webpack_require__(/*! ./compare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +const lte = (a, b, loose) => compare(a, b, loose) <= 0 +module.exports = lte + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/major.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/major.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const major = (a, loose) => new SemVer(a, loose).major +module.exports = major + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/minor.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/minor.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const minor = (a, loose) => new SemVer(a, loose).minor +module.exports = minor + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/neq.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/neq.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const compare = __webpack_require__(/*! ./compare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +const neq = (a, b, loose) => compare(a, b, loose) !== 0 +module.exports = neq + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/parse.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/parse.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const { MAX_LENGTH } = __webpack_require__(/*! ../internal/constants */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/constants.js") +const { re, t } = __webpack_require__(/*! ../internal/re */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/re.js") +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") + +const parseOptions = __webpack_require__(/*! ../internal/parse-options */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/parse-options.js") +const parse = (version, options) => { + options = parseOptions(options) + + if (version instanceof SemVer) { + return version + } + + if (typeof version !== 'string') { + return null + } + + if (version.length > MAX_LENGTH) { + return null + } + + const r = options.loose ? re[t.LOOSE] : re[t.FULL] + if (!r.test(version)) { + return null + } + + try { + return new SemVer(version, options) + } catch (er) { + return null + } } -/** - * Try to unlink, but ignore errors. - * Any problems will surface later. - * - * @param path File to be removed. - */ -function rm(path, opts) { - return opts.fs_.unlink(path).catch(() => { }); + +module.exports = parse + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/patch.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/patch.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const patch = (a, loose) => new SemVer(a, loose).patch +module.exports = patch + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/prerelease.js": +/*!****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/prerelease.js ***! + \****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const parse = __webpack_require__(/*! ./parse */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/parse.js") +const prerelease = (version, options) => { + const parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null } -/** - * Try to create shims **even if `src` is missing**. - * - * @param src Path to program (executable or script). - * @param to Path to shims. - * Don't add an extension if you will create multiple types of shims. - * @param opts Options. - */ -async function cmdShim_(src, to, opts) { - const srcRuntimeInfo = await searchScriptRuntime(src, opts); - // Always tries to create all types of shims by calling `writeAllShims` as of now. - // Append your code here to change the behavior in response to `srcRuntimeInfo`. - // Create 3 shims for (Ba)sh in Cygwin / MSYS, no extension) & CMD (.cmd) & PowerShell (.ps1) - await writeShimsPreCommon(to, opts); - return writeAllShims(src, to, srcRuntimeInfo, opts); -} -/** - * Do processes before **all** shims are created. - * This must be called **only once** for one call of `cmdShim(IfExists)`. - * - * @param target Path of shims that are going to be created. - */ -function writeShimsPreCommon(target, opts) { - return opts.fs_.mkdir(path.dirname(target), { recursive: true }); +module.exports = prerelease + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/rcompare.js": +/*!**************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/rcompare.js ***! + \**************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const compare = __webpack_require__(/*! ./compare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +const rcompare = (a, b, loose) => compare(b, a, loose) +module.exports = rcompare + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/rsort.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/rsort.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const compareBuild = __webpack_require__(/*! ./compare-build */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare-build.js") +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) +module.exports = rsort + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/satisfies.js": +/*!***************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/satisfies.js ***! + \***************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const Range = __webpack_require__(/*! ../classes/range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") +const satisfies = (version, range, options) => { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) } -/** - * Write all types (sh & cmd & pwsh) of shims to files. - * Extensions (`.cmd` and `.ps1`) are appended to cmd and pwsh shims. - * - * - * @param src Path to program (executable or script). - * @param to Path to shims **without extensions**. - * Extensions are added for CMD and PowerShell shims. - * @param srcRuntimeInfo Return value of `await searchScriptRuntime(src)`. - * @param opts Options. - */ -function writeAllShims(src, to, srcRuntimeInfo, opts) { - const opts_ = ingestOptions(opts); - const generatorAndExts = [{ generator: generateShShim, extension: '' }]; - if (opts_.createCmdFile) { - generatorAndExts.push({ generator: generateCmdShim, extension: '.cmd' }); - } - if (opts_.createPwshFile) { - generatorAndExts.push({ generator: generatePwshShim, extension: '.ps1' }); - } - return Promise.all(generatorAndExts.map((generatorAndExt) => writeShim(src, to + generatorAndExt.extension, srcRuntimeInfo, generatorAndExt.generator, opts_))); +module.exports = satisfies + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/sort.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/sort.js ***! + \**********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const compareBuild = __webpack_require__(/*! ./compare-build */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare-build.js") +const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) +module.exports = sort + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/valid.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/valid.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const parse = __webpack_require__(/*! ./parse */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/parse.js") +const valid = (version, options) => { + const v = parse(version, options) + return v ? v.version : null } -/** - * Do processes before writing shim. - * - * @param target Path to shim that is going to be created. - */ -function writeShimPre(target, opts) { - return rm(target, opts); +module.exports = valid + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/index.js": +/*!*************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/index.js ***! + \*************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// just pre-load all the stuff that index.js lazily exports +const internalRe = __webpack_require__(/*! ./internal/re */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/re.js") +module.exports = { + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: (__webpack_require__(/*! ./internal/constants */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/constants.js").SEMVER_SPEC_VERSION), + SemVer: __webpack_require__(/*! ./classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js"), + compareIdentifiers: (__webpack_require__(/*! ./internal/identifiers */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/identifiers.js").compareIdentifiers), + rcompareIdentifiers: (__webpack_require__(/*! ./internal/identifiers */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/identifiers.js").rcompareIdentifiers), + parse: __webpack_require__(/*! ./functions/parse */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/parse.js"), + valid: __webpack_require__(/*! ./functions/valid */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/valid.js"), + clean: __webpack_require__(/*! ./functions/clean */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/clean.js"), + inc: __webpack_require__(/*! ./functions/inc */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/inc.js"), + diff: __webpack_require__(/*! ./functions/diff */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/diff.js"), + major: __webpack_require__(/*! ./functions/major */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/major.js"), + minor: __webpack_require__(/*! ./functions/minor */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/minor.js"), + patch: __webpack_require__(/*! ./functions/patch */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/patch.js"), + prerelease: __webpack_require__(/*! ./functions/prerelease */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/prerelease.js"), + compare: __webpack_require__(/*! ./functions/compare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js"), + rcompare: __webpack_require__(/*! ./functions/rcompare */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/rcompare.js"), + compareLoose: __webpack_require__(/*! ./functions/compare-loose */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare-loose.js"), + compareBuild: __webpack_require__(/*! ./functions/compare-build */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare-build.js"), + sort: __webpack_require__(/*! ./functions/sort */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/sort.js"), + rsort: __webpack_require__(/*! ./functions/rsort */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/rsort.js"), + gt: __webpack_require__(/*! ./functions/gt */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gt.js"), + lt: __webpack_require__(/*! ./functions/lt */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lt.js"), + eq: __webpack_require__(/*! ./functions/eq */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/eq.js"), + neq: __webpack_require__(/*! ./functions/neq */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/neq.js"), + gte: __webpack_require__(/*! ./functions/gte */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gte.js"), + lte: __webpack_require__(/*! ./functions/lte */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lte.js"), + cmp: __webpack_require__(/*! ./functions/cmp */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/cmp.js"), + coerce: __webpack_require__(/*! ./functions/coerce */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/coerce.js"), + Comparator: __webpack_require__(/*! ./classes/comparator */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/comparator.js"), + Range: __webpack_require__(/*! ./classes/range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js"), + satisfies: __webpack_require__(/*! ./functions/satisfies */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/satisfies.js"), + toComparators: __webpack_require__(/*! ./ranges/to-comparators */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/to-comparators.js"), + maxSatisfying: __webpack_require__(/*! ./ranges/max-satisfying */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/max-satisfying.js"), + minSatisfying: __webpack_require__(/*! ./ranges/min-satisfying */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/min-satisfying.js"), + minVersion: __webpack_require__(/*! ./ranges/min-version */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/min-version.js"), + validRange: __webpack_require__(/*! ./ranges/valid */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/valid.js"), + outside: __webpack_require__(/*! ./ranges/outside */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/outside.js"), + gtr: __webpack_require__(/*! ./ranges/gtr */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/gtr.js"), + ltr: __webpack_require__(/*! ./ranges/ltr */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/ltr.js"), + intersects: __webpack_require__(/*! ./ranges/intersects */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/intersects.js"), + simplifyRange: __webpack_require__(/*! ./ranges/simplify */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/simplify.js"), + subset: __webpack_require__(/*! ./ranges/subset */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/subset.js"), } -/** - * Do processes after writing the shim. - * - * @param target Path to just created shim. - */ -function writeShimPost(target, opts) { - // Only chmoding shims as of now. - // Some other processes may be appended. - return chmodShim(target, opts); + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/constants.js": +/*!**************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/constants.js ***! + \**************************************************************************************************************/ +/***/ ((module) => { + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +const SEMVER_SPEC_VERSION = '2.0.0' + +const MAX_LENGTH = 256 +const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || +/* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +const MAX_SAFE_COMPONENT_LENGTH = 16 + +module.exports = { + SEMVER_SPEC_VERSION, + MAX_LENGTH, + MAX_SAFE_INTEGER, + MAX_SAFE_COMPONENT_LENGTH, } -/** - * Look into runtime (e.g. `node` & `sh` & `pwsh`) and its arguments - * of the target program (script or executable). - * - * @param target Path to the executable or script. - * @return Promise of infomation of runtime of `target`. - */ -async function searchScriptRuntime(target, opts) { - const data = await opts.fs_.readFile(target, 'utf8'); - // First, check if the bin is a #! of some sort. - const firstLine = data.trim().split(/\r*\n/)[0]; - const shebang = firstLine.match(shebangExpr); - if (!shebang) { - // If not, infer script type from its extension. - // If the inference fails, it's something that'll be compiled, or some other - // sort of script, and just call it directly. - const targetExtension = path.extname(target).toLowerCase(); - return { - // undefined if extension is unknown but it's converted to null. - program: extensionToProgramMap.get(targetExtension) || null, - additionalArgs: '' - }; - } - return { - program: shebang[1], - additionalArgs: shebang[2] - }; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/debug.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/debug.js ***! + \**********************************************************************************************************/ +/***/ ((module) => { + +const debug = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) +) ? (...args) => console.error('SEMVER', ...args) + : () => {} + +module.exports = debug + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/identifiers.js": +/*!****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/identifiers.js ***! + \****************************************************************************************************************/ +/***/ ((module) => { + +const numeric = /^[0-9]+$/ +const compareIdentifiers = (a, b) => { + const anum = numeric.test(a) + const bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 } -/** - * Write shim to the file system while executing the pre- and post-processes - * defined in `WriteShimPre` and `WriteShimPost`. - * - * @param src Path to the executable or script. - * @param to Path to the (sh) shim(s) that is going to be created. - * @param srcRuntimeInfo Result of `await searchScriptRuntime(src)`. - * @param generateShimScript Generator of shim script. - * @param opts Other options. - */ -async function writeShim(src, to, srcRuntimeInfo, generateShimScript, opts) { - const defaultArgs = opts.preserveSymlinks ? '--preserve-symlinks' : ''; - // `Array.prototype.filter` removes ''. - // ['--foo', '--bar'].join(' ') and [].join(' ') returns '--foo --bar' and '' respectively. - const args = [srcRuntimeInfo.additionalArgs, defaultArgs].filter(arg => arg).join(' '); - opts = Object.assign({}, opts, { - prog: srcRuntimeInfo.program, - args: args - }); - await writeShimPre(to, opts); - await opts.fs_.writeFile(to, generateShimScript(src, to, opts), 'utf8'); - return writeShimPost(to, opts); + +const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) + +module.exports = { + compareIdentifiers, + rcompareIdentifiers, } -/** - * Generate the content of a shim for CMD. - * - * @param src Path to the executable or script. - * @param to Path to the shim to be created. - * It is highly recommended to end with `.cmd` (or `.bat`). - * @param opts Options. - * @return The content of shim. - */ -function generateCmdShim(src, to, opts) { - // `shTarget` is not used to generate the content. - const shTarget = path.relative(path.dirname(to), src); - let target = shTarget.split('/').join('\\'); - const quotedPathToTarget = path.isAbsolute(target) ? `"${target}"` : `"%~dp0\\${target}"`; - let longProg; - let prog = opts.prog; - let args = opts.args || ''; - const nodePath = normalizePathEnvVar(opts.nodePath).win32; - if (!prog) { - prog = quotedPathToTarget; - args = ''; - target = ''; - } - else { - longProg = `"%~dp0\\${prog}.exe"`; - target = quotedPathToTarget; - } - let progArgs = opts.progArgs ? `${opts.progArgs.join(` `)} ` : ''; - // @IF EXIST "%~dp0\node.exe" ( - // "%~dp0\node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* - // ) ELSE ( - // SETLOCAL - // SET PATHEXT=%PATHEXT:;.JS;=;% - // node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %* - // ) - let cmd = nodePath ? `@SET NODE_PATH=${nodePath}\r\n` : ''; - if (longProg) { - cmd += `@IF EXIST ${longProg} (\r\n` + - ` ${longProg} ${args} ${target} ${progArgs}%*\r\n` + - ') ELSE (\r\n' + - ' @SETLOCAL\r\n' + - ' @SET PATHEXT=%PATHEXT:;.JS;=;%\r\n' + - ` ${prog} ${args} ${target} ${progArgs}%*\r\n` + - ')'; - } - else { - cmd += `@${prog} ${args} ${target} ${progArgs}%*\r\n`; - } - return cmd; -} -/** - * Generate the content of a shim for (Ba)sh in, for example, Cygwin and MSYS(2). - * - * @param src Path to the executable or script. - * @param to Path to the shim to be created. - * It is highly recommended to end with `.sh` or to contain no extension. - * @param opts Options. - * @return The content of shim. - */ -function generateShShim(src, to, opts) { - let shTarget = path.relative(path.dirname(to), src); - let shProg = opts.prog && opts.prog.split('\\').join('/'); - let shLongProg; - shTarget = shTarget.split('\\').join('/'); - const quotedPathToTarget = path.isAbsolute(shTarget) ? `"${shTarget}"` : `"$basedir/${shTarget}"`; - let args = opts.args || ''; - const shNodePath = normalizePathEnvVar(opts.nodePath).posix; - if (!shProg) { - shProg = quotedPathToTarget; - args = ''; - shTarget = ''; - } - else { - shLongProg = `"$basedir/${opts.prog}"`; - shTarget = quotedPathToTarget; - } - let progArgs = opts.progArgs ? `${opts.progArgs.join(` `)} ` : ''; - // #!/bin/sh - // basedir=`dirname "$0"` - // - // case `uname` in - // *CYGWIN*) basedir=`cygpath -w "$basedir"`;; - // esac - // - // export NODE_PATH="" - // - // if [ -x "$basedir/node.exe" ]; then - // exec "$basedir/node.exe" "$basedir/node_modules/npm/bin/npm-cli.js" "$@" - // else - // exec node "$basedir/node_modules/npm/bin/npm-cli.js" "$@" - // fi - let sh = '#!/bin/sh\n'; - sh = sh + - "basedir=$(dirname \"$(echo \"$0\" | sed -e 's,\\\\,/,g')\")\n" + - '\n' + - 'case `uname` in\n' + - ' *CYGWIN*) basedir=`cygpath -w "$basedir"`;;\n' + - 'esac\n' + - '\n'; - const env = opts.nodePath ? `export NODE_PATH="${shNodePath}"\n` : ''; - if (shLongProg) { - sh += env + - `if [ -x ${shLongProg} ]; then\n` + - ` exec ${shLongProg} ${args} ${shTarget} ${progArgs}"$@"\n` + - 'else \n' + - ` exec ${shProg} ${args} ${shTarget} ${progArgs}"$@"\n` + - 'fi\n'; - } - else { - sh += `${env}${shProg} ${args} ${shTarget} ${progArgs}"$@"\n` + - 'exit $?\n'; - } - return sh; -} -/** - * Generate the content of a shim for PowerShell. - * - * @param src Path to the executable or script. - * @param to Path to the shim to be created. - * It is highly recommended to end with `.ps1`. - * @param opts Options. - * @return The content of shim. - */ -function generatePwshShim(src, to, opts) { - let shTarget = path.relative(path.dirname(to), src); - const shProg = opts.prog && opts.prog.split('\\').join('/'); - let pwshProg = shProg && `"${shProg}$exe"`; - let pwshLongProg; - shTarget = shTarget.split('\\').join('/'); - const quotedPathToTarget = path.isAbsolute(shTarget) ? `"${shTarget}"` : `"$basedir/${shTarget}"`; - let args = opts.args || ''; - let normalizedPathEnvVar = normalizePathEnvVar(opts.nodePath); - const nodePath = normalizedPathEnvVar.win32; - const shNodePath = normalizedPathEnvVar.posix; - if (!pwshProg) { - pwshProg = quotedPathToTarget; - args = ''; - shTarget = ''; - } - else { - pwshLongProg = `"$basedir/${opts.prog}$exe"`; - shTarget = quotedPathToTarget; - } - let progArgs = opts.progArgs ? `${opts.progArgs.join(` `)} ` : ''; - // #!/usr/bin/env pwsh - // $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - // - // $ret=0 - // $exe = "" - // if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - // # Fix case when both the Windows and Linux builds of Node - // # are installed in the same directory - // $exe = ".exe" - // } - // if (Test-Path "$basedir/node") { - // # Support pipeline input - // if ($MyInvocation.ExpectingInput) { - // $input | & "$basedir/node$exe" "$basedir/node_modules/npm/bin/npm-cli.js" $args - // } else { - // & "$basedir/node$exe" "$basedir/node_modules/npm/bin/npm-cli.js" $args - // } - // $ret=$LASTEXITCODE - // } else { - // # Support pipeline input - // if ($MyInvocation.ExpectingInput) { - // $input | & "node$exe" "$basedir/node_modules/npm/bin/npm-cli.js" $args - // } else { - // & "node$exe" "$basedir/node_modules/npm/bin/npm-cli.js" $args - // } - // $ret=$LASTEXITCODE - // } - // exit $ret - let pwsh = '#!/usr/bin/env pwsh\n' + - '$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent\n' + - '\n' + - '$exe=""\n' + - (opts.nodePath ? '$env_node_path=$env:NODE_PATH\n' + - `$env:NODE_PATH="${nodePath}"\n` : '') + - 'if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {\n' + - ' # Fix case when both the Windows and Linux builds of Node\n' + - ' # are installed in the same directory\n' + - ' $exe=".exe"\n' + - '}'; - if (opts.nodePath) { - pwsh = pwsh + - ' else {\n' + - ` $env:NODE_PATH="${shNodePath}"\n` + - '}'; - } - pwsh += '\n'; - if (pwshLongProg) { - pwsh = pwsh + - '$ret=0\n' + - `if (Test-Path ${pwshLongProg}) {\n` + - ' # Support pipeline input\n' + - ' if ($MyInvocation.ExpectingInput) {\n' + - ` $input | & ${pwshLongProg} ${args} ${shTarget} ${progArgs}$args\n` + - ' } else {\n' + - ` & ${pwshLongProg} ${args} ${shTarget} ${progArgs}$args\n` + - ' }\n' + - ' $ret=$LASTEXITCODE\n' + - '} else {\n' + - ' # Support pipeline input\n' + - ' if ($MyInvocation.ExpectingInput) {\n' + - ` $input | & ${pwshProg} ${args} ${shTarget} ${progArgs}$args\n` + - ' } else {\n' + - ` & ${pwshProg} ${args} ${shTarget} ${progArgs}$args\n` + - ' }\n' + - ' $ret=$LASTEXITCODE\n' + - '}\n' + - (opts.nodePath ? '$env:NODE_PATH=$env_node_path\n' : '') + - 'exit $ret\n'; - } - else { - pwsh = pwsh + - '# Support pipeline input\n' + - 'if ($MyInvocation.ExpectingInput) {\n' + - ` $input | & ${pwshProg} ${args} ${shTarget} ${progArgs}$args\n` + - '} else {\n' + - ` & ${pwshProg} ${args} ${shTarget} ${progArgs}$args\n` + - '}\n' + - (opts.nodePath ? '$env:NODE_PATH=$env_node_path\n' : '') + - 'exit $LASTEXITCODE\n'; - } - return pwsh; -} -/** - * Chmod just created shim and make it executable - * - * @param to Path to shim. - */ -function chmodShim(to, opts) { - return opts.fs_.chmod(to, 0o755); -} -function normalizePathEnvVar(nodePath) { - if (!nodePath) { - return { - win32: '', - posix: '' - }; - } - let split = (typeof nodePath === 'string' ? nodePath.split(path.delimiter) : Array.from(nodePath)); - let result = {}; - for (let i = 0; i < split.length; i++) { - const win32 = split[i].split('/').join('\\'); - const posix = isWindows() ? split[i].split('\\').join('/').replace(/^([^:\\/]*):/, (_, $1) => `/mnt/${$1.toLowerCase()}`) : split[i]; - result.win32 = result.win32 ? `${result.win32};${win32}` : win32; - result.posix = result.posix ? `${result.posix}:${posix}` : posix; - result[i] = { win32, posix }; - } - return result; -} -module.exports = cmdShim; -//# sourceMappingURL=index.js.map + /***/ }), -/***/ "./.yarn/cache/chownr-npm-1.1.4-5bd400ab08-115648f8eb.zip/node_modules/chownr/chownr.js": -/*!**********************************************************************************************!*\ - !*** ./.yarn/cache/chownr-npm-1.1.4-5bd400ab08-115648f8eb.zip/node_modules/chownr/chownr.js ***! - \**********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/parse-options.js": +/*!******************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/parse-options.js ***! + \******************************************************************************************************************/ +/***/ ((module) => { -"use strict"; +// parse out just the options we care about so we always get a consistent +// obj with keys in a consistent order. +const opts = ['includePrerelease', 'loose', 'rtl'] +const parseOptions = options => + !options ? {} + : typeof options !== 'object' ? { loose: true } + : opts.filter(k => options[k]).reduce((o, k) => { + o[k] = true + return o + }, {}) +module.exports = parseOptions -const fs = __webpack_require__(/*! fs */ "fs") -const path = __webpack_require__(/*! path */ "path") -/* istanbul ignore next */ -const LCHOWN = fs.lchown ? 'lchown' : 'chown' -/* istanbul ignore next */ -const LCHOWNSYNC = fs.lchownSync ? 'lchownSync' : 'chownSync' +/***/ }), -/* istanbul ignore next */ -const needEISDIRHandled = fs.lchown && - !process.version.match(/v1[1-9]+\./) && - !process.version.match(/v10\.[6-9]/) +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/re.js": +/*!*******************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/re.js ***! + \*******************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { -const lchownSync = (path, uid, gid) => { - try { - return fs[LCHOWNSYNC](path, uid, gid) - } catch (er) { - if (er.code !== 'ENOENT') - throw er - } -} +const { MAX_SAFE_COMPONENT_LENGTH } = __webpack_require__(/*! ./constants */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/constants.js") +const debug = __webpack_require__(/*! ./debug */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/internal/debug.js") +exports = module.exports = {} -/* istanbul ignore next */ -const chownSync = (path, uid, gid) => { - try { - return fs.chownSync(path, uid, gid) - } catch (er) { - if (er.code !== 'ENOENT') - throw er - } +// The actual regexps go on exports.re +const re = exports.re = [] +const src = exports.src = [] +const t = exports.t = {} +let R = 0 + +const createToken = (name, value, isGlobal) => { + const index = R++ + debug(name, index, value) + t[name] = index + src[index] = value + re[index] = new RegExp(value, isGlobal ? 'g' : undefined) } -/* istanbul ignore next */ -const handleEISDIR = - needEISDIRHandled ? (path, uid, gid, cb) => er => { - // Node prior to v10 had a very questionable implementation of - // fs.lchown, which would always try to call fs.open on a directory - // Fall back to fs.chown in those cases. - if (!er || er.code !== 'EISDIR') - cb(er) - else - fs.chown(path, uid, gid, cb) - } - : (_, __, ___, cb) => cb +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. -/* istanbul ignore next */ -const handleEISDirSync = - needEISDIRHandled ? (path, uid, gid) => { - try { - return lchownSync(path, uid, gid) - } catch (er) { - if (er.code !== 'EISDIR') - throw er - chownSync(path, uid, gid) - } - } - : (path, uid, gid) => lchownSync(path, uid, gid) +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. -// fs.readdir could only accept an options object as of node v6 -const nodeVersion = process.version -let readdir = (path, options, cb) => fs.readdir(path, options, cb) -let readdirSync = (path, options) => fs.readdirSync(path, options) -/* istanbul ignore next */ -if (/^v4\./.test(nodeVersion)) - readdir = (path, options, cb) => fs.readdir(path, cb) +createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*') +createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+') -const chown = (cpath, uid, gid, cb) => { - fs[LCHOWN](cpath, uid, gid, handleEISDIR(cpath, uid, gid, er => { - // Skip ENOENT error - cb(er && er.code !== 'ENOENT' ? er : null) - })) -} +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. -const chownrKid = (p, child, uid, gid, cb) => { - if (typeof child === 'string') - return fs.lstat(path.resolve(p, child), (er, stats) => { - // Skip ENOENT error - if (er) - return cb(er.code !== 'ENOENT' ? er : null) - stats.name = child - chownrKid(p, stats, uid, gid, cb) - }) +createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*') - if (child.isDirectory()) { - chownr(path.resolve(p, child.name), uid, gid, er => { - if (er) - return cb(er) - const cpath = path.resolve(p, child.name) - chown(cpath, uid, gid, cb) - }) - } else { - const cpath = path.resolve(p, child.name) - chown(cpath, uid, gid, cb) - } -} +// ## Main Version +// Three dot-separated numeric identifiers. +createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`) -const chownr = (p, uid, gid, cb) => { - readdir(p, { withFileTypes: true }, (er, children) => { - // any error other than ENOTDIR or ENOTSUP means it's not readable, - // or doesn't exist. give up. - if (er) { - if (er.code === 'ENOENT') - return cb() - else if (er.code !== 'ENOTDIR' && er.code !== 'ENOTSUP') - return cb(er) - } - if (er || !children.length) - return chown(p, uid, gid, cb) +createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`) - let len = children.length - let errState = null - const then = er => { - if (errState) - return - if (er) - return cb(errState = er) - if (-- len === 0) - return chown(p, uid, gid, cb) - } +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. - children.forEach(child => chownrKid(p, child, uid, gid, then)) - }) -} +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] +}|${src[t.NONNUMERICIDENTIFIER]})`) -const chownrKidSync = (p, child, uid, gid) => { - if (typeof child === 'string') { - try { - const stats = fs.lstatSync(path.resolve(p, child)) - stats.name = child - child = stats - } catch (er) { - if (er.code === 'ENOENT') - return - else - throw er - } - } +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] +}|${src[t.NONNUMERICIDENTIFIER]})`) - if (child.isDirectory()) - chownrSync(path.resolve(p, child.name), uid, gid) +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. - handleEISDirSync(path.resolve(p, child.name), uid, gid) -} +createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] +}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`) -const chownrSync = (p, uid, gid) => { - let children - try { - children = readdirSync(p, { withFileTypes: true }) - } catch (er) { - if (er.code === 'ENOENT') - return - else if (er.code === 'ENOTDIR' || er.code === 'ENOTSUP') - return handleEISDirSync(p, uid, gid) - else - throw er - } +createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] +}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`) - if (children && children.length) - children.forEach(child => chownrKidSync(p, child, uid, gid)) +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. - return handleEISDirSync(p, uid, gid) -} +createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+') -module.exports = chownr -chownr.sync = chownrSync +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. +createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] +}(?:\\.${src[t.BUILDIDENTIFIER]})*))`) -/***/ }), +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. -/***/ "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip/node_modules/fs-minipass/index.js": -/*!*******************************************************************************************************!*\ - !*** ./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip/node_modules/fs-minipass/index.js ***! - \*******************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. -"use strict"; +createToken('FULLPLAIN', `v?${src[t.MAINVERSION] +}${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`) -const MiniPass = __webpack_require__(/*! minipass */ "./.yarn/cache/minipass-npm-3.1.1-b51d7e264d-cfcfd86adc.zip/node_modules/minipass/index.js") -const EE = __webpack_require__(/*! events */ "events").EventEmitter -const fs = __webpack_require__(/*! fs */ "fs") +createToken('FULL', `^${src[t.FULLPLAIN]}$`) -let writev = fs.writev -/* istanbul ignore next */ -if (!writev) { - // This entire block can be removed if support for earlier than Node.js - // 12.9.0 is not needed. - const binding = process.binding('fs') - const FSReqWrap = binding.FSReqWrap || binding.FSReqCallback +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] +}${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`) - writev = (fd, iovec, pos, cb) => { - const done = (er, bw) => cb(er, bw, iovec) - const req = new FSReqWrap() - req.oncomplete = done - binding.writeBuffers(fd, iovec, pos, req) - } -} +createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`) -const _autoClose = Symbol('_autoClose') -const _close = Symbol('_close') -const _ended = Symbol('_ended') -const _fd = Symbol('_fd') -const _finished = Symbol('_finished') -const _flags = Symbol('_flags') -const _flush = Symbol('_flush') -const _handleChunk = Symbol('_handleChunk') -const _makeBuf = Symbol('_makeBuf') -const _mode = Symbol('_mode') -const _needDrain = Symbol('_needDrain') -const _onerror = Symbol('_onerror') -const _onopen = Symbol('_onopen') -const _onread = Symbol('_onread') -const _onwrite = Symbol('_onwrite') -const _open = Symbol('_open') -const _path = Symbol('_path') -const _pos = Symbol('_pos') -const _queue = Symbol('_queue') -const _read = Symbol('_read') -const _readSize = Symbol('_readSize') -const _reading = Symbol('_reading') -const _remain = Symbol('_remain') -const _size = Symbol('_size') -const _write = Symbol('_write') -const _writing = Symbol('_writing') -const _defaultFlag = Symbol('_defaultFlag') -const _errored = Symbol('_errored') +createToken('GTLT', '((?:<|>)?=?)') -class ReadStream extends MiniPass { - constructor (path, opt) { - opt = opt || {} - super(opt) +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifer, meaning "any version" +// Only the first item is strictly required. +createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`) +createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`) - this.readable = true - this.writable = false +createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`) - if (typeof path !== 'string') - throw new TypeError('path must be a string') +createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`) - this[_errored] = false - this[_fd] = typeof opt.fd === 'number' ? opt.fd : null - this[_path] = path - this[_readSize] = opt.readSize || 16*1024*1024 - this[_reading] = false - this[_size] = typeof opt.size === 'number' ? opt.size : Infinity - this[_remain] = this[_size] - this[_autoClose] = typeof opt.autoClose === 'boolean' ? - opt.autoClose : true +createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`) +createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`) - if (typeof this[_fd] === 'number') - this[_read]() - else - this[_open]() - } +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +createToken('COERCE', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:$|[^\\d])`) +createToken('COERCERTL', src[t.COERCE], true) - get fd () { return this[_fd] } - get path () { return this[_path] } +// Tilde ranges. +// Meaning is "reasonably at or greater than" +createToken('LONETILDE', '(?:~>?)') - write () { - throw new TypeError('this is a readable stream') - } +createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true) +exports.tildeTrimReplace = '$1~' - end () { - throw new TypeError('this is a readable stream') - } +createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`) +createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`) - [_open] () { - fs.open(this[_path], 'r', (er, fd) => this[_onopen](er, fd)) - } +// Caret ranges. +// Meaning is "at least and backwards compatible with" +createToken('LONECARET', '(?:\\^)') - [_onopen] (er, fd) { - if (er) - this[_onerror](er) - else { - this[_fd] = fd - this.emit('open', fd) - this[_read]() - } - } +createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true) +exports.caretTrimReplace = '$1^' - [_makeBuf] () { - return Buffer.allocUnsafe(Math.min(this[_readSize], this[_remain])) - } +createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`) +createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`) - [_read] () { - if (!this[_reading]) { - this[_reading] = true - const buf = this[_makeBuf]() - /* istanbul ignore if */ - if (buf.length === 0) - return process.nextTick(() => this[_onread](null, 0, buf)) - fs.read(this[_fd], buf, 0, buf.length, null, (er, br, buf) => - this[_onread](er, br, buf)) - } - } +// A simple gt/lt/eq thing, or just "" to indicate "any version" +createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`) +createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`) - [_onread] (er, br, buf) { - this[_reading] = false - if (er) - this[_onerror](er) - else if (this[_handleChunk](br, buf)) - this[_read]() - } +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] +}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true) +exports.comparatorTrimReplace = '$1$2$3' - [_close] () { - if (this[_autoClose] && typeof this[_fd] === 'number') { - const fd = this[_fd] - this[_fd] = null - fs.close(fd, er => er ? this.emit('error', er) : this.emit('close')) - } - } +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`) - [_onerror] (er) { - this[_reading] = true - this[_close]() - this.emit('error', er) - } +createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`) - [_handleChunk] (br, buf) { - let ret = false - // no effect if infinite - this[_remain] -= br - if (br > 0) - ret = super.write(br < buf.length ? buf.slice(0, br) : buf) +// Star ranges basically just allow anything at all. +createToken('STAR', '(<|>)?=?\\s*\\*') +// >=0.0.0 is like a star +createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$') +createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$') - if (br === 0 || this[_remain] <= 0) { - ret = false - this[_close]() - super.end() - } - return ret - } +/***/ }), - emit (ev, data) { - switch (ev) { - case 'prefinish': - case 'finish': - break +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/gtr.js": +/*!******************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/gtr.js ***! + \******************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - case 'drain': - if (typeof this[_fd] === 'number') - this[_read]() - break +// Determine if version is greater than all the versions possible in the range. +const outside = __webpack_require__(/*! ./outside */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/outside.js") +const gtr = (version, range, options) => outside(version, range, '>', options) +module.exports = gtr - case 'error': - if (this[_errored]) - return - this[_errored] = true - return super.emit(ev, data) - default: - return super.emit(ev, data) - } - } +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/intersects.js": +/*!*************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/intersects.js ***! + \*************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const Range = __webpack_require__(/*! ../classes/range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") +const intersects = (r1, r2, options) => { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2) } +module.exports = intersects -class ReadStreamSync extends ReadStream { - [_open] () { - let threw = true - try { - this[_onopen](null, fs.openSync(this[_path], 'r')) - threw = false - } finally { - if (threw) - this[_close]() - } - } - [_read] () { - let threw = true - try { - if (!this[_reading]) { - this[_reading] = true - do { - const buf = this[_makeBuf]() - /* istanbul ignore next */ - const br = buf.length === 0 ? 0 - : fs.readSync(this[_fd], buf, 0, buf.length, null) - if (!this[_handleChunk](br, buf)) - break - } while (true) - this[_reading] = false - } - threw = false - } finally { - if (threw) - this[_close]() - } - } +/***/ }), - [_close] () { - if (this[_autoClose] && typeof this[_fd] === 'number') { - const fd = this[_fd] - this[_fd] = null - fs.closeSync(fd) - this.emit('close') - } +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/ltr.js": +/*!******************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/ltr.js ***! + \******************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const outside = __webpack_require__(/*! ./outside */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/outside.js") +// Determine if version is less than all the versions possible in the range +const ltr = (version, range, options) => outside(version, range, '<', options) +module.exports = ltr + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/max-satisfying.js": +/*!*****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/max-satisfying.js ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const Range = __webpack_require__(/*! ../classes/range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") + +const maxSatisfying = (versions, range, options) => { + let max = null + let maxSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max } +module.exports = maxSatisfying -class WriteStream extends EE { - constructor (path, opt) { - opt = opt || {} - super(opt) - this.readable = false - this.writable = true - this[_errored] = false - this[_writing] = false - this[_ended] = false - this[_needDrain] = false - this[_queue] = [] - this[_path] = path - this[_fd] = typeof opt.fd === 'number' ? opt.fd : null - this[_mode] = opt.mode === undefined ? 0o666 : opt.mode - this[_pos] = typeof opt.start === 'number' ? opt.start : null - this[_autoClose] = typeof opt.autoClose === 'boolean' ? - opt.autoClose : true - // truncating makes no sense when writing into the middle - const defaultFlag = this[_pos] !== null ? 'r+' : 'w' - this[_defaultFlag] = opt.flags === undefined - this[_flags] = this[_defaultFlag] ? defaultFlag : opt.flags +/***/ }), - if (this[_fd] === null) - this[_open]() - } +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/min-satisfying.js": +/*!*****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/min-satisfying.js ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - emit (ev, data) { - if (ev === 'error') { - if (this[_errored]) - return - this[_errored] = true - } - return super.emit(ev, data) +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const Range = __webpack_require__(/*! ../classes/range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") +const minSatisfying = (versions, range, options) => { + let min = null + let minSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} +module.exports = minSatisfying - get fd () { return this[_fd] } - get path () { return this[_path] } +/***/ }), - [_onerror] (er) { - this[_close]() - this[_writing] = true - this.emit('error', er) +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/min-version.js": +/*!**************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/min-version.js ***! + \**************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const Range = __webpack_require__(/*! ../classes/range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") +const gt = __webpack_require__(/*! ../functions/gt */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gt.js") + +const minVersion = (range, loose) => { + range = new Range(range, loose) + + let minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver } - [_open] () { - fs.open(this[_path], this[_flags], this[_mode], - (er, fd) => this[_onopen](er, fd)) + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver } - [_onopen] (er, fd) { - if (this[_defaultFlag] && - this[_flags] === 'r+' && - er && er.code === 'ENOENT') { - this[_flags] = 'w' - this[_open]() - } else if (er) - this[_onerror](er) - else { - this[_fd] = fd - this.emit('open', fd) - this[_flush]() + minver = null + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let setMin = null + comparators.forEach((comparator) => { + // Clone to avoid manipulating the comparator's semver object. + const compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!setMin || gt(compver, setMin)) { + setMin = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`) + } + }) + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin } } - end (buf, enc) { - if (buf) - this.write(buf, enc) + if (minver && range.test(minver)) { + return minver + } - this[_ended] = true + return null +} +module.exports = minVersion - // synthetic after-write logic, where drain/finish live - if (!this[_writing] && !this[_queue].length && - typeof this[_fd] === 'number') - this[_onwrite](null, 0) - return this - } - write (buf, enc) { - if (typeof buf === 'string') - buf = Buffer.from(buf, enc) +/***/ }), - if (this[_ended]) { - this.emit('error', new Error('write() after end()')) - return false - } +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/outside.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/outside.js ***! + \**********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - if (this[_fd] === null || this[_writing] || this[_queue].length) { - this[_queue].push(buf) - this[_needDrain] = true - return false - } +const SemVer = __webpack_require__(/*! ../classes/semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/semver.js") +const Comparator = __webpack_require__(/*! ../classes/comparator */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/comparator.js") +const { ANY } = Comparator +const Range = __webpack_require__(/*! ../classes/range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") +const satisfies = __webpack_require__(/*! ../functions/satisfies */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/satisfies.js") +const gt = __webpack_require__(/*! ../functions/gt */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gt.js") +const lt = __webpack_require__(/*! ../functions/lt */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lt.js") +const lte = __webpack_require__(/*! ../functions/lte */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/lte.js") +const gte = __webpack_require__(/*! ../functions/gte */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/gte.js") - this[_writing] = true - this[_write](buf) - return true +const outside = (version, range, hilo, options) => { + version = new SemVer(version, options) + range = new Range(range, options) + + let gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') } - [_write] (buf) { - fs.write(this[_fd], buf, 0, buf.length, this[_pos], (er, bw) => - this[_onwrite](er, bw)) + // If it satisfies the range it is not outside + if (satisfies(version, range, options)) { + return false } - [_onwrite] (er, bw) { - if (er) - this[_onerror](er) - else { - if (this[_pos] !== null) - this[_pos] += bw - if (this[_queue].length) - this[_flush]() - else { - this[_writing] = false + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. - if (this[_ended] && !this[_finished]) { - this[_finished] = true - this[_close]() - this.emit('finish') - } else if (this[_needDrain]) { - this[_needDrain] = false - this.emit('drain') - } + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let high = null + let low = null + + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') } - } - } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) - [_flush] () { - if (this[_queue].length === 0) { - if (this[_ended]) - this[_onwrite](null, 0) - } else if (this[_queue].length === 1) - this[_write](this[_queue].pop()) - else { - const iovec = this[_queue] - this[_queue] = [] - writev(this[_fd], iovec, this[_pos], - (er, bw) => this[_onwrite](er, bw)) + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false } - } - [_close] () { - if (this[_autoClose] && typeof this[_fd] === 'number') { - const fd = this[_fd] - this[_fd] = null - fs.close(fd, er => er ? this.emit('error', er) : this.emit('close')) + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false } } + return true } -class WriteStreamSync extends WriteStream { - [_open] () { - let fd - // only wrap in a try{} block if we know we'll retry, to avoid - // the rethrow obscuring the error's source frame in most cases. - if (this[_defaultFlag] && this[_flags] === 'r+') { - try { - fd = fs.openSync(this[_path], this[_flags], this[_mode]) - } catch (er) { - if (er.code === 'ENOENT') { - this[_flags] = 'w' - return this[_open]() - } else - throw er - } - } else - fd = fs.openSync(this[_path], this[_flags], this[_mode]) +module.exports = outside - this[_onopen](null, fd) - } - [_close] () { - if (this[_autoClose] && typeof this[_fd] === 'number') { - const fd = this[_fd] - this[_fd] = null - fs.closeSync(fd) - this.emit('close') +/***/ }), + +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/simplify.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/simplify.js ***! + \***********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// given a set of versions and a range, create a "simplified" range +// that includes the same versions that the original range does +// If the original range is shorter than the simplified one, return that. +const satisfies = __webpack_require__(/*! ../functions/satisfies.js */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/satisfies.js") +const compare = __webpack_require__(/*! ../functions/compare.js */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +module.exports = (versions, range, options) => { + const set = [] + let first = null + let prev = null + const v = versions.sort((a, b) => compare(a, b, options)) + for (const version of v) { + const included = satisfies(version, range, options) + if (included) { + prev = version + if (!first) { + first = version + } + } else { + if (prev) { + set.push([first, prev]) + } + prev = null + first = null } } + if (first) { + set.push([first, null]) + } - [_write] (buf) { - // throw the original, but try to close if it fails - let threw = true - try { - this[_onwrite](null, - fs.writeSync(this[_fd], buf, 0, buf.length, this[_pos])) - threw = false - } finally { - if (threw) - try { this[_close]() } catch (_) {} + const ranges = [] + for (const [min, max] of set) { + if (min === max) { + ranges.push(min) + } else if (!max && min === v[0]) { + ranges.push('*') + } else if (!max) { + ranges.push(`>=${min}`) + } else if (min === v[0]) { + ranges.push(`<=${max}`) + } else { + ranges.push(`${min} - ${max}`) } } + const simplified = ranges.join(' || ') + const original = typeof range.raw === 'string' ? range.raw : String(range) + return simplified.length < original.length ? simplified : range } -exports.ReadStream = ReadStream -exports.ReadStreamSync = ReadStreamSync - -exports.WriteStream = WriteStream -exports.WriteStreamSync = WriteStreamSync - /***/ }), -/***/ "./.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip/node_modules/has-flag/index.js": -/*!*************************************************************************************************!*\ - !*** ./.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip/node_modules/has-flag/index.js ***! - \*************************************************************************************************/ -/***/ ((module) => { +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/subset.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/subset.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; +const Range = __webpack_require__(/*! ../classes/range.js */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") +const Comparator = __webpack_require__(/*! ../classes/comparator.js */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/comparator.js") +const { ANY } = Comparator +const satisfies = __webpack_require__(/*! ../functions/satisfies.js */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/satisfies.js") +const compare = __webpack_require__(/*! ../functions/compare.js */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/functions/compare.js") +// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: +// - Every simple range `r1, r2, ...` is a null set, OR +// - Every simple range `r1, r2, ...` which is not a null set is a subset of +// some `R1, R2, ...` +// +// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: +// - If c is only the ANY comparator +// - If C is only the ANY comparator, return true +// - Else if in prerelease mode, return false +// - else replace c with `[>=0.0.0]` +// - If C is only the ANY comparator +// - if in prerelease mode, return true +// - else replace C with `[>=0.0.0]` +// - Let EQ be the set of = comparators in c +// - If EQ is more than one, return true (null set) +// - Let GT be the highest > or >= comparator in c +// - Let LT be the lowest < or <= comparator in c +// - If GT and LT, and GT.semver > LT.semver, return true (null set) +// - If any C is a = range, and GT or LT are set, return false +// - If EQ +// - If GT, and EQ does not satisfy GT, return true (null set) +// - If LT, and EQ does not satisfy LT, return true (null set) +// - If EQ satisfies every C, return true +// - Else return false +// - If GT +// - If GT.semver is lower than any > or >= comp in C, return false +// - If GT is >=, and GT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the GT.semver tuple, return false +// - If LT +// - If LT.semver is greater than any < or <= comp in C, return false +// - If LT is <=, and LT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the LT.semver tuple, return false +// - Else return true + +const subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true + } -module.exports = (flag, argv = process.argv) => { - const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); - const position = argv.indexOf(prefix + flag); - const terminatorPosition = argv.indexOf('--'); - return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); -}; + sub = new Range(sub, options) + dom = new Range(dom, options) + let sawNonNull = false + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options) + sawNonNull = sawNonNull || isSub !== null + if (isSub) { + continue OUTER + } + } + // the null set is a subset of everything, but null simple ranges in + // a complex range should be ignored. so if we saw a non-null range, + // then we know this isn't a subset, but if EVERY simple range was null, + // then it is a subset. + if (sawNonNull) { + return false + } + } + return true +} -/***/ }), +const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true + } -/***/ "./.yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-438b7e5265.zip/node_modules/is-windows/index.js": -/*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/is-windows-npm-1.0.2-898cd6f3d7-438b7e5265.zip/node_modules/is-windows/index.js ***! - \*****************************************************************************************************/ -/***/ ((module, exports) => { + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true + } else if (options.includePrerelease) { + sub = [new Comparator('>=0.0.0-0')] + } else { + sub = [new Comparator('>=0.0.0')] + } + } -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! - * is-windows - * - * Copyright © 2015-2018, Jon Schlinkert. - * Released under the MIT License. - */ + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true + } else { + dom = [new Comparator('>=0.0.0')] + } + } -(function(factory) { - if (exports && typeof exports === 'object' && "object" !== 'undefined') { - module.exports = factory(); - } else if (true) { - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else {} -})(function() { - 'use strict'; - return function isWindows() { - return process && (process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE)); - }; -}); + const eqSet = new Set() + let gt, lt + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options) + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options) + } else { + eqSet.add(c.semver) + } + } + if (eqSet.size > 1) { + return null + } -/***/ }), + let gtltComp + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options) + if (gtltComp > 0) { + return null + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null + } + } -/***/ "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/index.js": -/*!*******************************************************************************************!*\ - !*** ./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/index.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // will iterate one or zero times + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null + } -var fs = __webpack_require__(/*! fs */ "fs") -var core -if (process.platform === 'win32' || global.TESTING_WINDOWS) { - core = __webpack_require__(/*! ./windows.js */ "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/windows.js") -} else { - core = __webpack_require__(/*! ./mode.js */ "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/mode.js") -} + if (lt && !satisfies(eq, String(lt), options)) { + return null + } -module.exports = isexe -isexe.sync = sync + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false + } + } -function isexe (path, options, cb) { - if (typeof options === 'function') { - cb = options - options = {} + return true } - if (!cb) { - if (typeof Promise !== 'function') { - throw new TypeError('callback not provided') + let higher, lower + let hasDomLT, hasDomGT + // if the subset has a prerelease, we need a comparator in the superset + // with the same tuple and a prerelease, or it's not a subset + let needDomLTPre = lt && + !options.includePrerelease && + lt.semver.prerelease.length ? lt.semver : false + let needDomGTPre = gt && + !options.includePrerelease && + gt.semver.prerelease.length ? gt.semver : false + // exception: <1.2.3-0 is the same as <1.2.3 + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && + lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false + } + + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=' + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<=' + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomGTPre.major && + c.semver.minor === needDomGTPre.minor && + c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options) + if (higher === c && higher !== gt) { + return false + } + } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) { + return false + } } - - return new Promise(function (resolve, reject) { - isexe(path, options || {}, function (er, is) { - if (er) { - reject(er) - } else { - resolve(is) + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomLTPre.major && + c.semver.minor === needDomLTPre.minor && + c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false } - }) - }) - } - - core(path, options || {}, function (er, is) { - // ignore EACCES because that just means we aren't allowed to run it - if (er) { - if (er.code === 'EACCES' || options && options.ignoreErrors) { - er = null - is = false + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options) + if (lower === c && lower !== lt) { + return false + } + } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) { + return false } } - cb(er, is) - }) -} - -function sync (path, options) { - // my kingdom for a filtered catch - try { - return core.sync(path, options || {}) - } catch (er) { - if (options && options.ignoreErrors || er.code === 'EACCES') { + if (!c.operator && (lt || gt) && gtltComp !== 0) { return false - } else { - throw er } } -} - - -/***/ }), -/***/ "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/mode.js": -/*!******************************************************************************************!*\ - !*** ./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/mode.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // if there was a < or >, and nothing in the dom, then must be false + // UNLESS it was limited by another range in the other direction. + // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false + } -module.exports = isexe -isexe.sync = sync + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false + } -var fs = __webpack_require__(/*! fs */ "fs") + // we needed a prerelease range in a specific tuple, but didn't get one + // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, + // because it includes prereleases in the 1.2.3 tuple + if (needDomGTPre || needDomLTPre) { + return false + } -function isexe (path, options, cb) { - fs.stat(path, function (er, stat) { - cb(er, er ? false : checkStat(stat, options)) - }) + return true } -function sync (path, options) { - return checkStat(fs.statSync(path), options) +// >=1.2.3 is lower than >1.2.3 +const higherGT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp > 0 ? a + : comp < 0 ? b + : b.operator === '>' && a.operator === '>=' ? b + : a } -function checkStat (stat, options) { - return stat.isFile() && checkMode(stat, options) +// <=1.2.3 is higher than <1.2.3 +const lowerLT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp < 0 ? a + : comp > 0 ? b + : b.operator === '<' && a.operator === '<=' ? b + : a } -function checkMode (stat, options) { - var mod = stat.mode - var uid = stat.uid - var gid = stat.gid +module.exports = subset - var myUid = options.uid !== undefined ? - options.uid : process.getuid && process.getuid() - var myGid = options.gid !== undefined ? - options.gid : process.getgid && process.getgid() - var u = parseInt('100', 8) - var g = parseInt('010', 8) - var o = parseInt('001', 8) - var ug = u | g +/***/ }), - var ret = (mod & o) || - (mod & g) && gid === myGid || - (mod & u) && uid === myUid || - (mod & ug) && myUid === 0 +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/to-comparators.js": +/*!*****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/to-comparators.js ***! + \*****************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - return ret -} +const Range = __webpack_require__(/*! ../classes/range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") + +// Mostly just for testing and legacy API reasons +const toComparators = (range, options) => + new Range(range, options).set + .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) + +module.exports = toComparators /***/ }), -/***/ "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/windows.js": -/*!*********************************************************************************************!*\ - !*** ./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/windows.js ***! - \*********************************************************************************************/ +/***/ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/valid.js": +/*!********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/ranges/valid.js ***! + \********************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -module.exports = isexe -isexe.sync = sync +const Range = __webpack_require__(/*! ../classes/range */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/classes/range.js") +const validRange = (range, options) => { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} +module.exports = validRange -var fs = __webpack_require__(/*! fs */ "fs") -function checkPathExt (path, options) { - var pathext = options.pathExt !== undefined ? - options.pathExt : process.env.PATHEXT +/***/ }), - if (!pathext) { - return true - } +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/index.js": +/*!********************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/index.js ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - pathext = pathext.split(';') - if (pathext.indexOf('') !== -1) { - return true - } - for (var i = 0; i < pathext.length; i++) { - var p = pathext[i].toLowerCase() - if (p && path.substr(-p.length).toLowerCase() === p) { - return true - } - } - return false -} +"use strict"; -function checkStat (stat, path, options) { - if (!stat.isSymbolicLink() && !stat.isFile()) { - return false - } - return checkPathExt(path, options) -} -function isexe (path, options, cb) { - fs.stat(path, function (er, stat) { - cb(er, er ? false : checkStat(stat, path, options)) - }) -} +// high-level commands +exports.c = exports.create = __webpack_require__(/*! ./lib/create.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/create.js") +exports.r = exports.replace = __webpack_require__(/*! ./lib/replace.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/replace.js") +exports.t = exports.list = __webpack_require__(/*! ./lib/list.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/list.js") +exports.u = exports.update = __webpack_require__(/*! ./lib/update.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/update.js") +exports.x = exports.extract = __webpack_require__(/*! ./lib/extract.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/extract.js") -function sync (path, options) { - return checkStat(fs.statSync(path), path, options) -} +// classes +exports.Pack = __webpack_require__(/*! ./lib/pack.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pack.js") +exports.Unpack = __webpack_require__(/*! ./lib/unpack.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/unpack.js") +exports.Parse = __webpack_require__(/*! ./lib/parse.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/parse.js") +exports.ReadEntry = __webpack_require__(/*! ./lib/read-entry.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/read-entry.js") +exports.WriteEntry = __webpack_require__(/*! ./lib/write-entry.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/write-entry.js") +exports.Header = __webpack_require__(/*! ./lib/header.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/header.js") +exports.Pax = __webpack_require__(/*! ./lib/pax.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pax.js") +exports.types = __webpack_require__(/*! ./lib/types.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/types.js") /***/ }), -/***/ "./.yarn/cache/minipass-npm-3.1.1-b51d7e264d-cfcfd86adc.zip/node_modules/minipass/index.js": +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/create.js": /*!*************************************************************************************************!*\ - !*** ./.yarn/cache/minipass-npm-3.1.1-b51d7e264d-cfcfd86adc.zip/node_modules/minipass/index.js ***! + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/create.js ***! \*************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -const EE = __webpack_require__(/*! events */ "events") -const Stream = __webpack_require__(/*! stream */ "stream") -const Yallist = __webpack_require__(/*! yallist */ "./.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip/node_modules/yallist/yallist.js") -const SD = __webpack_require__(/*! string_decoder */ "string_decoder").StringDecoder -const EOF = Symbol('EOF') -const MAYBE_EMIT_END = Symbol('maybeEmitEnd') -const EMITTED_END = Symbol('emittedEnd') -const EMITTING_END = Symbol('emittingEnd') -const CLOSED = Symbol('closed') -const READ = Symbol('read') -const FLUSH = Symbol('flush') -const FLUSHCHUNK = Symbol('flushChunk') -const ENCODING = Symbol('encoding') -const DECODER = Symbol('decoder') -const FLOWING = Symbol('flowing') -const PAUSED = Symbol('paused') -const RESUME = Symbol('resume') -const BUFFERLENGTH = Symbol('bufferLength') -const BUFFERPUSH = Symbol('bufferPush') -const BUFFERSHIFT = Symbol('bufferShift') -const OBJECTMODE = Symbol('objectMode') -const DESTROYED = Symbol('destroyed') +// tar -c +const hlo = __webpack_require__(/*! ./high-level-opt.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/high-level-opt.js") -// TODO remove when Node v8 support drops -const doIter = global._MP_NO_ITERATOR_SYMBOLS_ !== '1' -const ASYNCITERATOR = doIter && Symbol.asyncIterator - || Symbol('asyncIterator not implemented') -const ITERATOR = doIter && Symbol.iterator - || Symbol('iterator not implemented') +const Pack = __webpack_require__(/*! ./pack.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pack.js") +const fsm = __webpack_require__(/*! fs-minipass */ "../../../.yarn/berry/cache/fs-minipass-npm-2.1.0-501ef87306-9.zip/node_modules/fs-minipass/index.js") +const t = __webpack_require__(/*! ./list.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/list.js") +const path = __webpack_require__(/*! path */ "path") -// events that mean 'the stream is over' -// these are treated specially, and re-emitted -// if they are listened for after emitting. -const isEndish = ev => - ev === 'end' || - ev === 'finish' || - ev === 'prefinish' +module.exports = (opt_, files, cb) => { + if (typeof files === 'function') + cb = files -const isArrayBuffer = b => b instanceof ArrayBuffer || - typeof b === 'object' && - b.constructor && - b.constructor.name === 'ArrayBuffer' && - b.byteLength >= 0 + if (Array.isArray(opt_)) + files = opt_, opt_ = {} -const isArrayBufferView = b => !Buffer.isBuffer(b) && ArrayBuffer.isView(b) + if (!files || !Array.isArray(files) || !files.length) + throw new TypeError('no files or directories specified') -module.exports = class Minipass extends Stream { - constructor (options) { - super() - this[FLOWING] = false - // whether we're explicitly paused - this[PAUSED] = false - this.pipes = new Yallist() - this.buffer = new Yallist() - this[OBJECTMODE] = options && options.objectMode || false - if (this[OBJECTMODE]) - this[ENCODING] = null - else - this[ENCODING] = options && options.encoding || null - if (this[ENCODING] === 'buffer') - this[ENCODING] = null - this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null - this[EOF] = false - this[EMITTED_END] = false - this[EMITTING_END] = false - this[CLOSED] = false - this.writable = true - this.readable = true - this[BUFFERLENGTH] = 0 - this[DESTROYED] = false - } + files = Array.from(files) - get bufferLength () { return this[BUFFERLENGTH] } + const opt = hlo(opt_) - get encoding () { return this[ENCODING] } - set encoding (enc) { - if (this[OBJECTMODE]) - throw new Error('cannot set encoding in objectMode') + if (opt.sync && typeof cb === 'function') + throw new TypeError('callback not supported for sync tar functions') - if (this[ENCODING] && enc !== this[ENCODING] && - (this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH])) - throw new Error('cannot change encoding') + if (!opt.file && typeof cb === 'function') + throw new TypeError('callback only supported with file option') - if (this[ENCODING] !== enc) { - this[DECODER] = enc ? new SD(enc) : null - if (this.buffer.length) - this.buffer = this.buffer.map(chunk => this[DECODER].write(chunk)) - } + return opt.file && opt.sync ? createFileSync(opt, files) + : opt.file ? createFile(opt, files, cb) + : opt.sync ? createSync(opt, files) + : create(opt, files) +} - this[ENCODING] = enc - } +const createFileSync = (opt, files) => { + const p = new Pack.Sync(opt) + const stream = new fsm.WriteStreamSync(opt.file, { + mode: opt.mode || 0o666, + }) + p.pipe(stream) + addFilesSync(p, files) +} - setEncoding (enc) { - this.encoding = enc - } +const createFile = (opt, files, cb) => { + const p = new Pack(opt) + const stream = new fsm.WriteStream(opt.file, { + mode: opt.mode || 0o666, + }) + p.pipe(stream) - get objectMode () { return this[OBJECTMODE] } - set objectMode (ॐ ) { this[OBJECTMODE] = this[OBJECTMODE] || !!ॐ } + const promise = new Promise((res, rej) => { + stream.on('error', rej) + stream.on('close', res) + p.on('error', rej) + }) - write (chunk, encoding, cb) { - if (this[EOF]) - throw new Error('write after end') + addFilesAsync(p, files) - if (this[DESTROYED]) { - this.emit('error', Object.assign( - new Error('Cannot call write after a stream was destroyed'), - { code: 'ERR_STREAM_DESTROYED' } - )) - return true - } + return cb ? promise.then(cb, cb) : promise +} - if (typeof encoding === 'function') - cb = encoding, encoding = 'utf8' +const addFilesSync = (p, files) => { + files.forEach(file => { + if (file.charAt(0) === '@') { + t({ + file: path.resolve(p.cwd, file.substr(1)), + sync: true, + noResume: true, + onentry: entry => p.add(entry), + }) + } else + p.add(file) + }) + p.end() +} - if (!encoding) - encoding = 'utf8' +const addFilesAsync = (p, files) => { + while (files.length) { + const file = files.shift() + if (file.charAt(0) === '@') { + return t({ + file: path.resolve(p.cwd, file.substr(1)), + noResume: true, + onentry: entry => p.add(entry), + }).then(_ => addFilesAsync(p, files)) + } else + p.add(file) + } + p.end() +} - // convert array buffers and typed array views into buffers - // at some point in the future, we may want to do the opposite! - // leave strings and buffers as-is - // anything else switches us into object mode - if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) { - if (isArrayBufferView(chunk)) - chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength) - else if (isArrayBuffer(chunk)) - chunk = Buffer.from(chunk) - else if (typeof chunk !== 'string') - // use the setter so we throw if we have encoding set - this.objectMode = true - } +const createSync = (opt, files) => { + const p = new Pack.Sync(opt) + addFilesSync(p, files) + return p +} - // this ensures at this point that the chunk is a buffer or string - // don't buffer it up or send it to the decoder - if (!this.objectMode && !chunk.length) { - const ret = this.flowing - if (this[BUFFERLENGTH] !== 0) - this.emit('readable') - if (cb) - cb() - return ret - } +const create = (opt, files) => { + const p = new Pack(opt) + addFilesAsync(p, files) + return p +} - // fast-path writing strings of same encoding to a stream with - // an empty buffer, skipping the buffer/decoder dance - if (typeof chunk === 'string' && !this[OBJECTMODE] && - // unless it is a string already ready for us to use - !(encoding === this[ENCODING] && !this[DECODER].lastNeed)) { - chunk = Buffer.from(chunk, encoding) - } - if (Buffer.isBuffer(chunk) && this[ENCODING]) - chunk = this[DECODER].write(chunk) +/***/ }), - try { - return this.flowing - ? (this.emit('data', chunk), this.flowing) - : (this[BUFFERPUSH](chunk), false) - } finally { - if (this[BUFFERLENGTH] !== 0) - this.emit('readable') - if (cb) - cb() - } - } +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/extract.js": +/*!**************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/extract.js ***! + \**************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - read (n) { - if (this[DESTROYED]) - return null +"use strict"; - try { - if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH]) - return null - if (this[OBJECTMODE]) - n = null +// tar -x +const hlo = __webpack_require__(/*! ./high-level-opt.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/high-level-opt.js") +const Unpack = __webpack_require__(/*! ./unpack.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/unpack.js") +const fs = __webpack_require__(/*! fs */ "fs") +const fsm = __webpack_require__(/*! fs-minipass */ "../../../.yarn/berry/cache/fs-minipass-npm-2.1.0-501ef87306-9.zip/node_modules/fs-minipass/index.js") +const path = __webpack_require__(/*! path */ "path") +const stripSlash = __webpack_require__(/*! ./strip-trailing-slashes.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-trailing-slashes.js") - if (this.buffer.length > 1 && !this[OBJECTMODE]) { - if (this.encoding) - this.buffer = new Yallist([ - Array.from(this.buffer).join('') - ]) - else - this.buffer = new Yallist([ - Buffer.concat(Array.from(this.buffer), this[BUFFERLENGTH]) - ]) - } +module.exports = (opt_, files, cb) => { + if (typeof opt_ === 'function') + cb = opt_, files = null, opt_ = {} + else if (Array.isArray(opt_)) + files = opt_, opt_ = {} - return this[READ](n || null, this.buffer.head.value) - } finally { - this[MAYBE_EMIT_END]() - } - } + if (typeof files === 'function') + cb = files, files = null - [READ] (n, chunk) { - if (n === chunk.length || n === null) - this[BUFFERSHIFT]() - else { - this.buffer.head.value = chunk.slice(n) - chunk = chunk.slice(0, n) - this[BUFFERLENGTH] -= n - } + if (!files) + files = [] + else + files = Array.from(files) - this.emit('data', chunk) + const opt = hlo(opt_) - if (!this.buffer.length && !this[EOF]) - this.emit('drain') + if (opt.sync && typeof cb === 'function') + throw new TypeError('callback not supported for sync tar functions') - return chunk - } + if (!opt.file && typeof cb === 'function') + throw new TypeError('callback only supported with file option') - end (chunk, encoding, cb) { - if (typeof chunk === 'function') - cb = chunk, chunk = null - if (typeof encoding === 'function') - cb = encoding, encoding = 'utf8' - if (chunk) - this.write(chunk, encoding) - if (cb) - this.once('end', cb) - this[EOF] = true - this.writable = false + if (files.length) + filesFilter(opt, files) - // if we haven't written anything, then go ahead and emit, - // even if we're not reading. - // we'll re-emit if a new 'end' listener is added anyway. - // This makes MP more suitable to write-only use cases. - if (this.flowing || !this[PAUSED]) - this[MAYBE_EMIT_END]() - return this + return opt.file && opt.sync ? extractFileSync(opt) + : opt.file ? extractFile(opt, cb) + : opt.sync ? extractSync(opt) + : extract(opt) +} + +// construct a filter that limits the file entries listed +// include child entries if a dir is included +const filesFilter = (opt, files) => { + const map = new Map(files.map(f => [stripSlash(f), true])) + const filter = opt.filter + + const mapHas = (file, r) => { + const root = r || path.parse(file).root || '.' + const ret = file === root ? false + : map.has(file) ? map.get(file) + : mapHas(path.dirname(file), root) + + map.set(file, ret) + return ret } - // don't let the internal resume be overwritten - [RESUME] () { - if (this[DESTROYED]) - return + opt.filter = filter + ? (file, entry) => filter(file, entry) && mapHas(stripSlash(file)) + : file => mapHas(stripSlash(file)) +} - this[PAUSED] = false - this[FLOWING] = true - this.emit('resume') - if (this.buffer.length) - this[FLUSH]() - else if (this[EOF]) - this[MAYBE_EMIT_END]() - else - this.emit('drain') - } +const extractFileSync = opt => { + const u = new Unpack.Sync(opt) - resume () { - return this[RESUME]() - } + const file = opt.file + const stat = fs.statSync(file) + // This trades a zero-byte read() syscall for a stat + // However, it will usually result in less memory allocation + const readSize = opt.maxReadSize || 16 * 1024 * 1024 + const stream = new fsm.ReadStreamSync(file, { + readSize: readSize, + size: stat.size, + }) + stream.pipe(u) +} - pause () { - this[FLOWING] = false - this[PAUSED] = true - } +const extractFile = (opt, cb) => { + const u = new Unpack(opt) + const readSize = opt.maxReadSize || 16 * 1024 * 1024 - get destroyed () { - return this[DESTROYED] - } + const file = opt.file + const p = new Promise((resolve, reject) => { + u.on('error', reject) + u.on('close', resolve) - get flowing () { - return this[FLOWING] - } + // This trades a zero-byte read() syscall for a stat + // However, it will usually result in less memory allocation + fs.stat(file, (er, stat) => { + if (er) + reject(er) + else { + const stream = new fsm.ReadStream(file, { + readSize: readSize, + size: stat.size, + }) + stream.on('error', reject) + stream.pipe(u) + } + }) + }) + return cb ? p.then(cb, cb) : p +} - get paused () { - return this[PAUSED] - } +const extractSync = opt => new Unpack.Sync(opt) - [BUFFERPUSH] (chunk) { - if (this[OBJECTMODE]) - this[BUFFERLENGTH] += 1 - else - this[BUFFERLENGTH] += chunk.length - return this.buffer.push(chunk) - } +const extract = opt => new Unpack(opt) - [BUFFERSHIFT] () { - if (this.buffer.length) { - if (this[OBJECTMODE]) - this[BUFFERLENGTH] -= 1 - else - this[BUFFERLENGTH] -= this.buffer.head.value.length - } - return this.buffer.shift() - } - [FLUSH] () { - do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]())) +/***/ }), - if (!this.buffer.length && !this[EOF]) - this.emit('drain') - } +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/get-write-flag.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/get-write-flag.js ***! + \*********************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - [FLUSHCHUNK] (chunk) { - return chunk ? (this.emit('data', chunk), this.flowing) : false - } +// Get the appropriate flag to use for creating files +// We use fmap on Windows platforms for files less than +// 512kb. This is a fairly low limit, but avoids making +// things slower in some cases. Since most of what this +// library is used for is extracting tarballs of many +// relatively small files in npm packages and the like, +// it can be a big boost on Windows platforms. +// Only supported in Node v12.9.0 and above. +const platform = process.env.__FAKE_PLATFORM__ || process.platform +const isWindows = platform === 'win32' +const fs = global.__FAKE_TESTING_FS__ || __webpack_require__(/*! fs */ "fs") - pipe (dest, opts) { - if (this[DESTROYED]) - return +/* istanbul ignore next */ +const { O_CREAT, O_TRUNC, O_WRONLY, UV_FS_O_FILEMAP = 0 } = fs.constants - const ended = this[EMITTED_END] - opts = opts || {} - if (dest === process.stdout || dest === process.stderr) - opts.end = false - else - opts.end = opts.end !== false +const fMapEnabled = isWindows && !!UV_FS_O_FILEMAP +const fMapLimit = 512 * 1024 +const fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY +module.exports = !fMapEnabled ? () => 'w' + : size => size < fMapLimit ? fMapFlag : 'w' - const p = { dest: dest, opts: opts, ondrain: _ => this[RESUME]() } - this.pipes.push(p) - dest.on('drain', p.ondrain) - this[RESUME]() - // piping an ended stream ends immediately - if (ended && p.opts.end) - p.dest.end() - return dest - } +/***/ }), - addListener (ev, fn) { - return this.on(ev, fn) - } +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/header.js": +/*!*************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/header.js ***! + \*************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - on (ev, fn) { - try { - return super.on(ev, fn) - } finally { - if (ev === 'data' && !this.pipes.length && !this.flowing) - this[RESUME]() - else if (isEndish(ev) && this[EMITTED_END]) { - super.emit(ev) - this.removeAllListeners(ev) - } - } - } +"use strict"; - get emittedEnd () { - return this[EMITTED_END] - } +// parse a 512-byte header block to a data object, or vice-versa +// encode returns `true` if a pax extended header is needed, because +// the data could not be faithfully encoded in a simple header. +// (Also, check header.needPax to see if it needs a pax header.) - [MAYBE_EMIT_END] () { - if (!this[EMITTING_END] && - !this[EMITTED_END] && - !this[DESTROYED] && - this.buffer.length === 0 && - this[EOF]) { - this[EMITTING_END] = true - this.emit('end') - this.emit('prefinish') - this.emit('finish') - if (this[CLOSED]) - this.emit('close') - this[EMITTING_END] = false - } - } +const types = __webpack_require__(/*! ./types.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/types.js") +const pathModule = (__webpack_require__(/*! path */ "path").posix) +const large = __webpack_require__(/*! ./large-numbers.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/large-numbers.js") - emit (ev, data) { - // error and close are only events allowed after calling destroy() - if (ev !== 'error' && ev !== 'close' && ev !== DESTROYED && this[DESTROYED]) - return - else if (ev === 'data') { - if (!data) - return +const SLURP = Symbol('slurp') +const TYPE = Symbol('type') - if (this.pipes.length) - this.pipes.forEach(p => - p.dest.write(data) === false && this.pause()) - } else if (ev === 'end') { - // only actual end gets this treatment - if (this[EMITTED_END] === true) - return +class Header { + constructor (data, off, ex, gex) { + this.cksumValid = false + this.needPax = false + this.nullBlock = false - this[EMITTED_END] = true - this.readable = false + this.block = null + this.path = null + this.mode = null + this.uid = null + this.gid = null + this.size = null + this.mtime = null + this.cksum = null + this[TYPE] = '0' + this.linkpath = null + this.uname = null + this.gname = null + this.devmaj = 0 + this.devmin = 0 + this.atime = null + this.ctime = null - if (this[DECODER]) { - data = this[DECODER].end() - if (data) { - this.pipes.forEach(p => p.dest.write(data)) - super.emit('data', data) - } - } + if (Buffer.isBuffer(data)) + this.decode(data, off || 0, ex, gex) + else if (data) + this.set(data) + } - this.pipes.forEach(p => { - p.dest.removeListener('drain', p.ondrain) - if (p.opts.end) - p.dest.end() - }) - } else if (ev === 'close') { - this[CLOSED] = true - // don't emit close before 'end' and 'finish' - if (!this[EMITTED_END] && !this[DESTROYED]) - return - } + decode (buf, off, ex, gex) { + if (!off) + off = 0 - // TODO: replace with a spread operator when Node v4 support drops - const args = new Array(arguments.length) - args[0] = ev - args[1] = data - if (arguments.length > 2) { - for (let i = 2; i < arguments.length; i++) { - args[i] = arguments[i] - } - } + if (!buf || !(buf.length >= off + 512)) + throw new Error('need 512 bytes for header') - try { - return super.emit.apply(this, args) - } finally { - if (!isEndish(ev)) - this[MAYBE_EMIT_END]() - else - this.removeAllListeners(ev) - } - } + this.path = decString(buf, off, 100) + this.mode = decNumber(buf, off + 100, 8) + this.uid = decNumber(buf, off + 108, 8) + this.gid = decNumber(buf, off + 116, 8) + this.size = decNumber(buf, off + 124, 12) + this.mtime = decDate(buf, off + 136, 12) + this.cksum = decNumber(buf, off + 148, 12) - // const all = await stream.collect() - collect () { - const buf = [] - if (!this[OBJECTMODE]) - buf.dataLength = 0 - // set the promise first, in case an error is raised - // by triggering the flow here. - const p = this.promise() - this.on('data', c => { - buf.push(c) - if (!this[OBJECTMODE]) - buf.dataLength += c.length - }) - return p.then(() => buf) - } - - // const data = await stream.concat() - concat () { - return this[OBJECTMODE] - ? Promise.reject(new Error('cannot concat in objectMode')) - : this.collect().then(buf => - this[OBJECTMODE] - ? Promise.reject(new Error('cannot concat in objectMode')) - : this[ENCODING] ? buf.join('') : Buffer.concat(buf, buf.dataLength)) - } - - // stream.promise().then(() => done, er => emitted error) - promise () { - return new Promise((resolve, reject) => { - this.on(DESTROYED, () => reject(new Error('stream destroyed'))) - this.on('end', () => resolve()) - this.on('error', er => reject(er)) - }) - } + // if we have extended or global extended headers, apply them now + // See https://github.com/npm/node-tar/pull/187 + this[SLURP](ex) + this[SLURP](gex, true) - // for await (let chunk of stream) - [ASYNCITERATOR] () { - const next = () => { - const res = this.read() - if (res !== null) - return Promise.resolve({ done: false, value: res }) + // old tar versions marked dirs as a file with a trailing / + this[TYPE] = decString(buf, off + 156, 1) + if (this[TYPE] === '') + this[TYPE] = '0' + if (this[TYPE] === '0' && this.path.substr(-1) === '/') + this[TYPE] = '5' - if (this[EOF]) - return Promise.resolve({ done: true }) + // tar implementations sometimes incorrectly put the stat(dir).size + // as the size in the tarball, even though Directory entries are + // not able to have any body at all. In the very rare chance that + // it actually DOES have a body, we weren't going to do anything with + // it anyway, and it'll just be a warning about an invalid header. + if (this[TYPE] === '5') + this.size = 0 - let resolve = null - let reject = null - const onerr = er => { - this.removeListener('data', ondata) - this.removeListener('end', onend) - reject(er) - } - const ondata = value => { - this.removeListener('error', onerr) - this.removeListener('end', onend) - this.pause() - resolve({ value: value, done: !!this[EOF] }) - } - const onend = () => { - this.removeListener('error', onerr) - this.removeListener('data', ondata) - resolve({ done: true }) + this.linkpath = decString(buf, off + 157, 100) + if (buf.slice(off + 257, off + 265).toString() === 'ustar\u000000') { + this.uname = decString(buf, off + 265, 32) + this.gname = decString(buf, off + 297, 32) + this.devmaj = decNumber(buf, off + 329, 8) + this.devmin = decNumber(buf, off + 337, 8) + if (buf[off + 475] !== 0) { + // definitely a prefix, definitely >130 chars. + const prefix = decString(buf, off + 345, 155) + this.path = prefix + '/' + this.path + } else { + const prefix = decString(buf, off + 345, 130) + if (prefix) + this.path = prefix + '/' + this.path + this.atime = decDate(buf, off + 476, 12) + this.ctime = decDate(buf, off + 488, 12) } - const ondestroy = () => onerr(new Error('stream destroyed')) - return new Promise((res, rej) => { - reject = rej - resolve = res - this.once(DESTROYED, ondestroy) - this.once('error', onerr) - this.once('end', onend) - this.once('data', ondata) - }) } - return { next } + let sum = 8 * 0x20 + for (let i = off; i < off + 148; i++) + sum += buf[i] + + for (let i = off + 156; i < off + 512; i++) + sum += buf[i] + + this.cksumValid = sum === this.cksum + if (this.cksum === null && sum === 8 * 0x20) + this.nullBlock = true } - // for (let chunk of stream) - [ITERATOR] () { - const next = () => { - const value = this.read() - const done = value === null - return { value, done } + [SLURP] (ex, global) { + for (const k in ex) { + // we slurp in everything except for the path attribute in + // a global extended header, because that's weird. + if (ex[k] !== null && ex[k] !== undefined && + !(global && k === 'path')) + this[k] = ex[k] } - return { next } } - destroy (er) { - if (this[DESTROYED]) { - if (er) - this.emit('error', er) - else - this.emit(DESTROYED) - return this + encode (buf, off) { + if (!buf) { + buf = this.block = Buffer.alloc(512) + off = 0 } - this[DESTROYED] = true + if (!off) + off = 0 - // throw away all buffered data, it's never coming out - this.buffer = new Yallist() - this[BUFFERLENGTH] = 0 + if (!(buf.length >= off + 512)) + throw new Error('need 512 bytes for header') - if (typeof this.close === 'function' && !this[CLOSED]) - this.close() + const prefixSize = this.ctime || this.atime ? 130 : 155 + const split = splitPrefix(this.path || '', prefixSize) + const path = split[0] + const prefix = split[1] + this.needPax = split[2] - if (er) - this.emit('error', er) - else // if no error to emit, still reject pending promises - this.emit(DESTROYED) + this.needPax = encString(buf, off, 100, path) || this.needPax + this.needPax = encNumber(buf, off + 100, 8, this.mode) || this.needPax + this.needPax = encNumber(buf, off + 108, 8, this.uid) || this.needPax + this.needPax = encNumber(buf, off + 116, 8, this.gid) || this.needPax + this.needPax = encNumber(buf, off + 124, 12, this.size) || this.needPax + this.needPax = encDate(buf, off + 136, 12, this.mtime) || this.needPax + buf[off + 156] = this[TYPE].charCodeAt(0) + this.needPax = encString(buf, off + 157, 100, this.linkpath) || this.needPax + buf.write('ustar\u000000', off + 257, 8) + this.needPax = encString(buf, off + 265, 32, this.uname) || this.needPax + this.needPax = encString(buf, off + 297, 32, this.gname) || this.needPax + this.needPax = encNumber(buf, off + 329, 8, this.devmaj) || this.needPax + this.needPax = encNumber(buf, off + 337, 8, this.devmin) || this.needPax + this.needPax = encString(buf, off + 345, prefixSize, prefix) || this.needPax + if (buf[off + 475] !== 0) + this.needPax = encString(buf, off + 345, 155, prefix) || this.needPax + else { + this.needPax = encString(buf, off + 345, 130, prefix) || this.needPax + this.needPax = encDate(buf, off + 476, 12, this.atime) || this.needPax + this.needPax = encDate(buf, off + 488, 12, this.ctime) || this.needPax + } - return this + let sum = 8 * 0x20 + for (let i = off; i < off + 148; i++) + sum += buf[i] + + for (let i = off + 156; i < off + 512; i++) + sum += buf[i] + + this.cksum = sum + encNumber(buf, off + 148, 8, this.cksum) + this.cksumValid = true + + return this.needPax } - static isStream (s) { - return !!s && (s instanceof Minipass || s instanceof Stream || - s instanceof EE && ( - typeof s.pipe === 'function' || // readable - (typeof s.write === 'function' && typeof s.end === 'function') // writable - )) + set (data) { + for (const i in data) { + if (data[i] !== null && data[i] !== undefined) + this[i] = data[i] + } + } + + get type () { + return types.name.get(this[TYPE]) || this[TYPE] + } + + get typeKey () { + return this[TYPE] + } + + set type (type) { + if (types.code.has(type)) + this[TYPE] = types.code.get(type) + else + this[TYPE] = type } } +const splitPrefix = (p, prefixSize) => { + const pathSize = 100 + let pp = p + let prefix = '' + let ret + const root = pathModule.parse(p).root || '.' -/***/ }), + if (Buffer.byteLength(pp) < pathSize) + ret = [pp, prefix, false] + else { + // first set prefix to the dir, and path to the base + prefix = pathModule.dirname(pp) + pp = pathModule.basename(pp) -/***/ "./.yarn/cache/minizlib-npm-2.1.0-9531be52b3-6a811aaa3a.zip/node_modules/minizlib/constants.js": -/*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/minizlib-npm-2.1.0-9531be52b3-6a811aaa3a.zip/node_modules/minizlib/constants.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + do { + // both fit! + if (Buffer.byteLength(pp) <= pathSize && + Buffer.byteLength(prefix) <= prefixSize) + ret = [pp, prefix, false] -// Update with any zlib constants that are added or changed in the future. -// Node v6 didn't export this, so we just hard code the version and rely -// on all the other hard-coded values from zlib v4736. When node v6 -// support drops, we can just export the realZlibConstants object. -const realZlibConstants = __webpack_require__(/*! zlib */ "zlib").constants || - /* istanbul ignore next */ { ZLIB_VERNUM: 4736 } + // prefix fits in prefix, but path doesn't fit in path + else if (Buffer.byteLength(pp) > pathSize && + Buffer.byteLength(prefix) <= prefixSize) + ret = [pp.substr(0, pathSize - 1), prefix, true] -module.exports = Object.freeze(Object.assign(Object.create(null), { - Z_NO_FLUSH: 0, - Z_PARTIAL_FLUSH: 1, - Z_SYNC_FLUSH: 2, - Z_FULL_FLUSH: 3, - Z_FINISH: 4, - Z_BLOCK: 5, - Z_OK: 0, - Z_STREAM_END: 1, - Z_NEED_DICT: 2, - Z_ERRNO: -1, - Z_STREAM_ERROR: -2, - Z_DATA_ERROR: -3, - Z_MEM_ERROR: -4, - Z_BUF_ERROR: -5, - Z_VERSION_ERROR: -6, - Z_NO_COMPRESSION: 0, - Z_BEST_SPEED: 1, - Z_BEST_COMPRESSION: 9, - Z_DEFAULT_COMPRESSION: -1, - Z_FILTERED: 1, - Z_HUFFMAN_ONLY: 2, - Z_RLE: 3, - Z_FIXED: 4, - Z_DEFAULT_STRATEGY: 0, - DEFLATE: 1, - INFLATE: 2, - GZIP: 3, - GUNZIP: 4, - DEFLATERAW: 5, - INFLATERAW: 6, - UNZIP: 7, - BROTLI_DECODE: 8, - BROTLI_ENCODE: 9, - Z_MIN_WINDOWBITS: 8, - Z_MAX_WINDOWBITS: 15, - Z_DEFAULT_WINDOWBITS: 15, - Z_MIN_CHUNK: 64, - Z_MAX_CHUNK: Infinity, - Z_DEFAULT_CHUNK: 16384, - Z_MIN_MEMLEVEL: 1, - Z_MAX_MEMLEVEL: 9, - Z_DEFAULT_MEMLEVEL: 8, - Z_MIN_LEVEL: -1, - Z_MAX_LEVEL: 9, - Z_DEFAULT_LEVEL: -1, - BROTLI_OPERATION_PROCESS: 0, - BROTLI_OPERATION_FLUSH: 1, - BROTLI_OPERATION_FINISH: 2, - BROTLI_OPERATION_EMIT_METADATA: 3, - BROTLI_MODE_GENERIC: 0, - BROTLI_MODE_TEXT: 1, - BROTLI_MODE_FONT: 2, - BROTLI_DEFAULT_MODE: 0, - BROTLI_MIN_QUALITY: 0, - BROTLI_MAX_QUALITY: 11, - BROTLI_DEFAULT_QUALITY: 11, - BROTLI_MIN_WINDOW_BITS: 10, - BROTLI_MAX_WINDOW_BITS: 24, - BROTLI_LARGE_MAX_WINDOW_BITS: 30, - BROTLI_DEFAULT_WINDOW: 22, - BROTLI_MIN_INPUT_BLOCK_BITS: 16, - BROTLI_MAX_INPUT_BLOCK_BITS: 24, - BROTLI_PARAM_MODE: 0, - BROTLI_PARAM_QUALITY: 1, - BROTLI_PARAM_LGWIN: 2, - BROTLI_PARAM_LGBLOCK: 3, - BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4, - BROTLI_PARAM_SIZE_HINT: 5, - BROTLI_PARAM_LARGE_WINDOW: 6, - BROTLI_PARAM_NPOSTFIX: 7, - BROTLI_PARAM_NDIRECT: 8, - BROTLI_DECODER_RESULT_ERROR: 0, - BROTLI_DECODER_RESULT_SUCCESS: 1, - BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2, - BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3, - BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0, - BROTLI_DECODER_PARAM_LARGE_WINDOW: 1, - BROTLI_DECODER_NO_ERROR: 0, - BROTLI_DECODER_SUCCESS: 1, - BROTLI_DECODER_NEEDS_MORE_INPUT: 2, - BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3, - BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1, - BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2, - BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3, - BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4, - BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5, - BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6, - BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7, - BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8, - BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9, - BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10, - BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11, - BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12, - BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13, - BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14, - BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15, - BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16, - BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19, - BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20, - BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21, - BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22, - BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25, - BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26, - BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27, - BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30, - BROTLI_DECODER_ERROR_UNREACHABLE: -31, -}, realZlibConstants)) - - -/***/ }), - -/***/ "./.yarn/cache/minizlib-npm-2.1.0-9531be52b3-6a811aaa3a.zip/node_modules/minizlib/index.js": -/*!*************************************************************************************************!*\ - !*** ./.yarn/cache/minizlib-npm-2.1.0-9531be52b3-6a811aaa3a.zip/node_modules/minizlib/index.js ***! - \*************************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + else { + // make path take a bit from prefix + pp = pathModule.join(pathModule.basename(prefix), pp) + prefix = pathModule.dirname(prefix) + } + } while (prefix !== root && !ret) -"use strict"; + // at this point, found no resolution, just truncate + if (!ret) + ret = [p.substr(0, pathSize - 1), '', true] + } + return ret +} +const decString = (buf, off, size) => + buf.slice(off, off + size).toString('utf8').replace(/\0.*/, '') -const assert = __webpack_require__(/*! assert */ "assert") -const Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer -const realZlib = __webpack_require__(/*! zlib */ "zlib") +const decDate = (buf, off, size) => + numToDate(decNumber(buf, off, size)) -const constants = exports.constants = __webpack_require__(/*! ./constants.js */ "./.yarn/cache/minizlib-npm-2.1.0-9531be52b3-6a811aaa3a.zip/node_modules/minizlib/constants.js") -const Minipass = __webpack_require__(/*! minipass */ "./.yarn/cache/minipass-npm-3.1.1-b51d7e264d-cfcfd86adc.zip/node_modules/minipass/index.js") +const numToDate = num => num === null ? null : new Date(num * 1000) -const OriginalBufferConcat = Buffer.concat +const decNumber = (buf, off, size) => + buf[off] & 0x80 ? large.parse(buf.slice(off, off + size)) + : decSmallNumber(buf, off, size) -const _superWrite = Symbol('_superWrite') -class ZlibError extends Error { - constructor (err) { - super('zlib: ' + err.message) - this.code = err.code - this.errno = err.errno - /* istanbul ignore if */ - if (!this.code) - this.code = 'ZLIB_ERROR' +const nanNull = value => isNaN(value) ? null : value - this.message = 'zlib: ' + err.message - Error.captureStackTrace(this, this.constructor) - } +const decSmallNumber = (buf, off, size) => + nanNull(parseInt( + buf.slice(off, off + size) + .toString('utf8').replace(/\0.*$/, '').trim(), 8)) - get name () { - return 'ZlibError' - } +// the maximum encodable as a null-terminated octal, by field size +const MAXNUM = { + 12: 0o77777777777, + 8: 0o7777777, } -// the Zlib class they all inherit from -// This thing manages the queue of requests, and returns -// true or false if there is anything in the queue when -// you call the .write() method. -const _opts = Symbol('opts') -const _flushFlag = Symbol('flushFlag') -const _finishFlushFlag = Symbol('finishFlushFlag') -const _fullFlushFlag = Symbol('fullFlushFlag') -const _handle = Symbol('handle') -const _onError = Symbol('onError') -const _sawError = Symbol('sawError') -const _level = Symbol('level') -const _strategy = Symbol('strategy') -const _ended = Symbol('ended') -const _defaultFullFlush = Symbol('_defaultFullFlush') - -class ZlibBase extends Minipass { - constructor (opts, mode) { - if (!opts || typeof opts !== 'object') - throw new TypeError('invalid options for ZlibBase constructor') - - super(opts) - this[_ended] = false - this[_opts] = opts +const encNumber = (buf, off, size, number) => + number === null ? false : + number > MAXNUM[size] || number < 0 + ? (large.encode(number, buf.slice(off, off + size)), true) + : (encSmallNumber(buf, off, size, number), false) - this[_flushFlag] = opts.flush - this[_finishFlushFlag] = opts.finishFlush - // this will throw if any options are invalid for the class selected - try { - this[_handle] = new realZlib[mode](opts) - } catch (er) { - // make sure that all errors get decorated properly - throw new ZlibError(er) - } +const encSmallNumber = (buf, off, size, number) => + buf.write(octalString(number, size), off, size, 'ascii') - this[_onError] = (err) => { - this[_sawError] = true - // there is no way to cleanly recover. - // continuing only obscures problems. - this.close() - this.emit('error', err) - } +const octalString = (number, size) => + padOctal(Math.floor(number).toString(8), size) - this[_handle].on('error', er => this[_onError](new ZlibError(er))) - this.once('end', () => this.close) - } +const padOctal = (string, size) => + (string.length === size - 1 ? string + : new Array(size - string.length - 1).join('0') + string + ' ') + '\0' - close () { - if (this[_handle]) { - this[_handle].close() - this[_handle] = null - this.emit('close') - } - } +const encDate = (buf, off, size, date) => + date === null ? false : + encNumber(buf, off, size, date.getTime() / 1000) - reset () { - if (!this[_sawError]) { - assert(this[_handle], 'zlib binding closed') - return this[_handle].reset() - } - } +// enough to fill the longest string we've got +const NULLS = new Array(156).join('\0') +// pad with nulls, return true if it's longer or non-ascii +const encString = (buf, off, size, string) => + string === null ? false : + (buf.write(string + NULLS, off, size, 'utf8'), + string.length !== Buffer.byteLength(string) || string.length > size) - flush (flushFlag) { - if (this.ended) - return +module.exports = Header - if (typeof flushFlag !== 'number') - flushFlag = this[_fullFlushFlag] - this.write(Object.assign(Buffer.alloc(0), { [_flushFlag]: flushFlag })) - } - end (chunk, encoding, cb) { - if (chunk) - this.write(chunk, encoding) - this.flush(this[_finishFlushFlag]) - this[_ended] = true - return super.end(null, null, cb) - } +/***/ }), - get ended () { - return this[_ended] - } +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/high-level-opt.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/high-level-opt.js ***! + \*********************************************************************************************************/ +/***/ ((module) => { - write (chunk, encoding, cb) { - // process the chunk using the sync process - // then super.write() all the outputted chunks - if (typeof encoding === 'function') - cb = encoding, encoding = 'utf8' +"use strict"; - if (typeof chunk === 'string') - chunk = Buffer.from(chunk, encoding) - if (this[_sawError]) - return - assert(this[_handle], 'zlib binding closed') +// turn tar(1) style args like `C` into the more verbose things like `cwd` - // _processChunk tries to .close() the native handle after it's done, so we - // intercept that by temporarily making it a no-op. - const nativeHandle = this[_handle]._handle - const originalNativeClose = nativeHandle.close - nativeHandle.close = () => {} - const originalClose = this[_handle].close - this[_handle].close = () => {} - // It also calls `Buffer.concat()` at the end, which may be convenient - // for some, but which we are not interested in as it slows us down. - Buffer.concat = (args) => args - let result - try { - const flushFlag = typeof chunk[_flushFlag] === 'number' - ? chunk[_flushFlag] : this[_flushFlag] - result = this[_handle]._processChunk(chunk, flushFlag) - // if we don't throw, reset it back how it was - Buffer.concat = OriginalBufferConcat - } catch (err) { - // or if we do, put Buffer.concat() back before we emit error - // Error events call into user code, which may call Buffer.concat() - Buffer.concat = OriginalBufferConcat - this[_onError](new ZlibError(err)) - } finally { - if (this[_handle]) { - // Core zlib resets `_handle` to null after attempting to close the - // native handle. Our no-op handler prevented actual closure, but we - // need to restore the `._handle` property. - this[_handle]._handle = nativeHandle - nativeHandle.close = originalNativeClose - this[_handle].close = originalClose - // `_processChunk()` adds an 'error' listener. If we don't remove it - // after each call, these handlers start piling up. - this[_handle].removeAllListeners('error') - } - } - - let writeReturn - if (result) { - if (Array.isArray(result) && result.length > 0) { - // The first buffer is always `handle._outBuffer`, which would be - // re-used for later invocations; so, we always have to copy that one. - writeReturn = this[_superWrite](Buffer.from(result[0])) - for (let i = 1; i < result.length; i++) { - writeReturn = this[_superWrite](result[i]) - } - } else { - writeReturn = this[_superWrite](Buffer.from(result)) - } - } - - if (cb) - cb() - return writeReturn - } - - [_superWrite] (data) { - return super.write(data) - } -} +const argmap = new Map([ + ['C', 'cwd'], + ['f', 'file'], + ['z', 'gzip'], + ['P', 'preservePaths'], + ['U', 'unlink'], + ['strip-components', 'strip'], + ['stripComponents', 'strip'], + ['keep-newer', 'newer'], + ['keepNewer', 'newer'], + ['keep-newer-files', 'newer'], + ['keepNewerFiles', 'newer'], + ['k', 'keep'], + ['keep-existing', 'keep'], + ['keepExisting', 'keep'], + ['m', 'noMtime'], + ['no-mtime', 'noMtime'], + ['p', 'preserveOwner'], + ['L', 'follow'], + ['h', 'follow'], +]) -class Zlib extends ZlibBase { - constructor (opts, mode) { - opts = opts || {} +module.exports = opt => opt ? Object.keys(opt).map(k => [ + argmap.has(k) ? argmap.get(k) : k, opt[k], +]).reduce((set, kv) => (set[kv[0]] = kv[1], set), Object.create(null)) : {} - opts.flush = opts.flush || constants.Z_NO_FLUSH - opts.finishFlush = opts.finishFlush || constants.Z_FINISH - super(opts, mode) - this[_fullFlushFlag] = constants.Z_FULL_FLUSH - this[_level] = opts.level - this[_strategy] = opts.strategy - } +/***/ }), - params (level, strategy) { - if (this[_sawError]) - return +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/large-numbers.js": +/*!********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/large-numbers.js ***! + \********************************************************************************************************/ +/***/ ((module) => { - if (!this[_handle]) - throw new Error('cannot switch params when binding is closed') +"use strict"; - // no way to test this without also not supporting params at all - /* istanbul ignore if */ - if (!this[_handle].params) - throw new Error('not supported in this implementation') +// Tar can encode large and negative numbers using a leading byte of +// 0xff for negative, and 0x80 for positive. - if (this[_level] !== level || this[_strategy] !== strategy) { - this.flush(constants.Z_SYNC_FLUSH) - assert(this[_handle], 'zlib binding closed') - // .params() calls .flush(), but the latter is always async in the - // core zlib. We override .flush() temporarily to intercept that and - // flush synchronously. - const origFlush = this[_handle].flush - this[_handle].flush = (flushFlag, cb) => { - this.flush(flushFlag) - cb() - } - try { - this[_handle].params(level, strategy) - } finally { - this[_handle].flush = origFlush - } - /* istanbul ignore else */ - if (this[_handle]) { - this[_level] = level - this[_strategy] = strategy - } - } - } +const encode = (num, buf) => { + if (!Number.isSafeInteger(num)) + // The number is so large that javascript cannot represent it with integer + // precision. + throw Error('cannot encode number outside of javascript safe integer range') + else if (num < 0) + encodeNegative(num, buf) + else + encodePositive(num, buf) + return buf } -// minimal 2-byte header -class Deflate extends Zlib { - constructor (opts) { - super(opts, 'Deflate') +const encodePositive = (num, buf) => { + buf[0] = 0x80 + + for (var i = buf.length; i > 1; i--) { + buf[i - 1] = num & 0xff + num = Math.floor(num / 0x100) } } -class Inflate extends Zlib { - constructor (opts) { - super(opts, 'Inflate') +const encodeNegative = (num, buf) => { + buf[0] = 0xff + var flipped = false + num = num * -1 + for (var i = buf.length; i > 1; i--) { + var byte = num & 0xff + num = Math.floor(num / 0x100) + if (flipped) + buf[i - 1] = onesComp(byte) + else if (byte === 0) + buf[i - 1] = 0 + else { + flipped = true + buf[i - 1] = twosComp(byte) + } } } -// gzip - bigger header, same deflate compression -const _portable = Symbol('_portable') -class Gzip extends Zlib { - constructor (opts) { - super(opts, 'Gzip') - this[_portable] = opts && !!opts.portable - } +const parse = (buf) => { + const pre = buf[0] + const value = pre === 0x80 ? pos(buf.slice(1, buf.length)) + : pre === 0xff ? twos(buf) + : null + if (value === null) + throw Error('invalid base256 encoding') - [_superWrite] (data) { - if (!this[_portable]) - return super[_superWrite](data) + if (!Number.isSafeInteger(value)) + // The number is so large that javascript cannot represent it with integer + // precision. + throw Error('parsed number outside of javascript safe integer range') - // we'll always get the header emitted in one first chunk - // overwrite the OS indicator byte with 0xFF - this[_portable] = false - data[9] = 255 - return super[_superWrite](data) - } + return value } -class Gunzip extends Zlib { - constructor (opts) { - super(opts, 'Gunzip') +const twos = (buf) => { + var len = buf.length + var sum = 0 + var flipped = false + for (var i = len - 1; i > -1; i--) { + var byte = buf[i] + var f + if (flipped) + f = onesComp(byte) + else if (byte === 0) + f = byte + else { + flipped = true + f = twosComp(byte) + } + if (f !== 0) + sum -= f * Math.pow(256, len - i - 1) } + return sum } -// raw - no header -class DeflateRaw extends Zlib { - constructor (opts) { - super(opts, 'DeflateRaw') +const pos = (buf) => { + var len = buf.length + var sum = 0 + for (var i = len - 1; i > -1; i--) { + var byte = buf[i] + if (byte !== 0) + sum += byte * Math.pow(256, len - i - 1) } + return sum } -class InflateRaw extends Zlib { - constructor (opts) { - super(opts, 'InflateRaw') - } -} +const onesComp = byte => (0xff ^ byte) & 0xff -// auto-detect header. -class Unzip extends Zlib { - constructor (opts) { - super(opts, 'Unzip') - } +const twosComp = byte => ((0xff ^ byte) + 1) & 0xff + +module.exports = { + encode, + parse, } -class Brotli extends ZlibBase { - constructor (opts, mode) { - opts = opts || {} - opts.flush = opts.flush || constants.BROTLI_OPERATION_PROCESS - opts.finishFlush = opts.finishFlush || constants.BROTLI_OPERATION_FINISH +/***/ }), - super(opts, mode) +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/list.js": +/*!***********************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/list.js ***! + \***********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - this[_fullFlushFlag] = constants.BROTLI_OPERATION_FLUSH - } -} +"use strict"; -class BrotliCompress extends Brotli { - constructor (opts) { - super(opts, 'BrotliCompress') - } -} -class BrotliDecompress extends Brotli { - constructor (opts) { - super(opts, 'BrotliDecompress') - } -} +// XXX: This shares a lot in common with extract.js +// maybe some DRY opportunity here? -exports.Deflate = Deflate -exports.Inflate = Inflate -exports.Gzip = Gzip -exports.Gunzip = Gunzip -exports.DeflateRaw = DeflateRaw -exports.InflateRaw = InflateRaw -exports.Unzip = Unzip -/* istanbul ignore else */ -if (typeof realZlib.BrotliCompress === 'function') { - exports.BrotliCompress = BrotliCompress - exports.BrotliDecompress = BrotliDecompress -} else { - exports.BrotliCompress = exports.BrotliDecompress = class { - constructor () { - throw new Error('Brotli is not supported in this version of Node.js') - } - } -} - - -/***/ }), +// tar -t +const hlo = __webpack_require__(/*! ./high-level-opt.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/high-level-opt.js") +const Parser = __webpack_require__(/*! ./parse.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/parse.js") +const fs = __webpack_require__(/*! fs */ "fs") +const fsm = __webpack_require__(/*! fs-minipass */ "../../../.yarn/berry/cache/fs-minipass-npm-2.1.0-501ef87306-9.zip/node_modules/fs-minipass/index.js") +const path = __webpack_require__(/*! path */ "path") +const stripSlash = __webpack_require__(/*! ./strip-trailing-slashes.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-trailing-slashes.js") -/***/ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/index.js": -/*!*********************************************************************************************!*\ - !*** ./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/index.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +module.exports = (opt_, files, cb) => { + if (typeof opt_ === 'function') + cb = opt_, files = null, opt_ = {} + else if (Array.isArray(opt_)) + files = opt_, opt_ = {} -const optsArg = __webpack_require__(/*! ./lib/opts-arg.js */ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/opts-arg.js") -const pathArg = __webpack_require__(/*! ./lib/path-arg.js */ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/path-arg.js") + if (typeof files === 'function') + cb = files, files = null -const {mkdirpNative, mkdirpNativeSync} = __webpack_require__(/*! ./lib/mkdirp-native.js */ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/mkdirp-native.js") -const {mkdirpManual, mkdirpManualSync} = __webpack_require__(/*! ./lib/mkdirp-manual.js */ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/mkdirp-manual.js") -const {useNative, useNativeSync} = __webpack_require__(/*! ./lib/use-native.js */ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/use-native.js") + if (!files) + files = [] + else + files = Array.from(files) + const opt = hlo(opt_) -const mkdirp = (path, opts) => { - path = pathArg(path) - opts = optsArg(opts) - return useNative(opts) - ? mkdirpNative(path, opts) - : mkdirpManual(path, opts) -} + if (opt.sync && typeof cb === 'function') + throw new TypeError('callback not supported for sync tar functions') -const mkdirpSync = (path, opts) => { - path = pathArg(path) - opts = optsArg(opts) - return useNativeSync(opts) - ? mkdirpNativeSync(path, opts) - : mkdirpManualSync(path, opts) -} + if (!opt.file && typeof cb === 'function') + throw new TypeError('callback only supported with file option') -mkdirp.sync = mkdirpSync -mkdirp.native = (path, opts) => mkdirpNative(pathArg(path), optsArg(opts)) -mkdirp.manual = (path, opts) => mkdirpManual(pathArg(path), optsArg(opts)) -mkdirp.nativeSync = (path, opts) => mkdirpNativeSync(pathArg(path), optsArg(opts)) -mkdirp.manualSync = (path, opts) => mkdirpManualSync(pathArg(path), optsArg(opts)) + if (files.length) + filesFilter(opt, files) -module.exports = mkdirp + if (!opt.noResume) + onentryFunction(opt) + return opt.file && opt.sync ? listFileSync(opt) + : opt.file ? listFile(opt, cb) + : list(opt) +} -/***/ }), +const onentryFunction = opt => { + const onentry = opt.onentry + opt.onentry = onentry ? e => { + onentry(e) + e.resume() + } : e => e.resume() +} -/***/ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/find-made.js": -/*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/find-made.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +// construct a filter that limits the file entries listed +// include child entries if a dir is included +const filesFilter = (opt, files) => { + const map = new Map(files.map(f => [stripSlash(f), true])) + const filter = opt.filter -const {dirname} = __webpack_require__(/*! path */ "path") + const mapHas = (file, r) => { + const root = r || path.parse(file).root || '.' + const ret = file === root ? false + : map.has(file) ? map.get(file) + : mapHas(path.dirname(file), root) -const findMade = (opts, parent, path = undefined) => { - // we never want the 'made' return value to be a root directory - if (path === parent) - return Promise.resolve() + map.set(file, ret) + return ret + } - return opts.statAsync(parent).then( - st => st.isDirectory() ? path : undefined, // will fail later - er => er.code === 'ENOENT' - ? findMade(opts, dirname(parent), parent) - : undefined - ) + opt.filter = filter + ? (file, entry) => filter(file, entry) && mapHas(stripSlash(file)) + : file => mapHas(stripSlash(file)) } -const findMadeSync = (opts, parent, path = undefined) => { - if (path === parent) - return undefined - +const listFileSync = opt => { + const p = list(opt) + const file = opt.file + let threw = true + let fd try { - return opts.statSync(parent).isDirectory() ? path : undefined - } catch (er) { - return er.code === 'ENOENT' - ? findMadeSync(opts, dirname(parent), parent) - : undefined + const stat = fs.statSync(file) + const readSize = opt.maxReadSize || 16 * 1024 * 1024 + if (stat.size < readSize) + p.end(fs.readFileSync(file)) + else { + let pos = 0 + const buf = Buffer.allocUnsafe(readSize) + fd = fs.openSync(file, 'r') + while (pos < stat.size) { + const bytesRead = fs.readSync(fd, buf, 0, readSize, pos) + pos += bytesRead + p.write(buf.slice(0, bytesRead)) + } + p.end() + } + threw = false + } finally { + if (threw && fd) { + try { + fs.closeSync(fd) + } catch (er) {} + } } } -module.exports = {findMade, findMadeSync} +const listFile = (opt, cb) => { + const parse = new Parser(opt) + const readSize = opt.maxReadSize || 16 * 1024 * 1024 + + const file = opt.file + const p = new Promise((resolve, reject) => { + parse.on('error', reject) + parse.on('end', resolve) + + fs.stat(file, (er, stat) => { + if (er) + reject(er) + else { + const stream = new fsm.ReadStream(file, { + readSize: readSize, + size: stat.size, + }) + stream.on('error', reject) + stream.pipe(parse) + } + }) + }) + return cb ? p.then(cb, cb) : p +} + +const list = opt => new Parser(opt) /***/ }), -/***/ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/mkdirp-manual.js": -/*!*********************************************************************************************************!*\ - !*** ./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/mkdirp-manual.js ***! - \*********************************************************************************************************/ +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/mkdir.js": +/*!************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/mkdir.js ***! + \************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -const {dirname} = __webpack_require__(/*! path */ "path") +"use strict"; -const mkdirpManual = (path, opts, made) => { - opts.recursive = false - const parent = dirname(path) - if (parent === path) { - return opts.mkdirAsync(path, opts).catch(er => { - // swallowed by recursive implementation on posix systems - // any other error is a failure - if (er.code !== 'EISDIR') - throw er - }) +// wrapper around mkdirp for tar's needs. + +// TODO: This should probably be a class, not functionally +// passing around state in a gazillion args. + +const mkdirp = __webpack_require__(/*! mkdirp */ "../../../.yarn/berry/cache/mkdirp-npm-1.0.4-37f6ef56b9-9.zip/node_modules/mkdirp/index.js") +const fs = __webpack_require__(/*! fs */ "fs") +const path = __webpack_require__(/*! path */ "path") +const chownr = __webpack_require__(/*! chownr */ "../../../.yarn/berry/cache/chownr-npm-2.0.0-638f1c9c61-9.zip/node_modules/chownr/chownr.js") +const normPath = __webpack_require__(/*! ./normalize-windows-path.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-windows-path.js") + +class SymlinkError extends Error { + constructor (symlink, path) { + super('Cannot extract through symbolic link') + this.path = path + this.symlink = symlink } - return opts.mkdirAsync(path, opts).then(() => made || path, er => { - if (er.code === 'ENOENT') - return mkdirpManual(parent, opts) - .then(made => mkdirpManual(path, opts, made)) - if (er.code !== 'EEXIST' && er.code !== 'EROFS') - throw er - return opts.statAsync(path).then(st => { - if (st.isDirectory()) - return made - else - throw er - }, () => { throw er }) - }) + get name () { + return 'SylinkError' + } } -const mkdirpManualSync = (path, opts, made) => { - const parent = dirname(path) - opts.recursive = false - - if (parent === path) { - try { - return opts.mkdirSync(path, opts) - } catch (er) { - // swallowed by recursive implementation on posix systems - // any other error is a failure - if (er.code !== 'EISDIR') - throw er - else - return - } +class CwdError extends Error { + constructor (path, code) { + super(code + ': Cannot cd into \'' + path + '\'') + this.path = path + this.code = code } - try { - opts.mkdirSync(path, opts) - return made || path - } catch (er) { - if (er.code === 'ENOENT') - return mkdirpManualSync(path, opts, mkdirpManualSync(parent, opts, made)) - if (er.code !== 'EEXIST' && er.code !== 'EROFS') - throw er - try { - if (!opts.statSync(path).isDirectory()) - throw er - } catch (_) { - throw er - } + get name () { + return 'CwdError' } } -module.exports = {mkdirpManual, mkdirpManualSync} +const cGet = (cache, key) => cache.get(normPath(key)) +const cSet = (cache, key, val) => cache.set(normPath(key), val) +const checkCwd = (dir, cb) => { + fs.stat(dir, (er, st) => { + if (er || !st.isDirectory()) + er = new CwdError(dir, er && er.code || 'ENOTDIR') + cb(er) + }) +} -/***/ }), +module.exports = (dir, opt, cb) => { + dir = normPath(dir) -/***/ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/mkdirp-native.js": -/*!*********************************************************************************************************!*\ - !*** ./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/mkdirp-native.js ***! - \*********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // if there's any overlap between mask and mode, + // then we'll need an explicit chmod + const umask = opt.umask + const mode = opt.mode | 0o0700 + const needChmod = (mode & umask) !== 0 -const {dirname} = __webpack_require__(/*! path */ "path") -const {findMade, findMadeSync} = __webpack_require__(/*! ./find-made.js */ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/find-made.js") -const {mkdirpManual, mkdirpManualSync} = __webpack_require__(/*! ./mkdirp-manual.js */ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/mkdirp-manual.js") + const uid = opt.uid + const gid = opt.gid + const doChown = typeof uid === 'number' && + typeof gid === 'number' && + (uid !== opt.processUid || gid !== opt.processGid) -const mkdirpNative = (path, opts) => { - opts.recursive = true - const parent = dirname(path) - if (parent === path) - return opts.mkdirAsync(path, opts) + const preserve = opt.preserve + const unlink = opt.unlink + const cache = opt.cache + const cwd = normPath(opt.cwd) - return findMade(opts, path).then(made => - opts.mkdirAsync(path, opts).then(() => made) - .catch(er => { - if (er.code === 'ENOENT') - return mkdirpManual(path, opts) + const done = (er, created) => { + if (er) + cb(er) + else { + cSet(cache, dir, true) + if (created && doChown) + chownr(created, uid, gid, er => done(er)) + else if (needChmod) + fs.chmod(dir, mode, cb) else - throw er - })) + cb() + } + } + + if (cache && cGet(cache, dir) === true) + return done() + + if (dir === cwd) + return checkCwd(dir, done) + + if (preserve) + return mkdirp(dir, {mode}).then(made => done(null, made), done) + + const sub = normPath(path.relative(cwd, dir)) + const parts = sub.split('/') + mkdir_(cwd, parts, mode, cache, unlink, cwd, null, done) } -const mkdirpNativeSync = (path, opts) => { - opts.recursive = true - const parent = dirname(path) - if (parent === path) - return opts.mkdirSync(path, opts) +const mkdir_ = (base, parts, mode, cache, unlink, cwd, created, cb) => { + if (!parts.length) + return cb(null, created) + const p = parts.shift() + const part = normPath(path.resolve(base + '/' + p)) + if (cGet(cache, part)) + return mkdir_(part, parts, mode, cache, unlink, cwd, created, cb) + fs.mkdir(part, mode, onmkdir(part, parts, mode, cache, unlink, cwd, created, cb)) +} - const made = findMadeSync(opts, path) +const onmkdir = (part, parts, mode, cache, unlink, cwd, created, cb) => er => { + if (er) { + fs.lstat(part, (statEr, st) => { + if (statEr) { + statEr.path = statEr.path && normPath(statEr.path) + cb(statEr) + } else if (st.isDirectory()) + mkdir_(part, parts, mode, cache, unlink, cwd, created, cb) + else if (unlink) { + fs.unlink(part, er => { + if (er) + return cb(er) + fs.mkdir(part, mode, onmkdir(part, parts, mode, cache, unlink, cwd, created, cb)) + }) + } else if (st.isSymbolicLink()) + return cb(new SymlinkError(part, part + '/' + parts.join('/'))) + else + cb(er) + }) + } else { + created = created || part + mkdir_(part, parts, mode, cache, unlink, cwd, created, cb) + } +} + +const checkCwdSync = dir => { + let ok = false + let code = 'ENOTDIR' try { - opts.mkdirSync(path, opts) - return made + ok = fs.statSync(dir).isDirectory() } catch (er) { - if (er.code === 'ENOENT') - return mkdirpManualSync(path, opts) - else - throw er + code = er.code + } finally { + if (!ok) + throw new CwdError(dir, code) } } -module.exports = {mkdirpNative, mkdirpNativeSync} - - -/***/ }), +module.exports.sync = (dir, opt) => { + dir = normPath(dir) + // if there's any overlap between mask and mode, + // then we'll need an explicit chmod + const umask = opt.umask + const mode = opt.mode | 0o0700 + const needChmod = (mode & umask) !== 0 -/***/ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/opts-arg.js": -/*!****************************************************************************************************!*\ - !*** ./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/opts-arg.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + const uid = opt.uid + const gid = opt.gid + const doChown = typeof uid === 'number' && + typeof gid === 'number' && + (uid !== opt.processUid || gid !== opt.processGid) -const { promisify } = __webpack_require__(/*! util */ "util") -const fs = __webpack_require__(/*! fs */ "fs") -const optsArg = opts => { - if (!opts) - opts = { mode: 0o777 & (~process.umask()), fs } - else if (typeof opts === 'object') - opts = { mode: 0o777 & (~process.umask()), fs, ...opts } - else if (typeof opts === 'number') - opts = { mode: opts, fs } - else if (typeof opts === 'string') - opts = { mode: parseInt(opts, 8), fs } - else - throw new TypeError('invalid options argument') + const preserve = opt.preserve + const unlink = opt.unlink + const cache = opt.cache + const cwd = normPath(opt.cwd) - opts.mkdir = opts.mkdir || opts.fs.mkdir || fs.mkdir - opts.mkdirAsync = promisify(opts.mkdir) - opts.stat = opts.stat || opts.fs.stat || fs.stat - opts.statAsync = promisify(opts.stat) - opts.statSync = opts.statSync || opts.fs.statSync || fs.statSync - opts.mkdirSync = opts.mkdirSync || opts.fs.mkdirSync || fs.mkdirSync - return opts -} -module.exports = optsArg + const done = (created) => { + cSet(cache, dir, true) + if (created && doChown) + chownr.sync(created, uid, gid) + if (needChmod) + fs.chmodSync(dir, mode) + } + if (cache && cGet(cache, dir) === true) + return done() -/***/ }), + if (dir === cwd) { + checkCwdSync(cwd) + return done() + } -/***/ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/path-arg.js": -/*!****************************************************************************************************!*\ - !*** ./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/path-arg.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + if (preserve) + return done(mkdirp.sync(dir, mode)) -const platform = process.env.__TESTING_MKDIRP_PLATFORM__ || process.platform -const { resolve, parse } = __webpack_require__(/*! path */ "path") -const pathArg = path => { - if (/\0/.test(path)) { - // simulate same failure that node raises - throw Object.assign( - new TypeError('path must be a string without null bytes'), - { - path, - code: 'ERR_INVALID_ARG_VALUE', - } - ) - } + const sub = normPath(path.relative(cwd, dir)) + const parts = sub.split('/') + let created = null + for (let p = parts.shift(), part = cwd; + p && (part += '/' + p); + p = parts.shift()) { + part = normPath(path.resolve(part)) + if (cGet(cache, part)) + continue - path = resolve(path) - if (platform === 'win32') { - const badWinChars = /[*|"<>?:]/ - const {root} = parse(path) - if (badWinChars.test(path.substr(root.length))) { - throw Object.assign(new Error('Illegal characters in path.'), { - path, - code: 'EINVAL', - }) + try { + fs.mkdirSync(part, mode) + created = created || part + cSet(cache, part, true) + } catch (er) { + const st = fs.lstatSync(part) + if (st.isDirectory()) { + cSet(cache, part, true) + continue + } else if (unlink) { + fs.unlinkSync(part) + fs.mkdirSync(part, mode) + created = created || part + cSet(cache, part, true) + continue + } else if (st.isSymbolicLink()) + return new SymlinkError(part, part + '/' + parts.join('/')) } } - return path + return done(created) } -module.exports = pathArg /***/ }), -/***/ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/use-native.js": -/*!******************************************************************************************************!*\ - !*** ./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/lib/use-native.js ***! - \******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/mode-fix.js": +/*!***************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/mode-fix.js ***! + \***************************************************************************************************/ +/***/ ((module) => { -const fs = __webpack_require__(/*! fs */ "fs") +"use strict"; -const version = process.env.__TESTING_MKDIRP_NODE_VERSION__ || process.version -const versArr = version.replace(/^v/, '').split('.') -const hasNative = +versArr[0] > 10 || +versArr[0] === 10 && +versArr[1] >= 12 +module.exports = (mode, isDir, portable) => { + mode &= 0o7777 -const useNative = !hasNative ? () => false : opts => opts.mkdir === fs.mkdir -const useNativeSync = !hasNative ? () => false : opts => opts.mkdirSync === fs.mkdirSync + // in portable mode, use the minimum reasonable umask + // if this system creates files with 0o664 by default + // (as some linux distros do), then we'll write the + // archive with 0o644 instead. Also, don't ever create + // a file that is not readable/writable by the owner. + if (portable) + mode = (mode | 0o600) & ~0o22 -module.exports = {useNative, useNativeSync} + // if dirs are readable, then they should be listable + if (isDir) { + if (mode & 0o400) + mode |= 0o100 + if (mode & 0o40) + mode |= 0o10 + if (mode & 0o4) + mode |= 0o1 + } + return mode +} /***/ }), -/***/ "./.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip/node_modules/ms/index.js": -/*!*************************************************************************************!*\ - !*** ./.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip/node_modules/ms/index.js ***! - \*************************************************************************************/ +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-unicode.js": +/*!************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-unicode.js ***! + \************************************************************************************************************/ /***/ ((module) => { -/** - * Helpers. - */ +// warning: extremely hot code path. +// This has been meticulously optimized for use +// within npm install on large package trees. +// Do not edit without careful benchmarking. +const normalizeCache = Object.create(null) +const {hasOwnProperty} = Object.prototype +module.exports = s => { + if (!hasOwnProperty.call(normalizeCache, s)) + normalizeCache[s] = s.normalize('NFKD') + return normalizeCache[s] +} -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var w = d * 7; -var y = d * 365.25; -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ +/***/ }), -module.exports = function(val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isFinite(val)) { - return options.long ? fmtLong(val) : fmtShort(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); -}; +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-windows-path.js": +/*!*****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-windows-path.js ***! + \*****************************************************************************************************************/ +/***/ ((module) => { -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ +// on windows, either \ or / are valid directory separators. +// on unix, \ is a valid character in filenames. +// so, on windows, and only on windows, we replace all \ chars with /, +// so that we can use / as our one and only directory separator char. -function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'weeks': - case 'week': - case 'w': - return n * w; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } -} +const platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform +module.exports = platform !== 'win32' ? p => p + : p => p && p.replace(/\\/g, '/') -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ -function fmtShort(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return Math.round(ms / d) + 'd'; - } - if (msAbs >= h) { - return Math.round(ms / h) + 'h'; - } - if (msAbs >= m) { - return Math.round(ms / m) + 'm'; - } - if (msAbs >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} +/***/ }), -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pack.js": +/*!***********************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pack.js ***! + \***********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -function fmtLong(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return plural(ms, msAbs, d, 'day'); - } - if (msAbs >= h) { - return plural(ms, msAbs, h, 'hour'); - } - if (msAbs >= m) { - return plural(ms, msAbs, m, 'minute'); - } - if (msAbs >= s) { - return plural(ms, msAbs, s, 'second'); - } - return ms + ' ms'; -} +"use strict"; -/** - * Pluralization helper. - */ -function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +// A readable tar stream creator +// Technically, this is a transform stream that you write paths into, +// and tar format comes out of. +// The `add()` method is like `write()` but returns this, +// and end() return `this` as well, so you can +// do `new Pack(opt).add('files').add('dir').end().pipe(output) +// You could also do something like: +// streamOfPaths().pipe(new Pack()).pipe(new fs.WriteStream('out.tar')) + +class PackJob { + constructor (path, absolute) { + this.path = path || './' + this.absolute = absolute + this.entry = null + this.stat = null + this.readdir = null + this.pending = false + this.ignore = false + this.piped = false + } } +const MiniPass = __webpack_require__(/*! minipass */ "../../../.yarn/berry/cache/minipass-npm-3.1.6-f032df1661-9.zip/node_modules/minipass/index.js") +const zlib = __webpack_require__(/*! minizlib */ "../../../.yarn/berry/cache/minizlib-npm-2.1.2-ea89cd0cfb-9.zip/node_modules/minizlib/index.js") +const ReadEntry = __webpack_require__(/*! ./read-entry.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/read-entry.js") +const WriteEntry = __webpack_require__(/*! ./write-entry.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/write-entry.js") +const WriteEntrySync = WriteEntry.Sync +const WriteEntryTar = WriteEntry.Tar +const Yallist = __webpack_require__(/*! yallist */ "../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-9.zip/node_modules/yallist/yallist.js") +const EOF = Buffer.alloc(1024) +const ONSTAT = Symbol('onStat') +const ENDED = Symbol('ended') +const QUEUE = Symbol('queue') +const CURRENT = Symbol('current') +const PROCESS = Symbol('process') +const PROCESSING = Symbol('processing') +const PROCESSJOB = Symbol('processJob') +const JOBS = Symbol('jobs') +const JOBDONE = Symbol('jobDone') +const ADDFSENTRY = Symbol('addFSEntry') +const ADDTARENTRY = Symbol('addTarEntry') +const STAT = Symbol('stat') +const READDIR = Symbol('readdir') +const ONREADDIR = Symbol('onreaddir') +const PIPE = Symbol('pipe') +const ENTRY = Symbol('entry') +const ENTRYOPT = Symbol('entryOpt') +const WRITEENTRYCLASS = Symbol('writeEntryClass') +const WRITE = Symbol('write') +const ONDRAIN = Symbol('ondrain') -/***/ }), +const fs = __webpack_require__(/*! fs */ "fs") +const path = __webpack_require__(/*! path */ "path") +const warner = __webpack_require__(/*! ./warn-mixin.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/warn-mixin.js") +const normPath = __webpack_require__(/*! ./normalize-windows-path.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-windows-path.js") -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/comparator.js": -/*!**********************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/comparator.js ***! - \**********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +const Pack = warner(class Pack extends MiniPass { + constructor (opt) { + super(opt) + opt = opt || Object.create(null) + this.opt = opt + this.file = opt.file || '' + this.cwd = opt.cwd || process.cwd() + this.maxReadSize = opt.maxReadSize + this.preservePaths = !!opt.preservePaths + this.strict = !!opt.strict + this.noPax = !!opt.noPax + this.prefix = normPath(opt.prefix || '') + this.linkCache = opt.linkCache || new Map() + this.statCache = opt.statCache || new Map() + this.readdirCache = opt.readdirCache || new Map() -const ANY = Symbol('SemVer ANY') -// hoisted class for cyclic dependency -class Comparator { - static get ANY () { - return ANY - } - constructor (comp, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } - } + this[WRITEENTRYCLASS] = WriteEntry + if (typeof opt.onwarn === 'function') + this.on('warn', opt.onwarn) - if (comp instanceof Comparator) { - if (comp.loose === !!options.loose) { - return comp - } else { - comp = comp.value - } - } + this.portable = !!opt.portable + this.zip = null + if (opt.gzip) { + if (typeof opt.gzip !== 'object') + opt.gzip = {} + if (this.portable) + opt.gzip.portable = true + this.zip = new zlib.Gzip(opt.gzip) + this.zip.on('data', chunk => super.write(chunk)) + this.zip.on('end', _ => super.end()) + this.zip.on('drain', _ => this[ONDRAIN]()) + this.on('resume', _ => this.zip.resume()) + } else + this.on('drain', this[ONDRAIN]) - debug('comparator', comp, options) - this.options = options - this.loose = !!options.loose - this.parse(comp) + this.noDirRecurse = !!opt.noDirRecurse + this.follow = !!opt.follow + this.noMtime = !!opt.noMtime + this.mtime = opt.mtime || null - if (this.semver === ANY) { - this.value = '' - } else { - this.value = this.operator + this.semver.version - } + this.filter = typeof opt.filter === 'function' ? opt.filter : _ => true - debug('comp', this) + this[QUEUE] = new Yallist() + this[JOBS] = 0 + this.jobs = +opt.jobs || 4 + this[PROCESSING] = false + this[ENDED] = false } - parse (comp) { - const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] - const m = comp.match(r) - - if (!m) { - throw new TypeError(`Invalid comparator: ${comp}`) - } - - this.operator = m[1] !== undefined ? m[1] : '' - if (this.operator === '=') { - this.operator = '' - } + [WRITE] (chunk) { + return super.write(chunk) + } - // if it literally is just '>' or '' then allow anything. - if (!m[2]) { - this.semver = ANY - } else { - this.semver = new SemVer(m[2], this.options.loose) - } + add (path) { + this.write(path) + return this } - toString () { - return this.value + end (path) { + if (path) + this.write(path) + this[ENDED] = true + this[PROCESS]() + return this } - test (version) { - debug('Comparator.test', version, this.options.loose) + write (path) { + if (this[ENDED]) + throw new Error('write after end') - if (this.semver === ANY || version === ANY) { - return true - } + if (path instanceof ReadEntry) + this[ADDTARENTRY](path) + else + this[ADDFSENTRY](path) + return this.flowing + } - if (typeof version === 'string') { - try { - version = new SemVer(version, this.options) - } catch (er) { - return false - } + [ADDTARENTRY] (p) { + const absolute = normPath(path.resolve(this.cwd, p.path)) + // in this case, we don't have to wait for the stat + if (!this.filter(p.path, p)) + p.resume() + else { + const job = new PackJob(p.path, absolute, false) + job.entry = new WriteEntryTar(p, this[ENTRYOPT](job)) + job.entry.on('end', _ => this[JOBDONE](job)) + this[JOBS] += 1 + this[QUEUE].push(job) } - return cmp(version, this.operator, this.semver, this.options) + this[PROCESS]() } - intersects (comp, options) { - if (!(comp instanceof Comparator)) { - throw new TypeError('a Comparator is required') - } + [ADDFSENTRY] (p) { + const absolute = normPath(path.resolve(this.cwd, p)) + this[QUEUE].push(new PackJob(p, absolute)) + this[PROCESS]() + } - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } - } + [STAT] (job) { + job.pending = true + this[JOBS] += 1 + const stat = this.follow ? 'stat' : 'lstat' + fs[stat](job.absolute, (er, stat) => { + job.pending = false + this[JOBS] -= 1 + if (er) + this.emit('error', er) + else + this[ONSTAT](job, stat) + }) + } - if (this.operator === '') { - if (this.value === '') { - return true - } - return new Range(comp.value, options).test(this.value) - } else if (comp.operator === '') { - if (comp.value === '') { - return true - } - return new Range(this.value, options).test(comp.semver) - } + [ONSTAT] (job, stat) { + this.statCache.set(job.absolute, stat) + job.stat = stat - const sameDirectionIncreasing = - (this.operator === '>=' || this.operator === '>') && - (comp.operator === '>=' || comp.operator === '>') - const sameDirectionDecreasing = - (this.operator === '<=' || this.operator === '<') && - (comp.operator === '<=' || comp.operator === '<') - const sameSemVer = this.semver.version === comp.semver.version - const differentDirectionsInclusive = - (this.operator === '>=' || this.operator === '<=') && - (comp.operator === '>=' || comp.operator === '<=') - const oppositeDirectionsLessThan = - cmp(this.semver, '<', comp.semver, options) && - (this.operator === '>=' || this.operator === '>') && - (comp.operator === '<=' || comp.operator === '<') - const oppositeDirectionsGreaterThan = - cmp(this.semver, '>', comp.semver, options) && - (this.operator === '<=' || this.operator === '<') && - (comp.operator === '>=' || comp.operator === '>') + // now we have the stat, we can filter it. + if (!this.filter(job.path, stat)) + job.ignore = true - return ( - sameDirectionIncreasing || - sameDirectionDecreasing || - (sameSemVer && differentDirectionsInclusive) || - oppositeDirectionsLessThan || - oppositeDirectionsGreaterThan - ) + this[PROCESS]() } -} -module.exports = Comparator + [READDIR] (job) { + job.pending = true + this[JOBS] += 1 + fs.readdir(job.absolute, (er, entries) => { + job.pending = false + this[JOBS] -= 1 + if (er) + return this.emit('error', er) + this[ONREADDIR](job, entries) + }) + } -const {re, t} = __webpack_require__(/*! ../internal/re */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/re.js") -const cmp = __webpack_require__(/*! ../functions/cmp */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/cmp.js") -const debug = __webpack_require__(/*! ../internal/debug */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/debug.js") -const SemVer = __webpack_require__(/*! ./semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const Range = __webpack_require__(/*! ./range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js") + [ONREADDIR] (job, entries) { + this.readdirCache.set(job.absolute, entries) + job.readdir = entries + this[PROCESS]() + } + [PROCESS] () { + if (this[PROCESSING]) + return -/***/ }), + this[PROCESSING] = true + for (let w = this[QUEUE].head; + w !== null && this[JOBS] < this.jobs; + w = w.next) { + this[PROCESSJOB](w.value) + if (w.value.ignore) { + const p = w.next + this[QUEUE].removeNode(w) + w.next = p + } + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js": -/*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + this[PROCESSING] = false -// hoisted class for cyclic dependency -class Range { - constructor (range, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false + if (this[ENDED] && !this[QUEUE].length && this[JOBS] === 0) { + if (this.zip) + this.zip.end(EOF) + else { + super.write(EOF) + super.end() } } + } - if (range instanceof Range) { - if ( - range.loose === !!options.loose && - range.includePrerelease === !!options.includePrerelease - ) { - return range - } else { - return new Range(range.raw, options) - } + get [CURRENT] () { + return this[QUEUE] && this[QUEUE].head && this[QUEUE].head.value + } + + [JOBDONE] (job) { + this[QUEUE].shift() + this[JOBS] -= 1 + this[PROCESS]() + } + + [PROCESSJOB] (job) { + if (job.pending) + return + + if (job.entry) { + if (job === this[CURRENT] && !job.piped) + this[PIPE](job) + return } - if (range instanceof Comparator) { - // just put it in the set and return - this.raw = range.value - this.set = [[range]] - this.format() - return this + if (!job.stat) { + if (this.statCache.has(job.absolute)) + this[ONSTAT](job, this.statCache.get(job.absolute)) + else + this[STAT](job) } + if (!job.stat) + return - this.options = options - this.loose = !!options.loose - this.includePrerelease = !!options.includePrerelease + // filtered out! + if (job.ignore) + return - // First, split based on boolean or || - this.raw = range - this.set = range - .split(/\s*\|\|\s*/) - // map the range to a 2d array of comparators - .map(range => this.parseRange(range.trim())) - // throw out any comparator lists that are empty - // this generally means that it was not a valid range, which is allowed - // in loose mode, but will still throw if the WHOLE range is invalid. - .filter(c => c.length) + if (!this.noDirRecurse && job.stat.isDirectory() && !job.readdir) { + if (this.readdirCache.has(job.absolute)) + this[ONREADDIR](job, this.readdirCache.get(job.absolute)) + else + this[READDIR](job) + if (!job.readdir) + return + } - if (!this.set.length) { - throw new TypeError(`Invalid SemVer Range: ${range}`) + // we know it doesn't have an entry, because that got checked above + job.entry = this[ENTRY](job) + if (!job.entry) { + job.ignore = true + return } - this.format() + if (job === this[CURRENT] && !job.piped) + this[PIPE](job) } - format () { - this.range = this.set - .map((comps) => { - return comps.join(' ').trim() - }) - .join('||') - .trim() - return this.range + [ENTRYOPT] (job) { + return { + onwarn: (code, msg, data) => this.warn(code, msg, data), + noPax: this.noPax, + cwd: this.cwd, + absolute: job.absolute, + preservePaths: this.preservePaths, + maxReadSize: this.maxReadSize, + strict: this.strict, + portable: this.portable, + linkCache: this.linkCache, + statCache: this.statCache, + noMtime: this.noMtime, + mtime: this.mtime, + prefix: this.prefix, + } } - toString () { - return this.range + [ENTRY] (job) { + this[JOBS] += 1 + try { + return new this[WRITEENTRYCLASS](job.path, this[ENTRYOPT](job)) + .on('end', () => this[JOBDONE](job)) + .on('error', er => this.emit('error', er)) + } catch (er) { + this.emit('error', er) + } } - parseRange (range) { - const loose = this.options.loose - range = range.trim() - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] - range = range.replace(hr, hyphenReplace) - debug('hyphen replace', range) - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) - debug('comparator trim', range, re[t.COMPARATORTRIM]) + [ONDRAIN] () { + if (this[CURRENT] && this[CURRENT].entry) + this[CURRENT].entry.resume() + } - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[t.TILDETRIM], tildeTrimReplace) + // like .pipe() but using super, because our write() is special + [PIPE] (job) { + job.piped = true - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[t.CARETTRIM], caretTrimReplace) + if (job.readdir) { + job.readdir.forEach(entry => { + const p = job.path + const base = p === './' ? '' : p.replace(/\/*$/, '/') + this[ADDFSENTRY](base + entry) + }) + } - // normalize spaces - range = range.split(/\s+/).join(' ') + const source = job.entry + const zip = this.zip - // At this point, the range is completely trimmed and - // ready to be split into comparators. + if (zip) { + source.on('data', chunk => { + if (!zip.write(chunk)) + source.pause() + }) + } else { + source.on('data', chunk => { + if (!super.write(chunk)) + source.pause() + }) + } + } - const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] - return range - .split(' ') - .map(comp => parseComparator(comp, this.options)) - .join(' ') - .split(/\s+/) - // in loose mode, throw out any that are not valid comparators - .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true) - .map(comp => new Comparator(comp, this.options)) + pause () { + if (this.zip) + this.zip.pause() + return super.pause() } +}) - intersects (range, options) { - if (!(range instanceof Range)) { - throw new TypeError('a Range is required') - } +class PackSync extends Pack { + constructor (opt) { + super(opt) + this[WRITEENTRYCLASS] = WriteEntrySync + } - return this.set.some((thisComparators) => { - return ( - isSatisfiable(thisComparators, options) && - range.set.some((rangeComparators) => { - return ( - isSatisfiable(rangeComparators, options) && - thisComparators.every((thisComparator) => { - return rangeComparators.every((rangeComparator) => { - return thisComparator.intersects(rangeComparator, options) - }) - }) - ) - }) - ) - }) + // pause/resume are no-ops in sync streams. + pause () {} + resume () {} + + [STAT] (job) { + const stat = this.follow ? 'statSync' : 'lstatSync' + this[ONSTAT](job, fs[stat](job.absolute)) } - // if ANY of the sets match ALL of its comparators, then pass - test (version) { - if (!version) { - return false - } + [READDIR] (job, stat) { + this[ONREADDIR](job, fs.readdirSync(job.absolute)) + } - if (typeof version === 'string') { - try { - version = new SemVer(version, this.options) - } catch (er) { - return false - } + // gotta get it all in this tick + [PIPE] (job) { + const source = job.entry + const zip = this.zip + + if (job.readdir) { + job.readdir.forEach(entry => { + const p = job.path + const base = p === './' ? '' : p.replace(/\/*$/, '/') + this[ADDFSENTRY](base + entry) + }) } - for (let i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version, this.options)) { - return true - } + if (zip) { + source.on('data', chunk => { + zip.write(chunk) + }) + } else { + source.on('data', chunk => { + super[WRITE](chunk) + }) } - return false } } -module.exports = Range -const Comparator = __webpack_require__(/*! ./comparator */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/comparator.js") -const debug = __webpack_require__(/*! ../internal/debug */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/debug.js") -const SemVer = __webpack_require__(/*! ./semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const { - re, - t, - comparatorTrimReplace, - tildeTrimReplace, - caretTrimReplace -} = __webpack_require__(/*! ../internal/re */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/re.js") +Pack.Sync = PackSync -// take a set of comparators and determine whether there -// exists a version which can satisfy it -const isSatisfiable = (comparators, options) => { - let result = true - const remainingComparators = comparators.slice() - let testComparator = remainingComparators.pop() +module.exports = Pack - while (result && remainingComparators.length) { - result = remainingComparators.every((otherComparator) => { - return testComparator.intersects(otherComparator, options) - }) - testComparator = remainingComparators.pop() - } +/***/ }), - return result -} +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/parse.js": +/*!************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/parse.js ***! + \************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -const parseComparator = (comp, options) => { - debug('comp', comp, options) - comp = replaceCarets(comp, options) - debug('caret', comp) - comp = replaceTildes(comp, options) - debug('tildes', comp) - comp = replaceXRanges(comp, options) - debug('xrange', comp) - comp = replaceStars(comp, options) - debug('stars', comp) - return comp -} +"use strict"; -const isX = id => !id || id.toLowerCase() === 'x' || id === '*' -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0 -const replaceTildes = (comp, options) => - comp.trim().split(/\s+/).map((comp) => { - return replaceTilde(comp, options) - }).join(' ') +// this[BUFFER] is the remainder of a chunk if we're waiting for +// the full 512 bytes of a header to come in. We will Buffer.concat() +// it to the next write(), which is a mem copy, but a small one. +// +// this[QUEUE] is a Yallist of entries that haven't been emitted +// yet this can only get filled up if the user keeps write()ing after +// a write() returns false, or does a write() with more than one entry +// +// We don't buffer chunks, we always parse them and either create an +// entry, or push it into the active entry. The ReadEntry class knows +// to throw data away if .ignore=true +// +// Shift entry off the buffer when it emits 'end', and emit 'entry' for +// the next one in the list. +// +// At any time, we're pushing body chunks into the entry at WRITEENTRY, +// and waiting for 'end' on the entry at READENTRY +// +// ignored entries get .resume() called on them straight away -const replaceTilde = (comp, options) => { - const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] - return comp.replace(r, (_, M, m, p, pr) => { - debug('tilde', comp, _, M, m, p, pr) - let ret +const warner = __webpack_require__(/*! ./warn-mixin.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/warn-mixin.js") +const Header = __webpack_require__(/*! ./header.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/header.js") +const EE = __webpack_require__(/*! events */ "events") +const Yallist = __webpack_require__(/*! yallist */ "../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-9.zip/node_modules/yallist/yallist.js") +const maxMetaEntrySize = 1024 * 1024 +const Entry = __webpack_require__(/*! ./read-entry.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/read-entry.js") +const Pax = __webpack_require__(/*! ./pax.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pax.js") +const zlib = __webpack_require__(/*! minizlib */ "../../../.yarn/berry/cache/minizlib-npm-2.1.2-ea89cd0cfb-9.zip/node_modules/minizlib/index.js") - if (isX(M)) { - ret = '' - } else if (isX(m)) { - ret = `>=${M}.0.0 <${+M + 1}.0.0` - } else if (isX(p)) { - // ~1.2 == >=1.2.0 <1.3.0 - ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0` - } else if (pr) { - debug('replaceTilde pr', pr) - ret = `>=${M}.${m}.${p}-${pr - } <${M}.${+m + 1}.0` - } else { - // ~1.2.3 == >=1.2.3 <1.3.0 - ret = `>=${M}.${m}.${p - } <${M}.${+m + 1}.0` - } +const gzipHeader = Buffer.from([0x1f, 0x8b]) +const STATE = Symbol('state') +const WRITEENTRY = Symbol('writeEntry') +const READENTRY = Symbol('readEntry') +const NEXTENTRY = Symbol('nextEntry') +const PROCESSENTRY = Symbol('processEntry') +const EX = Symbol('extendedHeader') +const GEX = Symbol('globalExtendedHeader') +const META = Symbol('meta') +const EMITMETA = Symbol('emitMeta') +const BUFFER = Symbol('buffer') +const QUEUE = Symbol('queue') +const ENDED = Symbol('ended') +const EMITTEDEND = Symbol('emittedEnd') +const EMIT = Symbol('emit') +const UNZIP = Symbol('unzip') +const CONSUMECHUNK = Symbol('consumeChunk') +const CONSUMECHUNKSUB = Symbol('consumeChunkSub') +const CONSUMEBODY = Symbol('consumeBody') +const CONSUMEMETA = Symbol('consumeMeta') +const CONSUMEHEADER = Symbol('consumeHeader') +const CONSUMING = Symbol('consuming') +const BUFFERCONCAT = Symbol('bufferConcat') +const MAYBEEND = Symbol('maybeEnd') +const WRITING = Symbol('writing') +const ABORTED = Symbol('aborted') +const DONE = Symbol('onDone') +const SAW_VALID_ENTRY = Symbol('sawValidEntry') +const SAW_NULL_BLOCK = Symbol('sawNullBlock') +const SAW_EOF = Symbol('sawEOF') - debug('tilde return', ret) - return ret - }) -} +const noop = _ => true -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0 -// ^1.2.3 --> >=1.2.3 <2.0.0 -// ^1.2.0 --> >=1.2.0 <2.0.0 -const replaceCarets = (comp, options) => - comp.trim().split(/\s+/).map((comp) => { - return replaceCaret(comp, options) - }).join(' ') +module.exports = warner(class Parser extends EE { + constructor (opt) { + opt = opt || {} + super(opt) -const replaceCaret = (comp, options) => { - debug('caret', comp, options) - const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] - return comp.replace(r, (_, M, m, p, pr) => { - debug('caret', comp, _, M, m, p, pr) - let ret + this.file = opt.file || '' - if (isX(M)) { - ret = '' - } else if (isX(m)) { - ret = `>=${M}.0.0 <${+M + 1}.0.0` - } else if (isX(p)) { - if (M === '0') { - ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0` - } else { - ret = `>=${M}.${m}.0 <${+M + 1}.0.0` - } - } else if (pr) { - debug('replaceCaret pr', pr) - if (M === '0') { - if (m === '0') { - ret = `>=${M}.${m}.${p}-${pr - } <${M}.${m}.${+p + 1}` - } else { - ret = `>=${M}.${m}.${p}-${pr - } <${M}.${+m + 1}.0` - } - } else { - ret = `>=${M}.${m}.${p}-${pr - } <${+M + 1}.0.0` - } - } else { - debug('no pr') - if (M === '0') { - if (m === '0') { - ret = `>=${M}.${m}.${p - } <${M}.${m}.${+p + 1}` - } else { - ret = `>=${M}.${m}.${p - } <${M}.${+m + 1}.0` - } - } else { - ret = `>=${M}.${m}.${p - } <${+M + 1}.0.0` + // set to boolean false when an entry starts. 1024 bytes of \0 + // is technically a valid tarball, albeit a boring one. + this[SAW_VALID_ENTRY] = null + + // these BADARCHIVE errors can't be detected early. listen on DONE. + this.on(DONE, _ => { + if (this[STATE] === 'begin' || this[SAW_VALID_ENTRY] === false) { + // either less than 1 block of data, or all entries were invalid. + // Either way, probably not even a tarball. + this.warn('TAR_BAD_ARCHIVE', 'Unrecognized archive format') } + }) + + if (opt.ondone) + this.on(DONE, opt.ondone) + else { + this.on(DONE, _ => { + this.emit('prefinish') + this.emit('finish') + this.emit('end') + this.emit('close') + }) } - debug('caret return', ret) - return ret - }) -} + this.strict = !!opt.strict + this.maxMetaEntrySize = opt.maxMetaEntrySize || maxMetaEntrySize + this.filter = typeof opt.filter === 'function' ? opt.filter : noop -const replaceXRanges = (comp, options) => { - debug('replaceXRanges', comp, options) - return comp.split(/\s+/).map((comp) => { - return replaceXRange(comp, options) - }).join(' ') -} + // have to set this so that streams are ok piping into it + this.writable = true + this.readable = false -const replaceXRange = (comp, options) => { - comp = comp.trim() - const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] - return comp.replace(r, (ret, gtlt, M, m, p, pr) => { - debug('xRange', comp, ret, gtlt, M, m, p, pr) - const xM = isX(M) - const xm = xM || isX(m) - const xp = xm || isX(p) - const anyX = xp + this[QUEUE] = new Yallist() + this[BUFFER] = null + this[READENTRY] = null + this[WRITEENTRY] = null + this[STATE] = 'begin' + this[META] = '' + this[EX] = null + this[GEX] = null + this[ENDED] = false + this[UNZIP] = null + this[ABORTED] = false + this[SAW_NULL_BLOCK] = false + this[SAW_EOF] = false + if (typeof opt.onwarn === 'function') + this.on('warn', opt.onwarn) + if (typeof opt.onentry === 'function') + this.on('entry', opt.onentry) + } - if (gtlt === '=' && anyX) { - gtlt = '' + [CONSUMEHEADER] (chunk, position) { + if (this[SAW_VALID_ENTRY] === null) + this[SAW_VALID_ENTRY] = false + let header + try { + header = new Header(chunk, position, this[EX], this[GEX]) + } catch (er) { + return this.warn('TAR_ENTRY_INVALID', er) } - // if we're including prereleases in the match, then we need - // to fix this to -0, the lowest possible prerelease value - pr = options.includePrerelease ? '-0' : '' - - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0-0' + if (header.nullBlock) { + if (this[SAW_NULL_BLOCK]) { + this[SAW_EOF] = true + // ending an archive with no entries. pointless, but legal. + if (this[STATE] === 'begin') + this[STATE] = 'header' + this[EMIT]('eof') } else { - // nothing is forbidden - ret = '*' - } - } else if (gtlt && anyX) { - // we know patch is an x, because we have any x at all. - // replace X with 0 - if (xm) { - m = 0 + this[SAW_NULL_BLOCK] = true + this[EMIT]('nullBlock') } - p = 0 + } else { + this[SAW_NULL_BLOCK] = false + if (!header.cksumValid) + this.warn('TAR_ENTRY_INVALID', 'checksum failure', {header}) + else if (!header.path) + this.warn('TAR_ENTRY_INVALID', 'path is required', {header}) + else { + const type = header.type + if (/^(Symbolic)?Link$/.test(type) && !header.linkpath) + this.warn('TAR_ENTRY_INVALID', 'linkpath required', {header}) + else if (!/^(Symbolic)?Link$/.test(type) && header.linkpath) + this.warn('TAR_ENTRY_INVALID', 'linkpath forbidden', {header}) + else { + const entry = this[WRITEENTRY] = new Entry(header, this[EX], this[GEX]) - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - gtlt = '>=' - if (xm) { - M = +M + 1 - m = 0 - p = 0 - } else { - m = +m + 1 - p = 0 - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<' - if (xm) { - M = +M + 1 - } else { - m = +m + 1 - } - } + // we do this for meta & ignored entries as well, because they + // are still valid tar, or else we wouldn't know to ignore them + if (!this[SAW_VALID_ENTRY]) { + if (entry.remain) { + // this might be the one! + const onend = () => { + if (!entry.invalid) + this[SAW_VALID_ENTRY] = true + } + entry.on('end', onend) + } else + this[SAW_VALID_ENTRY] = true + } - ret = `${gtlt + M}.${m}.${p}${pr}` - } else if (xm) { - ret = `>=${M}.0.0${pr} <${+M + 1}.0.0${pr}` - } else if (xp) { - ret = `>=${M}.${m}.0${pr - } <${M}.${+m + 1}.0${pr}` - } + if (entry.meta) { + if (entry.size > this.maxMetaEntrySize) { + entry.ignore = true + this[EMIT]('ignoredEntry', entry) + this[STATE] = 'ignore' + entry.resume() + } else if (entry.size > 0) { + this[META] = '' + entry.on('data', c => this[META] += c) + this[STATE] = 'meta' + } + } else { + this[EX] = null + entry.ignore = entry.ignore || !this.filter(entry.path, entry) - debug('xRange return', ret) + if (entry.ignore) { + // probably valid, just not something we care about + this[EMIT]('ignoredEntry', entry) + this[STATE] = entry.remain ? 'ignore' : 'header' + entry.resume() + } else { + if (entry.remain) + this[STATE] = 'body' + else { + this[STATE] = 'header' + entry.end() + } - return ret - }) -} + if (!this[READENTRY]) { + this[QUEUE].push(entry) + this[NEXTENTRY]() + } else + this[QUEUE].push(entry) + } + } + } + } + } + } -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -const replaceStars = (comp, options) => { - debug('replaceStars', comp, options) - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[t.STAR], '') -} + [PROCESSENTRY] (entry) { + let go = true -// This function is passed to string.replace(re[t.HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0 -const hyphenReplace = ($0, - from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) => { - if (isX(fM)) { - from = '' - } else if (isX(fm)) { - from = `>=${fM}.0.0` - } else if (isX(fp)) { - from = `>=${fM}.${fm}.0` - } else { - from = `>=${from}` - } + if (!entry) { + this[READENTRY] = null + go = false + } else if (Array.isArray(entry)) + this.emit.apply(this, entry) + else { + this[READENTRY] = entry + this.emit('entry', entry) + if (!entry.emittedEnd) { + entry.on('end', _ => this[NEXTENTRY]()) + go = false + } + } - if (isX(tM)) { - to = '' - } else if (isX(tm)) { - to = `<${+tM + 1}.0.0` - } else if (isX(tp)) { - to = `<${tM}.${+tm + 1}.0` - } else if (tpr) { - to = `<=${tM}.${tm}.${tp}-${tpr}` - } else { - to = `<=${to}` + return go } - return (`${from} ${to}`).trim() -} + [NEXTENTRY] () { + do {} while (this[PROCESSENTRY](this[QUEUE].shift())) -const testSet = (set, version, options) => { - for (let i = 0; i < set.length; i++) { - if (!set[i].test(version)) { - return false + if (!this[QUEUE].length) { + // At this point, there's nothing in the queue, but we may have an + // entry which is being consumed (readEntry). + // If we don't, then we definitely can handle more data. + // If we do, and either it's flowing, or it has never had any data + // written to it, then it needs more. + // The only other possibility is that it has returned false from a + // write() call, so we wait for the next drain to continue. + const re = this[READENTRY] + const drainNow = !re || re.flowing || re.size === re.remain + if (drainNow) { + if (!this[WRITING]) + this.emit('drain') + } else + re.once('drain', _ => this.emit('drain')) } } - if (version.prerelease.length && !options.includePrerelease) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (let i = 0; i < set.length; i++) { - debug(set[i].semver) - if (set[i].semver === Comparator.ANY) { - continue - } + [CONSUMEBODY] (chunk, position) { + // write up to but no more than writeEntry.blockRemain + const entry = this[WRITEENTRY] + const br = entry.blockRemain + const c = (br >= chunk.length && position === 0) ? chunk + : chunk.slice(position, position + br) - if (set[i].semver.prerelease.length > 0) { - const allowed = set[i].semver - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) { - return true - } - } + entry.write(c) + + if (!entry.blockRemain) { + this[STATE] = 'header' + this[WRITEENTRY] = null + entry.end() } - // Version has a -pre, but it's not one of the ones we like. - return false + return c.length } - return true -} - + [CONSUMEMETA] (chunk, position) { + const entry = this[WRITEENTRY] + const ret = this[CONSUMEBODY](chunk, position) -/***/ }), + // if we finished, then the entry is reset + if (!this[WRITEENTRY]) + this[EMITMETA](entry) -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js": -/*!******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js ***! - \******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + return ret + } -const debug = __webpack_require__(/*! ../internal/debug */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/debug.js") -const { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__(/*! ../internal/constants */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/constants.js") -const { re, t } = __webpack_require__(/*! ../internal/re */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/re.js") + [EMIT] (ev, data, extra) { + if (!this[QUEUE].length && !this[READENTRY]) + this.emit(ev, data, extra) + else + this[QUEUE].push([ev, data, extra]) + } -const { compareIdentifiers } = __webpack_require__(/*! ../internal/identifiers */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/identifiers.js") -class SemVer { - constructor (version, options) { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - } - } - if (version instanceof SemVer) { - if (version.loose === !!options.loose && - version.includePrerelease === !!options.includePrerelease) { - return version - } else { - version = version.version - } - } else if (typeof version !== 'string') { - throw new TypeError(`Invalid Version: ${version}`) - } + [EMITMETA] (entry) { + this[EMIT]('meta', this[META]) + switch (entry.type) { + case 'ExtendedHeader': + case 'OldExtendedHeader': + this[EX] = Pax.parse(this[META], this[EX], false) + break - if (version.length > MAX_LENGTH) { - throw new TypeError( - `version is longer than ${MAX_LENGTH} characters` - ) - } + case 'GlobalExtendedHeader': + this[GEX] = Pax.parse(this[META], this[GEX], true) + break - debug('SemVer', version, options) - this.options = options - this.loose = !!options.loose - // this isn't actually relevant for versions, but keep it so that we - // don't run into trouble passing this.options around. - this.includePrerelease = !!options.includePrerelease + case 'NextFileHasLongPath': + case 'OldGnuLongPath': + this[EX] = this[EX] || Object.create(null) + this[EX].path = this[META].replace(/\0.*/, '') + break - const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) + case 'NextFileHasLongLinkpath': + this[EX] = this[EX] || Object.create(null) + this[EX].linkpath = this[META].replace(/\0.*/, '') + break - if (!m) { - throw new TypeError(`Invalid Version: ${version}`) + /* istanbul ignore next */ + default: throw new Error('unknown meta: ' + entry.type) } + } - this.raw = version - - // these are actually numbers - this.major = +m[1] - this.minor = +m[2] - this.patch = +m[3] + abort (error) { + this[ABORTED] = true + this.emit('abort', error) + // always throws, even in non-strict mode + this.warn('TAR_ABORT', error, { recoverable: false }) + } - if (this.major > MAX_SAFE_INTEGER || this.major < 0) { - throw new TypeError('Invalid major version') - } + write (chunk) { + if (this[ABORTED]) + return - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { - throw new TypeError('Invalid minor version') + // first write, might be gzipped + if (this[UNZIP] === null && chunk) { + if (this[BUFFER]) { + chunk = Buffer.concat([this[BUFFER], chunk]) + this[BUFFER] = null + } + if (chunk.length < gzipHeader.length) { + this[BUFFER] = chunk + return true + } + for (let i = 0; this[UNZIP] === null && i < gzipHeader.length; i++) { + if (chunk[i] !== gzipHeader[i]) + this[UNZIP] = false + } + if (this[UNZIP] === null) { + const ended = this[ENDED] + this[ENDED] = false + this[UNZIP] = new zlib.Unzip() + this[UNZIP].on('data', chunk => this[CONSUMECHUNK](chunk)) + this[UNZIP].on('error', er => this.abort(er)) + this[UNZIP].on('end', _ => { + this[ENDED] = true + this[CONSUMECHUNK]() + }) + this[WRITING] = true + const ret = this[UNZIP][ended ? 'end' : 'write'](chunk) + this[WRITING] = false + return ret + } } - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { - throw new TypeError('Invalid patch version') - } + this[WRITING] = true + if (this[UNZIP]) + this[UNZIP].write(chunk) + else + this[CONSUMECHUNK](chunk) + this[WRITING] = false - // numberify any prerelease numeric ids - if (!m[4]) { - this.prerelease = [] - } else { - this.prerelease = m[4].split('.').map((id) => { - if (/^[0-9]+$/.test(id)) { - const num = +id - if (num >= 0 && num < MAX_SAFE_INTEGER) { - return num - } - } - return id - }) - } + // return false if there's a queue, or if the current entry isn't flowing + const ret = + this[QUEUE].length ? false : + this[READENTRY] ? this[READENTRY].flowing : + true - this.build = m[5] ? m[5].split('.') : [] - this.format() - } + // if we have no queue, then that means a clogged READENTRY + if (!ret && !this[QUEUE].length) + this[READENTRY].once('drain', _ => this.emit('drain')) - format () { - this.version = `${this.major}.${this.minor}.${this.patch}` - if (this.prerelease.length) { - this.version += `-${this.prerelease.join('.')}` - } - return this.version + return ret } - toString () { - return this.version + [BUFFERCONCAT] (c) { + if (c && !this[ABORTED]) + this[BUFFER] = this[BUFFER] ? Buffer.concat([this[BUFFER], c]) : c } - compare (other) { - debug('SemVer.compare', this.version, this.options, other) - if (!(other instanceof SemVer)) { - if (typeof other === 'string' && other === this.version) { - return 0 + [MAYBEEND] () { + if (this[ENDED] && + !this[EMITTEDEND] && + !this[ABORTED] && + !this[CONSUMING]) { + this[EMITTEDEND] = true + const entry = this[WRITEENTRY] + if (entry && entry.blockRemain) { + // truncated, likely a damaged file + const have = this[BUFFER] ? this[BUFFER].length : 0 + this.warn('TAR_BAD_ARCHIVE', `Truncated input (needed ${ + entry.blockRemain} more bytes, only ${have} available)`, {entry}) + if (this[BUFFER]) + entry.write(this[BUFFER]) + entry.end() } - other = new SemVer(other, this.options) - } - - if (other.version === this.version) { - return 0 + this[EMIT](DONE) } - - return this.compareMain(other) || this.comparePre(other) } - compareMain (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } - - return ( - compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch) - ) - } - - comparePre (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } + [CONSUMECHUNK] (chunk) { + if (this[CONSUMING]) + this[BUFFERCONCAT](chunk) + else if (!chunk && !this[BUFFER]) + this[MAYBEEND]() + else { + this[CONSUMING] = true + if (this[BUFFER]) { + this[BUFFERCONCAT](chunk) + const c = this[BUFFER] + this[BUFFER] = null + this[CONSUMECHUNKSUB](c) + } else + this[CONSUMECHUNKSUB](chunk) - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) { - return -1 - } else if (!this.prerelease.length && other.prerelease.length) { - return 1 - } else if (!this.prerelease.length && !other.prerelease.length) { - return 0 + while (this[BUFFER] && + this[BUFFER].length >= 512 && + !this[ABORTED] && + !this[SAW_EOF]) { + const c = this[BUFFER] + this[BUFFER] = null + this[CONSUMECHUNKSUB](c) + } + this[CONSUMING] = false } - let i = 0 - do { - const a = this.prerelease[i] - const b = other.prerelease[i] - debug('prerelease compare', i, a, b) - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers(a, b) - } - } while (++i) + if (!this[BUFFER] || this[ENDED]) + this[MAYBEEND]() } - compareBuild (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } + [CONSUMECHUNKSUB] (chunk) { + // we know that we are in CONSUMING mode, so anything written goes into + // the buffer. Advance the position and put any remainder in the buffer. + let position = 0 + const length = chunk.length + while (position + 512 <= length && !this[ABORTED] && !this[SAW_EOF]) { + switch (this[STATE]) { + case 'begin': + case 'header': + this[CONSUMEHEADER](chunk, position) + position += 512 + break - let i = 0 - do { - const a = this.build[i] - const b = other.build[i] - debug('prerelease compare', i, a, b) - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers(a, b) - } - } while (++i) - } + case 'ignore': + case 'body': + position += this[CONSUMEBODY](chunk, position) + break - // preminor will bump the version up to the next minor release, and immediately - // down to pre-release. premajor and prepatch work the same way. - inc (release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0 - this.patch = 0 - this.minor = 0 - this.major++ - this.inc('pre', identifier) - break - case 'preminor': - this.prerelease.length = 0 - this.patch = 0 - this.minor++ - this.inc('pre', identifier) - break - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0 - this.inc('patch', identifier) - this.inc('pre', identifier) - break - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) { - this.inc('patch', identifier) - } - this.inc('pre', identifier) - break + case 'meta': + position += this[CONSUMEMETA](chunk, position) + break - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if ( - this.minor !== 0 || - this.patch !== 0 || - this.prerelease.length === 0 - ) { - this.major++ - } - this.minor = 0 - this.patch = 0 - this.prerelease = [] - break - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) { - this.minor++ - } - this.patch = 0 - this.prerelease = [] - break - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) { - this.patch++ - } - this.prerelease = [] - break - // This probably shouldn't be used publicly. - // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) { - this.prerelease = [0] - } else { - let i = this.prerelease.length - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++ - i = -2 - } - } - if (i === -1) { - // didn't increment anything - this.prerelease.push(0) - } - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { - if (isNaN(this.prerelease[1])) { - this.prerelease = [identifier, 0] - } - } else { - this.prerelease = [identifier, 0] - } - } - break + /* istanbul ignore next */ + default: + throw new Error('invalid state: ' + this[STATE]) + } + } - default: - throw new Error(`invalid increment argument: ${release}`) + if (position < length) { + if (this[BUFFER]) + this[BUFFER] = Buffer.concat([chunk.slice(position), this[BUFFER]]) + else + this[BUFFER] = chunk.slice(position) } - this.format() - this.raw = this.version - return this } -} -module.exports = SemVer + end (chunk) { + if (!this[ABORTED]) { + if (this[UNZIP]) + this[UNZIP].end(chunk) + else { + this[ENDED] = true + this.write(chunk) + } + } + } +}) /***/ }), -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/clean.js": -/*!*******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/clean.js ***! - \*******************************************************************************************************/ +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/path-reservations.js": +/*!************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/path-reservations.js ***! + \************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -const parse = __webpack_require__(/*! ./parse */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/parse.js") -const clean = (version, options) => { - const s = parse(version.trim().replace(/^[=v]+/, ''), options) - return s ? s.version : null -} -module.exports = clean +// A path exclusive reservation system +// reserve([list, of, paths], fn) +// When the fn is first in line for all its paths, it +// is called with a cb that clears the reservation. +// +// Used by async unpack to avoid clobbering paths in use, +// while still allowing maximal safe parallelization. +const assert = __webpack_require__(/*! assert */ "assert") +const normalize = __webpack_require__(/*! ./normalize-unicode.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-unicode.js") +const stripSlashes = __webpack_require__(/*! ./strip-trailing-slashes.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-trailing-slashes.js") +const { join } = __webpack_require__(/*! path */ "path") -/***/ }), +const platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform +const isWindows = platform === 'win32' -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/cmp.js": -/*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/cmp.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +module.exports = () => { + // path => [function or Set] + // A Set object means a directory reservation + // A fn is a direct reservation on that path + const queues = new Map() -const eq = __webpack_require__(/*! ./eq */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/eq.js") -const neq = __webpack_require__(/*! ./neq */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/neq.js") -const gt = __webpack_require__(/*! ./gt */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gt.js") -const gte = __webpack_require__(/*! ./gte */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gte.js") -const lt = __webpack_require__(/*! ./lt */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lt.js") -const lte = __webpack_require__(/*! ./lte */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lte.js") + // fn => {paths:[path,...], dirs:[path, ...]} + const reservations = new Map() -const cmp = (a, op, b, loose) => { - switch (op) { - case '===': - if (typeof a === 'object') - a = a.version - if (typeof b === 'object') - b = b.version - return a === b - - case '!==': - if (typeof a === 'object') - a = a.version - if (typeof b === 'object') - b = b.version - return a !== b - - case '': - case '=': - case '==': - return eq(a, b, loose) - - case '!=': - return neq(a, b, loose) - - case '>': - return gt(a, b, loose) + // return a set of parent dirs for a given path + // '/a/b/c/d' -> ['/', '/a', '/a/b', '/a/b/c', '/a/b/c/d'] + const getDirs = path => { + const dirs = path.split('/').slice(0, -1).reduce((set, path) => { + if (set.length) + path = join(set[set.length - 1], path) + set.push(path || '/') + return set + }, []) + return dirs + } - case '>=': - return gte(a, b, loose) + // functions currently running + const running = new Set() - case '<': - return lt(a, b, loose) + // return the queues for each path the function cares about + // fn => {paths, dirs} + const getQueues = fn => { + const res = reservations.get(fn) + /* istanbul ignore if - unpossible */ + if (!res) + throw new Error('function does not have any path reservations') + return { + paths: res.paths.map(path => queues.get(path)), + dirs: [...res.dirs].map(path => queues.get(path)), + } + } - case '<=': - return lte(a, b, loose) + // check if fn is first in line for all its paths, and is + // included in the first set for all its dir queues + const check = fn => { + const {paths, dirs} = getQueues(fn) + return paths.every(q => q[0] === fn) && + dirs.every(q => q[0] instanceof Set && q[0].has(fn)) + } - default: - throw new TypeError(`Invalid operator: ${op}`) + // run the function if it's first in line and not already running + const run = fn => { + if (running.has(fn) || !check(fn)) + return false + running.add(fn) + fn(() => clear(fn)) + return true } -} -module.exports = cmp + const clear = fn => { + if (!running.has(fn)) + return false -/***/ }), + const { paths, dirs } = reservations.get(fn) + const next = new Set() -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/coerce.js": -/*!********************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/coerce.js ***! - \********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + paths.forEach(path => { + const q = queues.get(path) + assert.equal(q[0], fn) + if (q.length === 1) + queues.delete(path) + else { + q.shift() + if (typeof q[0] === 'function') + next.add(q[0]) + else + q[0].forEach(fn => next.add(fn)) + } + }) -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const parse = __webpack_require__(/*! ./parse */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/parse.js") -const {re, t} = __webpack_require__(/*! ../internal/re */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/re.js") + dirs.forEach(dir => { + const q = queues.get(dir) + assert(q[0] instanceof Set) + if (q[0].size === 1 && q.length === 1) + queues.delete(dir) + else if (q[0].size === 1) { + q.shift() -const coerce = (version, options) => { - if (version instanceof SemVer) { - return version - } + // must be a function or else the Set would've been reused + next.add(q[0]) + } else + q[0].delete(fn) + }) + running.delete(fn) - if (typeof version === 'number') { - version = String(version) + next.forEach(fn => run(fn)) + return true } - if (typeof version !== 'string') { - return null - } + const reserve = (paths, fn) => { + // collide on matches across case and unicode normalization + // On windows, thanks to the magic of 8.3 shortnames, it is fundamentally + // impossible to determine whether two paths refer to the same thing on + // disk, without asking the kernel for a shortname. + // So, we just pretend that every path matches every other path here, + // effectively removing all parallelization on windows. + paths = isWindows ? ['win32 parallelization disabled'] : paths.map(p => { + // don't need normPath, because we skip this entirely for windows + return normalize(stripSlashes(join(p))).toLowerCase() + }) - options = options || {} + const dirs = new Set( + paths.map(path => getDirs(path)).reduce((a, b) => a.concat(b)) + ) + reservations.set(fn, {dirs, paths}) + paths.forEach(path => { + const q = queues.get(path) + if (!q) + queues.set(path, [fn]) + else + q.push(fn) + }) + dirs.forEach(dir => { + const q = queues.get(dir) + if (!q) + queues.set(dir, [new Set([fn])]) + else if (q[q.length - 1] instanceof Set) + q[q.length - 1].add(fn) + else + q.push(new Set([fn])) + }) - let match = null - if (!options.rtl) { - match = version.match(re[t.COERCE]) - } else { - // Find the right-most coercible string that does not share - // a terminus with a more left-ward coercible string. - // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' - // - // Walk through the string checking with a /g regexp - // Manually set the index so as to pick up overlapping matches. - // Stop when we get a match that ends at the string end, since no - // coercible string can be more right-ward without the same terminus. - let next - while ((next = re[t.COERCERTL].exec(version)) && - (!match || match.index + match[0].length !== version.length) - ) { - if (!match || - next.index + next[0].length !== match.index + match[0].length) { - match = next - } - re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length - } - // leave it in a clean state - re[t.COERCERTL].lastIndex = -1 + return run(fn) } - if (match === null) - return null - - return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options) + return { check, reserve } } -module.exports = coerce /***/ }), -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare-build.js": -/*!***************************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare-build.js ***! - \***************************************************************************************************************/ +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pax.js": +/*!**********************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pax.js ***! + \**********************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const compareBuild = (a, b, loose) => { - const versionA = new SemVer(a, loose) - const versionB = new SemVer(b, loose) - return versionA.compare(versionB) || versionA.compareBuild(versionB) -} -module.exports = compareBuild - +"use strict"; -/***/ }), +const Header = __webpack_require__(/*! ./header.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/header.js") +const path = __webpack_require__(/*! path */ "path") -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare-loose.js": -/*!***************************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare-loose.js ***! - \***************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +class Pax { + constructor (obj, global) { + this.atime = obj.atime || null + this.charset = obj.charset || null + this.comment = obj.comment || null + this.ctime = obj.ctime || null + this.gid = obj.gid || null + this.gname = obj.gname || null + this.linkpath = obj.linkpath || null + this.mtime = obj.mtime || null + this.path = obj.path || null + this.size = obj.size || null + this.uid = obj.uid || null + this.uname = obj.uname || null + this.dev = obj.dev || null + this.ino = obj.ino || null + this.nlink = obj.nlink || null + this.global = global || false + } -const compare = __webpack_require__(/*! ./compare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js") -const compareLoose = (a, b) => compare(a, b, true) -module.exports = compareLoose + encode () { + const body = this.encodeBody() + if (body === '') + return null + const bodyLen = Buffer.byteLength(body) + // round up to 512 bytes + // add 512 for header + const bufLen = 512 * Math.ceil(1 + bodyLen / 512) + const buf = Buffer.allocUnsafe(bufLen) -/***/ }), + // 0-fill the header section, it might not hit every field + for (let i = 0; i < 512; i++) + buf[i] = 0 -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js": -/*!*********************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js ***! - \*********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + new Header({ + // XXX split the path + // then the path should be PaxHeader + basename, but less than 99, + // prepend with the dirname + path: ('PaxHeader/' + path.basename(this.path)).slice(0, 99), + mode: this.mode || 0o644, + uid: this.uid || null, + gid: this.gid || null, + size: bodyLen, + mtime: this.mtime || null, + type: this.global ? 'GlobalExtendedHeader' : 'ExtendedHeader', + linkpath: '', + uname: this.uname || '', + gname: this.gname || '', + devmaj: 0, + devmin: 0, + atime: this.atime || null, + ctime: this.ctime || null, + }).encode(buf) -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const compare = (a, b, loose) => - new SemVer(a, loose).compare(new SemVer(b, loose)) + buf.write(body, 512, bodyLen, 'utf8') -module.exports = compare + // null pad after the body + for (let i = bodyLen + 512; i < buf.length; i++) + buf[i] = 0 + return buf + } -/***/ }), + encodeBody () { + return ( + this.encodeField('path') + + this.encodeField('ctime') + + this.encodeField('atime') + + this.encodeField('dev') + + this.encodeField('ino') + + this.encodeField('nlink') + + this.encodeField('charset') + + this.encodeField('comment') + + this.encodeField('gid') + + this.encodeField('gname') + + this.encodeField('linkpath') + + this.encodeField('mtime') + + this.encodeField('size') + + this.encodeField('uid') + + this.encodeField('uname') + ) + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/diff.js": -/*!******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/diff.js ***! - \******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -const parse = __webpack_require__(/*! ./parse */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/parse.js") -const eq = __webpack_require__(/*! ./eq */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/eq.js") - -const diff = (version1, version2) => { - if (eq(version1, version2)) { - return null - } else { - const v1 = parse(version1) - const v2 = parse(version2) - const hasPre = v1.prerelease.length || v2.prerelease.length - const prefix = hasPre ? 'pre' : '' - const defaultResult = hasPre ? 'prerelease' : '' - for (const key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return prefix + key - } - } - } - return defaultResult // may be undefined + encodeField (field) { + if (this[field] === null || this[field] === undefined) + return '' + const v = this[field] instanceof Date ? this[field].getTime() / 1000 + : this[field] + const s = ' ' + + (field === 'dev' || field === 'ino' || field === 'nlink' + ? 'SCHILY.' : '') + + field + '=' + v + '\n' + const byteLen = Buffer.byteLength(s) + // the digits includes the length of the digits in ascii base-10 + // so if it's 9 characters, then adding 1 for the 9 makes it 10 + // which makes it 11 chars. + let digits = Math.floor(Math.log(byteLen) / Math.log(10)) + 1 + if (byteLen + digits >= Math.pow(10, digits)) + digits += 1 + const len = digits + byteLen + return len + s } } -module.exports = diff +Pax.parse = (string, ex, g) => new Pax(merge(parseKV(string), ex), g) -/***/ }), +const merge = (a, b) => + b ? Object.keys(a).reduce((s, k) => (s[k] = a[k], s), b) : a -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/eq.js": -/*!****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/eq.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +const parseKV = string => + string + .replace(/\n$/, '') + .split('\n') + .reduce(parseKVLine, Object.create(null)) -const compare = __webpack_require__(/*! ./compare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js") -const eq = (a, b, loose) => compare(a, b, loose) === 0 -module.exports = eq +const parseKVLine = (set, line) => { + const n = parseInt(line, 10) + // XXX Values with \n in them will fail this. + // Refactor to not be a naive line-by-line parse. + if (n !== Buffer.byteLength(line) + 1) + return set -/***/ }), + line = line.substr((n + ' ').length) + const kv = line.split('=') + const k = kv.shift().replace(/^SCHILY\.(dev|ino|nlink)/, '$1') + if (!k) + return set -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gt.js": -/*!****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gt.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + const v = kv.join('=') + set[k] = /^([A-Z]+\.)?([mac]|birth|creation)time$/.test(k) + ? new Date(v * 1000) + : /^[0-9]+$/.test(v) ? +v + : v + return set +} -const compare = __webpack_require__(/*! ./compare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js") -const gt = (a, b, loose) => compare(a, b, loose) > 0 -module.exports = gt +module.exports = Pax /***/ }), -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gte.js": +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/read-entry.js": /*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gte.js ***! + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/read-entry.js ***! \*****************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -const compare = __webpack_require__(/*! ./compare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js") -const gte = (a, b, loose) => compare(a, b, loose) >= 0 -module.exports = gte +"use strict"; +const MiniPass = __webpack_require__(/*! minipass */ "../../../.yarn/berry/cache/minipass-npm-3.1.6-f032df1661-9.zip/node_modules/minipass/index.js") +const normPath = __webpack_require__(/*! ./normalize-windows-path.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-windows-path.js") -/***/ }), +const SLURP = Symbol('slurp') +module.exports = class ReadEntry extends MiniPass { + constructor (header, ex, gex) { + super() + // read entries always start life paused. this is to avoid the + // situation where Minipass's auto-ending empty streams results + // in an entry ending before we're ready for it. + this.pause() + this.extended = ex + this.globalExtended = gex + this.header = header + this.startBlockSize = 512 * Math.ceil(header.size / 512) + this.blockRemain = this.startBlockSize + this.remain = header.size + this.type = header.type + this.meta = false + this.ignore = false + switch (this.type) { + case 'File': + case 'OldFile': + case 'Link': + case 'SymbolicLink': + case 'CharacterDevice': + case 'BlockDevice': + case 'Directory': + case 'FIFO': + case 'ContiguousFile': + case 'GNUDumpDir': + break -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/inc.js": -/*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/inc.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + case 'NextFileHasLongLinkpath': + case 'NextFileHasLongPath': + case 'OldGnuLongPath': + case 'GlobalExtendedHeader': + case 'ExtendedHeader': + case 'OldExtendedHeader': + this.meta = true + break -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") + // NOTE: gnutar and bsdtar treat unrecognized types as 'File' + // it may be worth doing the same, but with a warning. + default: + this.ignore = true + } -const inc = (version, release, options, identifier) => { - if (typeof (options) === 'string') { - identifier = options - options = undefined - } + this.path = normPath(header.path) + this.mode = header.mode + if (this.mode) + this.mode = this.mode & 0o7777 + this.uid = header.uid + this.gid = header.gid + this.uname = header.uname + this.gname = header.gname + this.size = header.size + this.mtime = header.mtime + this.atime = header.atime + this.ctime = header.ctime + this.linkpath = normPath(header.linkpath) + this.uname = header.uname + this.gname = header.gname - try { - return new SemVer(version, options).inc(release, identifier).version - } catch (er) { - return null + if (ex) + this[SLURP](ex) + if (gex) + this[SLURP](gex, true) } -} -module.exports = inc + write (data) { + const writeLen = data.length + if (writeLen > this.blockRemain) + throw new Error('writing more to entry than is appropriate') -/***/ }), - -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lt.js": -/*!****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lt.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -const compare = __webpack_require__(/*! ./compare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js") -const lt = (a, b, loose) => compare(a, b, loose) < 0 -module.exports = lt - + const r = this.remain + const br = this.blockRemain + this.remain = Math.max(0, r - writeLen) + this.blockRemain = Math.max(0, br - writeLen) + if (this.ignore) + return true -/***/ }), + if (r >= writeLen) + return super.write(data) -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lte.js": -/*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lte.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // r < writeLen + return super.write(data.slice(0, r)) + } -const compare = __webpack_require__(/*! ./compare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js") -const lte = (a, b, loose) => compare(a, b, loose) <= 0 -module.exports = lte + [SLURP] (ex, global) { + for (const k in ex) { + // we slurp in everything except for the path attribute in + // a global extended header, because that's weird. + if (ex[k] !== null && ex[k] !== undefined && + !(global && k === 'path')) + this[k] = k === 'path' || k === 'linkpath' ? normPath(ex[k]) : ex[k] + } + } +} /***/ }), -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/major.js": -/*!*******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/major.js ***! - \*******************************************************************************************************/ +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/replace.js": +/*!**************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/replace.js ***! + \**************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const major = (a, loose) => new SemVer(a, loose).major -module.exports = major +"use strict"; -/***/ }), +// tar -r +const hlo = __webpack_require__(/*! ./high-level-opt.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/high-level-opt.js") +const Pack = __webpack_require__(/*! ./pack.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pack.js") +const fs = __webpack_require__(/*! fs */ "fs") +const fsm = __webpack_require__(/*! fs-minipass */ "../../../.yarn/berry/cache/fs-minipass-npm-2.1.0-501ef87306-9.zip/node_modules/fs-minipass/index.js") +const t = __webpack_require__(/*! ./list.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/list.js") +const path = __webpack_require__(/*! path */ "path") -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/minor.js": -/*!*******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/minor.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +// starting at the head of the file, read a Header +// If the checksum is invalid, that's our position to start writing +// If it is, jump forward by the specified size (round up to 512) +// and try again. +// Write the new Pack stream starting there. -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const minor = (a, loose) => new SemVer(a, loose).minor -module.exports = minor +const Header = __webpack_require__(/*! ./header.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/header.js") +module.exports = (opt_, files, cb) => { + const opt = hlo(opt_) -/***/ }), + if (!opt.file) + throw new TypeError('file is required') -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/neq.js": -/*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/neq.js ***! - \*****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + if (opt.gzip) + throw new TypeError('cannot append to compressed archives') -const compare = __webpack_require__(/*! ./compare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js") -const neq = (a, b, loose) => compare(a, b, loose) !== 0 -module.exports = neq + if (!files || !Array.isArray(files) || !files.length) + throw new TypeError('no files or directories specified') + files = Array.from(files) -/***/ }), + return opt.sync ? replaceSync(opt, files) + : replace(opt, files, cb) +} -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/parse.js": -/*!*******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/parse.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +const replaceSync = (opt, files) => { + const p = new Pack.Sync(opt) -const {MAX_LENGTH} = __webpack_require__(/*! ../internal/constants */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/constants.js") -const { re, t } = __webpack_require__(/*! ../internal/re */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/re.js") -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") + let threw = true + let fd + let position -const parse = (version, options) => { - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false + try { + try { + fd = fs.openSync(opt.file, 'r+') + } catch (er) { + if (er.code === 'ENOENT') + fd = fs.openSync(opt.file, 'w+') + else + throw er } - } - if (version instanceof SemVer) { - return version - } + const st = fs.fstatSync(fd) + const headBuf = Buffer.alloc(512) - if (typeof version !== 'string') { - return null - } + POSITION: for (position = 0; position < st.size; position += 512) { + for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) { + bytes = fs.readSync( + fd, headBuf, bufPos, headBuf.length - bufPos, position + bufPos + ) - if (version.length > MAX_LENGTH) { - return null - } + if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) + throw new Error('cannot append to compressed archives') - const r = options.loose ? re[t.LOOSE] : re[t.FULL] - if (!r.test(version)) { - return null - } + if (!bytes) + break POSITION + } - try { - return new SemVer(version, options) - } catch (er) { - return null + const h = new Header(headBuf) + if (!h.cksumValid) + break + const entryBlockSize = 512 * Math.ceil(h.size / 512) + if (position + entryBlockSize + 512 > st.size) + break + // the 512 for the header we just parsed will be added as well + // also jump ahead all the blocks for the body + position += entryBlockSize + if (opt.mtimeCache) + opt.mtimeCache.set(h.path, h.mtime) + } + threw = false + + streamSync(opt, p, position, fd, files) + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } } } -module.exports = parse +const streamSync = (opt, p, position, fd, files) => { + const stream = new fsm.WriteStreamSync(opt.file, { + fd: fd, + start: position, + }) + p.pipe(stream) + addFilesSync(p, files) +} +const replace = (opt, files, cb) => { + files = Array.from(files) + const p = new Pack(opt) -/***/ }), + const getPos = (fd, size, cb_) => { + const cb = (er, pos) => { + if (er) + fs.close(fd, _ => cb_(er)) + else + cb_(null, pos) + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/patch.js": -/*!*******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/patch.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + let position = 0 + if (size === 0) + return cb(null, 0) -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const patch = (a, loose) => new SemVer(a, loose).patch -module.exports = patch + let bufPos = 0 + const headBuf = Buffer.alloc(512) + const onread = (er, bytes) => { + if (er) + return cb(er) + bufPos += bytes + if (bufPos < 512 && bytes) { + return fs.read( + fd, headBuf, bufPos, headBuf.length - bufPos, + position + bufPos, onread + ) + } + if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) + return cb(new Error('cannot append to compressed archives')) -/***/ }), + // truncated header + if (bufPos < 512) + return cb(null, position) -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/prerelease.js": -/*!************************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/prerelease.js ***! - \************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + const h = new Header(headBuf) + if (!h.cksumValid) + return cb(null, position) -const parse = __webpack_require__(/*! ./parse */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/parse.js") -const prerelease = (version, options) => { - const parsed = parse(version, options) - return (parsed && parsed.prerelease.length) ? parsed.prerelease : null -} -module.exports = prerelease + const entryBlockSize = 512 * Math.ceil(h.size / 512) + if (position + entryBlockSize + 512 > size) + return cb(null, position) + position += entryBlockSize + 512 + if (position >= size) + return cb(null, position) -/***/ }), + if (opt.mtimeCache) + opt.mtimeCache.set(h.path, h.mtime) + bufPos = 0 + fs.read(fd, headBuf, 0, 512, position, onread) + } + fs.read(fd, headBuf, 0, 512, position, onread) + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/rcompare.js": -/*!**********************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/rcompare.js ***! - \**********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + const promise = new Promise((resolve, reject) => { + p.on('error', reject) + let flag = 'r+' + const onopen = (er, fd) => { + if (er && er.code === 'ENOENT' && flag === 'r+') { + flag = 'w+' + return fs.open(opt.file, flag, onopen) + } -const compare = __webpack_require__(/*! ./compare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js") -const rcompare = (a, b, loose) => compare(b, a, loose) -module.exports = rcompare + if (er) + return reject(er) + fs.fstat(fd, (er, st) => { + if (er) + return fs.close(fd, () => reject(er)) -/***/ }), + getPos(fd, st.size, (er, position) => { + if (er) + return reject(er) + const stream = new fsm.WriteStream(opt.file, { + fd: fd, + start: position, + }) + p.pipe(stream) + stream.on('error', reject) + stream.on('close', resolve) + addFilesAsync(p, files) + }) + }) + } + fs.open(opt.file, flag, onopen) + }) -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/rsort.js": -/*!*******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/rsort.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + return cb ? promise.then(cb, cb) : promise +} -const compareBuild = __webpack_require__(/*! ./compare-build */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare-build.js") -const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) -module.exports = rsort +const addFilesSync = (p, files) => { + files.forEach(file => { + if (file.charAt(0) === '@') { + t({ + file: path.resolve(p.cwd, file.substr(1)), + sync: true, + noResume: true, + onentry: entry => p.add(entry), + }) + } else + p.add(file) + }) + p.end() +} + +const addFilesAsync = (p, files) => { + while (files.length) { + const file = files.shift() + if (file.charAt(0) === '@') { + return t({ + file: path.resolve(p.cwd, file.substr(1)), + noResume: true, + onentry: entry => p.add(entry), + }).then(_ => addFilesAsync(p, files)) + } else + p.add(file) + } + p.end() +} /***/ }), -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/satisfies.js": -/*!***********************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/satisfies.js ***! - \***********************************************************************************************************/ +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-absolute-path.js": +/*!**************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-absolute-path.js ***! + \**************************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -const Range = __webpack_require__(/*! ../classes/range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js") -const satisfies = (version, range, options) => { - try { - range = new Range(range, options) - } catch (er) { - return false +// unix absolute paths are also absolute on win32, so we use this for both +const { isAbsolute, parse } = (__webpack_require__(/*! path */ "path").win32) + +// returns [root, stripped] +// Note that windows will think that //x/y/z/a has a "root" of //x/y, and in +// those cases, we want to sanitize it to x/y/z/a, not z/a, so we strip / +// explicitly if it's the first character. +// drive-specific relative paths on Windows get their root stripped off even +// though they are not absolute, so `c:../foo` becomes ['c:', '../foo'] +module.exports = path => { + let r = '' + + let parsed = parse(path) + while (isAbsolute(path) || parsed.root) { + // windows will think that //x/y/z has a "root" of //x/y/ + // but strip the //?/C:/ off of //?/C:/path + const root = path.charAt(0) === '/' && path.slice(0, 4) !== '//?/' ? '/' + : parsed.root + path = path.substr(root.length) + r += root + parsed = parse(path) } - return range.test(version) + return [r, path] } -module.exports = satisfies /***/ }), -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/sort.js": -/*!******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/sort.js ***! - \******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-trailing-slashes.js": +/*!*****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-trailing-slashes.js ***! + \*****************************************************************************************************************/ +/***/ ((module) => { -const compareBuild = __webpack_require__(/*! ./compare-build */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare-build.js") -const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) -module.exports = sort +// warning: extremely hot code path. +// This has been meticulously optimized for use +// within npm install on large package trees. +// Do not edit without careful benchmarking. +module.exports = str => { + let i = str.length - 1 + let slashesStart = -1 + while (i > -1 && str.charAt(i) === '/') { + slashesStart = i + i-- + } + return slashesStart === -1 ? str : str.slice(0, slashesStart) +} /***/ }), -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/valid.js": -/*!*******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/valid.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/types.js": +/*!************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/types.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { -const parse = __webpack_require__(/*! ./parse */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/parse.js") -const valid = (version, options) => { - const v = parse(version, options) - return v ? v.version : null -} -module.exports = valid +"use strict"; + +// map types from key to human-friendly name +exports.name = new Map([ + ['0', 'File'], + // same as File + ['', 'OldFile'], + ['1', 'Link'], + ['2', 'SymbolicLink'], + // Devices and FIFOs aren't fully supported + // they are parsed, but skipped when unpacking + ['3', 'CharacterDevice'], + ['4', 'BlockDevice'], + ['5', 'Directory'], + ['6', 'FIFO'], + // same as File + ['7', 'ContiguousFile'], + // pax headers + ['g', 'GlobalExtendedHeader'], + ['x', 'ExtendedHeader'], + // vendor-specific stuff + // skip + ['A', 'SolarisACL'], + // like 5, but with data, which should be skipped + ['D', 'GNUDumpDir'], + // metadata only, skip + ['I', 'Inode'], + // data = link path of next file + ['K', 'NextFileHasLongLinkpath'], + // data = path of next file + ['L', 'NextFileHasLongPath'], + // skip + ['M', 'ContinuationFile'], + // like L + ['N', 'OldGnuLongPath'], + // skip + ['S', 'SparseFile'], + // skip + ['V', 'TapeVolumeHeader'], + // like x + ['X', 'OldExtendedHeader'], +]) + +// map the other direction +exports.code = new Map(Array.from(exports.name).map(kv => [kv[1], kv[0]])) /***/ }), -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/index.js": -/*!*********************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/index.js ***! - \*********************************************************************************************/ +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/unpack.js": +/*!*************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/unpack.js ***! + \*************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -// just pre-load all the stuff that index.js lazily exports -const internalRe = __webpack_require__(/*! ./internal/re */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/re.js") -module.exports = { - re: internalRe.re, - src: internalRe.src, - tokens: internalRe.t, - SEMVER_SPEC_VERSION: __webpack_require__(/*! ./internal/constants */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/constants.js").SEMVER_SPEC_VERSION, - SemVer: __webpack_require__(/*! ./classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js"), - compareIdentifiers: __webpack_require__(/*! ./internal/identifiers */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/identifiers.js").compareIdentifiers, - rcompareIdentifiers: __webpack_require__(/*! ./internal/identifiers */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/identifiers.js").rcompareIdentifiers, - parse: __webpack_require__(/*! ./functions/parse */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/parse.js"), - valid: __webpack_require__(/*! ./functions/valid */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/valid.js"), - clean: __webpack_require__(/*! ./functions/clean */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/clean.js"), - inc: __webpack_require__(/*! ./functions/inc */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/inc.js"), - diff: __webpack_require__(/*! ./functions/diff */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/diff.js"), - major: __webpack_require__(/*! ./functions/major */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/major.js"), - minor: __webpack_require__(/*! ./functions/minor */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/minor.js"), - patch: __webpack_require__(/*! ./functions/patch */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/patch.js"), - prerelease: __webpack_require__(/*! ./functions/prerelease */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/prerelease.js"), - compare: __webpack_require__(/*! ./functions/compare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare.js"), - rcompare: __webpack_require__(/*! ./functions/rcompare */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/rcompare.js"), - compareLoose: __webpack_require__(/*! ./functions/compare-loose */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare-loose.js"), - compareBuild: __webpack_require__(/*! ./functions/compare-build */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/compare-build.js"), - sort: __webpack_require__(/*! ./functions/sort */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/sort.js"), - rsort: __webpack_require__(/*! ./functions/rsort */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/rsort.js"), - gt: __webpack_require__(/*! ./functions/gt */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gt.js"), - lt: __webpack_require__(/*! ./functions/lt */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lt.js"), - eq: __webpack_require__(/*! ./functions/eq */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/eq.js"), - neq: __webpack_require__(/*! ./functions/neq */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/neq.js"), - gte: __webpack_require__(/*! ./functions/gte */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gte.js"), - lte: __webpack_require__(/*! ./functions/lte */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lte.js"), - cmp: __webpack_require__(/*! ./functions/cmp */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/cmp.js"), - coerce: __webpack_require__(/*! ./functions/coerce */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/coerce.js"), - Comparator: __webpack_require__(/*! ./classes/comparator */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/comparator.js"), - Range: __webpack_require__(/*! ./classes/range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js"), - satisfies: __webpack_require__(/*! ./functions/satisfies */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/satisfies.js"), - toComparators: __webpack_require__(/*! ./ranges/to-comparators */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/to-comparators.js"), - maxSatisfying: __webpack_require__(/*! ./ranges/max-satisfying */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/max-satisfying.js"), - minSatisfying: __webpack_require__(/*! ./ranges/min-satisfying */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/min-satisfying.js"), - minVersion: __webpack_require__(/*! ./ranges/min-version */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/min-version.js"), - validRange: __webpack_require__(/*! ./ranges/valid */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/valid.js"), - outside: __webpack_require__(/*! ./ranges/outside */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/outside.js"), - gtr: __webpack_require__(/*! ./ranges/gtr */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/gtr.js"), - ltr: __webpack_require__(/*! ./ranges/ltr */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/ltr.js"), - intersects: __webpack_require__(/*! ./ranges/intersects */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/intersects.js"), -} - - -/***/ }), - -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/constants.js": -/*!**********************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/constants.js ***! - \**********************************************************************************************************/ -/***/ ((module) => { - -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -const SEMVER_SPEC_VERSION = '2.0.0' +"use strict"; -const MAX_LENGTH = 256 -const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || - /* istanbul ignore next */ 9007199254740991 - -// Max safe segment length for coercion. -const MAX_SAFE_COMPONENT_LENGTH = 16 - -module.exports = { - SEMVER_SPEC_VERSION, - MAX_LENGTH, - MAX_SAFE_INTEGER, - MAX_SAFE_COMPONENT_LENGTH -} +// the PEND/UNPEND stuff tracks whether we're ready to emit end/close yet. +// but the path reservations are required to avoid race conditions where +// parallelized unpack ops may mess with one another, due to dependencies +// (like a Link depending on its target) or destructive operations (like +// clobbering an fs object to create one of a different type.) -/***/ }), +const assert = __webpack_require__(/*! assert */ "assert") +const Parser = __webpack_require__(/*! ./parse.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/parse.js") +const fs = __webpack_require__(/*! fs */ "fs") +const fsm = __webpack_require__(/*! fs-minipass */ "../../../.yarn/berry/cache/fs-minipass-npm-2.1.0-501ef87306-9.zip/node_modules/fs-minipass/index.js") +const path = __webpack_require__(/*! path */ "path") +const mkdir = __webpack_require__(/*! ./mkdir.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/mkdir.js") +const wc = __webpack_require__(/*! ./winchars.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/winchars.js") +const pathReservations = __webpack_require__(/*! ./path-reservations.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/path-reservations.js") +const stripAbsolutePath = __webpack_require__(/*! ./strip-absolute-path.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-absolute-path.js") +const normPath = __webpack_require__(/*! ./normalize-windows-path.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-windows-path.js") +const stripSlash = __webpack_require__(/*! ./strip-trailing-slashes.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-trailing-slashes.js") +const normalize = __webpack_require__(/*! ./normalize-unicode.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-unicode.js") -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/debug.js": -/*!******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/debug.js ***! - \******************************************************************************************************/ -/***/ ((module) => { +const ONENTRY = Symbol('onEntry') +const CHECKFS = Symbol('checkFs') +const CHECKFS2 = Symbol('checkFs2') +const PRUNECACHE = Symbol('pruneCache') +const ISREUSABLE = Symbol('isReusable') +const MAKEFS = Symbol('makeFs') +const FILE = Symbol('file') +const DIRECTORY = Symbol('directory') +const LINK = Symbol('link') +const SYMLINK = Symbol('symlink') +const HARDLINK = Symbol('hardlink') +const UNSUPPORTED = Symbol('unsupported') +const CHECKPATH = Symbol('checkPath') +const MKDIR = Symbol('mkdir') +const ONERROR = Symbol('onError') +const PENDING = Symbol('pending') +const PEND = Symbol('pend') +const UNPEND = Symbol('unpend') +const ENDED = Symbol('ended') +const MAYBECLOSE = Symbol('maybeClose') +const SKIP = Symbol('skip') +const DOCHOWN = Symbol('doChown') +const UID = Symbol('uid') +const GID = Symbol('gid') +const CHECKED_CWD = Symbol('checkedCwd') +const crypto = __webpack_require__(/*! crypto */ "crypto") +const getFlag = __webpack_require__(/*! ./get-write-flag.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/get-write-flag.js") +const platform = process.env.TESTING_TAR_FAKE_PLATFORM || process.platform +const isWindows = platform === 'win32' -const debug = ( - typeof process === 'object' && - process.env && - process.env.NODE_DEBUG && - /\bsemver\b/i.test(process.env.NODE_DEBUG) -) ? (...args) => console.error('SEMVER', ...args) - : () => {} +// Unlinks on Windows are not atomic. +// +// This means that if you have a file entry, followed by another +// file entry with an identical name, and you cannot re-use the file +// (because it's a hardlink, or because unlink:true is set, or it's +// Windows, which does not have useful nlink values), then the unlink +// will be committed to the disk AFTER the new file has been written +// over the old one, deleting the new file. +// +// To work around this, on Windows systems, we rename the file and then +// delete the renamed file. It's a sloppy kludge, but frankly, I do not +// know of a better way to do this, given windows' non-atomic unlink +// semantics. +// +// See: https://github.com/npm/node-tar/issues/183 +/* istanbul ignore next */ +const unlinkFile = (path, cb) => { + if (!isWindows) + return fs.unlink(path, cb) -module.exports = debug + const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex') + fs.rename(path, name, er => { + if (er) + return cb(er) + fs.unlink(name, cb) + }) +} +/* istanbul ignore next */ +const unlinkFileSync = path => { + if (!isWindows) + return fs.unlinkSync(path) -/***/ }), + const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex') + fs.renameSync(path, name) + fs.unlinkSync(name) +} -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/identifiers.js": -/*!************************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/identifiers.js ***! - \************************************************************************************************************/ -/***/ ((module) => { +// this.gid, entry.gid, this.processUid +const uint32 = (a, b, c) => + a === a >>> 0 ? a + : b === b >>> 0 ? b + : c -const numeric = /^[0-9]+$/ -const compareIdentifiers = (a, b) => { - const anum = numeric.test(a) - const bnum = numeric.test(b) +// clear the cache if it's a case-insensitive unicode-squashing match. +// we can't know if the current file system is case-sensitive or supports +// unicode fully, so we check for similarity on the maximally compatible +// representation. Err on the side of pruning, since all it's doing is +// preventing lstats, and it's not the end of the world if we get a false +// positive. +// Note that on windows, we always drop the entire cache whenever a +// symbolic link is encountered, because 8.3 filenames are impossible +// to reason about, and collisions are hazards rather than just failures. +const cacheKeyNormalize = path => normalize(stripSlash(normPath(path))) + .toLowerCase() - if (anum && bnum) { - a = +a - b = +b +const pruneCache = (cache, abs) => { + abs = cacheKeyNormalize(abs) + for (const path of cache.keys()) { + const pnorm = cacheKeyNormalize(path) + if (pnorm === abs || pnorm.indexOf(abs + '/') === 0) + cache.delete(path) } - - return a === b ? 0 - : (anum && !bnum) ? -1 - : (bnum && !anum) ? 1 - : a < b ? -1 - : 1 } -const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) - -module.exports = { - compareIdentifiers, - rcompareIdentifiers +const dropCache = cache => { + for (const key of cache.keys()) + cache.delete(key) } +class Unpack extends Parser { + constructor (opt) { + if (!opt) + opt = {} -/***/ }), + opt.ondone = _ => { + this[ENDED] = true + this[MAYBECLOSE]() + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/re.js": -/*!***************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/re.js ***! - \***************************************************************************************************/ -/***/ ((module, exports, __webpack_require__) => { + super(opt) -const { MAX_SAFE_COMPONENT_LENGTH } = __webpack_require__(/*! ./constants */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/constants.js") -const debug = __webpack_require__(/*! ./debug */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/internal/debug.js") -exports = module.exports = {} + this[CHECKED_CWD] = false -// The actual regexps go on exports.re -const re = exports.re = [] -const src = exports.src = [] -const t = exports.t = {} -let R = 0 + this.reservations = pathReservations() -const createToken = (name, value, isGlobal) => { - const index = R++ - debug(index, value) - t[name] = index - src[index] = value - re[index] = new RegExp(value, isGlobal ? 'g' : undefined) -} + this.transform = typeof opt.transform === 'function' ? opt.transform : null -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. + this.writable = true + this.readable = false -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. + this[PENDING] = 0 + this[ENDED] = false -createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*') -createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+') + this.dirCache = opt.dirCache || new Map() -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. + if (typeof opt.uid === 'number' || typeof opt.gid === 'number') { + // need both or neither + if (typeof opt.uid !== 'number' || typeof opt.gid !== 'number') + throw new TypeError('cannot set owner without number uid and gid') + if (opt.preserveOwner) { + throw new TypeError( + 'cannot preserve owner in archive and also set owner explicitly') + } + this.uid = opt.uid + this.gid = opt.gid + this.setOwner = true + } else { + this.uid = null + this.gid = null + this.setOwner = false + } -createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*') + // default true for root + if (opt.preserveOwner === undefined && typeof opt.uid !== 'number') + this.preserveOwner = process.getuid && process.getuid() === 0 + else + this.preserveOwner = !!opt.preserveOwner -// ## Main Version -// Three dot-separated numeric identifiers. + this.processUid = (this.preserveOwner || this.setOwner) && process.getuid ? + process.getuid() : null + this.processGid = (this.preserveOwner || this.setOwner) && process.getgid ? + process.getgid() : null -createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + - `(${src[t.NUMERICIDENTIFIER]})\\.` + - `(${src[t.NUMERICIDENTIFIER]})`) + // mostly just for testing, but useful in some cases. + // Forcibly trigger a chown on every entry, no matter what + this.forceChown = opt.forceChown === true -createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + - `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + - `(${src[t.NUMERICIDENTIFIERLOOSE]})`) + // turn > this[ONENTRY](entry)) + } -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. + // a bad or damaged archive is a warning for Parser, but an error + // when extracting. Mark those errors as unrecoverable, because + // the Unpack contract cannot be met. + warn (code, msg, data = {}) { + if (code === 'TAR_BAD_ARCHIVE' || code === 'TAR_ABORT') + data.recoverable = false + return super.warn(code, msg, data) + } -createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] -}(?:\\.${src[t.BUILDIDENTIFIER]})*))`) + [MAYBECLOSE] () { + if (this[ENDED] && this[PENDING] === 0) { + this.emit('prefinish') + this.emit('finish') + this.emit('end') + this.emit('close') + } + } -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. + [CHECKPATH] (entry) { + if (this.strip) { + const parts = normPath(entry.path).split('/') + if (parts.length < this.strip) + return false + entry.path = parts.slice(this.strip).join('/') -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. + if (entry.type === 'Link') { + const linkparts = normPath(entry.linkpath).split('/') + if (linkparts.length >= this.strip) + entry.linkpath = linkparts.slice(this.strip).join('/') + else + return false + } + } -createToken('FULLPLAIN', `v?${src[t.MAINVERSION] -}${src[t.PRERELEASE]}?${ - src[t.BUILD]}?`) + if (!this.preservePaths) { + const p = normPath(entry.path) + const parts = p.split('/') + if (parts.includes('..') || isWindows && /^[a-z]:\.\.$/i.test(parts[0])) { + this.warn('TAR_ENTRY_ERROR', `path contains '..'`, { + entry, + path: p, + }) + return false + } -createToken('FULL', `^${src[t.FULLPLAIN]}$`) + // strip off the root + const [root, stripped] = stripAbsolutePath(p) + if (root) { + entry.path = stripped + this.warn('TAR_ENTRY_INFO', `stripping ${root} from absolute path`, { + entry, + path: p, + }) + } + } -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] -}${src[t.PRERELEASELOOSE]}?${ - src[t.BUILD]}?`) + if (path.isAbsolute(entry.path)) + entry.absolute = normPath(path.resolve(entry.path)) + else + entry.absolute = normPath(path.resolve(this.cwd, entry.path)) + + // if we somehow ended up with a path that escapes the cwd, and we are + // not in preservePaths mode, then something is fishy! This should have + // been prevented above, so ignore this for coverage. + /* istanbul ignore if - defense in depth */ + if (!this.preservePaths && + entry.absolute.indexOf(this.cwd + '/') !== 0 && + entry.absolute !== this.cwd) { + this.warn('TAR_ENTRY_ERROR', 'path escaped extraction target', { + entry, + path: normPath(entry.path), + resolvedPath: entry.absolute, + cwd: this.cwd, + }) + return false + } -createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`) + // an archive can set properties on the extraction directory, but it + // may not replace the cwd with a different kind of thing entirely. + if (entry.absolute === this.cwd && + entry.type !== 'Directory' && + entry.type !== 'GNUDumpDir') + return false -createToken('GTLT', '((?:<|>)?=?)') + // only encode : chars that aren't drive letter indicators + if (this.win32) { + const { root: aRoot } = path.win32.parse(entry.absolute) + entry.absolute = aRoot + wc.encode(entry.absolute.substr(aRoot.length)) + const { root: pRoot } = path.win32.parse(entry.path) + entry.path = pRoot + wc.encode(entry.path.substr(pRoot.length)) + } -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`) -createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`) + return true + } -createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + - `(?:${src[t.PRERELEASE]})?${ - src[t.BUILD]}?` + - `)?)?`) + [ONENTRY] (entry) { + if (!this[CHECKPATH](entry)) + return entry.resume() -createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:${src[t.PRERELEASELOOSE]})?${ - src[t.BUILD]}?` + - `)?)?`) + assert.equal(typeof entry.absolute, 'string') -createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`) -createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`) + switch (entry.type) { + case 'Directory': + case 'GNUDumpDir': + if (entry.mode) + entry.mode = entry.mode | 0o700 -// Coercion. -// Extract anything that could conceivably be a part of a valid semver -createToken('COERCE', `${'(^|[^\\d])' + - '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:$|[^\\d])`) -createToken('COERCERTL', src[t.COERCE], true) + case 'File': + case 'OldFile': + case 'ContiguousFile': + case 'Link': + case 'SymbolicLink': + return this[CHECKFS](entry) -// Tilde ranges. -// Meaning is "reasonably at or greater than" -createToken('LONETILDE', '(?:~>?)') + case 'CharacterDevice': + case 'BlockDevice': + case 'FIFO': + default: + return this[UNSUPPORTED](entry) + } + } -createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true) -exports.tildeTrimReplace = '$1~' + [ONERROR] (er, entry) { + // Cwd has to exist, or else nothing works. That's serious. + // Other errors are warnings, which raise the error in strict + // mode, but otherwise continue on. + if (er.name === 'CwdError') + this.emit('error', er) + else { + this.warn('TAR_ENTRY_ERROR', er, {entry}) + this[UNPEND]() + entry.resume() + } + } -createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`) -createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`) + [MKDIR] (dir, mode, cb) { + mkdir(normPath(dir), { + uid: this.uid, + gid: this.gid, + processUid: this.processUid, + processGid: this.processGid, + umask: this.processUmask, + preserve: this.preservePaths, + unlink: this.unlink, + cache: this.dirCache, + cwd: this.cwd, + mode: mode, + noChmod: this.noChmod, + }, cb) + } -// Caret ranges. -// Meaning is "at least and backwards compatible with" -createToken('LONECARET', '(?:\\^)') + [DOCHOWN] (entry) { + // in preserve owner mode, chown if the entry doesn't match process + // in set owner mode, chown if setting doesn't match process + return this.forceChown || + this.preserveOwner && + (typeof entry.uid === 'number' && entry.uid !== this.processUid || + typeof entry.gid === 'number' && entry.gid !== this.processGid) + || + (typeof this.uid === 'number' && this.uid !== this.processUid || + typeof this.gid === 'number' && this.gid !== this.processGid) + } -createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true) -exports.caretTrimReplace = '$1^' + [UID] (entry) { + return uint32(this.uid, entry.uid, this.processUid) + } -createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`) -createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`) + [GID] (entry) { + return uint32(this.gid, entry.gid, this.processGid) + } -// A simple gt/lt/eq thing, or just "" to indicate "any version" -createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`) -createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`) + [FILE] (entry, fullyDone) { + const mode = entry.mode & 0o7777 || this.fmode + const stream = new fsm.WriteStream(entry.absolute, { + flags: getFlag(entry.size), + mode: mode, + autoClose: false, + }) + stream.on('error', er => { + if (stream.fd) + fs.close(stream.fd, () => {}) + + // flush all the data out so that we aren't left hanging + // if the error wasn't actually fatal. otherwise the parse + // is blocked, and we never proceed. + stream.write = () => true + this[ONERROR](er, entry) + fullyDone() + }) -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] -}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true) -exports.comparatorTrimReplace = '$1$2$3' + let actions = 1 + const done = er => { + if (er) { + /* istanbul ignore else - we should always have a fd by now */ + if (stream.fd) + fs.close(stream.fd, () => {}) -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + - `\\s+-\\s+` + - `(${src[t.XRANGEPLAIN]})` + - `\\s*$`) + this[ONERROR](er, entry) + fullyDone() + return + } -createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + - `\\s+-\\s+` + - `(${src[t.XRANGEPLAINLOOSE]})` + - `\\s*$`) + if (--actions === 0) { + fs.close(stream.fd, er => { + if (er) + this[ONERROR](er, entry) + else + this[UNPEND]() + fullyDone() + }) + } + } -// Star ranges basically just allow anything at all. -createToken('STAR', '(<|>)?=?\\s*\\*') + stream.on('finish', _ => { + // if futimes fails, try utimes + // if utimes fails, fail with the original error + // same for fchown/chown + const abs = entry.absolute + const fd = stream.fd + if (entry.mtime && !this.noMtime) { + actions++ + const atime = entry.atime || new Date() + const mtime = entry.mtime + fs.futimes(fd, atime, mtime, er => + er ? fs.utimes(abs, atime, mtime, er2 => done(er2 && er)) + : done()) + } -/***/ }), + if (this[DOCHOWN](entry)) { + actions++ + const uid = this[UID](entry) + const gid = this[GID](entry) + fs.fchown(fd, uid, gid, er => + er ? fs.chown(abs, uid, gid, er2 => done(er2 && er)) + : done()) + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/gtr.js": -/*!**************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/gtr.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + done() + }) -// Determine if version is greater than all the versions possible in the range. -const outside = __webpack_require__(/*! ./outside */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/outside.js") -const gtr = (version, range, options) => outside(version, range, '>', options) -module.exports = gtr + const tx = this.transform ? this.transform(entry) || entry : entry + if (tx !== entry) { + tx.on('error', er => { + this[ONERROR](er, entry) + fullyDone() + }) + entry.pipe(tx) + } + tx.pipe(stream) + } + [DIRECTORY] (entry, fullyDone) { + const mode = entry.mode & 0o7777 || this.dmode + this[MKDIR](entry.absolute, mode, er => { + if (er) { + this[ONERROR](er, entry) + fullyDone() + return + } -/***/ }), + let actions = 1 + const done = _ => { + if (--actions === 0) { + fullyDone() + this[UNPEND]() + entry.resume() + } + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/intersects.js": -/*!*********************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/intersects.js ***! - \*********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + if (entry.mtime && !this.noMtime) { + actions++ + fs.utimes(entry.absolute, entry.atime || new Date(), entry.mtime, done) + } -const Range = __webpack_require__(/*! ../classes/range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js") -const intersects = (r1, r2, options) => { - r1 = new Range(r1, options) - r2 = new Range(r2, options) - return r1.intersects(r2) -} -module.exports = intersects + if (this[DOCHOWN](entry)) { + actions++ + fs.chown(entry.absolute, this[UID](entry), this[GID](entry), done) + } + done() + }) + } -/***/ }), + [UNSUPPORTED] (entry) { + entry.unsupported = true + this.warn('TAR_ENTRY_UNSUPPORTED', + `unsupported entry type: ${entry.type}`, {entry}) + entry.resume() + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/ltr.js": -/*!**************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/ltr.js ***! - \**************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + [SYMLINK] (entry, done) { + this[LINK](entry, entry.linkpath, 'symlink', done) + } -const outside = __webpack_require__(/*! ./outside */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/outside.js") -// Determine if version is less than all the versions possible in the range -const ltr = (version, range, options) => outside(version, range, '<', options) -module.exports = ltr + [HARDLINK] (entry, done) { + const linkpath = normPath(path.resolve(this.cwd, entry.linkpath)) + this[LINK](entry, linkpath, 'link', done) + } + [PEND] () { + this[PENDING]++ + } -/***/ }), + [UNPEND] () { + this[PENDING]-- + this[MAYBECLOSE]() + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/max-satisfying.js": -/*!*************************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/max-satisfying.js ***! - \*************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + [SKIP] (entry) { + this[UNPEND]() + entry.resume() + } -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const Range = __webpack_require__(/*! ../classes/range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js") + // Check if we can reuse an existing filesystem entry safely and + // overwrite it, rather than unlinking and recreating + // Windows doesn't report a useful nlink, so we just never reuse entries + [ISREUSABLE] (entry, st) { + return entry.type === 'File' && + !this.unlink && + st.isFile() && + st.nlink <= 1 && + !isWindows + } -const maxSatisfying = (versions, range, options) => { - let max = null - let maxSV = null - let rangeObj = null - try { - rangeObj = new Range(range, options) - } catch (er) { - return null + // check if a thing is there, and if so, try to clobber it + [CHECKFS] (entry) { + this[PEND]() + const paths = [entry.path] + if (entry.linkpath) + paths.push(entry.linkpath) + this.reservations.reserve(paths, done => this[CHECKFS2](entry, done)) } - versions.forEach((v) => { - if (rangeObj.test(v)) { - // satisfies(v, range, options) - if (!max || maxSV.compare(v) === -1) { - // compare(max, v, true) - max = v - maxSV = new SemVer(max, options) - } - } - }) - return max -} -module.exports = maxSatisfying + [PRUNECACHE] (entry) { + // if we are not creating a directory, and the path is in the dirCache, + // then that means we are about to delete the directory we created + // previously, and it is no longer going to be a directory, and neither + // is any of its children. + // If a symbolic link is encountered, all bets are off. There is no + // reasonable way to sanitize the cache in such a way we will be able to + // avoid having filesystem collisions. If this happens with a non-symlink + // entry, it'll just fail to unpack, but a symlink to a directory, using an + // 8.3 shortname or certain unicode attacks, can evade detection and lead + // to arbitrary writes to anywhere on the system. + if (entry.type === 'SymbolicLink') + dropCache(this.dirCache) + else if (entry.type !== 'Directory') + pruneCache(this.dirCache, entry.absolute) + } -/***/ }), + [CHECKFS2] (entry, fullyDone) { + this[PRUNECACHE](entry) -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/min-satisfying.js": -/*!*************************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/min-satisfying.js ***! - \*************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + const done = er => { + this[PRUNECACHE](entry) + fullyDone(er) + } -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const Range = __webpack_require__(/*! ../classes/range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js") -const minSatisfying = (versions, range, options) => { - let min = null - let minSV = null - let rangeObj = null - try { - rangeObj = new Range(range, options) - } catch (er) { - return null - } - versions.forEach((v) => { - if (rangeObj.test(v)) { - // satisfies(v, range, options) - if (!min || minSV.compare(v) === 1) { - // compare(min, v, true) - min = v - minSV = new SemVer(min, options) - } + const checkCwd = () => { + this[MKDIR](this.cwd, this.dmode, er => { + if (er) { + this[ONERROR](er, entry) + done() + return + } + this[CHECKED_CWD] = true + start() + }) } - }) - return min -} -module.exports = minSatisfying + const start = () => { + if (entry.absolute !== this.cwd) { + const parent = normPath(path.dirname(entry.absolute)) + if (parent !== this.cwd) { + return this[MKDIR](parent, this.dmode, er => { + if (er) { + this[ONERROR](er, entry) + done() + return + } + afterMakeParent() + }) + } + } + afterMakeParent() + } -/***/ }), + const afterMakeParent = () => { + fs.lstat(entry.absolute, (lstatEr, st) => { + if (st && (this.keep || this.newer && st.mtime > entry.mtime)) { + this[SKIP](entry) + done() + return + } + if (lstatEr || this[ISREUSABLE](entry, st)) + return this[MAKEFS](null, entry, done) -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/min-version.js": -/*!**********************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/min-version.js ***! - \**********************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + if (st.isDirectory()) { + if (entry.type === 'Directory') { + const needChmod = !this.noChmod && + entry.mode && + (st.mode & 0o7777) !== entry.mode + const afterChmod = er => this[MAKEFS](er, entry, done) + if (!needChmod) + return afterChmod() + return fs.chmod(entry.absolute, entry.mode, afterChmod) + } + // Not a dir entry, have to remove it. + // NB: the only way to end up with an entry that is the cwd + // itself, in such a way that == does not detect, is a + // tricky windows absolute path with UNC or 8.3 parts (and + // preservePaths:true, or else it will have been stripped). + // In that case, the user has opted out of path protections + // explicitly, so if they blow away the cwd, c'est la vie. + if (entry.absolute !== this.cwd) { + return fs.rmdir(entry.absolute, er => + this[MAKEFS](er, entry, done)) + } + } -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const Range = __webpack_require__(/*! ../classes/range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js") -const gt = __webpack_require__(/*! ../functions/gt */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gt.js") + // not a dir, and not reusable + // don't remove if the cwd, we want that error + if (entry.absolute === this.cwd) + return this[MAKEFS](null, entry, done) -const minVersion = (range, loose) => { - range = new Range(range, loose) + unlinkFile(entry.absolute, er => + this[MAKEFS](er, entry, done)) + }) + } - let minver = new SemVer('0.0.0') - if (range.test(minver)) { - return minver + if (this[CHECKED_CWD]) + start() + else + checkCwd() } - minver = new SemVer('0.0.0-0') - if (range.test(minver)) { - return minver - } + [MAKEFS] (er, entry, done) { + if (er) { + this[ONERROR](er, entry) + done() + return + } - minver = null - for (let i = 0; i < range.set.length; ++i) { - const comparators = range.set[i] + switch (entry.type) { + case 'File': + case 'OldFile': + case 'ContiguousFile': + return this[FILE](entry, done) - comparators.forEach((comparator) => { - // Clone to avoid manipulating the comparator's semver object. - const compver = new SemVer(comparator.semver.version) - switch (comparator.operator) { - case '>': - if (compver.prerelease.length === 0) { - compver.patch++ - } else { - compver.prerelease.push(0) - } - compver.raw = compver.format() - /* fallthrough */ - case '': - case '>=': - if (!minver || gt(minver, compver)) { - minver = compver - } - break - case '<': - case '<=': - /* Ignore maximum versions */ - break - /* istanbul ignore next */ - default: - throw new Error(`Unexpected operation: ${comparator.operator}`) + case 'Link': + return this[HARDLINK](entry, done) + + case 'SymbolicLink': + return this[SYMLINK](entry, done) + + case 'Directory': + case 'GNUDumpDir': + return this[DIRECTORY](entry, done) + } + } + + [LINK] (entry, linkpath, link, done) { + // XXX: get the type ('symlink' or 'junction') for windows + fs[link](linkpath, entry.absolute, er => { + if (er) + this[ONERROR](er, entry) + else { + this[UNPEND]() + entry.resume() } + done() }) } +} - if (minver && range.test(minver)) { - return minver +const callSync = fn => { + try { + return [null, fn()] + } catch (er) { + return [er, null] } - - return null } -module.exports = minVersion +class UnpackSync extends Unpack { + [MAKEFS] (er, entry) { + return super[MAKEFS](er, entry, () => {}) + } + [CHECKFS] (entry) { + this[PRUNECACHE](entry) -/***/ }), + if (!this[CHECKED_CWD]) { + const er = this[MKDIR](this.cwd, this.dmode) + if (er) + return this[ONERROR](er, entry) + this[CHECKED_CWD] = true + } -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/outside.js": -/*!******************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/outside.js ***! - \******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // don't bother to make the parent if the current entry is the cwd, + // we've already checked it. + if (entry.absolute !== this.cwd) { + const parent = normPath(path.dirname(entry.absolute)) + if (parent !== this.cwd) { + const mkParent = this[MKDIR](parent, this.dmode) + if (mkParent) + return this[ONERROR](mkParent, entry) + } + } -const SemVer = __webpack_require__(/*! ../classes/semver */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/semver.js") -const Comparator = __webpack_require__(/*! ../classes/comparator */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/comparator.js") -const {ANY} = Comparator -const Range = __webpack_require__(/*! ../classes/range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js") -const satisfies = __webpack_require__(/*! ../functions/satisfies */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/satisfies.js") -const gt = __webpack_require__(/*! ../functions/gt */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gt.js") -const lt = __webpack_require__(/*! ../functions/lt */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lt.js") -const lte = __webpack_require__(/*! ../functions/lte */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/lte.js") -const gte = __webpack_require__(/*! ../functions/gte */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/functions/gte.js") + const [lstatEr, st] = callSync(() => fs.lstatSync(entry.absolute)) + if (st && (this.keep || this.newer && st.mtime > entry.mtime)) + return this[SKIP](entry) -const outside = (version, range, hilo, options) => { - version = new SemVer(version, options) - range = new Range(range, options) + if (lstatEr || this[ISREUSABLE](entry, st)) + return this[MAKEFS](null, entry) - let gtfn, ltefn, ltfn, comp, ecomp - switch (hilo) { - case '>': - gtfn = gt - ltefn = lte - ltfn = lt - comp = '>' - ecomp = '>=' - break - case '<': - gtfn = lt - ltefn = gte - ltfn = gt - comp = '<' - ecomp = '<=' - break - default: - throw new TypeError('Must provide a hilo val of "<" or ">"') - } + if (st.isDirectory()) { + if (entry.type === 'Directory') { + const needChmod = !this.noChmod && + entry.mode && + (st.mode & 0o7777) !== entry.mode + const [er] = needChmod ? callSync(() => { + fs.chmodSync(entry.absolute, entry.mode) + }) : [] + return this[MAKEFS](er, entry) + } + // not a dir entry, have to remove it + const [er] = callSync(() => fs.rmdirSync(entry.absolute)) + this[MAKEFS](er, entry) + } - // If it satisifes the range it is not outside - if (satisfies(version, range, options)) { - return false + // not a dir, and not reusable. + // don't remove if it's the cwd, since we want that error. + const [er] = entry.absolute === this.cwd ? [] + : callSync(() => unlinkFileSync(entry.absolute)) + this[MAKEFS](er, entry) } - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. + [FILE] (entry, done) { + const mode = entry.mode & 0o7777 || this.fmode - for (let i = 0; i < range.set.length; ++i) { - const comparators = range.set[i] + const oner = er => { + let closeError + try { + fs.closeSync(fd) + } catch (e) { + closeError = e + } + if (er || closeError) + this[ONERROR](er || closeError, entry) + done() + } - let high = null - let low = null + let fd + try { + fd = fs.openSync(entry.absolute, getFlag(entry.size), mode) + } catch (er) { + return oner(er) + } + const tx = this.transform ? this.transform(entry) || entry : entry + if (tx !== entry) { + tx.on('error', er => this[ONERROR](er, entry)) + entry.pipe(tx) + } - comparators.forEach((comparator) => { - if (comparator.semver === ANY) { - comparator = new Comparator('>=0.0.0') + tx.on('data', chunk => { + try { + fs.writeSync(fd, chunk, 0, chunk.length) + } catch (er) { + oner(er) } - high = high || comparator - low = low || comparator - if (gtfn(comparator.semver, high.semver, options)) { - high = comparator - } else if (ltfn(comparator.semver, low.semver, options)) { - low = comparator + }) + + tx.on('end', _ => { + let er = null + // try both, falling futimes back to utimes + // if either fails, handle the first error + if (entry.mtime && !this.noMtime) { + const atime = entry.atime || new Date() + const mtime = entry.mtime + try { + fs.futimesSync(fd, atime, mtime) + } catch (futimeser) { + try { + fs.utimesSync(entry.absolute, atime, mtime) + } catch (utimeser) { + er = futimeser + } + } + } + + if (this[DOCHOWN](entry)) { + const uid = this[UID](entry) + const gid = this[GID](entry) + + try { + fs.fchownSync(fd, uid, gid) + } catch (fchowner) { + try { + fs.chownSync(entry.absolute, uid, gid) + } catch (chowner) { + er = er || fchowner + } + } } + + oner(er) }) + } - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false + [DIRECTORY] (entry, done) { + const mode = entry.mode & 0o7777 || this.dmode + const er = this[MKDIR](entry.absolute, mode) + if (er) { + this[ONERROR](er, entry) + done() + return + } + if (entry.mtime && !this.noMtime) { + try { + fs.utimesSync(entry.absolute, entry.atime || new Date(), entry.mtime) + } catch (er) {} + } + if (this[DOCHOWN](entry)) { + try { + fs.chownSync(entry.absolute, this[UID](entry), this[GID](entry)) + } catch (er) {} } + done() + entry.resume() + } - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && - ltefn(version, low.semver)) { - return false - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false + [MKDIR] (dir, mode) { + try { + return mkdir.sync(normPath(dir), { + uid: this.uid, + gid: this.gid, + processUid: this.processUid, + processGid: this.processGid, + umask: this.processUmask, + preserve: this.preservePaths, + unlink: this.unlink, + cache: this.dirCache, + cwd: this.cwd, + mode: mode, + }) + } catch (er) { + return er + } + } + + [LINK] (entry, linkpath, link, done) { + try { + fs[link + 'Sync'](linkpath, entry.absolute) + done() + entry.resume() + } catch (er) { + return this[ONERROR](er, entry) } } - return true } -module.exports = outside +Unpack.Sync = UnpackSync +module.exports = Unpack /***/ }), -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/to-comparators.js": -/*!*************************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/to-comparators.js ***! - \*************************************************************************************************************/ +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/update.js": +/*!*************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/update.js ***! + \*************************************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -const Range = __webpack_require__(/*! ../classes/range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js") +"use strict"; -// Mostly just for testing and legacy API reasons -const toComparators = (range, options) => - new Range(range, options).set - .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) -module.exports = toComparators +// tar -u +const hlo = __webpack_require__(/*! ./high-level-opt.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/high-level-opt.js") +const r = __webpack_require__(/*! ./replace.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/replace.js") +// just call tar.r with the filter and mtimeCache -/***/ }), +module.exports = (opt_, files, cb) => { + const opt = hlo(opt_) -/***/ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/valid.js": -/*!****************************************************************************************************!*\ - !*** ./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/ranges/valid.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + if (!opt.file) + throw new TypeError('file is required') -const Range = __webpack_require__(/*! ../classes/range */ "./.yarn/cache/semver-npm-7.1.3-1741df6bad-a7700fd039.zip/node_modules/semver/classes/range.js") -const validRange = (range, options) => { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, options).range || '*' - } catch (er) { - return null - } + if (opt.gzip) + throw new TypeError('cannot append to compressed archives') + + if (!files || !Array.isArray(files) || !files.length) + throw new TypeError('no files or directories specified') + + files = Array.from(files) + + mtimeFilter(opt) + return r(opt, files, cb) +} + +const mtimeFilter = opt => { + const filter = opt.filter + + if (!opt.mtimeCache) + opt.mtimeCache = new Map() + + opt.filter = filter ? (path, stat) => + filter(path, stat) && !(opt.mtimeCache.get(path) > stat.mtime) + : (path, stat) => !(opt.mtimeCache.get(path) > stat.mtime) } -module.exports = validRange /***/ }), -/***/ "./.yarn/cache/supports-color-npm-7.1.0-df2ba1e338-899480ac85.zip/node_modules/supports-color/index.js": -/*!*************************************************************************************************************!*\ - !*** ./.yarn/cache/supports-color-npm-7.1.0-df2ba1e338-899480ac85.zip/node_modules/supports-color/index.js ***! - \*************************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/warn-mixin.js": +/*!*****************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/warn-mixin.js ***! + \*****************************************************************************************************/ +/***/ ((module) => { "use strict"; -const os = __webpack_require__(/*! os */ "os"); -const tty = __webpack_require__(/*! tty */ "tty"); -const hasFlag = __webpack_require__(/*! has-flag */ "./.yarn/cache/has-flag-npm-4.0.0-32af9f0536-261a135703.zip/node_modules/has-flag/index.js"); - -const {env} = process; - -let forceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false') || - hasFlag('color=never')) { - forceColor = 0; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { - forceColor = 1; -} - -if ('FORCE_COLOR' in env) { - if (env.FORCE_COLOR === 'true') { - forceColor = 1; - } else if (env.FORCE_COLOR === 'false') { - forceColor = 0; - } else { - forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); - } +module.exports = Base => class extends Base { + warn (code, message, data = {}) { + if (this.file) + data.file = this.file + if (this.cwd) + data.cwd = this.cwd + data.code = message instanceof Error && message.code || code + data.tarCode = code + if (!this.strict && data.recoverable !== false) { + if (message instanceof Error) { + data = Object.assign(message, data) + message = message.message + } + this.emit('warn', data.tarCode, message, data) + } else if (message instanceof Error) + this.emit('error', Object.assign(message, data)) + else + this.emit('error', Object.assign(new Error(`${code}: ${message}`), data)) + } } -function translateLevel(level) { - if (level === 0) { - return false; - } - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} +/***/ }), -function supportsColor(haveStream, streamIsTTY) { - if (forceColor === 0) { - return 0; - } +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/winchars.js": +/*!***************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/winchars.js ***! + \***************************************************************************************************/ +/***/ ((module) => { - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { - return 3; - } +"use strict"; - if (hasFlag('color=256')) { - return 2; - } - if (haveStream && !streamIsTTY && forceColor === undefined) { - return 0; - } +// When writing files on Windows, translate the characters to their +// 0xf000 higher-encoded versions. - const min = forceColor || 0; +const raw = [ + '|', + '<', + '>', + '?', + ':', +] - if (env.TERM === 'dumb') { - return min; - } +const win = raw.map(char => + String.fromCharCode(0xf000 + char.charCodeAt(0))) - if (process.platform === 'win32') { - // Windows 10 build 10586 is the first Windows release that supports 256 colors. - // Windows 10 build 14931 is the first release that supports 16m/TrueColor. - const osRelease = os.release().split('.'); - if ( - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 - ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } +const toWin = new Map(raw.map((char, i) => [char, win[i]])) +const toRaw = new Map(win.map((char, i) => [char, raw[i]])) - return 1; - } +module.exports = { + encode: s => raw.reduce((s, c) => s.split(c).join(toWin.get(c)), s), + decode: s => win.reduce((s, c) => s.split(c).join(toRaw.get(c)), s), +} - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { - return 1; - } - return min; - } +/***/ }), - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - } +/***/ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/write-entry.js": +/*!******************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/write-entry.js ***! + \******************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - if ('GITHUB_ACTIONS' in env) { - return 1; - } +"use strict"; - if (env.COLORTERM === 'truecolor') { - return 3; - } +const MiniPass = __webpack_require__(/*! minipass */ "../../../.yarn/berry/cache/minipass-npm-3.1.6-f032df1661-9.zip/node_modules/minipass/index.js") +const Pax = __webpack_require__(/*! ./pax.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/pax.js") +const Header = __webpack_require__(/*! ./header.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/header.js") +const fs = __webpack_require__(/*! fs */ "fs") +const path = __webpack_require__(/*! path */ "path") +const normPath = __webpack_require__(/*! ./normalize-windows-path.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/normalize-windows-path.js") +const stripSlash = __webpack_require__(/*! ./strip-trailing-slashes.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-trailing-slashes.js") - if ('TERM_PROGRAM' in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); +const prefixPath = (path, prefix) => { + if (!prefix) + return normPath(path) + path = normPath(path).replace(/^\.(\/|$)/, '') + return stripSlash(prefix) + '/' + path +} - switch (env.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Apple_Terminal': - return 2; - // No default - } - } +const maxReadSize = 16 * 1024 * 1024 +const PROCESS = Symbol('process') +const FILE = Symbol('file') +const DIRECTORY = Symbol('directory') +const SYMLINK = Symbol('symlink') +const HARDLINK = Symbol('hardlink') +const HEADER = Symbol('header') +const READ = Symbol('read') +const LSTAT = Symbol('lstat') +const ONLSTAT = Symbol('onlstat') +const ONREAD = Symbol('onread') +const ONREADLINK = Symbol('onreadlink') +const OPENFILE = Symbol('openfile') +const ONOPENFILE = Symbol('onopenfile') +const CLOSE = Symbol('close') +const MODE = Symbol('mode') +const AWAITDRAIN = Symbol('awaitDrain') +const ONDRAIN = Symbol('ondrain') +const PREFIX = Symbol('prefix') +const HAD_ERROR = Symbol('hadError') +const warner = __webpack_require__(/*! ./warn-mixin.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/warn-mixin.js") +const winchars = __webpack_require__(/*! ./winchars.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/winchars.js") +const stripAbsolutePath = __webpack_require__(/*! ./strip-absolute-path.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/strip-absolute-path.js") - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } +const modeFix = __webpack_require__(/*! ./mode-fix.js */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/lib/mode-fix.js") - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } +const WriteEntry = warner(class WriteEntry extends MiniPass { + constructor (p, opt) { + opt = opt || {} + super(opt) + if (typeof p !== 'string') + throw new TypeError('path is required') + this.path = normPath(p) + // suppress atime, ctime, uid, gid, uname, gname + this.portable = !!opt.portable + // until node has builtin pwnam functions, this'll have to do + this.myuid = process.getuid && process.getuid() || 0 + this.myuser = process.env.USER || '' + this.maxReadSize = opt.maxReadSize || maxReadSize + this.linkCache = opt.linkCache || new Map() + this.statCache = opt.statCache || new Map() + this.preservePaths = !!opt.preservePaths + this.cwd = normPath(opt.cwd || process.cwd()) + this.strict = !!opt.strict + this.noPax = !!opt.noPax + this.noMtime = !!opt.noMtime + this.mtime = opt.mtime || null + this.prefix = opt.prefix ? normPath(opt.prefix) : null - if ('COLORTERM' in env) { - return 1; - } + this.fd = null + this.blockLen = null + this.blockRemain = null + this.buf = null + this.offset = null + this.length = null + this.pos = null + this.remain = null - return min; -} + if (typeof opt.onwarn === 'function') + this.on('warn', opt.onwarn) -function getSupportLevel(stream) { - const level = supportsColor(stream, stream && stream.isTTY); - return translateLevel(level); -} + let pathWarn = false + if (!this.preservePaths) { + const [root, stripped] = stripAbsolutePath(this.path) + if (root) { + this.path = stripped + pathWarn = root + } + } -module.exports = { - supportsColor: getSupportLevel, - stdout: translateLevel(supportsColor(true, tty.isatty(1))), - stderr: translateLevel(supportsColor(true, tty.isatty(2))) -}; + this.win32 = !!opt.win32 || process.platform === 'win32' + if (this.win32) { + // force the \ to / normalization, since we might not *actually* + // be on windows, but want \ to be considered a path separator. + this.path = winchars.decode(this.path.replace(/\\/g, '/')) + p = p.replace(/\\/g, '/') + } + this.absolute = normPath(opt.absolute || path.resolve(this.cwd, p)) -/***/ }), + if (this.path === '') + this.path = './' -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/index.js": -/*!***************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/index.js ***! - \***************************************************************************************/ -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + if (pathWarn) { + this.warn('TAR_ENTRY_INFO', `stripping ${pathWarn} from absolute path`, { + entry: this, + path: pathWarn + this.path, + }) + } -"use strict"; + if (this.statCache.has(this.absolute)) + this[ONLSTAT](this.statCache.get(this.absolute)) + else + this[LSTAT]() + } + emit (ev, ...data) { + if (ev === 'error') + this[HAD_ERROR] = true + return super.emit(ev, ...data) + } -// high-level commands -exports.c = exports.create = __webpack_require__(/*! ./lib/create.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/create.js") -exports.r = exports.replace = __webpack_require__(/*! ./lib/replace.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/replace.js") -exports.t = exports.list = __webpack_require__(/*! ./lib/list.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/list.js") -exports.u = exports.update = __webpack_require__(/*! ./lib/update.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/update.js") -exports.x = exports.extract = __webpack_require__(/*! ./lib/extract.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/extract.js") + [LSTAT] () { + fs.lstat(this.absolute, (er, stat) => { + if (er) + return this.emit('error', er) + this[ONLSTAT](stat) + }) + } -// classes -exports.Pack = __webpack_require__(/*! ./lib/pack.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pack.js") -exports.Unpack = __webpack_require__(/*! ./lib/unpack.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/unpack.js") -exports.Parse = __webpack_require__(/*! ./lib/parse.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/parse.js") -exports.ReadEntry = __webpack_require__(/*! ./lib/read-entry.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/read-entry.js") -exports.WriteEntry = __webpack_require__(/*! ./lib/write-entry.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/write-entry.js") -exports.Header = __webpack_require__(/*! ./lib/header.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/header.js") -exports.Pax = __webpack_require__(/*! ./lib/pax.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pax.js") -exports.types = __webpack_require__(/*! ./lib/types.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/types.js") + [ONLSTAT] (stat) { + this.statCache.set(this.absolute, stat) + this.stat = stat + if (!stat.isFile()) + stat.size = 0 + this.type = getType(stat) + this.emit('stat', stat) + this[PROCESS]() + } + [PROCESS] () { + switch (this.type) { + case 'File': return this[FILE]() + case 'Directory': return this[DIRECTORY]() + case 'SymbolicLink': return this[SYMLINK]() + // unsupported types are ignored. + default: return this.end() + } + } -/***/ }), + [MODE] (mode) { + return modeFix(mode, this.type === 'Directory', this.portable) + } -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/create.js": -/*!********************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/create.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + [PREFIX] (path) { + return prefixPath(path, this.prefix) + } -"use strict"; + [HEADER] () { + if (this.type === 'Directory' && this.portable) + this.noMtime = true + this.header = new Header({ + path: this[PREFIX](this.path), + // only apply the prefix to hard links. + linkpath: this.type === 'Link' ? this[PREFIX](this.linkpath) + : this.linkpath, + // only the permissions and setuid/setgid/sticky bitflags + // not the higher-order bits that specify file type + mode: this[MODE](this.stat.mode), + uid: this.portable ? null : this.stat.uid, + gid: this.portable ? null : this.stat.gid, + size: this.stat.size, + mtime: this.noMtime ? null : this.mtime || this.stat.mtime, + type: this.type, + uname: this.portable ? null : + this.stat.uid === this.myuid ? this.myuser : '', + atime: this.portable ? null : this.stat.atime, + ctime: this.portable ? null : this.stat.ctime, + }) -// tar -c -const hlo = __webpack_require__(/*! ./high-level-opt.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/high-level-opt.js") + if (this.header.encode() && !this.noPax) { + super.write(new Pax({ + atime: this.portable ? null : this.header.atime, + ctime: this.portable ? null : this.header.ctime, + gid: this.portable ? null : this.header.gid, + mtime: this.noMtime ? null : this.mtime || this.header.mtime, + path: this[PREFIX](this.path), + linkpath: this.type === 'Link' ? this[PREFIX](this.linkpath) + : this.linkpath, + size: this.header.size, + uid: this.portable ? null : this.header.uid, + uname: this.portable ? null : this.header.uname, + dev: this.portable ? null : this.stat.dev, + ino: this.portable ? null : this.stat.ino, + nlink: this.portable ? null : this.stat.nlink, + }).encode()) + } + super.write(this.header.block) + } -const Pack = __webpack_require__(/*! ./pack.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pack.js") -const fs = __webpack_require__(/*! fs */ "fs") -const fsm = __webpack_require__(/*! fs-minipass */ "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip/node_modules/fs-minipass/index.js") -const t = __webpack_require__(/*! ./list.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/list.js") -const path = __webpack_require__(/*! path */ "path") + [DIRECTORY] () { + if (this.path.substr(-1) !== '/') + this.path += '/' + this.stat.size = 0 + this[HEADER]() + this.end() + } -const c = module.exports = (opt_, files, cb) => { - if (typeof files === 'function') - cb = files + [SYMLINK] () { + fs.readlink(this.absolute, (er, linkpath) => { + if (er) + return this.emit('error', er) + this[ONREADLINK](linkpath) + }) + } - if (Array.isArray(opt_)) - files = opt_, opt_ = {} + [ONREADLINK] (linkpath) { + this.linkpath = normPath(linkpath) + this[HEADER]() + this.end() + } - if (!files || !Array.isArray(files) || !files.length) - throw new TypeError('no files or directories specified') + [HARDLINK] (linkpath) { + this.type = 'Link' + this.linkpath = normPath(path.relative(this.cwd, linkpath)) + this.stat.size = 0 + this[HEADER]() + this.end() + } - files = Array.from(files) + [FILE] () { + if (this.stat.nlink > 1) { + const linkKey = this.stat.dev + ':' + this.stat.ino + if (this.linkCache.has(linkKey)) { + const linkpath = this.linkCache.get(linkKey) + if (linkpath.indexOf(this.cwd) === 0) + return this[HARDLINK](linkpath) + } + this.linkCache.set(linkKey, this.absolute) + } - const opt = hlo(opt_) + this[HEADER]() + if (this.stat.size === 0) + return this.end() - if (opt.sync && typeof cb === 'function') - throw new TypeError('callback not supported for sync tar functions') + this[OPENFILE]() + } - if (!opt.file && typeof cb === 'function') - throw new TypeError('callback only supported with file option') + [OPENFILE] () { + fs.open(this.absolute, 'r', (er, fd) => { + if (er) + return this.emit('error', er) + this[ONOPENFILE](fd) + }) + } - return opt.file && opt.sync ? createFileSync(opt, files) - : opt.file ? createFile(opt, files, cb) - : opt.sync ? createSync(opt, files) - : create(opt, files) -} + [ONOPENFILE] (fd) { + this.fd = fd + if (this[HAD_ERROR]) + return this[CLOSE]() + + this.blockLen = 512 * Math.ceil(this.stat.size / 512) + this.blockRemain = this.blockLen + const bufLen = Math.min(this.blockLen, this.maxReadSize) + this.buf = Buffer.allocUnsafe(bufLen) + this.offset = 0 + this.pos = 0 + this.remain = this.stat.size + this.length = this.buf.length + this[READ]() + } + + [READ] () { + const { fd, buf, offset, length, pos } = this + fs.read(fd, buf, offset, length, pos, (er, bytesRead) => { + if (er) { + // ignoring the error from close(2) is a bad practice, but at + // this point we already have an error, don't need another one + return this[CLOSE](() => this.emit('error', er)) + } + this[ONREAD](bytesRead) + }) + } -const createFileSync = (opt, files) => { - const p = new Pack.Sync(opt) - const stream = new fsm.WriteStreamSync(opt.file, { - mode: opt.mode || 0o666 - }) - p.pipe(stream) - addFilesSync(p, files) -} + [CLOSE] (cb) { + fs.close(this.fd, cb) + } -const createFile = (opt, files, cb) => { - const p = new Pack(opt) - const stream = new fsm.WriteStream(opt.file, { - mode: opt.mode || 0o666 - }) - p.pipe(stream) + [ONREAD] (bytesRead) { + if (bytesRead <= 0 && this.remain > 0) { + const er = new Error('encountered unexpected EOF') + er.path = this.absolute + er.syscall = 'read' + er.code = 'EOF' + return this[CLOSE](() => this.emit('error', er)) + } - const promise = new Promise((res, rej) => { - stream.on('error', rej) - stream.on('close', res) - p.on('error', rej) - }) + if (bytesRead > this.remain) { + const er = new Error('did not encounter expected EOF') + er.path = this.absolute + er.syscall = 'read' + er.code = 'EOF' + return this[CLOSE](() => this.emit('error', er)) + } - addFilesAsync(p, files) + // null out the rest of the buffer, if we could fit the block padding + // at the end of this loop, we've incremented bytesRead and this.remain + // to be incremented up to the blockRemain level, as if we had expected + // to get a null-padded file, and read it until the end. then we will + // decrement both remain and blockRemain by bytesRead, and know that we + // reached the expected EOF, without any null buffer to append. + if (bytesRead === this.remain) { + for (let i = bytesRead; i < this.length && bytesRead < this.blockRemain; i++) { + this.buf[i + this.offset] = 0 + bytesRead++ + this.remain++ + } + } - return cb ? promise.then(cb, cb) : promise -} + const writeBuf = this.offset === 0 && bytesRead === this.buf.length ? + this.buf : this.buf.slice(this.offset, this.offset + bytesRead) -const addFilesSync = (p, files) => { - files.forEach(file => { - if (file.charAt(0) === '@') - t({ - file: path.resolve(p.cwd, file.substr(1)), - sync: true, - noResume: true, - onentry: entry => p.add(entry) - }) + const flushed = this.write(writeBuf) + if (!flushed) + this[AWAITDRAIN](() => this[ONDRAIN]()) else - p.add(file) - }) - p.end() -} + this[ONDRAIN]() + } -const addFilesAsync = (p, files) => { - while (files.length) { - const file = files.shift() - if (file.charAt(0) === '@') - return t({ - file: path.resolve(p.cwd, file.substr(1)), - noResume: true, - onentry: entry => p.add(entry) - }).then(_ => addFilesAsync(p, files)) - else - p.add(file) + [AWAITDRAIN] (cb) { + this.once('drain', cb) } - p.end() -} -const createSync = (opt, files) => { - const p = new Pack.Sync(opt) - addFilesSync(p, files) - return p -} + write (writeBuf) { + if (this.blockRemain < writeBuf.length) { + const er = new Error('writing more data than expected') + er.path = this.absolute + return this.emit('error', er) + } + this.remain -= writeBuf.length + this.blockRemain -= writeBuf.length + this.pos += writeBuf.length + this.offset += writeBuf.length + return super.write(writeBuf) + } -const create = (opt, files) => { - const p = new Pack(opt) - addFilesAsync(p, files) - return p -} + [ONDRAIN] () { + if (!this.remain) { + if (this.blockRemain) + super.write(Buffer.alloc(this.blockRemain)) + return this[CLOSE](er => er ? this.emit('error', er) : this.end()) + } + if (this.offset >= this.length) { + // if we only have a smaller bit left to read, alloc a smaller buffer + // otherwise, keep it the same length it was before. + this.buf = Buffer.allocUnsafe(Math.min(this.blockRemain, this.buf.length)) + this.offset = 0 + } + this.length = this.buf.length - this.offset + this[READ]() + } +}) -/***/ }), +class WriteEntrySync extends WriteEntry { + [LSTAT] () { + this[ONLSTAT](fs.lstatSync(this.absolute)) + } -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/extract.js": -/*!*********************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/extract.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + [SYMLINK] () { + this[ONREADLINK](fs.readlinkSync(this.absolute)) + } -"use strict"; + [OPENFILE] () { + this[ONOPENFILE](fs.openSync(this.absolute, 'r')) + } + [READ] () { + let threw = true + try { + const { fd, buf, offset, length, pos } = this + const bytesRead = fs.readSync(fd, buf, offset, length, pos) + this[ONREAD](bytesRead) + threw = false + } finally { + // ignoring the error from close(2) is a bad practice, but at + // this point we already have an error, don't need another one + if (threw) { + try { + this[CLOSE](() => {}) + } catch (er) {} + } + } + } -// tar -x -const hlo = __webpack_require__(/*! ./high-level-opt.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/high-level-opt.js") -const Unpack = __webpack_require__(/*! ./unpack.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/unpack.js") -const fs = __webpack_require__(/*! fs */ "fs") -const fsm = __webpack_require__(/*! fs-minipass */ "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip/node_modules/fs-minipass/index.js") -const path = __webpack_require__(/*! path */ "path") + [AWAITDRAIN] (cb) { + cb() + } -const x = module.exports = (opt_, files, cb) => { - if (typeof opt_ === 'function') - cb = opt_, files = null, opt_ = {} - else if (Array.isArray(opt_)) - files = opt_, opt_ = {} + [CLOSE] (cb) { + fs.closeSync(this.fd) + cb() + } +} - if (typeof files === 'function') - cb = files, files = null +const WriteEntryTar = warner(class WriteEntryTar extends MiniPass { + constructor (readEntry, opt) { + opt = opt || {} + super(opt) + this.preservePaths = !!opt.preservePaths + this.portable = !!opt.portable + this.strict = !!opt.strict + this.noPax = !!opt.noPax + this.noMtime = !!opt.noMtime - if (!files) - files = [] - else - files = Array.from(files) + this.readEntry = readEntry + this.type = readEntry.type + if (this.type === 'Directory' && this.portable) + this.noMtime = true - const opt = hlo(opt_) + this.prefix = opt.prefix || null - if (opt.sync && typeof cb === 'function') - throw new TypeError('callback not supported for sync tar functions') + this.path = normPath(readEntry.path) + this.mode = this[MODE](readEntry.mode) + this.uid = this.portable ? null : readEntry.uid + this.gid = this.portable ? null : readEntry.gid + this.uname = this.portable ? null : readEntry.uname + this.gname = this.portable ? null : readEntry.gname + this.size = readEntry.size + this.mtime = this.noMtime ? null : opt.mtime || readEntry.mtime + this.atime = this.portable ? null : readEntry.atime + this.ctime = this.portable ? null : readEntry.ctime + this.linkpath = normPath(readEntry.linkpath) - if (!opt.file && typeof cb === 'function') - throw new TypeError('callback only supported with file option') + if (typeof opt.onwarn === 'function') + this.on('warn', opt.onwarn) - if (files.length) - filesFilter(opt, files) + let pathWarn = false + if (!this.preservePaths) { + const [root, stripped] = stripAbsolutePath(this.path) + if (root) { + this.path = stripped + pathWarn = root + } + } - return opt.file && opt.sync ? extractFileSync(opt) - : opt.file ? extractFile(opt, cb) - : opt.sync ? extractSync(opt) - : extract(opt) -} + this.remain = readEntry.size + this.blockRemain = readEntry.startBlockSize -// construct a filter that limits the file entries listed -// include child entries if a dir is included -const filesFilter = (opt, files) => { - const map = new Map(files.map(f => [f.replace(/\/+$/, ''), true])) - const filter = opt.filter + this.header = new Header({ + path: this[PREFIX](this.path), + linkpath: this.type === 'Link' ? this[PREFIX](this.linkpath) + : this.linkpath, + // only the permissions and setuid/setgid/sticky bitflags + // not the higher-order bits that specify file type + mode: this.mode, + uid: this.portable ? null : this.uid, + gid: this.portable ? null : this.gid, + size: this.size, + mtime: this.noMtime ? null : this.mtime, + type: this.type, + uname: this.portable ? null : this.uname, + atime: this.portable ? null : this.atime, + ctime: this.portable ? null : this.ctime, + }) - const mapHas = (file, r) => { - const root = r || path.parse(file).root || '.' - const ret = file === root ? false - : map.has(file) ? map.get(file) - : mapHas(path.dirname(file), root) + if (pathWarn) { + this.warn('TAR_ENTRY_INFO', `stripping ${pathWarn} from absolute path`, { + entry: this, + path: pathWarn + this.path, + }) + } - map.set(file, ret) - return ret - } + if (this.header.encode() && !this.noPax) { + super.write(new Pax({ + atime: this.portable ? null : this.atime, + ctime: this.portable ? null : this.ctime, + gid: this.portable ? null : this.gid, + mtime: this.noMtime ? null : this.mtime, + path: this[PREFIX](this.path), + linkpath: this.type === 'Link' ? this[PREFIX](this.linkpath) + : this.linkpath, + size: this.size, + uid: this.portable ? null : this.uid, + uname: this.portable ? null : this.uname, + dev: this.portable ? null : this.readEntry.dev, + ino: this.portable ? null : this.readEntry.ino, + nlink: this.portable ? null : this.readEntry.nlink, + }).encode()) + } - opt.filter = filter - ? (file, entry) => filter(file, entry) && mapHas(file.replace(/\/+$/, '')) - : file => mapHas(file.replace(/\/+$/, '')) -} + super.write(this.header.block) + readEntry.pipe(this) + } -const extractFileSync = opt => { - const u = new Unpack.Sync(opt) + [PREFIX] (path) { + return prefixPath(path, this.prefix) + } - const file = opt.file - let threw = true - let fd - const stat = fs.statSync(file) - // This trades a zero-byte read() syscall for a stat - // However, it will usually result in less memory allocation - const readSize = opt.maxReadSize || 16*1024*1024 - const stream = new fsm.ReadStreamSync(file, { - readSize: readSize, - size: stat.size - }) - stream.pipe(u) -} + [MODE] (mode) { + return modeFix(mode, this.type === 'Directory', this.portable) + } -const extractFile = (opt, cb) => { - const u = new Unpack(opt) - const readSize = opt.maxReadSize || 16*1024*1024 + write (data) { + const writeLen = data.length + if (writeLen > this.blockRemain) + throw new Error('writing more to entry than is appropriate') + this.blockRemain -= writeLen + return super.write(data) + } - const file = opt.file - const p = new Promise((resolve, reject) => { - u.on('error', reject) - u.on('close', resolve) + end () { + if (this.blockRemain) + super.write(Buffer.alloc(this.blockRemain)) + return super.end() + } +}) - // This trades a zero-byte read() syscall for a stat - // However, it will usually result in less memory allocation - fs.stat(file, (er, stat) => { - if (er) - reject(er) - else { - const stream = new fsm.ReadStream(file, { - readSize: readSize, - size: stat.size - }) - stream.on('error', reject) - stream.pipe(u) - } - }) - }) - return cb ? p.then(cb, cb) : p -} +WriteEntry.Sync = WriteEntrySync +WriteEntry.Tar = WriteEntryTar -const extractSync = opt => { - return new Unpack.Sync(opt) -} +const getType = stat => + stat.isFile() ? 'File' + : stat.isDirectory() ? 'Directory' + : stat.isSymbolicLink() ? 'SymbolicLink' + : 'Unsupported' -const extract = opt => { - return new Unpack(opt) -} +module.exports = WriteEntry /***/ }), -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/get-write-flag.js": -/*!****************************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/get-write-flag.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -// Get the appropriate flag to use for creating files -// We use fmap on Windows platforms for files less than -// 512kb. This is a fairly low limit, but avoids making -// things slower in some cases. Since most of what this -// library is used for is extracting tarballs of many -// relatively small files in npm packages and the like, -// it can be a big boost on Windows platforms. -// Only supported in Node v12.9.0 and above. -const platform = process.env.__FAKE_PLATFORM__ || process.platform -const isWindows = platform === 'win32' -const fs = global.__FAKE_TESTING_FS__ || __webpack_require__(/*! fs */ "fs") - -/* istanbul ignore next */ -const { O_CREAT, O_TRUNC, O_WRONLY, UV_FS_O_FILEMAP = 0 } = fs.constants - -const fMapEnabled = isWindows && !!UV_FS_O_FILEMAP -const fMapLimit = 512 * 1024 -const fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY -module.exports = !fMapEnabled ? () => 'w' - : size => size < fMapLimit ? fMapFlag : 'w' - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/header.js": -/*!********************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/header.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "../../../.yarn/berry/cache/typanion-npm-3.9.0-ef0bfe7e8b-9.zip/node_modules/typanion/lib/index.js": +/*!*********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/typanion-npm-3.9.0-ef0bfe7e8b-9.zip/node_modules/typanion/lib/index.js ***! + \*********************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { "use strict"; -// parse a 512-byte header block to a data object, or vice-versa -// encode returns `true` if a pax extended header is needed, because -// the data could not be faithfully encoded in a simple header. -// (Also, check header.needPax to see if it needs a pax header.) - -const types = __webpack_require__(/*! ./types.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/types.js") -const pathModule = __webpack_require__(/*! path */ "path").posix -const large = __webpack_require__(/*! ./large-numbers.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/large-numbers.js") - -const SLURP = Symbol('slurp') -const TYPE = Symbol('type') - -class Header { - constructor (data, off, ex, gex) { - this.cksumValid = false - this.needPax = false - this.nullBlock = false - - this.block = null - this.path = null - this.mode = null - this.uid = null - this.gid = null - this.size = null - this.mtime = null - this.cksum = null - this[TYPE] = '0' - this.linkpath = null - this.uname = null - this.gname = null - this.devmaj = 0 - this.devmin = 0 - this.atime = null - this.ctime = null - - if (Buffer.isBuffer(data)) - this.decode(data, off || 0, ex, gex) - else if (data) - this.set(data) - } - - decode (buf, off, ex, gex) { - if (!off) - off = 0 - - if (!buf || !(buf.length >= off + 512)) - throw new Error('need 512 bytes for header') - - this.path = decString(buf, off, 100) - this.mode = decNumber(buf, off + 100, 8) - this.uid = decNumber(buf, off + 108, 8) - this.gid = decNumber(buf, off + 116, 8) - this.size = decNumber(buf, off + 124, 12) - this.mtime = decDate(buf, off + 136, 12) - this.cksum = decNumber(buf, off + 148, 12) - - // if we have extended or global extended headers, apply them now - // See https://github.com/npm/node-tar/pull/187 - this[SLURP](ex) - this[SLURP](gex, true) - - // old tar versions marked dirs as a file with a trailing / - this[TYPE] = decString(buf, off + 156, 1) - if (this[TYPE] === '') - this[TYPE] = '0' - if (this[TYPE] === '0' && this.path.substr(-1) === '/') - this[TYPE] = '5' - - // tar implementations sometimes incorrectly put the stat(dir).size - // as the size in the tarball, even though Directory entries are - // not able to have any body at all. In the very rare chance that - // it actually DOES have a body, we weren't going to do anything with - // it anyway, and it'll just be a warning about an invalid header. - if (this[TYPE] === '5') - this.size = 0 - - this.linkpath = decString(buf, off + 157, 100) - if (buf.slice(off + 257, off + 265).toString() === 'ustar\u000000') { - this.uname = decString(buf, off + 265, 32) - this.gname = decString(buf, off + 297, 32) - this.devmaj = decNumber(buf, off + 329, 8) - this.devmin = decNumber(buf, off + 337, 8) - if (buf[off + 475] !== 0) { - // definitely a prefix, definitely >130 chars. - const prefix = decString(buf, off + 345, 155) - this.path = prefix + '/' + this.path - } else { - const prefix = decString(buf, off + 345, 130) - if (prefix) - this.path = prefix + '/' + this.path - this.atime = decDate(buf, off + 476, 12) - this.ctime = decDate(buf, off + 488, 12) - } - } - let sum = 8 * 0x20 - for (let i = off; i < off + 148; i++) { - sum += buf[i] - } - for (let i = off + 156; i < off + 512; i++) { - sum += buf[i] - } - this.cksumValid = sum === this.cksum - if (this.cksum === null && sum === 8 * 0x20) - this.nullBlock = true - } +Object.defineProperty(exports, "__esModule", ({ value: true })); - [SLURP] (ex, global) { - for (let k in ex) { - // we slurp in everything except for the path attribute in - // a global extended header, because that's weird. - if (ex[k] !== null && ex[k] !== undefined && - !(global && k === 'path')) - this[k] = ex[k] +const simpleKeyRegExp = /^[a-zA-Z_][a-zA-Z0-9_]*$/; +function getPrintable(value) { + if (value === null) + return `null`; + if (value === undefined) + return `undefined`; + if (value === ``) + return `an empty string`; + if (typeof value === 'symbol') + return `<${value.toString()}>`; + if (Array.isArray(value)) + return `an array`; + return JSON.stringify(value); +} +function getPrintableArray(value, conjunction) { + if (value.length === 0) + return `nothing`; + if (value.length === 1) + return getPrintable(value[0]); + const rest = value.slice(0, -1); + const trailing = value[value.length - 1]; + const separator = value.length > 2 + ? `, ${conjunction} ` + : ` ${conjunction} `; + return `${rest.map(value => getPrintable(value)).join(`, `)}${separator}${getPrintable(trailing)}`; +} +function computeKey(state, key) { + var _a, _b, _c; + if (typeof key === `number`) { + return `${(_a = state === null || state === void 0 ? void 0 : state.p) !== null && _a !== void 0 ? _a : `.`}[${key}]`; } - } - - encode (buf, off) { - if (!buf) { - buf = this.block = Buffer.alloc(512) - off = 0 + else if (simpleKeyRegExp.test(key)) { + return `${(_b = state === null || state === void 0 ? void 0 : state.p) !== null && _b !== void 0 ? _b : ``}.${key}`; } - - if (!off) - off = 0 - - if (!(buf.length >= off + 512)) - throw new Error('need 512 bytes for header') - - const prefixSize = this.ctime || this.atime ? 130 : 155 - const split = splitPrefix(this.path || '', prefixSize) - const path = split[0] - const prefix = split[1] - this.needPax = split[2] - - this.needPax = encString(buf, off, 100, path) || this.needPax - this.needPax = encNumber(buf, off + 100, 8, this.mode) || this.needPax - this.needPax = encNumber(buf, off + 108, 8, this.uid) || this.needPax - this.needPax = encNumber(buf, off + 116, 8, this.gid) || this.needPax - this.needPax = encNumber(buf, off + 124, 12, this.size) || this.needPax - this.needPax = encDate(buf, off + 136, 12, this.mtime) || this.needPax - buf[off + 156] = this[TYPE].charCodeAt(0) - this.needPax = encString(buf, off + 157, 100, this.linkpath) || this.needPax - buf.write('ustar\u000000', off + 257, 8) - this.needPax = encString(buf, off + 265, 32, this.uname) || this.needPax - this.needPax = encString(buf, off + 297, 32, this.gname) || this.needPax - this.needPax = encNumber(buf, off + 329, 8, this.devmaj) || this.needPax - this.needPax = encNumber(buf, off + 337, 8, this.devmin) || this.needPax - this.needPax = encString(buf, off + 345, prefixSize, prefix) || this.needPax - if (buf[off + 475] !== 0) - this.needPax = encString(buf, off + 345, 155, prefix) || this.needPax else { - this.needPax = encString(buf, off + 345, 130, prefix) || this.needPax - this.needPax = encDate(buf, off + 476, 12, this.atime) || this.needPax - this.needPax = encDate(buf, off + 488, 12, this.ctime) || this.needPax - } - - let sum = 8 * 0x20 - for (let i = off; i < off + 148; i++) { - sum += buf[i] - } - for (let i = off + 156; i < off + 512; i++) { - sum += buf[i] - } - this.cksum = sum - encNumber(buf, off + 148, 8, this.cksum) - this.cksumValid = true - - return this.needPax - } - - set (data) { - for (let i in data) { - if (data[i] !== null && data[i] !== undefined) - this[i] = data[i] + return `${(_c = state === null || state === void 0 ? void 0 : state.p) !== null && _c !== void 0 ? _c : `.`}[${JSON.stringify(key)}]`; } - } - - get type () { - return types.name.get(this[TYPE]) || this[TYPE] - } +} +function plural(n, singular, plural) { + return n === 1 ? singular : plural; +} - get typeKey () { - return this[TYPE] - } +const colorStringRegExp = /^#[0-9a-f]{6}$/i; +const colorStringAlphaRegExp = /^#[0-9a-f]{6}([0-9a-f]{2})?$/i; +// https://stackoverflow.com/a/475217/880703 +const base64RegExp = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/; +// https://stackoverflow.com/a/14166194/880703 +const uuid4RegExp = /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i; +// https://stackoverflow.com/a/28022901/880703 + https://www.debuggex.com/r/bl8J35wMKk48a7u_ +const iso8601RegExp = /^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/; - set type (type) { - if (types.code.has(type)) - this[TYPE] = types.code.get(type) - else - this[TYPE] = type - } +function pushError({ errors, p } = {}, message) { + errors === null || errors === void 0 ? void 0 : errors.push(`${p !== null && p !== void 0 ? p : `.`}: ${message}`); + return false; +} +function makeSetter(target, key) { + return (v) => { + target[key] = v; + }; +} +function makeCoercionFn(target, key) { + return (v) => { + const previous = target[key]; + target[key] = v; + return makeCoercionFn(target, key).bind(null, previous); + }; +} +function makeLazyCoercionFn(fn, orig, generator) { + const commit = () => { + fn(generator()); + return revert; + }; + const revert = () => { + fn(orig); + return commit; + }; + return commit; } -const splitPrefix = (p, prefixSize) => { - const pathSize = 100 - let pp = p - let prefix = '' - let ret - const root = pathModule.parse(p).root || '.' - - if (Buffer.byteLength(pp) < pathSize) - ret = [pp, prefix, false] - else { - // first set prefix to the dir, and path to the base - prefix = pathModule.dirname(pp) - pp = pathModule.basename(pp) - - do { - // both fit! - if (Buffer.byteLength(pp) <= pathSize && - Buffer.byteLength(prefix) <= prefixSize) - ret = [pp, prefix, false] - - // prefix fits in prefix, but path doesn't fit in path - else if (Buffer.byteLength(pp) > pathSize && - Buffer.byteLength(prefix) <= prefixSize) - ret = [pp.substr(0, pathSize - 1), prefix, true] - - else { - // make path take a bit from prefix - pp = pathModule.join(pathModule.basename(prefix), pp) - prefix = pathModule.dirname(prefix) - } - } while (prefix !== root && !ret) - - // at this point, found no resolution, just truncate - if (!ret) - ret = [p.substr(0, pathSize - 1), '', true] - } - return ret +/** + * Create a validator that always returns true and never refines the type. + */ +function isUnknown() { + return makeValidator({ + test: (value, state) => { + return true; + }, + }); } - -const decString = (buf, off, size) => - buf.slice(off, off + size).toString('utf8').replace(/\0.*/, '') - -const decDate = (buf, off, size) => - numToDate(decNumber(buf, off, size)) - -const numToDate = num => num === null ? null : new Date(num * 1000) - -const decNumber = (buf, off, size) => - buf[off] & 0x80 ? large.parse(buf.slice(off, off + size)) - : decSmallNumber(buf, off, size) - -const nanNull = value => isNaN(value) ? null : value - -const decSmallNumber = (buf, off, size) => - nanNull(parseInt( - buf.slice(off, off + size) - .toString('utf8').replace(/\0.*$/, '').trim(), 8)) - -// the maximum encodable as a null-terminated octal, by field size -const MAXNUM = { - 12: 0o77777777777, - 8 : 0o7777777 +function isLiteral(expected) { + return makeValidator({ + test: (value, state) => { + if (value !== expected) + return pushError(state, `Expected ${getPrintable(expected)} (got ${getPrintable(value)})`); + return true; + }, + }); } - -const encNumber = (buf, off, size, number) => - number === null ? false : - number > MAXNUM[size] || number < 0 - ? (large.encode(number, buf.slice(off, off + size)), true) - : (encSmallNumber(buf, off, size, number), false) - -const encSmallNumber = (buf, off, size, number) => - buf.write(octalString(number, size), off, size, 'ascii') - -const octalString = (number, size) => - padOctal(Math.floor(number).toString(8), size) - -const padOctal = (string, size) => - (string.length === size - 1 ? string - : new Array(size - string.length - 1).join('0') + string + ' ') + '\0' - -const encDate = (buf, off, size, date) => - date === null ? false : - encNumber(buf, off, size, date.getTime() / 1000) - -// enough to fill the longest string we've got -const NULLS = new Array(156).join('\0') -// pad with nulls, return true if it's longer or non-ascii -const encString = (buf, off, size, string) => - string === null ? false : - (buf.write(string + NULLS, off, size, 'utf8'), - string.length !== Buffer.byteLength(string) || string.length > size) - -module.exports = Header - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/high-level-opt.js": -/*!****************************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/high-level-opt.js ***! - \****************************************************************************************************/ -/***/ ((module) => { - -"use strict"; - - -// turn tar(1) style args like `C` into the more verbose things like `cwd` - -const argmap = new Map([ - ['C', 'cwd'], - ['f', 'file'], - ['z', 'gzip'], - ['P', 'preservePaths'], - ['U', 'unlink'], - ['strip-components', 'strip'], - ['stripComponents', 'strip'], - ['keep-newer', 'newer'], - ['keepNewer', 'newer'], - ['keep-newer-files', 'newer'], - ['keepNewerFiles', 'newer'], - ['k', 'keep'], - ['keep-existing', 'keep'], - ['keepExisting', 'keep'], - ['m', 'noMtime'], - ['no-mtime', 'noMtime'], - ['p', 'preserveOwner'], - ['L', 'follow'], - ['h', 'follow'] -]) - -const parse = module.exports = opt => opt ? Object.keys(opt).map(k => [ - argmap.has(k) ? argmap.get(k) : k, opt[k] -]).reduce((set, kv) => (set[kv[0]] = kv[1], set), Object.create(null)) : {} - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/large-numbers.js": -/*!***************************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/large-numbers.js ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -// Tar can encode large and negative numbers using a leading byte of -// 0xff for negative, and 0x80 for positive. - -const encode = exports.encode = (num, buf) => { - if (!Number.isSafeInteger(num)) - // The number is so large that javascript cannot represent it with integer - // precision. - throw Error('cannot encode number outside of javascript safe integer range') - else if (num < 0) - encodeNegative(num, buf) - else - encodePositive(num, buf) - return buf +/** + * Create a validator that only returns true when the tested value is a string. + * Refines the type to `string`. + */ +function isString() { + return makeValidator({ + test: (value, state) => { + if (typeof value !== `string`) + return pushError(state, `Expected a string (got ${getPrintable(value)})`); + return true; + }, + }); } - -const encodePositive = (num, buf) => { - buf[0] = 0x80 - - for (var i = buf.length; i > 1; i--) { - buf[i-1] = num & 0xff - num = Math.floor(num / 0x100) - } +function isEnum(enumSpec) { + const valuesArray = Array.isArray(enumSpec) ? enumSpec : Object.values(enumSpec); + const isAlphaNum = valuesArray.every(item => typeof item === 'string' || typeof item === 'number'); + const values = new Set(valuesArray); + if (values.size === 1) + return isLiteral([...values][0]); + return makeValidator({ + test: (value, state) => { + if (!values.has(value)) { + if (isAlphaNum) { + return pushError(state, `Expected one of ${getPrintableArray(valuesArray, `or`)} (got ${getPrintable(value)})`); + } + else { + return pushError(state, `Expected a valid enumeration value (got ${getPrintable(value)})`); + } + } + return true; + }, + }); } - -const encodeNegative = (num, buf) => { - buf[0] = 0xff - var flipped = false - num = num * -1 - for (var i = buf.length; i > 1; i--) { - var byte = num & 0xff - num = Math.floor(num / 0x100) - if (flipped) - buf[i-1] = onesComp(byte) - else if (byte === 0) - buf[i-1] = 0 - else { - flipped = true - buf[i-1] = twosComp(byte) - } - } +const BOOLEAN_COERCIONS = new Map([ + [`true`, true], + [`True`, true], + [`1`, true], + [1, true], + [`false`, false], + [`False`, false], + [`0`, false], + [0, false], +]); +/** + * Create a validator that only returns true when the tested value is a + * boolean. Refines the type to `boolean`. + * + * Supports coercion: + * - 'true' / 'True' / '1' / 1 will turn to `true` + * - 'false' / 'False' / '0' / 0 will turn to `false` + */ +function isBoolean() { + return makeValidator({ + test: (value, state) => { + var _a; + if (typeof value !== `boolean`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + const coercion = BOOLEAN_COERCIONS.get(value); + if (typeof coercion !== `undefined`) { + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, coercion)]); + return true; + } + } + return pushError(state, `Expected a boolean (got ${getPrintable(value)})`); + } + return true; + }, + }); } - -const parse = exports.parse = (buf) => { - var post = buf[buf.length - 1] - var pre = buf[0] - var value; - if (pre === 0x80) - value = pos(buf.slice(1, buf.length)) - else if (pre === 0xff) - value = twos(buf) - else - throw Error('invalid base256 encoding') - - if (!Number.isSafeInteger(value)) - // The number is so large that javascript cannot represent it with integer - // precision. - throw Error('parsed number outside of javascript safe integer range') - - return value +/** + * Create a validator that only returns true when the tested value is a + * number (including floating numbers; use `cascade` and `isInteger` to + * restrict the range further). Refines the type to `number`. + * + * Supports coercion. + */ +function isNumber() { + return makeValidator({ + test: (value, state) => { + var _a; + if (typeof value !== `number`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + let coercion; + if (typeof value === `string`) { + let val; + try { + val = JSON.parse(value); + } + catch (_b) { } + // We check against JSON.stringify that the output is the same to ensure that the number can be safely represented in JS + if (typeof val === `number`) { + if (JSON.stringify(val) === value) { + coercion = val; + } + else { + return pushError(state, `Received a number that can't be safely represented by the runtime (${value})`); + } + } + } + if (typeof coercion !== `undefined`) { + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, coercion)]); + return true; + } + } + return pushError(state, `Expected a number (got ${getPrintable(value)})`); + } + return true; + }, + }); } - -const twos = (buf) => { - var len = buf.length - var sum = 0 - var flipped = false - for (var i = len - 1; i > -1; i--) { - var byte = buf[i] - var f - if (flipped) - f = onesComp(byte) - else if (byte === 0) - f = byte - else { - flipped = true - f = twosComp(byte) - } - if (f !== 0) - sum -= f * Math.pow(256, len - i - 1) - } - return sum +/** + * Create a validator that only returns true when the tested value is a + * valid date. Refines the type to `Date`. + * + * Supports coercion via one of the following formats: + * - ISO86001 strings + * - Unix timestamps + */ +function isDate() { + return makeValidator({ + test: (value, state) => { + var _a; + if (!(value instanceof Date)) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + let coercion; + if (typeof value === `string` && iso8601RegExp.test(value)) { + coercion = new Date(value); + } + else { + let timestamp; + if (typeof value === `string`) { + let val; + try { + val = JSON.parse(value); + } + catch (_b) { } + if (typeof val === `number`) { + timestamp = val; + } + } + else if (typeof value === `number`) { + timestamp = value; + } + if (typeof timestamp !== `undefined`) { + if (Number.isSafeInteger(timestamp) || !Number.isSafeInteger(timestamp * 1000)) { + coercion = new Date(timestamp * 1000); + } + else { + return pushError(state, `Received a timestamp that can't be safely represented by the runtime (${value})`); + } + } + } + if (typeof coercion !== `undefined`) { + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, coercion)]); + return true; + } + } + return pushError(state, `Expected a date (got ${getPrintable(value)})`); + } + return true; + }, + }); } - -const pos = (buf) => { - var len = buf.length - var sum = 0 - for (var i = len - 1; i > -1; i--) { - var byte = buf[i] - if (byte !== 0) - sum += byte * Math.pow(256, len - i - 1) - } - return sum +/** + * Create a validator that only returns true when the tested value is an + * array whose all values match the provided subspec. Refines the type to + * `Array`, with `T` being the subspec inferred type. + * + * Supports coercion if the `delimiter` option is set, in which case strings + * will be split accordingly. + */ +function isArray(spec, { delimiter } = {}) { + return makeValidator({ + test: (value, state) => { + var _a; + const originalValue = value; + if (typeof value === `string` && typeof delimiter !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + value = value.split(delimiter); + } + } + if (!Array.isArray(value)) + return pushError(state, `Expected an array (got ${getPrintable(value)})`); + let valid = true; + for (let t = 0, T = value.length; t < T; ++t) { + valid = spec(value[t], Object.assign(Object.assign({}, state), { p: computeKey(state, t), coercion: makeCoercionFn(value, t) })) && valid; + if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { + break; + } + } + if (value !== originalValue) + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, value)]); + return valid; + }, + }); } - -const onesComp = byte => (0xff ^ byte) & 0xff - -const twosComp = byte => ((0xff ^ byte) + 1) & 0xff - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/list.js": -/*!******************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/list.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -// XXX: This shares a lot in common with extract.js -// maybe some DRY opportunity here? - -// tar -t -const hlo = __webpack_require__(/*! ./high-level-opt.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/high-level-opt.js") -const Parser = __webpack_require__(/*! ./parse.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/parse.js") -const fs = __webpack_require__(/*! fs */ "fs") -const fsm = __webpack_require__(/*! fs-minipass */ "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip/node_modules/fs-minipass/index.js") -const path = __webpack_require__(/*! path */ "path") - -const t = module.exports = (opt_, files, cb) => { - if (typeof opt_ === 'function') - cb = opt_, files = null, opt_ = {} - else if (Array.isArray(opt_)) - files = opt_, opt_ = {} - - if (typeof files === 'function') - cb = files, files = null - - if (!files) - files = [] - else - files = Array.from(files) - - const opt = hlo(opt_) - - if (opt.sync && typeof cb === 'function') - throw new TypeError('callback not supported for sync tar functions') - - if (!opt.file && typeof cb === 'function') - throw new TypeError('callback only supported with file option') - - if (files.length) - filesFilter(opt, files) - - if (!opt.noResume) - onentryFunction(opt) - - return opt.file && opt.sync ? listFileSync(opt) - : opt.file ? listFile(opt, cb) - : list(opt) +/** + * Create a validator that only returns true when the tested value is an + * set whose all values match the provided subspec. Refines the type to + * `Set`, with `T` being the subspec inferred type. + * + * Supports coercion from arrays (or anything that can be coerced into an + * array). + */ +function isSet(spec, { delimiter } = {}) { + const isArrayValidator = isArray(spec, { delimiter }); + return makeValidator({ + test: (value, state) => { + var _a, _b; + if (Object.getPrototypeOf(value).toString() === `[object Set]`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + const originalValues = [...value]; + const coercedValues = [...value]; + if (!isArrayValidator(coercedValues, Object.assign(Object.assign({}, state), { coercion: undefined }))) + return false; + const updateValue = () => coercedValues.some((val, t) => val !== originalValues[t]) + ? new Set(coercedValues) + : value; + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, makeLazyCoercionFn(state.coercion, value, updateValue)]); + return true; + } + else { + let valid = true; + for (const subValue of value) { + valid = spec(subValue, Object.assign({}, state)) && valid; + if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { + break; + } + } + return valid; + } + } + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + const store = { value }; + if (!isArrayValidator(value, Object.assign(Object.assign({}, state), { coercion: makeCoercionFn(store, `value`) }))) + return false; + state.coercions.push([(_b = state.p) !== null && _b !== void 0 ? _b : `.`, makeLazyCoercionFn(state.coercion, value, () => new Set(store.value))]); + return true; + } + return pushError(state, `Expected a set (got ${getPrintable(value)})`); + } + }); } - -const onentryFunction = opt => { - const onentry = opt.onentry - opt.onentry = onentry ? e => { - onentry(e) - e.resume() - } : e => e.resume() +/** + * Create a validator that only returns true when the tested value is an + * map whose all values match the provided subspecs. Refines the type to + * `Map`, with `U` being the key subspec inferred type and `V` being + * the value subspec inferred type. + * + * Supports coercion from array of tuples (or anything that can be coerced into + * an array of tuples). + */ +function isMap(keySpec, valueSpec) { + const isArrayValidator = isArray(isTuple([keySpec, valueSpec])); + const isRecordValidator = isRecord(valueSpec, { keys: keySpec }); + return makeValidator({ + test: (value, state) => { + var _a, _b, _c; + if (Object.getPrototypeOf(value).toString() === `[object Map]`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + const originalValues = [...value]; + const coercedValues = [...value]; + if (!isArrayValidator(coercedValues, Object.assign(Object.assign({}, state), { coercion: undefined }))) + return false; + const updateValue = () => coercedValues.some((val, t) => val[0] !== originalValues[t][0] || val[1] !== originalValues[t][1]) + ? new Map(coercedValues) + : value; + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, makeLazyCoercionFn(state.coercion, value, updateValue)]); + return true; + } + else { + let valid = true; + for (const [key, subValue] of value) { + valid = keySpec(key, Object.assign({}, state)) && valid; + if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { + break; + } + valid = valueSpec(subValue, Object.assign(Object.assign({}, state), { p: computeKey(state, key) })) && valid; + if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { + break; + } + } + return valid; + } + } + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + const store = { value }; + if (Array.isArray(value)) { + if (!isArrayValidator(value, Object.assign(Object.assign({}, state), { coercion: undefined }))) + return false; + state.coercions.push([(_b = state.p) !== null && _b !== void 0 ? _b : `.`, makeLazyCoercionFn(state.coercion, value, () => new Map(store.value))]); + return true; + } + else { + if (!isRecordValidator(value, Object.assign(Object.assign({}, state), { coercion: makeCoercionFn(store, `value`) }))) + return false; + state.coercions.push([(_c = state.p) !== null && _c !== void 0 ? _c : `.`, makeLazyCoercionFn(state.coercion, value, () => new Map(Object.entries(store.value)))]); + return true; + } + } + return pushError(state, `Expected a map (got ${getPrintable(value)})`); + } + }); } - -// construct a filter that limits the file entries listed -// include child entries if a dir is included -const filesFilter = (opt, files) => { - const map = new Map(files.map(f => [f.replace(/\/+$/, ''), true])) - const filter = opt.filter - - const mapHas = (file, r) => { - const root = r || path.parse(file).root || '.' - const ret = file === root ? false - : map.has(file) ? map.get(file) - : mapHas(path.dirname(file), root) - - map.set(file, ret) - return ret - } - - opt.filter = filter - ? (file, entry) => filter(file, entry) && mapHas(file.replace(/\/+$/, '')) - : file => mapHas(file.replace(/\/+$/, '')) +/** + * Create a validator that only returns true when the tested value is a + * tuple whose each value matches the corresponding subspec. Refines the type + * into a tuple whose each item has the type inferred by the corresponding + * tuple. + * + * Supports coercion if the `delimiter` option is set, in which case strings + * will be split accordingly. + */ +function isTuple(spec, { delimiter } = {}) { + const lengthValidator = hasExactLength(spec.length); + return makeValidator({ + test: (value, state) => { + var _a; + if (typeof value === `string` && typeof delimiter !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + value = value.split(delimiter); + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, value)]); + } + } + if (!Array.isArray(value)) + return pushError(state, `Expected a tuple (got ${getPrintable(value)})`); + let valid = lengthValidator(value, Object.assign({}, state)); + for (let t = 0, T = value.length; t < T && t < spec.length; ++t) { + valid = spec[t](value[t], Object.assign(Object.assign({}, state), { p: computeKey(state, t), coercion: makeCoercionFn(value, t) })) && valid; + if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { + break; + } + } + return valid; + }, + }); } - -const listFileSync = opt => { - const p = list(opt) - const file = opt.file - let threw = true - let fd - try { - const stat = fs.statSync(file) - const readSize = opt.maxReadSize || 16*1024*1024 - if (stat.size < readSize) { - p.end(fs.readFileSync(file)) - } else { - let pos = 0 - const buf = Buffer.allocUnsafe(readSize) - fd = fs.openSync(file, 'r') - while (pos < stat.size) { - let bytesRead = fs.readSync(fd, buf, 0, readSize, pos) - pos += bytesRead - p.write(buf.slice(0, bytesRead)) - } - p.end() +/** + * Create a validator that only returns true when the tested value is an + * object with any amount of properties that must all match the provided + * subspec. Refines the type to `Record`, with `T` being the + * subspec inferred type. + * + * Keys can be optionally validated as well by using the `keys` optional + * subspec parameter. + */ +function isRecord(spec, { keys: keySpec = null, } = {}) { + const isArrayValidator = isArray(isTuple([keySpec !== null && keySpec !== void 0 ? keySpec : isString(), spec])); + return makeValidator({ + test: (value, state) => { + var _a; + if (Array.isArray(value)) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + if (!isArrayValidator(value, Object.assign(Object.assign({}, state), { coercion: undefined }))) + return false; + value = Object.fromEntries(value); + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, value)]); + return true; + } + } + if (typeof value !== `object` || value === null) + return pushError(state, `Expected an object (got ${getPrintable(value)})`); + const keys = Object.keys(value); + let valid = true; + for (let t = 0, T = keys.length; t < T && (valid || (state === null || state === void 0 ? void 0 : state.errors) != null); ++t) { + const key = keys[t]; + const sub = value[key]; + if (key === `__proto__` || key === `constructor`) { + valid = pushError(Object.assign(Object.assign({}, state), { p: computeKey(state, key) }), `Unsafe property name`); + continue; + } + if (keySpec !== null && !keySpec(key, state)) { + valid = false; + continue; + } + if (!spec(sub, Object.assign(Object.assign({}, state), { p: computeKey(state, key), coercion: makeCoercionFn(value, key) }))) { + valid = false; + continue; + } + } + return valid; + }, + }); +} +/** + * @deprecated Replace `isDict` by `isRecord` + */ +function isDict(spec, opts = {}) { + return isRecord(spec, opts); +} +/** + * Create a validator that only returns true when the tested value is an + * object whose all properties match their corresponding subspec. Refines + * the type into an object whose each property has the type inferred by the + * corresponding subspec. + * + * Unlike `t.isPartial`, `t.isObject` doesn't allow extraneous properties by + * default. This behaviour can be altered by using the `extra` optional + * subspec parameter, which will be called to validate an object only + * containing the extraneous properties. + * + * Calling `t.isObject(..., {extra: t.isRecord(t.isUnknown())})` is + * essentially the same as calling `t.isPartial(...)`. + */ +function isObject(props, { extra: extraSpec = null, } = {}) { + const specKeys = Object.keys(props); + const validator = makeValidator({ + test: (value, state) => { + if (typeof value !== `object` || value === null) + return pushError(state, `Expected an object (got ${getPrintable(value)})`); + const keys = new Set([...specKeys, ...Object.keys(value)]); + const extra = {}; + let valid = true; + for (const key of keys) { + if (key === `constructor` || key === `__proto__`) { + valid = pushError(Object.assign(Object.assign({}, state), { p: computeKey(state, key) }), `Unsafe property name`); + } + else { + const spec = Object.prototype.hasOwnProperty.call(props, key) + ? props[key] + : undefined; + const sub = Object.prototype.hasOwnProperty.call(value, key) + ? value[key] + : undefined; + if (typeof spec !== `undefined`) { + valid = spec(sub, Object.assign(Object.assign({}, state), { p: computeKey(state, key), coercion: makeCoercionFn(value, key) })) && valid; + } + else if (extraSpec === null) { + valid = pushError(Object.assign(Object.assign({}, state), { p: computeKey(state, key) }), `Extraneous property (got ${getPrintable(sub)})`); + } + else { + Object.defineProperty(extra, key, { + enumerable: true, + get: () => sub, + set: makeSetter(value, key) + }); + } + } + if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { + break; + } + } + if (extraSpec !== null && (valid || (state === null || state === void 0 ? void 0 : state.errors) != null)) + valid = extraSpec(extra, state) && valid; + return valid; + }, + }); + return Object.assign(validator, { + properties: props, + }); +} +/** + * Create a validator that only returns true when the tested value is an + * object whose all properties match their corresponding subspec. Refines + * the type into an object whose each property has the type inferred by the + * corresponding subspec. + * + * Unlike `t.isObject`, `t.isPartial` allows extraneous properties. The + * resulting type will reflect this behaviour by including an index + * signature (each extraneous property being typed `unknown`). + * + * Calling `t.isPartial(...)` is essentially the same as calling + * `t.isObject(..., {extra: t.isRecord(t.isUnknown())})`. + */ +function isPartial(props) { + return isObject(props, { extra: isRecord(isUnknown()) }); +} +/** + * Create a validator that only returns true when the tested value is an + * object whose prototype is derived from the given class. Refines the type + * into a class instance. + */ +const isInstanceOf = (constructor) => makeValidator({ + test: (value, state) => { + if (!(value instanceof constructor)) + return pushError(state, `Expected an instance of ${constructor.name} (got ${getPrintable(value)})`); + return true; + }, +}); +/** + * Create a validator that only returns true when the tested value is an + * object matching any of the provided subspecs. If the optional `exclusive` + * parameter is set to `true`, the behaviour changes so that the validator + * only returns true when exactly one subspec matches. + */ +const isOneOf = (specs, { exclusive = false, } = {}) => makeValidator({ + test: (value, state) => { + var _a, _b, _c; + const matches = []; + const errorBuffer = typeof (state === null || state === void 0 ? void 0 : state.errors) !== `undefined` + ? [] : undefined; + for (let t = 0, T = specs.length; t < T; ++t) { + const subErrors = typeof (state === null || state === void 0 ? void 0 : state.errors) !== `undefined` + ? [] : undefined; + const subCoercions = typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined` + ? [] : undefined; + if (specs[t](value, Object.assign(Object.assign({}, state), { errors: subErrors, coercions: subCoercions, p: `${(_a = state === null || state === void 0 ? void 0 : state.p) !== null && _a !== void 0 ? _a : `.`}#${t + 1}` }))) { + matches.push([`#${t + 1}`, subCoercions]); + if (!exclusive) { + break; + } + } + else { + errorBuffer === null || errorBuffer === void 0 ? void 0 : errorBuffer.push(subErrors[0]); + } + } + if (matches.length === 1) { + const [, subCoercions] = matches[0]; + if (typeof subCoercions !== `undefined`) + (_b = state === null || state === void 0 ? void 0 : state.coercions) === null || _b === void 0 ? void 0 : _b.push(...subCoercions); + return true; + } + if (matches.length > 1) + pushError(state, `Expected to match exactly a single predicate (matched ${matches.join(`, `)})`); + else + (_c = state === null || state === void 0 ? void 0 : state.errors) === null || _c === void 0 ? void 0 : _c.push(...errorBuffer); + return false; + }, +}); + +function makeTrait(value) { + return () => { + return value; + }; +} +function makeValidator({ test }) { + return makeTrait(test)(); +} +class TypeAssertionError extends Error { + constructor({ errors } = {}) { + let errorMessage = `Type mismatch`; + if (errors && errors.length > 0) { + errorMessage += `\n`; + for (const error of errors) { + errorMessage += `\n- ${error}`; + } + } + super(errorMessage); + } +} +/** + * Check that the specified value matches the given validator, and throws an + * exception if it doesn't. Refine the type if it passes. + */ +function assert(val, validator) { + if (!validator(val)) { + throw new TypeAssertionError(); + } +} +/** + * Check that the specified value matches the given validator, and throws an + * exception if it doesn't. Refine the type if it passes. + * + * Thrown exceptions include details about what exactly looks invalid in the + * tested value. + */ +function assertWithErrors(val, validator) { + const errors = []; + if (!validator(val, { errors })) { + throw new TypeAssertionError({ errors }); + } +} +/** + * Compile-time only. Refine the type as if the validator was matching the + * tested value, but doesn't actually run it. Similar to the classic `as` + * operator in TypeScript. + */ +function softAssert(val, validator) { + // It's a soft assert; we tell TypeScript about the type, but we don't need to check it +} +function as(value, validator, { coerce = false, errors: storeErrors, throw: throws } = {}) { + const errors = storeErrors ? [] : undefined; + if (!coerce) { + if (validator(value, { errors })) { + return throws ? value : { value, errors: undefined }; + } + else if (!throws) { + return { value: undefined, errors: errors !== null && errors !== void 0 ? errors : true }; + } + else { + throw new TypeAssertionError({ errors }); + } + } + const state = { value }; + const coercion = makeCoercionFn(state, `value`); + const coercions = []; + if (!validator(value, { errors, coercion, coercions })) { + if (!throws) { + return { value: undefined, errors: errors !== null && errors !== void 0 ? errors : true }; + } + else { + throw new TypeAssertionError({ errors }); + } + } + for (const [, apply] of coercions) + apply(); + if (throws) { + return state.value; + } + else { + return { value: state.value, errors: undefined }; + } +} +/** + * Create and return a new function that apply the given validators to each + * corresponding argument passed to the function and throws an exception in + * case of a mismatch. + */ +function fn(validators, fn) { + const isValidArgList = isTuple(validators); + return ((...args) => { + const check = isValidArgList(args); + if (!check) + throw new TypeAssertionError(); + return fn(...args); + }); +} + +/** + * Create a validator that checks that the tested array or string has at least + * the specified length. + */ +function hasMinLength(length) { + return makeValidator({ + test: (value, state) => { + if (!(value.length >= length)) + return pushError(state, `Expected to have a length of at least ${length} elements (got ${value.length})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested array or string has at most + * the specified length. + */ +function hasMaxLength(length) { + return makeValidator({ + test: (value, state) => { + if (!(value.length <= length)) + return pushError(state, `Expected to have a length of at most ${length} elements (got ${value.length})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested array or string has exactly + * the specified length. + */ +function hasExactLength(length) { + return makeValidator({ + test: (value, state) => { + if (!(value.length === length)) + return pushError(state, `Expected to have a length of exactly ${length} elements (got ${value.length})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested array only contains unique + * elements. The optional `map` parameter lets you define a transform to + * apply before making the check (the result of this transform will be + * discarded afterwards). + */ +function hasUniqueItems({ map, } = {}) { + return makeValidator({ + test: (value, state) => { + const set = new Set(); + const dup = new Set(); + for (let t = 0, T = value.length; t < T; ++t) { + const sub = value[t]; + const key = typeof map !== `undefined` + ? map(sub) + : sub; + if (set.has(key)) { + if (dup.has(key)) + continue; + pushError(state, `Expected to contain unique elements; got a duplicate with ${getPrintable(value)}`); + dup.add(key); + } + else { + set.add(key); + } + } + return dup.size === 0; + }, + }); +} +/** + * Create a validator that checks that the tested number is strictly less than 0. + */ +function isNegative() { + return makeValidator({ + test: (value, state) => { + if (!(value <= 0)) + return pushError(state, `Expected to be negative (got ${value})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested number is equal or greater + * than 0. + */ +function isPositive() { + return makeValidator({ + test: (value, state) => { + if (!(value >= 0)) + return pushError(state, `Expected to be positive (got ${value})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested number is equal or greater + * than the specified reference. + */ +function isAtLeast(n) { + return makeValidator({ + test: (value, state) => { + if (!(value >= n)) + return pushError(state, `Expected to be at least ${n} (got ${value})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested number is equal or smaller + * than the specified reference. + */ +function isAtMost(n) { + return makeValidator({ + test: (value, state) => { + if (!(value <= n)) + return pushError(state, `Expected to be at most ${n} (got ${value})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested number is between the + * specified references (including the upper boundary). + */ +function isInInclusiveRange(a, b) { + return makeValidator({ + test: (value, state) => { + if (!(value >= a && value <= b)) + return pushError(state, `Expected to be in the [${a}; ${b}] range (got ${value})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested number is between the + * specified references (excluding the upper boundary). + */ +function isInExclusiveRange(a, b) { + return makeValidator({ + test: (value, state) => { + if (!(value >= a && value < b)) + return pushError(state, `Expected to be in the [${a}; ${b}[ range (got ${value})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested number is an integer. + * + * By default Typanion will also check that it's a *safe* integer. For example, + * 2^53 wouldn't be a safe integer because 2^53+1 would be rounded to 2^53, + * which could put your applications at risk when used in loops. + */ +function isInteger({ unsafe = false, } = {}) { + return makeValidator({ + test: (value, state) => { + if (value !== Math.round(value)) + return pushError(state, `Expected to be an integer (got ${value})`); + if (!unsafe && !Number.isSafeInteger(value)) + return pushError(state, `Expected to be a safe integer (got ${value})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested string matches the given + * regular expression. + */ +function matchesRegExp(regExp) { + return makeValidator({ + test: (value, state) => { + if (!regExp.test(value)) + return pushError(state, `Expected to match the pattern ${regExp.toString()} (got ${getPrintable(value)})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested string only contain lowercase + * characters. + */ +function isLowerCase() { + return makeValidator({ + test: (value, state) => { + if (value !== value.toLowerCase()) + return pushError(state, `Expected to be all-lowercase (got ${value})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested string only contain uppercase + * characters. + */ +function isUpperCase() { + return makeValidator({ + test: (value, state) => { + if (value !== value.toUpperCase()) + return pushError(state, `Expected to be all-uppercase (got ${value})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested string is a valid UUID v4. + */ +function isUUID4() { + return makeValidator({ + test: (value, state) => { + if (!uuid4RegExp.test(value)) + return pushError(state, `Expected to be a valid UUID v4 (got ${getPrintable(value)})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested string is a valid ISO8601 + * date. + */ +function isISO8601() { + return makeValidator({ + test: (value, state) => { + if (!iso8601RegExp.test(value)) + return pushError(state, `Expected to be a valid ISO 8601 date string (got ${getPrintable(value)})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested string is a valid hexadecimal + * color. Setting the optional `alpha` parameter to `true` allows an additional + * transparency channel to be included. + */ +function isHexColor({ alpha = false, }) { + return makeValidator({ + test: (value, state) => { + const res = alpha + ? colorStringRegExp.test(value) + : colorStringAlphaRegExp.test(value); + if (!res) + return pushError(state, `Expected to be a valid hexadecimal color string (got ${getPrintable(value)})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested string is valid base64. + */ +function isBase64() { + return makeValidator({ + test: (value, state) => { + if (!base64RegExp.test(value)) + return pushError(state, `Expected to be a valid base 64 string (got ${getPrintable(value)})`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested string is valid JSON. A + * optional spec can be passed as parameter, in which case the data will be + * deserialized and validated against the spec (coercion will be disabled + * for this check, and even if successful the returned value will still be + * the original string). + */ +function isJSON(spec = isUnknown()) { + return makeValidator({ + test: (value, state) => { + let data; + try { + data = JSON.parse(value); + } + catch (_a) { + return pushError(state, `Expected to be a valid JSON string (got ${getPrintable(value)})`); + } + return spec(data, state); + }, + }); +} + +function cascade(spec, ...followups) { + const resolvedFollowups = Array.isArray(followups[0]) + ? followups[0] + : followups; + return makeValidator({ + test: (value, state) => { + var _a, _b; + const context = { value: value }; + const subCoercion = typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined` + ? makeCoercionFn(context, `value`) : undefined; + const subCoercions = typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined` + ? [] : undefined; + if (!spec(value, Object.assign(Object.assign({}, state), { coercion: subCoercion, coercions: subCoercions }))) + return false; + const reverts = []; + if (typeof subCoercions !== `undefined`) + for (const [, coercion] of subCoercions) + reverts.push(coercion()); + try { + if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { + if (context.value !== value) { + if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) + return pushError(state, `Unbound coercion result`); + state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, context.value)]); + } + (_b = state === null || state === void 0 ? void 0 : state.coercions) === null || _b === void 0 ? void 0 : _b.push(...subCoercions); + } + return resolvedFollowups.every(spec => { + return spec(context.value, state); + }); + } + finally { + for (const revert of reverts) { + revert(); + } + } + }, + }); +} +function applyCascade(spec, ...followups) { + const resolvedFollowups = Array.isArray(followups[0]) + ? followups[0] + : followups; + return cascade(spec, resolvedFollowups); +} +/** + * Wraps the given spec to also allow `undefined`. + */ +function isOptional(spec) { + return makeValidator({ + test: (value, state) => { + if (typeof value === `undefined`) + return true; + return spec(value, state); + }, + }); +} +/** + * Wraps the given spec to also allow `null`. + */ +function isNullable(spec) { + return makeValidator({ + test: (value, state) => { + if (value === null) + return true; + return spec(value, state); + }, + }); +} +/** + * Create a validator that checks that the tested object contains the specified + * keys. + */ +function hasRequiredKeys(requiredKeys) { + const requiredSet = new Set(requiredKeys); + return makeValidator({ + test: (value, state) => { + const keys = new Set(Object.keys(value)); + const problems = []; + for (const key of requiredSet) + if (!keys.has(key)) + problems.push(key); + if (problems.length > 0) + return pushError(state, `Missing required ${plural(problems.length, `property`, `properties`)} ${getPrintableArray(problems, `and`)}`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested object contains none of the + * specified keys. + */ +function hasForbiddenKeys(forbiddenKeys) { + const forbiddenSet = new Set(forbiddenKeys); + return makeValidator({ + test: (value, state) => { + const keys = new Set(Object.keys(value)); + const problems = []; + for (const key of forbiddenSet) + if (keys.has(key)) + problems.push(key); + if (problems.length > 0) + return pushError(state, `Forbidden ${plural(problems.length, `property`, `properties`)} ${getPrintableArray(problems, `and`)}`); + return true; + }, + }); +} +/** + * Create a validator that checks that the tested object contains at most one + * of the specified keys. + */ +function hasMutuallyExclusiveKeys(exclusiveKeys) { + const exclusiveSet = new Set(exclusiveKeys); + return makeValidator({ + test: (value, state) => { + const keys = new Set(Object.keys(value)); + const used = []; + for (const key of exclusiveSet) + if (keys.has(key)) + used.push(key); + if (used.length > 1) + return pushError(state, `Mutually exclusive properties ${getPrintableArray(used, `and`)}`); + return true; + }, + }); +} +(function (KeyRelationship) { + KeyRelationship["Forbids"] = "Forbids"; + KeyRelationship["Requires"] = "Requires"; +})(exports.KeyRelationship || (exports.KeyRelationship = {})); +const keyRelationships = { + [exports.KeyRelationship.Forbids]: { + expect: false, + message: `forbids using`, + }, + [exports.KeyRelationship.Requires]: { + expect: true, + message: `requires using`, + }, +}; +/** + * Create a validator that checks that, when the specified subject property is + * set, the relationship is satisfied. + */ +function hasKeyRelationship(subject, relationship, others, { ignore = [], } = {}) { + const skipped = new Set(ignore); + const otherSet = new Set(others); + const spec = keyRelationships[relationship]; + const conjunction = relationship === exports.KeyRelationship.Forbids + ? `or` + : `and`; + return makeValidator({ + test: (value, state) => { + const keys = new Set(Object.keys(value)); + if (!keys.has(subject) || skipped.has(value[subject])) + return true; + const problems = []; + for (const key of otherSet) + if ((keys.has(key) && !skipped.has(value[key])) !== spec.expect) + problems.push(key); + if (problems.length >= 1) + return pushError(state, `Property "${subject}" ${spec.message} ${plural(problems.length, `property`, `properties`)} ${getPrintableArray(problems, conjunction)}`); + return true; + }, + }); +} + +exports.TypeAssertionError = TypeAssertionError; +exports.applyCascade = applyCascade; +exports.as = as; +exports.assert = assert; +exports.assertWithErrors = assertWithErrors; +exports.cascade = cascade; +exports.fn = fn; +exports.hasExactLength = hasExactLength; +exports.hasForbiddenKeys = hasForbiddenKeys; +exports.hasKeyRelationship = hasKeyRelationship; +exports.hasMaxLength = hasMaxLength; +exports.hasMinLength = hasMinLength; +exports.hasMutuallyExclusiveKeys = hasMutuallyExclusiveKeys; +exports.hasRequiredKeys = hasRequiredKeys; +exports.hasUniqueItems = hasUniqueItems; +exports.isArray = isArray; +exports.isAtLeast = isAtLeast; +exports.isAtMost = isAtMost; +exports.isBase64 = isBase64; +exports.isBoolean = isBoolean; +exports.isDate = isDate; +exports.isDict = isDict; +exports.isEnum = isEnum; +exports.isHexColor = isHexColor; +exports.isISO8601 = isISO8601; +exports.isInExclusiveRange = isInExclusiveRange; +exports.isInInclusiveRange = isInInclusiveRange; +exports.isInstanceOf = isInstanceOf; +exports.isInteger = isInteger; +exports.isJSON = isJSON; +exports.isLiteral = isLiteral; +exports.isLowerCase = isLowerCase; +exports.isMap = isMap; +exports.isNegative = isNegative; +exports.isNullable = isNullable; +exports.isNumber = isNumber; +exports.isObject = isObject; +exports.isOneOf = isOneOf; +exports.isOptional = isOptional; +exports.isPartial = isPartial; +exports.isPositive = isPositive; +exports.isRecord = isRecord; +exports.isSet = isSet; +exports.isString = isString; +exports.isTuple = isTuple; +exports.isUUID4 = isUUID4; +exports.isUnknown = isUnknown; +exports.isUpperCase = isUpperCase; +exports.makeTrait = makeTrait; +exports.makeValidator = makeValidator; +exports.matchesRegExp = matchesRegExp; +exports.softAssert = softAssert; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/which-npm-2.0.2-320ddf72f7-9.zip/node_modules/which/which.js": +/*!***********************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/which-npm-2.0.2-320ddf72f7-9.zip/node_modules/which/which.js ***! + \***********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +const isWindows = process.platform === 'win32' || + process.env.OSTYPE === 'cygwin' || + process.env.OSTYPE === 'msys' + +const path = __webpack_require__(/*! path */ "path") +const COLON = isWindows ? ';' : ':' +const isexe = __webpack_require__(/*! isexe */ "../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-9.zip/node_modules/isexe/index.js") + +const getNotFoundError = (cmd) => + Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' }) + +const getPathInfo = (cmd, opt) => { + const colon = opt.colon || COLON + + // If it has a slash, then we don't bother searching the pathenv. + // just check the file itself, and that's it. + const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [''] + : ( + [ + // windows always checks the cwd first + ...(isWindows ? [process.cwd()] : []), + ...(opt.path || process.env.PATH || + /* istanbul ignore next: very unusual */ '').split(colon), + ] + ) + const pathExtExe = isWindows + ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM' + : '' + const pathExt = isWindows ? pathExtExe.split(colon) : [''] + + if (isWindows) { + if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') + pathExt.unshift('') + } + + return { + pathEnv, + pathExt, + pathExtExe, + } +} + +const which = (cmd, opt, cb) => { + if (typeof opt === 'function') { + cb = opt + opt = {} + } + if (!opt) + opt = {} + + const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) + const found = [] + + const step = i => new Promise((resolve, reject) => { + if (i === pathEnv.length) + return opt.all && found.length ? resolve(found) + : reject(getNotFoundError(cmd)) + + const ppRaw = pathEnv[i] + const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw + + const pCmd = path.join(pathPart, cmd) + const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd + : pCmd + + resolve(subStep(p, i, 0)) + }) + + const subStep = (p, i, ii) => new Promise((resolve, reject) => { + if (ii === pathExt.length) + return resolve(step(i + 1)) + const ext = pathExt[ii] + isexe(p + ext, { pathExt: pathExtExe }, (er, is) => { + if (!er && is) { + if (opt.all) + found.push(p + ext) + else + return resolve(p + ext) + } + return resolve(subStep(p, i, ii + 1)) + }) + }) + + return cb ? step(0).then(res => cb(null, res), cb) : step(0) +} + +const whichSync = (cmd, opt) => { + opt = opt || {} + + const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) + const found = [] + + for (let i = 0; i < pathEnv.length; i ++) { + const ppRaw = pathEnv[i] + const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw + + const pCmd = path.join(pathPart, cmd) + const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd + : pCmd + + for (let j = 0; j < pathExt.length; j ++) { + const cur = p + pathExt[j] + try { + const is = isexe.sync(cur, { pathExt: pathExtExe }) + if (is) { + if (opt.all) + found.push(cur) + else + return cur + } + } catch (ex) {} + } + } + + if (opt.all && found.length) + return found + + if (opt.nothrow) + return null + + throw getNotFoundError(cmd) +} + +module.exports = which +which.sync = whichSync + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-9.zip/node_modules/yallist/iterator.js": +/*!******************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-9.zip/node_modules/yallist/iterator.js ***! + \******************************************************************************************************/ +/***/ ((module) => { + +"use strict"; + +module.exports = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value + } + } +} + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-9.zip/node_modules/yallist/yallist.js": +/*!*****************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-9.zip/node_modules/yallist/yallist.js ***! + \*****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + +module.exports = Yallist + +Yallist.Node = Node +Yallist.create = Yallist + +function Yallist (list) { + var self = this + if (!(self instanceof Yallist)) { + self = new Yallist() + } + + self.tail = null + self.head = null + self.length = 0 + + if (list && typeof list.forEach === 'function') { + list.forEach(function (item) { + self.push(item) + }) + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self.push(arguments[i]) + } + } + + return self +} + +Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list') + } + + var next = node.next + var prev = node.prev + + if (next) { + next.prev = prev + } + + if (prev) { + prev.next = next + } + + if (node === this.head) { + this.head = next + } + if (node === this.tail) { + this.tail = prev + } + + node.list.length-- + node.next = null + node.prev = null + node.list = null + + return next +} + +Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var head = this.head + node.list = this + node.next = head + if (head) { + head.prev = node + } + + this.head = node + if (!this.tail) { + this.tail = node + } + this.length++ +} + +Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var tail = this.tail + node.list = this + node.prev = tail + if (tail) { + tail.next = node + } + + this.tail = node + if (!this.head) { + this.head = node + } + this.length++ +} + +Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined + } + + var res = this.tail.value + this.tail = this.tail.prev + if (this.tail) { + this.tail.next = null + } else { + this.head = null + } + this.length-- + return res +} + +Yallist.prototype.shift = function () { + if (!this.head) { + return undefined + } + + var res = this.head.value + this.head = this.head.next + if (this.head) { + this.head.prev = null + } else { + this.tail = null + } + this.length-- + return res +} + +Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this) + walker = walker.next + } +} + +Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this) + walker = walker.prev + } +} + +Yallist.prototype.get = function (n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.next + } + if (i === n && walker !== null) { + return walker.value + } +} + +Yallist.prototype.getReverse = function (n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.prev + } + if (i === n && walker !== null) { + return walker.value + } +} + +Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.next + } + return res +} + +Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.prev + } + return res +} + +Yallist.prototype.reduce = function (fn, initial) { + var acc + var walker = this.head + if (arguments.length > 1) { + acc = initial + } else if (this.head) { + walker = this.head.next + acc = this.head.value + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i) + walker = walker.next + } + + return acc +} + +Yallist.prototype.reduceReverse = function (fn, initial) { + var acc + var walker = this.tail + if (arguments.length > 1) { + acc = initial + } else if (this.tail) { + walker = this.tail.prev + acc = this.tail.value + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i) + walker = walker.prev + } + + return acc +} + +Yallist.prototype.toArray = function () { + var arr = new Array(this.length) + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value + walker = walker.next + } + return arr +} + +Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length) + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value + walker = walker.prev + } + return arr +} + +Yallist.prototype.slice = function (from, to) { + to = to || this.length + if (to < 0) { + to += this.length + } + from = from || 0 + if (from < 0) { + from += this.length + } + var ret = new Yallist() + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next + } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value) + } + return ret +} + +Yallist.prototype.sliceReverse = function (from, to) { + to = to || this.length + if (to < 0) { + to += this.length + } + from = from || 0 + if (from < 0) { + from += this.length + } + var ret = new Yallist() + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev + } + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value) + } + return ret +} + +Yallist.prototype.splice = function (start, deleteCount, ...nodes) { + if (start > this.length) { + start = this.length - 1 + } + if (start < 0) { + start = this.length + start; + } + + for (var i = 0, walker = this.head; walker !== null && i < start; i++) { + walker = walker.next + } + + var ret = [] + for (var i = 0; walker && i < deleteCount; i++) { + ret.push(walker.value) + walker = this.removeNode(walker) + } + if (walker === null) { + walker = this.tail + } + + if (walker !== this.head && walker !== this.tail) { + walker = walker.prev + } + + for (var i = 0; i < nodes.length; i++) { + walker = insert(this, walker, nodes[i]) + } + return ret; +} + +Yallist.prototype.reverse = function () { + var head = this.head + var tail = this.tail + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev + walker.prev = walker.next + walker.next = p + } + this.head = tail + this.tail = head + return this +} + +function insert (self, node, value) { + var inserted = node === self.head ? + new Node(value, null, node, self) : + new Node(value, node, node.next, self) + + if (inserted.next === null) { + self.tail = inserted + } + if (inserted.prev === null) { + self.head = inserted + } + + self.length++ + + return inserted +} + +function push (self, item) { + self.tail = new Node(item, self.tail, null, self) + if (!self.head) { + self.head = self.tail + } + self.length++ +} + +function unshift (self, item) { + self.head = new Node(item, null, self.head, self) + if (!self.tail) { + self.tail = self.head + } + self.length++ +} + +function Node (value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list) + } + + this.list = list + this.value = value + + if (prev) { + prev.next = this + this.prev = prev + } else { + this.prev = null + } + + if (next) { + next.prev = this + this.next = next + } else { + this.next = null + } +} + +try { + // add if support for Symbol.iterator is present + __webpack_require__(/*! ./iterator.js */ "../../../.yarn/berry/cache/yallist-npm-4.0.0-b493d9e907-9.zip/node_modules/yallist/iterator.js")(Yallist) +} catch (er) {} + + +/***/ }), + +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Cli.js": +/*!************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Cli.js ***! + \************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var constants = __webpack_require__(/*! ../constants.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/constants.js"); +var Command = __webpack_require__(/*! ./Command.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Command.js"); +var core = __webpack_require__(/*! ../core.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/core.js"); +var format = __webpack_require__(/*! ../format.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/format.js"); +var HelpCommand = __webpack_require__(/*! ./HelpCommand.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/HelpCommand.js"); + +const errorCommandSymbol = Symbol(`clipanion/errorCommand`); +function getDefaultColorSettings() { + if (process.env.FORCE_COLOR === `0`) + return false; + if (process.env.FORCE_COLOR === `1`) + return true; + if (typeof process.stdout !== `undefined` && process.stdout.isTTY) + return true; + return false; +} +/** + * @template Context The context shared by all commands. Contexts are a set of values, defined when calling the `run`/`runExit` functions from the CLI instance, that will be made available to the commands via `this.context`. + */ +class Cli { + constructor({ binaryLabel, binaryName: binaryNameOpt = `...`, binaryVersion, enableCapture = false, enableColors = getDefaultColorSettings() } = {}) { + this.registrations = new Map(); + this.builder = new core.CliBuilder({ binaryName: binaryNameOpt }); + this.binaryLabel = binaryLabel; + this.binaryName = binaryNameOpt; + this.binaryVersion = binaryVersion; + this.enableCapture = enableCapture; + this.enableColors = enableColors; + } + /** + * Creates a new Cli and registers all commands passed as parameters. + * + * @param commandClasses The Commands to register + * @returns The created `Cli` instance + */ + static from(commandClasses, options = {}) { + const cli = new Cli(options); + for (const commandClass of commandClasses) + cli.register(commandClass); + return cli; + } + /** + * Registers a command inside the CLI. + */ + register(commandClass) { + var _a; + const specs = new Map(); + const command = new commandClass(); + for (const key in command) { + const value = command[key]; + if (typeof value === `object` && value !== null && value[Command.Command.isOption]) { + specs.set(key, value); + } + } + const builder = this.builder.command(); + const index = builder.cliIndex; + const paths = (_a = commandClass.paths) !== null && _a !== void 0 ? _a : command.paths; + if (typeof paths !== `undefined`) + for (const path of paths) + builder.addPath(path); + this.registrations.set(commandClass, { specs, builder, index }); + for (const [key, { definition }] of specs.entries()) + definition(builder, key); + builder.setContext({ + commandClass, + }); + } + process(input) { + const { contexts, process } = this.builder.compile(); + const state = process(input); + switch (state.selectedIndex) { + case constants.HELP_COMMAND_INDEX: + { + return HelpCommand.HelpCommand.from(state, contexts); + } + default: + { + const { commandClass } = contexts[state.selectedIndex]; + const record = this.registrations.get(commandClass); + if (typeof record === `undefined`) + throw new Error(`Assertion failed: Expected the command class to have been registered.`); + const command = new commandClass(); + command.path = state.path; + try { + for (const [key, { transformer }] of record.specs.entries()) + command[key] = transformer(record.builder, key, state); + return command; + } + catch (error) { + error[errorCommandSymbol] = command; + throw error; + } + } + break; + } + } + async run(input, userContext) { + let command; + const context = { + ...Cli.defaultContext, + ...userContext, + }; + if (!Array.isArray(input)) { + command = input; + } + else { + try { + command = this.process(input); + } + catch (error) { + context.stdout.write(this.error(error)); + return 1; + } + } + if (command.help) { + context.stdout.write(this.usage(command, { detailed: true })); + return 0; + } + command.context = context; + command.cli = { + binaryLabel: this.binaryLabel, + binaryName: this.binaryName, + binaryVersion: this.binaryVersion, + enableCapture: this.enableCapture, + enableColors: this.enableColors, + definitions: () => this.definitions(), + error: (error, opts) => this.error(error, opts), + process: input => this.process(input), + run: (input, subContext) => this.run(input, { ...context, ...subContext }), + usage: (command, opts) => this.usage(command, opts), + }; + const activate = this.enableCapture + ? getCaptureActivator(context) + : noopCaptureActivator; + let exitCode; + try { + exitCode = await activate(() => command.validateAndExecute().catch(error => command.catch(error).then(() => 0))); + } + catch (error) { + context.stdout.write(this.error(error, { command })); + return 1; + } + return exitCode; + } + /** + * Runs a command and exits the current `process` with the exit code returned by the command. + * + * @param input An array containing the name of the command and its arguments. + * + * @example + * cli.runExit(process.argv.slice(2)) + */ + async runExit(input, context) { + process.exitCode = await this.run(input, context); + } + suggest(input, partial) { + const { suggest } = this.builder.compile(); + return suggest(input, partial); + } + definitions({ colored = false } = {}) { + const data = []; + for (const [commandClass, { index }] of this.registrations) { + if (typeof commandClass.usage === `undefined`) + continue; + const { usage: path } = this.getUsageByIndex(index, { detailed: false }); + const { usage, options } = this.getUsageByIndex(index, { detailed: true, inlineOptions: false }); + const category = typeof commandClass.usage.category !== `undefined` + ? format.formatMarkdownish(commandClass.usage.category, { format: this.format(colored), paragraphs: false }) + : undefined; + const description = typeof commandClass.usage.description !== `undefined` + ? format.formatMarkdownish(commandClass.usage.description, { format: this.format(colored), paragraphs: false }) + : undefined; + const details = typeof commandClass.usage.details !== `undefined` + ? format.formatMarkdownish(commandClass.usage.details, { format: this.format(colored), paragraphs: true }) + : undefined; + const examples = typeof commandClass.usage.examples !== `undefined` + ? commandClass.usage.examples.map(([label, cli]) => [format.formatMarkdownish(label, { format: this.format(colored), paragraphs: false }), cli.replace(/\$0/g, this.binaryName)]) + : undefined; + data.push({ path, usage, category, description, details, examples, options }); + } + return data; + } + usage(command = null, { colored, detailed = false, prefix = `$ ` } = {}) { + var _a; + // In case the default command is the only one, we can just show the command help rather than the general one + if (command === null) { + for (const commandClass of this.registrations.keys()) { + const paths = commandClass.paths; + const isDocumented = typeof commandClass.usage !== `undefined`; + const isExclusivelyDefault = !paths || paths.length === 0 || (paths.length === 1 && paths[0].length === 0); + const isDefault = isExclusivelyDefault || ((_a = paths === null || paths === void 0 ? void 0 : paths.some(path => path.length === 0)) !== null && _a !== void 0 ? _a : false); + if (isDefault) { + if (command) { + command = null; + break; + } + else { + command = commandClass; + } + } + else { + if (isDocumented) { + command = null; + continue; + } + } + } + if (command) { + detailed = true; + } + } + // @ts-ignore + const commandClass = command !== null && command instanceof Command.Command + ? command.constructor + : command; + let result = ``; + if (!commandClass) { + const commandsByCategories = new Map(); + for (const [commandClass, { index }] of this.registrations.entries()) { + if (typeof commandClass.usage === `undefined`) + continue; + const category = typeof commandClass.usage.category !== `undefined` + ? format.formatMarkdownish(commandClass.usage.category, { format: this.format(colored), paragraphs: false }) + : null; + let categoryCommands = commandsByCategories.get(category); + if (typeof categoryCommands === `undefined`) + commandsByCategories.set(category, categoryCommands = []); + const { usage } = this.getUsageByIndex(index); + categoryCommands.push({ commandClass, usage }); + } + const categoryNames = Array.from(commandsByCategories.keys()).sort((a, b) => { + if (a === null) + return -1; + if (b === null) + return +1; + return a.localeCompare(b, `en`, { usage: `sort`, caseFirst: `upper` }); + }); + const hasLabel = typeof this.binaryLabel !== `undefined`; + const hasVersion = typeof this.binaryVersion !== `undefined`; + if (hasLabel || hasVersion) { + if (hasLabel && hasVersion) + result += `${this.format(colored).header(`${this.binaryLabel} - ${this.binaryVersion}`)}\n\n`; + else if (hasLabel) + result += `${this.format(colored).header(`${this.binaryLabel}`)}\n`; + else + result += `${this.format(colored).header(`${this.binaryVersion}`)}\n`; + result += ` ${this.format(colored).bold(prefix)}${this.binaryName} \n`; + } + else { + result += `${this.format(colored).bold(prefix)}${this.binaryName} \n`; + } + for (const categoryName of categoryNames) { + const commands = commandsByCategories.get(categoryName).slice().sort((a, b) => { + return a.usage.localeCompare(b.usage, `en`, { usage: `sort`, caseFirst: `upper` }); + }); + const header = categoryName !== null + ? categoryName.trim() + : `General commands`; + result += `\n`; + result += `${this.format(colored).header(`${header}`)}\n`; + for (const { commandClass, usage } of commands) { + const doc = commandClass.usage.description || `undocumented`; + result += `\n`; + result += ` ${this.format(colored).bold(usage)}\n`; + result += ` ${format.formatMarkdownish(doc, { format: this.format(colored), paragraphs: false })}`; + } + } + result += `\n`; + result += format.formatMarkdownish(`You can also print more details about any of these commands by calling them with the \`-h,--help\` flag right after the command name.`, { format: this.format(colored), paragraphs: true }); + } + else { + if (!detailed) { + const { usage } = this.getUsageByRegistration(commandClass); + result += `${this.format(colored).bold(prefix)}${usage}\n`; + } + else { + const { description = ``, details = ``, examples = [], } = commandClass.usage || {}; + if (description !== ``) { + result += format.formatMarkdownish(description, { format: this.format(colored), paragraphs: false }).replace(/^./, $0 => $0.toUpperCase()); + result += `\n`; + } + if (details !== `` || examples.length > 0) { + result += `${this.format(colored).header(`Usage`)}\n`; + result += `\n`; + } + const { usage, options } = this.getUsageByRegistration(commandClass, { inlineOptions: false }); + result += `${this.format(colored).bold(prefix)}${usage}\n`; + if (options.length > 0) { + result += `\n`; + result += `${format.richFormat.header(`Options`)}\n`; + const maxDefinitionLength = options.reduce((length, option) => { + return Math.max(length, option.definition.length); + }, 0); + result += `\n`; + for (const { definition, description } of options) { + result += ` ${this.format(colored).bold(definition.padEnd(maxDefinitionLength))} ${format.formatMarkdownish(description, { format: this.format(colored), paragraphs: false })}`; + } + } + if (details !== ``) { + result += `\n`; + result += `${this.format(colored).header(`Details`)}\n`; + result += `\n`; + result += format.formatMarkdownish(details, { format: this.format(colored), paragraphs: true }); + } + if (examples.length > 0) { + result += `\n`; + result += `${this.format(colored).header(`Examples`)}\n`; + for (const [description, example] of examples) { + result += `\n`; + result += format.formatMarkdownish(description, { format: this.format(colored), paragraphs: false }); + result += `${example + .replace(/^/m, ` ${this.format(colored).bold(prefix)}`) + .replace(/\$0/g, this.binaryName)}\n`; + } + } + } + } + return result; + } + error(error, _a) { + var _b; + var { colored, command = (_b = error[errorCommandSymbol]) !== null && _b !== void 0 ? _b : null } = _a === void 0 ? {} : _a; + if (!(error instanceof Error)) + error = new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(error)})`); + let result = ``; + let name = error.name.replace(/([a-z])([A-Z])/g, `$1 $2`); + if (name === `Error`) + name = `Internal Error`; + result += `${this.format(colored).error(name)}: ${error.message}\n`; + const meta = error.clipanion; + if (typeof meta !== `undefined`) { + if (meta.type === `usage`) { + result += `\n`; + result += this.usage(command); + } + } + else { + if (error.stack) { + result += `${error.stack.replace(/^.*\n/, ``)}\n`; + } + } + return result; } - threw = false - } finally { - if (threw && fd) - try { fs.closeSync(fd) } catch (er) {} - } -} - -const listFile = (opt, cb) => { - const parse = new Parser(opt) - const readSize = opt.maxReadSize || 16*1024*1024 - - const file = opt.file - const p = new Promise((resolve, reject) => { - parse.on('error', reject) - parse.on('end', resolve) - - fs.stat(file, (er, stat) => { - if (er) - reject(er) - else { - const stream = new fsm.ReadStream(file, { - readSize: readSize, - size: stat.size - }) - stream.on('error', reject) - stream.pipe(parse) - } - }) - }) - return cb ? p.then(cb, cb) : p -} - -const list = opt => new Parser(opt) - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/mkdir.js": -/*!*******************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/mkdir.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - -// wrapper around mkdirp for tar's needs. - -// TODO: This should probably be a class, not functionally -// passing around state in a gazillion args. - -const mkdirp = __webpack_require__(/*! mkdirp */ "./.yarn/cache/mkdirp-npm-1.0.3-02fc91ac70-c5c46ae417.zip/node_modules/mkdirp/index.js") -const fs = __webpack_require__(/*! fs */ "fs") -const path = __webpack_require__(/*! path */ "path") -const chownr = __webpack_require__(/*! chownr */ "./.yarn/cache/chownr-npm-1.1.4-5bd400ab08-115648f8eb.zip/node_modules/chownr/chownr.js") - -class SymlinkError extends Error { - constructor (symlink, path) { - super('Cannot extract through symbolic link') - this.path = path - this.symlink = symlink - } - - get name () { - return 'SylinkError' - } -} - -class CwdError extends Error { - constructor (path, code) { - super(code + ': Cannot cd into \'' + path + '\'') - this.path = path - this.code = code - } - - get name () { - return 'CwdError' - } -} - -const mkdir = module.exports = (dir, opt, cb) => { - // if there's any overlap between mask and mode, - // then we'll need an explicit chmod - const umask = opt.umask - const mode = opt.mode | 0o0700 - const needChmod = (mode & umask) !== 0 - - const uid = opt.uid - const gid = opt.gid - const doChown = typeof uid === 'number' && - typeof gid === 'number' && - ( uid !== opt.processUid || gid !== opt.processGid ) - - const preserve = opt.preserve - const unlink = opt.unlink - const cache = opt.cache - const cwd = opt.cwd - - const done = (er, created) => { - if (er) - cb(er) - else { - cache.set(dir, true) - if (created && doChown) - chownr(created, uid, gid, er => done(er)) - else if (needChmod) - fs.chmod(dir, mode, cb) - else - cb() + getUsageByRegistration(klass, opts) { + const record = this.registrations.get(klass); + if (typeof record === `undefined`) + throw new Error(`Assertion failed: Unregistered command`); + return this.getUsageByIndex(record.index, opts); } - } - - if (cache && cache.get(dir) === true) - return done() - - if (dir === cwd) - return fs.stat(dir, (er, st) => { - if (er || !st.isDirectory()) - er = new CwdError(dir, er && er.code || 'ENOTDIR') - done(er) - }) - - if (preserve) - return mkdirp(dir, {mode}).then(made => done(null, made), done) - - const sub = path.relative(cwd, dir) - const parts = sub.split(/\/|\\/) - mkdir_(cwd, parts, mode, cache, unlink, cwd, null, done) -} - -const mkdir_ = (base, parts, mode, cache, unlink, cwd, created, cb) => { - if (!parts.length) - return cb(null, created) - const p = parts.shift() - const part = base + '/' + p - if (cache.get(part)) - return mkdir_(part, parts, mode, cache, unlink, cwd, created, cb) - fs.mkdir(part, mode, onmkdir(part, parts, mode, cache, unlink, cwd, created, cb)) -} - -const onmkdir = (part, parts, mode, cache, unlink, cwd, created, cb) => er => { - if (er) { - if (er.path && path.dirname(er.path) === cwd && - (er.code === 'ENOTDIR' || er.code === 'ENOENT')) - return cb(new CwdError(cwd, er.code)) - - fs.lstat(part, (statEr, st) => { - if (statEr) - cb(statEr) - else if (st.isDirectory()) - mkdir_(part, parts, mode, cache, unlink, cwd, created, cb) - else if (unlink) - fs.unlink(part, er => { - if (er) - return cb(er) - fs.mkdir(part, mode, onmkdir(part, parts, mode, cache, unlink, cwd, created, cb)) - }) - else if (st.isSymbolicLink()) - return cb(new SymlinkError(part, part + '/' + parts.join('/'))) - else - cb(er) - }) - } else { - created = created || part - mkdir_(part, parts, mode, cache, unlink, cwd, created, cb) - } -} - -const mkdirSync = module.exports.sync = (dir, opt) => { - // if there's any overlap between mask and mode, - // then we'll need an explicit chmod - const umask = opt.umask - const mode = opt.mode | 0o0700 - const needChmod = (mode & umask) !== 0 - - const uid = opt.uid - const gid = opt.gid - const doChown = typeof uid === 'number' && - typeof gid === 'number' && - ( uid !== opt.processUid || gid !== opt.processGid ) - - const preserve = opt.preserve - const unlink = opt.unlink - const cache = opt.cache - const cwd = opt.cwd - - const done = (created) => { - cache.set(dir, true) - if (created && doChown) - chownr.sync(created, uid, gid) - if (needChmod) - fs.chmodSync(dir, mode) - } - - if (cache && cache.get(dir) === true) - return done() - - if (dir === cwd) { - let ok = false - let code = 'ENOTDIR' - try { - ok = fs.statSync(dir).isDirectory() - } catch (er) { - code = er.code - } finally { - if (!ok) - throw new CwdError(dir, code) + getUsageByIndex(n, opts) { + return this.builder.getBuilderByIndex(n).usage(opts); } - done() - return - } - - if (preserve) - return done(mkdirp.sync(dir, mode)) - - const sub = path.relative(cwd, dir) - const parts = sub.split(/\/|\\/) - let created = null - for (let p = parts.shift(), part = cwd; - p && (part += '/' + p); - p = parts.shift()) { - - if (cache.get(part)) - continue - - try { - fs.mkdirSync(part, mode) - created = created || part - cache.set(part, true) - } catch (er) { - if (er.path && path.dirname(er.path) === cwd && - (er.code === 'ENOTDIR' || er.code === 'ENOENT')) - return new CwdError(cwd, er.code) - - const st = fs.lstatSync(part) - if (st.isDirectory()) { - cache.set(part, true) - continue - } else if (unlink) { - fs.unlinkSync(part) - fs.mkdirSync(part, mode) - created = created || part - cache.set(part, true) - continue - } else if (st.isSymbolicLink()) - return new SymlinkError(part, part + '/' + parts.join('/')) + format(colored = this.enableColors) { + return colored ? format.richFormat : format.textFormat; } - } - - return done(created) } - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/mode-fix.js": -/*!**********************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/mode-fix.js ***! - \**********************************************************************************************/ -/***/ ((module) => { - -"use strict"; - -module.exports = (mode, isDir, portable) => { - mode &= 0o7777 - - // in portable mode, use the minimum reasonable umask - // if this system creates files with 0o664 by default - // (as some linux distros do), then we'll write the - // archive with 0o644 instead. Also, don't ever create - // a file that is not readable/writable by the owner. - if (portable) { - mode = (mode | 0o600) &~0o22 - } - - // if dirs are readable, then they should be listable - if (isDir) { - if (mode & 0o400) - mode |= 0o100 - if (mode & 0o40) - mode |= 0o10 - if (mode & 0o4) - mode |= 0o1 - } - return mode +/** + * The default context of the CLI. + * + * Contains the stdio of the current `process`. + */ +Cli.defaultContext = { + stdin: process.stdin, + stdout: process.stdout, + stderr: process.stderr, +}; +let gContextStorage; +function getCaptureActivator(context) { + let contextStorage = gContextStorage; + if (typeof contextStorage === `undefined`) { + if (context.stdout === process.stdout && context.stderr === process.stderr) + return noopCaptureActivator; + const { AsyncLocalStorage: LazyAsyncLocalStorage } = __webpack_require__(/*! async_hooks */ "async_hooks"); + contextStorage = gContextStorage = new LazyAsyncLocalStorage(); + const origStdoutWrite = process.stdout._write; + process.stdout._write = function (chunk, encoding, cb) { + const context = contextStorage.getStore(); + if (typeof context === `undefined`) + return origStdoutWrite.call(this, chunk, encoding, cb); + return context.stdout.write(chunk, encoding, cb); + }; + const origStderrWrite = process.stderr._write; + process.stderr._write = function (chunk, encoding, cb) { + const context = contextStorage.getStore(); + if (typeof context === `undefined`) + return origStderrWrite.call(this, chunk, encoding, cb); + return context.stderr.write(chunk, encoding, cb); + }; + } + return (fn) => { + return contextStorage.run(context, fn); + }; } +function noopCaptureActivator(fn) { + return fn(); +} + +exports.Cli = Cli; /***/ }), -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pack.js": -/*!******************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pack.js ***! - \******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Command.js": +/*!****************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Command.js ***! + \****************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -// A readable tar stream creator -// Technically, this is a transform stream that you write paths into, -// and tar format comes out of. -// The `add()` method is like `write()` but returns this, -// and end() return `this` as well, so you can -// do `new Pack(opt).add('files').add('dir').end().pipe(output) -// You could also do something like: -// streamOfPaths().pipe(new Pack()).pipe(new fs.WriteStream('out.tar')) - -class PackJob { - constructor (path, absolute) { - this.path = path || './' - this.absolute = absolute - this.entry = null - this.stat = null - this.readdir = null - this.pending = false - this.ignore = false - this.piped = false - } -} - -const MiniPass = __webpack_require__(/*! minipass */ "./.yarn/cache/minipass-npm-3.1.1-b51d7e264d-cfcfd86adc.zip/node_modules/minipass/index.js") -const zlib = __webpack_require__(/*! minizlib */ "./.yarn/cache/minizlib-npm-2.1.0-9531be52b3-6a811aaa3a.zip/node_modules/minizlib/index.js") -const ReadEntry = __webpack_require__(/*! ./read-entry.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/read-entry.js") -const WriteEntry = __webpack_require__(/*! ./write-entry.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/write-entry.js") -const WriteEntrySync = WriteEntry.Sync -const WriteEntryTar = WriteEntry.Tar -const Yallist = __webpack_require__(/*! yallist */ "./.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip/node_modules/yallist/yallist.js") -const EOF = Buffer.alloc(1024) -const ONSTAT = Symbol('onStat') -const ENDED = Symbol('ended') -const QUEUE = Symbol('queue') -const CURRENT = Symbol('current') -const PROCESS = Symbol('process') -const PROCESSING = Symbol('processing') -const PROCESSJOB = Symbol('processJob') -const JOBS = Symbol('jobs') -const JOBDONE = Symbol('jobDone') -const ADDFSENTRY = Symbol('addFSEntry') -const ADDTARENTRY = Symbol('addTarEntry') -const STAT = Symbol('stat') -const READDIR = Symbol('readdir') -const ONREADDIR = Symbol('onreaddir') -const PIPE = Symbol('pipe') -const ENTRY = Symbol('entry') -const ENTRYOPT = Symbol('entryOpt') -const WRITEENTRYCLASS = Symbol('writeEntryClass') -const WRITE = Symbol('write') -const ONDRAIN = Symbol('ondrain') - -const fs = __webpack_require__(/*! fs */ "fs") -const path = __webpack_require__(/*! path */ "path") -const warner = __webpack_require__(/*! ./warn-mixin.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/warn-mixin.js") - -const Pack = warner(class Pack extends MiniPass { - constructor (opt) { - super(opt) - opt = opt || Object.create(null) - this.opt = opt - this.file = opt.file || '' - this.cwd = opt.cwd || process.cwd() - this.maxReadSize = opt.maxReadSize - this.preservePaths = !!opt.preservePaths - this.strict = !!opt.strict - this.noPax = !!opt.noPax - this.prefix = (opt.prefix || '').replace(/(\\|\/)+$/, '') - this.linkCache = opt.linkCache || new Map() - this.statCache = opt.statCache || new Map() - this.readdirCache = opt.readdirCache || new Map() +Object.defineProperty(exports, "__esModule", ({ value: true })); - this[WRITEENTRYCLASS] = WriteEntry - if (typeof opt.onwarn === 'function') - this.on('warn', opt.onwarn) +var utils = __webpack_require__(/*! ./options/utils.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js"); - this.portable = !!opt.portable - this.zip = null - if (opt.gzip) { - if (typeof opt.gzip !== 'object') - opt.gzip = {} - if (this.portable) - opt.gzip.portable = true - this.zip = new zlib.Gzip(opt.gzip) - this.zip.on('data', chunk => super.write(chunk)) - this.zip.on('end', _ => super.end()) - this.zip.on('drain', _ => this[ONDRAIN]()) - this.on('resume', _ => this.zip.resume()) - } else - this.on('drain', this[ONDRAIN]) +function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { + return e[k]; + } + }); + } + }); + } + n['default'] = e; + return Object.freeze(n); +} - this.noDirRecurse = !!opt.noDirRecurse - this.follow = !!opt.follow - this.noMtime = !!opt.noMtime - this.mtime = opt.mtime || null +class Command { + constructor() { + /** + * Predefined that will be set to true if `-h,--help` has been used, in + * which case `Command#execute` won't be called. + */ + this.help = false; + } + /** + * Defines the usage information for the given command. + */ + static Usage(usage) { + return usage; + } + /** + * Standard error handler which will simply rethrow the error. Can be used + * to add custom logic to handle errors from the command or simply return + * the parent class error handling. + */ + async catch(error) { + throw error; + } + async validateAndExecute() { + const commandClass = this.constructor; + const cascade = commandClass.schema; + if (Array.isArray(cascade)) { + const { isDict, isUnknown, applyCascade } = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(__webpack_require__(/*! typanion */ "../../../.yarn/berry/cache/typanion-npm-3.9.0-ef0bfe7e8b-9.zip/node_modules/typanion/lib/index.js")); }); + const schema = applyCascade(isDict(isUnknown()), cascade); + const errors = []; + const coercions = []; + const check = schema(this, { errors, coercions }); + if (!check) + throw utils.formatError(`Invalid option schema`, errors); + for (const [, op] of coercions) { + op(); + } + } + else if (cascade != null) { + throw new Error(`Invalid command schema`); + } + const exitCode = await this.execute(); + if (typeof exitCode !== `undefined`) { + return exitCode; + } + else { + return 0; + } + } +} +/** + * Used to detect option definitions. + */ +Command.isOption = utils.isOptionSymbol; +/** + * Just an helper to use along with the `paths` fields, to make it + * clearer that a command is the default one. + * + * @example + * class MyCommand extends Command { + * static paths = [Command.Default]; + * } + */ +Command.Default = []; - this.filter = typeof opt.filter === 'function' ? opt.filter : _ => true +exports.Command = Command; - this[QUEUE] = new Yallist - this[JOBS] = 0 - this.jobs = +opt.jobs || 4 - this[PROCESSING] = false - this[ENDED] = false - } - [WRITE] (chunk) { - return super.write(chunk) - } +/***/ }), - add (path) { - this.write(path) - return this - } +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/HelpCommand.js": +/*!********************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/HelpCommand.js ***! + \********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - end (path) { - if (path) - this.write(path) - this[ENDED] = true - this[PROCESS]() - return this - } +"use strict"; - write (path) { - if (this[ENDED]) - throw new Error('write after end') - if (path instanceof ReadEntry) - this[ADDTARENTRY](path) - else - this[ADDFSENTRY](path) - return this.flowing - } +Object.defineProperty(exports, "__esModule", ({ value: true })); - [ADDTARENTRY] (p) { - const absolute = path.resolve(this.cwd, p.path) - if (this.prefix) - p.path = this.prefix + '/' + p.path.replace(/^\.(\/+|$)/, '') +var Command = __webpack_require__(/*! ./Command.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Command.js"); - // in this case, we don't have to wait for the stat - if (!this.filter(p.path, p)) - p.resume() - else { - const job = new PackJob(p.path, absolute, false) - job.entry = new WriteEntryTar(p, this[ENTRYOPT](job)) - job.entry.on('end', _ => this[JOBDONE](job)) - this[JOBS] += 1 - this[QUEUE].push(job) +class HelpCommand extends Command.Command { + constructor(contexts) { + super(); + this.contexts = contexts; + this.commands = []; + } + static from(state, contexts) { + const command = new HelpCommand(contexts); + command.path = state.path; + for (const opt of state.options) { + switch (opt.name) { + case `-c`: + { + command.commands.push(Number(opt.value)); + } + break; + case `-i`: + { + command.index = Number(opt.value); + } + break; + } + } + return command; + } + async execute() { + let commands = this.commands; + if (typeof this.index !== `undefined` && this.index >= 0 && this.index < commands.length) + commands = [commands[this.index]]; + if (commands.length === 0) { + this.context.stdout.write(this.cli.usage()); + } + else if (commands.length === 1) { + this.context.stdout.write(this.cli.usage(this.contexts[commands[0]].commandClass, { detailed: true })); + } + else if (commands.length > 1) { + this.context.stdout.write(`Multiple commands match your selection:\n`); + this.context.stdout.write(`\n`); + let index = 0; + for (const command of this.commands) + this.context.stdout.write(this.cli.usage(this.contexts[command].commandClass, { prefix: `${index++}. `.padStart(5) })); + this.context.stdout.write(`\n`); + this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands.\n`); + } } +} - this[PROCESS]() - } - - [ADDFSENTRY] (p) { - const absolute = path.resolve(this.cwd, p) - if (this.prefix) - p = this.prefix + '/' + p.replace(/^\.(\/+|$)/, '') - - this[QUEUE].push(new PackJob(p, absolute)) - this[PROCESS]() - } +exports.HelpCommand = HelpCommand; - [STAT] (job) { - job.pending = true - this[JOBS] += 1 - const stat = this.follow ? 'stat' : 'lstat' - fs[stat](job.absolute, (er, stat) => { - job.pending = false - this[JOBS] -= 1 - if (er) - this.emit('error', er) - else - this[ONSTAT](job, stat) - }) - } - [ONSTAT] (job, stat) { - this.statCache.set(job.absolute, stat) - job.stat = stat +/***/ }), - // now we have the stat, we can filter it. - if (!this.filter(job.path, stat)) - job.ignore = true +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/definitions.js": +/*!*****************************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/definitions.js ***! + \*****************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - this[PROCESS]() - } +"use strict"; - [READDIR] (job) { - job.pending = true - this[JOBS] += 1 - fs.readdir(job.absolute, (er, entries) => { - job.pending = false - this[JOBS] -= 1 - if (er) - return this.emit('error', er) - this[ONREADDIR](job, entries) - }) - } - [ONREADDIR] (job, entries) { - this.readdirCache.set(job.absolute, entries) - job.readdir = entries - this[PROCESS]() - } +Object.defineProperty(exports, "__esModule", ({ value: true })); - [PROCESS] () { - if (this[PROCESSING]) - return +var Command = __webpack_require__(/*! ../Command.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Command.js"); - this[PROCESSING] = true - for (let w = this[QUEUE].head; - w !== null && this[JOBS] < this.jobs; - w = w.next) { - this[PROCESSJOB](w.value) - if (w.value.ignore) { - const p = w.next - this[QUEUE].removeNode(w) - w.next = p - } +/** + * A command that prints the clipanion definitions. + */ +class DefinitionsCommand extends Command.Command { + async execute() { + this.context.stdout.write(`${JSON.stringify(this.cli.definitions(), null, 2)}\n`); } +} +DefinitionsCommand.paths = [[`--clipanion=definitions`]]; - this[PROCESSING] = false +exports.DefinitionsCommand = DefinitionsCommand; - if (this[ENDED] && !this[QUEUE].length && this[JOBS] === 0) { - if (this.zip) - this.zip.end(EOF) - else { - super.write(EOF) - super.end() - } - } - } - get [CURRENT] () { - return this[QUEUE] && this[QUEUE].head && this[QUEUE].head.value - } +/***/ }), - [JOBDONE] (job) { - this[QUEUE].shift() - this[JOBS] -= 1 - this[PROCESS]() - } +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/help.js": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/help.js ***! + \**********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - [PROCESSJOB] (job) { - if (job.pending) - return +"use strict"; - if (job.entry) { - if (job === this[CURRENT] && !job.piped) - this[PIPE](job) - return - } - if (!job.stat) { - if (this.statCache.has(job.absolute)) - this[ONSTAT](job, this.statCache.get(job.absolute)) - else - this[STAT](job) - } - if (!job.stat) - return +Object.defineProperty(exports, "__esModule", ({ value: true })); - // filtered out! - if (job.ignore) - return +var Command = __webpack_require__(/*! ../Command.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Command.js"); - if (!this.noDirRecurse && job.stat.isDirectory() && !job.readdir) { - if (this.readdirCache.has(job.absolute)) - this[ONREADDIR](job, this.readdirCache.get(job.absolute)) - else - this[READDIR](job) - if (!job.readdir) - return +/** + * A command that prints the usage of all commands. + * + * Paths: `-h`, `--help` + */ +class HelpCommand extends Command.Command { + async execute() { + this.context.stdout.write(this.cli.usage()); } +} +HelpCommand.paths = [[`-h`], [`--help`]]; - // we know it doesn't have an entry, because that got checked above - job.entry = this[ENTRY](job) - if (!job.entry) { - job.ignore = true - return - } +exports.HelpCommand = HelpCommand; - if (job === this[CURRENT] && !job.piped) - this[PIPE](job) - } - [ENTRYOPT] (job) { - return { - onwarn: (code, msg, data) => this.warn(code, msg, data), - noPax: this.noPax, - cwd: this.cwd, - absolute: job.absolute, - preservePaths: this.preservePaths, - maxReadSize: this.maxReadSize, - strict: this.strict, - portable: this.portable, - linkCache: this.linkCache, - statCache: this.statCache, - noMtime: this.noMtime, - mtime: this.mtime - } - } +/***/ }), - [ENTRY] (job) { - this[JOBS] += 1 - try { - return new this[WRITEENTRYCLASS](job.path, this[ENTRYOPT](job)) - .on('end', () => this[JOBDONE](job)) - .on('error', er => this.emit('error', er)) - } catch (er) { - this.emit('error', er) - } - } +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/index.js": +/*!***********************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/index.js ***! + \***********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - [ONDRAIN] () { - if (this[CURRENT] && this[CURRENT].entry) - this[CURRENT].entry.resume() - } +"use strict"; - // like .pipe() but using super, because our write() is special - [PIPE] (job) { - job.piped = true - if (job.readdir) - job.readdir.forEach(entry => { - const p = this.prefix ? - job.path.slice(this.prefix.length + 1) || './' - : job.path +Object.defineProperty(exports, "__esModule", ({ value: true })); - const base = p === './' ? '' : p.replace(/\/*$/, '/') - this[ADDFSENTRY](base + entry) - }) +var definitions = __webpack_require__(/*! ./definitions.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/definitions.js"); +var help = __webpack_require__(/*! ./help.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/help.js"); +var version = __webpack_require__(/*! ./version.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/version.js"); - const source = job.entry - const zip = this.zip - if (zip) - source.on('data', chunk => { - if (!zip.write(chunk)) - source.pause() - }) - else - source.on('data', chunk => { - if (!super.write(chunk)) - source.pause() - }) - } - pause () { - if (this.zip) - this.zip.pause() - return super.pause() - } -}) +exports.DefinitionsCommand = definitions.DefinitionsCommand; +exports.HelpCommand = help.HelpCommand; +exports.VersionCommand = version.VersionCommand; -class PackSync extends Pack { - constructor (opt) { - super(opt) - this[WRITEENTRYCLASS] = WriteEntrySync - } - // pause/resume are no-ops in sync streams. - pause () {} - resume () {} +/***/ }), - [STAT] (job) { - const stat = this.follow ? 'statSync' : 'lstatSync' - this[ONSTAT](job, fs[stat](job.absolute)) - } +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/version.js": +/*!*************************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/version.js ***! + \*************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - [READDIR] (job, stat) { - this[ONREADDIR](job, fs.readdirSync(job.absolute)) - } +"use strict"; - // gotta get it all in this tick - [PIPE] (job) { - const source = job.entry - const zip = this.zip - if (job.readdir) - job.readdir.forEach(entry => { - const p = this.prefix ? - job.path.slice(this.prefix.length + 1) || './' - : job.path +Object.defineProperty(exports, "__esModule", ({ value: true })); - const base = p === './' ? '' : p.replace(/\/*$/, '/') - this[ADDFSENTRY](base + entry) - }) +var Command = __webpack_require__(/*! ../Command.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Command.js"); - if (zip) - source.on('data', chunk => { - zip.write(chunk) - }) - else - source.on('data', chunk => { - super[WRITE](chunk) - }) - } +/** + * A command that prints the version of the binary (`cli.binaryVersion`). + * + * Paths: `-v`, `--version` + */ +class VersionCommand extends Command.Command { + async execute() { + var _a; + this.context.stdout.write(`${(_a = this.cli.binaryVersion) !== null && _a !== void 0 ? _a : ``}\n`); + } } +VersionCommand.paths = [[`-v`], [`--version`]]; -Pack.Sync = PackSync - -module.exports = Pack +exports.VersionCommand = VersionCommand; /***/ }), -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/parse.js": -/*!*******************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/parse.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js": +/*!**************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js ***! + \**************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; -// this[BUFFER] is the remainder of a chunk if we're waiting for -// the full 512 bytes of a header to come in. We will Buffer.concat() -// it to the next write(), which is a mem copy, but a small one. -// -// this[QUEUE] is a Yallist of entries that haven't been emitted -// yet this can only get filled up if the user keeps write()ing after -// a write() returns false, or does a write() with more than one entry -// -// We don't buffer chunks, we always parse them and either create an -// entry, or push it into the active entry. The ReadEntry class knows -// to throw data away if .ignore=true -// -// Shift entry off the buffer when it emits 'end', and emit 'entry' for -// the next one in the list. -// -// At any time, we're pushing body chunks into the entry at WRITEENTRY, -// and waiting for 'end' on the entry at READENTRY -// -// ignored entries get .resume() called on them straight away +Object.defineProperty(exports, "__esModule", ({ value: true })); -const warner = __webpack_require__(/*! ./warn-mixin.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/warn-mixin.js") -const path = __webpack_require__(/*! path */ "path") -const Header = __webpack_require__(/*! ./header.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/header.js") -const EE = __webpack_require__(/*! events */ "events") -const Yallist = __webpack_require__(/*! yallist */ "./.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip/node_modules/yallist/yallist.js") -const maxMetaEntrySize = 1024 * 1024 -const Entry = __webpack_require__(/*! ./read-entry.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/read-entry.js") -const Pax = __webpack_require__(/*! ./pax.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pax.js") -const zlib = __webpack_require__(/*! minizlib */ "./.yarn/cache/minizlib-npm-2.1.0-9531be52b3-6a811aaa3a.zip/node_modules/minizlib/index.js") +var errors = __webpack_require__(/*! ../errors.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/errors.js"); +var Command = __webpack_require__(/*! ./Command.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Command.js"); +var Cli = __webpack_require__(/*! ./Cli.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/Cli.js"); +var index = __webpack_require__(/*! ./builtins/index.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/builtins/index.js"); +var index$1 = __webpack_require__(/*! ./options/index.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/index.js"); -const gzipHeader = Buffer.from([0x1f, 0x8b]) -const STATE = Symbol('state') -const WRITEENTRY = Symbol('writeEntry') -const READENTRY = Symbol('readEntry') -const NEXTENTRY = Symbol('nextEntry') -const PROCESSENTRY = Symbol('processEntry') -const EX = Symbol('extendedHeader') -const GEX = Symbol('globalExtendedHeader') -const META = Symbol('meta') -const EMITMETA = Symbol('emitMeta') -const BUFFER = Symbol('buffer') -const QUEUE = Symbol('queue') -const ENDED = Symbol('ended') -const EMITTEDEND = Symbol('emittedEnd') -const EMIT = Symbol('emit') -const UNZIP = Symbol('unzip') -const CONSUMECHUNK = Symbol('consumeChunk') -const CONSUMECHUNKSUB = Symbol('consumeChunkSub') -const CONSUMEBODY = Symbol('consumeBody') -const CONSUMEMETA = Symbol('consumeMeta') -const CONSUMEHEADER = Symbol('consumeHeader') -const CONSUMING = Symbol('consuming') -const BUFFERCONCAT = Symbol('bufferConcat') -const MAYBEEND = Symbol('maybeEnd') -const WRITING = Symbol('writing') -const ABORTED = Symbol('aborted') -const DONE = Symbol('onDone') -const SAW_VALID_ENTRY = Symbol('sawValidEntry') -const SAW_NULL_BLOCK = Symbol('sawNullBlock') -const SAW_EOF = Symbol('sawEOF') -const noop = _ => true -module.exports = warner(class Parser extends EE { - constructor (opt) { - opt = opt || {} - super(opt) +exports.UsageError = errors.UsageError; +exports.Command = Command.Command; +exports.Cli = Cli.Cli; +exports.Builtins = index; +exports.Option = index$1; - this.file = opt.file || '' - // set to boolean false when an entry starts. 1024 bytes of \0 - // is technically a valid tarball, albeit a boring one. - this[SAW_VALID_ENTRY] = null +/***/ }), - // these BADARCHIVE errors can't be detected early. listen on DONE. - this.on(DONE, _ => { - if (this[STATE] === 'begin' || this[SAW_VALID_ENTRY] === false) { - // either less than 1 block of data, or all entries were invalid. - // Either way, probably not even a tarball. - this.warn('TAR_BAD_ARCHIVE', 'Unrecognized archive format') - } - }) +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Array.js": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Array.js ***! + \**********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - if (opt.ondone) - this.on(DONE, opt.ondone) - else - this.on(DONE, _ => { - this.emit('prefinish') - this.emit('finish') - this.emit('end') - this.emit('close') - }) +"use strict"; - this.strict = !!opt.strict - this.maxMetaEntrySize = opt.maxMetaEntrySize || maxMetaEntrySize - this.filter = typeof opt.filter === 'function' ? opt.filter : noop - // have to set this so that streams are ok piping into it - this.writable = true - this.readable = false +Object.defineProperty(exports, "__esModule", ({ value: true })); - this[QUEUE] = new Yallist() - this[BUFFER] = null - this[READENTRY] = null - this[WRITEENTRY] = null - this[STATE] = 'begin' - this[META] = '' - this[EX] = null - this[GEX] = null - this[ENDED] = false - this[UNZIP] = null - this[ABORTED] = false - this[SAW_NULL_BLOCK] = false - this[SAW_EOF] = false - if (typeof opt.onwarn === 'function') - this.on('warn', opt.onwarn) - if (typeof opt.onentry === 'function') - this.on('entry', opt.onentry) - } +var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js"); - [CONSUMEHEADER] (chunk, position) { - if (this[SAW_VALID_ENTRY] === null) - this[SAW_VALID_ENTRY] = false - let header - try { - header = new Header(chunk, position, this[EX], this[GEX]) - } catch (er) { - return this.warn('TAR_ENTRY_INVALID', er) - } +function Array(descriptor, initialValueBase, optsBase) { + const [initialValue, opts] = utils.rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); + const { arity = 1 } = opts; + const optNames = descriptor.split(`,`); + const nameSet = new Set(optNames); + return utils.makeCommandOption({ + definition(builder) { + builder.addOption({ + names: optNames, + arity, + hidden: opts === null || opts === void 0 ? void 0 : opts.hidden, + description: opts === null || opts === void 0 ? void 0 : opts.description, + required: opts.required, + }); + }, + transformer(builder, key, state) { + let currentValue = typeof initialValue !== `undefined` + ? [...initialValue] + : undefined; + for (const { name, value } of state.options) { + if (!nameSet.has(name)) + continue; + currentValue = currentValue !== null && currentValue !== void 0 ? currentValue : []; + currentValue.push(value); + } + return currentValue; + }, + }); +} - if (header.nullBlock) { - if (this[SAW_NULL_BLOCK]) { - this[SAW_EOF] = true - // ending an archive with no entries. pointless, but legal. - if (this[STATE] === 'begin') - this[STATE] = 'header' - this[EMIT]('eof') - } else { - this[SAW_NULL_BLOCK] = true - this[EMIT]('nullBlock') - } - } else { - this[SAW_NULL_BLOCK] = false - if (!header.cksumValid) - this.warn('TAR_ENTRY_INVALID', 'checksum failure', {header}) - else if (!header.path) - this.warn('TAR_ENTRY_INVALID', 'path is required', {header}) - else { - const type = header.type - if (/^(Symbolic)?Link$/.test(type) && !header.linkpath) - this.warn('TAR_ENTRY_INVALID', 'linkpath required', {header}) - else if (!/^(Symbolic)?Link$/.test(type) && header.linkpath) - this.warn('TAR_ENTRY_INVALID', 'linkpath forbidden', {header}) - else { - const entry = this[WRITEENTRY] = new Entry(header, this[EX], this[GEX]) +exports.Array = Array; - // we do this for meta & ignored entries as well, because they - // are still valid tar, or else we wouldn't know to ignore them - if (!this[SAW_VALID_ENTRY]) { - if (entry.remain) { - // this might be the one! - const onend = () => { - if (!entry.invalid) - this[SAW_VALID_ENTRY] = true - } - entry.on('end', onend) - } else { - this[SAW_VALID_ENTRY] = true - } - } - if (entry.meta) { - if (entry.size > this.maxMetaEntrySize) { - entry.ignore = true - this[EMIT]('ignoredEntry', entry) - this[STATE] = 'ignore' - entry.resume() - } else if (entry.size > 0) { - this[META] = '' - entry.on('data', c => this[META] += c) - this[STATE] = 'meta' - } - } else { - this[EX] = null - entry.ignore = entry.ignore || !this.filter(entry.path, entry) +/***/ }), - if (entry.ignore) { - // probably valid, just not something we care about - this[EMIT]('ignoredEntry', entry) - this[STATE] = entry.remain ? 'ignore' : 'header' - entry.resume() - } else { - if (entry.remain) - this[STATE] = 'body' - else { - this[STATE] = 'header' - entry.end() - } +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Boolean.js": +/*!************************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Boolean.js ***! + \************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - if (!this[READENTRY]) { - this[QUEUE].push(entry) - this[NEXTENTRY]() - } else - this[QUEUE].push(entry) +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js"); + +function Boolean(descriptor, initialValueBase, optsBase) { + const [initialValue, opts] = utils.rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); + const optNames = descriptor.split(`,`); + const nameSet = new Set(optNames); + return utils.makeCommandOption({ + definition(builder) { + builder.addOption({ + names: optNames, + allowBinding: false, + arity: 0, + hidden: opts.hidden, + description: opts.description, + required: opts.required, + }); + }, + transformer(builer, key, state) { + let currentValue = initialValue; + for (const { name, value } of state.options) { + if (!nameSet.has(name)) + continue; + currentValue = value; } - } - } - } - } - } + return currentValue; + }, + }); +} - [PROCESSENTRY] (entry) { - let go = true +exports.Boolean = Boolean; - if (!entry) { - this[READENTRY] = null - go = false - } else if (Array.isArray(entry)) - this.emit.apply(this, entry) - else { - this[READENTRY] = entry - this.emit('entry', entry) - if (!entry.emittedEnd) { - entry.on('end', _ => this[NEXTENTRY]()) - go = false - } - } - return go - } +/***/ }), - [NEXTENTRY] () { - do {} while (this[PROCESSENTRY](this[QUEUE].shift())) +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Counter.js": +/*!************************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Counter.js ***! + \************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - if (!this[QUEUE].length) { - // At this point, there's nothing in the queue, but we may have an - // entry which is being consumed (readEntry). - // If we don't, then we definitely can handle more data. - // If we do, and either it's flowing, or it has never had any data - // written to it, then it needs more. - // The only other possibility is that it has returned false from a - // write() call, so we wait for the next drain to continue. - const re = this[READENTRY] - const drainNow = !re || re.flowing || re.size === re.remain - if (drainNow) { - if (!this[WRITING]) - this.emit('drain') - } else - re.once('drain', _ => this.emit('drain')) - } - } +"use strict"; - [CONSUMEBODY] (chunk, position) { - // write up to but no more than writeEntry.blockRemain - const entry = this[WRITEENTRY] - const br = entry.blockRemain - const c = (br >= chunk.length && position === 0) ? chunk - : chunk.slice(position, position + br) - entry.write(c) +Object.defineProperty(exports, "__esModule", ({ value: true })); - if (!entry.blockRemain) { - this[STATE] = 'header' - this[WRITEENTRY] = null - entry.end() - } +var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js"); - return c.length - } +function Counter(descriptor, initialValueBase, optsBase) { + const [initialValue, opts] = utils.rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); + const optNames = descriptor.split(`,`); + const nameSet = new Set(optNames); + return utils.makeCommandOption({ + definition(builder) { + builder.addOption({ + names: optNames, + allowBinding: false, + arity: 0, + hidden: opts.hidden, + description: opts.description, + required: opts.required, + }); + }, + transformer(builder, key, state) { + let currentValue = initialValue; + for (const { name, value } of state.options) { + if (!nameSet.has(name)) + continue; + currentValue !== null && currentValue !== void 0 ? currentValue : (currentValue = 0); + // Negated options reset the counter + if (!value) { + currentValue = 0; + } + else { + currentValue += 1; + } + } + return currentValue; + }, + }); +} - [CONSUMEMETA] (chunk, position) { - const entry = this[WRITEENTRY] - const ret = this[CONSUMEBODY](chunk, position) +exports.Counter = Counter; - // if we finished, then the entry is reset - if (!this[WRITEENTRY]) - this[EMITMETA](entry) - return ret - } +/***/ }), - [EMIT] (ev, data, extra) { - if (!this[QUEUE].length && !this[READENTRY]) - this.emit(ev, data, extra) - else - this[QUEUE].push([ev, data, extra]) - } +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Proxy.js": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Proxy.js ***! + \**********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - [EMITMETA] (entry) { - this[EMIT]('meta', this[META]) - switch (entry.type) { - case 'ExtendedHeader': - case 'OldExtendedHeader': - this[EX] = Pax.parse(this[META], this[EX], false) - break +"use strict"; - case 'GlobalExtendedHeader': - this[GEX] = Pax.parse(this[META], this[GEX], true) - break - case 'NextFileHasLongPath': - case 'OldGnuLongPath': - this[EX] = this[EX] || Object.create(null) - this[EX].path = this[META].replace(/\0.*/, '') - break +Object.defineProperty(exports, "__esModule", ({ value: true })); - case 'NextFileHasLongLinkpath': - this[EX] = this[EX] || Object.create(null) - this[EX].linkpath = this[META].replace(/\0.*/, '') - break +var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js"); - /* istanbul ignore next */ - default: throw new Error('unknown meta: ' + entry.type) - } - } +/** + * Used to annotate that the command wants to retrieve all trailing + * arguments that cannot be tied to a declared option. + * + * Be careful: this function is order-dependent! Make sure to define it + * after any positional argument you want to declare. + * + * This function is mutually exclusive with Option.Rest. + * + * @example + * yarn run foo hello --foo=bar world + * ► proxy = ["hello", "--foo=bar", "world"] + */ +function Proxy(opts = {}) { + return utils.makeCommandOption({ + definition(builder, key) { + var _a; + builder.addProxy({ + name: (_a = opts.name) !== null && _a !== void 0 ? _a : key, + required: opts.required, + }); + }, + transformer(builder, key, state) { + return state.positionals.map(({ value }) => value); + }, + }); +} - abort (error) { - this[ABORTED] = true - this.emit('abort', error) - // always throws, even in non-strict mode - this.warn('TAR_ABORT', error, { recoverable: false }) - } +exports.Proxy = Proxy; - write (chunk) { - if (this[ABORTED]) - return - // first write, might be gzipped - if (this[UNZIP] === null && chunk) { - if (this[BUFFER]) { - chunk = Buffer.concat([this[BUFFER], chunk]) - this[BUFFER] = null - } - if (chunk.length < gzipHeader.length) { - this[BUFFER] = chunk - return true - } - for (let i = 0; this[UNZIP] === null && i < gzipHeader.length; i++) { - if (chunk[i] !== gzipHeader[i]) - this[UNZIP] = false - } - if (this[UNZIP] === null) { - const ended = this[ENDED] - this[ENDED] = false - this[UNZIP] = new zlib.Unzip() - this[UNZIP].on('data', chunk => this[CONSUMECHUNK](chunk)) - this[UNZIP].on('error', er => this.abort(er)) - this[UNZIP].on('end', _ => { - this[ENDED] = true - this[CONSUMECHUNK]() - }) - this[WRITING] = true - const ret = this[UNZIP][ended ? 'end' : 'write' ](chunk) - this[WRITING] = false - return ret - } - } +/***/ }), - this[WRITING] = true - if (this[UNZIP]) - this[UNZIP].write(chunk) - else - this[CONSUMECHUNK](chunk) - this[WRITING] = false +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Rest.js": +/*!*********************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Rest.js ***! + \*********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - // return false if there's a queue, or if the current entry isn't flowing - const ret = - this[QUEUE].length ? false : - this[READENTRY] ? this[READENTRY].flowing : - true +"use strict"; - // if we have no queue, then that means a clogged READENTRY - if (!ret && !this[QUEUE].length) - this[READENTRY].once('drain', _ => this.emit('drain')) - return ret - } +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js"); +var core = __webpack_require__(/*! ../../core.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/core.js"); + +/** + * Used to annotate that the command supports any number of positional + * arguments. + * + * Be careful: this function is order-dependent! Make sure to define it + * after any positional argument you want to declare. + * + * This function is mutually exclusive with Option.Proxy. + * + * @example + * yarn add hello world + * ► rest = ["hello", "world"] + */ +function Rest(opts = {}) { + return utils.makeCommandOption({ + definition(builder, key) { + var _a; + builder.addRest({ + name: (_a = opts.name) !== null && _a !== void 0 ? _a : key, + required: opts.required, + }); + }, + transformer(builder, key, state) { + // The builder's arity.extra will always be NoLimits, + // because it is set when we call registerDefinition + const isRestPositional = (index) => { + const positional = state.positionals[index]; + // A NoLimits extra (i.e. an optional rest argument) + if (positional.extra === core.NoLimits) + return true; + // A leading positional (i.e. a required rest argument) + if (positional.extra === false && index < builder.arity.leading.length) + return true; + return false; + }; + let count = 0; + while (count < state.positionals.length && isRestPositional(count)) + count += 1; + return state.positionals.splice(0, count).map(({ value }) => value); + }, + }); +} - [BUFFERCONCAT] (c) { - if (c && !this[ABORTED]) - this[BUFFER] = this[BUFFER] ? Buffer.concat([this[BUFFER], c]) : c - } +exports.Rest = Rest; - [MAYBEEND] () { - if (this[ENDED] && - !this[EMITTEDEND] && - !this[ABORTED] && - !this[CONSUMING]) { - this[EMITTEDEND] = true - const entry = this[WRITEENTRY] - if (entry && entry.blockRemain) { - // truncated, likely a damaged file - const have = this[BUFFER] ? this[BUFFER].length : 0 - this.warn('TAR_BAD_ARCHIVE', `Truncated input (needed ${ - entry.blockRemain} more bytes, only ${have} available)`, {entry}) - if (this[BUFFER]) - entry.write(this[BUFFER]) - entry.end() - } - this[EMIT](DONE) - } - } - [CONSUMECHUNK] (chunk) { - if (this[CONSUMING]) - this[BUFFERCONCAT](chunk) - else if (!chunk && !this[BUFFER]) - this[MAYBEEND]() - else { - this[CONSUMING] = true - if (this[BUFFER]) { - this[BUFFERCONCAT](chunk) - const c = this[BUFFER] - this[BUFFER] = null - this[CONSUMECHUNKSUB](c) - } else { - this[CONSUMECHUNKSUB](chunk) - } +/***/ }), - while (this[BUFFER] && - this[BUFFER].length >= 512 && - !this[ABORTED] && - !this[SAW_EOF]) { - const c = this[BUFFER] - this[BUFFER] = null - this[CONSUMECHUNKSUB](c) - } - this[CONSUMING] = false - } +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/String.js": +/*!***********************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/String.js ***! + \***********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - if (!this[BUFFER] || this[ENDED]) - this[MAYBEEND]() - } +"use strict"; - [CONSUMECHUNKSUB] (chunk) { - // we know that we are in CONSUMING mode, so anything written goes into - // the buffer. Advance the position and put any remainder in the buffer. - let position = 0 - let length = chunk.length - while (position + 512 <= length && !this[ABORTED] && !this[SAW_EOF]) { - switch (this[STATE]) { - case 'begin': - case 'header': - this[CONSUMEHEADER](chunk, position) - position += 512 - break - case 'ignore': - case 'body': - position += this[CONSUMEBODY](chunk, position) - break +Object.defineProperty(exports, "__esModule", ({ value: true })); - case 'meta': - position += this[CONSUMEMETA](chunk, position) - break +var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js"); +var core = __webpack_require__(/*! ../../core.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/core.js"); - /* istanbul ignore next */ - default: - throw new Error('invalid state: ' + this[STATE]) - } +function StringOption(descriptor, initialValueBase, optsBase) { + const [initialValue, opts] = utils.rerouteArguments(initialValueBase, optsBase !== null && optsBase !== void 0 ? optsBase : {}); + const { arity = 1 } = opts; + const optNames = descriptor.split(`,`); + const nameSet = new Set(optNames); + return utils.makeCommandOption({ + definition(builder) { + builder.addOption({ + names: optNames, + arity: opts.tolerateBoolean ? 0 : arity, + hidden: opts.hidden, + description: opts.description, + required: opts.required, + }); + }, + transformer(builder, key, state) { + let usedName; + let currentValue = initialValue; + for (const { name, value } of state.options) { + if (!nameSet.has(name)) + continue; + usedName = name; + currentValue = value; + } + if (typeof currentValue === `string`) { + return utils.applyValidator(usedName !== null && usedName !== void 0 ? usedName : key, currentValue, opts.validator); + } + else { + return currentValue; + } + }, + }); +} +function StringPositional(opts = {}) { + const { required = true } = opts; + return utils.makeCommandOption({ + definition(builder, key) { + var _a; + builder.addPositional({ + name: (_a = opts.name) !== null && _a !== void 0 ? _a : key, + required: opts.required, + }); + }, + transformer(builder, key, state) { + var _a; + for (let i = 0; i < state.positionals.length; ++i) { + // We skip NoLimits extras. We only care about + // required and optional finite positionals. + if (state.positionals[i].extra === core.NoLimits) + continue; + // We skip optional positionals when we only + // care about required positionals. + if (required && state.positionals[i].extra === true) + continue; + // We skip required positionals when we only + // care about optional positionals. + if (!required && state.positionals[i].extra === false) + continue; + // We remove the positional from the list + const [positional] = state.positionals.splice(i, 1); + return utils.applyValidator((_a = opts.name) !== null && _a !== void 0 ? _a : key, positional.value, opts.validator); + } + return undefined; + }, + }); +} +// This function is badly typed, but it doesn't matter because the overloads provide the true public typings +function String(descriptor, ...args) { + if (typeof descriptor === `string`) { + return StringOption(descriptor, ...args); } - - if (position < length) { - if (this[BUFFER]) - this[BUFFER] = Buffer.concat([chunk.slice(position), this[BUFFER]]) - else - this[BUFFER] = chunk.slice(position) + else { + return StringPositional(descriptor); } - } +} - end (chunk) { - if (!this[ABORTED]) { - if (this[UNZIP]) - this[UNZIP].end(chunk) - else { - this[ENDED] = true - this.write(chunk) - } - } - } -}) +exports.String = String; /***/ }), -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/path-reservations.js": -/*!*******************************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/path-reservations.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -// A path exclusive reservation system -// reserve([list, of, paths], fn) -// When the fn is first in line for all its paths, it -// is called with a cb that clears the reservation. -// -// Used by async unpack to avoid clobbering paths in use, -// while still allowing maximal safe parallelization. - -const assert = __webpack_require__(/*! assert */ "assert") - -module.exports = () => { - // path => [function or Set] - // A Set object means a directory reservation - // A fn is a direct reservation on that path - const queues = new Map() +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/index.js": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/index.js ***! + \**********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - // fn => {paths:[path,...], dirs:[path, ...]} - const reservations = new Map() +"use strict"; - // return a set of parent dirs for a given path - const { join } = __webpack_require__(/*! path */ "path") - const getDirs = path => - join(path).split(/[\\\/]/).slice(0, -1).reduce((set, path) => - set.length ? set.concat(join(set[set.length-1], path)) : [path], []) - // functions currently running - const running = new Set() +Object.defineProperty(exports, "__esModule", ({ value: true })); - // return the queues for each path the function cares about - // fn => {paths, dirs} - const getQueues = fn => { - const res = reservations.get(fn) - /* istanbul ignore if - unpossible */ - if (!res) - throw new Error('function does not have any path reservations') - return { - paths: res.paths.map(path => queues.get(path)), - dirs: [...res.dirs].map(path => queues.get(path)), - } - } +var utils = __webpack_require__(/*! ./utils.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js"); +var _Array = __webpack_require__(/*! ./Array.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Array.js"); +var _Boolean = __webpack_require__(/*! ./Boolean.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Boolean.js"); +var Counter = __webpack_require__(/*! ./Counter.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Counter.js"); +var _Proxy = __webpack_require__(/*! ./Proxy.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Proxy.js"); +var Rest = __webpack_require__(/*! ./Rest.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/Rest.js"); +var _String = __webpack_require__(/*! ./String.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/String.js"); - // check if fn is first in line for all its paths, and is - // included in the first set for all its dir queues - const check = fn => { - const {paths, dirs} = getQueues(fn) - return paths.every(q => q[0] === fn) && - dirs.every(q => q[0] instanceof Set && q[0].has(fn)) - } - // run the function if it's first in line and not already running - const run = fn => { - if (running.has(fn) || !check(fn)) - return false - running.add(fn) - fn(() => clear(fn)) - return true - } - const clear = fn => { - if (!running.has(fn)) - return false +exports.applyValidator = utils.applyValidator; +exports.cleanValidationError = utils.cleanValidationError; +exports.formatError = utils.formatError; +exports.isOptionSymbol = utils.isOptionSymbol; +exports.makeCommandOption = utils.makeCommandOption; +exports.rerouteArguments = utils.rerouteArguments; +exports.Array = _Array.Array; +exports.Boolean = _Boolean.Boolean; +exports.Counter = Counter.Counter; +exports.Proxy = _Proxy.Proxy; +exports.Rest = Rest.Rest; +exports.String = _String.String; - const { paths, dirs } = reservations.get(fn) - const next = new Set() - paths.forEach(path => { - const q = queues.get(path) - assert.equal(q[0], fn) - if (q.length === 1) - queues.delete(path) - else { - q.shift() - if (typeof q[0] === 'function') - next.add(q[0]) - else - q[0].forEach(fn => next.add(fn)) - } - }) +/***/ }), - dirs.forEach(dir => { - const q = queues.get(dir) - assert(q[0] instanceof Set) - if (q[0].size === 1 && q.length === 1) { - queues.delete(dir) - } else if (q[0].size === 1) { - q.shift() +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/options/utils.js ***! + \**********************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - // must be a function or else the Set would've been reused - next.add(q[0]) - } else - q[0].delete(fn) - }) - running.delete(fn) +"use strict"; - next.forEach(fn => run(fn)) - return true - } - const reserve = (paths, fn) => { - const dirs = new Set( - paths.map(path => getDirs(path)).reduce((a, b) => a.concat(b)) - ) - reservations.set(fn, {dirs, paths}) - paths.forEach(path => { - const q = queues.get(path) - if (!q) - queues.set(path, [fn]) - else - q.push(fn) - }) - dirs.forEach(dir => { - const q = queues.get(dir) - if (!q) - queues.set(dir, [new Set([fn])]) - else if (q[q.length-1] instanceof Set) - q[q.length-1].add(fn) - else - q.push(new Set([fn])) - }) +Object.defineProperty(exports, "__esModule", ({ value: true })); - return run(fn) - } +var errors = __webpack_require__(/*! ../../errors.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/errors.js"); - return { check, reserve } +const isOptionSymbol = Symbol(`clipanion/isOption`); +function makeCommandOption(spec) { + // We lie! But it's for the good cause: the cli engine will turn the specs into proper values after instantiation. + return { ...spec, [isOptionSymbol]: true }; +} +function rerouteArguments(a, b) { + if (typeof a === `undefined`) + return [a, b]; + if (typeof a === `object` && a !== null && !Array.isArray(a)) { + return [undefined, a]; + } + else { + return [a, b]; + } +} +function cleanValidationError(message, lowerCase = false) { + let cleaned = message.replace(/^\.: /, ``); + if (lowerCase) + cleaned = cleaned[0].toLowerCase() + cleaned.slice(1); + return cleaned; +} +function formatError(message, errors$1) { + if (errors$1.length === 1) { + return new errors.UsageError(`${message}: ${cleanValidationError(errors$1[0], true)}`); + } + else { + return new errors.UsageError(`${message}:\n${errors$1.map(error => `\n- ${cleanValidationError(error)}`).join(``)}`); + } +} +function applyValidator(name, value, validator) { + if (typeof validator === `undefined`) + return value; + const errors = []; + const coercions = []; + const coercion = (v) => { + const orig = value; + value = v; + return coercion.bind(null, orig); + }; + const check = validator(value, { errors, coercions, coercion }); + if (!check) + throw formatError(`Invalid value for ${name}`, errors); + for (const [, op] of coercions) + op(); + return value; } +exports.applyValidator = applyValidator; +exports.cleanValidationError = cleanValidationError; +exports.formatError = formatError; +exports.isOptionSymbol = isOptionSymbol; +exports.makeCommandOption = makeCommandOption; +exports.rerouteArguments = rerouteArguments; + /***/ }), -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pax.js": -/*!*****************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pax.js ***! - \*****************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/constants.js": +/*!*********************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/constants.js ***! + \*********************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { "use strict"; -const Header = __webpack_require__(/*! ./header.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/header.js") -const path = __webpack_require__(/*! path */ "path") -class Pax { - constructor (obj, global) { - this.atime = obj.atime || null - this.charset = obj.charset || null - this.comment = obj.comment || null - this.ctime = obj.ctime || null - this.gid = obj.gid || null - this.gname = obj.gname || null - this.linkpath = obj.linkpath || null - this.mtime = obj.mtime || null - this.path = obj.path || null - this.size = obj.size || null - this.uid = obj.uid || null - this.uname = obj.uname || null - this.dev = obj.dev || null - this.ino = obj.ino || null - this.nlink = obj.nlink || null - this.global = global || false - } +Object.defineProperty(exports, "__esModule", ({ value: true })); - encode () { - const body = this.encodeBody() - if (body === '') - return null +const NODE_INITIAL = 0; +const NODE_SUCCESS = 1; +const NODE_ERRORED = 2; +const START_OF_INPUT = `\u0001`; +const END_OF_INPUT = `\u0000`; +const HELP_COMMAND_INDEX = -1; +const HELP_REGEX = /^(-h|--help)(?:=([0-9]+))?$/; +const OPTION_REGEX = /^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/; +const BATCH_REGEX = /^-[a-zA-Z]{2,}$/; +const BINDING_REGEX = /^([^=]+)=([\s\S]*)$/; +const DEBUG = process.env.DEBUG_CLI === `1`; - const bodyLen = Buffer.byteLength(body) - // round up to 512 bytes - // add 512 for header - const bufLen = 512 * Math.ceil(1 + bodyLen / 512) - const buf = Buffer.allocUnsafe(bufLen) +exports.BATCH_REGEX = BATCH_REGEX; +exports.BINDING_REGEX = BINDING_REGEX; +exports.DEBUG = DEBUG; +exports.END_OF_INPUT = END_OF_INPUT; +exports.HELP_COMMAND_INDEX = HELP_COMMAND_INDEX; +exports.HELP_REGEX = HELP_REGEX; +exports.NODE_ERRORED = NODE_ERRORED; +exports.NODE_INITIAL = NODE_INITIAL; +exports.NODE_SUCCESS = NODE_SUCCESS; +exports.OPTION_REGEX = OPTION_REGEX; +exports.START_OF_INPUT = START_OF_INPUT; - // 0-fill the header section, it might not hit every field - for (let i = 0; i < 512; i++) { - buf[i] = 0 + +/***/ }), + +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/core.js": +/*!****************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/core.js ***! + \****************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var constants = __webpack_require__(/*! ./constants.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/constants.js"); +var errors = __webpack_require__(/*! ./errors.js */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/errors.js"); + +// ------------------------------------------------------------------------ +function debug(str) { + if (constants.DEBUG) { + console.log(str); + } +} +const basicHelpState = { + candidateUsage: null, + requiredOptions: [], + errorMessage: null, + ignoreOptions: false, + path: [], + positionals: [], + options: [], + remainder: null, + selectedIndex: constants.HELP_COMMAND_INDEX, +}; +function makeStateMachine() { + return { + nodes: [makeNode(), makeNode(), makeNode()], + }; +} +function makeAnyOfMachine(inputs) { + const output = makeStateMachine(); + const heads = []; + let offset = output.nodes.length; + for (const input of inputs) { + heads.push(offset); + for (let t = 0; t < input.nodes.length; ++t) + if (!isTerminalNode(t)) + output.nodes.push(cloneNode(input.nodes[t], offset)); + offset += input.nodes.length - 2; + } + for (const head of heads) + registerShortcut(output, constants.NODE_INITIAL, head); + return output; +} +function injectNode(machine, node) { + machine.nodes.push(node); + return machine.nodes.length - 1; +} +function simplifyMachine(input) { + const visited = new Set(); + const process = (node) => { + if (visited.has(node)) + return; + visited.add(node); + const nodeDef = input.nodes[node]; + for (const transitions of Object.values(nodeDef.statics)) + for (const { to } of transitions) + process(to); + for (const [, { to }] of nodeDef.dynamics) + process(to); + for (const { to } of nodeDef.shortcuts) + process(to); + const shortcuts = new Set(nodeDef.shortcuts.map(({ to }) => to)); + while (nodeDef.shortcuts.length > 0) { + const { to } = nodeDef.shortcuts.shift(); + const toDef = input.nodes[to]; + for (const [segment, transitions] of Object.entries(toDef.statics)) { + const store = !Object.prototype.hasOwnProperty.call(nodeDef.statics, segment) + ? nodeDef.statics[segment] = [] + : nodeDef.statics[segment]; + for (const transition of transitions) { + if (!store.some(({ to }) => transition.to === to)) { + store.push(transition); + } + } + } + for (const [test, transition] of toDef.dynamics) + if (!nodeDef.dynamics.some(([otherTest, { to }]) => test === otherTest && transition.to === to)) + nodeDef.dynamics.push([test, transition]); + for (const transition of toDef.shortcuts) { + if (!shortcuts.has(transition.to)) { + nodeDef.shortcuts.push(transition); + shortcuts.add(transition.to); + } + } + } + }; + process(constants.NODE_INITIAL); +} +function debugMachine(machine, { prefix = `` } = {}) { + // Don't iterate unless it's needed + if (constants.DEBUG) { + debug(`${prefix}Nodes are:`); + for (let t = 0; t < machine.nodes.length; ++t) { + debug(`${prefix} ${t}: ${JSON.stringify(machine.nodes[t])}`); + } } - - new Header({ - // XXX split the path - // then the path should be PaxHeader + basename, but less than 99, - // prepend with the dirname - path: ('PaxHeader/' + path.basename(this.path)).slice(0, 99), - mode: this.mode || 0o644, - uid: this.uid || null, - gid: this.gid || null, - size: bodyLen, - mtime: this.mtime || null, - type: this.global ? 'GlobalExtendedHeader' : 'ExtendedHeader', - linkpath: '', - uname: this.uname || '', - gname: this.gname || '', - devmaj: 0, - devmin: 0, - atime: this.atime || null, - ctime: this.ctime || null - }).encode(buf) - - buf.write(body, 512, bodyLen, 'utf8') - - // null pad after the body - for (let i = bodyLen + 512; i < buf.length; i++) { - buf[i] = 0 +} +function runMachineInternal(machine, input, partial = false) { + debug(`Running a vm on ${JSON.stringify(input)}`); + let branches = [{ node: constants.NODE_INITIAL, state: { + candidateUsage: null, + requiredOptions: [], + errorMessage: null, + ignoreOptions: false, + options: [], + path: [], + positionals: [], + remainder: null, + selectedIndex: null, + } }]; + debugMachine(machine, { prefix: ` ` }); + const tokens = [constants.START_OF_INPUT, ...input]; + for (let t = 0; t < tokens.length; ++t) { + const segment = tokens[t]; + debug(` Processing ${JSON.stringify(segment)}`); + const nextBranches = []; + for (const { node, state } of branches) { + debug(` Current node is ${node}`); + const nodeDef = machine.nodes[node]; + if (node === constants.NODE_ERRORED) { + nextBranches.push({ node, state }); + continue; + } + console.assert(nodeDef.shortcuts.length === 0, `Shortcuts should have been eliminated by now`); + const hasExactMatch = Object.prototype.hasOwnProperty.call(nodeDef.statics, segment); + if (!partial || t < tokens.length - 1 || hasExactMatch) { + if (hasExactMatch) { + const transitions = nodeDef.statics[segment]; + for (const { to, reducer } of transitions) { + nextBranches.push({ node: to, state: typeof reducer !== `undefined` ? execute(reducers, reducer, state, segment) : state }); + debug(` Static transition to ${to} found`); + } + } + else { + debug(` No static transition found`); + } + } + else { + let hasMatches = false; + for (const candidate of Object.keys(nodeDef.statics)) { + if (!candidate.startsWith(segment)) + continue; + if (segment === candidate) { + for (const { to, reducer } of nodeDef.statics[candidate]) { + nextBranches.push({ node: to, state: typeof reducer !== `undefined` ? execute(reducers, reducer, state, segment) : state }); + debug(` Static transition to ${to} found`); + } + } + else { + for (const { to } of nodeDef.statics[candidate]) { + nextBranches.push({ node: to, state: { ...state, remainder: candidate.slice(segment.length) } }); + debug(` Static transition to ${to} found (partial match)`); + } + } + hasMatches = true; + } + if (!hasMatches) { + debug(` No partial static transition found`); + } + } + if (segment !== constants.END_OF_INPUT) { + for (const [test, { to, reducer }] of nodeDef.dynamics) { + if (execute(tests, test, state, segment)) { + nextBranches.push({ node: to, state: typeof reducer !== `undefined` ? execute(reducers, reducer, state, segment) : state }); + debug(` Dynamic transition to ${to} found (via ${test})`); + } + } + } + } + if (nextBranches.length === 0 && segment === constants.END_OF_INPUT && input.length === 1) { + return [{ + node: constants.NODE_INITIAL, + state: basicHelpState, + }]; + } + if (nextBranches.length === 0) { + throw new errors.UnknownSyntaxError(input, branches.filter(({ node }) => { + return node !== constants.NODE_ERRORED; + }).map(({ state }) => { + return { usage: state.candidateUsage, reason: null }; + })); + } + if (nextBranches.every(({ node }) => node === constants.NODE_ERRORED)) { + throw new errors.UnknownSyntaxError(input, nextBranches.map(({ state }) => { + return { usage: state.candidateUsage, reason: state.errorMessage }; + })); + } + branches = trimSmallerBranches(nextBranches); } - - return buf - } - - encodeBody () { - return ( - this.encodeField('path') + - this.encodeField('ctime') + - this.encodeField('atime') + - this.encodeField('dev') + - this.encodeField('ino') + - this.encodeField('nlink') + - this.encodeField('charset') + - this.encodeField('comment') + - this.encodeField('gid') + - this.encodeField('gname') + - this.encodeField('linkpath') + - this.encodeField('mtime') + - this.encodeField('size') + - this.encodeField('uid') + - this.encodeField('uname') - ) - } - - encodeField (field) { - if (this[field] === null || this[field] === undefined) - return '' - const v = this[field] instanceof Date ? this[field].getTime() / 1000 - : this[field] - const s = ' ' + - (field === 'dev' || field === 'ino' || field === 'nlink' - ? 'SCHILY.' : '') + - field + '=' + v + '\n' - const byteLen = Buffer.byteLength(s) - // the digits includes the length of the digits in ascii base-10 - // so if it's 9 characters, then adding 1 for the 9 makes it 10 - // which makes it 11 chars. - let digits = Math.floor(Math.log(byteLen) / Math.log(10)) + 1 - if (byteLen + digits >= Math.pow(10, digits)) - digits += 1 - const len = digits + byteLen - return len + s - } + if (branches.length > 0) { + debug(` Results:`); + for (const branch of branches) { + debug(` - ${branch.node} -> ${JSON.stringify(branch.state)}`); + } + } + else { + debug(` No results`); + } + return branches; +} +function checkIfNodeIsFinished(node, state) { + if (state.selectedIndex !== null) + return true; + if (Object.prototype.hasOwnProperty.call(node.statics, constants.END_OF_INPUT)) + for (const { to } of node.statics[constants.END_OF_INPUT]) + if (to === constants.NODE_SUCCESS) + return true; + return false; +} +function suggestMachine(machine, input, partial) { + // If we're accepting partial matches, then exact matches need to be + // prefixed with an extra space. + const prefix = partial && input.length > 0 ? [``] : []; + const branches = runMachineInternal(machine, input, partial); + const suggestions = []; + const suggestionsJson = new Set(); + const traverseSuggestion = (suggestion, node, skipFirst = true) => { + let nextNodes = [node]; + while (nextNodes.length > 0) { + const currentNodes = nextNodes; + nextNodes = []; + for (const node of currentNodes) { + const nodeDef = machine.nodes[node]; + const keys = Object.keys(nodeDef.statics); + // The fact that `key` is unused is likely a bug, but no one has investigated it yet. + // TODO: Investigate it. + // eslint-disable-next-line @typescript-eslint/no-unused-vars + for (const key of Object.keys(nodeDef.statics)) { + const segment = keys[0]; + for (const { to, reducer } of nodeDef.statics[segment]) { + if (reducer !== `pushPath`) + continue; + if (!skipFirst) + suggestion.push(segment); + nextNodes.push(to); + } + } + } + skipFirst = false; + } + const json = JSON.stringify(suggestion); + if (suggestionsJson.has(json)) + return; + suggestions.push(suggestion); + suggestionsJson.add(json); + }; + for (const { node, state } of branches) { + if (state.remainder !== null) { + traverseSuggestion([state.remainder], node); + continue; + } + const nodeDef = machine.nodes[node]; + const isFinished = checkIfNodeIsFinished(nodeDef, state); + for (const [candidate, transitions] of Object.entries(nodeDef.statics)) + if ((isFinished && candidate !== constants.END_OF_INPUT) || (!candidate.startsWith(`-`) && transitions.some(({ reducer }) => reducer === `pushPath`))) + traverseSuggestion([...prefix, candidate], node); + if (!isFinished) + continue; + for (const [test, { to }] of nodeDef.dynamics) { + if (to === constants.NODE_ERRORED) + continue; + const tokens = suggest(test, state); + if (tokens === null) + continue; + for (const token of tokens) { + traverseSuggestion([...prefix, token], node); + } + } + } + return [...suggestions].sort(); +} +function runMachine(machine, input) { + const branches = runMachineInternal(machine, [...input, constants.END_OF_INPUT]); + return selectBestState(input, branches.map(({ state }) => { + return state; + })); } - -Pax.parse = (string, ex, g) => new Pax(merge(parseKV(string), ex), g) - -const merge = (a, b) => - b ? Object.keys(a).reduce((s, k) => (s[k] = a[k], s), b) : a - -const parseKV = string => - string - .replace(/\n$/, '') - .split('\n') - .reduce(parseKVLine, Object.create(null)) - -const parseKVLine = (set, line) => { - const n = parseInt(line, 10) - - // XXX Values with \n in them will fail this. - // Refactor to not be a naive line-by-line parse. - if (n !== Buffer.byteLength(line) + 1) - return set - - line = line.substr((n + ' ').length) - const kv = line.split('=') - const k = kv.shift().replace(/^SCHILY\.(dev|ino|nlink)/, '$1') - if (!k) - return set - - const v = kv.join('=') - set[k] = /^([A-Z]+\.)?([mac]|birth|creation)time$/.test(k) - ? new Date(v * 1000) - : /^[0-9]+$/.test(v) ? +v - : v - return set +function trimSmallerBranches(branches) { + let maxPathSize = 0; + for (const { state } of branches) + if (state.path.length > maxPathSize) + maxPathSize = state.path.length; + return branches.filter(({ state }) => { + return state.path.length === maxPathSize; + }); } - -module.exports = Pax - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/read-entry.js": -/*!************************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/read-entry.js ***! - \************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - -const types = __webpack_require__(/*! ./types.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/types.js") -const MiniPass = __webpack_require__(/*! minipass */ "./.yarn/cache/minipass-npm-3.1.1-b51d7e264d-cfcfd86adc.zip/node_modules/minipass/index.js") - -const SLURP = Symbol('slurp') -module.exports = class ReadEntry extends MiniPass { - constructor (header, ex, gex) { - super() - // read entries always start life paused. this is to avoid the - // situation where Minipass's auto-ending empty streams results - // in an entry ending before we're ready for it. - this.pause() - this.extended = ex - this.globalExtended = gex - this.header = header - this.startBlockSize = 512 * Math.ceil(header.size / 512) - this.blockRemain = this.startBlockSize - this.remain = header.size - this.type = header.type - this.meta = false - this.ignore = false - switch (this.type) { - case 'File': - case 'OldFile': - case 'Link': - case 'SymbolicLink': - case 'CharacterDevice': - case 'BlockDevice': - case 'Directory': - case 'FIFO': - case 'ContiguousFile': - case 'GNUDumpDir': - break - - case 'NextFileHasLongLinkpath': - case 'NextFileHasLongPath': - case 'OldGnuLongPath': - case 'GlobalExtendedHeader': - case 'ExtendedHeader': - case 'OldExtendedHeader': - this.meta = true - break - - // NOTE: gnutar and bsdtar treat unrecognized types as 'File' - // it may be worth doing the same, but with a warning. - default: - this.ignore = true +function selectBestState(input, states) { + const terminalStates = states.filter(state => { + return state.selectedIndex !== null; + }); + if (terminalStates.length === 0) + throw new Error(); + const requiredOptionsSetStates = terminalStates.filter(state => state.requiredOptions.every(names => names.some(name => state.options.find(opt => opt.name === name)))); + if (requiredOptionsSetStates.length === 0) { + throw new errors.UnknownSyntaxError(input, terminalStates.map(state => ({ + usage: state.candidateUsage, + reason: null, + }))); } - - this.path = header.path - this.mode = header.mode - if (this.mode) - this.mode = this.mode & 0o7777 - this.uid = header.uid - this.gid = header.gid - this.uname = header.uname - this.gname = header.gname - this.size = header.size - this.mtime = header.mtime - this.atime = header.atime - this.ctime = header.ctime - this.linkpath = header.linkpath - this.uname = header.uname - this.gname = header.gname - - if (ex) this[SLURP](ex) - if (gex) this[SLURP](gex, true) - } - - write (data) { - const writeLen = data.length - if (writeLen > this.blockRemain) - throw new Error('writing more to entry than is appropriate') - - const r = this.remain - const br = this.blockRemain - this.remain = Math.max(0, r - writeLen) - this.blockRemain = Math.max(0, br - writeLen) - if (this.ignore) - return true - - if (r >= writeLen) - return super.write(data) - - // r < writeLen - return super.write(data.slice(0, r)) - } - - [SLURP] (ex, global) { - for (let k in ex) { - // we slurp in everything except for the path attribute in - // a global extended header, because that's weird. - if (ex[k] !== null && ex[k] !== undefined && - !(global && k === 'path')) - this[k] = ex[k] + let maxPathSize = 0; + for (const state of requiredOptionsSetStates) + if (state.path.length > maxPathSize) + maxPathSize = state.path.length; + const bestPathBranches = requiredOptionsSetStates.filter(state => { + return state.path.length === maxPathSize; + }); + const getPositionalCount = (state) => state.positionals.filter(({ extra }) => { + return !extra; + }).length + state.options.length; + const statesWithPositionalCount = bestPathBranches.map(state => { + return { state, positionalCount: getPositionalCount(state) }; + }); + let maxPositionalCount = 0; + for (const { positionalCount } of statesWithPositionalCount) + if (positionalCount > maxPositionalCount) + maxPositionalCount = positionalCount; + const bestPositionalStates = statesWithPositionalCount.filter(({ positionalCount }) => { + return positionalCount === maxPositionalCount; + }).map(({ state }) => { + return state; + }); + const fixedStates = aggregateHelpStates(bestPositionalStates); + if (fixedStates.length > 1) + throw new errors.AmbiguousSyntaxError(input, fixedStates.map(state => state.candidateUsage)); + return fixedStates[0]; +} +function aggregateHelpStates(states) { + const notHelps = []; + const helps = []; + for (const state of states) { + if (state.selectedIndex === constants.HELP_COMMAND_INDEX) { + helps.push(state); + } + else { + notHelps.push(state); + } } - } + if (helps.length > 0) { + notHelps.push({ + ...basicHelpState, + path: findCommonPrefix(...helps.map(state => state.path)), + options: helps.reduce((options, state) => options.concat(state.options), []), + }); + } + return notHelps; } - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/replace.js": -/*!*********************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/replace.js ***! - \*********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -// tar -r -const hlo = __webpack_require__(/*! ./high-level-opt.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/high-level-opt.js") -const Pack = __webpack_require__(/*! ./pack.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pack.js") -const Parse = __webpack_require__(/*! ./parse.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/parse.js") -const fs = __webpack_require__(/*! fs */ "fs") -const fsm = __webpack_require__(/*! fs-minipass */ "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip/node_modules/fs-minipass/index.js") -const t = __webpack_require__(/*! ./list.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/list.js") -const path = __webpack_require__(/*! path */ "path") - -// starting at the head of the file, read a Header -// If the checksum is invalid, that's our position to start writing -// If it is, jump forward by the specified size (round up to 512) -// and try again. -// Write the new Pack stream starting there. - -const Header = __webpack_require__(/*! ./header.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/header.js") - -const r = module.exports = (opt_, files, cb) => { - const opt = hlo(opt_) - - if (!opt.file) - throw new TypeError('file is required') - - if (opt.gzip) - throw new TypeError('cannot append to compressed archives') - - if (!files || !Array.isArray(files) || !files.length) - throw new TypeError('no files or directories specified') - - files = Array.from(files) - - return opt.sync ? replaceSync(opt, files) - : replace(opt, files, cb) +function findCommonPrefix(firstPath, secondPath, ...rest) { + if (secondPath === undefined) + return Array.from(firstPath); + return findCommonPrefix(firstPath.filter((segment, i) => segment === secondPath[i]), ...rest); +} +function makeNode() { + return { + dynamics: [], + shortcuts: [], + statics: {}, + }; +} +function isTerminalNode(node) { + return node === constants.NODE_SUCCESS || node === constants.NODE_ERRORED; +} +function cloneTransition(input, offset = 0) { + return { + to: !isTerminalNode(input.to) ? input.to > 2 ? input.to + offset - 2 : input.to + offset : input.to, + reducer: input.reducer, + }; +} +function cloneNode(input, offset = 0) { + const output = makeNode(); + for (const [test, transition] of input.dynamics) + output.dynamics.push([test, cloneTransition(transition, offset)]); + for (const transition of input.shortcuts) + output.shortcuts.push(cloneTransition(transition, offset)); + for (const [segment, transitions] of Object.entries(input.statics)) + output.statics[segment] = transitions.map(transition => cloneTransition(transition, offset)); + return output; } - -const replaceSync = (opt, files) => { - const p = new Pack.Sync(opt) - - let threw = true - let fd - let position - - try { - try { - fd = fs.openSync(opt.file, 'r+') - } catch (er) { - if (er.code === 'ENOENT') - fd = fs.openSync(opt.file, 'w+') - else - throw er +function registerDynamic(machine, from, test, to, reducer) { + machine.nodes[from].dynamics.push([ + test, + { to, reducer: reducer }, + ]); +} +function registerShortcut(machine, from, to, reducer) { + machine.nodes[from].shortcuts.push({ to, reducer: reducer }); +} +function registerStatic(machine, from, test, to, reducer) { + const store = !Object.prototype.hasOwnProperty.call(machine.nodes[from].statics, test) + ? machine.nodes[from].statics[test] = [] + : machine.nodes[from].statics[test]; + store.push({ to, reducer: reducer }); +} +function execute(store, callback, state, segment) { + // TypeScript's control flow can't properly narrow + // generic conditionals for some mysterious reason + if (Array.isArray(callback)) { + const [name, ...args] = callback; + return store[name](state, segment, ...args); } - - const st = fs.fstatSync(fd) - const headBuf = Buffer.alloc(512) - - POSITION: for (position = 0; position < st.size; position += 512) { - for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) { - bytes = fs.readSync( - fd, headBuf, bufPos, headBuf.length - bufPos, position + bufPos - ) - - if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) - throw new Error('cannot append to compressed archives') - - if (!bytes) - break POSITION - } - - let h = new Header(headBuf) - if (!h.cksumValid) - break - let entryBlockSize = 512 * Math.ceil(h.size / 512) - if (position + entryBlockSize + 512 > st.size) - break - // the 512 for the header we just parsed will be added as well - // also jump ahead all the blocks for the body - position += entryBlockSize - if (opt.mtimeCache) - opt.mtimeCache.set(h.path, h.mtime) + else { + return store[callback](state, segment); } - threw = false - - streamSync(opt, p, position, fd, files) - } finally { - if (threw) - try { fs.closeSync(fd) } catch (er) {} - } } - -const streamSync = (opt, p, position, fd, files) => { - const stream = new fsm.WriteStreamSync(opt.file, { - fd: fd, - start: position - }) - p.pipe(stream) - addFilesSync(p, files) +function suggest(callback, state) { + const fn = Array.isArray(callback) + ? tests[callback[0]] + : tests[callback]; + // @ts-ignore + if (typeof fn.suggest === `undefined`) + return null; + const args = Array.isArray(callback) + ? callback.slice(1) + : []; + // @ts-ignore + return fn.suggest(state, ...args); } - -const replace = (opt, files, cb) => { - files = Array.from(files) - const p = new Pack(opt) - - const getPos = (fd, size, cb_) => { - const cb = (er, pos) => { - if (er) - fs.close(fd, _ => cb_(er)) - else - cb_(null, pos) +const tests = { + always: () => { + return true; + }, + isOptionLike: (state, segment) => { + return !state.ignoreOptions && (segment !== `-` && segment.startsWith(`-`)); + }, + isNotOptionLike: (state, segment) => { + return state.ignoreOptions || segment === `-` || !segment.startsWith(`-`); + }, + isOption: (state, segment, name, hidden) => { + return !state.ignoreOptions && segment === name; + }, + isBatchOption: (state, segment, names) => { + return !state.ignoreOptions && constants.BATCH_REGEX.test(segment) && [...segment.slice(1)].every(name => names.includes(`-${name}`)); + }, + isBoundOption: (state, segment, names, options) => { + const optionParsing = segment.match(constants.BINDING_REGEX); + return !state.ignoreOptions && !!optionParsing && constants.OPTION_REGEX.test(optionParsing[1]) && names.includes(optionParsing[1]) + // Disallow bound options with no arguments (i.e. booleans) + && options.filter(opt => opt.names.includes(optionParsing[1])).every(opt => opt.allowBinding); + }, + isNegatedOption: (state, segment, name) => { + return !state.ignoreOptions && segment === `--no-${name.slice(2)}`; + }, + isHelp: (state, segment) => { + return !state.ignoreOptions && constants.HELP_REGEX.test(segment); + }, + isUnsupportedOption: (state, segment, names) => { + return !state.ignoreOptions && segment.startsWith(`-`) && constants.OPTION_REGEX.test(segment) && !names.includes(segment); + }, + isInvalidOption: (state, segment) => { + return !state.ignoreOptions && segment.startsWith(`-`) && !constants.OPTION_REGEX.test(segment); + }, +}; +// @ts-ignore +tests.isOption.suggest = (state, name, hidden = true) => { + return !hidden ? [name] : null; +}; +const reducers = { + setCandidateState: (state, segment, candidateState) => { + return { ...state, ...candidateState }; + }, + setSelectedIndex: (state, segment, index) => { + return { ...state, selectedIndex: index }; + }, + pushBatch: (state, segment) => { + return { ...state, options: state.options.concat([...segment.slice(1)].map(name => ({ name: `-${name}`, value: true }))) }; + }, + pushBound: (state, segment) => { + const [, name, value] = segment.match(constants.BINDING_REGEX); + return { ...state, options: state.options.concat({ name, value }) }; + }, + pushPath: (state, segment) => { + return { ...state, path: state.path.concat(segment) }; + }, + pushPositional: (state, segment) => { + return { ...state, positionals: state.positionals.concat({ value: segment, extra: false }) }; + }, + pushExtra: (state, segment) => { + return { ...state, positionals: state.positionals.concat({ value: segment, extra: true }) }; + }, + pushExtraNoLimits: (state, segment) => { + return { ...state, positionals: state.positionals.concat({ value: segment, extra: NoLimits }) }; + }, + pushTrue: (state, segment, name = segment) => { + return { ...state, options: state.options.concat({ name: segment, value: true }) }; + }, + pushFalse: (state, segment, name = segment) => { + return { ...state, options: state.options.concat({ name, value: false }) }; + }, + pushUndefined: (state, segment) => { + return { ...state, options: state.options.concat({ name: segment, value: undefined }) }; + }, + pushStringValue: (state, segment) => { + var _a; + const copy = { ...state, options: [...state.options] }; + const lastOption = state.options[state.options.length - 1]; + lastOption.value = ((_a = lastOption.value) !== null && _a !== void 0 ? _a : []).concat([segment]); + return copy; + }, + setStringValue: (state, segment) => { + const copy = { ...state, options: [...state.options] }; + const lastOption = state.options[state.options.length - 1]; + lastOption.value = segment; + return copy; + }, + inhibateOptions: (state) => { + return { ...state, ignoreOptions: true }; + }, + useHelp: (state, segment, command) => { + const [, /* name */ , index] = segment.match(constants.HELP_REGEX); + if (typeof index !== `undefined`) { + return { ...state, options: [{ name: `-c`, value: String(command) }, { name: `-i`, value: index }] }; + } + else { + return { ...state, options: [{ name: `-c`, value: String(command) }] }; + } + }, + setError: (state, segment, errorMessage) => { + if (segment === constants.END_OF_INPUT) { + return { ...state, errorMessage: `${errorMessage}.` }; + } + else { + return { ...state, errorMessage: `${errorMessage} ("${segment}").` }; + } + }, + setOptionArityError: (state, segment) => { + const lastOption = state.options[state.options.length - 1]; + return { ...state, errorMessage: `Not enough arguments to option ${lastOption.name}.` }; + }, +}; +// ------------------------------------------------------------------------ +const NoLimits = Symbol(); +class CommandBuilder { + constructor(cliIndex, cliOpts) { + this.allOptionNames = []; + this.arity = { leading: [], trailing: [], extra: [], proxy: false }; + this.options = []; + this.paths = []; + this.cliIndex = cliIndex; + this.cliOpts = cliOpts; + } + addPath(path) { + this.paths.push(path); + } + setArity({ leading = this.arity.leading, trailing = this.arity.trailing, extra = this.arity.extra, proxy = this.arity.proxy }) { + Object.assign(this.arity, { leading, trailing, extra, proxy }); + } + addPositional({ name = `arg`, required = true } = {}) { + if (!required && this.arity.extra === NoLimits) + throw new Error(`Optional parameters cannot be declared when using .rest() or .proxy()`); + if (!required && this.arity.trailing.length > 0) + throw new Error(`Optional parameters cannot be declared after the required trailing positional arguments`); + if (!required && this.arity.extra !== NoLimits) { + this.arity.extra.push(name); + } + else if (this.arity.extra !== NoLimits && this.arity.extra.length === 0) { + this.arity.leading.push(name); + } + else { + this.arity.trailing.push(name); + } + } + addRest({ name = `arg`, required = 0 } = {}) { + if (this.arity.extra === NoLimits) + throw new Error(`Infinite lists cannot be declared multiple times in the same command`); + if (this.arity.trailing.length > 0) + throw new Error(`Infinite lists cannot be declared after the required trailing positional arguments`); + for (let t = 0; t < required; ++t) + this.addPositional({ name }); + this.arity.extra = NoLimits; } - - let position = 0 - if (size === 0) - return cb(null, 0) - - let bufPos = 0 - const headBuf = Buffer.alloc(512) - const onread = (er, bytes) => { - if (er) - return cb(er) - bufPos += bytes - if (bufPos < 512 && bytes) - return fs.read( - fd, headBuf, bufPos, headBuf.length - bufPos, - position + bufPos, onread - ) - - if (position === 0 && headBuf[0] === 0x1f && headBuf[1] === 0x8b) - return cb(new Error('cannot append to compressed archives')) - - // truncated header - if (bufPos < 512) - return cb(null, position) - - const h = new Header(headBuf) - if (!h.cksumValid) - return cb(null, position) - - const entryBlockSize = 512 * Math.ceil(h.size / 512) - if (position + entryBlockSize + 512 > size) - return cb(null, position) - - position += entryBlockSize + 512 - if (position >= size) - return cb(null, position) - - if (opt.mtimeCache) - opt.mtimeCache.set(h.path, h.mtime) - bufPos = 0 - fs.read(fd, headBuf, 0, 512, position, onread) + addProxy({ required = 0 } = {}) { + this.addRest({ required }); + this.arity.proxy = true; } - fs.read(fd, headBuf, 0, 512, position, onread) - } - - const promise = new Promise((resolve, reject) => { - p.on('error', reject) - let flag = 'r+' - const onopen = (er, fd) => { - if (er && er.code === 'ENOENT' && flag === 'r+') { - flag = 'w+' - return fs.open(opt.file, flag, onopen) - } - - if (er) - return reject(er) - - fs.fstat(fd, (er, st) => { - if (er) - return reject(er) - getPos(fd, st.size, (er, position) => { - if (er) - return reject(er) - const stream = new fsm.WriteStream(opt.file, { - fd: fd, - start: position - }) - p.pipe(stream) - stream.on('error', reject) - stream.on('close', resolve) - addFilesAsync(p, files) - }) - }) + addOption({ names, description, arity = 0, hidden = false, required = false, allowBinding = true }) { + if (!allowBinding && arity > 1) + throw new Error(`The arity cannot be higher than 1 when the option only supports the --arg=value syntax`); + if (!Number.isInteger(arity)) + throw new Error(`The arity must be an integer, got ${arity}`); + if (arity < 0) + throw new Error(`The arity must be positive, got ${arity}`); + this.allOptionNames.push(...names); + this.options.push({ names, description, arity, hidden, required, allowBinding }); + } + setContext(context) { + this.context = context; + } + usage({ detailed = true, inlineOptions = true } = {}) { + const segments = [this.cliOpts.binaryName]; + const detailedOptionList = []; + if (this.paths.length > 0) + segments.push(...this.paths[0]); + if (detailed) { + for (const { names, arity, hidden, description, required } of this.options) { + if (hidden) + continue; + const args = []; + for (let t = 0; t < arity; ++t) + args.push(` #${t}`); + const definition = `${names.join(`,`)}${args.join(``)}`; + if (!inlineOptions && description) { + detailedOptionList.push({ definition, description, required }); + } + else { + segments.push(required ? `<${definition}>` : `[${definition}]`); + } + } + segments.push(...this.arity.leading.map(name => `<${name}>`)); + if (this.arity.extra === NoLimits) + segments.push(`...`); + else + segments.push(...this.arity.extra.map(name => `[${name}]`)); + segments.push(...this.arity.trailing.map(name => `<${name}>`)); + } + const usage = segments.join(` `); + return { usage, options: detailedOptionList }; + } + compile() { + if (typeof this.context === `undefined`) + throw new Error(`Assertion failed: No context attached`); + const machine = makeStateMachine(); + let firstNode = constants.NODE_INITIAL; + const candidateUsage = this.usage().usage; + const requiredOptions = this.options + .filter(opt => opt.required) + .map(opt => opt.names); + firstNode = injectNode(machine, makeNode()); + registerStatic(machine, constants.NODE_INITIAL, constants.START_OF_INPUT, firstNode, [`setCandidateState`, { candidateUsage, requiredOptions }]); + const positionalArgument = this.arity.proxy + ? `always` + : `isNotOptionLike`; + const paths = this.paths.length > 0 + ? this.paths + : [[]]; + for (const path of paths) { + let lastPathNode = firstNode; + // We allow options to be specified before the path. Note that we + // only do this when there is a path, otherwise there would be + // some redundancy with the options attached later. + if (path.length > 0) { + const optionPathNode = injectNode(machine, makeNode()); + registerShortcut(machine, lastPathNode, optionPathNode); + this.registerOptions(machine, optionPathNode); + lastPathNode = optionPathNode; + } + for (let t = 0; t < path.length; ++t) { + const nextPathNode = injectNode(machine, makeNode()); + registerStatic(machine, lastPathNode, path[t], nextPathNode, `pushPath`); + lastPathNode = nextPathNode; + } + if (this.arity.leading.length > 0 || !this.arity.proxy) { + const helpNode = injectNode(machine, makeNode()); + registerDynamic(machine, lastPathNode, `isHelp`, helpNode, [`useHelp`, this.cliIndex]); + registerStatic(machine, helpNode, constants.END_OF_INPUT, constants.NODE_SUCCESS, [`setSelectedIndex`, constants.HELP_COMMAND_INDEX]); + this.registerOptions(machine, lastPathNode); + } + if (this.arity.leading.length > 0) + registerStatic(machine, lastPathNode, constants.END_OF_INPUT, constants.NODE_ERRORED, [`setError`, `Not enough positional arguments`]); + let lastLeadingNode = lastPathNode; + for (let t = 0; t < this.arity.leading.length; ++t) { + const nextLeadingNode = injectNode(machine, makeNode()); + if (!this.arity.proxy) + this.registerOptions(machine, nextLeadingNode); + if (this.arity.trailing.length > 0 || t + 1 !== this.arity.leading.length) + registerStatic(machine, nextLeadingNode, constants.END_OF_INPUT, constants.NODE_ERRORED, [`setError`, `Not enough positional arguments`]); + registerDynamic(machine, lastLeadingNode, `isNotOptionLike`, nextLeadingNode, `pushPositional`); + lastLeadingNode = nextLeadingNode; + } + let lastExtraNode = lastLeadingNode; + if (this.arity.extra === NoLimits || this.arity.extra.length > 0) { + const extraShortcutNode = injectNode(machine, makeNode()); + registerShortcut(machine, lastLeadingNode, extraShortcutNode); + if (this.arity.extra === NoLimits) { + const extraNode = injectNode(machine, makeNode()); + if (!this.arity.proxy) + this.registerOptions(machine, extraNode); + registerDynamic(machine, lastLeadingNode, positionalArgument, extraNode, `pushExtraNoLimits`); + registerDynamic(machine, extraNode, positionalArgument, extraNode, `pushExtraNoLimits`); + registerShortcut(machine, extraNode, extraShortcutNode); + } + else { + for (let t = 0; t < this.arity.extra.length; ++t) { + const nextExtraNode = injectNode(machine, makeNode()); + if (!this.arity.proxy) + this.registerOptions(machine, nextExtraNode); + registerDynamic(machine, lastExtraNode, positionalArgument, nextExtraNode, `pushExtra`); + registerShortcut(machine, nextExtraNode, extraShortcutNode); + lastExtraNode = nextExtraNode; + } + } + lastExtraNode = extraShortcutNode; + } + if (this.arity.trailing.length > 0) + registerStatic(machine, lastExtraNode, constants.END_OF_INPUT, constants.NODE_ERRORED, [`setError`, `Not enough positional arguments`]); + let lastTrailingNode = lastExtraNode; + for (let t = 0; t < this.arity.trailing.length; ++t) { + const nextTrailingNode = injectNode(machine, makeNode()); + if (!this.arity.proxy) + this.registerOptions(machine, nextTrailingNode); + if (t + 1 < this.arity.trailing.length) + registerStatic(machine, nextTrailingNode, constants.END_OF_INPUT, constants.NODE_ERRORED, [`setError`, `Not enough positional arguments`]); + registerDynamic(machine, lastTrailingNode, `isNotOptionLike`, nextTrailingNode, `pushPositional`); + lastTrailingNode = nextTrailingNode; + } + registerDynamic(machine, lastTrailingNode, positionalArgument, constants.NODE_ERRORED, [`setError`, `Extraneous positional argument`]); + registerStatic(machine, lastTrailingNode, constants.END_OF_INPUT, constants.NODE_SUCCESS, [`setSelectedIndex`, this.cliIndex]); + } + return { + machine, + context: this.context, + }; + } + registerOptions(machine, node) { + registerDynamic(machine, node, [`isOption`, `--`], node, `inhibateOptions`); + registerDynamic(machine, node, [`isBatchOption`, this.allOptionNames], node, `pushBatch`); + registerDynamic(machine, node, [`isBoundOption`, this.allOptionNames, this.options], node, `pushBound`); + registerDynamic(machine, node, [`isUnsupportedOption`, this.allOptionNames], constants.NODE_ERRORED, [`setError`, `Unsupported option name`]); + registerDynamic(machine, node, [`isInvalidOption`], constants.NODE_ERRORED, [`setError`, `Invalid option name`]); + for (const option of this.options) { + const longestName = option.names.reduce((longestName, name) => { + return name.length > longestName.length ? name : longestName; + }, ``); + if (option.arity === 0) { + for (const name of option.names) { + registerDynamic(machine, node, [`isOption`, name, option.hidden || name !== longestName], node, `pushTrue`); + if (name.startsWith(`--`) && !name.startsWith(`--no-`)) { + registerDynamic(machine, node, [`isNegatedOption`, name], node, [`pushFalse`, name]); + } + } + } + else { + // We inject a new node at the end of the state machine + let lastNode = injectNode(machine, makeNode()); + // We register transitions from the starting node to this new node + for (const name of option.names) + registerDynamic(machine, node, [`isOption`, name, option.hidden || name !== longestName], lastNode, `pushUndefined`); + // For each argument, we inject a new node at the end and we + // register a transition from the current node to this new node + for (let t = 0; t < option.arity; ++t) { + const nextNode = injectNode(machine, makeNode()); + // We can provide better errors when another option or END_OF_INPUT is encountered + registerStatic(machine, lastNode, constants.END_OF_INPUT, constants.NODE_ERRORED, `setOptionArityError`); + registerDynamic(machine, lastNode, `isOptionLike`, constants.NODE_ERRORED, `setOptionArityError`); + // If the option has a single argument, no need to store it in an array + const action = option.arity === 1 + ? `setStringValue` + : `pushStringValue`; + registerDynamic(machine, lastNode, `isNotOptionLike`, nextNode, action); + lastNode = nextNode; + } + // In the end, we register a shortcut from + // the last node back to the starting node + registerShortcut(machine, lastNode, node); + } + } } - fs.open(opt.file, flag, onopen) - }) - - return cb ? promise.then(cb, cb) : promise -} - -const addFilesSync = (p, files) => { - files.forEach(file => { - if (file.charAt(0) === '@') - t({ - file: path.resolve(p.cwd, file.substr(1)), - sync: true, - noResume: true, - onentry: entry => p.add(entry) - }) - else - p.add(file) - }) - p.end() -} - -const addFilesAsync = (p, files) => { - while (files.length) { - const file = files.shift() - if (file.charAt(0) === '@') - return t({ - file: path.resolve(p.cwd, file.substr(1)), - noResume: true, - onentry: entry => p.add(entry) - }).then(_ => addFilesAsync(p, files)) - else - p.add(file) - } - p.end() -} - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/types.js": -/*!*******************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/types.js ***! - \*******************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -// map types from key to human-friendly name -exports.name = new Map([ - ['0', 'File'], - // same as File - ['', 'OldFile'], - ['1', 'Link'], - ['2', 'SymbolicLink'], - // Devices and FIFOs aren't fully supported - // they are parsed, but skipped when unpacking - ['3', 'CharacterDevice'], - ['4', 'BlockDevice'], - ['5', 'Directory'], - ['6', 'FIFO'], - // same as File - ['7', 'ContiguousFile'], - // pax headers - ['g', 'GlobalExtendedHeader'], - ['x', 'ExtendedHeader'], - // vendor-specific stuff - // skip - ['A', 'SolarisACL'], - // like 5, but with data, which should be skipped - ['D', 'GNUDumpDir'], - // metadata only, skip - ['I', 'Inode'], - // data = link path of next file - ['K', 'NextFileHasLongLinkpath'], - // data = path of next file - ['L', 'NextFileHasLongPath'], - // skip - ['M', 'ContinuationFile'], - // like L - ['N', 'OldGnuLongPath'], - // skip - ['S', 'SparseFile'], - // skip - ['V', 'TapeVolumeHeader'], - // like x - ['X', 'OldExtendedHeader'] -]) - -// map the other direction -exports.code = new Map(Array.from(exports.name).map(kv => [kv[1], kv[0]])) - - -/***/ }), - -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/unpack.js": -/*!********************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/unpack.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -// the PEND/UNPEND stuff tracks whether we're ready to emit end/close yet. -// but the path reservations are required to avoid race conditions where -// parallelized unpack ops may mess with one another, due to dependencies -// (like a Link depending on its target) or destructive operations (like -// clobbering an fs object to create one of a different type.) - -const assert = __webpack_require__(/*! assert */ "assert") -const EE = __webpack_require__(/*! events */ "events").EventEmitter -const Parser = __webpack_require__(/*! ./parse.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/parse.js") -const fs = __webpack_require__(/*! fs */ "fs") -const fsm = __webpack_require__(/*! fs-minipass */ "./.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip/node_modules/fs-minipass/index.js") -const path = __webpack_require__(/*! path */ "path") -const mkdir = __webpack_require__(/*! ./mkdir.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/mkdir.js") -const mkdirSync = mkdir.sync -const wc = __webpack_require__(/*! ./winchars.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/winchars.js") -const pathReservations = __webpack_require__(/*! ./path-reservations.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/path-reservations.js") - -const ONENTRY = Symbol('onEntry') -const CHECKFS = Symbol('checkFs') -const CHECKFS2 = Symbol('checkFs2') -const ISREUSABLE = Symbol('isReusable') -const MAKEFS = Symbol('makeFs') -const FILE = Symbol('file') -const DIRECTORY = Symbol('directory') -const LINK = Symbol('link') -const SYMLINK = Symbol('symlink') -const HARDLINK = Symbol('hardlink') -const UNSUPPORTED = Symbol('unsupported') -const UNKNOWN = Symbol('unknown') -const CHECKPATH = Symbol('checkPath') -const MKDIR = Symbol('mkdir') -const ONERROR = Symbol('onError') -const PENDING = Symbol('pending') -const PEND = Symbol('pend') -const UNPEND = Symbol('unpend') -const ENDED = Symbol('ended') -const MAYBECLOSE = Symbol('maybeClose') -const SKIP = Symbol('skip') -const DOCHOWN = Symbol('doChown') -const UID = Symbol('uid') -const GID = Symbol('gid') -const crypto = __webpack_require__(/*! crypto */ "crypto") -const getFlag = __webpack_require__(/*! ./get-write-flag.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/get-write-flag.js") - -/* istanbul ignore next */ -const neverCalled = () => { - throw new Error('sync function called cb somehow?!?') -} - -// Unlinks on Windows are not atomic. -// -// This means that if you have a file entry, followed by another -// file entry with an identical name, and you cannot re-use the file -// (because it's a hardlink, or because unlink:true is set, or it's -// Windows, which does not have useful nlink values), then the unlink -// will be committed to the disk AFTER the new file has been written -// over the old one, deleting the new file. -// -// To work around this, on Windows systems, we rename the file and then -// delete the renamed file. It's a sloppy kludge, but frankly, I do not -// know of a better way to do this, given windows' non-atomic unlink -// semantics. -// -// See: https://github.com/npm/node-tar/issues/183 -/* istanbul ignore next */ -const unlinkFile = (path, cb) => { - if (process.platform !== 'win32') - return fs.unlink(path, cb) - - const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex') - fs.rename(path, name, er => { - if (er) - return cb(er) - fs.unlink(name, cb) - }) -} - -/* istanbul ignore next */ -const unlinkFileSync = path => { - if (process.platform !== 'win32') - return fs.unlinkSync(path) - - const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex') - fs.renameSync(path, name) - fs.unlinkSync(name) } - -// this.gid, entry.gid, this.processUid -const uint32 = (a, b, c) => - a === a >>> 0 ? a - : b === b >>> 0 ? b - : c - -class Unpack extends Parser { - constructor (opt) { - if (!opt) - opt = {} - - opt.ondone = _ => { - this[ENDED] = true - this[MAYBECLOSE]() +class CliBuilder { + constructor({ binaryName = `...` } = {}) { + this.builders = []; + this.opts = { binaryName }; } + static build(cbs, opts = {}) { + return new CliBuilder(opts).commands(cbs).compile(); + } + getBuilderByIndex(n) { + if (!(n >= 0 && n < this.builders.length)) + throw new Error(`Assertion failed: Out-of-bound command index (${n})`); + return this.builders[n]; + } + commands(cbs) { + for (const cb of cbs) + cb(this.command()); + return this; + } + command() { + const builder = new CommandBuilder(this.builders.length, this.opts); + this.builders.push(builder); + return builder; + } + compile() { + const machines = []; + const contexts = []; + for (const builder of this.builders) { + const { machine, context } = builder.compile(); + machines.push(machine); + contexts.push(context); + } + const machine = makeAnyOfMachine(machines); + simplifyMachine(machine); + return { + machine, + contexts, + process: (input) => { + return runMachine(machine, input); + }, + suggest: (input, partial) => { + return suggestMachine(machine, input, partial); + }, + }; + } +} - super(opt) - - this.reservations = pathReservations() - - this.transform = typeof opt.transform === 'function' ? opt.transform : null - - this.writable = true - this.readable = false +exports.CliBuilder = CliBuilder; +exports.CommandBuilder = CommandBuilder; +exports.NoLimits = NoLimits; +exports.aggregateHelpStates = aggregateHelpStates; +exports.cloneNode = cloneNode; +exports.cloneTransition = cloneTransition; +exports.debug = debug; +exports.debugMachine = debugMachine; +exports.execute = execute; +exports.injectNode = injectNode; +exports.isTerminalNode = isTerminalNode; +exports.makeAnyOfMachine = makeAnyOfMachine; +exports.makeNode = makeNode; +exports.makeStateMachine = makeStateMachine; +exports.reducers = reducers; +exports.registerDynamic = registerDynamic; +exports.registerShortcut = registerShortcut; +exports.registerStatic = registerStatic; +exports.runMachineInternal = runMachineInternal; +exports.selectBestState = selectBestState; +exports.simplifyMachine = simplifyMachine; +exports.suggest = suggest; +exports.tests = tests; +exports.trimSmallerBranches = trimSmallerBranches; - this[PENDING] = 0 - this[ENDED] = false - this.dirCache = opt.dirCache || new Map() +/***/ }), - if (typeof opt.uid === 'number' || typeof opt.gid === 'number') { - // need both or neither - if (typeof opt.uid !== 'number' || typeof opt.gid !== 'number') - throw new TypeError('cannot set owner without number uid and gid') - if (opt.preserveOwner) - throw new TypeError( - 'cannot preserve owner in archive and also set owner explicitly') - this.uid = opt.uid - this.gid = opt.gid - this.setOwner = true - } else { - this.uid = null - this.gid = null - this.setOwner = false - } +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/errors.js": +/*!******************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/errors.js ***! + \******************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - // default true for root - if (opt.preserveOwner === undefined && typeof opt.uid !== 'number') - this.preserveOwner = process.getuid && process.getuid() === 0 - else - this.preserveOwner = !!opt.preserveOwner +"use strict"; - this.processUid = (this.preserveOwner || this.setOwner) && process.getuid ? - process.getuid() : null - this.processGid = (this.preserveOwner || this.setOwner) && process.getgid ? - process.getgid() : null - // mostly just for testing, but useful in some cases. - // Forcibly trigger a chown on every entry, no matter what - this.forceChown = opt.forceChown === true +Object.defineProperty(exports, "__esModule", ({ value: true })); - // turn > candidate.reason !== null && candidate.reason === candidates[0].reason)) { + const [{ reason }] = this.candidates; + this.message = `${reason}\n\n${this.candidates.map(({ usage }) => `$ ${usage}`).join(`\n`)}`; + } + else if (this.candidates.length === 1) { + const [{ usage }] = this.candidates; + this.message = `Command not found; did you mean:\n\n$ ${usage}\n${whileRunning(input)}`; + } + else { + this.message = `Command not found; did you mean one of:\n\n${this.candidates.map(({ usage }, index) => { + return `${`${index}.`.padStart(4)} ${usage}`; + }).join(`\n`)}\n\n${whileRunning(input)}`; + } + } +} +class AmbiguousSyntaxError extends Error { + constructor(input, usages) { + super(); + this.input = input; + this.usages = usages; + this.clipanion = { type: `none` }; + this.name = `AmbiguousSyntaxError`; + this.message = `Cannot find which to pick amongst the following alternatives:\n\n${this.usages.map((usage, index) => { + return `${`${index}.`.padStart(4)} ${usage}`; + }).join(`\n`)}\n\n${whileRunning(input)}`; + } +} +const whileRunning = (input) => `While running ${input.filter(token => { + return token !== constants.END_OF_INPUT; +}).map(token => { + const json = JSON.stringify(token); + if (token.match(/\s/) || token.length === 0 || json !== `"${token}"`) { + return json; + } + else { + return token; + } +}).join(` `)}`; - // do not unpack over ANY files - this.keep = !!opt.keep +exports.AmbiguousSyntaxError = AmbiguousSyntaxError; +exports.UnknownSyntaxError = UnknownSyntaxError; +exports.UsageError = UsageError; - // do not set mtime/atime of extracted entries - this.noMtime = !!opt.noMtime - // allow .., absolute path entries, and unpacking through symlinks - // without this, warn and skip .., relativize absolutes, and error - // on symlinks in extraction path - this.preservePaths = !!opt.preservePaths +/***/ }), - // unlink files and links before writing. This breaks existing hard - // links, and removes symlink directories rather than erroring - this.unlink = !!opt.unlink +/***/ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/format.js": +/*!******************************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/format.js ***! + \******************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { - this.cwd = path.resolve(opt.cwd || process.cwd()) - this.strip = +opt.strip || 0 - this.processUmask = process.umask() - this.umask = typeof opt.umask === 'number' ? opt.umask : this.processUmask - // default mode for dirs created as parents - this.dmode = opt.dmode || (0o0777 & (~this.umask)) - this.fmode = opt.fmode || (0o0666 & (~this.umask)) - this.on('entry', entry => this[ONENTRY](entry)) - } +"use strict"; - // a bad or damaged archive is a warning for Parser, but an error - // when extracting. Mark those errors as unrecoverable, because - // the Unpack contract cannot be met. - warn (code, msg, data = {}) { - if (code === 'TAR_BAD_ARCHIVE' || code === 'TAR_ABORT') - data.recoverable = false - return super.warn(code, msg, data) - } - [MAYBECLOSE] () { - if (this[ENDED] && this[PENDING] === 0) { - this.emit('prefinish') - this.emit('finish') - this.emit('end') - this.emit('close') +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const MAX_LINE_LENGTH = 80; +const richLine = Array(MAX_LINE_LENGTH).fill(`━`); +for (let t = 0; t <= 24; ++t) + richLine[richLine.length - t] = `\x1b[38;5;${232 + t}m━`; +const richFormat = { + header: str => `\x1b[1m━━━ ${str}${str.length < MAX_LINE_LENGTH - 5 ? ` ${richLine.slice(str.length + 5).join(``)}` : `:`}\x1b[0m`, + bold: str => `\x1b[1m${str}\x1b[22m`, + error: str => `\x1b[31m\x1b[1m${str}\x1b[22m\x1b[39m`, + code: str => `\x1b[36m${str}\x1b[39m`, +}; +const textFormat = { + header: str => str, + bold: str => str, + error: str => str, + code: str => str, +}; +function dedent(text) { + const lines = text.split(`\n`); + const nonEmptyLines = lines.filter(line => line.match(/\S/)); + const indent = nonEmptyLines.length > 0 ? nonEmptyLines.reduce((minLength, line) => Math.min(minLength, line.length - line.trimStart().length), Number.MAX_VALUE) : 0; + return lines + .map(line => line.slice(indent).trimRight()) + .join(`\n`); +} +function formatMarkdownish(text, { format, paragraphs }) { + // Enforce \n as newline character + text = text.replace(/\r\n?/g, `\n`); + // Remove the indentation, since it got messed up with the JS indentation + text = dedent(text); + // Remove surrounding newlines, since they got added for JS formatting + text = text.replace(/^\n+|\n+$/g, ``); + // List items always end with at least two newlines (in order to not be collapsed) + text = text.replace(/^(\s*)-([^\n]*?)\n+/gm, `$1-$2\n\n`); + // Single newlines are removed; larger than that are collapsed into one + text = text.replace(/\n(\n)?\n*/g, `$1`); + if (paragraphs) { + text = text.split(/\n/).map(paragraph => { + // Does the paragraph starts with a list? + const bulletMatch = paragraph.match(/^\s*[*-][\t ]+(.*)/); + if (!bulletMatch) + // No, cut the paragraphs into segments of 80 characters + return paragraph.match(/(.{1,80})(?: |$)/g).join(`\n`); + const indent = paragraph.length - paragraph.trimStart().length; + // Yes, cut the paragraphs into segments of (78 - indent) characters (to account for the prefix) + return bulletMatch[1].match(new RegExp(`(.{1,${78 - indent}})(?: |$)`, `g`)).map((line, index) => { + return ` `.repeat(indent) + (index === 0 ? `- ` : ` `) + line; + }).join(`\n`); + }).join(`\n\n`); } - } + // Highlight the code segments + text = text.replace(/(`+)((?:.|[\n])*?)\1/g, ($0, $1, $2) => { + return format.code($1 + $2 + $1); + }); + // Highlight the code segments + text = text.replace(/(\*\*)((?:.|[\n])*?)\1/g, ($0, $1, $2) => { + return format.bold($1 + $2 + $1); + }); + return text ? `${text}\n` : ``; +} - [CHECKPATH] (entry) { - if (this.strip) { - const parts = entry.path.split(/\/|\\/) - if (parts.length < this.strip) - return false - entry.path = parts.slice(this.strip).join('/') +exports.formatMarkdownish = formatMarkdownish; +exports.richFormat = richFormat; +exports.textFormat = textFormat; - if (entry.type === 'Link') { - const linkparts = entry.linkpath.split(/\/|\\/) - if (linkparts.length >= this.strip) - entry.linkpath = linkparts.slice(this.strip).join('/') - } - } - if (!this.preservePaths) { - const p = entry.path - if (p.match(/(^|\/|\\)\.\.(\\|\/|$)/)) { - this.warn('TAR_ENTRY_ERROR', `path contains '..'`, { - entry, - path: p, - }) - return false - } +/***/ }), - // absolutes on posix are also absolutes on win32 - // so we only need to test this one to get both - if (path.win32.isAbsolute(p)) { - const parsed = path.win32.parse(p) - entry.path = p.substr(parsed.root.length) - const r = parsed.root - this.warn('TAR_ENTRY_INFO', `stripping ${r} from absolute path`, { - entry, - path: p, - }) - } - } +/***/ "./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/browser.js": +/*!*******************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/browser.js ***! + \*******************************************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { - // only encode : chars that aren't drive letter indicators - if (this.win32) { - const parsed = path.win32.parse(entry.path) - entry.path = parsed.root === '' ? wc.encode(entry.path) - : parsed.root + wc.encode(entry.path.substr(parsed.root.length)) - } +/* eslint-env browser */ - if (path.isAbsolute(entry.path)) - entry.absolute = entry.path - else - entry.absolute = path.resolve(this.cwd, entry.path) +/** + * This is the web browser implementation of `debug()`. + */ - return true - } +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; - [ONENTRY] (entry) { - if (!this[CHECKPATH](entry)) - return entry.resume() + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); - assert.equal(typeof entry.absolute, 'string') +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; - switch (entry.type) { - case 'Directory': - case 'GNUDumpDir': - if (entry.mode) - entry.mode = entry.mode | 0o700 +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ - case 'File': - case 'OldFile': - case 'ContiguousFile': - case 'Link': - case 'SymbolicLink': - return this[CHECKFS](entry) +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } - case 'CharacterDevice': - case 'BlockDevice': - case 'FIFO': - return this[UNSUPPORTED](entry) - } - } + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } - [ONERROR] (er, entry) { - // Cwd has to exist, or else nothing works. That's serious. - // Other errors are warnings, which raise the error in strict - // mode, but otherwise continue on. - if (er.name === 'CwdError') - this.emit('error', er) - else { - this.warn('TAR_ENTRY_ERROR', er, {entry}) - this[UNPEND]() - entry.resume() - } - } + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} - [MKDIR] (dir, mode, cb) { - mkdir(dir, { - uid: this.uid, - gid: this.gid, - processUid: this.processUid, - processGid: this.processGid, - umask: this.processUmask, - preserve: this.preservePaths, - unlink: this.unlink, - cache: this.dirCache, - cwd: this.cwd, - mode: mode - }, cb) - } +/** + * Colorize log arguments if enabled. + * + * @api public + */ - [DOCHOWN] (entry) { - // in preserve owner mode, chown if the entry doesn't match process - // in set owner mode, chown if setting doesn't match process - return this.forceChown || - this.preserveOwner && - ( typeof entry.uid === 'number' && entry.uid !== this.processUid || - typeof entry.gid === 'number' && entry.gid !== this.processGid ) - || - ( typeof this.uid === 'number' && this.uid !== this.processUid || - typeof this.gid === 'number' && this.gid !== this.processGid ) - } +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); - [UID] (entry) { - return uint32(this.uid, entry.uid, this.processUid) - } + if (!this.useColors) { + return; + } - [GID] (entry) { - return uint32(this.gid, entry.gid, this.processGid) - } + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); - [FILE] (entry, fullyDone) { - const mode = entry.mode & 0o7777 || this.fmode - const stream = new fsm.WriteStream(entry.absolute, { - flags: getFlag(entry.size), - mode: mode, - autoClose: false - }) - stream.on('error', er => this[ONERROR](er, entry)) + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); - let actions = 1 - const done = er => { - if (er) - return this[ONERROR](er, entry) + args.splice(lastC, 0, c); +} - if (--actions === 0) { - fs.close(stream.fd, er => { - fullyDone() - er ? this[ONERROR](er, entry) : this[UNPEND]() - }) - } - } +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); - stream.on('finish', _ => { - // if futimes fails, try utimes - // if utimes fails, fail with the original error - // same for fchown/chown - const abs = entry.absolute - const fd = stream.fd +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} - if (entry.mtime && !this.noMtime) { - actions++ - const atime = entry.atime || new Date() - const mtime = entry.mtime - fs.futimes(fd, atime, mtime, er => - er ? fs.utimes(abs, atime, mtime, er2 => done(er2 && er)) - : done()) - } +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug'); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } - if (this[DOCHOWN](entry)) { - actions++ - const uid = this[UID](entry) - const gid = this[GID](entry) - fs.fchown(fd, uid, gid, er => - er ? fs.chown(abs, uid, gid, er2 => done(er2 && er)) - : done()) - } + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } - done() - }) + return r; +} - const tx = this.transform ? this.transform(entry) || entry : entry - if (tx !== entry) { - tx.on('error', er => this[ONERROR](er, entry)) - entry.pipe(tx) - } - tx.pipe(stream) - } +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ - [DIRECTORY] (entry, fullyDone) { - const mode = entry.mode & 0o7777 || this.dmode - this[MKDIR](entry.absolute, mode, er => { - if (er) { - fullyDone() - return this[ONERROR](er, entry) - } +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} - let actions = 1 - const done = _ => { - if (--actions === 0) { - fullyDone() - this[UNPEND]() - entry.resume() - } - } +module.exports = __webpack_require__(/*! ./common */ "./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/common.js")(exports); - if (entry.mtime && !this.noMtime) { - actions++ - fs.utimes(entry.absolute, entry.atime || new Date(), entry.mtime, done) - } +const {formatters} = module.exports; - if (this[DOCHOWN](entry)) { - actions++ - fs.chown(entry.absolute, this[UID](entry), this[GID](entry), done) - } +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ - done() - }) - } +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; - [UNSUPPORTED] (entry) { - entry.unsupported = true - this.warn('TAR_ENTRY_UNSUPPORTED', - `unsupported entry type: ${entry.type}`, {entry}) - entry.resume() - } - [SYMLINK] (entry, done) { - this[LINK](entry, entry.linkpath, 'symlink', done) - } +/***/ }), - [HARDLINK] (entry, done) { - this[LINK](entry, path.resolve(this.cwd, entry.linkpath), 'link', done) - } +/***/ "./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/common.js": +/*!******************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/common.js ***! + \******************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - [PEND] () { - this[PENDING]++ - } - [UNPEND] () { - this[PENDING]-- - this[MAYBECLOSE]() - } +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ - [SKIP] (entry) { - this[UNPEND]() - entry.resume() - } +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = __webpack_require__(/*! ms */ "../../../.yarn/berry/cache/ms-npm-2.1.2-ec0c1512ff-9.zip/node_modules/ms/index.js"); + createDebug.destroy = destroy; - // Check if we can reuse an existing filesystem entry safely and - // overwrite it, rather than unlinking and recreating - // Windows doesn't report a useful nlink, so we just never reuse entries - [ISREUSABLE] (entry, st) { - return entry.type === 'File' && - !this.unlink && - st.isFile() && - st.nlink <= 1 && - process.platform !== 'win32' - } + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); - // check if a thing is there, and if so, try to clobber it - [CHECKFS] (entry) { - this[PEND]() - const paths = [entry.path] - if (entry.linkpath) - paths.push(entry.linkpath) - this.reservations.reserve(paths, done => this[CHECKFS2](entry, done)) - } - [CHECKFS2] (entry, done) { - this[MKDIR](path.dirname(entry.absolute), this.dmode, er => { - if (er) { - done() - return this[ONERROR](er, entry) - } - fs.lstat(entry.absolute, (er, st) => { - if (st && (this.keep || this.newer && st.mtime > entry.mtime)) { - this[SKIP](entry) - done() - } else if (er || this[ISREUSABLE](entry, st)) { - this[MAKEFS](null, entry, done) - } - else if (st.isDirectory()) { - if (entry.type === 'Directory') { - if (!entry.mode || (st.mode & 0o7777) === entry.mode) - this[MAKEFS](null, entry, done) - else - fs.chmod(entry.absolute, entry.mode, - er => this[MAKEFS](er, entry, done)) - } else - fs.rmdir(entry.absolute, er => this[MAKEFS](er, entry, done)) - } else - unlinkFile(entry.absolute, er => this[MAKEFS](er, entry, done)) - }) - }) - } + /** + * The currently active debug mode names, and names to skip. + */ - [MAKEFS] (er, entry, done) { - if (er) - return this[ONERROR](er, entry) + createDebug.names = []; + createDebug.skips = []; - switch (entry.type) { - case 'File': - case 'OldFile': - case 'ContiguousFile': - return this[FILE](entry, done) + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; - case 'Link': - return this[HARDLINK](entry, done) + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; - case 'SymbolicLink': - return this[SYMLINK](entry, done) + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } - case 'Directory': - case 'GNUDumpDir': - return this[DIRECTORY](entry, done) - } - } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; - [LINK] (entry, linkpath, link, done) { - // XXX: get the type ('file' or 'dir') for windows - fs[link](linkpath, entry.absolute, er => { - if (er) - return this[ONERROR](er, entry) - done() - this[UNPEND]() - entry.resume() - }) - } -} + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; -class UnpackSync extends Unpack { - constructor (opt) { - super(opt) - } + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } - [CHECKFS] (entry) { - const er = this[MKDIR](path.dirname(entry.absolute), this.dmode, neverCalled) - if (er) - return this[ONERROR](er, entry) - try { - const st = fs.lstatSync(entry.absolute) - if (this.keep || this.newer && st.mtime > entry.mtime) - return this[SKIP](entry) - else if (this[ISREUSABLE](entry, st)) - return this[MAKEFS](null, entry, neverCalled) - else { - try { - if (st.isDirectory()) { - if (entry.type === 'Directory') { - if (entry.mode && (st.mode & 0o7777) !== entry.mode) - fs.chmodSync(entry.absolute, entry.mode) - } else - fs.rmdirSync(entry.absolute) - } else - unlinkFileSync(entry.absolute) - return this[MAKEFS](null, entry, neverCalled) - } catch (er) { - return this[ONERROR](er, entry) - } - } - } catch (er) { - return this[MAKEFS](null, entry, neverCalled) - } - } + const self = debug; - [FILE] (entry, _) { - const mode = entry.mode & 0o7777 || this.fmode + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; - const oner = er => { - let closeError - try { - fs.closeSync(fd) - } catch (e) { - closeError = e - } - if (er || closeError) - this[ONERROR](er || closeError, entry) - } + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } - let stream - let fd - try { - fd = fs.openSync(entry.absolute, getFlag(entry.size), mode) - } catch (er) { - return oner(er) - } - const tx = this.transform ? this.transform(entry) || entry : entry - if (tx !== entry) { - tx.on('error', er => this[ONERROR](er, entry)) - entry.pipe(tx) - } + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); - tx.on('data', chunk => { - try { - fs.writeSync(fd, chunk, 0, chunk.length) - } catch (er) { - oner(er) - } - }) + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); - tx.on('end', _ => { - let er = null - // try both, falling futimes back to utimes - // if either fails, handle the first error - if (entry.mtime && !this.noMtime) { - const atime = entry.atime || new Date() - const mtime = entry.mtime - try { - fs.futimesSync(fd, atime, mtime) - } catch (futimeser) { - try { - fs.utimesSync(entry.absolute, atime, mtime) - } catch (utimeser) { - er = futimeser - } - } - } + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); - if (this[DOCHOWN](entry)) { - const uid = this[UID](entry) - const gid = this[GID](entry) + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } - try { - fs.fchownSync(fd, uid, gid) - } catch (fchowner) { - try { - fs.chownSync(entry.absolute, uid, gid) - } catch (chowner) { - er = er || fchowner - } - } - } + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } - oner(er) - }) - } + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); - [DIRECTORY] (entry, _) { - const mode = entry.mode & 0o7777 || this.dmode - const er = this[MKDIR](entry.absolute, mode) - if (er) - return this[ONERROR](er, entry) - if (entry.mtime && !this.noMtime) { - try { - fs.utimesSync(entry.absolute, entry.atime || new Date(), entry.mtime) - } catch (er) {} - } - if (this[DOCHOWN](entry)) { - try { - fs.chownSync(entry.absolute, this[UID](entry), this[GID](entry)) - } catch (er) {} - } - entry.resume() - } + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } - [MKDIR] (dir, mode) { - try { - return mkdir.sync(dir, { - uid: this.uid, - gid: this.gid, - processUid: this.processUid, - processGid: this.processGid, - umask: this.processUmask, - preserve: this.preservePaths, - unlink: this.unlink, - cache: this.dirCache, - cwd: this.cwd, - mode: mode - }) - } catch (er) { - return er - } - } + return debug; + } - [LINK] (entry, linkpath, link, _) { - try { - fs[link + 'Sync'](linkpath, entry.absolute) - entry.resume() - } catch (er) { - return this[ONERROR](er, entry) - } - } -} + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } -Unpack.Sync = UnpackSync -module.exports = Unpack + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; -/***/ }), + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/update.js": -/*!********************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/update.js ***! - \********************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } -"use strict"; + namespaces = split[i].replace(/\*/g, '.*?'); + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } -// tar -u + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } -const hlo = __webpack_require__(/*! ./high-level-opt.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/high-level-opt.js") -const r = __webpack_require__(/*! ./replace.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/replace.js") -// just call tar.r with the filter and mtimeCache + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === '*') { + return true; + } -const u = module.exports = (opt_, files, cb) => { - const opt = hlo(opt_) + let i; + let len; - if (!opt.file) - throw new TypeError('file is required') + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } - if (opt.gzip) - throw new TypeError('cannot append to compressed archives') + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } - if (!files || !Array.isArray(files) || !files.length) - throw new TypeError('no files or directories specified') + return false; + } - files = Array.from(files) + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp.toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } - mtimeFilter(opt) - return r(opt, files, cb) -} + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } -const mtimeFilter = opt => { - const filter = opt.filter + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } - if (!opt.mtimeCache) - opt.mtimeCache = new Map() + createDebug.enable(createDebug.load()); - opt.filter = filter ? (path, stat) => - filter(path, stat) && !(opt.mtimeCache.get(path) > stat.mtime) - : (path, stat) => !(opt.mtimeCache.get(path) > stat.mtime) + return createDebug; } +module.exports = setup; + /***/ }), -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/warn-mixin.js": -/*!************************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/warn-mixin.js ***! - \************************************************************************************************/ -/***/ ((module) => { +/***/ "./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/index.js": +/*!*****************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/index.js ***! + \*****************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ -module.exports = Base => class extends Base { - warn (code, message, data = {}) { - if (this.file) - data.file = this.file - if (this.cwd) - data.cwd = this.cwd - data.code = message instanceof Error && message.code || code - data.tarCode = code - if (!this.strict && data.recoverable !== false) { - if (message instanceof Error) { - data = Object.assign(message, data) - message = message.message - } - this.emit('warn', data.tarCode, message, data) - } else if (message instanceof Error) { - this.emit('error', Object.assign(message, data)) - } else - this.emit('error', Object.assign(new Error(`${code}: ${message}`), data)) - } +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = __webpack_require__(/*! ./browser.js */ "./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/browser.js"); +} else { + module.exports = __webpack_require__(/*! ./node.js */ "./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/node.js"); } /***/ }), -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/winchars.js": -/*!**********************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/winchars.js ***! - \**********************************************************************************************/ -/***/ ((module) => { +/***/ "./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/node.js": +/*!****************************************************************************************************************************************!*\ + !*** ./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/node.js ***! + \****************************************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { -"use strict"; +/** + * Module dependencies. + */ +const tty = __webpack_require__(/*! tty */ "tty"); +const util = __webpack_require__(/*! util */ "util"); -// When writing files on Windows, translate the characters to their -// 0xf000 higher-encoded versions. +/** + * This is the Node.js implementation of `debug()`. + */ -const raw = [ - '|', - '<', - '>', - '?', - ':' -] +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); -const win = raw.map(char => - String.fromCharCode(0xf000 + char.charCodeAt(0))) +/** + * Colors. + */ -const toWin = new Map(raw.map((char, i) => [char, win[i]])) -const toRaw = new Map(win.map((char, i) => [char, raw[i]])) +exports.colors = [6, 2, 3, 4, 5, 1]; -module.exports = { - encode: s => raw.reduce((s, c) => s.split(c).join(toWin.get(c)), s), - decode: s => win.reduce((s, c) => s.split(c).join(toRaw.get(c)), s) +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = __webpack_require__(/*! supports-color */ "../../../.yarn/berry/cache/supports-color-npm-9.2.2-d003069e84-9.zip/node_modules/supports-color/index.js"); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. } +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ -/***/ }), +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); -/***/ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/write-entry.js": -/*!*************************************************************************************************!*\ - !*** ./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/write-entry.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } -"use strict"; + obj[prop] = val; + return obj; +}, {}); -const MiniPass = __webpack_require__(/*! minipass */ "./.yarn/cache/minipass-npm-3.1.1-b51d7e264d-cfcfd86adc.zip/node_modules/minipass/index.js") -const Pax = __webpack_require__(/*! ./pax.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/pax.js") -const Header = __webpack_require__(/*! ./header.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/header.js") -const ReadEntry = __webpack_require__(/*! ./read-entry.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/read-entry.js") -const fs = __webpack_require__(/*! fs */ "fs") -const path = __webpack_require__(/*! path */ "path") +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ -const types = __webpack_require__(/*! ./types.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/types.js") -const maxReadSize = 16 * 1024 * 1024 -const PROCESS = Symbol('process') -const FILE = Symbol('file') -const DIRECTORY = Symbol('directory') -const SYMLINK = Symbol('symlink') -const HARDLINK = Symbol('hardlink') -const HEADER = Symbol('header') -const READ = Symbol('read') -const LSTAT = Symbol('lstat') -const ONLSTAT = Symbol('onlstat') -const ONREAD = Symbol('onread') -const ONREADLINK = Symbol('onreadlink') -const OPENFILE = Symbol('openfile') -const ONOPENFILE = Symbol('onopenfile') -const CLOSE = Symbol('close') -const MODE = Symbol('mode') -const warner = __webpack_require__(/*! ./warn-mixin.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/warn-mixin.js") -const winchars = __webpack_require__(/*! ./winchars.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/winchars.js") +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} -const modeFix = __webpack_require__(/*! ./mode-fix.js */ "./.yarn/cache/tar-npm-6.0.1-aedef672fb-498c4a5671.zip/node_modules/tar/lib/mode-fix.js") +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ -const WriteEntry = warner(class WriteEntry extends MiniPass { - constructor (p, opt) { - opt = opt || {} - super(opt) - if (typeof p !== 'string') - throw new TypeError('path is required') - this.path = p - // suppress atime, ctime, uid, gid, uname, gname - this.portable = !!opt.portable - // until node has builtin pwnam functions, this'll have to do - this.myuid = process.getuid && process.getuid() - this.myuser = process.env.USER || '' - this.maxReadSize = opt.maxReadSize || maxReadSize - this.linkCache = opt.linkCache || new Map() - this.statCache = opt.statCache || new Map() - this.preservePaths = !!opt.preservePaths - this.cwd = opt.cwd || process.cwd() - this.strict = !!opt.strict - this.noPax = !!opt.noPax - this.noMtime = !!opt.noMtime - this.mtime = opt.mtime || null +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} - if (typeof opt.onwarn === 'function') - this.on('warn', opt.onwarn) +/** + * Invokes `util.format()` with the specified arguments and writes to stderr. + */ - let pathWarn = false - if (!this.preservePaths && path.win32.isAbsolute(p)) { - // absolutes on posix are also absolutes on win32 - // so we only need to test this one to get both - const parsed = path.win32.parse(p) - this.path = p.substr(parsed.root.length) - pathWarn = parsed.root - } +function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); +} - this.win32 = !!opt.win32 || process.platform === 'win32' - if (this.win32) { - this.path = winchars.decode(this.path.replace(/\\/g, '/')) - p = p.replace(/\\/g, '/') - } +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} - this.absolute = opt.absolute || path.resolve(this.cwd, p) +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ - if (this.path === '') - this.path = './' +function load() { + return process.env.DEBUG; +} - if (pathWarn) { - this.warn('TAR_ENTRY_INFO', `stripping ${pathWarn} from absolute path`, { - entry: this, - path: pathWarn + this.path, - }) - } +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ - if (this.statCache.has(this.absolute)) - this[ONLSTAT](this.statCache.get(this.absolute)) - else - this[LSTAT]() - } +function init(debug) { + debug.inspectOpts = {}; - [LSTAT] () { - fs.lstat(this.absolute, (er, stat) => { - if (er) - return this.emit('error', er) - this[ONLSTAT](stat) - }) - } + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} - [ONLSTAT] (stat) { - this.statCache.set(this.absolute, stat) - this.stat = stat - if (!stat.isFile()) - stat.size = 0 - this.type = getType(stat) - this.emit('stat', stat) - this[PROCESS]() - } +module.exports = __webpack_require__(/*! ./common */ "./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/common.js")(exports); - [PROCESS] () { - switch (this.type) { - case 'File': return this[FILE]() - case 'Directory': return this[DIRECTORY]() - case 'SymbolicLink': return this[SYMLINK]() - // unsupported types are ignored. - default: return this.end() - } - } +const {formatters} = module.exports; - [MODE] (mode) { - return modeFix(mode, this.type === 'Directory', this.portable) - } +/** + * Map %o to `util.inspect()`, all on a single line. + */ - [HEADER] () { - if (this.type === 'Directory' && this.portable) - this.noMtime = true +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; - this.header = new Header({ - path: this.path, - linkpath: this.linkpath, - // only the permissions and setuid/setgid/sticky bitflags - // not the higher-order bits that specify file type - mode: this[MODE](this.stat.mode), - uid: this.portable ? null : this.stat.uid, - gid: this.portable ? null : this.stat.gid, - size: this.stat.size, - mtime: this.noMtime ? null : this.mtime || this.stat.mtime, - type: this.type, - uname: this.portable ? null : - this.stat.uid === this.myuid ? this.myuser : '', - atime: this.portable ? null : this.stat.atime, - ctime: this.portable ? null : this.stat.ctime - }) +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ - if (this.header.encode() && !this.noPax) - this.write(new Pax({ - atime: this.portable ? null : this.header.atime, - ctime: this.portable ? null : this.header.ctime, - gid: this.portable ? null : this.header.gid, - mtime: this.noMtime ? null : this.mtime || this.header.mtime, - path: this.path, - linkpath: this.linkpath, - size: this.header.size, - uid: this.portable ? null : this.header.uid, - uname: this.portable ? null : this.header.uname, - dev: this.portable ? null : this.stat.dev, - ino: this.portable ? null : this.stat.ino, - nlink: this.portable ? null : this.stat.nlink - }).encode()) - this.write(this.header.block) - } +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; - [DIRECTORY] () { - if (this.path.substr(-1) !== '/') - this.path += '/' - this.stat.size = 0 - this[HEADER]() - this.end() - } - [SYMLINK] () { - fs.readlink(this.absolute, (er, linkpath) => { - if (er) - return this.emit('error', er) - this[ONREADLINK](linkpath) - }) - } +/***/ }), - [ONREADLINK] (linkpath) { - this.linkpath = linkpath.replace(/\\/g, '/') - this[HEADER]() - this.end() - } +/***/ "./sources/Engine.ts": +/*!***************************!*\ + !*** ./sources/Engine.ts ***! + \***************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - [HARDLINK] (linkpath) { - this.type = 'Link' - this.linkpath = path.relative(this.cwd, linkpath).replace(/\\/g, '/') - this.stat.size = 0 - this[HEADER]() - this.end() - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Engine": () => (/* binding */ Engine) +/* harmony export */ }); +/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/index.js"); +/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _config_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../config.json */ "./config.json"); +/* harmony import */ var _corepackUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./corepackUtils */ "./sources/corepackUtils.ts"); +/* harmony import */ var _folderUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./folderUtils */ "./sources/folderUtils.ts"); +/* harmony import */ var _semverUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./semverUtils */ "./sources/semverUtils.ts"); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./types */ "./sources/types.ts"); - [FILE] () { - if (this.stat.nlink > 1) { - const linkKey = this.stat.dev + ':' + this.stat.ino - if (this.linkCache.has(linkKey)) { - const linkpath = this.linkCache.get(linkKey) - if (linkpath.indexOf(this.cwd) === 0) - return this[HARDLINK](linkpath) - } - this.linkCache.set(linkKey, this.absolute) - } - this[HEADER]() - if (this.stat.size === 0) - return this.end() - this[OPENFILE]() - } - [OPENFILE] () { - fs.open(this.absolute, 'r', (er, fd) => { - if (er) - return this.emit('error', er) - this[ONOPENFILE](fd) - }) - } - [ONOPENFILE] (fd) { - const blockLen = 512 * Math.ceil(this.stat.size / 512) - const bufLen = Math.min(blockLen, this.maxReadSize) - const buf = Buffer.allocUnsafe(bufLen) - this[READ](fd, buf, 0, buf.length, 0, this.stat.size, blockLen) - } - [READ] (fd, buf, offset, length, pos, remain, blockRemain) { - fs.read(fd, buf, offset, length, pos, (er, bytesRead) => { - if (er) { - // ignoring the error from close(2) is a bad practice, but at - // this point we already have an error, don't need another one - return this[CLOSE](fd, () => this.emit('error', er)) - } - this[ONREAD](fd, buf, offset, length, pos, remain, blockRemain, bytesRead) - }) - } - [CLOSE] (fd, cb) { - fs.close(fd, cb) - } - [ONREAD] (fd, buf, offset, length, pos, remain, blockRemain, bytesRead) { - if (bytesRead <= 0 && remain > 0) { - const er = new Error('encountered unexpected EOF') - er.path = this.absolute - er.syscall = 'read' - er.code = 'EOF' - return this[CLOSE](fd, () => this.emit('error', er)) + +class Engine { + constructor(config = _config_json__WEBPACK_IMPORTED_MODULE_3__) { + this.config = config; + } + getPackageManagerFor(binaryName) { + for (const packageManager of _types__WEBPACK_IMPORTED_MODULE_7__.SupportedPackageManagerSet) { + for (const rangeDefinition of Object.values(this.config.definitions[packageManager].ranges)) { + const bins = Array.isArray(rangeDefinition.bin) + ? rangeDefinition.bin + : Object.keys(rangeDefinition.bin); + if (bins.includes(binaryName)) { + return packageManager; + } + } + } + return null; + } + getBinariesFor(name) { + const binNames = new Set(); + for (const rangeDefinition of Object.values(this.config.definitions[name].ranges)) { + const bins = Array.isArray(rangeDefinition.bin) + ? rangeDefinition.bin + : Object.keys(rangeDefinition.bin); + for (const name of bins) { + binNames.add(name); + } + } + return binNames; + } + async getDefaultDescriptors() { + const locators = []; + for (const name of _types__WEBPACK_IMPORTED_MODULE_7__.SupportedPackageManagerSet) + locators.push({ name, range: await this.getDefaultVersion(name) }); + return locators; + } + async getDefaultVersion(packageManager) { + const definition = this.config.definitions[packageManager]; + if (typeof definition === `undefined`) + throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`This package manager (${packageManager}) isn't supported by this corepack build`); + let lastKnownGood; + try { + lastKnownGood = JSON.parse(await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.readFile(this.getLastKnownGoodFile(), `utf8`)); + } + catch (_a) { + // Ignore errors; too bad + } + if (typeof lastKnownGood !== `object` || lastKnownGood === null) + return definition.default; + if (!Object.prototype.hasOwnProperty.call(lastKnownGood, packageManager)) + return definition.default; + const override = lastKnownGood[packageManager]; + if (typeof override !== `string`) + return definition.default; + return override; } - - if (bytesRead > remain) { - const er = new Error('did not encounter expected EOF') - er.path = this.absolute - er.syscall = 'read' - er.code = 'EOF' - return this[CLOSE](fd, () => this.emit('error', er)) + async activatePackageManager(locator) { + const lastKnownGoodFile = this.getLastKnownGoodFile(); + let lastKnownGood; + try { + lastKnownGood = JSON.parse(await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.readFile(lastKnownGoodFile, `utf8`)); + } + catch (_a) { + // Ignore errors; too bad + } + if (typeof lastKnownGood !== `object` || lastKnownGood === null) + lastKnownGood = {}; + lastKnownGood[locator.name] = locator.reference; + await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.mkdir(path__WEBPACK_IMPORTED_MODULE_1___default().dirname(lastKnownGoodFile), { recursive: true }); + await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.writeFile(lastKnownGoodFile, `${JSON.stringify(lastKnownGood, null, 2)}\n`); } - - // null out the rest of the buffer, if we could fit the block padding - if (bytesRead === remain) { - for (let i = bytesRead; i < length && bytesRead < blockRemain; i++) { - buf[i + offset] = 0 - bytesRead ++ - remain ++ - } + async ensurePackageManager(locator) { + const definition = this.config.definitions[locator.name]; + if (typeof definition === `undefined`) + throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`This package manager (${locator.name}) isn't supported by this corepack build`); + const ranges = Object.keys(definition.ranges).reverse(); + const range = ranges.find(range => _semverUtils__WEBPACK_IMPORTED_MODULE_6__.satisfiesWithPrereleases(locator.reference, range)); + if (typeof range === `undefined`) + throw new Error(`Assertion failed: Specified resolution (${locator.reference}) isn't supported by any of ${ranges.join(`, `)}`); + const installedLocation = await _corepackUtils__WEBPACK_IMPORTED_MODULE_4__.installVersion(_folderUtils__WEBPACK_IMPORTED_MODULE_5__.getInstallFolder(), locator, { + spec: definition.ranges[range], + }); + return { + location: installedLocation, + spec: definition.ranges[range], + }; } - - const writeBuf = offset === 0 && bytesRead === buf.length ? - buf : buf.slice(offset, offset + bytesRead) - remain -= bytesRead - blockRemain -= bytesRead - pos += bytesRead - offset += bytesRead - - this.write(writeBuf) - - if (!remain) { - if (blockRemain) - this.write(Buffer.alloc(blockRemain)) - return this[CLOSE](fd, er => er ? this.emit('error', er) : this.end()) + async resolveDescriptor(descriptor, { allowTags = false, useCache = true } = {}) { + const definition = this.config.definitions[descriptor.name]; + if (typeof definition === `undefined`) + throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`This package manager (${descriptor.name}) isn't supported by this corepack build`); + let finalDescriptor = descriptor; + if (descriptor.range.match(/^[a-z-]+$/)) { + if (!allowTags) + throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`Packages managers can't be referended via tags in this context`); + // We only resolve tags from the latest registry entry + const ranges = Object.keys(definition.ranges); + const tagRange = ranges[ranges.length - 1]; + const tags = await _corepackUtils__WEBPACK_IMPORTED_MODULE_4__.fetchAvailableTags(definition.ranges[tagRange].registry); + if (!Object.prototype.hasOwnProperty.call(tags, descriptor.range)) + throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`Tag not found (${descriptor.range})`); + finalDescriptor = { + name: descriptor.name, + range: tags[descriptor.range], + }; + } + // If a compatible version is already installed, no need to query one + // from the remote listings + const cachedVersion = await _corepackUtils__WEBPACK_IMPORTED_MODULE_4__.findInstalledVersion(_folderUtils__WEBPACK_IMPORTED_MODULE_5__.getInstallFolder(), finalDescriptor); + if (cachedVersion !== null && useCache) + return { name: finalDescriptor.name, reference: cachedVersion }; + const candidateRangeDefinitions = Object.keys(definition.ranges).filter(range => { + return _semverUtils__WEBPACK_IMPORTED_MODULE_6__.satisfiesWithPrereleases(finalDescriptor.range, range); + }); + const tagResolutions = await Promise.all(candidateRangeDefinitions.map(async (range) => { + return [range, await _corepackUtils__WEBPACK_IMPORTED_MODULE_4__.fetchAvailableVersions(definition.ranges[range].registry)]; + })); + // If a version is available under multiple strategies (for example if + // Yarn is published to both the v1 package and git), we only care + // about the latest one + const resolutionMap = new Map(); + for (const [range, resolutions] of tagResolutions) + for (const entry of resolutions) + resolutionMap.set(entry, range); + const candidates = [...resolutionMap.keys()]; + const maxSatisfying = semver__WEBPACK_IMPORTED_MODULE_2___default().maxSatisfying(candidates, finalDescriptor.range); + if (maxSatisfying === null) + return null; + return { name: finalDescriptor.name, reference: maxSatisfying }; } - - if (offset >= length) { - buf = Buffer.allocUnsafe(length) - offset = 0 + getLastKnownGoodFile() { + return path__WEBPACK_IMPORTED_MODULE_1___default().join(_folderUtils__WEBPACK_IMPORTED_MODULE_5__.getInstallFolder(), `lastKnownGood.json`); } - length = buf.length - offset - this[READ](fd, buf, offset, length, pos, remain, blockRemain) - } -}) - -class WriteEntrySync extends WriteEntry { - constructor (path, opt) { - super(path, opt) - } - - [LSTAT] () { - this[ONLSTAT](fs.lstatSync(this.absolute)) - } +} - [SYMLINK] () { - this[ONREADLINK](fs.readlinkSync(this.absolute)) - } - [OPENFILE] () { - this[ONOPENFILE](fs.openSync(this.absolute, 'r')) - } +/***/ }), - [READ] (fd, buf, offset, length, pos, remain, blockRemain) { - let threw = true - try { - const bytesRead = fs.readSync(fd, buf, offset, length, pos) - this[ONREAD](fd, buf, offset, length, pos, remain, blockRemain, bytesRead) - threw = false - } finally { - // ignoring the error from close(2) is a bad practice, but at - // this point we already have an error, don't need another one - if (threw) - try { this[CLOSE](fd, () => {}) } catch (er) {} - } - } +/***/ "./sources/commands/Disable.ts": +/*!*************************************!*\ + !*** ./sources/commands/Disable.ts ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - [CLOSE] (fd, cb) { - fs.closeSync(fd) - cb() - } -} +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "DisableCommand": () => (/* binding */ DisableCommand) +/* harmony export */ }); +/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var which__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! which */ "../../../.yarn/berry/cache/which-npm-2.0.2-320ddf72f7-9.zip/node_modules/which/which.js"); +/* harmony import */ var which__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(which__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../types */ "./sources/types.ts"); -const WriteEntryTar = warner(class WriteEntryTar extends MiniPass { - constructor (readEntry, opt) { - opt = opt || {} - super(opt) - this.preservePaths = !!opt.preservePaths - this.portable = !!opt.portable - this.strict = !!opt.strict - this.noPax = !!opt.noPax - this.noMtime = !!opt.noMtime - this.readEntry = readEntry - this.type = readEntry.type - if (this.type === 'Directory' && this.portable) - this.noMtime = true - this.path = readEntry.path - this.mode = this[MODE](readEntry.mode) - this.uid = this.portable ? null : readEntry.uid - this.gid = this.portable ? null : readEntry.gid - this.uname = this.portable ? null : readEntry.uname - this.gname = this.portable ? null : readEntry.gname - this.size = readEntry.size - this.mtime = this.noMtime ? null : opt.mtime || readEntry.mtime - this.atime = this.portable ? null : readEntry.atime - this.ctime = this.portable ? null : readEntry.ctime - this.linkpath = readEntry.linkpath - if (typeof opt.onwarn === 'function') - this.on('warn', opt.onwarn) - let pathWarn = false - if (path.isAbsolute(this.path) && !this.preservePaths) { - const parsed = path.parse(this.path) - pathWarn = parsed.root - this.path = this.path.substr(parsed.root.length) +class DisableCommand extends clipanion__WEBPACK_IMPORTED_MODULE_4__.Command { + constructor() { + super(...arguments); + this.installDirectory = clipanion__WEBPACK_IMPORTED_MODULE_4__.Option.String(`--install-directory`, { + description: `Where the shims are located`, + }); + this.names = clipanion__WEBPACK_IMPORTED_MODULE_4__.Option.Rest(); } - - this.remain = readEntry.size - this.blockRemain = readEntry.startBlockSize - - this.header = new Header({ - path: this.path, - linkpath: this.linkpath, - // only the permissions and setuid/setgid/sticky bitflags - // not the higher-order bits that specify file type - mode: this.mode, - uid: this.portable ? null : this.uid, - gid: this.portable ? null : this.gid, - size: this.size, - mtime: this.noMtime ? null : this.mtime, - type: this.type, - uname: this.portable ? null : this.uname, - atime: this.portable ? null : this.atime, - ctime: this.portable ? null : this.ctime - }) - - if (pathWarn) { - this.warn('TAR_ENTRY_INFO', `stripping ${pathWarn} from absolute path`, { - entry: this, - path: pathWarn + this.path, - }) + async execute() { + let installDirectory = this.installDirectory; + // Node always call realpath on the module it executes, so we already + // lost track of how the binary got called. To find it back, we need to + // iterate over the PATH variable. + if (typeof installDirectory === `undefined`) + installDirectory = path__WEBPACK_IMPORTED_MODULE_1___default().dirname(await which__WEBPACK_IMPORTED_MODULE_2___default()(`corepack`)); + const names = this.names.length === 0 + ? _types__WEBPACK_IMPORTED_MODULE_3__.SupportedPackageManagerSetWithoutNpm + : this.names; + for (const name of new Set(names)) { + if (!(0,_types__WEBPACK_IMPORTED_MODULE_3__.isSupportedPackageManager)(name)) + throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Invalid package manager name '${name}'`); + for (const binName of this.context.engine.getBinariesFor(name)) { + if (process.platform === `win32`) { + await this.removeWin32Link(installDirectory, binName); + } + else { + await this.removePosixLink(installDirectory, binName); + } + } + } } + async removePosixLink(installDirectory, binName) { + const file = path__WEBPACK_IMPORTED_MODULE_1___default().join(installDirectory, binName); + try { + await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.unlink(file); + } + catch (err) { + if (err.code !== `ENOENT`) { + throw err; + } + } + } + async removeWin32Link(installDirectory, binName) { + for (const ext of [``, `.ps1`, `.cmd`]) { + const file = path__WEBPACK_IMPORTED_MODULE_1___default().join(installDirectory, `${binName}${ext}`); + try { + await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.unlink(file); + } + catch (err) { + if (err.code !== `ENOENT`) { + throw err; + } + } + } + } +} +DisableCommand.paths = [ + [`disable`], +]; +DisableCommand.usage = clipanion__WEBPACK_IMPORTED_MODULE_4__.Command.Usage({ + description: `Remove the Corepack shims from the install directory`, + details: ` + When run, this command will remove the shims for the specified package managers from the install directory, or all shims if no parameters are passed. - if (this.header.encode() && !this.noPax) - super.write(new Pax({ - atime: this.portable ? null : this.atime, - ctime: this.portable ? null : this.ctime, - gid: this.portable ? null : this.gid, - mtime: this.noMtime ? null : this.mtime, - path: this.path, - linkpath: this.linkpath, - size: this.size, - uid: this.portable ? null : this.uid, - uname: this.portable ? null : this.uname, - dev: this.portable ? null : this.readEntry.dev, - ino: this.portable ? null : this.readEntry.ino, - nlink: this.portable ? null : this.readEntry.nlink - }).encode()) - - super.write(this.header.block) - readEntry.pipe(this) - } - - [MODE] (mode) { - return modeFix(mode, this.type === 'Directory', this.portable) - } - - write (data) { - const writeLen = data.length - if (writeLen > this.blockRemain) - throw new Error('writing more to entry than is appropriate') - this.blockRemain -= writeLen - return super.write(data) - } + By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--install-directory\` flag. + `, + examples: [[ + `Disable all shims, removing them if they're next to the \`coreshim\` binary`, + `$0 disable`, + ], [ + `Disable all shims, removing them from the specified directory`, + `$0 disable --install-directory /path/to/bin`, + ], [ + `Disable the Yarn shim only`, + `$0 disable yarn`, + ]], +}); - end () { - if (this.blockRemain) - this.write(Buffer.alloc(this.blockRemain)) - return super.end() - } -}) -WriteEntry.Sync = WriteEntrySync -WriteEntry.Tar = WriteEntryTar +/***/ }), -const getType = stat => - stat.isFile() ? 'File' - : stat.isDirectory() ? 'Directory' - : stat.isSymbolicLink() ? 'SymbolicLink' - : 'Unsupported' +/***/ "./sources/commands/Enable.ts": +/*!************************************!*\ + !*** ./sources/commands/Enable.ts ***! + \************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -module.exports = WriteEntry +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "EnableCommand": () => (/* binding */ EnableCommand) +/* harmony export */ }); +/* harmony import */ var _zkochan_cmd_shim__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @zkochan/cmd-shim */ "../../../.yarn/berry/cache/@zkochan-cmd-shim-npm-5.2.2-ae7b6d5b86-9.zip/node_modules/@zkochan/cmd-shim/index.js"); +/* harmony import */ var _zkochan_cmd_shim__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_zkochan_cmd_shim__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ "fs"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ "path"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var which__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! which */ "../../../.yarn/berry/cache/which-npm-2.0.2-320ddf72f7-9.zip/node_modules/which/which.js"); +/* harmony import */ var which__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(which__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _nodeUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../nodeUtils */ "./sources/nodeUtils.ts"); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../types */ "./sources/types.ts"); -/***/ }), -/***/ "./.yarn/cache/typanion-npm-3.3.1-ee9997c7cf-212d2beb55.zip/node_modules/typanion/lib/index.js": -/*!*****************************************************************************************************!*\ - !*** ./.yarn/cache/typanion-npm-3.3.1-ee9997c7cf-212d2beb55.zip/node_modules/typanion/lib/index.js ***! - \*****************************************************************************************************/ -/***/ ((__unused_webpack_module, exports) => { -"use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const simpleKeyRegExp = /^[a-zA-Z_][a-zA-Z0-9_]*$/; -const colorStringRegExp = /^#[0-9a-f]{6}$/i; -const colorStringAlphaRegExp = /^#[0-9a-f]{6}([0-9a-f]{2})?$/i; -// https://stackoverflow.com/a/475217/880703 -const base64RegExp = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/; -// https://stackoverflow.com/a/14166194/880703 -const uuid4RegExp = /^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i; -// https://stackoverflow.com/a/28022901/880703 + https://www.debuggex.com/r/bl8J35wMKk48a7u_ -const iso8601RegExp = /^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/; -const makeTrait = (value) => () => { - return value; -}; -function makeValidator({ test }) { - return makeTrait(test)(); -} -function getPrintable(value) { - if (value === null) - return `null`; - if (value === undefined) - return `undefined`; - if (value === ``) - return `an empty string`; - return JSON.stringify(value); -} -function computeKey(state, key) { - var _a, _b, _c; - if (typeof key === `number`) { - return `${(_a = state === null || state === void 0 ? void 0 : state.p) !== null && _a !== void 0 ? _a : `.`}[${key}]`; - } - else if (simpleKeyRegExp.test(key)) { - return `${(_b = state === null || state === void 0 ? void 0 : state.p) !== null && _b !== void 0 ? _b : ``}.${key}`; - } - else { - return `${(_c = state === null || state === void 0 ? void 0 : state.p) !== null && _c !== void 0 ? _c : `.`}[${JSON.stringify(key)}]`; +class EnableCommand extends clipanion__WEBPACK_IMPORTED_MODULE_6__.Command { + constructor() { + super(...arguments); + this.installDirectory = clipanion__WEBPACK_IMPORTED_MODULE_6__.Option.String(`--install-directory`, { + description: `Where the shims are to be installed`, + }); + this.names = clipanion__WEBPACK_IMPORTED_MODULE_6__.Option.Rest(); } -} -function makeCoercionFn(target, key) { - return (v) => { - const previous = target[key]; - target[key] = v; - return makeCoercionFn(target, key).bind(null, previous); - }; -} -function makeSetter(target, key) { - return (v) => { - target[key] = v; - }; -} -function plural(n, singular, plural) { - return n === 1 ? singular : plural; -} -function pushError({ errors, p } = {}, message) { - errors === null || errors === void 0 ? void 0 : errors.push(`${p !== null && p !== void 0 ? p : `.`}: ${message}`); - return false; -} -const isUnknown = () => makeValidator({ - test: (value, state) => { - return true; - }, -}); -function isLiteral(expected) { - return makeValidator({ - test: (value, state) => { - if (value !== expected) - return pushError(state, `Expected a literal (got ${getPrintable(expected)})`); - return true; - }, - }); -} -const isString = () => makeValidator({ - test: (value, state) => { - if (typeof value !== `string`) - return pushError(state, `Expected a string (got ${getPrintable(value)})`); - return true; - }, -}); -function isEnum(enumSpec) { - const valuesArray = Array.isArray(enumSpec) ? enumSpec : Object.values(enumSpec); - const values = new Set(valuesArray); - return makeValidator({ - test: (value, state) => { - if (!values.has(value)) - return pushError(state, `Expected a valid enumeration value (got ${getPrintable(value)})`); - return true; - }, - }); -} -const BOOLEAN_COERCIONS = new Map([ - [`true`, true], - [`True`, true], - [`1`, true], - [1, true], - [`false`, false], - [`False`, false], - [`0`, false], - [0, false], -]); -const isBoolean = () => makeValidator({ - test: (value, state) => { - var _a; - if (typeof value !== `boolean`) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) - return pushError(state, `Unbound coercion result`); - const coercion = BOOLEAN_COERCIONS.get(value); - if (typeof coercion !== `undefined`) { - state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, coercion)]); - return true; - } - } - return pushError(state, `Expected a boolean (got ${getPrintable(value)})`); - } - return true; - }, -}); -const isNumber = () => makeValidator({ - test: (value, state) => { - var _a; - if (typeof value !== `number`) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) - return pushError(state, `Unbound coercion result`); - let coercion; - if (typeof value === `string`) { - let val; - try { - val = JSON.parse(value); - } - catch (_b) { } - // We check against JSON.stringify that the output is the same to ensure that the number can be safely represented in JS - if (typeof val === `number`) { - if (JSON.stringify(val) === value) { - coercion = val; - } - else { - return pushError(state, `Received a number that can't be safely represented by the runtime (${value})`); - } - } - } - if (typeof coercion !== `undefined`) { - state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, coercion)]); - return true; - } - } - return pushError(state, `Expected a number (got ${getPrintable(value)})`); - } - return true; - }, -}); -const isDate = () => makeValidator({ - test: (value, state) => { - var _a; - if (!(value instanceof Date)) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) - return pushError(state, `Unbound coercion result`); - let coercion; - if (typeof value === `string` && iso8601RegExp.test(value)) { - coercion = new Date(value); - } - else { - let timestamp; - if (typeof value === `string`) { - let val; - try { - val = JSON.parse(value); - } - catch (_b) { } - if (typeof val === `number`) { - timestamp = val; - } - } - else if (typeof value === `number`) { - timestamp = value; - } - if (typeof timestamp !== `undefined`) { - if (Number.isSafeInteger(timestamp) || !Number.isSafeInteger(timestamp * 1000)) { - coercion = new Date(timestamp * 1000); - } - else { - return pushError(state, `Received a timestamp that can't be safely represented by the runtime (${value})`); - } - } - } - if (typeof coercion !== `undefined`) { - state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, coercion)]); - return true; - } - } - return pushError(state, `Expected a date (got ${getPrintable(value)})`); - } - return true; - }, -}); -const isArray = (spec, { delimiter } = {}) => makeValidator({ - test: (value, state) => { - var _a; - if (typeof value === `string` && typeof delimiter !== `undefined`) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) - return pushError(state, `Unbound coercion result`); - value = value.split(delimiter); - state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, value)]); - } - } - if (!Array.isArray(value)) - return pushError(state, `Expected an array (got ${getPrintable(value)})`); - let valid = true; - for (let t = 0, T = value.length; t < T; ++t) { - valid = spec(value[t], Object.assign(Object.assign({}, state), { p: computeKey(state, t), coercion: makeCoercionFn(value, t) })) && valid; - if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { - break; - } - } - return valid; - }, -}); -const isTuple = (spec, { delimiter } = {}) => { - const lengthValidator = hasExactLength(spec.length); - return makeValidator({ - test: (value, state) => { - var _a; - if (typeof value === `string` && typeof delimiter !== `undefined`) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) - return pushError(state, `Unbound coercion result`); - value = value.split(delimiter); - state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, value)]); + async execute() { + let installDirectory = this.installDirectory; + // Node always call realpath on the module it executes, so we already + // lost track of how the binary got called. To find it back, we need to + // iterate over the PATH variable. + if (typeof installDirectory === `undefined`) + installDirectory = path__WEBPACK_IMPORTED_MODULE_2___default().dirname(await which__WEBPACK_IMPORTED_MODULE_3___default()(`corepack`)); + // Otherwise the relative symlink we'll compute will be incorrect, if the + // install directory is within a symlink + installDirectory = fs__WEBPACK_IMPORTED_MODULE_1___default().realpathSync(installDirectory); + // We use `eval` so that Webpack doesn't statically transform it. + const manifestPath = _nodeUtils__WEBPACK_IMPORTED_MODULE_4__.dynamicRequire.resolve(`corepack/package.json`); + const distFolder = path__WEBPACK_IMPORTED_MODULE_2___default().join(path__WEBPACK_IMPORTED_MODULE_2___default().dirname(manifestPath), `dist`); + if (!fs__WEBPACK_IMPORTED_MODULE_1___default().existsSync(distFolder)) + throw new Error(`Assertion failed: The stub folder doesn't exist`); + const names = this.names.length === 0 + ? _types__WEBPACK_IMPORTED_MODULE_5__.SupportedPackageManagerSetWithoutNpm + : this.names; + for (const name of new Set(names)) { + if (!(0,_types__WEBPACK_IMPORTED_MODULE_5__.isSupportedPackageManager)(name)) + throw new clipanion__WEBPACK_IMPORTED_MODULE_6__.UsageError(`Invalid package manager name '${name}'`); + for (const binName of this.context.engine.getBinariesFor(name)) { + if (process.platform === `win32`) { + await this.generateWin32Link(installDirectory, distFolder, binName); } - } - if (!Array.isArray(value)) - return pushError(state, `Expected a tuple (got ${getPrintable(value)})`); - let valid = lengthValidator(value, Object.assign({}, state)); - for (let t = 0, T = value.length; t < T && t < spec.length; ++t) { - valid = spec[t](value[t], Object.assign(Object.assign({}, state), { p: computeKey(state, t), coercion: makeCoercionFn(value, t) })) && valid; - if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { - break; + else { + await this.generatePosixLink(installDirectory, distFolder, binName); } } - return valid; - }, - }); -}; -const isDict = (spec, { keys: keySpec = null, } = {}) => makeValidator({ - test: (value, state) => { - if (typeof value !== `object` || value === null) - return pushError(state, `Expected an object (got ${getPrintable(value)})`); - const keys = Object.keys(value); - let valid = true; - for (let t = 0, T = keys.length; t < T && (valid || (state === null || state === void 0 ? void 0 : state.errors) != null); ++t) { - const key = keys[t]; - const sub = value[key]; - if (key === `__proto__` || key === `constructor`) { - valid = pushError(Object.assign(Object.assign({}, state), { p: computeKey(state, key) }), `Unsafe property name`); - continue; - } - if (keySpec !== null && !keySpec(key, state)) { - valid = false; - continue; + } + } + async generatePosixLink(installDirectory, distFolder, binName) { + const file = path__WEBPACK_IMPORTED_MODULE_2___default().join(installDirectory, binName); + const symlink = path__WEBPACK_IMPORTED_MODULE_2___default().relative(installDirectory, path__WEBPACK_IMPORTED_MODULE_2___default().join(distFolder, `${binName}.js`)); + if (fs__WEBPACK_IMPORTED_MODULE_1___default().existsSync(file)) { + const currentSymlink = await fs__WEBPACK_IMPORTED_MODULE_1___default().promises.readlink(file); + if (currentSymlink !== symlink) { + await fs__WEBPACK_IMPORTED_MODULE_1___default().promises.unlink(file); } - if (!spec(sub, Object.assign(Object.assign({}, state), { p: computeKey(state, key), coercion: makeCoercionFn(value, key) }))) { - valid = false; - continue; + else { + return; } } - return valid; - }, + await fs__WEBPACK_IMPORTED_MODULE_1___default().promises.symlink(symlink, file); + } + async generateWin32Link(installDirectory, distFolder, binName) { + const file = path__WEBPACK_IMPORTED_MODULE_2___default().join(installDirectory, binName); + await _zkochan_cmd_shim__WEBPACK_IMPORTED_MODULE_0___default()(path__WEBPACK_IMPORTED_MODULE_2___default().join(distFolder, `${binName}.js`), file, { + createCmdFile: true, + }); + } +} +EnableCommand.paths = [ + [`enable`], +]; +EnableCommand.usage = clipanion__WEBPACK_IMPORTED_MODULE_6__.Command.Usage({ + description: `Add the Corepack shims to the install directories`, + details: ` + When run, this commmand will check whether the shims for the specified package managers can be found with the correct values inside the install directory. If not, or if they don't exist, they will be created. + + By default it will locate the install directory by running the equivalent of \`which corepack\`, but this can be tweaked by explicitly passing the install directory via the \`--install-directory\` flag. + `, + examples: [[ + `Enable all shims, putting them next to the \`corepath\` binary`, + `$0 enable`, + ], [ + `Enable all shims, putting them in the specified directory`, + `$0 enable --install-directory /path/to/folder`, + ], [ + `Enable the Yarn shim only`, + `$0 enable yarn`, + ]], }); -const isObject = (props, { extra: extraSpec = null, } = {}) => { - const specKeys = Object.keys(props); - return makeValidator({ - test: (value, state) => { - if (typeof value !== `object` || value === null) - return pushError(state, `Expected an object (got ${getPrintable(value)})`); - const keys = new Set([...specKeys, ...Object.keys(value)]); - const extra = {}; - let valid = true; - for (const key of keys) { - if (key === `constructor` || key === `__proto__`) { - valid = pushError(Object.assign(Object.assign({}, state), { p: computeKey(state, key) }), `Unsafe property name`); + + +/***/ }), + +/***/ "./sources/commands/Hydrate.ts": +/*!*************************************!*\ + !*** ./sources/commands/Hydrate.ts ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "HydrateCommand": () => (/* binding */ HydrateCommand) +/* harmony export */ }); +/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ "path"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _folderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../folderUtils */ "./sources/folderUtils.ts"); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../types */ "./sources/types.ts"); + + + + +class HydrateCommand extends clipanion__WEBPACK_IMPORTED_MODULE_3__.Command { + constructor() { + super(...arguments); + this.activate = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Boolean(`--activate`, false, { + description: `If true, this release will become the default one for this package manager`, + }); + this.fileName = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.String(); + } + async execute() { + const installFolder = _folderUtils__WEBPACK_IMPORTED_MODULE_1__.getInstallFolder(); + const fileName = path__WEBPACK_IMPORTED_MODULE_0___default().resolve(this.context.cwd, this.fileName); + const archiveEntries = new Map(); + let hasShortEntries = false; + const { default: tar } = await Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! tar */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/index.js", 19)); + await tar.t({ file: fileName, onentry: entry => { + const segments = entry.header.path.split(/\//g); + if (segments.length < 3) { + hasShortEntries = true; } else { - const spec = Object.prototype.hasOwnProperty.call(props, key) - ? props[key] - : undefined; - const sub = Object.prototype.hasOwnProperty.call(value, key) - ? value[key] - : undefined; - if (typeof spec !== `undefined`) { - valid = spec(sub, Object.assign(Object.assign({}, state), { p: computeKey(state, key), coercion: makeCoercionFn(value, key) })) && valid; - } - else if (extraSpec === null) { - valid = pushError(Object.assign(Object.assign({}, state), { p: computeKey(state, key) }), `Extraneous property (got ${getPrintable(sub)})`); - } - else { - Object.defineProperty(extra, key, { - enumerable: true, - get: () => sub, - set: makeSetter(value, key) - }); - } + let references = archiveEntries.get(segments[0]); + if (typeof references === `undefined`) + archiveEntries.set(segments[0], references = new Set()); + references.add(segments[1]); } - if (!valid && (state === null || state === void 0 ? void 0 : state.errors) == null) { - break; + } }); + if (hasShortEntries || archiveEntries.size < 1) + throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`Invalid archive format; did it get generated by 'corepack prepare'?`); + for (const [name, references] of archiveEntries) { + for (const reference of references) { + if (!(0,_types__WEBPACK_IMPORTED_MODULE_2__.isSupportedPackageManager)(name)) + throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`Unsupported package manager '${name}'`); + if (this.activate) + this.context.stdout.write(`Hydrating ${name}@${reference} for immediate activation...\n`); + else + this.context.stdout.write(`Hydrating ${name}@${reference}...\n`); + await tar.x({ file: fileName, cwd: installFolder }, [`${name}/${reference}`]); + if (this.activate) { + await this.context.engine.activatePackageManager({ name, reference }); } } - if (extraSpec !== null && (valid || (state === null || state === void 0 ? void 0 : state.errors) != null)) - valid = extraSpec(extra, state) && valid; - return valid; - }, - }); -}; -const isInstanceOf = (constructor) => makeValidator({ - test: (value, state) => { - if (!(value instanceof constructor)) - return pushError(state, `Expected an instance of ${constructor.name} (got ${getPrintable(value)})`); - return true; - }, + } + this.context.stdout.write(`All done!\n`); + } +} +HydrateCommand.paths = [ + [`hydrate`], +]; +HydrateCommand.usage = clipanion__WEBPACK_IMPORTED_MODULE_3__.Command.Usage({ + description: `Import a package manager into the cache`, + details: ` + This command unpacks a package manager archive into the cache. The archive must have been generated by the \`corepack prepare\` command - no other will work. + `, + examples: [[ + `Import a package manager in the cache`, + `$0 hydrate corepack.tgz`, + ]], }); -const isOneOf = (specs, { exclusive = false, } = {}) => makeValidator({ - test: (value, state) => { - var _a, _b, _c; - const matches = []; - const errorBuffer = typeof (state === null || state === void 0 ? void 0 : state.errors) !== `undefined` - ? [] : undefined; - for (let t = 0, T = specs.length; t < T; ++t) { - const subErrors = typeof (state === null || state === void 0 ? void 0 : state.errors) !== `undefined` - ? [] : undefined; - const subCoercions = typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined` - ? [] : undefined; - if (specs[t](value, Object.assign(Object.assign({}, state), { errors: subErrors, coercions: subCoercions, p: `${(_a = state === null || state === void 0 ? void 0 : state.p) !== null && _a !== void 0 ? _a : `.`}#${t + 1}` }))) { - matches.push([`#${t + 1}`, subCoercions]); - if (!exclusive) { - break; + + +/***/ }), + +/***/ "./sources/commands/Prepare.ts": +/*!*************************************!*\ + !*** ./sources/commands/Prepare.ts ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "PrepareCommand": () => (/* binding */ PrepareCommand) +/* harmony export */ }); +/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ "path"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _folderUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../folderUtils */ "./sources/folderUtils.ts"); +/* harmony import */ var _specUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../specUtils */ "./sources/specUtils.ts"); + + + + +class PrepareCommand extends clipanion__WEBPACK_IMPORTED_MODULE_3__.Command { + constructor() { + super(...arguments); + this.activate = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Boolean(`--activate`, false, { + description: `If true, this release will become the default one for this package manager`, + }); + this.all = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Boolean(`--all`, false, { + description: `If true, all available default package managers will be installed`, + }); + this.json = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Boolean(`--json`, false, { + description: `If true, the output will be the path of the generated tarball`, + }); + this.output = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.String(`-o,--output`, { + description: `If true, the installed package managers will also be stored in a tarball`, + tolerateBoolean: true, + }); + this.specs = clipanion__WEBPACK_IMPORTED_MODULE_3__.Option.Rest(); + } + async execute() { + if (this.all && this.specs.length > 0) + throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`The --all option cannot be used along with an explicit package manager specification`); + const specs = this.all + ? await this.context.engine.getDefaultDescriptors() + : this.specs; + const installLocations = []; + if (specs.length === 0) { + const lookup = await _specUtils__WEBPACK_IMPORTED_MODULE_2__.loadSpec(this.context.cwd); + switch (lookup.type) { + case `NoProject`: + throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`Couldn't find a project in the local directory - please explicit the package manager to pack, or run this command from a valid project`); + case `NoSpec`: + throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`The local project doesn't feature a 'packageManager' field - please explicit the package manager to pack, or update the manifest to reference it`); + default: { + specs.push(lookup.spec); + } + } + } + for (const request of specs) { + const spec = typeof request === `string` + ? _specUtils__WEBPACK_IMPORTED_MODULE_2__.parseSpec(request, `CLI arguments`) + : request; + const resolved = await this.context.engine.resolveDescriptor(spec); + if (resolved === null) + throw new clipanion__WEBPACK_IMPORTED_MODULE_3__.UsageError(`Failed to successfully resolve '${spec.range}' to a valid ${spec.name} release`); + if (!this.json) { + if (this.activate) { + this.context.stdout.write(`Preparing ${spec.name}@${spec.range} for immediate activation...\n`); + } + else { + this.context.stdout.write(`Preparing ${spec.name}@${spec.range}...\n`); } } - else { - errorBuffer === null || errorBuffer === void 0 ? void 0 : errorBuffer.push(subErrors[0]); + const installSpec = await this.context.engine.ensurePackageManager(resolved); + installLocations.push(installSpec.location); + if (this.activate) { + await this.context.engine.activatePackageManager(resolved); } } - if (matches.length === 1) { - const [, subCoercions] = matches[0]; - if (typeof subCoercions !== `undefined`) - (_b = state === null || state === void 0 ? void 0 : state.coercions) === null || _b === void 0 ? void 0 : _b.push(...subCoercions); - return true; + if (this.output) { + const outputName = typeof this.output === `string` + ? this.output + : `corepack.tgz`; + const baseInstallFolder = _folderUtils__WEBPACK_IMPORTED_MODULE_1__.getInstallFolder(); + const outputPath = path__WEBPACK_IMPORTED_MODULE_0___default().resolve(this.context.cwd, outputName); + if (!this.json) + this.context.stdout.write(`Packing the selected tools in ${path__WEBPACK_IMPORTED_MODULE_0___default().basename(outputPath)}...\n`); + const { default: tar } = await Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! tar */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/index.js", 19)); + await tar.c({ gzip: true, cwd: baseInstallFolder, file: path__WEBPACK_IMPORTED_MODULE_0___default().resolve(outputPath) }, installLocations.map(location => { + return path__WEBPACK_IMPORTED_MODULE_0___default().relative(baseInstallFolder, location); + })); + if (this.json) { + this.context.stdout.write(`${JSON.stringify(outputPath)}\n`); + } + else { + this.context.stdout.write(`All done!\n`); + } } - if (matches.length > 1) - pushError(state, `Expected to match exactly a single predicate (matched ${matches.join(`, `)})`); - else - (_c = state === null || state === void 0 ? void 0 : state.errors) === null || _c === void 0 ? void 0 : _c.push(...errorBuffer); - return false; - }, + } +} +PrepareCommand.paths = [ + [`prepare`], +]; +PrepareCommand.usage = clipanion__WEBPACK_IMPORTED_MODULE_3__.Command.Usage({ + description: `Generate a package manager archive`, + details: ` + This command makes sure that the specified package managers are installed in the local cache. Calling this command explicitly unless you operate in an environment without network access (in which case you'd have to call \`prepare\` while building your image, to make sure all tools are available for later use). + + When the \`-o,--output\` flag is set, Corepack will also compress the resulting package manager into a format suitable for \`corepack hydrate\`, and will store it at the specified location on the disk. + `, + examples: [[ + `Prepare the package manager from the active project`, + `$0 prepare`, + ], [ + `Prepare a specific Yarn version`, + `$0 prepare yarn@2.2.2`, + ], [ + `Generate an archive for a specific Yarn version`, + `$0 prepare yarn@2.2.2 -o`, + ], [ + `Generate a named archive`, + `$0 prepare yarn@2.2.2 --output=yarn.tgz`, + ]], }); -const applyCascade = (spec, followups) => makeValidator({ - test: (value, state) => { - var _a, _b; - const context = { value: value }; - const subCoercion = typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined` - ? makeCoercionFn(context, `value`) : undefined; - const subCoercions = typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined` - ? [] : undefined; - if (!spec(value, Object.assign(Object.assign({}, state), { coercion: subCoercion, coercions: subCoercions }))) - return false; - const reverts = []; - if (typeof subCoercions !== `undefined`) - for (const [, coercion] of subCoercions) - reverts.push(coercion()); - try { - if (typeof (state === null || state === void 0 ? void 0 : state.coercions) !== `undefined`) { - if (context.value !== value) { - if (typeof (state === null || state === void 0 ? void 0 : state.coercion) === `undefined`) - return pushError(state, `Unbound coercion result`); - state.coercions.push([(_a = state.p) !== null && _a !== void 0 ? _a : `.`, state.coercion.bind(null, context.value)]); - } - (_b = state === null || state === void 0 ? void 0 : state.coercions) === null || _b === void 0 ? void 0 : _b.push(...subCoercions); + + +/***/ }), + +/***/ "./sources/corepackUtils.ts": +/*!**********************************!*\ + !*** ./sources/corepackUtils.ts ***! + \**********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "fetchAvailableTags": () => (/* binding */ fetchAvailableTags), +/* harmony export */ "fetchAvailableVersions": () => (/* binding */ fetchAvailableVersions), +/* harmony export */ "findInstalledVersion": () => (/* binding */ findInstalledVersion), +/* harmony export */ "installVersion": () => (/* binding */ installVersion), +/* harmony export */ "runVersion": () => (/* binding */ runVersion) +/* harmony export */ }); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/index.js"); +/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _debugUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./debugUtils */ "./sources/debugUtils.ts"); +/* harmony import */ var _folderUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./folderUtils */ "./sources/folderUtils.ts"); +/* harmony import */ var _fsUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fsUtils */ "./sources/fsUtils.ts"); +/* harmony import */ var _httpUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./httpUtils */ "./sources/httpUtils.ts"); +/* harmony import */ var _nodeUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./nodeUtils */ "./sources/nodeUtils.ts"); + + + + + + + + +async function fetchAvailableTags(spec) { + switch (spec.type) { + case `npm`: { + const data = await _httpUtils__WEBPACK_IMPORTED_MODULE_6__.fetchAsJson(`https://registry.npmjs.org/${spec.package}`, { headers: { [`Accept`]: `application/vnd.npm.install-v1+json` } }); + return data[`dist-tags`]; + } + case `url`: { + const data = await _httpUtils__WEBPACK_IMPORTED_MODULE_6__.fetchAsJson(spec.url); + return data[spec.fields.tags]; + } + default: { + throw new Error(`Unsupported specification ${JSON.stringify(spec)}`); + } + } +} +async function fetchAvailableVersions(spec) { + switch (spec.type) { + case `npm`: { + const data = await _httpUtils__WEBPACK_IMPORTED_MODULE_6__.fetchAsJson(`https://registry.npmjs.org/${spec.package}`, { headers: { [`Accept`]: `application/vnd.npm.install-v1+json` } }); + return Object.keys(data.versions); + } + case `url`: { + const data = await _httpUtils__WEBPACK_IMPORTED_MODULE_6__.fetchAsJson(spec.url); + const field = data[spec.fields.versions]; + return Array.isArray(field) ? field : Object.keys(field); + } + default: { + throw new Error(`Unsupported specification ${JSON.stringify(spec)}`); + } + } +} +async function findInstalledVersion(installTarget, descriptor) { + const installFolder = path__WEBPACK_IMPORTED_MODULE_1___default().join(installTarget, descriptor.name); + let folderContent; + try { + folderContent = await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.readdir(installFolder); + } + catch (error) { + if (error.code === `ENOENT`) { + folderContent = []; + } + else { + throw error; + } + } + const candidateVersions = []; + for (const entry of folderContent) { + // Some dot-folders tend to pop inside directories, especially on OSX + if (entry.startsWith(`.`)) + continue; + candidateVersions.push(entry); + } + const bestMatch = semver__WEBPACK_IMPORTED_MODULE_2___default().maxSatisfying(candidateVersions, descriptor.range); + if (bestMatch === null) + return null; + return bestMatch; +} +async function installVersion(installTarget, locator, { spec }) { + const { default: tar } = await Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! tar */ "../../../.yarn/berry/cache/tar-npm-6.1.11-e6ac3cba9c-9.zip/node_modules/tar/index.js", 19)); + const installFolder = path__WEBPACK_IMPORTED_MODULE_1___default().join(installTarget, locator.name, locator.reference); + if (fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(installFolder)) { + _debugUtils__WEBPACK_IMPORTED_MODULE_3__.log(`Reusing ${locator.name}@${locator.reference}`); + return installFolder; + } + const url = spec.url.replace(`{}`, locator.reference); + // Creating a temporary folder inside the install folder means that we + // are sure it'll be in the same drive as the destination, so we can + // just move it there atomically once we are done + const tmpFolder = _folderUtils__WEBPACK_IMPORTED_MODULE_4__.getTemporaryFolder(installTarget); + _debugUtils__WEBPACK_IMPORTED_MODULE_3__.log(`Installing ${locator.name}@${locator.reference} from ${url} to ${tmpFolder}`); + const stream = await _httpUtils__WEBPACK_IMPORTED_MODULE_6__.fetchUrlStream(url); + const parsedUrl = new URL(url); + const ext = path__WEBPACK_IMPORTED_MODULE_1___default().posix.extname(parsedUrl.pathname); + let outputFile = null; + let sendTo; + if (ext === `.tgz`) { + sendTo = tar.x({ strip: 1, cwd: tmpFolder }); + } + else if (ext === `.js`) { + outputFile = path__WEBPACK_IMPORTED_MODULE_1___default().join(tmpFolder, path__WEBPACK_IMPORTED_MODULE_1___default().posix.basename(parsedUrl.pathname)); + sendTo = fs__WEBPACK_IMPORTED_MODULE_0___default().createWriteStream(outputFile); + } + stream.pipe(sendTo); + await new Promise(resolve => { + sendTo.on(`finish`, resolve); + }); + await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.mkdir(path__WEBPACK_IMPORTED_MODULE_1___default().dirname(installFolder), { recursive: true }); + try { + await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.rename(tmpFolder, installFolder); + } + catch (err) { + if (err.code === `ENOTEMPTY` || + // On Windows the error code is EPERM so we check if it is a directory + (err.code === `EPERM` && (await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.stat(installFolder)).isDirectory())) { + _debugUtils__WEBPACK_IMPORTED_MODULE_3__.log(`Another instance of corepack installed ${locator.name}@${locator.reference}`); + await _fsUtils__WEBPACK_IMPORTED_MODULE_5__.rimraf(tmpFolder); + } + else { + throw err; + } + } + _debugUtils__WEBPACK_IMPORTED_MODULE_3__.log(`Install finished`); + return installFolder; +} +/** + * Loads the binary, taking control of the current process. + */ +async function runVersion(installSpec, binName, args) { + let binPath = null; + if (Array.isArray(installSpec.spec.bin)) { + if (installSpec.spec.bin.some(bin => bin === binName)) { + const parsedUrl = new URL(installSpec.spec.url); + const ext = path__WEBPACK_IMPORTED_MODULE_1___default().posix.extname(parsedUrl.pathname); + if (ext === `.js`) { + binPath = path__WEBPACK_IMPORTED_MODULE_1___default().join(installSpec.location, path__WEBPACK_IMPORTED_MODULE_1___default().posix.basename(parsedUrl.pathname)); } - return followups.every(spec => { - return spec(context.value, state); - }); } - finally { - for (const revert of reverts) { - revert(); + } + else { + for (const [name, dest] of Object.entries(installSpec.spec.bin)) { + if (name === binName) { + binPath = path__WEBPACK_IMPORTED_MODULE_1___default().join(installSpec.location, dest); + break; } } - }, -}); -const isOptional = (spec) => makeValidator({ - test: (value, state) => { - if (typeof value === `undefined`) - return true; - return spec(value, state); - }, -}); -const isNullable = (spec) => makeValidator({ - test: (value, state) => { - if (value === null) - return true; - return spec(value, state); - }, -}); -const hasMinLength = (length) => makeValidator({ - test: (value, state) => { - if (!(value.length >= length)) - return pushError(state, `Expected to have a length of at least ${length} elements (got ${value.length})`); - return true; - }, -}); -const hasMaxLength = (length) => makeValidator({ - test: (value, state) => { - if (!(value.length <= length)) - return pushError(state, `Expected to have a length of at most ${length} elements (got ${value.length})`); - return true; - }, -}); -const hasExactLength = (length) => makeValidator({ - test: (value, state) => { - if (!(value.length === length)) - return pushError(state, `Expected to have a length of exactly ${length} elements (got ${value.length})`); - return true; - }, -}); -const hasUniqueItems = ({ map, } = {}) => makeValidator({ - test: (value, state) => { - const set = new Set(); - const dup = new Set(); - for (let t = 0, T = value.length; t < T; ++t) { - const sub = value[t]; - const key = typeof map !== `undefined` - ? map(sub) - : sub; - if (set.has(key)) { - if (dup.has(key)) - continue; - pushError(state, `Expected to contain unique elements; got a duplicate with ${getPrintable(value)}`); - dup.add(key); + } + if (!binPath) + throw new Error(`Assertion failed: Unable to locate path for bin '${binName}'`); + _nodeUtils__WEBPACK_IMPORTED_MODULE_7__.registerV8CompileCache(); + // We load the binary into the current process, + // while making it think it was spawned. + // Non-exhaustive list of requirements: + // - Yarn uses process.argv[1] to determine its own path: https://github.com/yarnpkg/berry/blob/0da258120fc266b06f42aed67e4227e81a2a900f/packages/yarnpkg-cli/sources/main.ts#L80 + // - pnpm uses `require.main == null` to determine its own version: https://github.com/pnpm/pnpm/blob/e2866dee92991e979b2b0e960ddf5a74f6845d90/packages/cli-meta/src/index.ts#L14 + process.env.COREPACK_ROOT = path__WEBPACK_IMPORTED_MODULE_1___default().dirname(eval(`__dirname`)); + process.argv = [ + process.execPath, + binPath, + ...args, + ]; + process.execArgv = []; + return _nodeUtils__WEBPACK_IMPORTED_MODULE_7__.loadMainModule(binPath); +} + + +/***/ }), + +/***/ "./sources/debugUtils.ts": +/*!*******************************!*\ + !*** ./sources/debugUtils.ts ***! + \*******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "log": () => (/* binding */ log) +/* harmony export */ }); +/* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "./.yarn/__virtual__/debug-virtual-80c19f725b/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/index.js"); +/* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__); + +const log = debug__WEBPACK_IMPORTED_MODULE_0___default()(`corepack`); + + +/***/ }), + +/***/ "./sources/folderUtils.ts": +/*!********************************!*\ + !*** ./sources/folderUtils.ts ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "getInstallFolder": () => (/* binding */ getInstallFolder), +/* harmony export */ "getTemporaryFolder": () => (/* binding */ getTemporaryFolder) +/* harmony export */ }); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! os */ "os"); +/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ "path"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); + + + +function getInstallFolder() { + var _a; + return (_a = process.env.COREPACK_HOME) !== null && _a !== void 0 ? _a : (0,path__WEBPACK_IMPORTED_MODULE_2__.join)((0,os__WEBPACK_IMPORTED_MODULE_1__.homedir)(), `.node/corepack`); +} +function getTemporaryFolder(target = (0,os__WEBPACK_IMPORTED_MODULE_1__.tmpdir)()) { + (0,fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync)(target, { recursive: true }); + while (true) { + const rnd = Math.random() * 0x100000000; + const hex = rnd.toString(16).padStart(8, `0`); + const path = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(target, `corepack-${process.pid}-${hex}`); + try { + (0,fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync)(path); + return path; + } + catch (error) { + if (error.code === `EEXIST`) { + continue; } else { - set.add(key); + throw error; } } - return dup.size === 0; - }, -}); -const isNegative = () => makeValidator({ - test: (value, state) => { - if (!(value <= 0)) - return pushError(state, `Expected to be negative (got ${value})`); - return true; - }, -}); -const isPositive = () => makeValidator({ - test: (value, state) => { - if (!(value >= 0)) - return pushError(state, `Expected to be positive (got ${value})`); - return true; - }, -}); -const isAtLeast = (n) => makeValidator({ - test: (value, state) => { - if (!(value >= n)) - return pushError(state, `Expected to be at least ${n} (got ${value})`); - return true; - }, -}); -const isAtMost = (n) => makeValidator({ - test: (value, state) => { - if (!(value <= n)) - return pushError(state, `Expected to be at most ${n} (got ${value})`); - return true; - }, -}); -const isInInclusiveRange = (a, b) => makeValidator({ - test: (value, state) => { - if (!(value >= a && value <= b)) - return pushError(state, `Expected to be in the [${a}; ${b}] range (got ${value})`); - return true; - }, -}); -const isInExclusiveRange = (a, b) => makeValidator({ - test: (value, state) => { - if (!(value >= a && value < b)) - return pushError(state, `Expected to be in the [${a}; ${b}[ range (got ${value})`); - return true; - }, -}); -const isInteger = ({ unsafe = false, } = {}) => makeValidator({ - test: (value, state) => { - if (value !== Math.round(value)) - return pushError(state, `Expected to be an integer (got ${value})`); - if (!Number.isSafeInteger(value)) - return pushError(state, `Expected to be a safe integer (got ${value})`); - return true; - }, -}); -const matchesRegExp = (regExp) => makeValidator({ - test: (value, state) => { - if (!regExp.test(value)) - return pushError(state, `Expected to match the pattern ${regExp.toString()} (got ${getPrintable(value)})`); - return true; - }, -}); -const isLowerCase = () => makeValidator({ - test: (value, state) => { - if (value !== value.toLowerCase()) - return pushError(state, `Expected to be all-lowercase (got ${value})`); - return true; - }, -}); -const isUpperCase = () => makeValidator({ - test: (value, state) => { - if (value !== value.toUpperCase()) - return pushError(state, `Expected to be all-uppercase (got ${value})`); - return true; - }, -}); -const isUUID4 = () => makeValidator({ - test: (value, state) => { - if (!uuid4RegExp.test(value)) - return pushError(state, `Expected to be a valid UUID v4 (got ${getPrintable(value)})`); - return true; - }, -}); -const isISO8601 = () => makeValidator({ - test: (value, state) => { - if (!iso8601RegExp.test(value)) - return pushError(state, `Expected to be a valid ISO 8601 date string (got ${getPrintable(value)})`); - return false; - }, -}); -const isHexColor = ({ alpha = false, }) => makeValidator({ - test: (value, state) => { - const res = alpha - ? colorStringRegExp.test(value) - : colorStringAlphaRegExp.test(value); - if (!res) - return pushError(state, `Expected to be a valid hexadecimal color string (got ${getPrintable(value)})`); - return true; - }, -}); -const isBase64 = () => makeValidator({ - test: (value, state) => { - if (!base64RegExp.test(value)) - return pushError(state, `Expected to be a valid base 64 string (got ${getPrintable(value)})`); - return true; - }, -}); -const isJSON = (spec = isUnknown()) => makeValidator({ - test: (value, state) => { - let data; - try { - data = JSON.parse(value); - } - catch (_a) { - return pushError(state, `Expected to be a valid JSON string (got ${getPrintable(value)})`); - } - return spec(data, state); - }, -}); -const hasRequiredKeys = (requiredKeys) => { - const requiredSet = new Set(requiredKeys); - return makeValidator({ - test: (value, state) => { - const keys = new Set(Object.keys(value)); - const problems = []; - for (const key of requiredSet) - if (!keys.has(key)) - problems.push(key); - if (problems.length > 0) - return pushError(state, `Missing required ${plural(problems.length, `property`, `properties`)} ${problems.map(name => `"${name}"`).join(`, `)}`); - return true; - }, - }); -}; -const hasForbiddenKeys = (forbiddenKeys) => { - const forbiddenSet = new Set(forbiddenKeys); - return makeValidator({ - test: (value, state) => { - const keys = new Set(Object.keys(value)); - const problems = []; - for (const key of forbiddenSet) - if (keys.has(key)) - problems.push(key); - if (problems.length > 0) - return pushError(state, `Forbidden ${plural(problems.length, `property`, `properties`)} ${problems.map(name => `"${name}"`).join(`, `)}`); - return true; - }, - }); -}; -const hasMutuallyExclusiveKeys = (exclusiveKeys) => { - const exclusiveSet = new Set(exclusiveKeys); - return makeValidator({ - test: (value, state) => { - const keys = new Set(Object.keys(value)); - const used = []; - for (const key of exclusiveSet) - if (keys.has(key)) - used.push(key); - if (used.length > 1) - return pushError(state, `Mutually exclusive properties ${used.map(name => `"${name}"`).join(`, `)}`); - return true; - }, - }); -}; -(function (KeyRelationship) { - KeyRelationship["Forbids"] = "Forbids"; - KeyRelationship["Requires"] = "Requires"; -})(exports.KeyRelationship || (exports.KeyRelationship = {})); -const keyRelationships = { - [exports.KeyRelationship.Forbids]: { - expect: false, - message: `forbids using`, - }, - [exports.KeyRelationship.Requires]: { - expect: true, - message: `requires using`, - }, -}; -const hasKeyRelationship = (subject, relationship, others, { ignore = [], } = {}) => { - const skipped = new Set(ignore); - const otherSet = new Set(others); - const spec = keyRelationships[relationship]; - return makeValidator({ - test: (value, state) => { - const keys = new Set(Object.keys(value)); - if (!keys.has(subject) || skipped.has(value[subject])) - return true; - const problems = []; - for (const key of otherSet) - if ((keys.has(key) && !skipped.has(value[key])) !== spec.expect) - problems.push(key); - if (problems.length >= 1) - return pushError(state, `Property "${subject}" ${spec.message} ${plural(problems.length, `property`, `properties`)} ${problems.map(name => `"${name}"`).join(`, `)}`); - return true; - }, - }); -}; - -exports.applyCascade = applyCascade; -exports.base64RegExp = base64RegExp; -exports.colorStringAlphaRegExp = colorStringAlphaRegExp; -exports.colorStringRegExp = colorStringRegExp; -exports.computeKey = computeKey; -exports.getPrintable = getPrintable; -exports.hasExactLength = hasExactLength; -exports.hasForbiddenKeys = hasForbiddenKeys; -exports.hasKeyRelationship = hasKeyRelationship; -exports.hasMaxLength = hasMaxLength; -exports.hasMinLength = hasMinLength; -exports.hasMutuallyExclusiveKeys = hasMutuallyExclusiveKeys; -exports.hasRequiredKeys = hasRequiredKeys; -exports.hasUniqueItems = hasUniqueItems; -exports.isArray = isArray; -exports.isAtLeast = isAtLeast; -exports.isAtMost = isAtMost; -exports.isBase64 = isBase64; -exports.isBoolean = isBoolean; -exports.isDate = isDate; -exports.isDict = isDict; -exports.isEnum = isEnum; -exports.isHexColor = isHexColor; -exports.isISO8601 = isISO8601; -exports.isInExclusiveRange = isInExclusiveRange; -exports.isInInclusiveRange = isInInclusiveRange; -exports.isInstanceOf = isInstanceOf; -exports.isInteger = isInteger; -exports.isJSON = isJSON; -exports.isLiteral = isLiteral; -exports.isLowerCase = isLowerCase; -exports.isNegative = isNegative; -exports.isNullable = isNullable; -exports.isNumber = isNumber; -exports.isObject = isObject; -exports.isOneOf = isOneOf; -exports.isOptional = isOptional; -exports.isPositive = isPositive; -exports.isString = isString; -exports.isTuple = isTuple; -exports.isUUID4 = isUUID4; -exports.isUnknown = isUnknown; -exports.isUpperCase = isUpperCase; -exports.iso8601RegExp = iso8601RegExp; -exports.makeCoercionFn = makeCoercionFn; -exports.makeSetter = makeSetter; -exports.makeTrait = makeTrait; -exports.makeValidator = makeValidator; -exports.matchesRegExp = matchesRegExp; -exports.plural = plural; -exports.pushError = pushError; -exports.simpleKeyRegExp = simpleKeyRegExp; -exports.uuid4RegExp = uuid4RegExp; + } +} /***/ }), -/***/ "./.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip/node_modules/which/which.js": -/*!*******************************************************************************************!*\ - !*** ./.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip/node_modules/which/which.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./sources/fsUtils.ts": +/*!****************************!*\ + !*** ./sources/fsUtils.ts ***! + \****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -const isWindows = process.platform === 'win32' || - process.env.OSTYPE === 'cygwin' || - process.env.OSTYPE === 'msys' +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "rimraf": () => (/* binding */ rimraf) +/* harmony export */ }); +/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs/promises */ "fs/promises"); +/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_0__); -const path = __webpack_require__(/*! path */ "path") -const COLON = isWindows ? ';' : ':' -const isexe = __webpack_require__(/*! isexe */ "./.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip/node_modules/isexe/index.js") +async function rimraf(path) { + return (0,fs_promises__WEBPACK_IMPORTED_MODULE_0__.rm)(path, { recursive: true, force: true }); +} -const getNotFoundError = (cmd) => - Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' }) -const getPathInfo = (cmd, opt) => { - const colon = opt.colon || COLON +/***/ }), - // If it has a slash, then we don't bother searching the pathenv. - // just check the file itself, and that's it. - const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [''] - : ( - [ - // windows always checks the cwd first - ...(isWindows ? [process.cwd()] : []), - ...(opt.path || process.env.PATH || - /* istanbul ignore next: very unusual */ '').split(colon), - ] - ) - const pathExtExe = isWindows - ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM' - : '' - const pathExt = isWindows ? pathExtExe.split(colon) : [''] +/***/ "./sources/httpUtils.ts": +/*!******************************!*\ + !*** ./sources/httpUtils.ts ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - if (isWindows) { - if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') - pathExt.unshift('') - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "fetchAsBuffer": () => (/* binding */ fetchAsBuffer), +/* harmony export */ "fetchAsJson": () => (/* binding */ fetchAsJson), +/* harmony export */ "fetchUrlStream": () => (/* binding */ fetchUrlStream) +/* harmony export */ }); +/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js"); - return { - pathEnv, - pathExt, - pathExtExe, - } +async function fetchUrlStream(url, options = {}) { + if (process.env.COREPACK_ENABLE_NETWORK === `0`) + throw new clipanion__WEBPACK_IMPORTED_MODULE_0__.UsageError(`Network access disabled by the environment; can't reach ${url}`); + const { default: https } = await Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! https */ "https", 23)); + const { default: ProxyAgent } = await __webpack_require__.e(/*! import() */ "vendors-_yarn_berry_cache_proxy-agent-npm-5_0_0-41772f4b01-9_zip_node_modules_proxy-agent_index_js").then(__webpack_require__.t.bind(__webpack_require__, /*! proxy-agent */ "../../../.yarn/berry/cache/proxy-agent-npm-5.0.0-41772f4b01-9.zip/node_modules/proxy-agent/index.js", 23)); + const proxyAgent = new ProxyAgent(); + return new Promise((resolve, reject) => { + const request = https.get(url, Object.assign(Object.assign({}, options), { agent: proxyAgent }), response => { + var _a; + const statusCode = (_a = response.statusCode) !== null && _a !== void 0 ? _a : 500; + if (!(statusCode >= 200 && statusCode < 300)) + return reject(new Error(`Server answered with HTTP ${statusCode}`)); + return resolve(response); + }); + request.on(`error`, err => { + reject(new Error(`Error when performing the request`)); + }); + }); +} +async function fetchAsBuffer(url, options) { + const response = await fetchUrlStream(url, options); + return new Promise((resolve, reject) => { + const chunks = []; + response.on(`data`, chunk => { + chunks.push(chunk); + }); + response.on(`error`, error => { + reject(error); + }); + response.on(`end`, () => { + resolve(Buffer.concat(chunks)); + }); + }); +} +async function fetchAsJson(url, options) { + const buffer = await fetchAsBuffer(url, options); + const asText = buffer.toString(); + try { + return JSON.parse(asText); + } + catch (error) { + const truncated = asText.length > 30 + ? `${asText.slice(0, 30)}...` + : asText; + throw new Error(`Couldn't parse JSON data: ${JSON.stringify(truncated)}`); + } } -const which = (cmd, opt, cb) => { - if (typeof opt === 'function') { - cb = opt - opt = {} - } - if (!opt) - opt = {} - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) - const found = [] +/***/ }), - const step = i => new Promise((resolve, reject) => { - if (i === pathEnv.length) - return opt.all && found.length ? resolve(found) - : reject(getNotFoundError(cmd)) +/***/ "./sources/main.ts": +/*!*************************!*\ + !*** ./sources/main.ts ***! + \*************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - const ppRaw = pathEnv[i] - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "runMain": () => (/* binding */ runMain) +/* harmony export */ }); +/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js"); +/* harmony import */ var _Engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Engine */ "./sources/Engine.ts"); +/* harmony import */ var _commands_Disable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./commands/Disable */ "./sources/commands/Disable.ts"); +/* harmony import */ var _commands_Enable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commands/Enable */ "./sources/commands/Enable.ts"); +/* harmony import */ var _commands_Hydrate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./commands/Hydrate */ "./sources/commands/Hydrate.ts"); +/* harmony import */ var _commands_Prepare__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./commands/Prepare */ "./sources/commands/Prepare.ts"); +/* harmony import */ var _corepackUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./corepackUtils */ "./sources/corepackUtils.ts"); +/* harmony import */ var _miscUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./miscUtils */ "./sources/miscUtils.ts"); +/* harmony import */ var _specUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./specUtils */ "./sources/specUtils.ts"); - const pCmd = path.join(pathPart, cmd) - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd - : pCmd - resolve(subStep(p, i, 0)) - }) - const subStep = (p, i, ii) => new Promise((resolve, reject) => { - if (ii === pathExt.length) - return resolve(step(i + 1)) - const ext = pathExt[ii] - isexe(p + ext, { pathExt: pathExtExe }, (er, is) => { - if (!er && is) { - if (opt.all) - found.push(p + ext) - else - return resolve(p + ext) - } - return resolve(subStep(p, i, ii + 1)) - }) - }) - return cb ? step(0).then(res => cb(null, res), cb) : step(0) -} -const whichSync = (cmd, opt) => { - opt = opt || {} - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) - const found = [] - for (let i = 0; i < pathEnv.length; i ++) { - const ppRaw = pathEnv[i] - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw - const pCmd = path.join(pathPart, cmd) - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd - : pCmd - for (let j = 0; j < pathExt.length; j ++) { - const cur = p + pathExt[j] - try { - const is = isexe.sync(cur, { pathExt: pathExtExe }) - if (is) { - if (opt.all) - found.push(cur) - else - return cur +function getPackageManagerRequestFromCli(parameter, context) { + if (!parameter) + return null; + const match = parameter.match(/^([^@]*)(?:@(.*))?$/); + if (!match) + return null; + const [, binaryName, binaryVersion] = match; + const packageManager = context.engine.getPackageManagerFor(binaryName); + if (!packageManager) + return null; + return { + packageManager, + binaryName, + binaryVersion: binaryVersion || null, + }; +} +async function executePackageManagerRequest({ packageManager, binaryName, binaryVersion }, args, context) { + var _a; + const defaultVersion = await context.engine.getDefaultVersion(packageManager); + const definition = context.engine.config.definitions[packageManager]; + // If all leading segments match one of the patterns defined in the `transparent` + // key, we tolerate calling this binary even if the local project isn't explicitly + // configured for it, and we use the special default version if requested. + let isTransparentCommand = false; + for (const transparentPath of definition.transparent.commands) { + if (transparentPath[0] === binaryName && transparentPath.slice(1).every((segment, index) => segment === args[index])) { + isTransparentCommand = true; + break; } - } catch (ex) {} } - } + const fallbackReference = isTransparentCommand + ? (_a = definition.transparent.default) !== null && _a !== void 0 ? _a : defaultVersion + : defaultVersion; + const fallbackLocator = { + name: packageManager, + reference: fallbackReference, + }; + let descriptor; + try { + descriptor = await _specUtils__WEBPACK_IMPORTED_MODULE_7__.findProjectSpec(context.cwd, fallbackLocator, { transparent: isTransparentCommand }); + } + catch (err) { + if (err instanceof _miscUtils__WEBPACK_IMPORTED_MODULE_6__.Cancellation) { + return 1; + } + else { + throw err; + } + } + if (binaryVersion) + descriptor.range = binaryVersion; + const resolved = await context.engine.resolveDescriptor(descriptor, { allowTags: true }); + if (resolved === null) + throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`Failed to successfully resolve '${descriptor.range}' to a valid ${descriptor.name} release`); + const installSpec = await context.engine.ensurePackageManager(resolved); + return await _corepackUtils__WEBPACK_IMPORTED_MODULE_5__.runVersion(installSpec, binaryName, args); +} +async function main(argv) { + const corepackVersion = (__webpack_require__(/*! ../package.json */ "./package.json").version); + // Because we load the binaries in the same process, we don't support custom contexts. + const context = Object.assign(Object.assign({}, clipanion__WEBPACK_IMPORTED_MODULE_8__.Cli.defaultContext), { cwd: process.cwd(), engine: new _Engine__WEBPACK_IMPORTED_MODULE_0__.Engine() }); + const [firstArg, ...restArgs] = argv; + const request = getPackageManagerRequestFromCli(firstArg, context); + let cli; + if (!request) { + // If the first argument doesn't match any supported package manager, we fallback to the standard Corepack CLI + cli = new clipanion__WEBPACK_IMPORTED_MODULE_8__.Cli({ + binaryLabel: `Corepack`, + binaryName: `corepack`, + binaryVersion: corepackVersion, + }); + cli.register(clipanion__WEBPACK_IMPORTED_MODULE_8__.Builtins.HelpCommand); + cli.register(clipanion__WEBPACK_IMPORTED_MODULE_8__.Builtins.VersionCommand); + cli.register(_commands_Enable__WEBPACK_IMPORTED_MODULE_2__.EnableCommand); + cli.register(_commands_Disable__WEBPACK_IMPORTED_MODULE_1__.DisableCommand); + cli.register(_commands_Hydrate__WEBPACK_IMPORTED_MODULE_3__.HydrateCommand); + cli.register(_commands_Prepare__WEBPACK_IMPORTED_MODULE_4__.PrepareCommand); + return await cli.run(argv, context); + } + else { + // Otherwise, we create a single-command CLI to run the specified package manager (we still use Clipanion in order to pretty-print usage errors). + const cli = new clipanion__WEBPACK_IMPORTED_MODULE_8__.Cli({ + binaryLabel: `'${request.binaryName}', via Corepack`, + binaryName: request.binaryName, + binaryVersion: `corepack/${corepackVersion}`, + }); + cli.register(class BinaryCommand extends clipanion__WEBPACK_IMPORTED_MODULE_8__.Command { + constructor() { + super(...arguments); + this.proxy = clipanion__WEBPACK_IMPORTED_MODULE_8__.Option.Proxy(); + } + async execute() { + return executePackageManagerRequest(request, this.proxy, this.context); + } + }); + return await cli.run(restArgs, context); + } +} +// Important: this is the only function that the corepack binary exports. +function runMain(argv) { + main(argv).then(exitCode => { + process.exitCode = exitCode; + }, err => { + console.error(err.stack); + process.exitCode = 1; + }); +} - if (opt.all && found.length) - return found - if (opt.nothrow) - return null +/***/ }), - throw getNotFoundError(cmd) -} +/***/ "./sources/miscUtils.ts": +/*!******************************!*\ + !*** ./sources/miscUtils.ts ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -module.exports = which -which.sync = whichSync +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Cancellation": () => (/* binding */ Cancellation) +/* harmony export */ }); +class Cancellation extends Error { + constructor() { + super(`Cancelled operation`); + } +} /***/ }), -/***/ "./.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip/node_modules/yallist/iterator.js": -/*!**************************************************************************************************!*\ - !*** ./.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip/node_modules/yallist/iterator.js ***! - \**************************************************************************************************/ -/***/ ((module) => { +/***/ "./sources/nodeUtils.ts": +/*!******************************!*\ + !*** ./sources/nodeUtils.ts ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "dynamicRequire": () => (/* binding */ dynamicRequire), +/* harmony export */ "loadMainModule": () => (/* binding */ loadMainModule), +/* harmony export */ "registerV8CompileCache": () => (/* binding */ registerV8CompileCache) +/* harmony export */ }); +/* harmony import */ var module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! module */ "module"); +/* harmony import */ var module__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(module__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); -module.exports = function (Yallist) { - Yallist.prototype[Symbol.iterator] = function* () { - for (let walker = this.head; walker; walker = walker.next) { - yield walker.value + +const dynamicRequire = typeof require !== `undefined` + ? require + : __webpack_require__("./sources sync recursive"); +function getV8CompileCachePath() { + return typeof require !== `undefined` + ? `./vcc.js` + : `corepack/dist/vcc.js`; +} +function registerV8CompileCache() { + const vccPath = getV8CompileCachePath(); + dynamicRequire(vccPath); +} +/** + * Loads a module as a main module, enabling the `require.main === module` pattern. + */ +function loadMainModule(id) { + const modulePath = module__WEBPACK_IMPORTED_MODULE_0___default()._resolveFilename(id, null, true); + const module = new (module__WEBPACK_IMPORTED_MODULE_0___default())(modulePath, undefined); + module.filename = modulePath; + module.paths = module__WEBPACK_IMPORTED_MODULE_0___default()._nodeModulePaths(path__WEBPACK_IMPORTED_MODULE_1___default().dirname(modulePath)); + (module__WEBPACK_IMPORTED_MODULE_0___default()._cache)[modulePath] = module; + process.mainModule = module; + module.id = `.`; + try { + return module.load(modulePath); + } + catch (error) { + delete (module__WEBPACK_IMPORTED_MODULE_0___default()._cache)[modulePath]; + throw error; } - } } /***/ }), -/***/ "./.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip/node_modules/yallist/yallist.js": -/*!*************************************************************************************************!*\ - !*** ./.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip/node_modules/yallist/yallist.js ***! - \*************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ "./sources/semverUtils.ts": +/*!********************************!*\ + !*** ./sources/semverUtils.ts ***! + \********************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "satisfiesWithPrereleases": () => (/* binding */ satisfiesWithPrereleases) +/* harmony export */ }); +/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/index.js"); +/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_0__); -module.exports = Yallist - -Yallist.Node = Node -Yallist.create = Yallist - -function Yallist (list) { - var self = this - if (!(self instanceof Yallist)) { - self = new Yallist() - } - - self.tail = null - self.head = null - self.length = 0 - - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item) - }) - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]) +/** + * Returns whether the given semver version satisfies the given range. Notably + * this supports prerelease versions so that "2.0.0-rc.0" satisfies the range + * ">=1.0.0", for example. + * + * This function exists because the semver.satisfies method does not include + * pre releases. This means ranges such as * would not satisfy 1.0.0-rc. The + * includePrerelease flag has a weird behavior and cannot be used (if you want + * to try it out, just run the `semverUtils` testsuite using this flag instead + * of our own implementation, and you'll see the failing cases). + * + * See https://github.com/yarnpkg/berry/issues/575 for more context. + */ +function satisfiesWithPrereleases(version, range, loose = false) { + let semverRange; + try { + semverRange = new (semver__WEBPACK_IMPORTED_MODULE_0___default().Range)(range, loose); } - } - - return self + catch (err) { + return false; + } + if (!version) + return false; + let semverVersion; + try { + semverVersion = new (semver__WEBPACK_IMPORTED_MODULE_0___default().SemVer)(version, semverRange.loose); + if (semverVersion.prerelease) { + semverVersion.prerelease = []; + } + } + catch (err) { + return false; + } + // A range has multiple sets of comparators. A version must satisfy all + // comparators in a set and at least one set to satisfy the range. + return semverRange.set.some(comparatorSet => { + for (const comparator of comparatorSet) + if (comparator.semver.prerelease) + comparator.semver.prerelease = []; + return comparatorSet.every(comparator => { + return comparator.test(semverVersion); + }); + }); } -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list') - } - var next = node.next - var prev = node.prev +/***/ }), - if (next) { - next.prev = prev - } +/***/ "./sources/specUtils.ts": +/*!******************************!*\ + !*** ./sources/specUtils.ts ***! + \******************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - if (prev) { - prev.next = next - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "findProjectSpec": () => (/* binding */ findProjectSpec), +/* harmony export */ "loadSpec": () => (/* binding */ loadSpec), +/* harmony export */ "parseSpec": () => (/* binding */ parseSpec) +/* harmony export */ }); +/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-72ec1bc418/4/.yarn/berry/cache/clipanion-npm-3.1.0-ced87dbbea-9.zip/node_modules/clipanion/lib/advanced/index.js"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ "fs"); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "path"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! semver */ "../../../.yarn/berry/cache/semver-npm-7.3.7-3bfe704194-9.zip/node_modules/semver/index.js"); +/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types */ "./sources/types.ts"); - if (node === this.head) { - this.head = next - } - if (node === this.tail) { - this.tail = prev - } - node.list.length-- - node.next = null - node.prev = null - node.list = null - return next + + +const nodeModulesRegExp = /[\\/]node_modules[\\/](@[^\\/]*[\\/])?([^@\\/][^\\/]*)$/; +function parseSpec(raw, source) { + if (typeof raw !== `string`) + throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Invalid package manager specification in ${source}; expected a string`); + const match = raw.match(/^(?!_)(.+)@(.+)$/); + if (match === null || !semver__WEBPACK_IMPORTED_MODULE_2___default().valid(match[2])) + throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Invalid package manager specification in ${source}; expected a semver version`); + if (!(0,_types__WEBPACK_IMPORTED_MODULE_3__.isSupportedPackageManager)(match[1])) + throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Unsupported package manager specification (${match})`); + return { + name: match[1], + range: match[2], + }; +} +/** + * Locates the active project's package manager specification. + * + * If the specification exists but doesn't match the active package manager, + * an error is thrown to prevent users from using the wrong package manager, + * which would lead to inconsistent project layouts. + * + * If the project doesn't include a specification file, we just assume that + * whatever the user uses is exactly what they want to use. Since the version + * isn't explicited, we fallback on known good versions. + * + * Finally, if the project doesn't exist at all, we ask the user whether they + * want to create one in the current project. If they do, we initialize a new + * project using the default package managers, and configure it so that we + * don't need to ask again in the future. + */ +async function findProjectSpec(initialCwd, locator, { transparent = false } = {}) { + // A locator is a valid descriptor (but not the other way around) + const fallbackLocator = { name: locator.name, range: locator.reference }; + while (true) { + const result = await loadSpec(initialCwd); + switch (result.type) { + case `NoProject`: + case `NoSpec`: + { + return fallbackLocator; + } + break; + case `Found`: + { + if (result.spec.name !== locator.name) { + if (transparent) { + return fallbackLocator; + } + else { + throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`This project is configured to use ${result.spec.name}`); + } + } + else { + return result.spec; + } + } + break; + } + } +} +async function loadSpec(initialCwd) { + let nextCwd = initialCwd; + let currCwd = ``; + let selection = null; + while (nextCwd !== currCwd && (!selection || !selection.data.packageManager)) { + currCwd = nextCwd; + nextCwd = path__WEBPACK_IMPORTED_MODULE_1___default().dirname(currCwd); + if (nodeModulesRegExp.test(currCwd)) + continue; + const manifestPath = path__WEBPACK_IMPORTED_MODULE_1___default().join(currCwd, `package.json`); + if (!fs__WEBPACK_IMPORTED_MODULE_0___default().existsSync(manifestPath)) + continue; + const content = await fs__WEBPACK_IMPORTED_MODULE_0___default().promises.readFile(manifestPath, `utf8`); + let data; + try { + data = JSON.parse(content); + } + catch (_a) { } + if (typeof data !== `object` || data === null) + throw new clipanion__WEBPACK_IMPORTED_MODULE_4__.UsageError(`Invalid package.json in ${path__WEBPACK_IMPORTED_MODULE_1___default().relative(initialCwd, manifestPath)}`); + selection = { data, manifestPath }; + } + if (selection === null) + return { type: `NoProject`, target: path__WEBPACK_IMPORTED_MODULE_1___default().join(initialCwd, `package.json`) }; + const rawPmSpec = selection.data.packageManager; + if (typeof rawPmSpec === `undefined`) + return { type: `NoSpec`, target: selection.manifestPath }; + return { + type: `Found`, + spec: parseSpec(rawPmSpec, path__WEBPACK_IMPORTED_MODULE_1___default().relative(initialCwd, selection.manifestPath)), + }; } -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return - } - if (node.list) { - node.list.removeNode(node) - } +/***/ }), - var head = this.head - node.list = this - node.next = head - if (head) { - head.prev = node - } +/***/ "./sources/types.ts": +/*!**************************!*\ + !*** ./sources/types.ts ***! + \**************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - this.head = node - if (!this.tail) { - this.tail = node - } - this.length++ +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "SupportedPackageManagerSet": () => (/* binding */ SupportedPackageManagerSet), +/* harmony export */ "SupportedPackageManagerSetWithoutNpm": () => (/* binding */ SupportedPackageManagerSetWithoutNpm), +/* harmony export */ "SupportedPackageManagers": () => (/* binding */ SupportedPackageManagers), +/* harmony export */ "isSupportedPackageManager": () => (/* binding */ isSupportedPackageManager) +/* harmony export */ }); +var SupportedPackageManagers; +(function (SupportedPackageManagers) { + SupportedPackageManagers["Npm"] = "npm"; + SupportedPackageManagers["Pnpm"] = "pnpm"; + SupportedPackageManagers["Yarn"] = "yarn"; +})(SupportedPackageManagers || (SupportedPackageManagers = {})); +const SupportedPackageManagerSet = new Set(Object.values(SupportedPackageManagers)); +const SupportedPackageManagerSetWithoutNpm = new Set(Object.values(SupportedPackageManagers)); +// npm is distributed with Node as a builtin; we don't want Corepack to override it unless the npm team is on board +SupportedPackageManagerSetWithoutNpm.delete(SupportedPackageManagers.Npm); +function isSupportedPackageManager(value) { + return SupportedPackageManagerSet.has(value); } -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return - } - if (node.list) { - node.list.removeNode(node) - } +/***/ }), - var tail = this.tail - node.list = this - node.prev = tail - if (tail) { - tail.next = node - } +/***/ "./sources sync recursive": +/*!***********************!*\ + !*** ./sources/ sync ***! + \***********************/ +/***/ ((module) => { - this.tail = node - if (!this.head) { - this.head = node - } - this.length++ +function webpackEmptyContext(req) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; } +webpackEmptyContext.keys = () => ([]); +webpackEmptyContext.resolve = webpackEmptyContext; +webpackEmptyContext.id = "./sources sync recursive"; +module.exports = webpackEmptyContext; -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]) - } - return this.length -} +/***/ }), -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]) - } - return this.length -} +/***/ "assert": +/*!*************************!*\ + !*** external "assert" ***! + \*************************/ +/***/ ((module) => { -Yallist.prototype.pop = function () { - if (!this.tail) { - return undefined - } +"use strict"; +module.exports = require("assert"); - var res = this.tail.value - this.tail = this.tail.prev - if (this.tail) { - this.tail.next = null - } else { - this.head = null - } - this.length-- - return res -} +/***/ }), -Yallist.prototype.shift = function () { - if (!this.head) { - return undefined - } +/***/ "async_hooks": +/*!******************************!*\ + !*** external "async_hooks" ***! + \******************************/ +/***/ ((module) => { - var res = this.head.value - this.head = this.head.next - if (this.head) { - this.head.prev = null - } else { - this.tail = null - } - this.length-- - return res -} +"use strict"; +module.exports = require("async_hooks"); -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this) - walker = walker.next - } -} +/***/ }), -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this) - walker = walker.prev - } -} +/***/ "buffer": +/*!*************************!*\ + !*** external "buffer" ***! + \*************************/ +/***/ ((module) => { -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.next - } - if (i === n && walker !== null) { - return walker.value - } -} +"use strict"; +module.exports = require("buffer"); -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.prev - } - if (i === n && walker !== null) { - return walker.value - } -} +/***/ }), -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.head; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.next - } - return res -} +/***/ "constants": +/*!****************************!*\ + !*** external "constants" ***! + \****************************/ +/***/ ((module) => { -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.prev - } - return res -} +"use strict"; +module.exports = require("constants"); -Yallist.prototype.reduce = function (fn, initial) { - var acc - var walker = this.head - if (arguments.length > 1) { - acc = initial - } else if (this.head) { - walker = this.head.next - acc = this.head.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } +/***/ }), - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i) - walker = walker.next - } +/***/ "crypto": +/*!*************************!*\ + !*** external "crypto" ***! + \*************************/ +/***/ ((module) => { - return acc -} +"use strict"; +module.exports = require("crypto"); -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc - var walker = this.tail - if (arguments.length > 1) { - acc = initial - } else if (this.tail) { - walker = this.tail.prev - acc = this.tail.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } +/***/ }), - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i) - walker = walker.prev - } +/***/ "dns": +/*!**********************!*\ + !*** external "dns" ***! + \**********************/ +/***/ ((module) => { - return acc -} +"use strict"; +module.exports = require("dns"); -Yallist.prototype.toArray = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value - walker = walker.next - } - return arr -} +/***/ }), -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value - walker = walker.prev - } - return arr -} +/***/ "events": +/*!*************************!*\ + !*** external "events" ***! + \*************************/ +/***/ ((module) => { -Yallist.prototype.slice = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next - } - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value) - } - return ret -} +"use strict"; +module.exports = require("events"); + +/***/ }), + +/***/ "fs": +/*!*********************!*\ + !*** external "fs" ***! + \*********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("fs"); + +/***/ }), + +/***/ "fs/promises": +/*!******************************!*\ + !*** external "fs/promises" ***! + \******************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("fs/promises"); + +/***/ }), + +/***/ "http": +/*!***********************!*\ + !*** external "http" ***! + \***********************/ +/***/ ((module) => { -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value) - } - return ret -} +"use strict"; +module.exports = require("http"); -Yallist.prototype.splice = function (start, deleteCount, ...nodes) { - if (start > this.length) { - start = this.length - 1 - } - if (start < 0) { - start = this.length + start; - } +/***/ }), - for (var i = 0, walker = this.head; walker !== null && i < start; i++) { - walker = walker.next - } +/***/ "https": +/*!************************!*\ + !*** external "https" ***! + \************************/ +/***/ ((module) => { - var ret = [] - for (var i = 0; walker && i < deleteCount; i++) { - ret.push(walker.value) - walker = this.removeNode(walker) - } - if (walker === null) { - walker = this.tail - } +"use strict"; +module.exports = require("https"); - if (walker !== this.head && walker !== this.tail) { - walker = walker.prev - } +/***/ }), - for (var i = 0; i < nodes.length; i++) { - walker = insert(this, walker, nodes[i]) - } - return ret; -} +/***/ "module": +/*!*************************!*\ + !*** external "module" ***! + \*************************/ +/***/ ((module) => { -Yallist.prototype.reverse = function () { - var head = this.head - var tail = this.tail - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev - walker.prev = walker.next - walker.next = p - } - this.head = tail - this.tail = head - return this -} +"use strict"; +module.exports = require("module"); -function insert (self, node, value) { - var inserted = node === self.head ? - new Node(value, null, node, self) : - new Node(value, node, node.next, self) +/***/ }), - if (inserted.next === null) { - self.tail = inserted - } - if (inserted.prev === null) { - self.head = inserted - } +/***/ "net": +/*!**********************!*\ + !*** external "net" ***! + \**********************/ +/***/ ((module) => { - self.length++ +"use strict"; +module.exports = require("net"); - return inserted -} +/***/ }), -function push (self, item) { - self.tail = new Node(item, self.tail, null, self) - if (!self.head) { - self.head = self.tail - } - self.length++ -} +/***/ "node:os": +/*!**************************!*\ + !*** external "node:os" ***! + \**************************/ +/***/ ((module) => { -function unshift (self, item) { - self.head = new Node(item, null, self.head, self) - if (!self.tail) { - self.tail = self.head - } - self.length++ -} +"use strict"; +module.exports = require("node:os"); -function Node (value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list) - } +/***/ }), - this.list = list - this.value = value +/***/ "node:process": +/*!*******************************!*\ + !*** external "node:process" ***! + \*******************************/ +/***/ ((module) => { - if (prev) { - prev.next = this - this.prev = prev - } else { - this.prev = null - } +"use strict"; +module.exports = require("node:process"); - if (next) { - next.prev = this - this.next = next - } else { - this.next = null - } -} +/***/ }), -try { - // add if support for Symbol.iterator is present - __webpack_require__(/*! ./iterator.js */ "./.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip/node_modules/yallist/iterator.js")(Yallist) -} catch (er) {} +/***/ "node:tty": +/*!***************************!*\ + !*** external "node:tty" ***! + \***************************/ +/***/ ((module) => { +"use strict"; +module.exports = require("node:tty"); /***/ }), -/***/ "./config.json": +/***/ "os": /*!*********************!*\ - !*** ./config.json ***! + !*** external "os" ***! \*********************/ /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"definitions":{"npm":{"default":"7.20.1","transparent":{"commands":[["npm","init"],["npx"]]},"ranges":{"*":{"url":"https://registry.npmjs.org/npm/-/npm-{}.tgz","bin":{"npm":"./bin/npm-cli.js","npx":"./bin/npx-cli.js"},"registry":{"type":"npm","package":"npm"}}}},"pnpm":{"default":"6.11.0","transparent":{"commands":[["pnpm","init"],["pnpx"]]},"ranges":{"<6.0.0":{"url":"https://registry.npmjs.org/pnpm/-/pnpm-{}.tgz","bin":{"pnpm":"./bin/pnpm.js","pnpx":"./bin/pnpx.js"},"registry":{"type":"npm","package":"pnpm"}},">=6.0.0":{"url":"https://registry.npmjs.org/pnpm/-/pnpm-{}.tgz","bin":{"pnpm":"./bin/pnpm.cjs","pnpx":"./bin/pnpx.cjs"},"registry":{"type":"npm","package":"pnpm"}}}},"yarn":{"default":"1.22.15","transparent":{"default":"3.0.0","commands":[["yarn","dlx"]]},"ranges":{"<2.0.0":{"url":"https://registry.yarnpkg.com/yarn/-/yarn-{}.tgz","bin":{"yarn":"./bin/yarn.js","yarnpkg":"./bin/yarn.js"},"registry":{"type":"npm","package":"yarn"}},">=2.0.0":{"name":"yarn","url":"https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js","bin":["yarn","yarnpkg"],"registry":{"type":"url","url":"https://repo.yarnpkg.com/tags","fields":{"tags":"latest","versions":"tags"}}}}}}}'); +module.exports = require("os"); /***/ }), -/***/ "./package.json": -/*!**********************!*\ - !*** ./package.json ***! - \**********************/ +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"name":"corepack","version":"0.10.0","homepage":"https://github.com/nodejs/corepack#readme","bugs":{"url":"https://github.com/nodejs/corepack/issues"},"repository":{"type":"git","url":"https://github.com/nodejs/corepack.git"},"license":"MIT","bin":{"corepack":"./dist/corepack.js","pnpm":"./dist/pnpm.js","pnpx":"./dist/pnpx.js","yarn":"./dist/yarn.js","yarnpkg":"./dist/yarnpkg.js"},"packageManager":"yarn@3.0.0","devDependencies":{"@babel/core":"^7.14.3","@babel/plugin-proposal-class-properties":"^7.13.0","@babel/plugin-proposal-decorators":"^7.14.2","@babel/plugin-proposal-nullish-coalescing-operator":"^7.10.4","@babel/plugin-transform-modules-commonjs":"^7.14.0","@babel/preset-typescript":"^7.13.0","@types/debug":"^4.1.5","@types/jest":"^26.0.23","@types/node":"^13.9.2","@types/semver":"^7.1.0","@types/tar":"^4.0.3","@types/which":"^1.3.2","@typescript-eslint/eslint-plugin":"^2.0.0","@typescript-eslint/parser":"^4.2.0","@yarnpkg/eslint-config":"^0.1.0","@yarnpkg/fslib":"^2.1.0","@zkochan/cmd-shim":"^5.0.0","babel-plugin-dynamic-import-node":"^2.3.3","clipanion":"^3.0.1","debug":"^4.1.1","eslint":"^7.10.0","eslint-plugin-arca":"^0.9.5","jest":"^26.0.0","nock":"^13.0.4","semver":"^7.1.3","supports-color":"^7.1.0","tar":"^6.0.1","terser-webpack-plugin":"^5.1.2","ts-loader":"^8.0.2","ts-node":"^8.10.2","typescript":"^4.3.2","v8-compile-cache":"^2.3.0","webpack":"^5.38.1","webpack-cli":"^3.3.11","which":"^2.0.2"},"scripts":{"build":"rm -rf dist && webpack && ts-node ./mkshims.ts","corepack":"ts-node ./sources/main.ts","prepack":"node ./.yarn/releases/*.*js build","postpack":"rm -rf dist shims","test":"yarn jest"},"files":["dist","shims","LICENSE.md"],"publishConfig":{"executableFiles":["./dist/npm.js","./dist/npx.js","./dist/pnpm.js","./dist/pnpx.js","./dist/yarn.js","./dist/yarnpkg.js","./dist/corepack.js","./shims/npm","./shims/npm.ps1","./shims/npx","./shims/npx.ps1","./shims/pnpm","./shims/pnpm.ps1","./shims/pnpx","./shims/pnpx.ps1","./shims/yarn","./shims/yarn.ps1","./shims/yarnpkg","./shims/yarnpkg.ps1"]}}'); +module.exports = require("path"); /***/ }), -/***/ "assert": +/***/ "stream": /*!*************************!*\ - !*** external "assert" ***! + !*** external "stream" ***! \*************************/ /***/ ((module) => { "use strict"; -module.exports = require("assert");; +module.exports = require("stream"); /***/ }), -/***/ "buffer": -/*!*************************!*\ - !*** external "buffer" ***! - \*************************/ +/***/ "string_decoder": +/*!*********************************!*\ + !*** external "string_decoder" ***! + \*********************************/ /***/ ((module) => { "use strict"; -module.exports = require("buffer");; +module.exports = require("string_decoder"); /***/ }), -/***/ "child_process": -/*!********************************!*\ - !*** external "child_process" ***! - \********************************/ +/***/ "tls": +/*!**********************!*\ + !*** external "tls" ***! + \**********************/ /***/ ((module) => { "use strict"; -module.exports = require("child_process");; +module.exports = require("tls"); /***/ }), -/***/ "crypto": -/*!*************************!*\ - !*** external "crypto" ***! - \*************************/ +/***/ "tty": +/*!**********************!*\ + !*** external "tty" ***! + \**********************/ /***/ ((module) => { "use strict"; -module.exports = require("crypto");; +module.exports = require("tty"); /***/ }), -/***/ "events": -/*!*************************!*\ - !*** external "events" ***! - \*************************/ +/***/ "url": +/*!**********************!*\ + !*** external "url" ***! + \**********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("url"); + +/***/ }), + +/***/ "util": +/*!***********************!*\ + !*** external "util" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("util"); + +/***/ }), + +/***/ "zlib": +/*!***********************!*\ + !*** external "zlib" ***! + \***********************/ /***/ ((module) => { -"use strict"; -module.exports = require("events");; +"use strict"; +module.exports = require("zlib"); + +/***/ }), + +/***/ "../../../.yarn/berry/cache/supports-color-npm-9.2.2-d003069e84-9.zip/node_modules/supports-color/index.js": +/*!*****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/supports-color-npm-9.2.2-d003069e84-9.zip/node_modules/supports-color/index.js ***! + \*****************************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "createSupportsColor": () => (/* binding */ createSupportsColor), +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var node_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! node:process */ "node:process"); +/* harmony import */ var node_os__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! node:os */ "node:os"); +/* harmony import */ var node_tty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! node:tty */ "node:tty"); + + + + +// From: https://github.com/sindresorhus/has-flag/blob/main/index.js +function hasFlag(flag, argv = node_process__WEBPACK_IMPORTED_MODULE_0__.argv) { + const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf('--'); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); +} + +const {env} = node_process__WEBPACK_IMPORTED_MODULE_0__; + +let flagForceColor; +if ( + hasFlag('no-color') + || hasFlag('no-colors') + || hasFlag('color=false') + || hasFlag('color=never') +) { + flagForceColor = 0; +} else if ( + hasFlag('color') + || hasFlag('colors') + || hasFlag('color=true') + || hasFlag('color=always') +) { + flagForceColor = 1; +} + +function envForceColor() { + if ('FORCE_COLOR' in env) { + if (env.FORCE_COLOR === 'true') { + return 1; + } + + if (env.FORCE_COLOR === 'false') { + return 0; + } + + return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); + } +} + +function translateLevel(level) { + if (level === 0) { + return false; + } + + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3, + }; +} + +function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) { + const noFlagForceColor = envForceColor(); + if (noFlagForceColor !== undefined) { + flagForceColor = noFlagForceColor; + } + + const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; + + if (forceColor === 0) { + return 0; + } + + if (sniffFlags) { + if (hasFlag('color=16m') + || hasFlag('color=full') + || hasFlag('color=truecolor')) { + return 3; + } -/***/ }), + if (hasFlag('color=256')) { + return 2; + } + } -/***/ "fs": -/*!*********************!*\ - !*** external "fs" ***! - \*********************/ -/***/ ((module) => { + if (haveStream && !streamIsTTY && forceColor === undefined) { + return 0; + } -"use strict"; -module.exports = require("fs");; + const min = forceColor || 0; -/***/ }), + if (env.TERM === 'dumb') { + return min; + } -/***/ "https": -/*!************************!*\ - !*** external "https" ***! - \************************/ -/***/ ((module) => { + if (node_process__WEBPACK_IMPORTED_MODULE_0__.platform === 'win32') { + // Windows 10 build 10586 is the first Windows release that supports 256 colors. + // Windows 10 build 14931 is the first release that supports 16m/TrueColor. + const osRelease = node_os__WEBPACK_IMPORTED_MODULE_1__.release().split('.'); + if ( + Number(osRelease[0]) >= 10 + && Number(osRelease[2]) >= 10_586 + ) { + return Number(osRelease[2]) >= 14_931 ? 3 : 2; + } -"use strict"; -module.exports = require("https");; + return 1; + } -/***/ }), + if ('CI' in env) { + if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { + return 1; + } -/***/ "os": -/*!*********************!*\ - !*** external "os" ***! - \*********************/ -/***/ ((module) => { + return min; + } -"use strict"; -module.exports = require("os");; + if ('TEAMCITY_VERSION' in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } -/***/ }), + // Check for Azure DevOps pipelines + if ('TF_BUILD' in env && 'AGENT_NAME' in env) { + return 1; + } -/***/ "path": -/*!***********************!*\ - !*** external "path" ***! - \***********************/ -/***/ ((module) => { + if (env.COLORTERM === 'truecolor') { + return 3; + } -"use strict"; -module.exports = require("path");; + if ('TERM_PROGRAM' in env) { + const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); -/***/ }), + switch (env.TERM_PROGRAM) { + case 'iTerm.app': + return version >= 3 ? 3 : 2; + case 'Apple_Terminal': + return 2; + // No default + } + } -/***/ "stream": -/*!*************************!*\ - !*** external "stream" ***! - \*************************/ -/***/ ((module) => { + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } -"use strict"; -module.exports = require("stream");; + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } -/***/ }), + if ('COLORTERM' in env) { + return 1; + } -/***/ "string_decoder": -/*!*********************************!*\ - !*** external "string_decoder" ***! - \*********************************/ -/***/ ((module) => { + return min; +} -"use strict"; -module.exports = require("string_decoder");; +function createSupportsColor(stream, options = {}) { + const level = _supportsColor(stream, { + streamIsTTY: stream && stream.isTTY, + ...options, + }); -/***/ }), + return translateLevel(level); +} -/***/ "tty": -/*!**********************!*\ - !*** external "tty" ***! - \**********************/ -/***/ ((module) => { +const supportsColor = { + stdout: createSupportsColor({isTTY: node_tty__WEBPACK_IMPORTED_MODULE_2__.isatty(1)}), + stderr: createSupportsColor({isTTY: node_tty__WEBPACK_IMPORTED_MODULE_2__.isatty(2)}), +}; + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (supportsColor); -"use strict"; -module.exports = require("tty");; /***/ }), -/***/ "util": -/*!***********************!*\ - !*** external "util" ***! - \***********************/ +/***/ "./config.json": +/*!*********************!*\ + !*** ./config.json ***! + \*********************/ /***/ ((module) => { "use strict"; -module.exports = require("util");; +module.exports = JSON.parse('{"definitions":{"npm":{"default":"8.12.1","transparent":{"commands":[["npm","init"],["npx"]]},"ranges":{"*":{"url":"https://registry.npmjs.org/npm/-/npm-{}.tgz","bin":{"npm":"./bin/npm-cli.js","npx":"./bin/npx-cli.js"},"registry":{"type":"npm","package":"npm"}}}},"pnpm":{"default":"7.2.1","transparent":{"commands":[["pnpm","init"],["pnpx"],["pnpm","dlx"]]},"ranges":{"<6.0.0":{"url":"https://registry.npmjs.org/pnpm/-/pnpm-{}.tgz","bin":{"pnpm":"./bin/pnpm.js","pnpx":"./bin/pnpx.js"},"registry":{"type":"npm","package":"pnpm"}},">=6.0.0":{"url":"https://registry.npmjs.org/pnpm/-/pnpm-{}.tgz","bin":{"pnpm":"./bin/pnpm.cjs","pnpx":"./bin/pnpx.cjs"},"registry":{"type":"npm","package":"pnpm"}}}},"yarn":{"default":"1.22.19","transparent":{"default":"3.2.1","commands":[["yarn","dlx"]]},"ranges":{"<2.0.0":{"url":"https://registry.yarnpkg.com/yarn/-/yarn-{}.tgz","bin":{"yarn":"./bin/yarn.js","yarnpkg":"./bin/yarn.js"},"registry":{"type":"npm","package":"yarn"}},">=2.0.0":{"name":"yarn","url":"https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js","bin":["yarn","yarnpkg"],"registry":{"type":"url","url":"https://repo.yarnpkg.com/tags","fields":{"tags":"latest","versions":"tags"}}}}}}}'); /***/ }), -/***/ "zlib": -/*!***********************!*\ - !*** external "zlib" ***! - \***********************/ +/***/ "./package.json": +/*!**********************!*\ + !*** ./package.json ***! + \**********************/ /***/ ((module) => { "use strict"; -module.exports = require("zlib");; +module.exports = JSON.parse('{"name":"corepack","version":"0.11.2","homepage":"https://github.com/nodejs/corepack#readme","bugs":{"url":"https://github.com/nodejs/corepack/issues"},"repository":{"type":"git","url":"https://github.com/nodejs/corepack.git"},"license":"MIT","packageManager":"yarn@4.0.0-rc.6","devDependencies":{"@babel/core":"^7.14.3","@babel/plugin-transform-modules-commonjs":"^7.14.0","@babel/preset-typescript":"^7.13.0","@types/debug":"^4.1.5","@types/jest":"^27.0.0","@types/node":"^17.0.10","@types/semver":"^7.1.0","@types/tar":"^6.0.0","@types/which":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"^5.0.0","@yarnpkg/eslint-config":"^1.0.0-rc.5","@yarnpkg/fslib":"^2.1.0","@zkochan/cmd-shim":"^5.0.0","babel-plugin-dynamic-import-node":"^2.3.3","clipanion":"^3.0.1","debug":"^4.1.1","eslint":"^8.0.0","eslint-plugin-arca":"^0.15.0","jest":"^28.0.0","nock":"^13.0.4","proxy-agent":"^5.0.0","semver":"^7.1.3","supports-color":"^9.0.0","tar":"^6.0.1","terser-webpack-plugin":"^5.1.2","ts-loader":"^9.0.0","ts-node":"^10.0.0","typescript":"^4.3.2","v8-compile-cache":"^2.3.0","webpack":"^5.38.1","webpack-cli":"^4.0.0","which":"^2.0.2"},"scripts":{"build":"rm -rf dist shims && webpack && ts-node ./mkshims.ts","corepack":"ts-node ./sources/_entryPoint.ts","lint":"yarn eslint","prepack":"yarn build","postpack":"rm -rf dist shims","typecheck":"tsc --noEmit","test":"yarn jest"},"files":["dist","shims","LICENSE.md"],"publishConfig":{"bin":{"corepack":"./dist/corepack.js","pnpm":"./dist/pnpm.js","pnpx":"./dist/pnpx.js","yarn":"./dist/yarn.js","yarnpkg":"./dist/yarnpkg.js"},"executableFiles":["./dist/npm.js","./dist/npx.js","./dist/pnpm.js","./dist/pnpx.js","./dist/yarn.js","./dist/yarnpkg.js","./dist/corepack.js","./shims/npm","./shims/npm.ps1","./shims/npx","./shims/npx.ps1","./shims/pnpm","./shims/pnpm.ps1","./shims/pnpx","./shims/pnpx.ps1","./shims/yarn","./shims/yarn.ps1","./shims/yarnpkg","./shims/yarnpkg.ps1"]},"resolutions":{"vm2":"patch:vm2@npm:3.9.9#.yarn/patches/vm2-npm-3.9.9-03fd1f4dc5.patch"}}'); /***/ }) @@ -14636,12 +16830,15 @@ module.exports = require("zlib");; /******/ }; /******/ /******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ (() => { @@ -14697,6 +16894,28 @@ module.exports = require("zlib");; /******/ }; /******/ })(); /******/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ (() => { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = (chunkId) => { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ (() => { +/******/ // This function allow to reference async chunks +/******/ __webpack_require__.u = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + ".js"; +/******/ }; +/******/ })(); +/******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) @@ -14713,148 +16932,67 @@ module.exports = require("zlib");; /******/ }; /******/ })(); /******/ +/******/ /* webpack/runtime/require chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded chunks +/******/ // "1" means "loaded", otherwise not loaded yet +/******/ var installedChunks = { +/******/ "corepack": 1 +/******/ }; +/******/ +/******/ // no on chunks loaded +/******/ +/******/ var installChunk = (chunk) => { +/******/ var moreModules = chunk.modules, chunkIds = chunk.ids, runtime = chunk.runtime; +/******/ for(var moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) runtime(__webpack_require__); +/******/ for(var i = 0; i < chunkIds.length; i++) +/******/ installedChunks[chunkIds[i]] = 1; +/******/ +/******/ }; +/******/ +/******/ // require() chunk loading for javascript +/******/ __webpack_require__.f.require = (chunkId, promises) => { +/******/ // "1" is the signal for "already loaded" +/******/ if(!installedChunks[chunkId]) { +/******/ if(true) { // all chunks have JS +/******/ installChunk(require("./" + __webpack_require__.u(chunkId))); +/******/ } else installedChunks[chunkId] = 1; +/******/ } +/******/ }; +/******/ +/******/ // no external install chunk +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ })(); +/******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry need to be wrapped in an IIFE because it need to be in strict mode. (() => { "use strict"; -/*!*************************!*\ - !*** ./sources/main.ts ***! - \*************************/ +/*!********************************!*\ + !*** ./sources/_entryPoint.ts ***! + \********************************/ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "main": () => (/* binding */ main), -/* harmony export */ "runMain": () => (/* binding */ runMain) +/* harmony export */ "runMain": () => (/* reexport safe */ _main__WEBPACK_IMPORTED_MODULE_0__.runMain) /* harmony export */ }); -/* harmony import */ var clipanion__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! clipanion */ "./.yarn/__virtual__/clipanion-virtual-119dc92083/0/cache/clipanion-npm-3.0.1-901533eeed-3a4b0c1e7d.zip/node_modules/clipanion/lib/advanced/index.js"); -/* harmony import */ var _Engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Engine */ "./sources/Engine.ts"); -/* harmony import */ var _commands_Disable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./commands/Disable */ "./sources/commands/Disable.ts"); -/* harmony import */ var _commands_Enable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commands/Enable */ "./sources/commands/Enable.ts"); -/* harmony import */ var _commands_Hydrate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./commands/Hydrate */ "./sources/commands/Hydrate.ts"); -/* harmony import */ var _commands_Prepare__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./commands/Prepare */ "./sources/commands/Prepare.ts"); -/* harmony import */ var _miscUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./miscUtils */ "./sources/miscUtils.ts"); -/* harmony import */ var _corepackUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./corepackUtils */ "./sources/corepackUtils.ts"); -/* harmony import */ var _specUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./specUtils */ "./sources/specUtils.ts"); +/* harmony import */ var _main__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./main */ "./sources/main.ts"); +// Used by the generated shims - - - - - - - -function getPackageManagerRequestFromCli(parameter, context) { - if (!parameter) - return null; - const match = parameter.match(/^([^@]*)(?:@(.*))?$/); - if (!match) - return null; - const [, binaryName, binaryVersion] = match; - const packageManager = context.engine.getPackageManagerFor(binaryName); - if (!packageManager) - return null; - return { - packageManager, - binaryName, - binaryVersion: binaryVersion || null, - }; -} -async function executePackageManagerRequest({ packageManager, binaryName, binaryVersion }, args, context) { - var _a; - const defaultVersion = await context.engine.getDefaultVersion(packageManager); - const definition = context.engine.config.definitions[packageManager]; - // If all leading segments match one of the patterns defined in the `transparent` - // key, we tolerate calling this binary even if the local project isn't explicitly - // configured for it, and we use the special default version if requested. - let isTransparentCommand = false; - for (const transparentPath of definition.transparent.commands) { - if (transparentPath[0] === binaryName && transparentPath.slice(1).every((segment, index) => segment === args[index])) { - isTransparentCommand = true; - break; - } - } - const fallbackReference = isTransparentCommand - ? (_a = definition.transparent.default) !== null && _a !== void 0 ? _a : defaultVersion - : defaultVersion; - const fallbackLocator = { - name: packageManager, - reference: fallbackReference, - }; - let descriptor; - try { - descriptor = await _specUtils__WEBPACK_IMPORTED_MODULE_7__.findProjectSpec(context.cwd, fallbackLocator, { transparent: isTransparentCommand }); - } - catch (err) { - if (err instanceof _miscUtils__WEBPACK_IMPORTED_MODULE_5__.Cancellation) { - return 1; - } - else { - throw err; - } - } - if (binaryVersion) - descriptor.range = binaryVersion; - const resolved = await context.engine.resolveDescriptor(descriptor, { allowTags: true }); - if (resolved === null) - throw new clipanion__WEBPACK_IMPORTED_MODULE_8__.UsageError(`Failed to successfully resolve '${descriptor.range}' to a valid ${descriptor.name} release`); - const installSpec = await context.engine.ensurePackageManager(resolved); - const exitCode = await _corepackUtils__WEBPACK_IMPORTED_MODULE_6__.runVersion(installSpec, resolved, binaryName, args, context); - return exitCode; -} -async function main(argv, context) { - const corepackVersion = __webpack_require__(/*! ../package.json */ "./package.json").version; - const [firstArg, ...restArgs] = argv; - const request = getPackageManagerRequestFromCli(firstArg, context); - let cli; - if (!request) { - // If the first argument doesn't match any supported package manager, we fallback to the standard Corepack CLI - cli = new clipanion__WEBPACK_IMPORTED_MODULE_8__.Cli({ - binaryLabel: `Corepack`, - binaryName: `corepack`, - binaryVersion: corepackVersion, - }); - cli.register(clipanion__WEBPACK_IMPORTED_MODULE_8__.Builtins.HelpCommand); - cli.register(clipanion__WEBPACK_IMPORTED_MODULE_8__.Builtins.VersionCommand); - cli.register(_commands_Enable__WEBPACK_IMPORTED_MODULE_2__.EnableCommand); - cli.register(_commands_Disable__WEBPACK_IMPORTED_MODULE_1__.DisableCommand); - cli.register(_commands_Hydrate__WEBPACK_IMPORTED_MODULE_3__.HydrateCommand); - cli.register(_commands_Prepare__WEBPACK_IMPORTED_MODULE_4__.PrepareCommand); - return await cli.run(argv, Object.assign(Object.assign({}, clipanion__WEBPACK_IMPORTED_MODULE_8__.Cli.defaultContext), context)); - } - else { - // Otherwise, we create a single-command CLI to run the specified package manager (we still use Clipanion in order to pretty-print usage errors). - const cli = new clipanion__WEBPACK_IMPORTED_MODULE_8__.Cli({ - binaryLabel: `'${request.binaryName}', via Corepack`, - binaryName: request.binaryName, - binaryVersion: `corepack/${corepackVersion}`, - }); - cli.register(class BinaryCommand extends clipanion__WEBPACK_IMPORTED_MODULE_8__.Command { - constructor() { - super(...arguments); - this.proxy = clipanion__WEBPACK_IMPORTED_MODULE_8__.Option.Proxy(); - } - async execute() { - return executePackageManagerRequest(request, this.proxy, this.context); - } - }); - return await cli.run(restArgs, Object.assign(Object.assign({}, clipanion__WEBPACK_IMPORTED_MODULE_8__.Cli.defaultContext), context)); - } -} -function runMain(argv) { - main(argv, { - cwd: process.cwd(), - engine: new _Engine__WEBPACK_IMPORTED_MODULE_0__.Engine(), - }).then(exitCode => { - process.exitCode = exitCode; - }, err => { - console.error(err.stack); - process.exitCode = 1; - }); -} // Using `eval` to be sure that Webpack doesn't transform it if (process.mainModule === eval(`module`)) - runMain(process.argv.slice(2)); + (0,_main__WEBPACK_IMPORTED_MODULE_0__.runMain)(process.argv.slice(2)); })(); diff --git a/deps/corepack/dist/vcc.js b/deps/corepack/dist/vcc.js index 69558e7cdd55a4..2a8c9014b546d1 100644 --- a/deps/corepack/dist/vcc.js +++ b/deps/corepack/dist/vcc.js @@ -3,10 +3,10 @@ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ "./.yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-adb0a271ea.zip/node_modules/v8-compile-cache/v8-compile-cache.js": -/*!****************************************************************************************************************************!*\ - !*** ./.yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-adb0a271ea.zip/node_modules/v8-compile-cache/v8-compile-cache.js ***! - \****************************************************************************************************************************/ +/***/ "../../../.yarn/berry/cache/v8-compile-cache-npm-2.3.0-961375f150-9.zip/node_modules/v8-compile-cache/v8-compile-cache.js": +/*!********************************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/v8-compile-cache-npm-2.3.0-961375f150-9.zip/node_modules/v8-compile-cache/v8-compile-cache.js ***! + \********************************************************************************************************************************/ /***/ (function(module, exports) { 'use strict'; @@ -415,7 +415,7 @@ module.exports.__TEST__ = { /******/ // startup /******/ // Load entry module and return exports /******/ // This entry module doesn't tell about it's top-level declarations so it can't be inlined -/******/ var __webpack_exports__ = __webpack_require__("./.yarn/cache/v8-compile-cache-npm-2.3.0-961375f150-adb0a271ea.zip/node_modules/v8-compile-cache/v8-compile-cache.js"); +/******/ var __webpack_exports__ = __webpack_require__("../../../.yarn/berry/cache/v8-compile-cache-npm-2.3.0-961375f150-9.zip/node_modules/v8-compile-cache/v8-compile-cache.js"); /******/ var __webpack_export_target__ = exports; /******/ for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i]; /******/ if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true }); diff --git a/deps/corepack/dist/vendors-_yarn_berry_cache_proxy-agent-npm-5_0_0-41772f4b01-9_zip_node_modules_proxy-agent_index_js.js b/deps/corepack/dist/vendors-_yarn_berry_cache_proxy-agent-npm-5_0_0-41772f4b01-9_zip_node_modules_proxy-agent_index_js.js new file mode 100644 index 00000000000000..4406f4966a4d0c --- /dev/null +++ b/deps/corepack/dist/vendors-_yarn_berry_cache_proxy-agent-npm-5_0_0-41772f4b01-9_zip_node_modules_proxy-agent_index_js.js @@ -0,0 +1,40843 @@ +exports.id = "vendors-_yarn_berry_cache_proxy-agent-npm-5_0_0-41772f4b01-9_zip_node_modules_proxy-agent_index_js"; +exports.ids = ["vendors-_yarn_berry_cache_proxy-agent-npm-5_0_0-41772f4b01-9_zip_node_modules_proxy-agent_index_js"]; +exports.modules = { + +/***/ "../../../.yarn/berry/cache/@tootallnate-once-npm-1.1.2-0517220057-9.zip/node_modules/@tootallnate/once/dist/index.js": +/*!****************************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/@tootallnate-once-npm-1.1.2-0517220057-9.zip/node_modules/@tootallnate/once/dist/index.js ***! + \****************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; + +function noop() { } +function once(emitter, name) { + const o = once.spread(emitter, name); + const r = o.then((args) => args[0]); + r.cancel = o.cancel; + return r; +} +(function (once) { + function spread(emitter, name) { + let c = null; + const p = new Promise((resolve, reject) => { + function cancel() { + emitter.removeListener(name, onEvent); + emitter.removeListener('error', onError); + p.cancel = noop; + } + function onEvent(...args) { + cancel(); + resolve(args); + } + function onError(err) { + cancel(); + reject(err); + } + c = cancel; + emitter.on(name, onEvent); + emitter.on('error', onError); + }); + if (!c) { + throw new TypeError('Could not get `cancel()` function'); + } + p.cancel = c; + return p; + } + once.spread = spread; +})(once || (once = {})); +module.exports = once; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "../../../.yarn/berry/cache/agent-base-npm-6.0.2-428f325a93-9.zip/node_modules/agent-base/dist/src/index.js": +/*!******************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/agent-base-npm-6.0.2-428f325a93-9.zip/node_modules/agent-base/dist/src/index.js ***! + \******************************************************************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +const events_1 = __webpack_require__(/*! events */ "events"); +const debug_1 = __importDefault(__webpack_require__(/*! debug */ "./.yarn/__virtual__/debug-virtual-a35d5f160d/4/.yarn/berry/cache/debug-npm-4.3.4-4513954577-9.zip/node_modules/debug/src/index.js")); +const promisify_1 = __importDefault(__webpack_require__(/*! ./promisify */ "../../../.yarn/berry/cache/agent-base-npm-6.0.2-428f325a93-9.zip/node_modules/agent-base/dist/src/promisify.js")); +const debug = debug_1.default('agent-base'); +function isAgent(v) { + return Boolean(v) && typeof v.addRequest === 'function'; +} +function isSecureEndpoint() { + const { stack } = new Error(); + if (typeof stack !== 'string') + return false; + return stack.split('\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1); +} +function createAgent(callback, opts) { + return new createAgent.Agent(callback, opts); +} +(function (createAgent) { + /** + * Base `http.Agent` implementation. + * No pooling/keep-alive is implemented by default. + * + * @param {Function} callback + * @api public + */ + class Agent extends events_1.EventEmitter { + constructor(callback, _opts) { + super(); + let opts = _opts; + if (typeof callback === 'function') { + this.callback = callback; + } + else if (callback) { + opts = callback; + } + // Timeout for the socket to be returned from the callback + this.timeout = null; + if (opts && typeof opts.timeout === 'number') { + this.timeout = opts.timeout; + } + // These aren't actually used by `agent-base`, but are required + // for the TypeScript definition files in `@types/node` :/ + this.maxFreeSockets = 1; + this.maxSockets = 1; + this.maxTotalSockets = Infinity; + this.sockets = {}; + this.freeSockets = {}; + this.requests = {}; + this.options = {}; + } + get defaultPort() { + if (typeof this.explicitDefaultPort === 'number') { + return this.explicitDefaultPort; + } + return isSecureEndpoint() ? 443 : 80; + } + set defaultPort(v) { + this.explicitDefaultPort = v; + } + get protocol() { + if (typeof this.explicitProtocol === 'string') { + return this.explicitProtocol; + } + return isSecureEndpoint() ? 'https:' : 'http:'; + } + set protocol(v) { + this.explicitProtocol = v; + } + callback(req, opts, fn) { + throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`'); + } + /** + * Called by node-core's "_http_client.js" module when creating + * a new HTTP request with this Agent instance. + * + * @api public + */ + addRequest(req, _opts) { + const opts = Object.assign({}, _opts); + if (typeof opts.secureEndpoint !== 'boolean') { + opts.secureEndpoint = isSecureEndpoint(); + } + if (opts.host == null) { + opts.host = 'localhost'; + } + if (opts.port == null) { + opts.port = opts.secureEndpoint ? 443 : 80; + } + if (opts.protocol == null) { + opts.protocol = opts.secureEndpoint ? 'https:' : 'http:'; + } + if (opts.host && opts.path) { + // If both a `host` and `path` are specified then it's most + // likely the result of a `url.parse()` call... we need to + // remove the `path` portion so that `net.connect()` doesn't + // attempt to open that as a unix socket file. + delete opts.path; + } + delete opts.agent; + delete opts.hostname; + delete opts._defaultAgent; + delete opts.defaultPort; + delete opts.createConnection; + // Hint to use "Connection: close" + // XXX: non-documented `http` module API :( + req._last = true; + req.shouldKeepAlive = false; + let timedOut = false; + let timeoutId = null; + const timeoutMs = opts.timeout || this.timeout; + const onerror = (err) => { + if (req._hadError) + return; + req.emit('error', err); + // For Safety. Some additional errors might fire later on + // and we need to make sure we don't double-fire the error event. + req._hadError = true; + }; + const ontimeout = () => { + timeoutId = null; + timedOut = true; + const err = new Error(`A "socket" was not created for HTTP request before ${timeoutMs}ms`); + err.code = 'ETIMEOUT'; + onerror(err); + }; + const callbackError = (err) => { + if (timedOut) + return; + if (timeoutId !== null) { + clearTimeout(timeoutId); + timeoutId = null; + } + onerror(err); + }; + const onsocket = (socket) => { + if (timedOut) + return; + if (timeoutId != null) { + clearTimeout(timeoutId); + timeoutId = null; + } + if (isAgent(socket)) { + // `socket` is actually an `http.Agent` instance, so + // relinquish responsibility for this `req` to the Agent + // from here on + debug('Callback returned another Agent instance %o', socket.constructor.name); + socket.addRequest(req, opts); + return; + } + if (socket) { + socket.once('free', () => { + this.freeSocket(socket, opts); + }); + req.onSocket(socket); + return; + } + const err = new Error(`no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\``); + onerror(err); + }; + if (typeof this.callback !== 'function') { + onerror(new Error('`callback` is not defined')); + return; + } + if (!this.promisifiedCallback) { + if (this.callback.length >= 3) { + debug('Converting legacy callback function to promise'); + this.promisifiedCallback = promisify_1.default(this.callback); + } + else { + this.promisifiedCallback = this.callback; + } + } + if (typeof timeoutMs === 'number' && timeoutMs > 0) { + timeoutId = setTimeout(ontimeout, timeoutMs); + } + if ('port' in opts && typeof opts.port !== 'number') { + opts.port = Number(opts.port); + } + try { + debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`); + Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError); + } + catch (err) { + Promise.reject(err).catch(callbackError); + } + } + freeSocket(socket, opts) { + debug('Freeing socket %o %o', socket.constructor.name, opts); + socket.destroy(); + } + destroy() { + debug('Destroying agent %o', this.constructor.name); + } + } + createAgent.Agent = Agent; + // So that `instanceof` works correctly + createAgent.prototype = createAgent.Agent.prototype; +})(createAgent || (createAgent = {})); +module.exports = createAgent; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "../../../.yarn/berry/cache/agent-base-npm-6.0.2-428f325a93-9.zip/node_modules/agent-base/dist/src/promisify.js": +/*!**********************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/agent-base-npm-6.0.2-428f325a93-9.zip/node_modules/agent-base/dist/src/promisify.js ***! + \**********************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +function promisify(fn) { + return function (req, opts) { + return new Promise((resolve, reject) => { + fn.call(this, req, opts, (err, rtn) => { + if (err) { + reject(err); + } + else { + resolve(rtn); + } + }); + }); + }; +} +exports["default"] = promisify; +//# sourceMappingURL=promisify.js.map + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/babel-core.js": +/*!*****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/babel-core.js ***! + \*****************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +var es7_1 = tslib_1.__importDefault(__webpack_require__(/*! ./es7 */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es7.js")); +function default_1(fork) { + fork.use(es7_1.default); + var types = fork.use(types_1.default); + var defaults = fork.use(shared_1.default).defaults; + var def = types.Type.def; + var or = types.Type.or; + def("Noop") + .bases("Statement") + .build(); + def("DoExpression") + .bases("Expression") + .build("body") + .field("body", [def("Statement")]); + def("Super") + .bases("Expression") + .build(); + def("BindExpression") + .bases("Expression") + .build("object", "callee") + .field("object", or(def("Expression"), null)) + .field("callee", def("Expression")); + def("Decorator") + .bases("Node") + .build("expression") + .field("expression", def("Expression")); + def("Property") + .field("decorators", or([def("Decorator")], null), defaults["null"]); + def("MethodDefinition") + .field("decorators", or([def("Decorator")], null), defaults["null"]); + def("MetaProperty") + .bases("Expression") + .build("meta", "property") + .field("meta", def("Identifier")) + .field("property", def("Identifier")); + def("ParenthesizedExpression") + .bases("Expression") + .build("expression") + .field("expression", def("Expression")); + def("ImportSpecifier") + .bases("ModuleSpecifier") + .build("imported", "local") + .field("imported", def("Identifier")); + def("ImportDefaultSpecifier") + .bases("ModuleSpecifier") + .build("local"); + def("ImportNamespaceSpecifier") + .bases("ModuleSpecifier") + .build("local"); + def("ExportDefaultDeclaration") + .bases("Declaration") + .build("declaration") + .field("declaration", or(def("Declaration"), def("Expression"))); + def("ExportNamedDeclaration") + .bases("Declaration") + .build("declaration", "specifiers", "source") + .field("declaration", or(def("Declaration"), null)) + .field("specifiers", [def("ExportSpecifier")], defaults.emptyArray) + .field("source", or(def("Literal"), null), defaults["null"]); + def("ExportSpecifier") + .bases("ModuleSpecifier") + .build("local", "exported") + .field("exported", def("Identifier")); + def("ExportNamespaceSpecifier") + .bases("Specifier") + .build("exported") + .field("exported", def("Identifier")); + def("ExportDefaultSpecifier") + .bases("Specifier") + .build("exported") + .field("exported", def("Identifier")); + def("ExportAllDeclaration") + .bases("Declaration") + .build("exported", "source") + .field("exported", or(def("Identifier"), null)) + .field("source", def("Literal")); + def("CommentBlock") + .bases("Comment") + .build("value", /*optional:*/ "leading", "trailing"); + def("CommentLine") + .bases("Comment") + .build("value", /*optional:*/ "leading", "trailing"); + def("Directive") + .bases("Node") + .build("value") + .field("value", def("DirectiveLiteral")); + def("DirectiveLiteral") + .bases("Node", "Expression") + .build("value") + .field("value", String, defaults["use strict"]); + def("InterpreterDirective") + .bases("Node") + .build("value") + .field("value", String); + def("BlockStatement") + .bases("Statement") + .build("body") + .field("body", [def("Statement")]) + .field("directives", [def("Directive")], defaults.emptyArray); + def("Program") + .bases("Node") + .build("body") + .field("body", [def("Statement")]) + .field("directives", [def("Directive")], defaults.emptyArray) + .field("interpreter", or(def("InterpreterDirective"), null), defaults["null"]); + // Split Literal + def("StringLiteral") + .bases("Literal") + .build("value") + .field("value", String); + def("NumericLiteral") + .bases("Literal") + .build("value") + .field("value", Number) + .field("raw", or(String, null), defaults["null"]) + .field("extra", { + rawValue: Number, + raw: String + }, function getDefault() { + return { + rawValue: this.value, + raw: this.value + "" + }; + }); + def("BigIntLiteral") + .bases("Literal") + .build("value") + // Only String really seems appropriate here, since BigInt values + // often exceed the limits of JS numbers. + .field("value", or(String, Number)) + .field("extra", { + rawValue: String, + raw: String + }, function getDefault() { + return { + rawValue: String(this.value), + raw: this.value + "n" + }; + }); + def("NullLiteral") + .bases("Literal") + .build() + .field("value", null, defaults["null"]); + def("BooleanLiteral") + .bases("Literal") + .build("value") + .field("value", Boolean); + def("RegExpLiteral") + .bases("Literal") + .build("pattern", "flags") + .field("pattern", String) + .field("flags", String) + .field("value", RegExp, function () { + return new RegExp(this.pattern, this.flags); + }); + var ObjectExpressionProperty = or(def("Property"), def("ObjectMethod"), def("ObjectProperty"), def("SpreadProperty"), def("SpreadElement")); + // Split Property -> ObjectProperty and ObjectMethod + def("ObjectExpression") + .bases("Expression") + .build("properties") + .field("properties", [ObjectExpressionProperty]); + // ObjectMethod hoist .value properties to own properties + def("ObjectMethod") + .bases("Node", "Function") + .build("kind", "key", "params", "body", "computed") + .field("kind", or("method", "get", "set")) + .field("key", or(def("Literal"), def("Identifier"), def("Expression"))) + .field("params", [def("Pattern")]) + .field("body", def("BlockStatement")) + .field("computed", Boolean, defaults["false"]) + .field("generator", Boolean, defaults["false"]) + .field("async", Boolean, defaults["false"]) + .field("accessibility", // TypeScript + or(def("Literal"), null), defaults["null"]) + .field("decorators", or([def("Decorator")], null), defaults["null"]); + def("ObjectProperty") + .bases("Node") + .build("key", "value") + .field("key", or(def("Literal"), def("Identifier"), def("Expression"))) + .field("value", or(def("Expression"), def("Pattern"))) + .field("accessibility", // TypeScript + or(def("Literal"), null), defaults["null"]) + .field("computed", Boolean, defaults["false"]); + var ClassBodyElement = or(def("MethodDefinition"), def("VariableDeclarator"), def("ClassPropertyDefinition"), def("ClassProperty"), def("ClassPrivateProperty"), def("ClassMethod"), def("ClassPrivateMethod")); + // MethodDefinition -> ClassMethod + def("ClassBody") + .bases("Declaration") + .build("body") + .field("body", [ClassBodyElement]); + def("ClassMethod") + .bases("Declaration", "Function") + .build("kind", "key", "params", "body", "computed", "static") + .field("key", or(def("Literal"), def("Identifier"), def("Expression"))); + def("ClassPrivateMethod") + .bases("Declaration", "Function") + .build("key", "params", "body", "kind", "computed", "static") + .field("key", def("PrivateName")); + ["ClassMethod", + "ClassPrivateMethod", + ].forEach(function (typeName) { + def(typeName) + .field("kind", or("get", "set", "method", "constructor"), function () { return "method"; }) + .field("body", def("BlockStatement")) + .field("computed", Boolean, defaults["false"]) + .field("static", or(Boolean, null), defaults["null"]) + .field("abstract", or(Boolean, null), defaults["null"]) + .field("access", or("public", "private", "protected", null), defaults["null"]) + .field("accessibility", or("public", "private", "protected", null), defaults["null"]) + .field("decorators", or([def("Decorator")], null), defaults["null"]) + .field("optional", or(Boolean, null), defaults["null"]); + }); + def("ClassPrivateProperty") + .bases("ClassProperty") + .build("key", "value") + .field("key", def("PrivateName")) + .field("value", or(def("Expression"), null), defaults["null"]); + def("PrivateName") + .bases("Expression", "Pattern") + .build("id") + .field("id", def("Identifier")); + var ObjectPatternProperty = or(def("Property"), def("PropertyPattern"), def("SpreadPropertyPattern"), def("SpreadProperty"), // Used by Esprima + def("ObjectProperty"), // Babel 6 + def("RestProperty") // Babel 6 + ); + // Split into RestProperty and SpreadProperty + def("ObjectPattern") + .bases("Pattern") + .build("properties") + .field("properties", [ObjectPatternProperty]) + .field("decorators", or([def("Decorator")], null), defaults["null"]); + def("SpreadProperty") + .bases("Node") + .build("argument") + .field("argument", def("Expression")); + def("RestProperty") + .bases("Node") + .build("argument") + .field("argument", def("Expression")); + def("ForAwaitStatement") + .bases("Statement") + .build("left", "right", "body") + .field("left", or(def("VariableDeclaration"), def("Expression"))) + .field("right", def("Expression")) + .field("body", def("Statement")); + // The callee node of a dynamic import(...) expression. + def("Import") + .bases("Expression") + .build(); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/babel.js": +/*!************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/babel.js ***! + \************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var babel_core_1 = tslib_1.__importDefault(__webpack_require__(/*! ./babel-core */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/babel-core.js")); +var flow_1 = tslib_1.__importDefault(__webpack_require__(/*! ./flow */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/flow.js")); +function default_1(fork) { + fork.use(babel_core_1.default); + fork.use(flow_1.default); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/core.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/core.js ***! + \***********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +function default_1(fork) { + var types = fork.use(types_1.default); + var Type = types.Type; + var def = Type.def; + var or = Type.or; + var shared = fork.use(shared_1.default); + var defaults = shared.defaults; + var geq = shared.geq; + // Abstract supertype of all syntactic entities that are allowed to have a + // .loc field. + def("Printable") + .field("loc", or(def("SourceLocation"), null), defaults["null"], true); + def("Node") + .bases("Printable") + .field("type", String) + .field("comments", or([def("Comment")], null), defaults["null"], true); + def("SourceLocation") + .field("start", def("Position")) + .field("end", def("Position")) + .field("source", or(String, null), defaults["null"]); + def("Position") + .field("line", geq(1)) + .field("column", geq(0)); + def("File") + .bases("Node") + .build("program", "name") + .field("program", def("Program")) + .field("name", or(String, null), defaults["null"]); + def("Program") + .bases("Node") + .build("body") + .field("body", [def("Statement")]); + def("Function") + .bases("Node") + .field("id", or(def("Identifier"), null), defaults["null"]) + .field("params", [def("Pattern")]) + .field("body", def("BlockStatement")) + .field("generator", Boolean, defaults["false"]) + .field("async", Boolean, defaults["false"]); + def("Statement").bases("Node"); + // The empty .build() here means that an EmptyStatement can be constructed + // (i.e. it's not abstract) but that it needs no arguments. + def("EmptyStatement").bases("Statement").build(); + def("BlockStatement") + .bases("Statement") + .build("body") + .field("body", [def("Statement")]); + // TODO Figure out how to silently coerce Expressions to + // ExpressionStatements where a Statement was expected. + def("ExpressionStatement") + .bases("Statement") + .build("expression") + .field("expression", def("Expression")); + def("IfStatement") + .bases("Statement") + .build("test", "consequent", "alternate") + .field("test", def("Expression")) + .field("consequent", def("Statement")) + .field("alternate", or(def("Statement"), null), defaults["null"]); + def("LabeledStatement") + .bases("Statement") + .build("label", "body") + .field("label", def("Identifier")) + .field("body", def("Statement")); + def("BreakStatement") + .bases("Statement") + .build("label") + .field("label", or(def("Identifier"), null), defaults["null"]); + def("ContinueStatement") + .bases("Statement") + .build("label") + .field("label", or(def("Identifier"), null), defaults["null"]); + def("WithStatement") + .bases("Statement") + .build("object", "body") + .field("object", def("Expression")) + .field("body", def("Statement")); + def("SwitchStatement") + .bases("Statement") + .build("discriminant", "cases", "lexical") + .field("discriminant", def("Expression")) + .field("cases", [def("SwitchCase")]) + .field("lexical", Boolean, defaults["false"]); + def("ReturnStatement") + .bases("Statement") + .build("argument") + .field("argument", or(def("Expression"), null)); + def("ThrowStatement") + .bases("Statement") + .build("argument") + .field("argument", def("Expression")); + def("TryStatement") + .bases("Statement") + .build("block", "handler", "finalizer") + .field("block", def("BlockStatement")) + .field("handler", or(def("CatchClause"), null), function () { + return this.handlers && this.handlers[0] || null; + }) + .field("handlers", [def("CatchClause")], function () { + return this.handler ? [this.handler] : []; + }, true) // Indicates this field is hidden from eachField iteration. + .field("guardedHandlers", [def("CatchClause")], defaults.emptyArray) + .field("finalizer", or(def("BlockStatement"), null), defaults["null"]); + def("CatchClause") + .bases("Node") + .build("param", "guard", "body") + // https://github.com/tc39/proposal-optional-catch-binding + .field("param", or(def("Pattern"), null), defaults["null"]) + .field("guard", or(def("Expression"), null), defaults["null"]) + .field("body", def("BlockStatement")); + def("WhileStatement") + .bases("Statement") + .build("test", "body") + .field("test", def("Expression")) + .field("body", def("Statement")); + def("DoWhileStatement") + .bases("Statement") + .build("body", "test") + .field("body", def("Statement")) + .field("test", def("Expression")); + def("ForStatement") + .bases("Statement") + .build("init", "test", "update", "body") + .field("init", or(def("VariableDeclaration"), def("Expression"), null)) + .field("test", or(def("Expression"), null)) + .field("update", or(def("Expression"), null)) + .field("body", def("Statement")); + def("ForInStatement") + .bases("Statement") + .build("left", "right", "body") + .field("left", or(def("VariableDeclaration"), def("Expression"))) + .field("right", def("Expression")) + .field("body", def("Statement")); + def("DebuggerStatement").bases("Statement").build(); + def("Declaration").bases("Statement"); + def("FunctionDeclaration") + .bases("Function", "Declaration") + .build("id", "params", "body") + .field("id", def("Identifier")); + def("FunctionExpression") + .bases("Function", "Expression") + .build("id", "params", "body"); + def("VariableDeclaration") + .bases("Declaration") + .build("kind", "declarations") + .field("kind", or("var", "let", "const")) + .field("declarations", [def("VariableDeclarator")]); + def("VariableDeclarator") + .bases("Node") + .build("id", "init") + .field("id", def("Pattern")) + .field("init", or(def("Expression"), null), defaults["null"]); + def("Expression").bases("Node"); + def("ThisExpression").bases("Expression").build(); + def("ArrayExpression") + .bases("Expression") + .build("elements") + .field("elements", [or(def("Expression"), null)]); + def("ObjectExpression") + .bases("Expression") + .build("properties") + .field("properties", [def("Property")]); + // TODO Not in the Mozilla Parser API, but used by Esprima. + def("Property") + .bases("Node") // Want to be able to visit Property Nodes. + .build("kind", "key", "value") + .field("kind", or("init", "get", "set")) + .field("key", or(def("Literal"), def("Identifier"))) + .field("value", def("Expression")); + def("SequenceExpression") + .bases("Expression") + .build("expressions") + .field("expressions", [def("Expression")]); + var UnaryOperator = or("-", "+", "!", "~", "typeof", "void", "delete"); + def("UnaryExpression") + .bases("Expression") + .build("operator", "argument", "prefix") + .field("operator", UnaryOperator) + .field("argument", def("Expression")) + // Esprima doesn't bother with this field, presumably because it's + // always true for unary operators. + .field("prefix", Boolean, defaults["true"]); + var BinaryOperator = or("==", "!=", "===", "!==", "<", "<=", ">", ">=", "<<", ">>", ">>>", "+", "-", "*", "/", "%", "**", "&", // TODO Missing from the Parser API. + "|", "^", "in", "instanceof"); + def("BinaryExpression") + .bases("Expression") + .build("operator", "left", "right") + .field("operator", BinaryOperator) + .field("left", def("Expression")) + .field("right", def("Expression")); + var AssignmentOperator = or("=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&="); + def("AssignmentExpression") + .bases("Expression") + .build("operator", "left", "right") + .field("operator", AssignmentOperator) + .field("left", or(def("Pattern"), def("MemberExpression"))) + .field("right", def("Expression")); + var UpdateOperator = or("++", "--"); + def("UpdateExpression") + .bases("Expression") + .build("operator", "argument", "prefix") + .field("operator", UpdateOperator) + .field("argument", def("Expression")) + .field("prefix", Boolean); + var LogicalOperator = or("||", "&&"); + def("LogicalExpression") + .bases("Expression") + .build("operator", "left", "right") + .field("operator", LogicalOperator) + .field("left", def("Expression")) + .field("right", def("Expression")); + def("ConditionalExpression") + .bases("Expression") + .build("test", "consequent", "alternate") + .field("test", def("Expression")) + .field("consequent", def("Expression")) + .field("alternate", def("Expression")); + def("NewExpression") + .bases("Expression") + .build("callee", "arguments") + .field("callee", def("Expression")) + // The Mozilla Parser API gives this type as [or(def("Expression"), + // null)], but null values don't really make sense at the call site. + // TODO Report this nonsense. + .field("arguments", [def("Expression")]); + def("CallExpression") + .bases("Expression") + .build("callee", "arguments") + .field("callee", def("Expression")) + // See comment for NewExpression above. + .field("arguments", [def("Expression")]); + def("MemberExpression") + .bases("Expression") + .build("object", "property", "computed") + .field("object", def("Expression")) + .field("property", or(def("Identifier"), def("Expression"))) + .field("computed", Boolean, function () { + var type = this.property.type; + if (type === 'Literal' || + type === 'MemberExpression' || + type === 'BinaryExpression') { + return true; + } + return false; + }); + def("Pattern").bases("Node"); + def("SwitchCase") + .bases("Node") + .build("test", "consequent") + .field("test", or(def("Expression"), null)) + .field("consequent", [def("Statement")]); + def("Identifier") + .bases("Expression", "Pattern") + .build("name") + .field("name", String) + .field("optional", Boolean, defaults["false"]); + def("Literal") + .bases("Expression") + .build("value") + .field("value", or(String, Boolean, null, Number, RegExp)) + .field("regex", or({ + pattern: String, + flags: String + }, null), function () { + if (this.value instanceof RegExp) { + var flags = ""; + if (this.value.ignoreCase) + flags += "i"; + if (this.value.multiline) + flags += "m"; + if (this.value.global) + flags += "g"; + return { + pattern: this.value.source, + flags: flags + }; + } + return null; + }); + // Abstract (non-buildable) comment supertype. Not a Node. + def("Comment") + .bases("Printable") + .field("value", String) + // A .leading comment comes before the node, whereas a .trailing + // comment comes after it. These two fields should not both be true, + // but they might both be false when the comment falls inside a node + // and the node has no children for the comment to lead or trail, + // e.g. { /*dangling*/ }. + .field("leading", Boolean, defaults["true"]) + .field("trailing", Boolean, defaults["false"]); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es-proposals.js": +/*!*******************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es-proposals.js ***! + \*******************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +var core_1 = tslib_1.__importDefault(__webpack_require__(/*! ./core */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/core.js")); +function default_1(fork) { + fork.use(core_1.default); + var types = fork.use(types_1.default); + var Type = types.Type; + var def = types.Type.def; + var or = Type.or; + var shared = fork.use(shared_1.default); + var defaults = shared.defaults; + // https://github.com/tc39/proposal-optional-chaining + // `a?.b` as per https://github.com/estree/estree/issues/146 + def("OptionalMemberExpression") + .bases("MemberExpression") + .build("object", "property", "computed", "optional") + .field("optional", Boolean, defaults["true"]); + // a?.b() + def("OptionalCallExpression") + .bases("CallExpression") + .build("callee", "arguments", "optional") + .field("optional", Boolean, defaults["true"]); + // https://github.com/tc39/proposal-nullish-coalescing + // `a ?? b` as per https://github.com/babel/babylon/pull/761/files + var LogicalOperator = or("||", "&&", "??"); + def("LogicalExpression") + .field("operator", LogicalOperator); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es2020.js": +/*!*************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es2020.js ***! + \*************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var es7_1 = tslib_1.__importDefault(__webpack_require__(/*! ./es7 */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es7.js")); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +function default_1(fork) { + fork.use(es7_1.default); + var types = fork.use(types_1.default); + var def = types.Type.def; + def("ImportExpression") + .bases("Expression") + .build("source") + .field("source", def("Expression")); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es6.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es6.js ***! + \**********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var core_1 = tslib_1.__importDefault(__webpack_require__(/*! ./core */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/core.js")); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +function default_1(fork) { + fork.use(core_1.default); + var types = fork.use(types_1.default); + var def = types.Type.def; + var or = types.Type.or; + var defaults = fork.use(shared_1.default).defaults; + def("Function") + .field("generator", Boolean, defaults["false"]) + .field("expression", Boolean, defaults["false"]) + .field("defaults", [or(def("Expression"), null)], defaults.emptyArray) + // TODO This could be represented as a RestElement in .params. + .field("rest", or(def("Identifier"), null), defaults["null"]); + // The ESTree way of representing a ...rest parameter. + def("RestElement") + .bases("Pattern") + .build("argument") + .field("argument", def("Pattern")) + .field("typeAnnotation", // for Babylon. Flow parser puts it on the identifier + or(def("TypeAnnotation"), def("TSTypeAnnotation"), null), defaults["null"]); + def("SpreadElementPattern") + .bases("Pattern") + .build("argument") + .field("argument", def("Pattern")); + def("FunctionDeclaration") + .build("id", "params", "body", "generator", "expression"); + def("FunctionExpression") + .build("id", "params", "body", "generator", "expression"); + // The Parser API calls this ArrowExpression, but Esprima and all other + // actual parsers use ArrowFunctionExpression. + def("ArrowFunctionExpression") + .bases("Function", "Expression") + .build("params", "body", "expression") + // The forced null value here is compatible with the overridden + // definition of the "id" field in the Function interface. + .field("id", null, defaults["null"]) + // Arrow function bodies are allowed to be expressions. + .field("body", or(def("BlockStatement"), def("Expression"))) + // The current spec forbids arrow generators, so I have taken the + // liberty of enforcing that. TODO Report this. + .field("generator", false, defaults["false"]); + def("ForOfStatement") + .bases("Statement") + .build("left", "right", "body") + .field("left", or(def("VariableDeclaration"), def("Pattern"))) + .field("right", def("Expression")) + .field("body", def("Statement")); + def("YieldExpression") + .bases("Expression") + .build("argument", "delegate") + .field("argument", or(def("Expression"), null)) + .field("delegate", Boolean, defaults["false"]); + def("GeneratorExpression") + .bases("Expression") + .build("body", "blocks", "filter") + .field("body", def("Expression")) + .field("blocks", [def("ComprehensionBlock")]) + .field("filter", or(def("Expression"), null)); + def("ComprehensionExpression") + .bases("Expression") + .build("body", "blocks", "filter") + .field("body", def("Expression")) + .field("blocks", [def("ComprehensionBlock")]) + .field("filter", or(def("Expression"), null)); + def("ComprehensionBlock") + .bases("Node") + .build("left", "right", "each") + .field("left", def("Pattern")) + .field("right", def("Expression")) + .field("each", Boolean); + def("Property") + .field("key", or(def("Literal"), def("Identifier"), def("Expression"))) + .field("value", or(def("Expression"), def("Pattern"))) + .field("method", Boolean, defaults["false"]) + .field("shorthand", Boolean, defaults["false"]) + .field("computed", Boolean, defaults["false"]); + def("ObjectProperty") + .field("shorthand", Boolean, defaults["false"]); + def("PropertyPattern") + .bases("Pattern") + .build("key", "pattern") + .field("key", or(def("Literal"), def("Identifier"), def("Expression"))) + .field("pattern", def("Pattern")) + .field("computed", Boolean, defaults["false"]); + def("ObjectPattern") + .bases("Pattern") + .build("properties") + .field("properties", [or(def("PropertyPattern"), def("Property"))]); + def("ArrayPattern") + .bases("Pattern") + .build("elements") + .field("elements", [or(def("Pattern"), null)]); + def("MethodDefinition") + .bases("Declaration") + .build("kind", "key", "value", "static") + .field("kind", or("constructor", "method", "get", "set")) + .field("key", def("Expression")) + .field("value", def("Function")) + .field("computed", Boolean, defaults["false"]) + .field("static", Boolean, defaults["false"]); + def("SpreadElement") + .bases("Node") + .build("argument") + .field("argument", def("Expression")); + def("ArrayExpression") + .field("elements", [or(def("Expression"), def("SpreadElement"), def("RestElement"), null)]); + def("NewExpression") + .field("arguments", [or(def("Expression"), def("SpreadElement"))]); + def("CallExpression") + .field("arguments", [or(def("Expression"), def("SpreadElement"))]); + // Note: this node type is *not* an AssignmentExpression with a Pattern on + // the left-hand side! The existing AssignmentExpression type already + // supports destructuring assignments. AssignmentPattern nodes may appear + // wherever a Pattern is allowed, and the right-hand side represents a + // default value to be destructured against the left-hand side, if no + // value is otherwise provided. For example: default parameter values. + def("AssignmentPattern") + .bases("Pattern") + .build("left", "right") + .field("left", def("Pattern")) + .field("right", def("Expression")); + var ClassBodyElement = or(def("MethodDefinition"), def("VariableDeclarator"), def("ClassPropertyDefinition"), def("ClassProperty")); + def("ClassProperty") + .bases("Declaration") + .build("key") + .field("key", or(def("Literal"), def("Identifier"), def("Expression"))) + .field("computed", Boolean, defaults["false"]); + def("ClassPropertyDefinition") // static property + .bases("Declaration") + .build("definition") + // Yes, Virginia, circular definitions are permitted. + .field("definition", ClassBodyElement); + def("ClassBody") + .bases("Declaration") + .build("body") + .field("body", [ClassBodyElement]); + def("ClassDeclaration") + .bases("Declaration") + .build("id", "body", "superClass") + .field("id", or(def("Identifier"), null)) + .field("body", def("ClassBody")) + .field("superClass", or(def("Expression"), null), defaults["null"]); + def("ClassExpression") + .bases("Expression") + .build("id", "body", "superClass") + .field("id", or(def("Identifier"), null), defaults["null"]) + .field("body", def("ClassBody")) + .field("superClass", or(def("Expression"), null), defaults["null"]); + // Specifier and ModuleSpecifier are abstract non-standard types + // introduced for definitional convenience. + def("Specifier").bases("Node"); + // This supertype is shared/abused by both def/babel.js and + // def/esprima.js. In the future, it will be possible to load only one set + // of definitions appropriate for a given parser, but until then we must + // rely on default functions to reconcile the conflicting AST formats. + def("ModuleSpecifier") + .bases("Specifier") + // This local field is used by Babel/Acorn. It should not technically + // be optional in the Babel/Acorn AST format, but it must be optional + // in the Esprima AST format. + .field("local", or(def("Identifier"), null), defaults["null"]) + // The id and name fields are used by Esprima. The id field should not + // technically be optional in the Esprima AST format, but it must be + // optional in the Babel/Acorn AST format. + .field("id", or(def("Identifier"), null), defaults["null"]) + .field("name", or(def("Identifier"), null), defaults["null"]); + // Like ModuleSpecifier, except type:"ImportSpecifier" and buildable. + // import {} from ...; + def("ImportSpecifier") + .bases("ModuleSpecifier") + .build("id", "name"); + // import <* as id> from ...; + def("ImportNamespaceSpecifier") + .bases("ModuleSpecifier") + .build("id"); + // import from ...; + def("ImportDefaultSpecifier") + .bases("ModuleSpecifier") + .build("id"); + def("ImportDeclaration") + .bases("Declaration") + .build("specifiers", "source", "importKind") + .field("specifiers", [or(def("ImportSpecifier"), def("ImportNamespaceSpecifier"), def("ImportDefaultSpecifier"))], defaults.emptyArray) + .field("source", def("Literal")) + .field("importKind", or("value", "type"), function () { + return "value"; + }); + def("TaggedTemplateExpression") + .bases("Expression") + .build("tag", "quasi") + .field("tag", def("Expression")) + .field("quasi", def("TemplateLiteral")); + def("TemplateLiteral") + .bases("Expression") + .build("quasis", "expressions") + .field("quasis", [def("TemplateElement")]) + .field("expressions", [def("Expression")]); + def("TemplateElement") + .bases("Node") + .build("value", "tail") + .field("value", { "cooked": String, "raw": String }) + .field("tail", Boolean); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es7.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es7.js ***! + \**********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var es6_1 = tslib_1.__importDefault(__webpack_require__(/*! ./es6 */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es6.js")); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +function default_1(fork) { + fork.use(es6_1.default); + var types = fork.use(types_1.default); + var def = types.Type.def; + var or = types.Type.or; + var defaults = fork.use(shared_1.default).defaults; + def("Function") + .field("async", Boolean, defaults["false"]); + def("SpreadProperty") + .bases("Node") + .build("argument") + .field("argument", def("Expression")); + def("ObjectExpression") + .field("properties", [or(def("Property"), def("SpreadProperty"), def("SpreadElement"))]); + def("SpreadPropertyPattern") + .bases("Pattern") + .build("argument") + .field("argument", def("Pattern")); + def("ObjectPattern") + .field("properties", [or(def("Property"), def("PropertyPattern"), def("SpreadPropertyPattern"))]); + def("AwaitExpression") + .bases("Expression") + .build("argument", "all") + .field("argument", or(def("Expression"), null)) + .field("all", Boolean, defaults["false"]); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/esprima.js": +/*!**************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/esprima.js ***! + \**************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var es7_1 = tslib_1.__importDefault(__webpack_require__(/*! ./es7 */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es7.js")); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +function default_1(fork) { + fork.use(es7_1.default); + var types = fork.use(types_1.default); + var defaults = fork.use(shared_1.default).defaults; + var def = types.Type.def; + var or = types.Type.or; + def("VariableDeclaration") + .field("declarations", [or(def("VariableDeclarator"), def("Identifier") // Esprima deviation. + )]); + def("Property") + .field("value", or(def("Expression"), def("Pattern") // Esprima deviation. + )); + def("ArrayPattern") + .field("elements", [or(def("Pattern"), def("SpreadElement"), null)]); + def("ObjectPattern") + .field("properties", [or(def("Property"), def("PropertyPattern"), def("SpreadPropertyPattern"), def("SpreadProperty") // Used by Esprima. + )]); + // Like ModuleSpecifier, except type:"ExportSpecifier" and buildable. + // export {} [from ...]; + def("ExportSpecifier") + .bases("ModuleSpecifier") + .build("id", "name"); + // export <*> from ...; + def("ExportBatchSpecifier") + .bases("Specifier") + .build(); + def("ExportDeclaration") + .bases("Declaration") + .build("default", "declaration", "specifiers", "source") + .field("default", Boolean) + .field("declaration", or(def("Declaration"), def("Expression"), // Implies default. + null)) + .field("specifiers", [or(def("ExportSpecifier"), def("ExportBatchSpecifier"))], defaults.emptyArray) + .field("source", or(def("Literal"), null), defaults["null"]); + def("Block") + .bases("Comment") + .build("value", /*optional:*/ "leading", "trailing"); + def("Line") + .bases("Comment") + .build("value", /*optional:*/ "leading", "trailing"); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/flow.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/flow.js ***! + \***********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var es7_1 = tslib_1.__importDefault(__webpack_require__(/*! ./es7 */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es7.js")); +var type_annotations_1 = tslib_1.__importDefault(__webpack_require__(/*! ./type-annotations */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/type-annotations.js")); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +function default_1(fork) { + fork.use(es7_1.default); + fork.use(type_annotations_1.default); + var types = fork.use(types_1.default); + var def = types.Type.def; + var or = types.Type.or; + var defaults = fork.use(shared_1.default).defaults; + // Base types + def("Flow").bases("Node"); + def("FlowType").bases("Flow"); + // Type annotations + def("AnyTypeAnnotation") + .bases("FlowType") + .build(); + def("EmptyTypeAnnotation") + .bases("FlowType") + .build(); + def("MixedTypeAnnotation") + .bases("FlowType") + .build(); + def("VoidTypeAnnotation") + .bases("FlowType") + .build(); + def("NumberTypeAnnotation") + .bases("FlowType") + .build(); + def("NumberLiteralTypeAnnotation") + .bases("FlowType") + .build("value", "raw") + .field("value", Number) + .field("raw", String); + // Babylon 6 differs in AST from Flow + // same as NumberLiteralTypeAnnotation + def("NumericLiteralTypeAnnotation") + .bases("FlowType") + .build("value", "raw") + .field("value", Number) + .field("raw", String); + def("StringTypeAnnotation") + .bases("FlowType") + .build(); + def("StringLiteralTypeAnnotation") + .bases("FlowType") + .build("value", "raw") + .field("value", String) + .field("raw", String); + def("BooleanTypeAnnotation") + .bases("FlowType") + .build(); + def("BooleanLiteralTypeAnnotation") + .bases("FlowType") + .build("value", "raw") + .field("value", Boolean) + .field("raw", String); + def("TypeAnnotation") + .bases("Node") + .build("typeAnnotation") + .field("typeAnnotation", def("FlowType")); + def("NullableTypeAnnotation") + .bases("FlowType") + .build("typeAnnotation") + .field("typeAnnotation", def("FlowType")); + def("NullLiteralTypeAnnotation") + .bases("FlowType") + .build(); + def("NullTypeAnnotation") + .bases("FlowType") + .build(); + def("ThisTypeAnnotation") + .bases("FlowType") + .build(); + def("ExistsTypeAnnotation") + .bases("FlowType") + .build(); + def("ExistentialTypeParam") + .bases("FlowType") + .build(); + def("FunctionTypeAnnotation") + .bases("FlowType") + .build("params", "returnType", "rest", "typeParameters") + .field("params", [def("FunctionTypeParam")]) + .field("returnType", def("FlowType")) + .field("rest", or(def("FunctionTypeParam"), null)) + .field("typeParameters", or(def("TypeParameterDeclaration"), null)); + def("FunctionTypeParam") + .bases("Node") + .build("name", "typeAnnotation", "optional") + .field("name", def("Identifier")) + .field("typeAnnotation", def("FlowType")) + .field("optional", Boolean); + def("ArrayTypeAnnotation") + .bases("FlowType") + .build("elementType") + .field("elementType", def("FlowType")); + def("ObjectTypeAnnotation") + .bases("FlowType") + .build("properties", "indexers", "callProperties") + .field("properties", [ + or(def("ObjectTypeProperty"), def("ObjectTypeSpreadProperty")) + ]) + .field("indexers", [def("ObjectTypeIndexer")], defaults.emptyArray) + .field("callProperties", [def("ObjectTypeCallProperty")], defaults.emptyArray) + .field("inexact", or(Boolean, void 0), defaults["undefined"]) + .field("exact", Boolean, defaults["false"]) + .field("internalSlots", [def("ObjectTypeInternalSlot")], defaults.emptyArray); + def("Variance") + .bases("Node") + .build("kind") + .field("kind", or("plus", "minus")); + var LegacyVariance = or(def("Variance"), "plus", "minus", null); + def("ObjectTypeProperty") + .bases("Node") + .build("key", "value", "optional") + .field("key", or(def("Literal"), def("Identifier"))) + .field("value", def("FlowType")) + .field("optional", Boolean) + .field("variance", LegacyVariance, defaults["null"]); + def("ObjectTypeIndexer") + .bases("Node") + .build("id", "key", "value") + .field("id", def("Identifier")) + .field("key", def("FlowType")) + .field("value", def("FlowType")) + .field("variance", LegacyVariance, defaults["null"]); + def("ObjectTypeCallProperty") + .bases("Node") + .build("value") + .field("value", def("FunctionTypeAnnotation")) + .field("static", Boolean, defaults["false"]); + def("QualifiedTypeIdentifier") + .bases("Node") + .build("qualification", "id") + .field("qualification", or(def("Identifier"), def("QualifiedTypeIdentifier"))) + .field("id", def("Identifier")); + def("GenericTypeAnnotation") + .bases("FlowType") + .build("id", "typeParameters") + .field("id", or(def("Identifier"), def("QualifiedTypeIdentifier"))) + .field("typeParameters", or(def("TypeParameterInstantiation"), null)); + def("MemberTypeAnnotation") + .bases("FlowType") + .build("object", "property") + .field("object", def("Identifier")) + .field("property", or(def("MemberTypeAnnotation"), def("GenericTypeAnnotation"))); + def("UnionTypeAnnotation") + .bases("FlowType") + .build("types") + .field("types", [def("FlowType")]); + def("IntersectionTypeAnnotation") + .bases("FlowType") + .build("types") + .field("types", [def("FlowType")]); + def("TypeofTypeAnnotation") + .bases("FlowType") + .build("argument") + .field("argument", def("FlowType")); + def("ObjectTypeSpreadProperty") + .bases("Node") + .build("argument") + .field("argument", def("FlowType")); + def("ObjectTypeInternalSlot") + .bases("Node") + .build("id", "value", "optional", "static", "method") + .field("id", def("Identifier")) + .field("value", def("FlowType")) + .field("optional", Boolean) + .field("static", Boolean) + .field("method", Boolean); + def("TypeParameterDeclaration") + .bases("Node") + .build("params") + .field("params", [def("TypeParameter")]); + def("TypeParameterInstantiation") + .bases("Node") + .build("params") + .field("params", [def("FlowType")]); + def("TypeParameter") + .bases("FlowType") + .build("name", "variance", "bound") + .field("name", String) + .field("variance", LegacyVariance, defaults["null"]) + .field("bound", or(def("TypeAnnotation"), null), defaults["null"]); + def("ClassProperty") + .field("variance", LegacyVariance, defaults["null"]); + def("ClassImplements") + .bases("Node") + .build("id") + .field("id", def("Identifier")) + .field("superClass", or(def("Expression"), null), defaults["null"]) + .field("typeParameters", or(def("TypeParameterInstantiation"), null), defaults["null"]); + def("InterfaceTypeAnnotation") + .bases("FlowType") + .build("body", "extends") + .field("body", def("ObjectTypeAnnotation")) + .field("extends", or([def("InterfaceExtends")], null), defaults["null"]); + def("InterfaceDeclaration") + .bases("Declaration") + .build("id", "body", "extends") + .field("id", def("Identifier")) + .field("typeParameters", or(def("TypeParameterDeclaration"), null), defaults["null"]) + .field("body", def("ObjectTypeAnnotation")) + .field("extends", [def("InterfaceExtends")]); + def("DeclareInterface") + .bases("InterfaceDeclaration") + .build("id", "body", "extends"); + def("InterfaceExtends") + .bases("Node") + .build("id") + .field("id", def("Identifier")) + .field("typeParameters", or(def("TypeParameterInstantiation"), null), defaults["null"]); + def("TypeAlias") + .bases("Declaration") + .build("id", "typeParameters", "right") + .field("id", def("Identifier")) + .field("typeParameters", or(def("TypeParameterDeclaration"), null)) + .field("right", def("FlowType")); + def("OpaqueType") + .bases("Declaration") + .build("id", "typeParameters", "impltype", "supertype") + .field("id", def("Identifier")) + .field("typeParameters", or(def("TypeParameterDeclaration"), null)) + .field("impltype", def("FlowType")) + .field("supertype", def("FlowType")); + def("DeclareTypeAlias") + .bases("TypeAlias") + .build("id", "typeParameters", "right"); + def("DeclareOpaqueType") + .bases("TypeAlias") + .build("id", "typeParameters", "supertype"); + def("TypeCastExpression") + .bases("Expression") + .build("expression", "typeAnnotation") + .field("expression", def("Expression")) + .field("typeAnnotation", def("TypeAnnotation")); + def("TupleTypeAnnotation") + .bases("FlowType") + .build("types") + .field("types", [def("FlowType")]); + def("DeclareVariable") + .bases("Statement") + .build("id") + .field("id", def("Identifier")); + def("DeclareFunction") + .bases("Statement") + .build("id") + .field("id", def("Identifier")); + def("DeclareClass") + .bases("InterfaceDeclaration") + .build("id"); + def("DeclareModule") + .bases("Statement") + .build("id", "body") + .field("id", or(def("Identifier"), def("Literal"))) + .field("body", def("BlockStatement")); + def("DeclareModuleExports") + .bases("Statement") + .build("typeAnnotation") + .field("typeAnnotation", def("TypeAnnotation")); + def("DeclareExportDeclaration") + .bases("Declaration") + .build("default", "declaration", "specifiers", "source") + .field("default", Boolean) + .field("declaration", or(def("DeclareVariable"), def("DeclareFunction"), def("DeclareClass"), def("FlowType"), // Implies default. + null)) + .field("specifiers", [or(def("ExportSpecifier"), def("ExportBatchSpecifier"))], defaults.emptyArray) + .field("source", or(def("Literal"), null), defaults["null"]); + def("DeclareExportAllDeclaration") + .bases("Declaration") + .build("source") + .field("source", or(def("Literal"), null), defaults["null"]); + def("FlowPredicate").bases("Flow"); + def("InferredPredicate") + .bases("FlowPredicate") + .build(); + def("DeclaredPredicate") + .bases("FlowPredicate") + .build("value") + .field("value", def("Expression")); + def("CallExpression") + .field("typeArguments", or(null, def("TypeParameterInstantiation")), defaults["null"]); + def("NewExpression") + .field("typeArguments", or(null, def("TypeParameterInstantiation")), defaults["null"]); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/jsx.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/jsx.js ***! + \**********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var es7_1 = tslib_1.__importDefault(__webpack_require__(/*! ./es7 */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es7.js")); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +function default_1(fork) { + fork.use(es7_1.default); + var types = fork.use(types_1.default); + var def = types.Type.def; + var or = types.Type.or; + var defaults = fork.use(shared_1.default).defaults; + def("JSXAttribute") + .bases("Node") + .build("name", "value") + .field("name", or(def("JSXIdentifier"), def("JSXNamespacedName"))) + .field("value", or(def("Literal"), // attr="value" + def("JSXExpressionContainer"), // attr={value} + null // attr= or just attr + ), defaults["null"]); + def("JSXIdentifier") + .bases("Identifier") + .build("name") + .field("name", String); + def("JSXNamespacedName") + .bases("Node") + .build("namespace", "name") + .field("namespace", def("JSXIdentifier")) + .field("name", def("JSXIdentifier")); + def("JSXMemberExpression") + .bases("MemberExpression") + .build("object", "property") + .field("object", or(def("JSXIdentifier"), def("JSXMemberExpression"))) + .field("property", def("JSXIdentifier")) + .field("computed", Boolean, defaults.false); + var JSXElementName = or(def("JSXIdentifier"), def("JSXNamespacedName"), def("JSXMemberExpression")); + def("JSXSpreadAttribute") + .bases("Node") + .build("argument") + .field("argument", def("Expression")); + var JSXAttributes = [or(def("JSXAttribute"), def("JSXSpreadAttribute"))]; + def("JSXExpressionContainer") + .bases("Expression") + .build("expression") + .field("expression", def("Expression")); + def("JSXElement") + .bases("Expression") + .build("openingElement", "closingElement", "children") + .field("openingElement", def("JSXOpeningElement")) + .field("closingElement", or(def("JSXClosingElement"), null), defaults["null"]) + .field("children", [or(def("JSXElement"), def("JSXExpressionContainer"), def("JSXFragment"), def("JSXText"), def("Literal") // TODO Esprima should return JSXText instead. + )], defaults.emptyArray) + .field("name", JSXElementName, function () { + // Little-known fact: the `this` object inside a default function + // is none other than the partially-built object itself, and any + // fields initialized directly from builder function arguments + // (like openingElement, closingElement, and children) are + // guaranteed to be available. + return this.openingElement.name; + }, true) // hidden from traversal + .field("selfClosing", Boolean, function () { + return this.openingElement.selfClosing; + }, true) // hidden from traversal + .field("attributes", JSXAttributes, function () { + return this.openingElement.attributes; + }, true); // hidden from traversal + def("JSXOpeningElement") + .bases("Node") // TODO Does this make sense? Can't really be an JSXElement. + .build("name", "attributes", "selfClosing") + .field("name", JSXElementName) + .field("attributes", JSXAttributes, defaults.emptyArray) + .field("selfClosing", Boolean, defaults["false"]); + def("JSXClosingElement") + .bases("Node") // TODO Same concern. + .build("name") + .field("name", JSXElementName); + def("JSXFragment") + .bases("Expression") + .build("openingElement", "closingElement", "children") + .field("openingElement", def("JSXOpeningFragment")) + .field("closingElement", def("JSXClosingFragment")) + .field("children", [or(def("JSXElement"), def("JSXExpressionContainer"), def("JSXFragment"), def("JSXText"), def("Literal") // TODO Esprima should return JSXText instead. + )], defaults.emptyArray); + def("JSXOpeningFragment") + .bases("Node") // TODO Same concern. + .build(); + def("JSXClosingFragment") + .bases("Node") // TODO Same concern. + .build(); + def("JSXText") + .bases("Literal") + .build("value") + .field("value", String); + def("JSXEmptyExpression").bases("Expression").build(); + // This PR has caused many people issues, but supporting it seems like a + // good idea anyway: https://github.com/babel/babel/pull/4988 + def("JSXSpreadChild") + .bases("Expression") + .build("expression") + .field("expression", def("Expression")); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/type-annotations.js": +/*!***********************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/type-annotations.js ***! + \***********************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +/** + * Type annotation defs shared between Flow and TypeScript. + * These defs could not be defined in ./flow.ts or ./typescript.ts directly + * because they use the same name. + */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +function default_1(fork) { + var types = fork.use(types_1.default); + var def = types.Type.def; + var or = types.Type.or; + var defaults = fork.use(shared_1.default).defaults; + var TypeAnnotation = or(def("TypeAnnotation"), def("TSTypeAnnotation"), null); + var TypeParamDecl = or(def("TypeParameterDeclaration"), def("TSTypeParameterDeclaration"), null); + def("Identifier") + .field("typeAnnotation", TypeAnnotation, defaults["null"]); + def("ObjectPattern") + .field("typeAnnotation", TypeAnnotation, defaults["null"]); + def("Function") + .field("returnType", TypeAnnotation, defaults["null"]) + .field("typeParameters", TypeParamDecl, defaults["null"]); + def("ClassProperty") + .build("key", "value", "typeAnnotation", "static") + .field("value", or(def("Expression"), null)) + .field("static", Boolean, defaults["false"]) + .field("typeAnnotation", TypeAnnotation, defaults["null"]); + ["ClassDeclaration", + "ClassExpression", + ].forEach(function (typeName) { + def(typeName) + .field("typeParameters", TypeParamDecl, defaults["null"]) + .field("superTypeParameters", or(def("TypeParameterInstantiation"), def("TSTypeParameterInstantiation"), null), defaults["null"]) + .field("implements", or([def("ClassImplements")], [def("TSExpressionWithTypeArguments")]), defaults.emptyArray); + }); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/typescript.js": +/*!*****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/typescript.js ***! + \*****************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var babel_core_1 = tslib_1.__importDefault(__webpack_require__(/*! ./babel-core */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/babel-core.js")); +var type_annotations_1 = tslib_1.__importDefault(__webpack_require__(/*! ./type-annotations */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/type-annotations.js")); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var shared_1 = tslib_1.__importDefault(__webpack_require__(/*! ../lib/shared */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js")); +function default_1(fork) { + // Since TypeScript is parsed by Babylon, include the core Babylon types + // but omit the Flow-related types. + fork.use(babel_core_1.default); + fork.use(type_annotations_1.default); + var types = fork.use(types_1.default); + var n = types.namedTypes; + var def = types.Type.def; + var or = types.Type.or; + var defaults = fork.use(shared_1.default).defaults; + var StringLiteral = types.Type.from(function (value, deep) { + if (n.StringLiteral && + n.StringLiteral.check(value, deep)) { + return true; + } + if (n.Literal && + n.Literal.check(value, deep) && + typeof value.value === "string") { + return true; + } + return false; + }, "StringLiteral"); + def("TSType") + .bases("Node"); + var TSEntityName = or(def("Identifier"), def("TSQualifiedName")); + def("TSTypeReference") + .bases("TSType", "TSHasOptionalTypeParameterInstantiation") + .build("typeName", "typeParameters") + .field("typeName", TSEntityName); + // An abstract (non-buildable) base type that provide a commonly-needed + // optional .typeParameters field. + def("TSHasOptionalTypeParameterInstantiation") + .field("typeParameters", or(def("TSTypeParameterInstantiation"), null), defaults["null"]); + // An abstract (non-buildable) base type that provide a commonly-needed + // optional .typeParameters field. + def("TSHasOptionalTypeParameters") + .field("typeParameters", or(def("TSTypeParameterDeclaration"), null, void 0), defaults["null"]); + // An abstract (non-buildable) base type that provide a commonly-needed + // optional .typeAnnotation field. + def("TSHasOptionalTypeAnnotation") + .field("typeAnnotation", or(def("TSTypeAnnotation"), null), defaults["null"]); + def("TSQualifiedName") + .bases("Node") + .build("left", "right") + .field("left", TSEntityName) + .field("right", TSEntityName); + def("TSAsExpression") + .bases("Expression", "Pattern") + .build("expression", "typeAnnotation") + .field("expression", def("Expression")) + .field("typeAnnotation", def("TSType")) + .field("extra", or({ parenthesized: Boolean }, null), defaults["null"]); + def("TSNonNullExpression") + .bases("Expression", "Pattern") + .build("expression") + .field("expression", def("Expression")); + [ + "TSAnyKeyword", + "TSBigIntKeyword", + "TSBooleanKeyword", + "TSNeverKeyword", + "TSNullKeyword", + "TSNumberKeyword", + "TSObjectKeyword", + "TSStringKeyword", + "TSSymbolKeyword", + "TSUndefinedKeyword", + "TSUnknownKeyword", + "TSVoidKeyword", + "TSThisType", + ].forEach(function (keywordType) { + def(keywordType) + .bases("TSType") + .build(); + }); + def("TSArrayType") + .bases("TSType") + .build("elementType") + .field("elementType", def("TSType")); + def("TSLiteralType") + .bases("TSType") + .build("literal") + .field("literal", or(def("NumericLiteral"), def("StringLiteral"), def("BooleanLiteral"), def("TemplateLiteral"), def("UnaryExpression"))); + ["TSUnionType", + "TSIntersectionType", + ].forEach(function (typeName) { + def(typeName) + .bases("TSType") + .build("types") + .field("types", [def("TSType")]); + }); + def("TSConditionalType") + .bases("TSType") + .build("checkType", "extendsType", "trueType", "falseType") + .field("checkType", def("TSType")) + .field("extendsType", def("TSType")) + .field("trueType", def("TSType")) + .field("falseType", def("TSType")); + def("TSInferType") + .bases("TSType") + .build("typeParameter") + .field("typeParameter", def("TSTypeParameter")); + def("TSParenthesizedType") + .bases("TSType") + .build("typeAnnotation") + .field("typeAnnotation", def("TSType")); + var ParametersType = [or(def("Identifier"), def("RestElement"), def("ArrayPattern"), def("ObjectPattern"))]; + ["TSFunctionType", + "TSConstructorType", + ].forEach(function (typeName) { + def(typeName) + .bases("TSType", "TSHasOptionalTypeParameters", "TSHasOptionalTypeAnnotation") + .build("parameters") + .field("parameters", ParametersType); + }); + def("TSDeclareFunction") + .bases("Declaration", "TSHasOptionalTypeParameters") + .build("id", "params", "returnType") + .field("declare", Boolean, defaults["false"]) + .field("async", Boolean, defaults["false"]) + .field("generator", Boolean, defaults["false"]) + .field("id", or(def("Identifier"), null), defaults["null"]) + .field("params", [def("Pattern")]) + // tSFunctionTypeAnnotationCommon + .field("returnType", or(def("TSTypeAnnotation"), def("Noop"), // Still used? + null), defaults["null"]); + def("TSDeclareMethod") + .bases("Declaration", "TSHasOptionalTypeParameters") + .build("key", "params", "returnType") + .field("async", Boolean, defaults["false"]) + .field("generator", Boolean, defaults["false"]) + .field("params", [def("Pattern")]) + // classMethodOrPropertyCommon + .field("abstract", Boolean, defaults["false"]) + .field("accessibility", or("public", "private", "protected", void 0), defaults["undefined"]) + .field("static", Boolean, defaults["false"]) + .field("computed", Boolean, defaults["false"]) + .field("optional", Boolean, defaults["false"]) + .field("key", or(def("Identifier"), def("StringLiteral"), def("NumericLiteral"), + // Only allowed if .computed is true. + def("Expression"))) + // classMethodOrDeclareMethodCommon + .field("kind", or("get", "set", "method", "constructor"), function getDefault() { return "method"; }) + .field("access", // Not "accessibility"? + or("public", "private", "protected", void 0), defaults["undefined"]) + .field("decorators", or([def("Decorator")], null), defaults["null"]) + // tSFunctionTypeAnnotationCommon + .field("returnType", or(def("TSTypeAnnotation"), def("Noop"), // Still used? + null), defaults["null"]); + def("TSMappedType") + .bases("TSType") + .build("typeParameter", "typeAnnotation") + .field("readonly", or(Boolean, "+", "-"), defaults["false"]) + .field("typeParameter", def("TSTypeParameter")) + .field("optional", or(Boolean, "+", "-"), defaults["false"]) + .field("typeAnnotation", or(def("TSType"), null), defaults["null"]); + def("TSTupleType") + .bases("TSType") + .build("elementTypes") + .field("elementTypes", [or(def("TSType"), def("TSNamedTupleMember"))]); + def("TSNamedTupleMember") + .bases("TSType") + .build("label", "elementType", "optional") + .field("label", def("Identifier")) + .field("optional", Boolean, defaults["false"]) + .field("elementType", def("TSType")); + def("TSRestType") + .bases("TSType") + .build("typeAnnotation") + .field("typeAnnotation", def("TSType")); + def("TSOptionalType") + .bases("TSType") + .build("typeAnnotation") + .field("typeAnnotation", def("TSType")); + def("TSIndexedAccessType") + .bases("TSType") + .build("objectType", "indexType") + .field("objectType", def("TSType")) + .field("indexType", def("TSType")); + def("TSTypeOperator") + .bases("TSType") + .build("operator") + .field("operator", String) + .field("typeAnnotation", def("TSType")); + def("TSTypeAnnotation") + .bases("Node") + .build("typeAnnotation") + .field("typeAnnotation", or(def("TSType"), def("TSTypeAnnotation"))); + def("TSIndexSignature") + .bases("Declaration", "TSHasOptionalTypeAnnotation") + .build("parameters", "typeAnnotation") + .field("parameters", [def("Identifier")]) // Length === 1 + .field("readonly", Boolean, defaults["false"]); + def("TSPropertySignature") + .bases("Declaration", "TSHasOptionalTypeAnnotation") + .build("key", "typeAnnotation", "optional") + .field("key", def("Expression")) + .field("computed", Boolean, defaults["false"]) + .field("readonly", Boolean, defaults["false"]) + .field("optional", Boolean, defaults["false"]) + .field("initializer", or(def("Expression"), null), defaults["null"]); + def("TSMethodSignature") + .bases("Declaration", "TSHasOptionalTypeParameters", "TSHasOptionalTypeAnnotation") + .build("key", "parameters", "typeAnnotation") + .field("key", def("Expression")) + .field("computed", Boolean, defaults["false"]) + .field("optional", Boolean, defaults["false"]) + .field("parameters", ParametersType); + def("TSTypePredicate") + .bases("TSTypeAnnotation", "TSType") + .build("parameterName", "typeAnnotation", "asserts") + .field("parameterName", or(def("Identifier"), def("TSThisType"))) + .field("typeAnnotation", or(def("TSTypeAnnotation"), null), defaults["null"]) + .field("asserts", Boolean, defaults["false"]); + ["TSCallSignatureDeclaration", + "TSConstructSignatureDeclaration", + ].forEach(function (typeName) { + def(typeName) + .bases("Declaration", "TSHasOptionalTypeParameters", "TSHasOptionalTypeAnnotation") + .build("parameters", "typeAnnotation") + .field("parameters", ParametersType); + }); + def("TSEnumMember") + .bases("Node") + .build("id", "initializer") + .field("id", or(def("Identifier"), StringLiteral)) + .field("initializer", or(def("Expression"), null), defaults["null"]); + def("TSTypeQuery") + .bases("TSType") + .build("exprName") + .field("exprName", or(TSEntityName, def("TSImportType"))); + // Inferred from Babylon's tsParseTypeMember method. + var TSTypeMember = or(def("TSCallSignatureDeclaration"), def("TSConstructSignatureDeclaration"), def("TSIndexSignature"), def("TSMethodSignature"), def("TSPropertySignature")); + def("TSTypeLiteral") + .bases("TSType") + .build("members") + .field("members", [TSTypeMember]); + def("TSTypeParameter") + .bases("Identifier") + .build("name", "constraint", "default") + .field("name", String) + .field("constraint", or(def("TSType"), void 0), defaults["undefined"]) + .field("default", or(def("TSType"), void 0), defaults["undefined"]); + def("TSTypeAssertion") + .bases("Expression", "Pattern") + .build("typeAnnotation", "expression") + .field("typeAnnotation", def("TSType")) + .field("expression", def("Expression")) + .field("extra", or({ parenthesized: Boolean }, null), defaults["null"]); + def("TSTypeParameterDeclaration") + .bases("Declaration") + .build("params") + .field("params", [def("TSTypeParameter")]); + def("TSTypeParameterInstantiation") + .bases("Node") + .build("params") + .field("params", [def("TSType")]); + def("TSEnumDeclaration") + .bases("Declaration") + .build("id", "members") + .field("id", def("Identifier")) + .field("const", Boolean, defaults["false"]) + .field("declare", Boolean, defaults["false"]) + .field("members", [def("TSEnumMember")]) + .field("initializer", or(def("Expression"), null), defaults["null"]); + def("TSTypeAliasDeclaration") + .bases("Declaration", "TSHasOptionalTypeParameters") + .build("id", "typeAnnotation") + .field("id", def("Identifier")) + .field("declare", Boolean, defaults["false"]) + .field("typeAnnotation", def("TSType")); + def("TSModuleBlock") + .bases("Node") + .build("body") + .field("body", [def("Statement")]); + def("TSModuleDeclaration") + .bases("Declaration") + .build("id", "body") + .field("id", or(StringLiteral, TSEntityName)) + .field("declare", Boolean, defaults["false"]) + .field("global", Boolean, defaults["false"]) + .field("body", or(def("TSModuleBlock"), def("TSModuleDeclaration"), null), defaults["null"]); + def("TSImportType") + .bases("TSType", "TSHasOptionalTypeParameterInstantiation") + .build("argument", "qualifier", "typeParameters") + .field("argument", StringLiteral) + .field("qualifier", or(TSEntityName, void 0), defaults["undefined"]); + def("TSImportEqualsDeclaration") + .bases("Declaration") + .build("id", "moduleReference") + .field("id", def("Identifier")) + .field("isExport", Boolean, defaults["false"]) + .field("moduleReference", or(TSEntityName, def("TSExternalModuleReference"))); + def("TSExternalModuleReference") + .bases("Declaration") + .build("expression") + .field("expression", StringLiteral); + def("TSExportAssignment") + .bases("Statement") + .build("expression") + .field("expression", def("Expression")); + def("TSNamespaceExportDeclaration") + .bases("Declaration") + .build("id") + .field("id", def("Identifier")); + def("TSInterfaceBody") + .bases("Node") + .build("body") + .field("body", [TSTypeMember]); + def("TSExpressionWithTypeArguments") + .bases("TSType", "TSHasOptionalTypeParameterInstantiation") + .build("expression", "typeParameters") + .field("expression", TSEntityName); + def("TSInterfaceDeclaration") + .bases("Declaration", "TSHasOptionalTypeParameters") + .build("id", "body") + .field("id", TSEntityName) + .field("declare", Boolean, defaults["false"]) + .field("extends", or([def("TSExpressionWithTypeArguments")], null), defaults["null"]) + .field("body", def("TSInterfaceBody")); + def("TSParameterProperty") + .bases("Pattern") + .build("parameter") + .field("accessibility", or("public", "private", "protected", void 0), defaults["undefined"]) + .field("readonly", Boolean, defaults["false"]) + .field("parameter", or(def("Identifier"), def("AssignmentPattern"))); + def("ClassProperty") + .field("access", // Not "accessibility"? + or("public", "private", "protected", void 0), defaults["undefined"]); + // Defined already in es6 and babel-core. + def("ClassBody") + .field("body", [or(def("MethodDefinition"), def("VariableDeclarator"), def("ClassPropertyDefinition"), def("ClassProperty"), def("ClassPrivateProperty"), def("ClassMethod"), def("ClassPrivateMethod"), + // Just need to add these types: + def("TSDeclareMethod"), TSTypeMember)]); +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/fork.js": +/*!*******************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/fork.js ***! + \*******************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ./lib/types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var path_visitor_1 = tslib_1.__importDefault(__webpack_require__(/*! ./lib/path-visitor */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/path-visitor.js")); +var equiv_1 = tslib_1.__importDefault(__webpack_require__(/*! ./lib/equiv */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/equiv.js")); +var path_1 = tslib_1.__importDefault(__webpack_require__(/*! ./lib/path */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/path.js")); +var node_path_1 = tslib_1.__importDefault(__webpack_require__(/*! ./lib/node-path */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/node-path.js")); +function default_1(defs) { + var fork = createFork(); + var types = fork.use(types_1.default); + defs.forEach(fork.use); + types.finalize(); + var PathVisitor = fork.use(path_visitor_1.default); + return { + Type: types.Type, + builtInTypes: types.builtInTypes, + namedTypes: types.namedTypes, + builders: types.builders, + defineMethod: types.defineMethod, + getFieldNames: types.getFieldNames, + getFieldValue: types.getFieldValue, + eachField: types.eachField, + someField: types.someField, + getSupertypeNames: types.getSupertypeNames, + getBuilderName: types.getBuilderName, + astNodesAreEquivalent: fork.use(equiv_1.default), + finalize: types.finalize, + Path: fork.use(path_1.default), + NodePath: fork.use(node_path_1.default), + PathVisitor: PathVisitor, + use: fork.use, + visit: PathVisitor.visit, + }; +} +exports["default"] = default_1; +function createFork() { + var used = []; + var usedResult = []; + function use(plugin) { + var idx = used.indexOf(plugin); + if (idx === -1) { + idx = used.length; + used.push(plugin); + usedResult[idx] = plugin(fork); + } + return usedResult[idx]; + } + var fork = { use: use }; + return fork; +} +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/gen/namedTypes.js": +/*!*****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/gen/namedTypes.js ***! + \*****************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.namedTypes = void 0; +var namedTypes; +(function (namedTypes) { +})(namedTypes = exports.namedTypes || (exports.namedTypes = {})); + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/equiv.js": +/*!************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/equiv.js ***! + \************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ./types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +function default_1(fork) { + var types = fork.use(types_1.default); + var getFieldNames = types.getFieldNames; + var getFieldValue = types.getFieldValue; + var isArray = types.builtInTypes.array; + var isObject = types.builtInTypes.object; + var isDate = types.builtInTypes.Date; + var isRegExp = types.builtInTypes.RegExp; + var hasOwn = Object.prototype.hasOwnProperty; + function astNodesAreEquivalent(a, b, problemPath) { + if (isArray.check(problemPath)) { + problemPath.length = 0; + } + else { + problemPath = null; + } + return areEquivalent(a, b, problemPath); + } + astNodesAreEquivalent.assert = function (a, b) { + var problemPath = []; + if (!astNodesAreEquivalent(a, b, problemPath)) { + if (problemPath.length === 0) { + if (a !== b) { + throw new Error("Nodes must be equal"); + } + } + else { + throw new Error("Nodes differ in the following path: " + + problemPath.map(subscriptForProperty).join("")); + } + } + }; + function subscriptForProperty(property) { + if (/[_$a-z][_$a-z0-9]*/i.test(property)) { + return "." + property; + } + return "[" + JSON.stringify(property) + "]"; + } + function areEquivalent(a, b, problemPath) { + if (a === b) { + return true; + } + if (isArray.check(a)) { + return arraysAreEquivalent(a, b, problemPath); + } + if (isObject.check(a)) { + return objectsAreEquivalent(a, b, problemPath); + } + if (isDate.check(a)) { + return isDate.check(b) && (+a === +b); + } + if (isRegExp.check(a)) { + return isRegExp.check(b) && (a.source === b.source && + a.global === b.global && + a.multiline === b.multiline && + a.ignoreCase === b.ignoreCase); + } + return a == b; + } + function arraysAreEquivalent(a, b, problemPath) { + isArray.assert(a); + var aLength = a.length; + if (!isArray.check(b) || b.length !== aLength) { + if (problemPath) { + problemPath.push("length"); + } + return false; + } + for (var i = 0; i < aLength; ++i) { + if (problemPath) { + problemPath.push(i); + } + if (i in a !== i in b) { + return false; + } + if (!areEquivalent(a[i], b[i], problemPath)) { + return false; + } + if (problemPath) { + var problemPathTail = problemPath.pop(); + if (problemPathTail !== i) { + throw new Error("" + problemPathTail); + } + } + } + return true; + } + function objectsAreEquivalent(a, b, problemPath) { + isObject.assert(a); + if (!isObject.check(b)) { + return false; + } + // Fast path for a common property of AST nodes. + if (a.type !== b.type) { + if (problemPath) { + problemPath.push("type"); + } + return false; + } + var aNames = getFieldNames(a); + var aNameCount = aNames.length; + var bNames = getFieldNames(b); + var bNameCount = bNames.length; + if (aNameCount === bNameCount) { + for (var i = 0; i < aNameCount; ++i) { + var name = aNames[i]; + var aChild = getFieldValue(a, name); + var bChild = getFieldValue(b, name); + if (problemPath) { + problemPath.push(name); + } + if (!areEquivalent(aChild, bChild, problemPath)) { + return false; + } + if (problemPath) { + var problemPathTail = problemPath.pop(); + if (problemPathTail !== name) { + throw new Error("" + problemPathTail); + } + } + } + return true; + } + if (!problemPath) { + return false; + } + // Since aNameCount !== bNameCount, we need to find some name that's + // missing in aNames but present in bNames, or vice-versa. + var seenNames = Object.create(null); + for (i = 0; i < aNameCount; ++i) { + seenNames[aNames[i]] = true; + } + for (i = 0; i < bNameCount; ++i) { + name = bNames[i]; + if (!hasOwn.call(seenNames, name)) { + problemPath.push(name); + return false; + } + delete seenNames[name]; + } + for (name in seenNames) { + problemPath.push(name); + break; + } + return false; + } + return astNodesAreEquivalent; +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/node-path.js": +/*!****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/node-path.js ***! + \****************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ./types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var path_1 = tslib_1.__importDefault(__webpack_require__(/*! ./path */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/path.js")); +var scope_1 = tslib_1.__importDefault(__webpack_require__(/*! ./scope */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/scope.js")); +function nodePathPlugin(fork) { + var types = fork.use(types_1.default); + var n = types.namedTypes; + var b = types.builders; + var isNumber = types.builtInTypes.number; + var isArray = types.builtInTypes.array; + var Path = fork.use(path_1.default); + var Scope = fork.use(scope_1.default); + var NodePath = function NodePath(value, parentPath, name) { + if (!(this instanceof NodePath)) { + throw new Error("NodePath constructor cannot be invoked without 'new'"); + } + Path.call(this, value, parentPath, name); + }; + var NPp = NodePath.prototype = Object.create(Path.prototype, { + constructor: { + value: NodePath, + enumerable: false, + writable: true, + configurable: true + } + }); + Object.defineProperties(NPp, { + node: { + get: function () { + Object.defineProperty(this, "node", { + configurable: true, + value: this._computeNode() + }); + return this.node; + } + }, + parent: { + get: function () { + Object.defineProperty(this, "parent", { + configurable: true, + value: this._computeParent() + }); + return this.parent; + } + }, + scope: { + get: function () { + Object.defineProperty(this, "scope", { + configurable: true, + value: this._computeScope() + }); + return this.scope; + } + } + }); + NPp.replace = function () { + delete this.node; + delete this.parent; + delete this.scope; + return Path.prototype.replace.apply(this, arguments); + }; + NPp.prune = function () { + var remainingNodePath = this.parent; + this.replace(); + return cleanUpNodesAfterPrune(remainingNodePath); + }; + // The value of the first ancestor Path whose value is a Node. + NPp._computeNode = function () { + var value = this.value; + if (n.Node.check(value)) { + return value; + } + var pp = this.parentPath; + return pp && pp.node || null; + }; + // The first ancestor Path whose value is a Node distinct from this.node. + NPp._computeParent = function () { + var value = this.value; + var pp = this.parentPath; + if (!n.Node.check(value)) { + while (pp && !n.Node.check(pp.value)) { + pp = pp.parentPath; + } + if (pp) { + pp = pp.parentPath; + } + } + while (pp && !n.Node.check(pp.value)) { + pp = pp.parentPath; + } + return pp || null; + }; + // The closest enclosing scope that governs this node. + NPp._computeScope = function () { + var value = this.value; + var pp = this.parentPath; + var scope = pp && pp.scope; + if (n.Node.check(value) && + Scope.isEstablishedBy(value)) { + scope = new Scope(this, scope); + } + return scope || null; + }; + NPp.getValueProperty = function (name) { + return types.getFieldValue(this.value, name); + }; + /** + * Determine whether this.node needs to be wrapped in parentheses in order + * for a parser to reproduce the same local AST structure. + * + * For instance, in the expression `(1 + 2) * 3`, the BinaryExpression + * whose operator is "+" needs parentheses, because `1 + 2 * 3` would + * parse differently. + * + * If assumeExpressionContext === true, we don't worry about edge cases + * like an anonymous FunctionExpression appearing lexically first in its + * enclosing statement and thus needing parentheses to avoid being parsed + * as a FunctionDeclaration with a missing name. + */ + NPp.needsParens = function (assumeExpressionContext) { + var pp = this.parentPath; + if (!pp) { + return false; + } + var node = this.value; + // Only expressions need parentheses. + if (!n.Expression.check(node)) { + return false; + } + // Identifiers never need parentheses. + if (node.type === "Identifier") { + return false; + } + while (!n.Node.check(pp.value)) { + pp = pp.parentPath; + if (!pp) { + return false; + } + } + var parent = pp.value; + switch (node.type) { + case "UnaryExpression": + case "SpreadElement": + case "SpreadProperty": + return parent.type === "MemberExpression" + && this.name === "object" + && parent.object === node; + case "BinaryExpression": + case "LogicalExpression": + switch (parent.type) { + case "CallExpression": + return this.name === "callee" + && parent.callee === node; + case "UnaryExpression": + case "SpreadElement": + case "SpreadProperty": + return true; + case "MemberExpression": + return this.name === "object" + && parent.object === node; + case "BinaryExpression": + case "LogicalExpression": { + var n_1 = node; + var po = parent.operator; + var pp_1 = PRECEDENCE[po]; + var no = n_1.operator; + var np = PRECEDENCE[no]; + if (pp_1 > np) { + return true; + } + if (pp_1 === np && this.name === "right") { + if (parent.right !== n_1) { + throw new Error("Nodes must be equal"); + } + return true; + } + } + default: + return false; + } + case "SequenceExpression": + switch (parent.type) { + case "ForStatement": + // Although parentheses wouldn't hurt around sequence + // expressions in the head of for loops, traditional style + // dictates that e.g. i++, j++ should not be wrapped with + // parentheses. + return false; + case "ExpressionStatement": + return this.name !== "expression"; + default: + // Otherwise err on the side of overparenthesization, adding + // explicit exceptions above if this proves overzealous. + return true; + } + case "YieldExpression": + switch (parent.type) { + case "BinaryExpression": + case "LogicalExpression": + case "UnaryExpression": + case "SpreadElement": + case "SpreadProperty": + case "CallExpression": + case "MemberExpression": + case "NewExpression": + case "ConditionalExpression": + case "YieldExpression": + return true; + default: + return false; + } + case "Literal": + return parent.type === "MemberExpression" + && isNumber.check(node.value) + && this.name === "object" + && parent.object === node; + case "AssignmentExpression": + case "ConditionalExpression": + switch (parent.type) { + case "UnaryExpression": + case "SpreadElement": + case "SpreadProperty": + case "BinaryExpression": + case "LogicalExpression": + return true; + case "CallExpression": + return this.name === "callee" + && parent.callee === node; + case "ConditionalExpression": + return this.name === "test" + && parent.test === node; + case "MemberExpression": + return this.name === "object" + && parent.object === node; + default: + return false; + } + default: + if (parent.type === "NewExpression" && + this.name === "callee" && + parent.callee === node) { + return containsCallExpression(node); + } + } + if (assumeExpressionContext !== true && + !this.canBeFirstInStatement() && + this.firstInStatement()) + return true; + return false; + }; + function isBinary(node) { + return n.BinaryExpression.check(node) + || n.LogicalExpression.check(node); + } + // @ts-ignore 'isUnaryLike' is declared but its value is never read. [6133] + function isUnaryLike(node) { + return n.UnaryExpression.check(node) + // I considered making SpreadElement and SpreadProperty subtypes + // of UnaryExpression, but they're not really Expression nodes. + || (n.SpreadElement && n.SpreadElement.check(node)) + || (n.SpreadProperty && n.SpreadProperty.check(node)); + } + var PRECEDENCE = {}; + [["||"], + ["&&"], + ["|"], + ["^"], + ["&"], + ["==", "===", "!=", "!=="], + ["<", ">", "<=", ">=", "in", "instanceof"], + [">>", "<<", ">>>"], + ["+", "-"], + ["*", "/", "%"] + ].forEach(function (tier, i) { + tier.forEach(function (op) { + PRECEDENCE[op] = i; + }); + }); + function containsCallExpression(node) { + if (n.CallExpression.check(node)) { + return true; + } + if (isArray.check(node)) { + return node.some(containsCallExpression); + } + if (n.Node.check(node)) { + return types.someField(node, function (_name, child) { + return containsCallExpression(child); + }); + } + return false; + } + NPp.canBeFirstInStatement = function () { + var node = this.node; + return !n.FunctionExpression.check(node) + && !n.ObjectExpression.check(node); + }; + NPp.firstInStatement = function () { + return firstInStatement(this); + }; + function firstInStatement(path) { + for (var node, parent; path.parent; path = path.parent) { + node = path.node; + parent = path.parent.node; + if (n.BlockStatement.check(parent) && + path.parent.name === "body" && + path.name === 0) { + if (parent.body[0] !== node) { + throw new Error("Nodes must be equal"); + } + return true; + } + if (n.ExpressionStatement.check(parent) && + path.name === "expression") { + if (parent.expression !== node) { + throw new Error("Nodes must be equal"); + } + return true; + } + if (n.SequenceExpression.check(parent) && + path.parent.name === "expressions" && + path.name === 0) { + if (parent.expressions[0] !== node) { + throw new Error("Nodes must be equal"); + } + continue; + } + if (n.CallExpression.check(parent) && + path.name === "callee") { + if (parent.callee !== node) { + throw new Error("Nodes must be equal"); + } + continue; + } + if (n.MemberExpression.check(parent) && + path.name === "object") { + if (parent.object !== node) { + throw new Error("Nodes must be equal"); + } + continue; + } + if (n.ConditionalExpression.check(parent) && + path.name === "test") { + if (parent.test !== node) { + throw new Error("Nodes must be equal"); + } + continue; + } + if (isBinary(parent) && + path.name === "left") { + if (parent.left !== node) { + throw new Error("Nodes must be equal"); + } + continue; + } + if (n.UnaryExpression.check(parent) && + !parent.prefix && + path.name === "argument") { + if (parent.argument !== node) { + throw new Error("Nodes must be equal"); + } + continue; + } + return false; + } + return true; + } + /** + * Pruning certain nodes will result in empty or incomplete nodes, here we clean those nodes up. + */ + function cleanUpNodesAfterPrune(remainingNodePath) { + if (n.VariableDeclaration.check(remainingNodePath.node)) { + var declarations = remainingNodePath.get('declarations').value; + if (!declarations || declarations.length === 0) { + return remainingNodePath.prune(); + } + } + else if (n.ExpressionStatement.check(remainingNodePath.node)) { + if (!remainingNodePath.get('expression').value) { + return remainingNodePath.prune(); + } + } + else if (n.IfStatement.check(remainingNodePath.node)) { + cleanUpIfStatementAfterPrune(remainingNodePath); + } + return remainingNodePath; + } + function cleanUpIfStatementAfterPrune(ifStatement) { + var testExpression = ifStatement.get('test').value; + var alternate = ifStatement.get('alternate').value; + var consequent = ifStatement.get('consequent').value; + if (!consequent && !alternate) { + var testExpressionStatement = b.expressionStatement(testExpression); + ifStatement.replace(testExpressionStatement); + } + else if (!consequent && alternate) { + var negatedTestExpression = b.unaryExpression('!', testExpression, true); + if (n.UnaryExpression.check(testExpression) && testExpression.operator === '!') { + negatedTestExpression = testExpression.argument; + } + ifStatement.get("test").replace(negatedTestExpression); + ifStatement.get("consequent").replace(alternate); + ifStatement.get("alternate").replace(); + } + } + return NodePath; +} +exports["default"] = nodePathPlugin; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/path-visitor.js": +/*!*******************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/path-visitor.js ***! + \*******************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ./types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var node_path_1 = tslib_1.__importDefault(__webpack_require__(/*! ./node-path */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/node-path.js")); +var hasOwn = Object.prototype.hasOwnProperty; +function pathVisitorPlugin(fork) { + var types = fork.use(types_1.default); + var NodePath = fork.use(node_path_1.default); + var isArray = types.builtInTypes.array; + var isObject = types.builtInTypes.object; + var isFunction = types.builtInTypes.function; + var undefined; + var PathVisitor = function PathVisitor() { + if (!(this instanceof PathVisitor)) { + throw new Error("PathVisitor constructor cannot be invoked without 'new'"); + } + // Permanent state. + this._reusableContextStack = []; + this._methodNameTable = computeMethodNameTable(this); + this._shouldVisitComments = + hasOwn.call(this._methodNameTable, "Block") || + hasOwn.call(this._methodNameTable, "Line"); + this.Context = makeContextConstructor(this); + // State reset every time PathVisitor.prototype.visit is called. + this._visiting = false; + this._changeReported = false; + }; + function computeMethodNameTable(visitor) { + var typeNames = Object.create(null); + for (var methodName in visitor) { + if (/^visit[A-Z]/.test(methodName)) { + typeNames[methodName.slice("visit".length)] = true; + } + } + var supertypeTable = types.computeSupertypeLookupTable(typeNames); + var methodNameTable = Object.create(null); + var typeNameKeys = Object.keys(supertypeTable); + var typeNameCount = typeNameKeys.length; + for (var i = 0; i < typeNameCount; ++i) { + var typeName = typeNameKeys[i]; + methodName = "visit" + supertypeTable[typeName]; + if (isFunction.check(visitor[methodName])) { + methodNameTable[typeName] = methodName; + } + } + return methodNameTable; + } + PathVisitor.fromMethodsObject = function fromMethodsObject(methods) { + if (methods instanceof PathVisitor) { + return methods; + } + if (!isObject.check(methods)) { + // An empty visitor? + return new PathVisitor; + } + var Visitor = function Visitor() { + if (!(this instanceof Visitor)) { + throw new Error("Visitor constructor cannot be invoked without 'new'"); + } + PathVisitor.call(this); + }; + var Vp = Visitor.prototype = Object.create(PVp); + Vp.constructor = Visitor; + extend(Vp, methods); + extend(Visitor, PathVisitor); + isFunction.assert(Visitor.fromMethodsObject); + isFunction.assert(Visitor.visit); + return new Visitor; + }; + function extend(target, source) { + for (var property in source) { + if (hasOwn.call(source, property)) { + target[property] = source[property]; + } + } + return target; + } + PathVisitor.visit = function visit(node, methods) { + return PathVisitor.fromMethodsObject(methods).visit(node); + }; + var PVp = PathVisitor.prototype; + PVp.visit = function () { + if (this._visiting) { + throw new Error("Recursively calling visitor.visit(path) resets visitor state. " + + "Try this.visit(path) or this.traverse(path) instead."); + } + // Private state that needs to be reset before every traversal. + this._visiting = true; + this._changeReported = false; + this._abortRequested = false; + var argc = arguments.length; + var args = new Array(argc); + for (var i = 0; i < argc; ++i) { + args[i] = arguments[i]; + } + if (!(args[0] instanceof NodePath)) { + args[0] = new NodePath({ root: args[0] }).get("root"); + } + // Called with the same arguments as .visit. + this.reset.apply(this, args); + var didNotThrow; + try { + var root = this.visitWithoutReset(args[0]); + didNotThrow = true; + } + finally { + this._visiting = false; + if (!didNotThrow && this._abortRequested) { + // If this.visitWithoutReset threw an exception and + // this._abortRequested was set to true, return the root of + // the AST instead of letting the exception propagate, so that + // client code does not have to provide a try-catch block to + // intercept the AbortRequest exception. Other kinds of + // exceptions will propagate without being intercepted and + // rethrown by a catch block, so their stacks will accurately + // reflect the original throwing context. + return args[0].value; + } + } + return root; + }; + PVp.AbortRequest = function AbortRequest() { }; + PVp.abort = function () { + var visitor = this; + visitor._abortRequested = true; + var request = new visitor.AbortRequest(); + // If you decide to catch this exception and stop it from propagating, + // make sure to call its cancel method to avoid silencing other + // exceptions that might be thrown later in the traversal. + request.cancel = function () { + visitor._abortRequested = false; + }; + throw request; + }; + PVp.reset = function (_path /*, additional arguments */) { + // Empty stub; may be reassigned or overridden by subclasses. + }; + PVp.visitWithoutReset = function (path) { + if (this instanceof this.Context) { + // Since this.Context.prototype === this, there's a chance we + // might accidentally call context.visitWithoutReset. If that + // happens, re-invoke the method against context.visitor. + return this.visitor.visitWithoutReset(path); + } + if (!(path instanceof NodePath)) { + throw new Error(""); + } + var value = path.value; + var methodName = value && + typeof value === "object" && + typeof value.type === "string" && + this._methodNameTable[value.type]; + if (methodName) { + var context = this.acquireContext(path); + try { + return context.invokeVisitorMethod(methodName); + } + finally { + this.releaseContext(context); + } + } + else { + // If there was no visitor method to call, visit the children of + // this node generically. + return visitChildren(path, this); + } + }; + function visitChildren(path, visitor) { + if (!(path instanceof NodePath)) { + throw new Error(""); + } + if (!(visitor instanceof PathVisitor)) { + throw new Error(""); + } + var value = path.value; + if (isArray.check(value)) { + path.each(visitor.visitWithoutReset, visitor); + } + else if (!isObject.check(value)) { + // No children to visit. + } + else { + var childNames = types.getFieldNames(value); + // The .comments field of the Node type is hidden, so we only + // visit it if the visitor defines visitBlock or visitLine, and + // value.comments is defined. + if (visitor._shouldVisitComments && + value.comments && + childNames.indexOf("comments") < 0) { + childNames.push("comments"); + } + var childCount = childNames.length; + var childPaths = []; + for (var i = 0; i < childCount; ++i) { + var childName = childNames[i]; + if (!hasOwn.call(value, childName)) { + value[childName] = types.getFieldValue(value, childName); + } + childPaths.push(path.get(childName)); + } + for (var i = 0; i < childCount; ++i) { + visitor.visitWithoutReset(childPaths[i]); + } + } + return path.value; + } + PVp.acquireContext = function (path) { + if (this._reusableContextStack.length === 0) { + return new this.Context(path); + } + return this._reusableContextStack.pop().reset(path); + }; + PVp.releaseContext = function (context) { + if (!(context instanceof this.Context)) { + throw new Error(""); + } + this._reusableContextStack.push(context); + context.currentPath = null; + }; + PVp.reportChanged = function () { + this._changeReported = true; + }; + PVp.wasChangeReported = function () { + return this._changeReported; + }; + function makeContextConstructor(visitor) { + function Context(path) { + if (!(this instanceof Context)) { + throw new Error(""); + } + if (!(this instanceof PathVisitor)) { + throw new Error(""); + } + if (!(path instanceof NodePath)) { + throw new Error(""); + } + Object.defineProperty(this, "visitor", { + value: visitor, + writable: false, + enumerable: true, + configurable: false + }); + this.currentPath = path; + this.needToCallTraverse = true; + Object.seal(this); + } + if (!(visitor instanceof PathVisitor)) { + throw new Error(""); + } + // Note that the visitor object is the prototype of Context.prototype, + // so all visitor methods are inherited by context objects. + var Cp = Context.prototype = Object.create(visitor); + Cp.constructor = Context; + extend(Cp, sharedContextProtoMethods); + return Context; + } + // Every PathVisitor has a different this.Context constructor and + // this.Context.prototype object, but those prototypes can all use the + // same reset, invokeVisitorMethod, and traverse function objects. + var sharedContextProtoMethods = Object.create(null); + sharedContextProtoMethods.reset = + function reset(path) { + if (!(this instanceof this.Context)) { + throw new Error(""); + } + if (!(path instanceof NodePath)) { + throw new Error(""); + } + this.currentPath = path; + this.needToCallTraverse = true; + return this; + }; + sharedContextProtoMethods.invokeVisitorMethod = + function invokeVisitorMethod(methodName) { + if (!(this instanceof this.Context)) { + throw new Error(""); + } + if (!(this.currentPath instanceof NodePath)) { + throw new Error(""); + } + var result = this.visitor[methodName].call(this, this.currentPath); + if (result === false) { + // Visitor methods return false to indicate that they have handled + // their own traversal needs, and we should not complain if + // this.needToCallTraverse is still true. + this.needToCallTraverse = false; + } + else if (result !== undefined) { + // Any other non-undefined value returned from the visitor method + // is interpreted as a replacement value. + this.currentPath = this.currentPath.replace(result)[0]; + if (this.needToCallTraverse) { + // If this.traverse still hasn't been called, visit the + // children of the replacement node. + this.traverse(this.currentPath); + } + } + if (this.needToCallTraverse !== false) { + throw new Error("Must either call this.traverse or return false in " + methodName); + } + var path = this.currentPath; + return path && path.value; + }; + sharedContextProtoMethods.traverse = + function traverse(path, newVisitor) { + if (!(this instanceof this.Context)) { + throw new Error(""); + } + if (!(path instanceof NodePath)) { + throw new Error(""); + } + if (!(this.currentPath instanceof NodePath)) { + throw new Error(""); + } + this.needToCallTraverse = false; + return visitChildren(path, PathVisitor.fromMethodsObject(newVisitor || this.visitor)); + }; + sharedContextProtoMethods.visit = + function visit(path, newVisitor) { + if (!(this instanceof this.Context)) { + throw new Error(""); + } + if (!(path instanceof NodePath)) { + throw new Error(""); + } + if (!(this.currentPath instanceof NodePath)) { + throw new Error(""); + } + this.needToCallTraverse = false; + return PathVisitor.fromMethodsObject(newVisitor || this.visitor).visitWithoutReset(path); + }; + sharedContextProtoMethods.reportChanged = function reportChanged() { + this.visitor.reportChanged(); + }; + sharedContextProtoMethods.abort = function abort() { + this.needToCallTraverse = false; + this.visitor.abort(); + }; + return PathVisitor; +} +exports["default"] = pathVisitorPlugin; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/path.js": +/*!***********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/path.js ***! + \***********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ./types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var Op = Object.prototype; +var hasOwn = Op.hasOwnProperty; +function pathPlugin(fork) { + var types = fork.use(types_1.default); + var isArray = types.builtInTypes.array; + var isNumber = types.builtInTypes.number; + var Path = function Path(value, parentPath, name) { + if (!(this instanceof Path)) { + throw new Error("Path constructor cannot be invoked without 'new'"); + } + if (parentPath) { + if (!(parentPath instanceof Path)) { + throw new Error(""); + } + } + else { + parentPath = null; + name = null; + } + // The value encapsulated by this Path, generally equal to + // parentPath.value[name] if we have a parentPath. + this.value = value; + // The immediate parent Path of this Path. + this.parentPath = parentPath; + // The name of the property of parentPath.value through which this + // Path's value was reached. + this.name = name; + // Calling path.get("child") multiple times always returns the same + // child Path object, for both performance and consistency reasons. + this.__childCache = null; + }; + var Pp = Path.prototype; + function getChildCache(path) { + // Lazily create the child cache. This also cheapens cache + // invalidation, since you can just reset path.__childCache to null. + return path.__childCache || (path.__childCache = Object.create(null)); + } + function getChildPath(path, name) { + var cache = getChildCache(path); + var actualChildValue = path.getValueProperty(name); + var childPath = cache[name]; + if (!hasOwn.call(cache, name) || + // Ensure consistency between cache and reality. + childPath.value !== actualChildValue) { + childPath = cache[name] = new path.constructor(actualChildValue, path, name); + } + return childPath; + } + // This method is designed to be overridden by subclasses that need to + // handle missing properties, etc. + Pp.getValueProperty = function getValueProperty(name) { + return this.value[name]; + }; + Pp.get = function get() { + var names = []; + for (var _i = 0; _i < arguments.length; _i++) { + names[_i] = arguments[_i]; + } + var path = this; + var count = names.length; + for (var i = 0; i < count; ++i) { + path = getChildPath(path, names[i]); + } + return path; + }; + Pp.each = function each(callback, context) { + var childPaths = []; + var len = this.value.length; + var i = 0; + // Collect all the original child paths before invoking the callback. + for (var i = 0; i < len; ++i) { + if (hasOwn.call(this.value, i)) { + childPaths[i] = this.get(i); + } + } + // Invoke the callback on just the original child paths, regardless of + // any modifications made to the array by the callback. I chose these + // semantics over cleverly invoking the callback on new elements because + // this way is much easier to reason about. + context = context || this; + for (i = 0; i < len; ++i) { + if (hasOwn.call(childPaths, i)) { + callback.call(context, childPaths[i]); + } + } + }; + Pp.map = function map(callback, context) { + var result = []; + this.each(function (childPath) { + result.push(callback.call(this, childPath)); + }, context); + return result; + }; + Pp.filter = function filter(callback, context) { + var result = []; + this.each(function (childPath) { + if (callback.call(this, childPath)) { + result.push(childPath); + } + }, context); + return result; + }; + function emptyMoves() { } + function getMoves(path, offset, start, end) { + isArray.assert(path.value); + if (offset === 0) { + return emptyMoves; + } + var length = path.value.length; + if (length < 1) { + return emptyMoves; + } + var argc = arguments.length; + if (argc === 2) { + start = 0; + end = length; + } + else if (argc === 3) { + start = Math.max(start, 0); + end = length; + } + else { + start = Math.max(start, 0); + end = Math.min(end, length); + } + isNumber.assert(start); + isNumber.assert(end); + var moves = Object.create(null); + var cache = getChildCache(path); + for (var i = start; i < end; ++i) { + if (hasOwn.call(path.value, i)) { + var childPath = path.get(i); + if (childPath.name !== i) { + throw new Error(""); + } + var newIndex = i + offset; + childPath.name = newIndex; + moves[newIndex] = childPath; + delete cache[i]; + } + } + delete cache.length; + return function () { + for (var newIndex in moves) { + var childPath = moves[newIndex]; + if (childPath.name !== +newIndex) { + throw new Error(""); + } + cache[newIndex] = childPath; + path.value[newIndex] = childPath.value; + } + }; + } + Pp.shift = function shift() { + var move = getMoves(this, -1); + var result = this.value.shift(); + move(); + return result; + }; + Pp.unshift = function unshift() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var move = getMoves(this, args.length); + var result = this.value.unshift.apply(this.value, args); + move(); + return result; + }; + Pp.push = function push() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + isArray.assert(this.value); + delete getChildCache(this).length; + return this.value.push.apply(this.value, args); + }; + Pp.pop = function pop() { + isArray.assert(this.value); + var cache = getChildCache(this); + delete cache[this.value.length - 1]; + delete cache.length; + return this.value.pop(); + }; + Pp.insertAt = function insertAt(index) { + var argc = arguments.length; + var move = getMoves(this, argc - 1, index); + if (move === emptyMoves && argc <= 1) { + return this; + } + index = Math.max(index, 0); + for (var i = 1; i < argc; ++i) { + this.value[index + i - 1] = arguments[i]; + } + move(); + return this; + }; + Pp.insertBefore = function insertBefore() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var pp = this.parentPath; + var argc = args.length; + var insertAtArgs = [this.name]; + for (var i = 0; i < argc; ++i) { + insertAtArgs.push(args[i]); + } + return pp.insertAt.apply(pp, insertAtArgs); + }; + Pp.insertAfter = function insertAfter() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var pp = this.parentPath; + var argc = args.length; + var insertAtArgs = [this.name + 1]; + for (var i = 0; i < argc; ++i) { + insertAtArgs.push(args[i]); + } + return pp.insertAt.apply(pp, insertAtArgs); + }; + function repairRelationshipWithParent(path) { + if (!(path instanceof Path)) { + throw new Error(""); + } + var pp = path.parentPath; + if (!pp) { + // Orphan paths have no relationship to repair. + return path; + } + var parentValue = pp.value; + var parentCache = getChildCache(pp); + // Make sure parentCache[path.name] is populated. + if (parentValue[path.name] === path.value) { + parentCache[path.name] = path; + } + else if (isArray.check(parentValue)) { + // Something caused path.name to become out of date, so attempt to + // recover by searching for path.value in parentValue. + var i = parentValue.indexOf(path.value); + if (i >= 0) { + parentCache[path.name = i] = path; + } + } + else { + // If path.value disagrees with parentValue[path.name], and + // path.name is not an array index, let path.value become the new + // parentValue[path.name] and update parentCache accordingly. + parentValue[path.name] = path.value; + parentCache[path.name] = path; + } + if (parentValue[path.name] !== path.value) { + throw new Error(""); + } + if (path.parentPath.get(path.name) !== path) { + throw new Error(""); + } + return path; + } + Pp.replace = function replace(replacement) { + var results = []; + var parentValue = this.parentPath.value; + var parentCache = getChildCache(this.parentPath); + var count = arguments.length; + repairRelationshipWithParent(this); + if (isArray.check(parentValue)) { + var originalLength = parentValue.length; + var move = getMoves(this.parentPath, count - 1, this.name + 1); + var spliceArgs = [this.name, 1]; + for (var i = 0; i < count; ++i) { + spliceArgs.push(arguments[i]); + } + var splicedOut = parentValue.splice.apply(parentValue, spliceArgs); + if (splicedOut[0] !== this.value) { + throw new Error(""); + } + if (parentValue.length !== (originalLength - 1 + count)) { + throw new Error(""); + } + move(); + if (count === 0) { + delete this.value; + delete parentCache[this.name]; + this.__childCache = null; + } + else { + if (parentValue[this.name] !== replacement) { + throw new Error(""); + } + if (this.value !== replacement) { + this.value = replacement; + this.__childCache = null; + } + for (i = 0; i < count; ++i) { + results.push(this.parentPath.get(this.name + i)); + } + if (results[0] !== this) { + throw new Error(""); + } + } + } + else if (count === 1) { + if (this.value !== replacement) { + this.__childCache = null; + } + this.value = parentValue[this.name] = replacement; + results.push(this); + } + else if (count === 0) { + delete parentValue[this.name]; + delete this.value; + this.__childCache = null; + // Leave this path cached as parentCache[this.name], even though + // it no longer has a value defined. + } + else { + throw new Error("Could not replace path"); + } + return results; + }; + return Path; +} +exports["default"] = pathPlugin; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/scope.js": +/*!************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/scope.js ***! + \************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ./types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +var hasOwn = Object.prototype.hasOwnProperty; +function scopePlugin(fork) { + var types = fork.use(types_1.default); + var Type = types.Type; + var namedTypes = types.namedTypes; + var Node = namedTypes.Node; + var Expression = namedTypes.Expression; + var isArray = types.builtInTypes.array; + var b = types.builders; + var Scope = function Scope(path, parentScope) { + if (!(this instanceof Scope)) { + throw new Error("Scope constructor cannot be invoked without 'new'"); + } + ScopeType.assert(path.value); + var depth; + if (parentScope) { + if (!(parentScope instanceof Scope)) { + throw new Error(""); + } + depth = parentScope.depth + 1; + } + else { + parentScope = null; + depth = 0; + } + Object.defineProperties(this, { + path: { value: path }, + node: { value: path.value }, + isGlobal: { value: !parentScope, enumerable: true }, + depth: { value: depth }, + parent: { value: parentScope }, + bindings: { value: {} }, + types: { value: {} }, + }); + }; + var scopeTypes = [ + // Program nodes introduce global scopes. + namedTypes.Program, + // Function is the supertype of FunctionExpression, + // FunctionDeclaration, ArrowExpression, etc. + namedTypes.Function, + // In case you didn't know, the caught parameter shadows any variable + // of the same name in an outer scope. + namedTypes.CatchClause + ]; + var ScopeType = Type.or.apply(Type, scopeTypes); + Scope.isEstablishedBy = function (node) { + return ScopeType.check(node); + }; + var Sp = Scope.prototype; + // Will be overridden after an instance lazily calls scanScope. + Sp.didScan = false; + Sp.declares = function (name) { + this.scan(); + return hasOwn.call(this.bindings, name); + }; + Sp.declaresType = function (name) { + this.scan(); + return hasOwn.call(this.types, name); + }; + Sp.declareTemporary = function (prefix) { + if (prefix) { + if (!/^[a-z$_]/i.test(prefix)) { + throw new Error(""); + } + } + else { + prefix = "t$"; + } + // Include this.depth in the name to make sure the name does not + // collide with any variables in nested/enclosing scopes. + prefix += this.depth.toString(36) + "$"; + this.scan(); + var index = 0; + while (this.declares(prefix + index)) { + ++index; + } + var name = prefix + index; + return this.bindings[name] = types.builders.identifier(name); + }; + Sp.injectTemporary = function (identifier, init) { + identifier || (identifier = this.declareTemporary()); + var bodyPath = this.path.get("body"); + if (namedTypes.BlockStatement.check(bodyPath.value)) { + bodyPath = bodyPath.get("body"); + } + bodyPath.unshift(b.variableDeclaration("var", [b.variableDeclarator(identifier, init || null)])); + return identifier; + }; + Sp.scan = function (force) { + if (force || !this.didScan) { + for (var name in this.bindings) { + // Empty out this.bindings, just in cases. + delete this.bindings[name]; + } + scanScope(this.path, this.bindings, this.types); + this.didScan = true; + } + }; + Sp.getBindings = function () { + this.scan(); + return this.bindings; + }; + Sp.getTypes = function () { + this.scan(); + return this.types; + }; + function scanScope(path, bindings, scopeTypes) { + var node = path.value; + ScopeType.assert(node); + if (namedTypes.CatchClause.check(node)) { + // A catch clause establishes a new scope but the only variable + // bound in that scope is the catch parameter. Any other + // declarations create bindings in the outer scope. + var param = path.get("param"); + if (param.value) { + addPattern(param, bindings); + } + } + else { + recursiveScanScope(path, bindings, scopeTypes); + } + } + function recursiveScanScope(path, bindings, scopeTypes) { + var node = path.value; + if (path.parent && + namedTypes.FunctionExpression.check(path.parent.node) && + path.parent.node.id) { + addPattern(path.parent.get("id"), bindings); + } + if (!node) { + // None of the remaining cases matter if node is falsy. + } + else if (isArray.check(node)) { + path.each(function (childPath) { + recursiveScanChild(childPath, bindings, scopeTypes); + }); + } + else if (namedTypes.Function.check(node)) { + path.get("params").each(function (paramPath) { + addPattern(paramPath, bindings); + }); + recursiveScanChild(path.get("body"), bindings, scopeTypes); + } + else if ((namedTypes.TypeAlias && namedTypes.TypeAlias.check(node)) || + (namedTypes.InterfaceDeclaration && namedTypes.InterfaceDeclaration.check(node)) || + (namedTypes.TSTypeAliasDeclaration && namedTypes.TSTypeAliasDeclaration.check(node)) || + (namedTypes.TSInterfaceDeclaration && namedTypes.TSInterfaceDeclaration.check(node))) { + addTypePattern(path.get("id"), scopeTypes); + } + else if (namedTypes.VariableDeclarator.check(node)) { + addPattern(path.get("id"), bindings); + recursiveScanChild(path.get("init"), bindings, scopeTypes); + } + else if (node.type === "ImportSpecifier" || + node.type === "ImportNamespaceSpecifier" || + node.type === "ImportDefaultSpecifier") { + addPattern( + // Esprima used to use the .name field to refer to the local + // binding identifier for ImportSpecifier nodes, but .id for + // ImportNamespaceSpecifier and ImportDefaultSpecifier nodes. + // ESTree/Acorn/ESpree use .local for all three node types. + path.get(node.local ? "local" : + node.name ? "name" : "id"), bindings); + } + else if (Node.check(node) && !Expression.check(node)) { + types.eachField(node, function (name, child) { + var childPath = path.get(name); + if (!pathHasValue(childPath, child)) { + throw new Error(""); + } + recursiveScanChild(childPath, bindings, scopeTypes); + }); + } + } + function pathHasValue(path, value) { + if (path.value === value) { + return true; + } + // Empty arrays are probably produced by defaults.emptyArray, in which + // case is makes sense to regard them as equivalent, if not ===. + if (Array.isArray(path.value) && + path.value.length === 0 && + Array.isArray(value) && + value.length === 0) { + return true; + } + return false; + } + function recursiveScanChild(path, bindings, scopeTypes) { + var node = path.value; + if (!node || Expression.check(node)) { + // Ignore falsy values and Expressions. + } + else if (namedTypes.FunctionDeclaration.check(node) && + node.id !== null) { + addPattern(path.get("id"), bindings); + } + else if (namedTypes.ClassDeclaration && + namedTypes.ClassDeclaration.check(node)) { + addPattern(path.get("id"), bindings); + } + else if (ScopeType.check(node)) { + if (namedTypes.CatchClause.check(node) && + // TODO Broaden this to accept any pattern. + namedTypes.Identifier.check(node.param)) { + var catchParamName = node.param.name; + var hadBinding = hasOwn.call(bindings, catchParamName); + // Any declarations that occur inside the catch body that do + // not have the same name as the catch parameter should count + // as bindings in the outer scope. + recursiveScanScope(path.get("body"), bindings, scopeTypes); + // If a new binding matching the catch parameter name was + // created while scanning the catch body, ignore it because it + // actually refers to the catch parameter and not the outer + // scope that we're currently scanning. + if (!hadBinding) { + delete bindings[catchParamName]; + } + } + } + else { + recursiveScanScope(path, bindings, scopeTypes); + } + } + function addPattern(patternPath, bindings) { + var pattern = patternPath.value; + namedTypes.Pattern.assert(pattern); + if (namedTypes.Identifier.check(pattern)) { + if (hasOwn.call(bindings, pattern.name)) { + bindings[pattern.name].push(patternPath); + } + else { + bindings[pattern.name] = [patternPath]; + } + } + else if (namedTypes.AssignmentPattern && + namedTypes.AssignmentPattern.check(pattern)) { + addPattern(patternPath.get('left'), bindings); + } + else if (namedTypes.ObjectPattern && + namedTypes.ObjectPattern.check(pattern)) { + patternPath.get('properties').each(function (propertyPath) { + var property = propertyPath.value; + if (namedTypes.Pattern.check(property)) { + addPattern(propertyPath, bindings); + } + else if (namedTypes.Property.check(property)) { + addPattern(propertyPath.get('value'), bindings); + } + else if (namedTypes.SpreadProperty && + namedTypes.SpreadProperty.check(property)) { + addPattern(propertyPath.get('argument'), bindings); + } + }); + } + else if (namedTypes.ArrayPattern && + namedTypes.ArrayPattern.check(pattern)) { + patternPath.get('elements').each(function (elementPath) { + var element = elementPath.value; + if (namedTypes.Pattern.check(element)) { + addPattern(elementPath, bindings); + } + else if (namedTypes.SpreadElement && + namedTypes.SpreadElement.check(element)) { + addPattern(elementPath.get("argument"), bindings); + } + }); + } + else if (namedTypes.PropertyPattern && + namedTypes.PropertyPattern.check(pattern)) { + addPattern(patternPath.get('pattern'), bindings); + } + else if ((namedTypes.SpreadElementPattern && + namedTypes.SpreadElementPattern.check(pattern)) || + (namedTypes.SpreadPropertyPattern && + namedTypes.SpreadPropertyPattern.check(pattern))) { + addPattern(patternPath.get('argument'), bindings); + } + } + function addTypePattern(patternPath, types) { + var pattern = patternPath.value; + namedTypes.Pattern.assert(pattern); + if (namedTypes.Identifier.check(pattern)) { + if (hasOwn.call(types, pattern.name)) { + types[pattern.name].push(patternPath); + } + else { + types[pattern.name] = [patternPath]; + } + } + } + Sp.lookup = function (name) { + for (var scope = this; scope; scope = scope.parent) + if (scope.declares(name)) + break; + return scope; + }; + Sp.lookupType = function (name) { + for (var scope = this; scope; scope = scope.parent) + if (scope.declaresType(name)) + break; + return scope; + }; + Sp.getGlobalScope = function () { + var scope = this; + while (!scope.isGlobal) + scope = scope.parent; + return scope; + }; + return Scope; +} +exports["default"] = scopePlugin; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js": +/*!*************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/shared.js ***! + \*************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var types_1 = tslib_1.__importDefault(__webpack_require__(/*! ./types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js")); +function default_1(fork) { + var types = fork.use(types_1.default); + var Type = types.Type; + var builtin = types.builtInTypes; + var isNumber = builtin.number; + // An example of constructing a new type with arbitrary constraints from + // an existing type. + function geq(than) { + return Type.from(function (value) { return isNumber.check(value) && value >= than; }, isNumber + " >= " + than); + } + ; + // Default value-returning functions that may optionally be passed as a + // third argument to Def.prototype.field. + var defaults = { + // Functions were used because (among other reasons) that's the most + // elegant way to allow for the emptyArray one always to give a new + // array instance. + "null": function () { return null; }, + "emptyArray": function () { return []; }, + "false": function () { return false; }, + "true": function () { return true; }, + "undefined": function () { }, + "use strict": function () { return "use strict"; } + }; + var naiveIsPrimitive = Type.or(builtin.string, builtin.number, builtin.boolean, builtin.null, builtin.undefined); + var isPrimitive = Type.from(function (value) { + if (value === null) + return true; + var type = typeof value; + if (type === "object" || + type === "function") { + return false; + } + return true; + }, naiveIsPrimitive.toString()); + return { + geq: geq, + defaults: defaults, + isPrimitive: isPrimitive, + }; +} +exports["default"] = default_1; +module.exports = exports["default"]; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js": +/*!************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/lib/types.js ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Def = void 0; +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var Op = Object.prototype; +var objToStr = Op.toString; +var hasOwn = Op.hasOwnProperty; +var BaseType = /** @class */ (function () { + function BaseType() { + } + BaseType.prototype.assert = function (value, deep) { + if (!this.check(value, deep)) { + var str = shallowStringify(value); + throw new Error(str + " does not match type " + this); + } + return true; + }; + BaseType.prototype.arrayOf = function () { + var elemType = this; + return new ArrayType(elemType); + }; + return BaseType; +}()); +var ArrayType = /** @class */ (function (_super) { + tslib_1.__extends(ArrayType, _super); + function ArrayType(elemType) { + var _this = _super.call(this) || this; + _this.elemType = elemType; + _this.kind = "ArrayType"; + return _this; + } + ArrayType.prototype.toString = function () { + return "[" + this.elemType + "]"; + }; + ArrayType.prototype.check = function (value, deep) { + var _this = this; + return Array.isArray(value) && value.every(function (elem) { return _this.elemType.check(elem, deep); }); + }; + return ArrayType; +}(BaseType)); +var IdentityType = /** @class */ (function (_super) { + tslib_1.__extends(IdentityType, _super); + function IdentityType(value) { + var _this = _super.call(this) || this; + _this.value = value; + _this.kind = "IdentityType"; + return _this; + } + IdentityType.prototype.toString = function () { + return String(this.value); + }; + IdentityType.prototype.check = function (value, deep) { + var result = value === this.value; + if (!result && typeof deep === "function") { + deep(this, value); + } + return result; + }; + return IdentityType; +}(BaseType)); +var ObjectType = /** @class */ (function (_super) { + tslib_1.__extends(ObjectType, _super); + function ObjectType(fields) { + var _this = _super.call(this) || this; + _this.fields = fields; + _this.kind = "ObjectType"; + return _this; + } + ObjectType.prototype.toString = function () { + return "{ " + this.fields.join(", ") + " }"; + }; + ObjectType.prototype.check = function (value, deep) { + return (objToStr.call(value) === objToStr.call({}) && + this.fields.every(function (field) { + return field.type.check(value[field.name], deep); + })); + }; + return ObjectType; +}(BaseType)); +var OrType = /** @class */ (function (_super) { + tslib_1.__extends(OrType, _super); + function OrType(types) { + var _this = _super.call(this) || this; + _this.types = types; + _this.kind = "OrType"; + return _this; + } + OrType.prototype.toString = function () { + return this.types.join(" | "); + }; + OrType.prototype.check = function (value, deep) { + return this.types.some(function (type) { + return type.check(value, deep); + }); + }; + return OrType; +}(BaseType)); +var PredicateType = /** @class */ (function (_super) { + tslib_1.__extends(PredicateType, _super); + function PredicateType(name, predicate) { + var _this = _super.call(this) || this; + _this.name = name; + _this.predicate = predicate; + _this.kind = "PredicateType"; + return _this; + } + PredicateType.prototype.toString = function () { + return this.name; + }; + PredicateType.prototype.check = function (value, deep) { + var result = this.predicate(value, deep); + if (!result && typeof deep === "function") { + deep(this, value); + } + return result; + }; + return PredicateType; +}(BaseType)); +var Def = /** @class */ (function () { + function Def(type, typeName) { + this.type = type; + this.typeName = typeName; + this.baseNames = []; + this.ownFields = Object.create(null); + // Includes own typeName. Populated during finalization. + this.allSupertypes = Object.create(null); + // Linear inheritance hierarchy. Populated during finalization. + this.supertypeList = []; + // Includes inherited fields. + this.allFields = Object.create(null); + // Non-hidden keys of allFields. + this.fieldNames = []; + // This property will be overridden as true by individual Def instances + // when they are finalized. + this.finalized = false; + // False by default until .build(...) is called on an instance. + this.buildable = false; + this.buildParams = []; + } + Def.prototype.isSupertypeOf = function (that) { + if (that instanceof Def) { + if (this.finalized !== true || + that.finalized !== true) { + throw new Error(""); + } + return hasOwn.call(that.allSupertypes, this.typeName); + } + else { + throw new Error(that + " is not a Def"); + } + }; + Def.prototype.checkAllFields = function (value, deep) { + var allFields = this.allFields; + if (this.finalized !== true) { + throw new Error("" + this.typeName); + } + function checkFieldByName(name) { + var field = allFields[name]; + var type = field.type; + var child = field.getValue(value); + return type.check(child, deep); + } + return value !== null && + typeof value === "object" && + Object.keys(allFields).every(checkFieldByName); + }; + Def.prototype.bases = function () { + var supertypeNames = []; + for (var _i = 0; _i < arguments.length; _i++) { + supertypeNames[_i] = arguments[_i]; + } + var bases = this.baseNames; + if (this.finalized) { + if (supertypeNames.length !== bases.length) { + throw new Error(""); + } + for (var i = 0; i < supertypeNames.length; i++) { + if (supertypeNames[i] !== bases[i]) { + throw new Error(""); + } + } + return this; + } + supertypeNames.forEach(function (baseName) { + // This indexOf lookup may be O(n), but the typical number of base + // names is very small, and indexOf is a native Array method. + if (bases.indexOf(baseName) < 0) { + bases.push(baseName); + } + }); + return this; // For chaining. + }; + return Def; +}()); +exports.Def = Def; +var Field = /** @class */ (function () { + function Field(name, type, defaultFn, hidden) { + this.name = name; + this.type = type; + this.defaultFn = defaultFn; + this.hidden = !!hidden; + } + Field.prototype.toString = function () { + return JSON.stringify(this.name) + ": " + this.type; + }; + Field.prototype.getValue = function (obj) { + var value = obj[this.name]; + if (typeof value !== "undefined") { + return value; + } + if (typeof this.defaultFn === "function") { + value = this.defaultFn.call(obj); + } + return value; + }; + return Field; +}()); +function shallowStringify(value) { + if (Array.isArray(value)) { + return "[" + value.map(shallowStringify).join(", ") + "]"; + } + if (value && typeof value === "object") { + return "{ " + Object.keys(value).map(function (key) { + return key + ": " + value[key]; + }).join(", ") + " }"; + } + return JSON.stringify(value); +} +function typesPlugin(_fork) { + var Type = { + or: function () { + var types = []; + for (var _i = 0; _i < arguments.length; _i++) { + types[_i] = arguments[_i]; + } + return new OrType(types.map(function (type) { return Type.from(type); })); + }, + from: function (value, name) { + if (value instanceof ArrayType || + value instanceof IdentityType || + value instanceof ObjectType || + value instanceof OrType || + value instanceof PredicateType) { + return value; + } + // The Def type is used as a helper for constructing compound + // interface types for AST nodes. + if (value instanceof Def) { + return value.type; + } + // Support [ElemType] syntax. + if (isArray.check(value)) { + if (value.length !== 1) { + throw new Error("only one element type is permitted for typed arrays"); + } + return new ArrayType(Type.from(value[0])); + } + // Support { someField: FieldType, ... } syntax. + if (isObject.check(value)) { + return new ObjectType(Object.keys(value).map(function (name) { + return new Field(name, Type.from(value[name], name)); + })); + } + if (typeof value === "function") { + var bicfIndex = builtInCtorFns.indexOf(value); + if (bicfIndex >= 0) { + return builtInCtorTypes[bicfIndex]; + } + if (typeof name !== "string") { + throw new Error("missing name"); + } + return new PredicateType(name, value); + } + // As a last resort, toType returns a type that matches any value that + // is === from. This is primarily useful for literal values like + // toType(null), but it has the additional advantage of allowing + // toType to be a total function. + return new IdentityType(value); + }, + // Define a type whose name is registered in a namespace (the defCache) so + // that future definitions will return the same type given the same name. + // In particular, this system allows for circular and forward definitions. + // The Def object d returned from Type.def may be used to configure the + // type d.type by calling methods such as d.bases, d.build, and d.field. + def: function (typeName) { + return hasOwn.call(defCache, typeName) + ? defCache[typeName] + : defCache[typeName] = new DefImpl(typeName); + }, + hasDef: function (typeName) { + return hasOwn.call(defCache, typeName); + } + }; + var builtInCtorFns = []; + var builtInCtorTypes = []; + function defBuiltInType(name, example) { + var objStr = objToStr.call(example); + var type = new PredicateType(name, function (value) { return objToStr.call(value) === objStr; }); + if (example && typeof example.constructor === "function") { + builtInCtorFns.push(example.constructor); + builtInCtorTypes.push(type); + } + return type; + } + // These types check the underlying [[Class]] attribute of the given + // value, rather than using the problematic typeof operator. Note however + // that no subtyping is considered; so, for instance, isObject.check + // returns false for [], /./, new Date, and null. + var isString = defBuiltInType("string", "truthy"); + var isFunction = defBuiltInType("function", function () { }); + var isArray = defBuiltInType("array", []); + var isObject = defBuiltInType("object", {}); + var isRegExp = defBuiltInType("RegExp", /./); + var isDate = defBuiltInType("Date", new Date()); + var isNumber = defBuiltInType("number", 3); + var isBoolean = defBuiltInType("boolean", true); + var isNull = defBuiltInType("null", null); + var isUndefined = defBuiltInType("undefined", undefined); + var builtInTypes = { + string: isString, + function: isFunction, + array: isArray, + object: isObject, + RegExp: isRegExp, + Date: isDate, + number: isNumber, + boolean: isBoolean, + null: isNull, + undefined: isUndefined, + }; + // In order to return the same Def instance every time Type.def is called + // with a particular name, those instances need to be stored in a cache. + var defCache = Object.create(null); + function defFromValue(value) { + if (value && typeof value === "object") { + var type = value.type; + if (typeof type === "string" && + hasOwn.call(defCache, type)) { + var d = defCache[type]; + if (d.finalized) { + return d; + } + } + } + return null; + } + var DefImpl = /** @class */ (function (_super) { + tslib_1.__extends(DefImpl, _super); + function DefImpl(typeName) { + var _this = _super.call(this, new PredicateType(typeName, function (value, deep) { return _this.check(value, deep); }), typeName) || this; + return _this; + } + DefImpl.prototype.check = function (value, deep) { + if (this.finalized !== true) { + throw new Error("prematurely checking unfinalized type " + this.typeName); + } + // A Def type can only match an object value. + if (value === null || typeof value !== "object") { + return false; + } + var vDef = defFromValue(value); + if (!vDef) { + // If we couldn't infer the Def associated with the given value, + // and we expected it to be a SourceLocation or a Position, it was + // probably just missing a "type" field (because Esprima does not + // assign a type property to such nodes). Be optimistic and let + // this.checkAllFields make the final decision. + if (this.typeName === "SourceLocation" || + this.typeName === "Position") { + return this.checkAllFields(value, deep); + } + // Calling this.checkAllFields for any other type of node is both + // bad for performance and way too forgiving. + return false; + } + // If checking deeply and vDef === this, then we only need to call + // checkAllFields once. Calling checkAllFields is too strict when deep + // is false, because then we only care about this.isSupertypeOf(vDef). + if (deep && vDef === this) { + return this.checkAllFields(value, deep); + } + // In most cases we rely exclusively on isSupertypeOf to make O(1) + // subtyping determinations. This suffices in most situations outside + // of unit tests, since interface conformance is checked whenever new + // instances are created using builder functions. + if (!this.isSupertypeOf(vDef)) { + return false; + } + // The exception is when deep is true; then, we recursively check all + // fields. + if (!deep) { + return true; + } + // Use the more specific Def (vDef) to perform the deep check, but + // shallow-check fields defined by the less specific Def (this). + return vDef.checkAllFields(value, deep) + && this.checkAllFields(value, false); + }; + DefImpl.prototype.build = function () { + var _this = this; + var buildParams = []; + for (var _i = 0; _i < arguments.length; _i++) { + buildParams[_i] = arguments[_i]; + } + // Calling Def.prototype.build multiple times has the effect of merely + // redefining this property. + this.buildParams = buildParams; + if (this.buildable) { + // If this Def is already buildable, update self.buildParams and + // continue using the old builder function. + return this; + } + // Every buildable type will have its "type" field filled in + // automatically. This includes types that are not subtypes of Node, + // like SourceLocation, but that seems harmless (TODO?). + this.field("type", String, function () { return _this.typeName; }); + // Override Dp.buildable for this Def instance. + this.buildable = true; + var addParam = function (built, param, arg, isArgAvailable) { + if (hasOwn.call(built, param)) + return; + var all = _this.allFields; + if (!hasOwn.call(all, param)) { + throw new Error("" + param); + } + var field = all[param]; + var type = field.type; + var value; + if (isArgAvailable) { + value = arg; + } + else if (field.defaultFn) { + // Expose the partially-built object to the default + // function as its `this` object. + value = field.defaultFn.call(built); + } + else { + var message = "no value or default function given for field " + + JSON.stringify(param) + " of " + _this.typeName + "(" + + _this.buildParams.map(function (name) { + return all[name]; + }).join(", ") + ")"; + throw new Error(message); + } + if (!type.check(value)) { + throw new Error(shallowStringify(value) + + " does not match field " + field + + " of type " + _this.typeName); + } + built[param] = value; + }; + // Calling the builder function will construct an instance of the Def, + // with positional arguments mapped to the fields original passed to .build. + // If not enough arguments are provided, the default value for the remaining fields + // will be used. + var builder = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var argc = args.length; + if (!_this.finalized) { + throw new Error("attempting to instantiate unfinalized type " + + _this.typeName); + } + var built = Object.create(nodePrototype); + _this.buildParams.forEach(function (param, i) { + if (i < argc) { + addParam(built, param, args[i], true); + } + else { + addParam(built, param, null, false); + } + }); + Object.keys(_this.allFields).forEach(function (param) { + // Use the default value. + addParam(built, param, null, false); + }); + // Make sure that the "type" field was filled automatically. + if (built.type !== _this.typeName) { + throw new Error(""); + } + return built; + }; + // Calling .from on the builder function will construct an instance of the Def, + // using field values from the passed object. For fields missing from the passed object, + // their default value will be used. + builder.from = function (obj) { + if (!_this.finalized) { + throw new Error("attempting to instantiate unfinalized type " + + _this.typeName); + } + var built = Object.create(nodePrototype); + Object.keys(_this.allFields).forEach(function (param) { + if (hasOwn.call(obj, param)) { + addParam(built, param, obj[param], true); + } + else { + addParam(built, param, null, false); + } + }); + // Make sure that the "type" field was filled automatically. + if (built.type !== _this.typeName) { + throw new Error(""); + } + return built; + }; + Object.defineProperty(builders, getBuilderName(this.typeName), { + enumerable: true, + value: builder + }); + return this; + }; + // The reason fields are specified using .field(...) instead of an object + // literal syntax is somewhat subtle: the object literal syntax would + // support only one key and one value, but with .field(...) we can pass + // any number of arguments to specify the field. + DefImpl.prototype.field = function (name, type, defaultFn, hidden) { + if (this.finalized) { + console.error("Ignoring attempt to redefine field " + + JSON.stringify(name) + " of finalized type " + + JSON.stringify(this.typeName)); + return this; + } + this.ownFields[name] = new Field(name, Type.from(type), defaultFn, hidden); + return this; // For chaining. + }; + DefImpl.prototype.finalize = function () { + var _this = this; + // It's not an error to finalize a type more than once, but only the + // first call to .finalize does anything. + if (!this.finalized) { + var allFields = this.allFields; + var allSupertypes = this.allSupertypes; + this.baseNames.forEach(function (name) { + var def = defCache[name]; + if (def instanceof Def) { + def.finalize(); + extend(allFields, def.allFields); + extend(allSupertypes, def.allSupertypes); + } + else { + var message = "unknown supertype name " + + JSON.stringify(name) + + " for subtype " + + JSON.stringify(_this.typeName); + throw new Error(message); + } + }); + // TODO Warn if fields are overridden with incompatible types. + extend(allFields, this.ownFields); + allSupertypes[this.typeName] = this; + this.fieldNames.length = 0; + for (var fieldName in allFields) { + if (hasOwn.call(allFields, fieldName) && + !allFields[fieldName].hidden) { + this.fieldNames.push(fieldName); + } + } + // Types are exported only once they have been finalized. + Object.defineProperty(namedTypes, this.typeName, { + enumerable: true, + value: this.type + }); + this.finalized = true; + // A linearization of the inheritance hierarchy. + populateSupertypeList(this.typeName, this.supertypeList); + if (this.buildable && + this.supertypeList.lastIndexOf("Expression") >= 0) { + wrapExpressionBuilderWithStatement(this.typeName); + } + } + }; + return DefImpl; + }(Def)); + // Note that the list returned by this function is a copy of the internal + // supertypeList, *without* the typeName itself as the first element. + function getSupertypeNames(typeName) { + if (!hasOwn.call(defCache, typeName)) { + throw new Error(""); + } + var d = defCache[typeName]; + if (d.finalized !== true) { + throw new Error(""); + } + return d.supertypeList.slice(1); + } + // Returns an object mapping from every known type in the defCache to the + // most specific supertype whose name is an own property of the candidates + // object. + function computeSupertypeLookupTable(candidates) { + var table = {}; + var typeNames = Object.keys(defCache); + var typeNameCount = typeNames.length; + for (var i = 0; i < typeNameCount; ++i) { + var typeName = typeNames[i]; + var d = defCache[typeName]; + if (d.finalized !== true) { + throw new Error("" + typeName); + } + for (var j = 0; j < d.supertypeList.length; ++j) { + var superTypeName = d.supertypeList[j]; + if (hasOwn.call(candidates, superTypeName)) { + table[typeName] = superTypeName; + break; + } + } + } + return table; + } + var builders = Object.create(null); + // This object is used as prototype for any node created by a builder. + var nodePrototype = {}; + // Call this function to define a new method to be shared by all AST + // nodes. The replaced method (if any) is returned for easy wrapping. + function defineMethod(name, func) { + var old = nodePrototype[name]; + // Pass undefined as func to delete nodePrototype[name]. + if (isUndefined.check(func)) { + delete nodePrototype[name]; + } + else { + isFunction.assert(func); + Object.defineProperty(nodePrototype, name, { + enumerable: true, + configurable: true, + value: func + }); + } + return old; + } + function getBuilderName(typeName) { + return typeName.replace(/^[A-Z]+/, function (upperCasePrefix) { + var len = upperCasePrefix.length; + switch (len) { + case 0: return ""; + // If there's only one initial capital letter, just lower-case it. + case 1: return upperCasePrefix.toLowerCase(); + default: + // If there's more than one initial capital letter, lower-case + // all but the last one, so that XMLDefaultDeclaration (for + // example) becomes xmlDefaultDeclaration. + return upperCasePrefix.slice(0, len - 1).toLowerCase() + + upperCasePrefix.charAt(len - 1); + } + }); + } + function getStatementBuilderName(typeName) { + typeName = getBuilderName(typeName); + return typeName.replace(/(Expression)?$/, "Statement"); + } + var namedTypes = {}; + // Like Object.keys, but aware of what fields each AST type should have. + function getFieldNames(object) { + var d = defFromValue(object); + if (d) { + return d.fieldNames.slice(0); + } + if ("type" in object) { + throw new Error("did not recognize object of type " + + JSON.stringify(object.type)); + } + return Object.keys(object); + } + // Get the value of an object property, taking object.type and default + // functions into account. + function getFieldValue(object, fieldName) { + var d = defFromValue(object); + if (d) { + var field = d.allFields[fieldName]; + if (field) { + return field.getValue(object); + } + } + return object && object[fieldName]; + } + // Iterate over all defined fields of an object, including those missing + // or undefined, passing each field name and effective value (as returned + // by getFieldValue) to the callback. If the object has no corresponding + // Def, the callback will never be called. + function eachField(object, callback, context) { + getFieldNames(object).forEach(function (name) { + callback.call(this, name, getFieldValue(object, name)); + }, context); + } + // Similar to eachField, except that iteration stops as soon as the + // callback returns a truthy value. Like Array.prototype.some, the final + // result is either true or false to indicates whether the callback + // returned true for any element or not. + function someField(object, callback, context) { + return getFieldNames(object).some(function (name) { + return callback.call(this, name, getFieldValue(object, name)); + }, context); + } + // Adds an additional builder for Expression subtypes + // that wraps the built Expression in an ExpressionStatements. + function wrapExpressionBuilderWithStatement(typeName) { + var wrapperName = getStatementBuilderName(typeName); + // skip if the builder already exists + if (builders[wrapperName]) + return; + // the builder function to wrap with builders.ExpressionStatement + var wrapped = builders[getBuilderName(typeName)]; + // skip if there is nothing to wrap + if (!wrapped) + return; + var builder = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return builders.expressionStatement(wrapped.apply(builders, args)); + }; + builder.from = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return builders.expressionStatement(wrapped.from.apply(builders, args)); + }; + builders[wrapperName] = builder; + } + function populateSupertypeList(typeName, list) { + list.length = 0; + list.push(typeName); + var lastSeen = Object.create(null); + for (var pos = 0; pos < list.length; ++pos) { + typeName = list[pos]; + var d = defCache[typeName]; + if (d.finalized !== true) { + throw new Error(""); + } + // If we saw typeName earlier in the breadth-first traversal, + // delete the last-seen occurrence. + if (hasOwn.call(lastSeen, typeName)) { + delete list[lastSeen[typeName]]; + } + // Record the new index of the last-seen occurrence of typeName. + lastSeen[typeName] = pos; + // Enqueue the base names of this type. + list.push.apply(list, d.baseNames); + } + // Compaction loop to remove array holes. + for (var to = 0, from = to, len = list.length; from < len; ++from) { + if (hasOwn.call(list, from)) { + list[to++] = list[from]; + } + } + list.length = to; + } + function extend(into, from) { + Object.keys(from).forEach(function (name) { + into[name] = from[name]; + }); + return into; + } + function finalize() { + Object.keys(defCache).forEach(function (name) { + defCache[name].finalize(); + }); + } + return { + Type: Type, + builtInTypes: builtInTypes, + getSupertypeNames: getSupertypeNames, + computeSupertypeLookupTable: computeSupertypeLookupTable, + builders: builders, + defineMethod: defineMethod, + getBuilderName: getBuilderName, + getStatementBuilderName: getStatementBuilderName, + namedTypes: namedTypes, + getFieldNames: getFieldNames, + getFieldValue: getFieldValue, + eachField: eachField, + someField: someField, + finalize: finalize, + }; +} +exports["default"] = typesPlugin; +; + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/main.js": +/*!*******************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/main.js ***! + \*******************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.visit = exports.use = exports.Type = exports.someField = exports.PathVisitor = exports.Path = exports.NodePath = exports.namedTypes = exports.getSupertypeNames = exports.getFieldValue = exports.getFieldNames = exports.getBuilderName = exports.finalize = exports.eachField = exports.defineMethod = exports.builtInTypes = exports.builders = exports.astNodesAreEquivalent = void 0; +var tslib_1 = __webpack_require__(/*! tslib */ "../../../.yarn/berry/cache/tslib-npm-2.4.0-9cb6dc5030-9.zip/node_modules/tslib/tslib.es6.js"); +var fork_1 = tslib_1.__importDefault(__webpack_require__(/*! ./fork */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/fork.js")); +var core_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/core */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/core.js")); +var es6_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/es6 */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es6.js")); +var es7_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/es7 */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es7.js")); +var es2020_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/es2020 */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es2020.js")); +var jsx_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/jsx */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/jsx.js")); +var flow_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/flow */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/flow.js")); +var esprima_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/esprima */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/esprima.js")); +var babel_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/babel */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/babel.js")); +var typescript_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/typescript */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/typescript.js")); +var es_proposals_1 = tslib_1.__importDefault(__webpack_require__(/*! ./def/es-proposals */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/def/es-proposals.js")); +var namedTypes_1 = __webpack_require__(/*! ./gen/namedTypes */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/gen/namedTypes.js"); +Object.defineProperty(exports, "namedTypes", ({ enumerable: true, get: function () { return namedTypes_1.namedTypes; } })); +var _a = fork_1.default([ + // This core module of AST types captures ES5 as it is parsed today by + // git://github.com/ariya/esprima.git#master. + core_1.default, + // Feel free to add to or remove from this list of extension modules to + // configure the precise type hierarchy that you need. + es6_1.default, + es7_1.default, + es2020_1.default, + jsx_1.default, + flow_1.default, + esprima_1.default, + babel_1.default, + typescript_1.default, + es_proposals_1.default, +]), astNodesAreEquivalent = _a.astNodesAreEquivalent, builders = _a.builders, builtInTypes = _a.builtInTypes, defineMethod = _a.defineMethod, eachField = _a.eachField, finalize = _a.finalize, getBuilderName = _a.getBuilderName, getFieldNames = _a.getFieldNames, getFieldValue = _a.getFieldValue, getSupertypeNames = _a.getSupertypeNames, n = _a.namedTypes, NodePath = _a.NodePath, Path = _a.Path, PathVisitor = _a.PathVisitor, someField = _a.someField, Type = _a.Type, use = _a.use, visit = _a.visit; +exports.astNodesAreEquivalent = astNodesAreEquivalent; +exports.builders = builders; +exports.builtInTypes = builtInTypes; +exports.defineMethod = defineMethod; +exports.eachField = eachField; +exports.finalize = finalize; +exports.getBuilderName = getBuilderName; +exports.getFieldNames = getFieldNames; +exports.getFieldValue = getFieldValue; +exports.getSupertypeNames = getSupertypeNames; +exports.NodePath = NodePath; +exports.Path = Path; +exports.PathVisitor = PathVisitor; +exports.someField = someField; +exports.Type = Type; +exports.use = use; +exports.visit = visit; +// Populate the exported fields of the namedTypes namespace, while still +// retaining its member types. +Object.assign(namedTypes_1.namedTypes, n); + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/bytes-npm-3.1.2-28b8643004-9.zip/node_modules/bytes/index.js": +/*!***********************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/bytes-npm-3.1.2-28b8643004-9.zip/node_modules/bytes/index.js ***! + \***********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ + + + +/** + * Module exports. + * @public + */ + +module.exports = bytes; +module.exports.format = format; +module.exports.parse = parse; + +/** + * Module variables. + * @private + */ + +var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; + +var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; + +var map = { + b: 1, + kb: 1 << 10, + mb: 1 << 20, + gb: 1 << 30, + tb: Math.pow(1024, 4), + pb: Math.pow(1024, 5), +}; + +var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; + +/** + * Convert the given value in bytes into a string or parse to string to an integer in bytes. + * + * @param {string|number} value + * @param {{ + * case: [string], + * decimalPlaces: [number] + * fixedDecimals: [boolean] + * thousandsSeparator: [string] + * unitSeparator: [string] + * }} [options] bytes options. + * + * @returns {string|number|null} + */ + +function bytes(value, options) { + if (typeof value === 'string') { + return parse(value); + } + + if (typeof value === 'number') { + return format(value, options); + } + + return null; +} + +/** + * Format the given value in bytes into a string. + * + * If the value is negative, it is kept as such. If it is a float, + * it is rounded. + * + * @param {number} value + * @param {object} [options] + * @param {number} [options.decimalPlaces=2] + * @param {number} [options.fixedDecimals=false] + * @param {string} [options.thousandsSeparator=] + * @param {string} [options.unit=] + * @param {string} [options.unitSeparator=] + * + * @returns {string|null} + * @public + */ + +function format(value, options) { + if (!Number.isFinite(value)) { + return null; + } + + var mag = Math.abs(value); + var thousandsSeparator = (options && options.thousandsSeparator) || ''; + var unitSeparator = (options && options.unitSeparator) || ''; + var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; + var fixedDecimals = Boolean(options && options.fixedDecimals); + var unit = (options && options.unit) || ''; + + if (!unit || !map[unit.toLowerCase()]) { + if (mag >= map.pb) { + unit = 'PB'; + } else if (mag >= map.tb) { + unit = 'TB'; + } else if (mag >= map.gb) { + unit = 'GB'; + } else if (mag >= map.mb) { + unit = 'MB'; + } else if (mag >= map.kb) { + unit = 'KB'; + } else { + unit = 'B'; + } + } + + var val = value / map[unit.toLowerCase()]; + var str = val.toFixed(decimalPlaces); + + if (!fixedDecimals) { + str = str.replace(formatDecimalsRegExp, '$1'); + } + + if (thousandsSeparator) { + str = str.split('.').map(function (s, i) { + return i === 0 + ? s.replace(formatThousandsRegExp, thousandsSeparator) + : s + }).join('.'); + } + + return str + unitSeparator + unit; +} + +/** + * Parse the string value into an integer in bytes. + * + * If no unit is given, it is assumed the value is in bytes. + * + * @param {number|string} val + * + * @returns {number|null} + * @public + */ + +function parse(val) { + if (typeof val === 'number' && !isNaN(val)) { + return val; + } + + if (typeof val !== 'string') { + return null; + } + + // Test if the string passed is valid + var results = parseRegExp.exec(val); + var floatValue; + var unit = 'b'; + + if (!results) { + // Nothing could be extracted from the given string + floatValue = parseInt(val, 10); + unit = 'b' + } else { + // Retrieve the value and the unit + floatValue = parseFloat(results[1]); + unit = results[4].toLowerCase(); + } + + if (isNaN(floatValue)) { + return null; + } + + return Math.floor(map[unit] * floatValue); +} + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/core-util-is-npm-1.0.3-ca74b76c90-9.zip/node_modules/core-util-is/lib/util.js": +/*!****************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/core-util-is-npm-1.0.3-ca74b76c90-9.zip/node_modules/core-util-is/lib/util.js ***! + \****************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission 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: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE 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. + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. + +function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === '[object Array]'; +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = __webpack_require__(/*! buffer */ "buffer").Buffer.isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/data-uri-to-buffer-npm-3.0.1-830646f9ee-9.zip/node_modules/data-uri-to-buffer/dist/src/index.js": +/*!**********************************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/data-uri-to-buffer-npm-3.0.1-830646f9ee-9.zip/node_modules/data-uri-to-buffer/dist/src/index.js ***! + \**********************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; + +/** + * Returns a `Buffer` instance from the given data URI `uri`. + * + * @param {String} uri Data URI to turn into a Buffer instance + * @return {Buffer} Buffer instance from Data URI + * @api public + */ +function dataUriToBuffer(uri) { + if (!/^data:/i.test(uri)) { + throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")'); + } + // strip newlines + uri = uri.replace(/\r?\n/g, ''); + // split the URI up into the "metadata" and the "data" portions + const firstComma = uri.indexOf(','); + if (firstComma === -1 || firstComma <= 4) { + throw new TypeError('malformed data: URI'); + } + // remove the "data:" scheme and parse the metadata + const meta = uri.substring(5, firstComma).split(';'); + let charset = ''; + let base64 = false; + const type = meta[0] || 'text/plain'; + let typeFull = type; + for (let i = 1; i < meta.length; i++) { + if (meta[i] === 'base64') { + base64 = true; + } + else { + typeFull += `;${meta[i]}`; + if (meta[i].indexOf('charset=') === 0) { + charset = meta[i].substring(8); + } + } + } + // defaults to US-ASCII only if type is not provided + if (!meta[0] && !charset.length) { + typeFull += ';charset=US-ASCII'; + charset = 'US-ASCII'; + } + // get the encoded data portion and decode URI-encoded chars + const encoding = base64 ? 'base64' : 'ascii'; + const data = unescape(uri.substring(firstComma + 1)); + const buffer = Buffer.from(data, encoding); + // set `.type` and `.typeFull` properties to MIME type + buffer.type = type; + buffer.typeFull = typeFull; + // set the `.charset` property + buffer.charset = charset; + return buffer; +} +module.exports = dataUriToBuffer; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "../../../.yarn/berry/cache/degenerator-npm-3.0.2-3b38df9d12-9.zip/node_modules/degenerator/dist/src/index.js": +/*!********************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/degenerator-npm-3.0.2-3b38df9d12-9.zip/node_modules/degenerator/dist/src/index.js ***! + \********************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + +const util_1 = __webpack_require__(/*! util */ "util"); +const escodegen_1 = __webpack_require__(/*! escodegen */ "../../../.yarn/berry/cache/escodegen-npm-1.14.3-a4dedc6eeb-9.zip/node_modules/escodegen/escodegen.js"); +const esprima_1 = __webpack_require__(/*! esprima */ "../../../.yarn/berry/cache/esprima-npm-4.0.1-1084e98778-9.zip/node_modules/esprima/dist/esprima.js"); +const ast_types_1 = __webpack_require__(/*! ast-types */ "../../../.yarn/berry/cache/ast-types-npm-0.13.4-69f7e68df8-9.zip/node_modules/ast-types/main.js"); +const vm2_1 = __webpack_require__(/*! vm2 */ "../../../.yarn/berry/cache/vm2-patch-b52c0bba95-9.zip/node_modules/vm2/index.js"); +/** + * Compiles sync JavaScript code into JavaScript with async Functions. + * + * @param {String} code JavaScript string to convert + * @param {Array} names Array of function names to add `await` operators to + * @return {String} Converted JavaScript string with async/await injected + * @api public + */ +function degenerator(code, _names) { + if (!Array.isArray(_names)) { + throw new TypeError('an array of async function "names" is required'); + } + // Duplicate the `names` array since it's rude to augment the user args + const names = _names.slice(0); + const ast = esprima_1.parseScript(code); + // First pass is to find the `function` nodes and turn them into async or + // generator functions only if their body includes `CallExpressions` to + // function in `names`. We also add the names of the functions to the `names` + // array. We'll iterate several time, as every iteration might add new items + // to the `names` array, until no new names were added in the iteration. + let lastNamesLength = 0; + do { + lastNamesLength = names.length; + ast_types_1.visit(ast, { + visitVariableDeclaration(path) { + if (path.node.declarations) { + for (let i = 0; i < path.node.declarations.length; i++) { + const declaration = path.node.declarations[i]; + if (ast_types_1.namedTypes.VariableDeclarator.check(declaration) && + ast_types_1.namedTypes.Identifier.check(declaration.init) && + ast_types_1.namedTypes.Identifier.check(declaration.id) && + checkName(declaration.init.name, names) && + !checkName(declaration.id.name, names)) { + names.push(declaration.id.name); + } + } + } + return false; + }, + visitAssignmentExpression(path) { + if (ast_types_1.namedTypes.Identifier.check(path.node.left) && + ast_types_1.namedTypes.Identifier.check(path.node.right) && + checkName(path.node.right.name, names) && + !checkName(path.node.left.name, names)) { + names.push(path.node.left.name); + } + return false; + }, + visitFunction(path) { + if (path.node.id) { + let shouldDegenerate = false; + ast_types_1.visit(path.node, { + visitCallExpression(path) { + if (checkNames(path.node, names)) { + shouldDegenerate = true; + } + return false; + }, + }); + if (!shouldDegenerate) { + return false; + } + // Got a "function" expression/statement, + // convert it into an async function + path.node.async = true; + // Add function name to `names` array + if (!checkName(path.node.id.name, names)) { + names.push(path.node.id.name); + } + } + this.traverse(path); + }, + }); + } while (lastNamesLength !== names.length); + // Second pass is for adding `await`/`yield` statements to any function + // invocations that match the given `names` array. + ast_types_1.visit(ast, { + visitCallExpression(path) { + if (checkNames(path.node, names)) { + // A "function invocation" expression, + // we need to inject a `AwaitExpression`/`YieldExpression` + const delegate = false; + const { name, parent: { node: pNode }, } = path; + const expr = ast_types_1.builders.awaitExpression(path.node, delegate); + if (ast_types_1.namedTypes.CallExpression.check(pNode)) { + pNode.arguments[name] = expr; + } + else { + pNode[name] = expr; + } + } + this.traverse(path); + }, + }); + return escodegen_1.generate(ast); +} +(function (degenerator) { + function compile(code, returnName, names, options = {}) { + const compiled = degenerator(code, names); + const vm = new vm2_1.VM(options); + const script = new vm2_1.VMScript(`${compiled};${returnName}`, { + filename: options.filename, + }); + const fn = vm.run(script); + if (typeof fn !== 'function') { + throw new Error(`Expected a "function" to be returned for \`${returnName}\`, but got "${typeof fn}"`); + } + const r = function (...args) { + try { + const p = fn.apply(this, args); + if (typeof (p === null || p === void 0 ? void 0 : p.then) === 'function') { + return p; + } + return Promise.resolve(p); + } + catch (err) { + return Promise.reject(err); + } + }; + Object.defineProperty(r, 'toString', { + value: fn.toString.bind(fn), + enumerable: false, + }); + return r; + } + degenerator.compile = compile; +})(degenerator || (degenerator = {})); +/** + * Returns `true` if `node` has a matching name to one of the entries in the + * `names` array. + * + * @param {types.Node} node + * @param {Array} names Array of function names to return true for + * @return {Boolean} + * @api private + */ +function checkNames({ callee }, names) { + let name; + if (ast_types_1.namedTypes.Identifier.check(callee)) { + name = callee.name; + } + else if (ast_types_1.namedTypes.MemberExpression.check(callee)) { + if (ast_types_1.namedTypes.Identifier.check(callee.object) && + ast_types_1.namedTypes.Identifier.check(callee.property)) { + name = `${callee.object.name}.${callee.property.name}`; + } + else { + return false; + } + } + else if (ast_types_1.namedTypes.FunctionExpression.check(callee)) { + if (callee.id) { + name = callee.id.name; + } + else { + return false; + } + } + else { + throw new Error(`Don't know how to get name for: ${callee.type}`); + } + return checkName(name, names); +} +function checkName(name, names) { + // now that we have the `name`, check if any entries match in the `names` array + for (let i = 0; i < names.length; i++) { + const n = names[i]; + if (util_1.isRegExp(n)) { + if (n.test(name)) { + return true; + } + } + else if (name === n) { + return true; + } + } + return false; +} +module.exports = degenerator; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "../../../.yarn/berry/cache/depd-npm-2.0.0-b6c51a4b43-9.zip/node_modules/depd/index.js": +/*!*********************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/depd-npm-2.0.0-b6c51a4b43-9.zip/node_modules/depd/index.js ***! + \*********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/*! + * depd + * Copyright(c) 2014-2018 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module dependencies. + */ + +var relative = (__webpack_require__(/*! path */ "path").relative) + +/** + * Module exports. + */ + +module.exports = depd + +/** + * Get the path to base files on. + */ + +var basePath = process.cwd() + +/** + * Determine if namespace is contained in the string. + */ + +function containsNamespace (str, namespace) { + var vals = str.split(/[ ,]+/) + var ns = String(namespace).toLowerCase() + + for (var i = 0; i < vals.length; i++) { + var val = vals[i] + + // namespace contained + if (val && (val === '*' || val.toLowerCase() === ns)) { + return true + } + } + + return false +} + +/** + * Convert a data descriptor to accessor descriptor. + */ + +function convertDataDescriptorToAccessor (obj, prop, message) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + var value = descriptor.value + + descriptor.get = function getter () { return value } + + if (descriptor.writable) { + descriptor.set = function setter (val) { return (value = val) } + } + + delete descriptor.value + delete descriptor.writable + + Object.defineProperty(obj, prop, descriptor) + + return descriptor +} + +/** + * Create arguments string to keep arity. + */ + +function createArgumentsString (arity) { + var str = '' + + for (var i = 0; i < arity; i++) { + str += ', arg' + i + } + + return str.substr(2) +} + +/** + * Create stack string from stack. + */ + +function createStackString (stack) { + var str = this.name + ': ' + this.namespace + + if (this.message) { + str += ' deprecated ' + this.message + } + + for (var i = 0; i < stack.length; i++) { + str += '\n at ' + stack[i].toString() + } + + return str +} + +/** + * Create deprecate for namespace in caller. + */ + +function depd (namespace) { + if (!namespace) { + throw new TypeError('argument namespace is required') + } + + var stack = getStack() + var site = callSiteLocation(stack[1]) + var file = site[0] + + function deprecate (message) { + // call to self as log + log.call(deprecate, message) + } + + deprecate._file = file + deprecate._ignored = isignored(namespace) + deprecate._namespace = namespace + deprecate._traced = istraced(namespace) + deprecate._warned = Object.create(null) + + deprecate.function = wrapfunction + deprecate.property = wrapproperty + + return deprecate +} + +/** + * Determine if event emitter has listeners of a given type. + * + * The way to do this check is done three different ways in Node.js >= 0.8 + * so this consolidates them into a minimal set using instance methods. + * + * @param {EventEmitter} emitter + * @param {string} type + * @returns {boolean} + * @private + */ + +function eehaslisteners (emitter, type) { + var count = typeof emitter.listenerCount !== 'function' + ? emitter.listeners(type).length + : emitter.listenerCount(type) + + return count > 0 +} + +/** + * Determine if namespace is ignored. + */ + +function isignored (namespace) { + if (process.noDeprecation) { + // --no-deprecation support + return true + } + + var str = process.env.NO_DEPRECATION || '' + + // namespace ignored + return containsNamespace(str, namespace) +} + +/** + * Determine if namespace is traced. + */ + +function istraced (namespace) { + if (process.traceDeprecation) { + // --trace-deprecation support + return true + } + + var str = process.env.TRACE_DEPRECATION || '' + + // namespace traced + return containsNamespace(str, namespace) +} + +/** + * Display deprecation message. + */ + +function log (message, site) { + var haslisteners = eehaslisteners(process, 'deprecation') + + // abort early if no destination + if (!haslisteners && this._ignored) { + return + } + + var caller + var callFile + var callSite + var depSite + var i = 0 + var seen = false + var stack = getStack() + var file = this._file + + if (site) { + // provided site + depSite = site + callSite = callSiteLocation(stack[1]) + callSite.name = depSite.name + file = callSite[0] + } else { + // get call site + i = 2 + depSite = callSiteLocation(stack[i]) + callSite = depSite + } + + // get caller of deprecated thing in relation to file + for (; i < stack.length; i++) { + caller = callSiteLocation(stack[i]) + callFile = caller[0] + + if (callFile === file) { + seen = true + } else if (callFile === this._file) { + file = this._file + } else if (seen) { + break + } + } + + var key = caller + ? depSite.join(':') + '__' + caller.join(':') + : undefined + + if (key !== undefined && key in this._warned) { + // already warned + return + } + + this._warned[key] = true + + // generate automatic message from call site + var msg = message + if (!msg) { + msg = callSite === depSite || !callSite.name + ? defaultMessage(depSite) + : defaultMessage(callSite) + } + + // emit deprecation if listeners exist + if (haslisteners) { + var err = DeprecationError(this._namespace, msg, stack.slice(i)) + process.emit('deprecation', err) + return + } + + // format and write message + var format = process.stderr.isTTY + ? formatColor + : formatPlain + var output = format.call(this, msg, caller, stack.slice(i)) + process.stderr.write(output + '\n', 'utf8') +} + +/** + * Get call site location as array. + */ + +function callSiteLocation (callSite) { + var file = callSite.getFileName() || '' + var line = callSite.getLineNumber() + var colm = callSite.getColumnNumber() + + if (callSite.isEval()) { + file = callSite.getEvalOrigin() + ', ' + file + } + + var site = [file, line, colm] + + site.callSite = callSite + site.name = callSite.getFunctionName() + + return site +} + +/** + * Generate a default message from the site. + */ + +function defaultMessage (site) { + var callSite = site.callSite + var funcName = site.name + + // make useful anonymous name + if (!funcName) { + funcName = '' + } + + var context = callSite.getThis() + var typeName = context && callSite.getTypeName() + + // ignore useless type name + if (typeName === 'Object') { + typeName = undefined + } + + // make useful type name + if (typeName === 'Function') { + typeName = context.name || typeName + } + + return typeName && callSite.getMethodName() + ? typeName + '.' + funcName + : funcName +} + +/** + * Format deprecation message without color. + */ + +function formatPlain (msg, caller, stack) { + var timestamp = new Date().toUTCString() + + var formatted = timestamp + + ' ' + this._namespace + + ' deprecated ' + msg + + // add stack trace + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += '\n at ' + stack[i].toString() + } + + return formatted + } + + if (caller) { + formatted += ' at ' + formatLocation(caller) + } + + return formatted +} + +/** + * Format deprecation message with color. + */ + +function formatColor (msg, caller, stack) { + var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' + // bold cyan + ' \x1b[33;1mdeprecated\x1b[22;39m' + // bold yellow + ' \x1b[0m' + msg + '\x1b[39m' // reset + + // add stack trace + if (this._traced) { + for (var i = 0; i < stack.length; i++) { + formatted += '\n \x1b[36mat ' + stack[i].toString() + '\x1b[39m' // cyan + } + + return formatted + } + + if (caller) { + formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan + } + + return formatted +} + +/** + * Format call site location. + */ + +function formatLocation (callSite) { + return relative(basePath, callSite[0]) + + ':' + callSite[1] + + ':' + callSite[2] +} + +/** + * Get the stack as array of call sites. + */ + +function getStack () { + var limit = Error.stackTraceLimit + var obj = {} + var prep = Error.prepareStackTrace + + Error.prepareStackTrace = prepareObjectStackTrace + Error.stackTraceLimit = Math.max(10, limit) + + // capture the stack + Error.captureStackTrace(obj) + + // slice this function off the top + var stack = obj.stack.slice(1) + + Error.prepareStackTrace = prep + Error.stackTraceLimit = limit + + return stack +} + +/** + * Capture call site stack from v8. + */ + +function prepareObjectStackTrace (obj, stack) { + return stack +} + +/** + * Return a wrapped function in a deprecation message. + */ + +function wrapfunction (fn, message) { + if (typeof fn !== 'function') { + throw new TypeError('argument fn must be a function') + } + + var args = createArgumentsString(fn.length) + var stack = getStack() + var site = callSiteLocation(stack[1]) + + site.name = fn.name + + // eslint-disable-next-line no-new-func + var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site', + '"use strict"\n' + + 'return function (' + args + ') {' + + 'log.call(deprecate, message, site)\n' + + 'return fn.apply(this, arguments)\n' + + '}')(fn, log, this, message, site) + + return deprecatedfn +} + +/** + * Wrap property in a deprecation message. + */ + +function wrapproperty (obj, prop, message) { + if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { + throw new TypeError('argument obj must be object') + } + + var descriptor = Object.getOwnPropertyDescriptor(obj, prop) + + if (!descriptor) { + throw new TypeError('must call property on owner object') + } + + if (!descriptor.configurable) { + throw new TypeError('property must be configurable') + } + + var deprecate = this + var stack = getStack() + var site = callSiteLocation(stack[1]) + + // set site name + site.name = prop + + // convert data descriptor + if ('value' in descriptor) { + descriptor = convertDataDescriptorToAccessor(obj, prop, message) + } + + var get = descriptor.get + var set = descriptor.set + + // wrap getter + if (typeof get === 'function') { + descriptor.get = function getter () { + log.call(deprecate, message, site) + return get.apply(this, arguments) + } + } + + // wrap setter + if (typeof set === 'function') { + descriptor.set = function setter () { + log.call(deprecate, message, site) + return set.apply(this, arguments) + } + } + + Object.defineProperty(obj, prop, descriptor) +} + +/** + * Create DeprecationError for deprecation + */ + +function DeprecationError (namespace, message, stack) { + var error = new Error() + var stackString + + Object.defineProperty(error, 'constructor', { + value: DeprecationError + }) + + Object.defineProperty(error, 'message', { + configurable: true, + enumerable: false, + value: message, + writable: true + }) + + Object.defineProperty(error, 'name', { + enumerable: false, + configurable: true, + value: 'DeprecationError', + writable: true + }) + + Object.defineProperty(error, 'namespace', { + configurable: true, + enumerable: false, + value: namespace, + writable: true + }) + + Object.defineProperty(error, 'stack', { + configurable: true, + enumerable: false, + get: function () { + if (stackString !== undefined) { + return stackString + } + + // prepare stack trace + return (stackString = createStackString.call(this, stack)) + }, + set: function setter (val) { + stackString = val + } + }) + + return error +} + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/escodegen-npm-1.14.3-a4dedc6eeb-9.zip/node_modules/escodegen/escodegen.js": +/*!************************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/escodegen-npm-1.14.3-a4dedc6eeb-9.zip/node_modules/escodegen/escodegen.js ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +/* + Copyright (C) 2012-2014 Yusuke Suzuki + Copyright (C) 2015 Ingvar Stepanyan + Copyright (C) 2014 Ivan Nikulin + Copyright (C) 2012-2013 Michael Ficarra + Copyright (C) 2012-2013 Mathias Bynens + Copyright (C) 2013 Irakli Gozalishvili + Copyright (C) 2012 Robert Gust-Bardon + Copyright (C) 2012 John Freeman + Copyright (C) 2011-2012 Ariya Hidayat + Copyright (C) 2012 Joost-Wim Boekesteijn + Copyright (C) 2012 Kris Kowal + Copyright (C) 2012 Arpad Borsos + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/*global exports:true, require:true, global:true*/ +(function () { + 'use strict'; + + var Syntax, + Precedence, + BinaryPrecedence, + SourceNode, + estraverse, + esutils, + base, + indent, + json, + renumber, + hexadecimal, + quotes, + escapeless, + newline, + space, + parentheses, + semicolons, + safeConcatenation, + directive, + extra, + parse, + sourceMap, + sourceCode, + preserveBlankLines, + FORMAT_MINIFY, + FORMAT_DEFAULTS; + + estraverse = __webpack_require__(/*! estraverse */ "../../../.yarn/berry/cache/estraverse-npm-4.3.0-920a32f3c6-9.zip/node_modules/estraverse/estraverse.js"); + esutils = __webpack_require__(/*! esutils */ "../../../.yarn/berry/cache/esutils-npm-2.0.3-f865beafd5-9.zip/node_modules/esutils/lib/utils.js"); + + Syntax = estraverse.Syntax; + + // Generation is done by generateExpression. + function isExpression(node) { + return CodeGenerator.Expression.hasOwnProperty(node.type); + } + + // Generation is done by generateStatement. + function isStatement(node) { + return CodeGenerator.Statement.hasOwnProperty(node.type); + } + + Precedence = { + Sequence: 0, + Yield: 1, + Assignment: 1, + Conditional: 2, + ArrowFunction: 2, + LogicalOR: 3, + LogicalAND: 4, + BitwiseOR: 5, + BitwiseXOR: 6, + BitwiseAND: 7, + Equality: 8, + Relational: 9, + BitwiseSHIFT: 10, + Additive: 11, + Multiplicative: 12, + Exponentiation: 13, + Await: 14, + Unary: 14, + Postfix: 15, + Call: 16, + New: 17, + TaggedTemplate: 18, + Member: 19, + Primary: 20 + }; + + BinaryPrecedence = { + '||': Precedence.LogicalOR, + '&&': Precedence.LogicalAND, + '|': Precedence.BitwiseOR, + '^': Precedence.BitwiseXOR, + '&': Precedence.BitwiseAND, + '==': Precedence.Equality, + '!=': Precedence.Equality, + '===': Precedence.Equality, + '!==': Precedence.Equality, + 'is': Precedence.Equality, + 'isnt': Precedence.Equality, + '<': Precedence.Relational, + '>': Precedence.Relational, + '<=': Precedence.Relational, + '>=': Precedence.Relational, + 'in': Precedence.Relational, + 'instanceof': Precedence.Relational, + '<<': Precedence.BitwiseSHIFT, + '>>': Precedence.BitwiseSHIFT, + '>>>': Precedence.BitwiseSHIFT, + '+': Precedence.Additive, + '-': Precedence.Additive, + '*': Precedence.Multiplicative, + '%': Precedence.Multiplicative, + '/': Precedence.Multiplicative, + '**': Precedence.Exponentiation + }; + + //Flags + var F_ALLOW_IN = 1, + F_ALLOW_CALL = 1 << 1, + F_ALLOW_UNPARATH_NEW = 1 << 2, + F_FUNC_BODY = 1 << 3, + F_DIRECTIVE_CTX = 1 << 4, + F_SEMICOLON_OPT = 1 << 5; + + //Expression flag sets + //NOTE: Flag order: + // F_ALLOW_IN + // F_ALLOW_CALL + // F_ALLOW_UNPARATH_NEW + var E_FTT = F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW, + E_TTF = F_ALLOW_IN | F_ALLOW_CALL, + E_TTT = F_ALLOW_IN | F_ALLOW_CALL | F_ALLOW_UNPARATH_NEW, + E_TFF = F_ALLOW_IN, + E_FFT = F_ALLOW_UNPARATH_NEW, + E_TFT = F_ALLOW_IN | F_ALLOW_UNPARATH_NEW; + + //Statement flag sets + //NOTE: Flag order: + // F_ALLOW_IN + // F_FUNC_BODY + // F_DIRECTIVE_CTX + // F_SEMICOLON_OPT + var S_TFFF = F_ALLOW_IN, + S_TFFT = F_ALLOW_IN | F_SEMICOLON_OPT, + S_FFFF = 0x00, + S_TFTF = F_ALLOW_IN | F_DIRECTIVE_CTX, + S_TTFF = F_ALLOW_IN | F_FUNC_BODY; + + function getDefaultOptions() { + // default options + return { + indent: null, + base: null, + parse: null, + comment: false, + format: { + indent: { + style: ' ', + base: 0, + adjustMultilineComment: false + }, + newline: '\n', + space: ' ', + json: false, + renumber: false, + hexadecimal: false, + quotes: 'single', + escapeless: false, + compact: false, + parentheses: true, + semicolons: true, + safeConcatenation: false, + preserveBlankLines: false + }, + moz: { + comprehensionExpressionStartsWithAssignment: false, + starlessGenerator: false + }, + sourceMap: null, + sourceMapRoot: null, + sourceMapWithCode: false, + directive: false, + raw: true, + verbatim: null, + sourceCode: null + }; + } + + function stringRepeat(str, num) { + var result = ''; + + for (num |= 0; num > 0; num >>>= 1, str += str) { + if (num & 1) { + result += str; + } + } + + return result; + } + + function hasLineTerminator(str) { + return (/[\r\n]/g).test(str); + } + + function endsWithLineTerminator(str) { + var len = str.length; + return len && esutils.code.isLineTerminator(str.charCodeAt(len - 1)); + } + + function merge(target, override) { + var key; + for (key in override) { + if (override.hasOwnProperty(key)) { + target[key] = override[key]; + } + } + return target; + } + + function updateDeeply(target, override) { + var key, val; + + function isHashObject(target) { + return typeof target === 'object' && target instanceof Object && !(target instanceof RegExp); + } + + for (key in override) { + if (override.hasOwnProperty(key)) { + val = override[key]; + if (isHashObject(val)) { + if (isHashObject(target[key])) { + updateDeeply(target[key], val); + } else { + target[key] = updateDeeply({}, val); + } + } else { + target[key] = val; + } + } + } + return target; + } + + function generateNumber(value) { + var result, point, temp, exponent, pos; + + if (value !== value) { + throw new Error('Numeric literal whose value is NaN'); + } + if (value < 0 || (value === 0 && 1 / value < 0)) { + throw new Error('Numeric literal whose value is negative'); + } + + if (value === 1 / 0) { + return json ? 'null' : renumber ? '1e400' : '1e+400'; + } + + result = '' + value; + if (!renumber || result.length < 3) { + return result; + } + + point = result.indexOf('.'); + if (!json && result.charCodeAt(0) === 0x30 /* 0 */ && point === 1) { + point = 0; + result = result.slice(1); + } + temp = result; + result = result.replace('e+', 'e'); + exponent = 0; + if ((pos = temp.indexOf('e')) > 0) { + exponent = +temp.slice(pos + 1); + temp = temp.slice(0, pos); + } + if (point >= 0) { + exponent -= temp.length - point - 1; + temp = +(temp.slice(0, point) + temp.slice(point + 1)) + ''; + } + pos = 0; + while (temp.charCodeAt(temp.length + pos - 1) === 0x30 /* 0 */) { + --pos; + } + if (pos !== 0) { + exponent -= pos; + temp = temp.slice(0, pos); + } + if (exponent !== 0) { + temp += 'e' + exponent; + } + if ((temp.length < result.length || + (hexadecimal && value > 1e12 && Math.floor(value) === value && (temp = '0x' + value.toString(16)).length < result.length)) && + +temp === value) { + result = temp; + } + + return result; + } + + // Generate valid RegExp expression. + // This function is based on https://github.com/Constellation/iv Engine + + function escapeRegExpCharacter(ch, previousIsBackslash) { + // not handling '\' and handling \u2028 or \u2029 to unicode escape sequence + if ((ch & ~1) === 0x2028) { + return (previousIsBackslash ? 'u' : '\\u') + ((ch === 0x2028) ? '2028' : '2029'); + } else if (ch === 10 || ch === 13) { // \n, \r + return (previousIsBackslash ? '' : '\\') + ((ch === 10) ? 'n' : 'r'); + } + return String.fromCharCode(ch); + } + + function generateRegExp(reg) { + var match, result, flags, i, iz, ch, characterInBrack, previousIsBackslash; + + result = reg.toString(); + + if (reg.source) { + // extract flag from toString result + match = result.match(/\/([^/]*)$/); + if (!match) { + return result; + } + + flags = match[1]; + result = ''; + + characterInBrack = false; + previousIsBackslash = false; + for (i = 0, iz = reg.source.length; i < iz; ++i) { + ch = reg.source.charCodeAt(i); + + if (!previousIsBackslash) { + if (characterInBrack) { + if (ch === 93) { // ] + characterInBrack = false; + } + } else { + if (ch === 47) { // / + result += '\\'; + } else if (ch === 91) { // [ + characterInBrack = true; + } + } + result += escapeRegExpCharacter(ch, previousIsBackslash); + previousIsBackslash = ch === 92; // \ + } else { + // if new RegExp("\\\n') is provided, create /\n/ + result += escapeRegExpCharacter(ch, previousIsBackslash); + // prevent like /\\[/]/ + previousIsBackslash = false; + } + } + + return '/' + result + '/' + flags; + } + + return result; + } + + function escapeAllowedCharacter(code, next) { + var hex; + + if (code === 0x08 /* \b */) { + return '\\b'; + } + + if (code === 0x0C /* \f */) { + return '\\f'; + } + + if (code === 0x09 /* \t */) { + return '\\t'; + } + + hex = code.toString(16).toUpperCase(); + if (json || code > 0xFF) { + return '\\u' + '0000'.slice(hex.length) + hex; + } else if (code === 0x0000 && !esutils.code.isDecimalDigit(next)) { + return '\\0'; + } else if (code === 0x000B /* \v */) { // '\v' + return '\\x0B'; + } else { + return '\\x' + '00'.slice(hex.length) + hex; + } + } + + function escapeDisallowedCharacter(code) { + if (code === 0x5C /* \ */) { + return '\\\\'; + } + + if (code === 0x0A /* \n */) { + return '\\n'; + } + + if (code === 0x0D /* \r */) { + return '\\r'; + } + + if (code === 0x2028) { + return '\\u2028'; + } + + if (code === 0x2029) { + return '\\u2029'; + } + + throw new Error('Incorrectly classified character'); + } + + function escapeDirective(str) { + var i, iz, code, quote; + + quote = quotes === 'double' ? '"' : '\''; + for (i = 0, iz = str.length; i < iz; ++i) { + code = str.charCodeAt(i); + if (code === 0x27 /* ' */) { + quote = '"'; + break; + } else if (code === 0x22 /* " */) { + quote = '\''; + break; + } else if (code === 0x5C /* \ */) { + ++i; + } + } + + return quote + str + quote; + } + + function escapeString(str) { + var result = '', i, len, code, singleQuotes = 0, doubleQuotes = 0, single, quote; + + for (i = 0, len = str.length; i < len; ++i) { + code = str.charCodeAt(i); + if (code === 0x27 /* ' */) { + ++singleQuotes; + } else if (code === 0x22 /* " */) { + ++doubleQuotes; + } else if (code === 0x2F /* / */ && json) { + result += '\\'; + } else if (esutils.code.isLineTerminator(code) || code === 0x5C /* \ */) { + result += escapeDisallowedCharacter(code); + continue; + } else if (!esutils.code.isIdentifierPartES5(code) && (json && code < 0x20 /* SP */ || !json && !escapeless && (code < 0x20 /* SP */ || code > 0x7E /* ~ */))) { + result += escapeAllowedCharacter(code, str.charCodeAt(i + 1)); + continue; + } + result += String.fromCharCode(code); + } + + single = !(quotes === 'double' || (quotes === 'auto' && doubleQuotes < singleQuotes)); + quote = single ? '\'' : '"'; + + if (!(single ? singleQuotes : doubleQuotes)) { + return quote + result + quote; + } + + str = result; + result = quote; + + for (i = 0, len = str.length; i < len; ++i) { + code = str.charCodeAt(i); + if ((code === 0x27 /* ' */ && single) || (code === 0x22 /* " */ && !single)) { + result += '\\'; + } + result += String.fromCharCode(code); + } + + return result + quote; + } + + /** + * flatten an array to a string, where the array can contain + * either strings or nested arrays + */ + function flattenToString(arr) { + var i, iz, elem, result = ''; + for (i = 0, iz = arr.length; i < iz; ++i) { + elem = arr[i]; + result += Array.isArray(elem) ? flattenToString(elem) : elem; + } + return result; + } + + /** + * convert generated to a SourceNode when source maps are enabled. + */ + function toSourceNodeWhenNeeded(generated, node) { + if (!sourceMap) { + // with no source maps, generated is either an + // array or a string. if an array, flatten it. + // if a string, just return it + if (Array.isArray(generated)) { + return flattenToString(generated); + } else { + return generated; + } + } + if (node == null) { + if (generated instanceof SourceNode) { + return generated; + } else { + node = {}; + } + } + if (node.loc == null) { + return new SourceNode(null, null, sourceMap, generated, node.name || null); + } + return new SourceNode(node.loc.start.line, node.loc.start.column, (sourceMap === true ? node.loc.source || null : sourceMap), generated, node.name || null); + } + + function noEmptySpace() { + return (space) ? space : ' '; + } + + function join(left, right) { + var leftSource, + rightSource, + leftCharCode, + rightCharCode; + + leftSource = toSourceNodeWhenNeeded(left).toString(); + if (leftSource.length === 0) { + return [right]; + } + + rightSource = toSourceNodeWhenNeeded(right).toString(); + if (rightSource.length === 0) { + return [left]; + } + + leftCharCode = leftSource.charCodeAt(leftSource.length - 1); + rightCharCode = rightSource.charCodeAt(0); + + if ((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode || + esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode) || + leftCharCode === 0x2F /* / */ && rightCharCode === 0x69 /* i */) { // infix word operators all start with `i` + return [left, noEmptySpace(), right]; + } else if (esutils.code.isWhiteSpace(leftCharCode) || esutils.code.isLineTerminator(leftCharCode) || + esutils.code.isWhiteSpace(rightCharCode) || esutils.code.isLineTerminator(rightCharCode)) { + return [left, right]; + } + return [left, space, right]; + } + + function addIndent(stmt) { + return [base, stmt]; + } + + function withIndent(fn) { + var previousBase; + previousBase = base; + base += indent; + fn(base); + base = previousBase; + } + + function calculateSpaces(str) { + var i; + for (i = str.length - 1; i >= 0; --i) { + if (esutils.code.isLineTerminator(str.charCodeAt(i))) { + break; + } + } + return (str.length - 1) - i; + } + + function adjustMultilineComment(value, specialBase) { + var array, i, len, line, j, spaces, previousBase, sn; + + array = value.split(/\r\n|[\r\n]/); + spaces = Number.MAX_VALUE; + + // first line doesn't have indentation + for (i = 1, len = array.length; i < len; ++i) { + line = array[i]; + j = 0; + while (j < line.length && esutils.code.isWhiteSpace(line.charCodeAt(j))) { + ++j; + } + if (spaces > j) { + spaces = j; + } + } + + if (typeof specialBase !== 'undefined') { + // pattern like + // { + // var t = 20; /* + // * this is comment + // */ + // } + previousBase = base; + if (array[1][spaces] === '*') { + specialBase += ' '; + } + base = specialBase; + } else { + if (spaces & 1) { + // /* + // * + // */ + // If spaces are odd number, above pattern is considered. + // We waste 1 space. + --spaces; + } + previousBase = base; + } + + for (i = 1, len = array.length; i < len; ++i) { + sn = toSourceNodeWhenNeeded(addIndent(array[i].slice(spaces))); + array[i] = sourceMap ? sn.join('') : sn; + } + + base = previousBase; + + return array.join('\n'); + } + + function generateComment(comment, specialBase) { + if (comment.type === 'Line') { + if (endsWithLineTerminator(comment.value)) { + return '//' + comment.value; + } else { + // Always use LineTerminator + var result = '//' + comment.value; + if (!preserveBlankLines) { + result += '\n'; + } + return result; + } + } + if (extra.format.indent.adjustMultilineComment && /[\n\r]/.test(comment.value)) { + return adjustMultilineComment('/*' + comment.value + '*/', specialBase); + } + return '/*' + comment.value + '*/'; + } + + function addComments(stmt, result) { + var i, len, comment, save, tailingToStatement, specialBase, fragment, + extRange, range, prevRange, prefix, infix, suffix, count; + + if (stmt.leadingComments && stmt.leadingComments.length > 0) { + save = result; + + if (preserveBlankLines) { + comment = stmt.leadingComments[0]; + result = []; + + extRange = comment.extendedRange; + range = comment.range; + + prefix = sourceCode.substring(extRange[0], range[0]); + count = (prefix.match(/\n/g) || []).length; + if (count > 0) { + result.push(stringRepeat('\n', count)); + result.push(addIndent(generateComment(comment))); + } else { + result.push(prefix); + result.push(generateComment(comment)); + } + + prevRange = range; + + for (i = 1, len = stmt.leadingComments.length; i < len; i++) { + comment = stmt.leadingComments[i]; + range = comment.range; + + infix = sourceCode.substring(prevRange[1], range[0]); + count = (infix.match(/\n/g) || []).length; + result.push(stringRepeat('\n', count)); + result.push(addIndent(generateComment(comment))); + + prevRange = range; + } + + suffix = sourceCode.substring(range[1], extRange[1]); + count = (suffix.match(/\n/g) || []).length; + result.push(stringRepeat('\n', count)); + } else { + comment = stmt.leadingComments[0]; + result = []; + if (safeConcatenation && stmt.type === Syntax.Program && stmt.body.length === 0) { + result.push('\n'); + } + result.push(generateComment(comment)); + if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) { + result.push('\n'); + } + + for (i = 1, len = stmt.leadingComments.length; i < len; ++i) { + comment = stmt.leadingComments[i]; + fragment = [generateComment(comment)]; + if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) { + fragment.push('\n'); + } + result.push(addIndent(fragment)); + } + } + + result.push(addIndent(save)); + } + + if (stmt.trailingComments) { + + if (preserveBlankLines) { + comment = stmt.trailingComments[0]; + extRange = comment.extendedRange; + range = comment.range; + + prefix = sourceCode.substring(extRange[0], range[0]); + count = (prefix.match(/\n/g) || []).length; + + if (count > 0) { + result.push(stringRepeat('\n', count)); + result.push(addIndent(generateComment(comment))); + } else { + result.push(prefix); + result.push(generateComment(comment)); + } + } else { + tailingToStatement = !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString()); + specialBase = stringRepeat(' ', calculateSpaces(toSourceNodeWhenNeeded([base, result, indent]).toString())); + for (i = 0, len = stmt.trailingComments.length; i < len; ++i) { + comment = stmt.trailingComments[i]; + if (tailingToStatement) { + // We assume target like following script + // + // var t = 20; /** + // * This is comment of t + // */ + if (i === 0) { + // first case + result = [result, indent]; + } else { + result = [result, specialBase]; + } + result.push(generateComment(comment, specialBase)); + } else { + result = [result, addIndent(generateComment(comment))]; + } + if (i !== len - 1 && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) { + result = [result, '\n']; + } + } + } + } + + return result; + } + + function generateBlankLines(start, end, result) { + var j, newlineCount = 0; + + for (j = start; j < end; j++) { + if (sourceCode[j] === '\n') { + newlineCount++; + } + } + + for (j = 1; j < newlineCount; j++) { + result.push(newline); + } + } + + function parenthesize(text, current, should) { + if (current < should) { + return ['(', text, ')']; + } + return text; + } + + function generateVerbatimString(string) { + var i, iz, result; + result = string.split(/\r\n|\n/); + for (i = 1, iz = result.length; i < iz; i++) { + result[i] = newline + base + result[i]; + } + return result; + } + + function generateVerbatim(expr, precedence) { + var verbatim, result, prec; + verbatim = expr[extra.verbatim]; + + if (typeof verbatim === 'string') { + result = parenthesize(generateVerbatimString(verbatim), Precedence.Sequence, precedence); + } else { + // verbatim is object + result = generateVerbatimString(verbatim.content); + prec = (verbatim.precedence != null) ? verbatim.precedence : Precedence.Sequence; + result = parenthesize(result, prec, precedence); + } + + return toSourceNodeWhenNeeded(result, expr); + } + + function CodeGenerator() { + } + + // Helpers. + + CodeGenerator.prototype.maybeBlock = function(stmt, flags) { + var result, noLeadingComment, that = this; + + noLeadingComment = !extra.comment || !stmt.leadingComments; + + if (stmt.type === Syntax.BlockStatement && noLeadingComment) { + return [space, this.generateStatement(stmt, flags)]; + } + + if (stmt.type === Syntax.EmptyStatement && noLeadingComment) { + return ';'; + } + + withIndent(function () { + result = [ + newline, + addIndent(that.generateStatement(stmt, flags)) + ]; + }); + + return result; + }; + + CodeGenerator.prototype.maybeBlockSuffix = function (stmt, result) { + var ends = endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString()); + if (stmt.type === Syntax.BlockStatement && (!extra.comment || !stmt.leadingComments) && !ends) { + return [result, space]; + } + if (ends) { + return [result, base]; + } + return [result, newline, base]; + }; + + function generateIdentifier(node) { + return toSourceNodeWhenNeeded(node.name, node); + } + + function generateAsyncPrefix(node, spaceRequired) { + return node.async ? 'async' + (spaceRequired ? noEmptySpace() : space) : ''; + } + + function generateStarSuffix(node) { + var isGenerator = node.generator && !extra.moz.starlessGenerator; + return isGenerator ? '*' + space : ''; + } + + function generateMethodPrefix(prop) { + var func = prop.value, prefix = ''; + if (func.async) { + prefix += generateAsyncPrefix(func, !prop.computed); + } + if (func.generator) { + // avoid space before method name + prefix += generateStarSuffix(func) ? '*' : ''; + } + return prefix; + } + + CodeGenerator.prototype.generatePattern = function (node, precedence, flags) { + if (node.type === Syntax.Identifier) { + return generateIdentifier(node); + } + return this.generateExpression(node, precedence, flags); + }; + + CodeGenerator.prototype.generateFunctionParams = function (node) { + var i, iz, result, hasDefault; + + hasDefault = false; + + if (node.type === Syntax.ArrowFunctionExpression && + !node.rest && (!node.defaults || node.defaults.length === 0) && + node.params.length === 1 && node.params[0].type === Syntax.Identifier) { + // arg => { } case + result = [generateAsyncPrefix(node, true), generateIdentifier(node.params[0])]; + } else { + result = node.type === Syntax.ArrowFunctionExpression ? [generateAsyncPrefix(node, false)] : []; + result.push('('); + if (node.defaults) { + hasDefault = true; + } + for (i = 0, iz = node.params.length; i < iz; ++i) { + if (hasDefault && node.defaults[i]) { + // Handle default values. + result.push(this.generateAssignment(node.params[i], node.defaults[i], '=', Precedence.Assignment, E_TTT)); + } else { + result.push(this.generatePattern(node.params[i], Precedence.Assignment, E_TTT)); + } + if (i + 1 < iz) { + result.push(',' + space); + } + } + + if (node.rest) { + if (node.params.length) { + result.push(',' + space); + } + result.push('...'); + result.push(generateIdentifier(node.rest)); + } + + result.push(')'); + } + + return result; + }; + + CodeGenerator.prototype.generateFunctionBody = function (node) { + var result, expr; + + result = this.generateFunctionParams(node); + + if (node.type === Syntax.ArrowFunctionExpression) { + result.push(space); + result.push('=>'); + } + + if (node.expression) { + result.push(space); + expr = this.generateExpression(node.body, Precedence.Assignment, E_TTT); + if (expr.toString().charAt(0) === '{') { + expr = ['(', expr, ')']; + } + result.push(expr); + } else { + result.push(this.maybeBlock(node.body, S_TTFF)); + } + + return result; + }; + + CodeGenerator.prototype.generateIterationForStatement = function (operator, stmt, flags) { + var result = ['for' + (stmt.await ? noEmptySpace() + 'await' : '') + space + '('], that = this; + withIndent(function () { + if (stmt.left.type === Syntax.VariableDeclaration) { + withIndent(function () { + result.push(stmt.left.kind + noEmptySpace()); + result.push(that.generateStatement(stmt.left.declarations[0], S_FFFF)); + }); + } else { + result.push(that.generateExpression(stmt.left, Precedence.Call, E_TTT)); + } + + result = join(result, operator); + result = [join( + result, + that.generateExpression(stmt.right, Precedence.Assignment, E_TTT) + ), ')']; + }); + result.push(this.maybeBlock(stmt.body, flags)); + return result; + }; + + CodeGenerator.prototype.generatePropertyKey = function (expr, computed) { + var result = []; + + if (computed) { + result.push('['); + } + + result.push(this.generateExpression(expr, Precedence.Assignment, E_TTT)); + + if (computed) { + result.push(']'); + } + + return result; + }; + + CodeGenerator.prototype.generateAssignment = function (left, right, operator, precedence, flags) { + if (Precedence.Assignment < precedence) { + flags |= F_ALLOW_IN; + } + + return parenthesize( + [ + this.generateExpression(left, Precedence.Call, flags), + space + operator + space, + this.generateExpression(right, Precedence.Assignment, flags) + ], + Precedence.Assignment, + precedence + ); + }; + + CodeGenerator.prototype.semicolon = function (flags) { + if (!semicolons && flags & F_SEMICOLON_OPT) { + return ''; + } + return ';'; + }; + + // Statements. + + CodeGenerator.Statement = { + + BlockStatement: function (stmt, flags) { + var range, content, result = ['{', newline], that = this; + + withIndent(function () { + // handle functions without any code + if (stmt.body.length === 0 && preserveBlankLines) { + range = stmt.range; + if (range[1] - range[0] > 2) { + content = sourceCode.substring(range[0] + 1, range[1] - 1); + if (content[0] === '\n') { + result = ['{']; + } + result.push(content); + } + } + + var i, iz, fragment, bodyFlags; + bodyFlags = S_TFFF; + if (flags & F_FUNC_BODY) { + bodyFlags |= F_DIRECTIVE_CTX; + } + + for (i = 0, iz = stmt.body.length; i < iz; ++i) { + if (preserveBlankLines) { + // handle spaces before the first line + if (i === 0) { + if (stmt.body[0].leadingComments) { + range = stmt.body[0].leadingComments[0].extendedRange; + content = sourceCode.substring(range[0], range[1]); + if (content[0] === '\n') { + result = ['{']; + } + } + if (!stmt.body[0].leadingComments) { + generateBlankLines(stmt.range[0], stmt.body[0].range[0], result); + } + } + + // handle spaces between lines + if (i > 0) { + if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) { + generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result); + } + } + } + + if (i === iz - 1) { + bodyFlags |= F_SEMICOLON_OPT; + } + + if (stmt.body[i].leadingComments && preserveBlankLines) { + fragment = that.generateStatement(stmt.body[i], bodyFlags); + } else { + fragment = addIndent(that.generateStatement(stmt.body[i], bodyFlags)); + } + + result.push(fragment); + if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) { + if (preserveBlankLines && i < iz - 1) { + // don't add a new line if there are leading coments + // in the next statement + if (!stmt.body[i + 1].leadingComments) { + result.push(newline); + } + } else { + result.push(newline); + } + } + + if (preserveBlankLines) { + // handle spaces after the last line + if (i === iz - 1) { + if (!stmt.body[i].trailingComments) { + generateBlankLines(stmt.body[i].range[1], stmt.range[1], result); + } + } + } + } + }); + + result.push(addIndent('}')); + return result; + }, + + BreakStatement: function (stmt, flags) { + if (stmt.label) { + return 'break ' + stmt.label.name + this.semicolon(flags); + } + return 'break' + this.semicolon(flags); + }, + + ContinueStatement: function (stmt, flags) { + if (stmt.label) { + return 'continue ' + stmt.label.name + this.semicolon(flags); + } + return 'continue' + this.semicolon(flags); + }, + + ClassBody: function (stmt, flags) { + var result = [ '{', newline], that = this; + + withIndent(function (indent) { + var i, iz; + + for (i = 0, iz = stmt.body.length; i < iz; ++i) { + result.push(indent); + result.push(that.generateExpression(stmt.body[i], Precedence.Sequence, E_TTT)); + if (i + 1 < iz) { + result.push(newline); + } + } + }); + + if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) { + result.push(newline); + } + result.push(base); + result.push('}'); + return result; + }, + + ClassDeclaration: function (stmt, flags) { + var result, fragment; + result = ['class']; + if (stmt.id) { + result = join(result, this.generateExpression(stmt.id, Precedence.Sequence, E_TTT)); + } + if (stmt.superClass) { + fragment = join('extends', this.generateExpression(stmt.superClass, Precedence.Unary, E_TTT)); + result = join(result, fragment); + } + result.push(space); + result.push(this.generateStatement(stmt.body, S_TFFT)); + return result; + }, + + DirectiveStatement: function (stmt, flags) { + if (extra.raw && stmt.raw) { + return stmt.raw + this.semicolon(flags); + } + return escapeDirective(stmt.directive) + this.semicolon(flags); + }, + + DoWhileStatement: function (stmt, flags) { + // Because `do 42 while (cond)` is Syntax Error. We need semicolon. + var result = join('do', this.maybeBlock(stmt.body, S_TFFF)); + result = this.maybeBlockSuffix(stmt.body, result); + return join(result, [ + 'while' + space + '(', + this.generateExpression(stmt.test, Precedence.Sequence, E_TTT), + ')' + this.semicolon(flags) + ]); + }, + + CatchClause: function (stmt, flags) { + var result, that = this; + withIndent(function () { + var guard; + + if (stmt.param) { + result = [ + 'catch' + space + '(', + that.generateExpression(stmt.param, Precedence.Sequence, E_TTT), + ')' + ]; + + if (stmt.guard) { + guard = that.generateExpression(stmt.guard, Precedence.Sequence, E_TTT); + result.splice(2, 0, ' if ', guard); + } + } else { + result = ['catch']; + } + }); + result.push(this.maybeBlock(stmt.body, S_TFFF)); + return result; + }, + + DebuggerStatement: function (stmt, flags) { + return 'debugger' + this.semicolon(flags); + }, + + EmptyStatement: function (stmt, flags) { + return ';'; + }, + + ExportDefaultDeclaration: function (stmt, flags) { + var result = [ 'export' ], bodyFlags; + + bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF; + + // export default HoistableDeclaration[Default] + // export default AssignmentExpression[In] ; + result = join(result, 'default'); + if (isStatement(stmt.declaration)) { + result = join(result, this.generateStatement(stmt.declaration, bodyFlags)); + } else { + result = join(result, this.generateExpression(stmt.declaration, Precedence.Assignment, E_TTT) + this.semicolon(flags)); + } + return result; + }, + + ExportNamedDeclaration: function (stmt, flags) { + var result = [ 'export' ], bodyFlags, that = this; + + bodyFlags = (flags & F_SEMICOLON_OPT) ? S_TFFT : S_TFFF; + + // export VariableStatement + // export Declaration[Default] + if (stmt.declaration) { + return join(result, this.generateStatement(stmt.declaration, bodyFlags)); + } + + // export ExportClause[NoReference] FromClause ; + // export ExportClause ; + if (stmt.specifiers) { + if (stmt.specifiers.length === 0) { + result = join(result, '{' + space + '}'); + } else if (stmt.specifiers[0].type === Syntax.ExportBatchSpecifier) { + result = join(result, this.generateExpression(stmt.specifiers[0], Precedence.Sequence, E_TTT)); + } else { + result = join(result, '{'); + withIndent(function (indent) { + var i, iz; + result.push(newline); + for (i = 0, iz = stmt.specifiers.length; i < iz; ++i) { + result.push(indent); + result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT)); + if (i + 1 < iz) { + result.push(',' + newline); + } + } + }); + if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) { + result.push(newline); + } + result.push(base + '}'); + } + + if (stmt.source) { + result = join(result, [ + 'from' + space, + // ModuleSpecifier + this.generateExpression(stmt.source, Precedence.Sequence, E_TTT), + this.semicolon(flags) + ]); + } else { + result.push(this.semicolon(flags)); + } + } + return result; + }, + + ExportAllDeclaration: function (stmt, flags) { + // export * FromClause ; + return [ + 'export' + space, + '*' + space, + 'from' + space, + // ModuleSpecifier + this.generateExpression(stmt.source, Precedence.Sequence, E_TTT), + this.semicolon(flags) + ]; + }, + + ExpressionStatement: function (stmt, flags) { + var result, fragment; + + function isClassPrefixed(fragment) { + var code; + if (fragment.slice(0, 5) !== 'class') { + return false; + } + code = fragment.charCodeAt(5); + return code === 0x7B /* '{' */ || esutils.code.isWhiteSpace(code) || esutils.code.isLineTerminator(code); + } + + function isFunctionPrefixed(fragment) { + var code; + if (fragment.slice(0, 8) !== 'function') { + return false; + } + code = fragment.charCodeAt(8); + return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code); + } + + function isAsyncPrefixed(fragment) { + var code, i, iz; + if (fragment.slice(0, 5) !== 'async') { + return false; + } + if (!esutils.code.isWhiteSpace(fragment.charCodeAt(5))) { + return false; + } + for (i = 6, iz = fragment.length; i < iz; ++i) { + if (!esutils.code.isWhiteSpace(fragment.charCodeAt(i))) { + break; + } + } + if (i === iz) { + return false; + } + if (fragment.slice(i, i + 8) !== 'function') { + return false; + } + code = fragment.charCodeAt(i + 8); + return code === 0x28 /* '(' */ || esutils.code.isWhiteSpace(code) || code === 0x2A /* '*' */ || esutils.code.isLineTerminator(code); + } + + result = [this.generateExpression(stmt.expression, Precedence.Sequence, E_TTT)]; + // 12.4 '{', 'function', 'class' is not allowed in this position. + // wrap expression with parentheses + fragment = toSourceNodeWhenNeeded(result).toString(); + if (fragment.charCodeAt(0) === 0x7B /* '{' */ || // ObjectExpression + isClassPrefixed(fragment) || + isFunctionPrefixed(fragment) || + isAsyncPrefixed(fragment) || + (directive && (flags & F_DIRECTIVE_CTX) && stmt.expression.type === Syntax.Literal && typeof stmt.expression.value === 'string')) { + result = ['(', result, ')' + this.semicolon(flags)]; + } else { + result.push(this.semicolon(flags)); + } + return result; + }, + + ImportDeclaration: function (stmt, flags) { + // ES6: 15.2.1 valid import declarations: + // - import ImportClause FromClause ; + // - import ModuleSpecifier ; + var result, cursor, that = this; + + // If no ImportClause is present, + // this should be `import ModuleSpecifier` so skip `from` + // ModuleSpecifier is StringLiteral. + if (stmt.specifiers.length === 0) { + // import ModuleSpecifier ; + return [ + 'import', + space, + // ModuleSpecifier + this.generateExpression(stmt.source, Precedence.Sequence, E_TTT), + this.semicolon(flags) + ]; + } + + // import ImportClause FromClause ; + result = [ + 'import' + ]; + cursor = 0; + + // ImportedBinding + if (stmt.specifiers[cursor].type === Syntax.ImportDefaultSpecifier) { + result = join(result, [ + this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT) + ]); + ++cursor; + } + + if (stmt.specifiers[cursor]) { + if (cursor !== 0) { + result.push(','); + } + + if (stmt.specifiers[cursor].type === Syntax.ImportNamespaceSpecifier) { + // NameSpaceImport + result = join(result, [ + space, + this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT) + ]); + } else { + // NamedImports + result.push(space + '{'); + + if ((stmt.specifiers.length - cursor) === 1) { + // import { ... } from "..."; + result.push(space); + result.push(this.generateExpression(stmt.specifiers[cursor], Precedence.Sequence, E_TTT)); + result.push(space + '}' + space); + } else { + // import { + // ..., + // ..., + // } from "..."; + withIndent(function (indent) { + var i, iz; + result.push(newline); + for (i = cursor, iz = stmt.specifiers.length; i < iz; ++i) { + result.push(indent); + result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT)); + if (i + 1 < iz) { + result.push(',' + newline); + } + } + }); + if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) { + result.push(newline); + } + result.push(base + '}' + space); + } + } + } + + result = join(result, [ + 'from' + space, + // ModuleSpecifier + this.generateExpression(stmt.source, Precedence.Sequence, E_TTT), + this.semicolon(flags) + ]); + return result; + }, + + VariableDeclarator: function (stmt, flags) { + var itemFlags = (flags & F_ALLOW_IN) ? E_TTT : E_FTT; + if (stmt.init) { + return [ + this.generateExpression(stmt.id, Precedence.Assignment, itemFlags), + space, + '=', + space, + this.generateExpression(stmt.init, Precedence.Assignment, itemFlags) + ]; + } + return this.generatePattern(stmt.id, Precedence.Assignment, itemFlags); + }, + + VariableDeclaration: function (stmt, flags) { + // VariableDeclarator is typed as Statement, + // but joined with comma (not LineTerminator). + // So if comment is attached to target node, we should specialize. + var result, i, iz, node, bodyFlags, that = this; + + result = [ stmt.kind ]; + + bodyFlags = (flags & F_ALLOW_IN) ? S_TFFF : S_FFFF; + + function block() { + node = stmt.declarations[0]; + if (extra.comment && node.leadingComments) { + result.push('\n'); + result.push(addIndent(that.generateStatement(node, bodyFlags))); + } else { + result.push(noEmptySpace()); + result.push(that.generateStatement(node, bodyFlags)); + } + + for (i = 1, iz = stmt.declarations.length; i < iz; ++i) { + node = stmt.declarations[i]; + if (extra.comment && node.leadingComments) { + result.push(',' + newline); + result.push(addIndent(that.generateStatement(node, bodyFlags))); + } else { + result.push(',' + space); + result.push(that.generateStatement(node, bodyFlags)); + } + } + } + + if (stmt.declarations.length > 1) { + withIndent(block); + } else { + block(); + } + + result.push(this.semicolon(flags)); + + return result; + }, + + ThrowStatement: function (stmt, flags) { + return [join( + 'throw', + this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT) + ), this.semicolon(flags)]; + }, + + TryStatement: function (stmt, flags) { + var result, i, iz, guardedHandlers; + + result = ['try', this.maybeBlock(stmt.block, S_TFFF)]; + result = this.maybeBlockSuffix(stmt.block, result); + + if (stmt.handlers) { + // old interface + for (i = 0, iz = stmt.handlers.length; i < iz; ++i) { + result = join(result, this.generateStatement(stmt.handlers[i], S_TFFF)); + if (stmt.finalizer || i + 1 !== iz) { + result = this.maybeBlockSuffix(stmt.handlers[i].body, result); + } + } + } else { + guardedHandlers = stmt.guardedHandlers || []; + + for (i = 0, iz = guardedHandlers.length; i < iz; ++i) { + result = join(result, this.generateStatement(guardedHandlers[i], S_TFFF)); + if (stmt.finalizer || i + 1 !== iz) { + result = this.maybeBlockSuffix(guardedHandlers[i].body, result); + } + } + + // new interface + if (stmt.handler) { + if (Array.isArray(stmt.handler)) { + for (i = 0, iz = stmt.handler.length; i < iz; ++i) { + result = join(result, this.generateStatement(stmt.handler[i], S_TFFF)); + if (stmt.finalizer || i + 1 !== iz) { + result = this.maybeBlockSuffix(stmt.handler[i].body, result); + } + } + } else { + result = join(result, this.generateStatement(stmt.handler, S_TFFF)); + if (stmt.finalizer) { + result = this.maybeBlockSuffix(stmt.handler.body, result); + } + } + } + } + if (stmt.finalizer) { + result = join(result, ['finally', this.maybeBlock(stmt.finalizer, S_TFFF)]); + } + return result; + }, + + SwitchStatement: function (stmt, flags) { + var result, fragment, i, iz, bodyFlags, that = this; + withIndent(function () { + result = [ + 'switch' + space + '(', + that.generateExpression(stmt.discriminant, Precedence.Sequence, E_TTT), + ')' + space + '{' + newline + ]; + }); + if (stmt.cases) { + bodyFlags = S_TFFF; + for (i = 0, iz = stmt.cases.length; i < iz; ++i) { + if (i === iz - 1) { + bodyFlags |= F_SEMICOLON_OPT; + } + fragment = addIndent(this.generateStatement(stmt.cases[i], bodyFlags)); + result.push(fragment); + if (!endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) { + result.push(newline); + } + } + } + result.push(addIndent('}')); + return result; + }, + + SwitchCase: function (stmt, flags) { + var result, fragment, i, iz, bodyFlags, that = this; + withIndent(function () { + if (stmt.test) { + result = [ + join('case', that.generateExpression(stmt.test, Precedence.Sequence, E_TTT)), + ':' + ]; + } else { + result = ['default:']; + } + + i = 0; + iz = stmt.consequent.length; + if (iz && stmt.consequent[0].type === Syntax.BlockStatement) { + fragment = that.maybeBlock(stmt.consequent[0], S_TFFF); + result.push(fragment); + i = 1; + } + + if (i !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) { + result.push(newline); + } + + bodyFlags = S_TFFF; + for (; i < iz; ++i) { + if (i === iz - 1 && flags & F_SEMICOLON_OPT) { + bodyFlags |= F_SEMICOLON_OPT; + } + fragment = addIndent(that.generateStatement(stmt.consequent[i], bodyFlags)); + result.push(fragment); + if (i + 1 !== iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) { + result.push(newline); + } + } + }); + return result; + }, + + IfStatement: function (stmt, flags) { + var result, bodyFlags, semicolonOptional, that = this; + withIndent(function () { + result = [ + 'if' + space + '(', + that.generateExpression(stmt.test, Precedence.Sequence, E_TTT), + ')' + ]; + }); + semicolonOptional = flags & F_SEMICOLON_OPT; + bodyFlags = S_TFFF; + if (semicolonOptional) { + bodyFlags |= F_SEMICOLON_OPT; + } + if (stmt.alternate) { + result.push(this.maybeBlock(stmt.consequent, S_TFFF)); + result = this.maybeBlockSuffix(stmt.consequent, result); + if (stmt.alternate.type === Syntax.IfStatement) { + result = join(result, ['else ', this.generateStatement(stmt.alternate, bodyFlags)]); + } else { + result = join(result, join('else', this.maybeBlock(stmt.alternate, bodyFlags))); + } + } else { + result.push(this.maybeBlock(stmt.consequent, bodyFlags)); + } + return result; + }, + + ForStatement: function (stmt, flags) { + var result, that = this; + withIndent(function () { + result = ['for' + space + '(']; + if (stmt.init) { + if (stmt.init.type === Syntax.VariableDeclaration) { + result.push(that.generateStatement(stmt.init, S_FFFF)); + } else { + // F_ALLOW_IN becomes false. + result.push(that.generateExpression(stmt.init, Precedence.Sequence, E_FTT)); + result.push(';'); + } + } else { + result.push(';'); + } + + if (stmt.test) { + result.push(space); + result.push(that.generateExpression(stmt.test, Precedence.Sequence, E_TTT)); + result.push(';'); + } else { + result.push(';'); + } + + if (stmt.update) { + result.push(space); + result.push(that.generateExpression(stmt.update, Precedence.Sequence, E_TTT)); + result.push(')'); + } else { + result.push(')'); + } + }); + + result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF)); + return result; + }, + + ForInStatement: function (stmt, flags) { + return this.generateIterationForStatement('in', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF); + }, + + ForOfStatement: function (stmt, flags) { + return this.generateIterationForStatement('of', stmt, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF); + }, + + LabeledStatement: function (stmt, flags) { + return [stmt.label.name + ':', this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF)]; + }, + + Program: function (stmt, flags) { + var result, fragment, i, iz, bodyFlags; + iz = stmt.body.length; + result = [safeConcatenation && iz > 0 ? '\n' : '']; + bodyFlags = S_TFTF; + for (i = 0; i < iz; ++i) { + if (!safeConcatenation && i === iz - 1) { + bodyFlags |= F_SEMICOLON_OPT; + } + + if (preserveBlankLines) { + // handle spaces before the first line + if (i === 0) { + if (!stmt.body[0].leadingComments) { + generateBlankLines(stmt.range[0], stmt.body[i].range[0], result); + } + } + + // handle spaces between lines + if (i > 0) { + if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) { + generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result); + } + } + } + + fragment = addIndent(this.generateStatement(stmt.body[i], bodyFlags)); + result.push(fragment); + if (i + 1 < iz && !endsWithLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) { + if (preserveBlankLines) { + if (!stmt.body[i + 1].leadingComments) { + result.push(newline); + } + } else { + result.push(newline); + } + } + + if (preserveBlankLines) { + // handle spaces after the last line + if (i === iz - 1) { + if (!stmt.body[i].trailingComments) { + generateBlankLines(stmt.body[i].range[1], stmt.range[1], result); + } + } + } + } + return result; + }, + + FunctionDeclaration: function (stmt, flags) { + return [ + generateAsyncPrefix(stmt, true), + 'function', + generateStarSuffix(stmt) || noEmptySpace(), + stmt.id ? generateIdentifier(stmt.id) : '', + this.generateFunctionBody(stmt) + ]; + }, + + ReturnStatement: function (stmt, flags) { + if (stmt.argument) { + return [join( + 'return', + this.generateExpression(stmt.argument, Precedence.Sequence, E_TTT) + ), this.semicolon(flags)]; + } + return ['return' + this.semicolon(flags)]; + }, + + WhileStatement: function (stmt, flags) { + var result, that = this; + withIndent(function () { + result = [ + 'while' + space + '(', + that.generateExpression(stmt.test, Precedence.Sequence, E_TTT), + ')' + ]; + }); + result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF)); + return result; + }, + + WithStatement: function (stmt, flags) { + var result, that = this; + withIndent(function () { + result = [ + 'with' + space + '(', + that.generateExpression(stmt.object, Precedence.Sequence, E_TTT), + ')' + ]; + }); + result.push(this.maybeBlock(stmt.body, flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF)); + return result; + } + + }; + + merge(CodeGenerator.prototype, CodeGenerator.Statement); + + // Expressions. + + CodeGenerator.Expression = { + + SequenceExpression: function (expr, precedence, flags) { + var result, i, iz; + if (Precedence.Sequence < precedence) { + flags |= F_ALLOW_IN; + } + result = []; + for (i = 0, iz = expr.expressions.length; i < iz; ++i) { + result.push(this.generateExpression(expr.expressions[i], Precedence.Assignment, flags)); + if (i + 1 < iz) { + result.push(',' + space); + } + } + return parenthesize(result, Precedence.Sequence, precedence); + }, + + AssignmentExpression: function (expr, precedence, flags) { + return this.generateAssignment(expr.left, expr.right, expr.operator, precedence, flags); + }, + + ArrowFunctionExpression: function (expr, precedence, flags) { + return parenthesize(this.generateFunctionBody(expr), Precedence.ArrowFunction, precedence); + }, + + ConditionalExpression: function (expr, precedence, flags) { + if (Precedence.Conditional < precedence) { + flags |= F_ALLOW_IN; + } + return parenthesize( + [ + this.generateExpression(expr.test, Precedence.LogicalOR, flags), + space + '?' + space, + this.generateExpression(expr.consequent, Precedence.Assignment, flags), + space + ':' + space, + this.generateExpression(expr.alternate, Precedence.Assignment, flags) + ], + Precedence.Conditional, + precedence + ); + }, + + LogicalExpression: function (expr, precedence, flags) { + return this.BinaryExpression(expr, precedence, flags); + }, + + BinaryExpression: function (expr, precedence, flags) { + var result, leftPrecedence, rightPrecedence, currentPrecedence, fragment, leftSource; + currentPrecedence = BinaryPrecedence[expr.operator]; + leftPrecedence = expr.operator === '**' ? Precedence.Postfix : currentPrecedence; + rightPrecedence = expr.operator === '**' ? currentPrecedence : currentPrecedence + 1; + + if (currentPrecedence < precedence) { + flags |= F_ALLOW_IN; + } + + fragment = this.generateExpression(expr.left, leftPrecedence, flags); + + leftSource = fragment.toString(); + + if (leftSource.charCodeAt(leftSource.length - 1) === 0x2F /* / */ && esutils.code.isIdentifierPartES5(expr.operator.charCodeAt(0))) { + result = [fragment, noEmptySpace(), expr.operator]; + } else { + result = join(fragment, expr.operator); + } + + fragment = this.generateExpression(expr.right, rightPrecedence, flags); + + if (expr.operator === '/' && fragment.toString().charAt(0) === '/' || + expr.operator.slice(-1) === '<' && fragment.toString().slice(0, 3) === '!--') { + // If '/' concats with '/' or `<` concats with `!--`, it is interpreted as comment start + result.push(noEmptySpace()); + result.push(fragment); + } else { + result = join(result, fragment); + } + + if (expr.operator === 'in' && !(flags & F_ALLOW_IN)) { + return ['(', result, ')']; + } + return parenthesize(result, currentPrecedence, precedence); + }, + + CallExpression: function (expr, precedence, flags) { + var result, i, iz; + // F_ALLOW_UNPARATH_NEW becomes false. + result = [this.generateExpression(expr.callee, Precedence.Call, E_TTF)]; + result.push('('); + for (i = 0, iz = expr['arguments'].length; i < iz; ++i) { + result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT)); + if (i + 1 < iz) { + result.push(',' + space); + } + } + result.push(')'); + + if (!(flags & F_ALLOW_CALL)) { + return ['(', result, ')']; + } + return parenthesize(result, Precedence.Call, precedence); + }, + + NewExpression: function (expr, precedence, flags) { + var result, length, i, iz, itemFlags; + length = expr['arguments'].length; + + // F_ALLOW_CALL becomes false. + // F_ALLOW_UNPARATH_NEW may become false. + itemFlags = (flags & F_ALLOW_UNPARATH_NEW && !parentheses && length === 0) ? E_TFT : E_TFF; + + result = join( + 'new', + this.generateExpression(expr.callee, Precedence.New, itemFlags) + ); + + if (!(flags & F_ALLOW_UNPARATH_NEW) || parentheses || length > 0) { + result.push('('); + for (i = 0, iz = length; i < iz; ++i) { + result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT)); + if (i + 1 < iz) { + result.push(',' + space); + } + } + result.push(')'); + } + + return parenthesize(result, Precedence.New, precedence); + }, + + MemberExpression: function (expr, precedence, flags) { + var result, fragment; + + // F_ALLOW_UNPARATH_NEW becomes false. + result = [this.generateExpression(expr.object, Precedence.Call, (flags & F_ALLOW_CALL) ? E_TTF : E_TFF)]; + + if (expr.computed) { + result.push('['); + result.push(this.generateExpression(expr.property, Precedence.Sequence, flags & F_ALLOW_CALL ? E_TTT : E_TFT)); + result.push(']'); + } else { + if (expr.object.type === Syntax.Literal && typeof expr.object.value === 'number') { + fragment = toSourceNodeWhenNeeded(result).toString(); + // When the following conditions are all true, + // 1. No floating point + // 2. Don't have exponents + // 3. The last character is a decimal digit + // 4. Not hexadecimal OR octal number literal + // we should add a floating point. + if ( + fragment.indexOf('.') < 0 && + !/[eExX]/.test(fragment) && + esutils.code.isDecimalDigit(fragment.charCodeAt(fragment.length - 1)) && + !(fragment.length >= 2 && fragment.charCodeAt(0) === 48) // '0' + ) { + result.push(' '); + } + } + result.push('.'); + result.push(generateIdentifier(expr.property)); + } + + return parenthesize(result, Precedence.Member, precedence); + }, + + MetaProperty: function (expr, precedence, flags) { + var result; + result = []; + result.push(typeof expr.meta === "string" ? expr.meta : generateIdentifier(expr.meta)); + result.push('.'); + result.push(typeof expr.property === "string" ? expr.property : generateIdentifier(expr.property)); + return parenthesize(result, Precedence.Member, precedence); + }, + + UnaryExpression: function (expr, precedence, flags) { + var result, fragment, rightCharCode, leftSource, leftCharCode; + fragment = this.generateExpression(expr.argument, Precedence.Unary, E_TTT); + + if (space === '') { + result = join(expr.operator, fragment); + } else { + result = [expr.operator]; + if (expr.operator.length > 2) { + // delete, void, typeof + // get `typeof []`, not `typeof[]` + result = join(result, fragment); + } else { + // Prevent inserting spaces between operator and argument if it is unnecessary + // like, `!cond` + leftSource = toSourceNodeWhenNeeded(result).toString(); + leftCharCode = leftSource.charCodeAt(leftSource.length - 1); + rightCharCode = fragment.toString().charCodeAt(0); + + if (((leftCharCode === 0x2B /* + */ || leftCharCode === 0x2D /* - */) && leftCharCode === rightCharCode) || + (esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode))) { + result.push(noEmptySpace()); + result.push(fragment); + } else { + result.push(fragment); + } + } + } + return parenthesize(result, Precedence.Unary, precedence); + }, + + YieldExpression: function (expr, precedence, flags) { + var result; + if (expr.delegate) { + result = 'yield*'; + } else { + result = 'yield'; + } + if (expr.argument) { + result = join( + result, + this.generateExpression(expr.argument, Precedence.Yield, E_TTT) + ); + } + return parenthesize(result, Precedence.Yield, precedence); + }, + + AwaitExpression: function (expr, precedence, flags) { + var result = join( + expr.all ? 'await*' : 'await', + this.generateExpression(expr.argument, Precedence.Await, E_TTT) + ); + return parenthesize(result, Precedence.Await, precedence); + }, + + UpdateExpression: function (expr, precedence, flags) { + if (expr.prefix) { + return parenthesize( + [ + expr.operator, + this.generateExpression(expr.argument, Precedence.Unary, E_TTT) + ], + Precedence.Unary, + precedence + ); + } + return parenthesize( + [ + this.generateExpression(expr.argument, Precedence.Postfix, E_TTT), + expr.operator + ], + Precedence.Postfix, + precedence + ); + }, + + FunctionExpression: function (expr, precedence, flags) { + var result = [ + generateAsyncPrefix(expr, true), + 'function' + ]; + if (expr.id) { + result.push(generateStarSuffix(expr) || noEmptySpace()); + result.push(generateIdentifier(expr.id)); + } else { + result.push(generateStarSuffix(expr) || space); + } + result.push(this.generateFunctionBody(expr)); + return result; + }, + + ArrayPattern: function (expr, precedence, flags) { + return this.ArrayExpression(expr, precedence, flags, true); + }, + + ArrayExpression: function (expr, precedence, flags, isPattern) { + var result, multiline, that = this; + if (!expr.elements.length) { + return '[]'; + } + multiline = isPattern ? false : expr.elements.length > 1; + result = ['[', multiline ? newline : '']; + withIndent(function (indent) { + var i, iz; + for (i = 0, iz = expr.elements.length; i < iz; ++i) { + if (!expr.elements[i]) { + if (multiline) { + result.push(indent); + } + if (i + 1 === iz) { + result.push(','); + } + } else { + result.push(multiline ? indent : ''); + result.push(that.generateExpression(expr.elements[i], Precedence.Assignment, E_TTT)); + } + if (i + 1 < iz) { + result.push(',' + (multiline ? newline : space)); + } + } + }); + if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) { + result.push(newline); + } + result.push(multiline ? base : ''); + result.push(']'); + return result; + }, + + RestElement: function(expr, precedence, flags) { + return '...' + this.generatePattern(expr.argument); + }, + + ClassExpression: function (expr, precedence, flags) { + var result, fragment; + result = ['class']; + if (expr.id) { + result = join(result, this.generateExpression(expr.id, Precedence.Sequence, E_TTT)); + } + if (expr.superClass) { + fragment = join('extends', this.generateExpression(expr.superClass, Precedence.Unary, E_TTT)); + result = join(result, fragment); + } + result.push(space); + result.push(this.generateStatement(expr.body, S_TFFT)); + return result; + }, + + MethodDefinition: function (expr, precedence, flags) { + var result, fragment; + if (expr['static']) { + result = ['static' + space]; + } else { + result = []; + } + if (expr.kind === 'get' || expr.kind === 'set') { + fragment = [ + join(expr.kind, this.generatePropertyKey(expr.key, expr.computed)), + this.generateFunctionBody(expr.value) + ]; + } else { + fragment = [ + generateMethodPrefix(expr), + this.generatePropertyKey(expr.key, expr.computed), + this.generateFunctionBody(expr.value) + ]; + } + return join(result, fragment); + }, + + Property: function (expr, precedence, flags) { + if (expr.kind === 'get' || expr.kind === 'set') { + return [ + expr.kind, noEmptySpace(), + this.generatePropertyKey(expr.key, expr.computed), + this.generateFunctionBody(expr.value) + ]; + } + + if (expr.shorthand) { + if (expr.value.type === "AssignmentPattern") { + return this.AssignmentPattern(expr.value, Precedence.Sequence, E_TTT); + } + return this.generatePropertyKey(expr.key, expr.computed); + } + + if (expr.method) { + return [ + generateMethodPrefix(expr), + this.generatePropertyKey(expr.key, expr.computed), + this.generateFunctionBody(expr.value) + ]; + } + + return [ + this.generatePropertyKey(expr.key, expr.computed), + ':' + space, + this.generateExpression(expr.value, Precedence.Assignment, E_TTT) + ]; + }, + + ObjectExpression: function (expr, precedence, flags) { + var multiline, result, fragment, that = this; + + if (!expr.properties.length) { + return '{}'; + } + multiline = expr.properties.length > 1; + + withIndent(function () { + fragment = that.generateExpression(expr.properties[0], Precedence.Sequence, E_TTT); + }); + + if (!multiline) { + // issues 4 + // Do not transform from + // dejavu.Class.declare({ + // method2: function () {} + // }); + // to + // dejavu.Class.declare({method2: function () { + // }}); + if (!hasLineTerminator(toSourceNodeWhenNeeded(fragment).toString())) { + return [ '{', space, fragment, space, '}' ]; + } + } + + withIndent(function (indent) { + var i, iz; + result = [ '{', newline, indent, fragment ]; + + if (multiline) { + result.push(',' + newline); + for (i = 1, iz = expr.properties.length; i < iz; ++i) { + result.push(indent); + result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT)); + if (i + 1 < iz) { + result.push(',' + newline); + } + } + } + }); + + if (!endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) { + result.push(newline); + } + result.push(base); + result.push('}'); + return result; + }, + + AssignmentPattern: function(expr, precedence, flags) { + return this.generateAssignment(expr.left, expr.right, '=', precedence, flags); + }, + + ObjectPattern: function (expr, precedence, flags) { + var result, i, iz, multiline, property, that = this; + if (!expr.properties.length) { + return '{}'; + } + + multiline = false; + if (expr.properties.length === 1) { + property = expr.properties[0]; + if ( + property.type === Syntax.Property + && property.value.type !== Syntax.Identifier + ) { + multiline = true; + } + } else { + for (i = 0, iz = expr.properties.length; i < iz; ++i) { + property = expr.properties[i]; + if ( + property.type === Syntax.Property + && !property.shorthand + ) { + multiline = true; + break; + } + } + } + result = ['{', multiline ? newline : '' ]; + + withIndent(function (indent) { + var i, iz; + for (i = 0, iz = expr.properties.length; i < iz; ++i) { + result.push(multiline ? indent : ''); + result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT)); + if (i + 1 < iz) { + result.push(',' + (multiline ? newline : space)); + } + } + }); + + if (multiline && !endsWithLineTerminator(toSourceNodeWhenNeeded(result).toString())) { + result.push(newline); + } + result.push(multiline ? base : ''); + result.push('}'); + return result; + }, + + ThisExpression: function (expr, precedence, flags) { + return 'this'; + }, + + Super: function (expr, precedence, flags) { + return 'super'; + }, + + Identifier: function (expr, precedence, flags) { + return generateIdentifier(expr); + }, + + ImportDefaultSpecifier: function (expr, precedence, flags) { + return generateIdentifier(expr.id || expr.local); + }, + + ImportNamespaceSpecifier: function (expr, precedence, flags) { + var result = ['*']; + var id = expr.id || expr.local; + if (id) { + result.push(space + 'as' + noEmptySpace() + generateIdentifier(id)); + } + return result; + }, + + ImportSpecifier: function (expr, precedence, flags) { + var imported = expr.imported; + var result = [ imported.name ]; + var local = expr.local; + if (local && local.name !== imported.name) { + result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(local)); + } + return result; + }, + + ExportSpecifier: function (expr, precedence, flags) { + var local = expr.local; + var result = [ local.name ]; + var exported = expr.exported; + if (exported && exported.name !== local.name) { + result.push(noEmptySpace() + 'as' + noEmptySpace() + generateIdentifier(exported)); + } + return result; + }, + + Literal: function (expr, precedence, flags) { + var raw; + if (expr.hasOwnProperty('raw') && parse && extra.raw) { + try { + raw = parse(expr.raw).body[0].expression; + if (raw.type === Syntax.Literal) { + if (raw.value === expr.value) { + return expr.raw; + } + } + } catch (e) { + // not use raw property + } + } + + if (expr.regex) { + return '/' + expr.regex.pattern + '/' + expr.regex.flags; + } + + if (expr.value === null) { + return 'null'; + } + + if (typeof expr.value === 'string') { + return escapeString(expr.value); + } + + if (typeof expr.value === 'number') { + return generateNumber(expr.value); + } + + if (typeof expr.value === 'boolean') { + return expr.value ? 'true' : 'false'; + } + + return generateRegExp(expr.value); + }, + + GeneratorExpression: function (expr, precedence, flags) { + return this.ComprehensionExpression(expr, precedence, flags); + }, + + ComprehensionExpression: function (expr, precedence, flags) { + // GeneratorExpression should be parenthesized with (...), ComprehensionExpression with [...] + // Due to https://bugzilla.mozilla.org/show_bug.cgi?id=883468 position of expr.body can differ in Spidermonkey and ES6 + + var result, i, iz, fragment, that = this; + result = (expr.type === Syntax.GeneratorExpression) ? ['('] : ['[']; + + if (extra.moz.comprehensionExpressionStartsWithAssignment) { + fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT); + result.push(fragment); + } + + if (expr.blocks) { + withIndent(function () { + for (i = 0, iz = expr.blocks.length; i < iz; ++i) { + fragment = that.generateExpression(expr.blocks[i], Precedence.Sequence, E_TTT); + if (i > 0 || extra.moz.comprehensionExpressionStartsWithAssignment) { + result = join(result, fragment); + } else { + result.push(fragment); + } + } + }); + } + + if (expr.filter) { + result = join(result, 'if' + space); + fragment = this.generateExpression(expr.filter, Precedence.Sequence, E_TTT); + result = join(result, [ '(', fragment, ')' ]); + } + + if (!extra.moz.comprehensionExpressionStartsWithAssignment) { + fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT); + + result = join(result, fragment); + } + + result.push((expr.type === Syntax.GeneratorExpression) ? ')' : ']'); + return result; + }, + + ComprehensionBlock: function (expr, precedence, flags) { + var fragment; + if (expr.left.type === Syntax.VariableDeclaration) { + fragment = [ + expr.left.kind, noEmptySpace(), + this.generateStatement(expr.left.declarations[0], S_FFFF) + ]; + } else { + fragment = this.generateExpression(expr.left, Precedence.Call, E_TTT); + } + + fragment = join(fragment, expr.of ? 'of' : 'in'); + fragment = join(fragment, this.generateExpression(expr.right, Precedence.Sequence, E_TTT)); + + return [ 'for' + space + '(', fragment, ')' ]; + }, + + SpreadElement: function (expr, precedence, flags) { + return [ + '...', + this.generateExpression(expr.argument, Precedence.Assignment, E_TTT) + ]; + }, + + TaggedTemplateExpression: function (expr, precedence, flags) { + var itemFlags = E_TTF; + if (!(flags & F_ALLOW_CALL)) { + itemFlags = E_TFF; + } + var result = [ + this.generateExpression(expr.tag, Precedence.Call, itemFlags), + this.generateExpression(expr.quasi, Precedence.Primary, E_FFT) + ]; + return parenthesize(result, Precedence.TaggedTemplate, precedence); + }, + + TemplateElement: function (expr, precedence, flags) { + // Don't use "cooked". Since tagged template can use raw template + // representation. So if we do so, it breaks the script semantics. + return expr.value.raw; + }, + + TemplateLiteral: function (expr, precedence, flags) { + var result, i, iz; + result = [ '`' ]; + for (i = 0, iz = expr.quasis.length; i < iz; ++i) { + result.push(this.generateExpression(expr.quasis[i], Precedence.Primary, E_TTT)); + if (i + 1 < iz) { + result.push('${' + space); + result.push(this.generateExpression(expr.expressions[i], Precedence.Sequence, E_TTT)); + result.push(space + '}'); + } + } + result.push('`'); + return result; + }, + + ModuleSpecifier: function (expr, precedence, flags) { + return this.Literal(expr, precedence, flags); + }, + + ImportExpression: function(expr, precedence, flag) { + return parenthesize([ + 'import(', + this.generateExpression(expr.source, Precedence.Assignment, E_TTT), + ')' + ], Precedence.Call, precedence); + }, + + }; + + merge(CodeGenerator.prototype, CodeGenerator.Expression); + + CodeGenerator.prototype.generateExpression = function (expr, precedence, flags) { + var result, type; + + type = expr.type || Syntax.Property; + + if (extra.verbatim && expr.hasOwnProperty(extra.verbatim)) { + return generateVerbatim(expr, precedence); + } + + result = this[type](expr, precedence, flags); + + + if (extra.comment) { + result = addComments(expr, result); + } + return toSourceNodeWhenNeeded(result, expr); + }; + + CodeGenerator.prototype.generateStatement = function (stmt, flags) { + var result, + fragment; + + result = this[stmt.type](stmt, flags); + + // Attach comments + + if (extra.comment) { + result = addComments(stmt, result); + } + + fragment = toSourceNodeWhenNeeded(result).toString(); + if (stmt.type === Syntax.Program && !safeConcatenation && newline === '' && fragment.charAt(fragment.length - 1) === '\n') { + result = sourceMap ? toSourceNodeWhenNeeded(result).replaceRight(/\s+$/, '') : fragment.replace(/\s+$/, ''); + } + + return toSourceNodeWhenNeeded(result, stmt); + }; + + function generateInternal(node) { + var codegen; + + codegen = new CodeGenerator(); + if (isStatement(node)) { + return codegen.generateStatement(node, S_TFFF); + } + + if (isExpression(node)) { + return codegen.generateExpression(node, Precedence.Sequence, E_TTT); + } + + throw new Error('Unknown node type: ' + node.type); + } + + function generate(node, options) { + var defaultOptions = getDefaultOptions(), result, pair; + + if (options != null) { + // Obsolete options + // + // `options.indent` + // `options.base` + // + // Instead of them, we can use `option.format.indent`. + if (typeof options.indent === 'string') { + defaultOptions.format.indent.style = options.indent; + } + if (typeof options.base === 'number') { + defaultOptions.format.indent.base = options.base; + } + options = updateDeeply(defaultOptions, options); + indent = options.format.indent.style; + if (typeof options.base === 'string') { + base = options.base; + } else { + base = stringRepeat(indent, options.format.indent.base); + } + } else { + options = defaultOptions; + indent = options.format.indent.style; + base = stringRepeat(indent, options.format.indent.base); + } + json = options.format.json; + renumber = options.format.renumber; + hexadecimal = json ? false : options.format.hexadecimal; + quotes = json ? 'double' : options.format.quotes; + escapeless = options.format.escapeless; + newline = options.format.newline; + space = options.format.space; + if (options.format.compact) { + newline = space = indent = base = ''; + } + parentheses = options.format.parentheses; + semicolons = options.format.semicolons; + safeConcatenation = options.format.safeConcatenation; + directive = options.directive; + parse = json ? null : options.parse; + sourceMap = options.sourceMap; + sourceCode = options.sourceCode; + preserveBlankLines = options.format.preserveBlankLines && sourceCode !== null; + extra = options; + + if (sourceMap) { + if (!exports.browser) { + // We assume environment is node.js + // And prevent from including source-map by browserify + SourceNode = (__webpack_require__(/*! source-map */ "../../../.yarn/berry/cache/source-map-npm-0.6.1-1a3621db16-9.zip/node_modules/source-map/source-map.js").SourceNode); + } else { + SourceNode = global.sourceMap.SourceNode; + } + } + + result = generateInternal(node); + + if (!sourceMap) { + pair = {code: result.toString(), map: null}; + return options.sourceMapWithCode ? pair : pair.code; + } + + + pair = result.toStringWithSourceMap({ + file: options.file, + sourceRoot: options.sourceMapRoot + }); + + if (options.sourceContent) { + pair.map.setSourceContent(options.sourceMap, + options.sourceContent); + } + + if (options.sourceMapWithCode) { + return pair; + } + + return pair.map.toString(); + } + + FORMAT_MINIFY = { + indent: { + style: '', + base: 0 + }, + renumber: true, + hexadecimal: true, + quotes: 'auto', + escapeless: true, + compact: true, + parentheses: false, + semicolons: false + }; + + FORMAT_DEFAULTS = getDefaultOptions().format; + + exports.version = __webpack_require__(/*! ./package.json */ "../../../.yarn/berry/cache/escodegen-npm-1.14.3-a4dedc6eeb-9.zip/node_modules/escodegen/package.json").version; + exports.generate = generate; + exports.attachComments = estraverse.attachComments; + exports.Precedence = updateDeeply({}, Precedence); + exports.browser = false; + exports.FORMAT_MINIFY = FORMAT_MINIFY; + exports.FORMAT_DEFAULTS = FORMAT_DEFAULTS; +}()); +/* vim: set sw=4 ts=4 et tw=80 : */ + + +/***/ }), + +/***/ "../../../.yarn/berry/cache/esprima-npm-4.0.1-1084e98778-9.zip/node_modules/esprima/dist/esprima.js": +/*!**********************************************************************************************************!*\ + !*** ../../../.yarn/berry/cache/esprima-npm-4.0.1-1084e98778-9.zip/node_modules/esprima/dist/esprima.js ***! + \**********************************************************************************************************/ +/***/ (function(module) { + +(function webpackUniversalModuleDefinition(root, factory) { +/* istanbul ignore next */ + if(true) + module.exports = factory(); + else {} +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __nested_webpack_require_583__(moduleId) { + +/******/ // Check if module is in cache +/* istanbul ignore if */ +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_583__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __nested_webpack_require_583__.m = modules; + +/******/ // expose the module cache +/******/ __nested_webpack_require_583__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __nested_webpack_require_583__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __nested_webpack_require_583__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __nested_webpack_require_1808__) { + + "use strict"; + /* + Copyright JS Foundation and other contributors, https://js.foundation/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + var comment_handler_1 = __nested_webpack_require_1808__(1); + var jsx_parser_1 = __nested_webpack_require_1808__(3); + var parser_1 = __nested_webpack_require_1808__(8); + var tokenizer_1 = __nested_webpack_require_1808__(15); + function parse(code, options, delegate) { + var commentHandler = null; + var proxyDelegate = function (node, metadata) { + if (delegate) { + delegate(node, metadata); + } + if (commentHandler) { + commentHandler.visit(node, metadata); + } + }; + var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null; + var collectComment = false; + if (options) { + collectComment = (typeof options.comment === 'boolean' && options.comment); + var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment); + if (collectComment || attachComment) { + commentHandler = new comment_handler_1.CommentHandler(); + commentHandler.attach = attachComment; + options.comment = true; + parserDelegate = proxyDelegate; + } + } + var isModule = false; + if (options && typeof options.sourceType === 'string') { + isModule = (options.sourceType === 'module'); + } + var parser; + if (options && typeof options.jsx === 'boolean' && options.jsx) { + parser = new jsx_parser_1.JSXParser(code, options, parserDelegate); + } + else { + parser = new parser_1.Parser(code, options, parserDelegate); + } + var program = isModule ? parser.parseModule() : parser.parseScript(); + var ast = program; + if (collectComment && commentHandler) { + ast.comments = commentHandler.comments; + } + if (parser.config.tokens) { + ast.tokens = parser.tokens; + } + if (parser.config.tolerant) { + ast.errors = parser.errorHandler.errors; + } + return ast; + } + exports.parse = parse; + function parseModule(code, options, delegate) { + var parsingOptions = options || {}; + parsingOptions.sourceType = 'module'; + return parse(code, parsingOptions, delegate); + } + exports.parseModule = parseModule; + function parseScript(code, options, delegate) { + var parsingOptions = options || {}; + parsingOptions.sourceType = 'script'; + return parse(code, parsingOptions, delegate); + } + exports.parseScript = parseScript; + function tokenize(code, options, delegate) { + var tokenizer = new tokenizer_1.Tokenizer(code, options); + var tokens; + tokens = []; + try { + while (true) { + var token = tokenizer.getNextToken(); + if (!token) { + break; + } + if (delegate) { + token = delegate(token); + } + tokens.push(token); + } + } + catch (e) { + tokenizer.errorHandler.tolerate(e); + } + if (tokenizer.errorHandler.tolerant) { + tokens.errors = tokenizer.errors(); + } + return tokens; + } + exports.tokenize = tokenize; + var syntax_1 = __nested_webpack_require_1808__(2); + exports.Syntax = syntax_1.Syntax; + // Sync with *.json manifests. + exports.version = '4.0.1'; + + +/***/ }, +/* 1 */ +/***/ function(module, exports, __nested_webpack_require_6456__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var syntax_1 = __nested_webpack_require_6456__(2); + var CommentHandler = (function () { + function CommentHandler() { + this.attach = false; + this.comments = []; + this.stack = []; + this.leading = []; + this.trailing = []; + } + CommentHandler.prototype.insertInnerComments = function (node, metadata) { + // innnerComments for properties empty block + // `function a() {/** comments **\/}` + if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) { + var innerComments = []; + for (var i = this.leading.length - 1; i >= 0; --i) { + var entry = this.leading[i]; + if (metadata.end.offset >= entry.start) { + innerComments.unshift(entry.comment); + this.leading.splice(i, 1); + this.trailing.splice(i, 1); + } + } + if (innerComments.length) { + node.innerComments = innerComments; + } + } + }; + CommentHandler.prototype.findTrailingComments = function (metadata) { + var trailingComments = []; + if (this.trailing.length > 0) { + for (var i = this.trailing.length - 1; i >= 0; --i) { + var entry_1 = this.trailing[i]; + if (entry_1.start >= metadata.end.offset) { + trailingComments.unshift(entry_1.comment); + } + } + this.trailing.length = 0; + return trailingComments; + } + var entry = this.stack[this.stack.length - 1]; + if (entry && entry.node.trailingComments) { + var firstComment = entry.node.trailingComments[0]; + if (firstComment && firstComment.range[0] >= metadata.end.offset) { + trailingComments = entry.node.trailingComments; + delete entry.node.trailingComments; + } + } + return trailingComments; + }; + CommentHandler.prototype.findLeadingComments = function (metadata) { + var leadingComments = []; + var target; + while (this.stack.length > 0) { + var entry = this.stack[this.stack.length - 1]; + if (entry && entry.start >= metadata.start.offset) { + target = entry.node; + this.stack.pop(); + } + else { + break; + } + } + if (target) { + var count = target.leadingComments ? target.leadingComments.length : 0; + for (var i = count - 1; i >= 0; --i) { + var comment = target.leadingComments[i]; + if (comment.range[1] <= metadata.start.offset) { + leadingComments.unshift(comment); + target.leadingComments.splice(i, 1); + } + } + if (target.leadingComments && target.leadingComments.length === 0) { + delete target.leadingComments; + } + return leadingComments; + } + for (var i = this.leading.length - 1; i >= 0; --i) { + var entry = this.leading[i]; + if (entry.start <= metadata.start.offset) { + leadingComments.unshift(entry.comment); + this.leading.splice(i, 1); + } + } + return leadingComments; + }; + CommentHandler.prototype.visitNode = function (node, metadata) { + if (node.type === syntax_1.Syntax.Program && node.body.length > 0) { + return; + } + this.insertInnerComments(node, metadata); + var trailingComments = this.findTrailingComments(metadata); + var leadingComments = this.findLeadingComments(metadata); + if (leadingComments.length > 0) { + node.leadingComments = leadingComments; + } + if (trailingComments.length > 0) { + node.trailingComments = trailingComments; + } + this.stack.push({ + node: node, + start: metadata.start.offset + }); + }; + CommentHandler.prototype.visitComment = function (node, metadata) { + var type = (node.type[0] === 'L') ? 'Line' : 'Block'; + var comment = { + type: type, + value: node.value + }; + if (node.range) { + comment.range = node.range; + } + if (node.loc) { + comment.loc = node.loc; + } + this.comments.push(comment); + if (this.attach) { + var entry = { + comment: { + type: type, + value: node.value, + range: [metadata.start.offset, metadata.end.offset] + }, + start: metadata.start.offset + }; + if (node.loc) { + entry.comment.loc = node.loc; + } + node.type = type; + this.leading.push(entry); + this.trailing.push(entry); + } + }; + CommentHandler.prototype.visit = function (node, metadata) { + if (node.type === 'LineComment') { + this.visitComment(node, metadata); + } + else if (node.type === 'BlockComment') { + this.visitComment(node, metadata); + } + else if (this.attach) { + this.visitNode(node, metadata); + } + }; + return CommentHandler; + }()); + exports.CommentHandler = CommentHandler; + + +/***/ }, +/* 2 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Syntax = { + AssignmentExpression: 'AssignmentExpression', + AssignmentPattern: 'AssignmentPattern', + ArrayExpression: 'ArrayExpression', + ArrayPattern: 'ArrayPattern', + ArrowFunctionExpression: 'ArrowFunctionExpression', + AwaitExpression: 'AwaitExpression', + BlockStatement: 'BlockStatement', + BinaryExpression: 'BinaryExpression', + BreakStatement: 'BreakStatement', + CallExpression: 'CallExpression', + CatchClause: 'CatchClause', + ClassBody: 'ClassBody', + ClassDeclaration: 'ClassDeclaration', + ClassExpression: 'ClassExpression', + ConditionalExpression: 'ConditionalExpression', + ContinueStatement: 'ContinueStatement', + DoWhileStatement: 'DoWhileStatement', + DebuggerStatement: 'DebuggerStatement', + EmptyStatement: 'EmptyStatement', + ExportAllDeclaration: 'ExportAllDeclaration', + ExportDefaultDeclaration: 'ExportDefaultDeclaration', + ExportNamedDeclaration: 'ExportNamedDeclaration', + ExportSpecifier: 'ExportSpecifier', + ExpressionStatement: 'ExpressionStatement', + ForStatement: 'ForStatement', + ForOfStatement: 'ForOfStatement', + ForInStatement: 'ForInStatement', + FunctionDeclaration: 'FunctionDeclaration', + FunctionExpression: 'FunctionExpression', + Identifier: 'Identifier', + IfStatement: 'IfStatement', + ImportDeclaration: 'ImportDeclaration', + ImportDefaultSpecifier: 'ImportDefaultSpecifier', + ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', + ImportSpecifier: 'ImportSpecifier', + Literal: 'Literal', + LabeledStatement: 'LabeledStatement', + LogicalExpression: 'LogicalExpression', + MemberExpression: 'MemberExpression', + MetaProperty: 'MetaProperty', + MethodDefinition: 'MethodDefinition', + NewExpression: 'NewExpression', + ObjectExpression: 'ObjectExpression', + ObjectPattern: 'ObjectPattern', + Program: 'Program', + Property: 'Property', + RestElement: 'RestElement', + ReturnStatement: 'ReturnStatement', + SequenceExpression: 'SequenceExpression', + SpreadElement: 'SpreadElement', + Super: 'Super', + SwitchCase: 'SwitchCase', + SwitchStatement: 'SwitchStatement', + TaggedTemplateExpression: 'TaggedTemplateExpression', + TemplateElement: 'TemplateElement', + TemplateLiteral: 'TemplateLiteral', + ThisExpression: 'ThisExpression', + ThrowStatement: 'ThrowStatement', + TryStatement: 'TryStatement', + UnaryExpression: 'UnaryExpression', + UpdateExpression: 'UpdateExpression', + VariableDeclaration: 'VariableDeclaration', + VariableDeclarator: 'VariableDeclarator', + WhileStatement: 'WhileStatement', + WithStatement: 'WithStatement', + YieldExpression: 'YieldExpression' + }; + + +/***/ }, +/* 3 */ +/***/ function(module, exports, __nested_webpack_require_15019__) { + + "use strict"; +/* istanbul ignore next */ + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var character_1 = __nested_webpack_require_15019__(4); + var JSXNode = __nested_webpack_require_15019__(5); + var jsx_syntax_1 = __nested_webpack_require_15019__(6); + var Node = __nested_webpack_require_15019__(7); + var parser_1 = __nested_webpack_require_15019__(8); + var token_1 = __nested_webpack_require_15019__(13); + var xhtml_entities_1 = __nested_webpack_require_15019__(14); + token_1.TokenName[100 /* Identifier */] = 'JSXIdentifier'; + token_1.TokenName[101 /* Text */] = 'JSXText'; + // Fully qualified element name, e.g. returns "svg:path" + function getQualifiedElementName(elementName) { + var qualifiedName; + switch (elementName.type) { + case jsx_syntax_1.JSXSyntax.JSXIdentifier: + var id = elementName; + qualifiedName = id.name; + break; + case jsx_syntax_1.JSXSyntax.JSXNamespacedName: + var ns = elementName; + qualifiedName = getQualifiedElementName(ns.namespace) + ':' + + getQualifiedElementName(ns.name); + break; + case jsx_syntax_1.JSXSyntax.JSXMemberExpression: + var expr = elementName; + qualifiedName = getQualifiedElementName(expr.object) + '.' + + getQualifiedElementName(expr.property); + break; + /* istanbul ignore next */ + default: + break; + } + return qualifiedName; + } + var JSXParser = (function (_super) { + __extends(JSXParser, _super); + function JSXParser(code, options, delegate) { + return _super.call(this, code, options, delegate) || this; + } + JSXParser.prototype.parsePrimaryExpression = function () { + return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this); + }; + JSXParser.prototype.startJSX = function () { + // Unwind the scanner before the lookahead token. + this.scanner.index = this.startMarker.index; + this.scanner.lineNumber = this.startMarker.line; + this.scanner.lineStart = this.startMarker.index - this.startMarker.column; + }; + JSXParser.prototype.finishJSX = function () { + // Prime the next lookahead. + this.nextToken(); + }; + JSXParser.prototype.reenterJSX = function () { + this.startJSX(); + this.expectJSX('}'); + // Pop the closing '}' added from the lookahead. + if (this.config.tokens) { + this.tokens.pop(); + } + }; + JSXParser.prototype.createJSXNode = function () { + this.collectComments(); + return { + index: this.scanner.index, + line: this.scanner.lineNumber, + column: this.scanner.index - this.scanner.lineStart + }; + }; + JSXParser.prototype.createJSXChildNode = function () { + return { + index: this.scanner.index, + line: this.scanner.lineNumber, + column: this.scanner.index - this.scanner.lineStart + }; + }; + JSXParser.prototype.scanXHTMLEntity = function (quote) { + var result = '&'; + var valid = true; + var terminated = false; + var numeric = false; + var hex = false; + while (!this.scanner.eof() && valid && !terminated) { + var ch = this.scanner.source[this.scanner.index]; + if (ch === quote) { + break; + } + terminated = (ch === ';'); + result += ch; + ++this.scanner.index; + if (!terminated) { + switch (result.length) { + case 2: + // e.g. '{' + numeric = (ch === '#'); + break; + case 3: + if (numeric) { + // e.g. 'A' + hex = (ch === 'x'); + valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0)); + numeric = numeric && !hex; + } + break; + default: + valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0))); + valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0))); + break; + } + } + } + if (valid && terminated && result.length > 2) { + // e.g. 'A' becomes just '#x41' + var str = result.substr(1, result.length - 2); + if (numeric && str.length > 1) { + result = String.fromCharCode(parseInt(str.substr(1), 10)); + } + else if (hex && str.length > 2) { + result = String.fromCharCode(parseInt('0' + str.substr(1), 16)); + } + else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) { + result = xhtml_entities_1.XHTMLEntities[str]; + } + } + return result; + }; + // Scan the next JSX token. This replaces Scanner#lex when in JSX mode. + JSXParser.prototype.lexJSX = function () { + var cp = this.scanner.source.charCodeAt(this.scanner.index); + // < > / : = { } + if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) { + var value = this.scanner.source[this.scanner.index++]; + return { + type: 7 /* Punctuator */, + value: value, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: this.scanner.index - 1, + end: this.scanner.index + }; + } + // " ' + if (cp === 34 || cp === 39) { + var start = this.scanner.index; + var quote = this.scanner.source[this.scanner.index++]; + var str = ''; + while (!this.scanner.eof()) { + var ch = this.scanner.source[this.scanner.index++]; + if (ch === quote) { + break; + } + else if (ch === '&') { + str += this.scanXHTMLEntity(quote); + } + else { + str += ch; + } + } + return { + type: 8 /* StringLiteral */, + value: str, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: start, + end: this.scanner.index + }; + } + // ... or . + if (cp === 46) { + var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1); + var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2); + var value = (n1 === 46 && n2 === 46) ? '...' : '.'; + var start = this.scanner.index; + this.scanner.index += value.length; + return { + type: 7 /* Punctuator */, + value: value, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: start, + end: this.scanner.index + }; + } + // ` + if (cp === 96) { + // Only placeholder, since it will be rescanned as a real assignment expression. + return { + type: 10 /* Template */, + value: '', + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: this.scanner.index, + end: this.scanner.index + }; + } + // Identifer can not contain backslash (char code 92). + if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) { + var start = this.scanner.index; + ++this.scanner.index; + while (!this.scanner.eof()) { + var ch = this.scanner.source.charCodeAt(this.scanner.index); + if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) { + ++this.scanner.index; + } + else if (ch === 45) { + // Hyphen (char code 45) can be part of an identifier. + ++this.scanner.index; + } + else { + break; + } + } + var id = this.scanner.source.slice(start, this.scanner.index); + return { + type: 100 /* Identifier */, + value: id, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: start, + end: this.scanner.index + }; + } + return this.scanner.lex(); + }; + JSXParser.prototype.nextJSXToken = function () { + this.collectComments(); + this.startMarker.index = this.scanner.index; + this.startMarker.line = this.scanner.lineNumber; + this.startMarker.column = this.scanner.index - this.scanner.lineStart; + var token = this.lexJSX(); + this.lastMarker.index = this.scanner.index; + this.lastMarker.line = this.scanner.lineNumber; + this.lastMarker.column = this.scanner.index - this.scanner.lineStart; + if (this.config.tokens) { + this.tokens.push(this.convertToken(token)); + } + return token; + }; + JSXParser.prototype.nextJSXText = function () { + this.startMarker.index = this.scanner.index; + this.startMarker.line = this.scanner.lineNumber; + this.startMarker.column = this.scanner.index - this.scanner.lineStart; + var start = this.scanner.index; + var text = ''; + while (!this.scanner.eof()) { + var ch = this.scanner.source[this.scanner.index]; + if (ch === '{' || ch === '<') { + break; + } + ++this.scanner.index; + text += ch; + if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) { + ++this.scanner.lineNumber; + if (ch === '\r' && this.scanner.source[this.scanner.index] === '\n') { + ++this.scanner.index; + } + this.scanner.lineStart = this.scanner.index; + } + } + this.lastMarker.index = this.scanner.index; + this.lastMarker.line = this.scanner.lineNumber; + this.lastMarker.column = this.scanner.index - this.scanner.lineStart; + var token = { + type: 101 /* Text */, + value: text, + lineNumber: this.scanner.lineNumber, + lineStart: this.scanner.lineStart, + start: start, + end: this.scanner.index + }; + if ((text.length > 0) && this.config.tokens) { + this.tokens.push(this.convertToken(token)); + } + return token; + }; + JSXParser.prototype.peekJSXToken = function () { + var state = this.scanner.saveState(); + this.scanner.scanComments(); + var next = this.lexJSX(); + this.scanner.restoreState(state); + return next; + }; + // Expect the next JSX token to match the specified punctuator. + // If not, an exception will be thrown. + JSXParser.prototype.expectJSX = function (value) { + var token = this.nextJSXToken(); + if (token.type !== 7 /* Punctuator */ || token.value !== value) { + this.throwUnexpectedToken(token); + } + }; + // Return true if the next JSX token matches the specified punctuator. + JSXParser.prototype.matchJSX = function (value) { + var next = this.peekJSXToken(); + return next.type === 7 /* Punctuator */ && next.value === value; + }; + JSXParser.prototype.parseJSXIdentifier = function () { + var node = this.createJSXNode(); + var token = this.nextJSXToken(); + if (token.type !== 100 /* Identifier */) { + this.throwUnexpectedToken(token); + } + return this.finalize(node, new JSXNode.JSXIdentifier(token.value)); + }; + JSXParser.prototype.parseJSXElementName = function () { + var node = this.createJSXNode(); + var elementName = this.parseJSXIdentifier(); + if (this.matchJSX(':')) { + var namespace = elementName; + this.expectJSX(':'); + var name_1 = this.parseJSXIdentifier(); + elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1)); + } + else if (this.matchJSX('.')) { + while (this.matchJSX('.')) { + var object = elementName; + this.expectJSX('.'); + var property = this.parseJSXIdentifier(); + elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property)); + } + } + return elementName; + }; + JSXParser.prototype.parseJSXAttributeName = function () { + var node = this.createJSXNode(); + var attributeName; + var identifier = this.parseJSXIdentifier(); + if (this.matchJSX(':')) { + var namespace = identifier; + this.expectJSX(':'); + var name_2 = this.parseJSXIdentifier(); + attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2)); + } + else { + attributeName = identifier; + } + return attributeName; + }; + JSXParser.prototype.parseJSXStringLiteralAttribute = function () { + var node = this.createJSXNode(); + var token = this.nextJSXToken(); + if (token.type !== 8 /* StringLiteral */) { + this.throwUnexpectedToken(token); + } + var raw = this.getTokenRaw(token); + return this.finalize(node, new Node.Literal(token.value, raw)); + }; + JSXParser.prototype.parseJSXExpressionAttribute = function () { + var node = this.createJSXNode(); + this.expectJSX('{'); + this.finishJSX(); + if (this.match('}')) { + this.tolerateError('JSX attributes must only be assigned a non-empty expression'); + } + var expression = this.parseAssignmentExpression(); + this.reenterJSX(); + return this.finalize(node, new JSXNode.JSXExpressionContainer(expression)); + }; + JSXParser.prototype.parseJSXAttributeValue = function () { + return this.matchJSX('{') ? this.parseJSXExpressionAttribute() : + this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute(); + }; + JSXParser.prototype.parseJSXNameValueAttribute = function () { + var node = this.createJSXNode(); + var name = this.parseJSXAttributeName(); + var value = null; + if (this.matchJSX('=')) { + this.expectJSX('='); + value = this.parseJSXAttributeValue(); + } + return this.finalize(node, new JSXNode.JSXAttribute(name, value)); + }; + JSXParser.prototype.parseJSXSpreadAttribute = function () { + var node = this.createJSXNode(); + this.expectJSX('{'); + this.expectJSX('...'); + this.finishJSX(); + var argument = this.parseAssignmentExpression(); + this.reenterJSX(); + return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument)); + }; + JSXParser.prototype.parseJSXAttributes = function () { + var attributes = []; + while (!this.matchJSX('/') && !this.matchJSX('>')) { + var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() : + this.parseJSXNameValueAttribute(); + attributes.push(attribute); + } + return attributes; + }; + JSXParser.prototype.parseJSXOpeningElement = function () { + var node = this.createJSXNode(); + this.expectJSX('<'); + var name = this.parseJSXElementName(); + var attributes = this.parseJSXAttributes(); + var selfClosing = this.matchJSX('/'); + if (selfClosing) { + this.expectJSX('/'); + } + this.expectJSX('>'); + return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes)); + }; + JSXParser.prototype.parseJSXBoundaryElement = function () { + var node = this.createJSXNode(); + this.expectJSX('<'); + if (this.matchJSX('/')) { + this.expectJSX('/'); + var name_3 = this.parseJSXElementName(); + this.expectJSX('>'); + return this.finalize(node, new JSXNode.JSXClosingElement(name_3)); + } + var name = this.parseJSXElementName(); + var attributes = this.parseJSXAttributes(); + var selfClosing = this.matchJSX('/'); + if (selfClosing) { + this.expectJSX('/'); + } + this.expectJSX('>'); + return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes)); + }; + JSXParser.prototype.parseJSXEmptyExpression = function () { + var node = this.createJSXChildNode(); + this.collectComments(); + this.lastMarker.index = this.scanner.index; + this.lastMarker.line = this.scanner.lineNumber; + this.lastMarker.column = this.scanner.index - this.scanner.lineStart; + return this.finalize(node, new JSXNode.JSXEmptyExpression()); + }; + JSXParser.prototype.parseJSXExpressionContainer = function () { + var node = this.createJSXNode(); + this.expectJSX('{'); + var expression; + if (this.matchJSX('}')) { + expression = this.parseJSXEmptyExpression(); + this.expectJSX('}'); + } + else { + this.finishJSX(); + expression = this.parseAssignmentExpression(); + this.reenterJSX(); + } + return this.finalize(node, new JSXNode.JSXExpressionContainer(expression)); + }; + JSXParser.prototype.parseJSXChildren = function () { + var children = []; + while (!this.scanner.eof()) { + var node = this.createJSXChildNode(); + var token = this.nextJSXText(); + if (token.start < token.end) { + var raw = this.getTokenRaw(token); + var child = this.finalize(node, new JSXNode.JSXText(token.value, raw)); + children.push(child); + } + if (this.scanner.source[this.scanner.index] === '{') { + var container = this.parseJSXExpressionContainer(); + children.push(container); + } + else { + break; + } + } + return children; + }; + JSXParser.prototype.parseComplexJSXElement = function (el) { + var stack = []; + while (!this.scanner.eof()) { + el.children = el.children.concat(this.parseJSXChildren()); + var node = this.createJSXChildNode(); + var element = this.parseJSXBoundaryElement(); + if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) { + var opening = element; + if (opening.selfClosing) { + var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null)); + el.children.push(child); + } + else { + stack.push(el); + el = { node: node, opening: opening, closing: null, children: [] }; + } + } + if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) { + el.closing = element; + var open_1 = getQualifiedElementName(el.opening.name); + var close_1 = getQualifiedElementName(el.closing.name); + if (open_1 !== close_1) { + this.tolerateError('Expected corresponding JSX closing tag for %0', open_1); + } + if (stack.length > 0) { + var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing)); + el = stack[stack.length - 1]; + el.children.push(child); + stack.pop(); + } + else { + break; + } + } + } + return el; + }; + JSXParser.prototype.parseJSXElement = function () { + var node = this.createJSXNode(); + var opening = this.parseJSXOpeningElement(); + var children = []; + var closing = null; + if (!opening.selfClosing) { + var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children }); + children = el.children; + closing = el.closing; + } + return this.finalize(node, new JSXNode.JSXElement(opening, children, closing)); + }; + JSXParser.prototype.parseJSXRoot = function () { + // Pop the opening '<' added from the lookahead. + if (this.config.tokens) { + this.tokens.pop(); + } + this.startJSX(); + var element = this.parseJSXElement(); + this.finishJSX(); + return element; + }; + JSXParser.prototype.isStartOfExpression = function () { + return _super.prototype.isStartOfExpression.call(this) || this.match('<'); + }; + return JSXParser; + }(parser_1.Parser)); + exports.JSXParser = JSXParser; + + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + // See also tools/generate-unicode-regex.js. + var Regex = { + // Unicode v8.0.0 NonAsciiIdentifierStart: + NonAsciiIdentifierStart: /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/, + // Unicode v8.0.0 NonAsciiIdentifierPart: + NonAsciiIdentifierPart: /[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/ + }; + exports.Character = { + /* tslint:disable:no-bitwise */ + fromCodePoint: function (cp) { + return (cp < 0x10000) ? String.fromCharCode(cp) : + String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) + + String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023)); + }, + // https://tc39.github.io/ecma262/#sec-white-space + isWhiteSpace: function (cp) { + return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) || + (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0); + }, + // https://tc39.github.io/ecma262/#sec-line-terminators + isLineTerminator: function (cp) { + return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029); + }, + // https://tc39.github.io/ecma262/#sec-names-and-keywords + isIdentifierStart: function (cp) { + return (cp === 0x24) || (cp === 0x5F) || + (cp >= 0x41 && cp <= 0x5A) || + (cp >= 0x61 && cp <= 0x7A) || + (cp === 0x5C) || + ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp))); + }, + isIdentifierPart: function (cp) { + return (cp === 0x24) || (cp === 0x5F) || + (cp >= 0x41 && cp <= 0x5A) || + (cp >= 0x61 && cp <= 0x7A) || + (cp >= 0x30 && cp <= 0x39) || + (cp === 0x5C) || + ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp))); + }, + // https://tc39.github.io/ecma262/#sec-literals-numeric-literals + isDecimalDigit: function (cp) { + return (cp >= 0x30 && cp <= 0x39); // 0..9 + }, + isHexDigit: function (cp) { + return (cp >= 0x30 && cp <= 0x39) || + (cp >= 0x41 && cp <= 0x46) || + (cp >= 0x61 && cp <= 0x66); // a..f + }, + isOctalDigit: function (cp) { + return (cp >= 0x30 && cp <= 0x37); // 0..7 + } + }; + + +/***/ }, +/* 5 */ +/***/ function(module, exports, __nested_webpack_require_54354__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var jsx_syntax_1 = __nested_webpack_require_54354__(6); + /* tslint:disable:max-classes-per-file */ + var JSXClosingElement = (function () { + function JSXClosingElement(name) { + this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement; + this.name = name; + } + return JSXClosingElement; + }()); + exports.JSXClosingElement = JSXClosingElement; + var JSXElement = (function () { + function JSXElement(openingElement, children, closingElement) { + this.type = jsx_syntax_1.JSXSyntax.JSXElement; + this.openingElement = openingElement; + this.children = children; + this.closingElement = closingElement; + } + return JSXElement; + }()); + exports.JSXElement = JSXElement; + var JSXEmptyExpression = (function () { + function JSXEmptyExpression() { + this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression; + } + return JSXEmptyExpression; + }()); + exports.JSXEmptyExpression = JSXEmptyExpression; + var JSXExpressionContainer = (function () { + function JSXExpressionContainer(expression) { + this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer; + this.expression = expression; + } + return JSXExpressionContainer; + }()); + exports.JSXExpressionContainer = JSXExpressionContainer; + var JSXIdentifier = (function () { + function JSXIdentifier(name) { + this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier; + this.name = name; + } + return JSXIdentifier; + }()); + exports.JSXIdentifier = JSXIdentifier; + var JSXMemberExpression = (function () { + function JSXMemberExpression(object, property) { + this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression; + this.object = object; + this.property = property; + } + return JSXMemberExpression; + }()); + exports.JSXMemberExpression = JSXMemberExpression; + var JSXAttribute = (function () { + function JSXAttribute(name, value) { + this.type = jsx_syntax_1.JSXSyntax.JSXAttribute; + this.name = name; + this.value = value; + } + return JSXAttribute; + }()); + exports.JSXAttribute = JSXAttribute; + var JSXNamespacedName = (function () { + function JSXNamespacedName(namespace, name) { + this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName; + this.namespace = namespace; + this.name = name; + } + return JSXNamespacedName; + }()); + exports.JSXNamespacedName = JSXNamespacedName; + var JSXOpeningElement = (function () { + function JSXOpeningElement(name, selfClosing, attributes) { + this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement; + this.name = name; + this.selfClosing = selfClosing; + this.attributes = attributes; + } + return JSXOpeningElement; + }()); + exports.JSXOpeningElement = JSXOpeningElement; + var JSXSpreadAttribute = (function () { + function JSXSpreadAttribute(argument) { + this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute; + this.argument = argument; + } + return JSXSpreadAttribute; + }()); + exports.JSXSpreadAttribute = JSXSpreadAttribute; + var JSXText = (function () { + function JSXText(value, raw) { + this.type = jsx_syntax_1.JSXSyntax.JSXText; + this.value = value; + this.raw = raw; + } + return JSXText; + }()); + exports.JSXText = JSXText; + + +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.JSXSyntax = { + JSXAttribute: 'JSXAttribute', + JSXClosingElement: 'JSXClosingElement', + JSXElement: 'JSXElement', + JSXEmptyExpression: 'JSXEmptyExpression', + JSXExpressionContainer: 'JSXExpressionContainer', + JSXIdentifier: 'JSXIdentifier', + JSXMemberExpression: 'JSXMemberExpression', + JSXNamespacedName: 'JSXNamespacedName', + JSXOpeningElement: 'JSXOpeningElement', + JSXSpreadAttribute: 'JSXSpreadAttribute', + JSXText: 'JSXText' + }; + + +/***/ }, +/* 7 */ +/***/ function(module, exports, __nested_webpack_require_58416__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var syntax_1 = __nested_webpack_require_58416__(2); + /* tslint:disable:max-classes-per-file */ + var ArrayExpression = (function () { + function ArrayExpression(elements) { + this.type = syntax_1.Syntax.ArrayExpression; + this.elements = elements; + } + return ArrayExpression; + }()); + exports.ArrayExpression = ArrayExpression; + var ArrayPattern = (function () { + function ArrayPattern(elements) { + this.type = syntax_1.Syntax.ArrayPattern; + this.elements = elements; + } + return ArrayPattern; + }()); + exports.ArrayPattern = ArrayPattern; + var ArrowFunctionExpression = (function () { + function ArrowFunctionExpression(params, body, expression) { + this.type = syntax_1.Syntax.ArrowFunctionExpression; + this.id = null; + this.params = params; + this.body = body; + this.generator = false; + this.expression = expression; + this.async = false; + } + return ArrowFunctionExpression; + }()); + exports.ArrowFunctionExpression = ArrowFunctionExpression; + var AssignmentExpression = (function () { + function AssignmentExpression(operator, left, right) { + this.type = syntax_1.Syntax.AssignmentExpression; + this.operator = operator; + this.left = left; + this.right = right; + } + return AssignmentExpression; + }()); + exports.AssignmentExpression = AssignmentExpression; + var AssignmentPattern = (function () { + function AssignmentPattern(left, right) { + this.type = syntax_1.Syntax.AssignmentPattern; + this.left = left; + this.right = right; + } + return AssignmentPattern; + }()); + exports.AssignmentPattern = AssignmentPattern; + var AsyncArrowFunctionExpression = (function () { + function AsyncArrowFunctionExpression(params, body, expression) { + this.type = syntax_1.Syntax.ArrowFunctionExpression; + this.id = null; + this.params = params; + this.body = body; + this.generator = false; + this.expression = expression; + this.async = true; + } + return AsyncArrowFunctionExpression; + }()); + exports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression; + var AsyncFunctionDeclaration = (function () { + function AsyncFunctionDeclaration(id, params, body) { + this.type = syntax_1.Syntax.FunctionDeclaration; + this.id = id; + this.params = params; + this.body = body; + this.generator = false; + this.expression = false; + this.async = true; + } + return AsyncFunctionDeclaration; + }()); + exports.AsyncFunctionDeclaration = AsyncFunctionDeclaration; + var AsyncFunctionExpression = (function () { + function AsyncFunctionExpression(id, params, body) { + this.type = syntax_1.Syntax.FunctionExpression; + this.id = id; + this.params = params; + this.body = body; + this.generator = false; + this.expression = false; + this.async = true; + } + return AsyncFunctionExpression; + }()); + exports.AsyncFunctionExpression = AsyncFunctionExpression; + var AwaitExpression = (function () { + function AwaitExpression(argument) { + this.type = syntax_1.Syntax.AwaitExpression; + this.argument = argument; + } + return AwaitExpression; + }()); + exports.AwaitExpression = AwaitExpression; + var BinaryExpression = (function () { + function BinaryExpression(operator, left, right) { + var logical = (operator === '||' || operator === '&&'); + this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression; + this.operator = operator; + this.left = left; + this.right = right; + } + return BinaryExpression; + }()); + exports.BinaryExpression = BinaryExpression; + var BlockStatement = (function () { + function BlockStatement(body) { + this.type = syntax_1.Syntax.BlockStatement; + this.body = body; + } + return BlockStatement; + }()); + exports.BlockStatement = BlockStatement; + var BreakStatement = (function () { + function BreakStatement(label) { + this.type = syntax_1.Syntax.BreakStatement; + this.label = label; + } + return BreakStatement; + }()); + exports.BreakStatement = BreakStatement; + var CallExpression = (function () { + function CallExpression(callee, args) { + this.type = syntax_1.Syntax.CallExpression; + this.callee = callee; + this.arguments = args; + } + return CallExpression; + }()); + exports.CallExpression = CallExpression; + var CatchClause = (function () { + function CatchClause(param, body) { + this.type = syntax_1.Syntax.CatchClause; + this.param = param; + this.body = body; + } + return CatchClause; + }()); + exports.CatchClause = CatchClause; + var ClassBody = (function () { + function ClassBody(body) { + this.type = syntax_1.Syntax.ClassBody; + this.body = body; + } + return ClassBody; + }()); + exports.ClassBody = ClassBody; + var ClassDeclaration = (function () { + function ClassDeclaration(id, superClass, body) { + this.type = syntax_1.Syntax.ClassDeclaration; + this.id = id; + this.superClass = superClass; + this.body = body; + } + return ClassDeclaration; + }()); + exports.ClassDeclaration = ClassDeclaration; + var ClassExpression = (function () { + function ClassExpression(id, superClass, body) { + this.type = syntax_1.Syntax.ClassExpression; + this.id = id; + this.superClass = superClass; + this.body = body; + } + return ClassExpression; + }()); + exports.ClassExpression = ClassExpression; + var ComputedMemberExpression = (function () { + function ComputedMemberExpression(object, property) { + this.type = syntax_1.Syntax.MemberExpression; + this.computed = true; + this.object = object; + this.property = property; + } + return ComputedMemberExpression; + }()); + exports.ComputedMemberExpression = ComputedMemberExpression; + var ConditionalExpression = (function () { + function ConditionalExpression(test, consequent, alternate) { + this.type = syntax_1.Syntax.ConditionalExpression; + this.test = test; + this.consequent = consequent; + this.alternate = alternate; + } + return ConditionalExpression; + }()); + exports.ConditionalExpression = ConditionalExpression; + var ContinueStatement = (function () { + function ContinueStatement(label) { + this.type = syntax_1.Syntax.ContinueStatement; + this.label = label; + } + return ContinueStatement; + }()); + exports.ContinueStatement = ContinueStatement; + var DebuggerStatement = (function () { + function DebuggerStatement() { + this.type = syntax_1.Syntax.DebuggerStatement; + } + return DebuggerStatement; + }()); + exports.DebuggerStatement = DebuggerStatement; + var Directive = (function () { + function Directive(expression, directive) { + this.type = syntax_1.Syntax.ExpressionStatement; + this.expression = expression; + this.directive = directive; + } + return Directive; + }()); + exports.Directive = Directive; + var DoWhileStatement = (function () { + function DoWhileStatement(body, test) { + this.type = syntax_1.Syntax.DoWhileStatement; + this.body = body; + this.test = test; + } + return DoWhileStatement; + }()); + exports.DoWhileStatement = DoWhileStatement; + var EmptyStatement = (function () { + function EmptyStatement() { + this.type = syntax_1.Syntax.EmptyStatement; + } + return EmptyStatement; + }()); + exports.EmptyStatement = EmptyStatement; + var ExportAllDeclaration = (function () { + function ExportAllDeclaration(source) { + this.type = syntax_1.Syntax.ExportAllDeclaration; + this.source = source; + } + return ExportAllDeclaration; + }()); + exports.ExportAllDeclaration = ExportAllDeclaration; + var ExportDefaultDeclaration = (function () { + function ExportDefaultDeclaration(declaration) { + this.type = syntax_1.Syntax.ExportDefaultDeclaration; + this.declaration = declaration; + } + return ExportDefaultDeclaration; + }()); + exports.ExportDefaultDeclaration = ExportDefaultDeclaration; + var ExportNamedDeclaration = (function () { + function ExportNamedDeclaration(declaration, specifiers, source) { + this.type = syntax_1.Syntax.ExportNamedDeclaration; + this.declaration = declaration; + this.specifiers = specifiers; + this.source = source; + } + return ExportNamedDeclaration; + }()); + exports.ExportNamedDeclaration = ExportNamedDeclaration; + var ExportSpecifier = (function () { + function ExportSpecifier(local, exported) { + this.type = syntax_1.Syntax.ExportSpecifier; + this.exported = exported; + this.local = local; + } + return ExportSpecifier; + }()); + exports.ExportSpecifier = ExportSpecifier; + var ExpressionStatement = (function () { + function ExpressionStatement(expression) { + this.type = syntax_1.Syntax.ExpressionStatement; + this.expression = expression; + } + return ExpressionStatement; + }()); + exports.ExpressionStatement = ExpressionStatement; + var ForInStatement = (function () { + function ForInStatement(left, right, body) { + this.type = syntax_1.Syntax.ForInStatement; + this.left = left; + this.right = right; + this.body = body; + this.each = false; + } + return ForInStatement; + }()); + exports.ForInStatement = ForInStatement; + var ForOfStatement = (function () { + function ForOfStatement(left, right, body) { + this.type = syntax_1.Syntax.ForOfStatement; + this.left = left; + this.right = right; + this.body = body; + } + return ForOfStatement; + }()); + exports.ForOfStatement = ForOfStatement; + var ForStatement = (function () { + function ForStatement(init, test, update, body) { + this.type = syntax_1.Syntax.ForStatement; + this.init = init; + this.test = test; + this.update = update; + this.body = body; + } + return ForStatement; + }()); + exports.ForStatement = ForStatement; + var FunctionDeclaration = (function () { + function FunctionDeclaration(id, params, body, generator) { + this.type = syntax_1.Syntax.FunctionDeclaration; + this.id = id; + this.params = params; + this.body = body; + this.generator = generator; + this.expression = false; + this.async = false; + } + return FunctionDeclaration; + }()); + exports.FunctionDeclaration = FunctionDeclaration; + var FunctionExpression = (function () { + function FunctionExpression(id, params, body, generator) { + this.type = syntax_1.Syntax.FunctionExpression; + this.id = id; + this.params = params; + this.body = body; + this.generator = generator; + this.expression = false; + this.async = false; + } + return FunctionExpression; + }()); + exports.FunctionExpression = FunctionExpression; + var Identifier = (function () { + function Identifier(name) { + this.type = syntax_1.Syntax.Identifier; + this.name = name; + } + return Identifier; + }()); + exports.Identifier = Identifier; + var IfStatement = (function () { + function IfStatement(test, consequent, alternate) { + this.type = syntax_1.Syntax.IfStatement; + this.test = test; + this.consequent = consequent; + this.alternate = alternate; + } + return IfStatement; + }()); + exports.IfStatement = IfStatement; + var ImportDeclaration = (function () { + function ImportDeclaration(specifiers, source) { + this.type = syntax_1.Syntax.ImportDeclaration; + this.specifiers = specifiers; + this.source = source; + } + return ImportDeclaration; + }()); + exports.ImportDeclaration = ImportDeclaration; + var ImportDefaultSpecifier = (function () { + function ImportDefaultSpecifier(local) { + this.type = syntax_1.Syntax.ImportDefaultSpecifier; + this.local = local; + } + return ImportDefaultSpecifier; + }()); + exports.ImportDefaultSpecifier = ImportDefaultSpecifier; + var ImportNamespaceSpecifier = (function () { + function ImportNamespaceSpecifier(local) { + this.type = syntax_1.Syntax.ImportNamespaceSpecifier; + this.local = local; + } + return ImportNamespaceSpecifier; + }()); + exports.ImportNamespaceSpecifier = ImportNamespaceSpecifier; + var ImportSpecifier = (function () { + function ImportSpecifier(local, imported) { + this.type = syntax_1.Syntax.ImportSpecifier; + this.local = local; + this.imported = imported; + } + return ImportSpecifier; + }()); + exports.ImportSpecifier = ImportSpecifier; + var LabeledStatement = (function () { + function LabeledStatement(label, body) { + this.type = syntax_1.Syntax.LabeledStatement; + this.label = label; + this.body = body; + } + return LabeledStatement; + }()); + exports.LabeledStatement = LabeledStatement; + var Literal = (function () { + function Literal(value, raw) { + this.type = syntax_1.Syntax.Literal; + this.value = value; + this.raw = raw; + } + return Literal; + }()); + exports.Literal = Literal; + var MetaProperty = (function () { + function MetaProperty(meta, property) { + this.type = syntax_1.Syntax.MetaProperty; + this.meta = meta; + this.property = property; + } + return MetaProperty; + }()); + exports.MetaProperty = MetaProperty; + var MethodDefinition = (function () { + function MethodDefinition(key, computed, value, kind, isStatic) { + this.type = syntax_1.Syntax.MethodDefinition; + this.key = key; + this.computed = computed; + this.value = value; + this.kind = kind; + this.static = isStatic; + } + return MethodDefinition; + }()); + exports.MethodDefinition = MethodDefinition; + var Module = (function () { + function Module(body) { + this.type = syntax_1.Syntax.Program; + this.body = body; + this.sourceType = 'module'; + } + return Module; + }()); + exports.Module = Module; + var NewExpression = (function () { + function NewExpression(callee, args) { + this.type = syntax_1.Syntax.NewExpression; + this.callee = callee; + this.arguments = args; + } + return NewExpression; + }()); + exports.NewExpression = NewExpression; + var ObjectExpression = (function () { + function ObjectExpression(properties) { + this.type = syntax_1.Syntax.ObjectExpression; + this.properties = properties; + } + return ObjectExpression; + }()); + exports.ObjectExpression = ObjectExpression; + var ObjectPattern = (function () { + function ObjectPattern(properties) { + this.type = syntax_1.Syntax.ObjectPattern; + this.properties = properties; + } + return ObjectPattern; + }()); + exports.ObjectPattern = ObjectPattern; + var Property = (function () { + function Property(kind, key, computed, value, method, shorthand) { + this.type = syntax_1.Syntax.Property; + this.key = key; + this.computed = computed; + this.value = value; + this.kind = kind; + this.method = method; + this.shorthand = shorthand; + } + return Property; + }()); + exports.Property = Property; + var RegexLiteral = (function () { + function RegexLiteral(value, raw, pattern, flags) { + this.type = syntax_1.Syntax.Literal; + this.value = value; + this.raw = raw; + this.regex = { pattern: pattern, flags: flags }; + } + return RegexLiteral; + }()); + exports.RegexLiteral = RegexLiteral; + var RestElement = (function () { + function RestElement(argument) { + this.type = syntax_1.Syntax.RestElement; + this.argument = argument; + } + return RestElement; + }()); + exports.RestElement = RestElement; + var ReturnStatement = (function () { + function ReturnStatement(argument) { + this.type = syntax_1.Syntax.ReturnStatement; + this.argument = argument; + } + return ReturnStatement; + }()); + exports.ReturnStatement = ReturnStatement; + var Script = (function () { + function Script(body) { + this.type = syntax_1.Syntax.Program; + this.body = body; + this.sourceType = 'script'; + } + return Script; + }()); + exports.Script = Script; + var SequenceExpression = (function () { + function SequenceExpression(expressions) { + this.type = syntax_1.Syntax.SequenceExpression; + this.expressions = expressions; + } + return SequenceExpression; + }()); + exports.SequenceExpression = SequenceExpression; + var SpreadElement = (function () { + function SpreadElement(argument) { + this.type = syntax_1.Syntax.SpreadElement; + this.argument = argument; + } + return SpreadElement; + }()); + exports.SpreadElement = SpreadElement; + var StaticMemberExpression = (function () { + function StaticMemberExpression(object, property) { + this.type = syntax_1.Syntax.MemberExpression; + this.computed = false; + this.object = object; + this.property = property; + } + return StaticMemberExpression; + }()); + exports.StaticMemberExpression = StaticMemberExpression; + var Super = (function () { + function Super() { + this.type = syntax_1.Syntax.Super; + } + return Super; + }()); + exports.Super = Super; + var SwitchCase = (function () { + function SwitchCase(test, consequent) { + this.type = syntax_1.Syntax.SwitchCase; + this.test = test; + this.consequent = consequent; + } + return SwitchCase; + }()); + exports.SwitchCase = SwitchCase; + var SwitchStatement = (function () { + function SwitchStatement(discriminant, cases) { + this.type = syntax_1.Syntax.SwitchStatement; + this.discriminant = discriminant; + this.cases = cases; + } + return SwitchStatement; + }()); + exports.SwitchStatement = SwitchStatement; + var TaggedTemplateExpression = (function () { + function TaggedTemplateExpression(tag, quasi) { + this.type = syntax_1.Syntax.TaggedTemplateExpression; + this.tag = tag; + this.quasi = quasi; + } + return TaggedTemplateExpression; + }()); + exports.TaggedTemplateExpression = TaggedTemplateExpression; + var TemplateElement = (function () { + function TemplateElement(value, tail) { + this.type = syntax_1.Syntax.TemplateElement; + this.value = value; + this.tail = tail; + } + return TemplateElement; + }()); + exports.TemplateElement = TemplateElement; + var TemplateLiteral = (function () { + function TemplateLiteral(quasis, expressions) { + this.type = syntax_1.Syntax.TemplateLiteral; + this.quasis = quasis; + this.expressions = expressions; + } + return TemplateLiteral; + }()); + exports.TemplateLiteral = TemplateLiteral; + var ThisExpression = (function () { + function ThisExpression() { + this.type = syntax_1.Syntax.ThisExpression; + } + return ThisExpression; + }()); + exports.ThisExpression = ThisExpression; + var ThrowStatement = (function () { + function ThrowStatement(argument) { + this.type = syntax_1.Syntax.ThrowStatement; + this.argument = argument; + } + return ThrowStatement; + }()); + exports.ThrowStatement = ThrowStatement; + var TryStatement = (function () { + function TryStatement(block, handler, finalizer) { + this.type = syntax_1.Syntax.TryStatement; + this.block = block; + this.handler = handler; + this.finalizer = finalizer; + } + return TryStatement; + }()); + exports.TryStatement = TryStatement; + var UnaryExpression = (function () { + function UnaryExpression(operator, argument) { + this.type = syntax_1.Syntax.UnaryExpression; + this.operator = operator; + this.argument = argument; + this.prefix = true; + } + return UnaryExpression; + }()); + exports.UnaryExpression = UnaryExpression; + var UpdateExpression = (function () { + function UpdateExpression(operator, argument, prefix) { + this.type = syntax_1.Syntax.UpdateExpression; + this.operator = operator; + this.argument = argument; + this.prefix = prefix; + } + return UpdateExpression; + }()); + exports.UpdateExpression = UpdateExpression; + var VariableDeclaration = (function () { + function VariableDeclaration(declarations, kind) { + this.type = syntax_1.Syntax.VariableDeclaration; + this.declarations = declarations; + this.kind = kind; + } + return VariableDeclaration; + }()); + exports.VariableDeclaration = VariableDeclaration; + var VariableDeclarator = (function () { + function VariableDeclarator(id, init) { + this.type = syntax_1.Syntax.VariableDeclarator; + this.id = id; + this.init = init; + } + return VariableDeclarator; + }()); + exports.VariableDeclarator = VariableDeclarator; + var WhileStatement = (function () { + function WhileStatement(test, body) { + this.type = syntax_1.Syntax.WhileStatement; + this.test = test; + this.body = body; + } + return WhileStatement; + }()); + exports.WhileStatement = WhileStatement; + var WithStatement = (function () { + function WithStatement(object, body) { + this.type = syntax_1.Syntax.WithStatement; + this.object = object; + this.body = body; + } + return WithStatement; + }()); + exports.WithStatement = WithStatement; + var YieldExpression = (function () { + function YieldExpression(argument, delegate) { + this.type = syntax_1.Syntax.YieldExpression; + this.argument = argument; + this.delegate = delegate; + } + return YieldExpression; + }()); + exports.YieldExpression = YieldExpression; + + +/***/ }, +/* 8 */ +/***/ function(module, exports, __nested_webpack_require_80491__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var assert_1 = __nested_webpack_require_80491__(9); + var error_handler_1 = __nested_webpack_require_80491__(10); + var messages_1 = __nested_webpack_require_80491__(11); + var Node = __nested_webpack_require_80491__(7); + var scanner_1 = __nested_webpack_require_80491__(12); + var syntax_1 = __nested_webpack_require_80491__(2); + var token_1 = __nested_webpack_require_80491__(13); + var ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder'; + var Parser = (function () { + function Parser(code, options, delegate) { + if (options === void 0) { options = {}; } + this.config = { + range: (typeof options.range === 'boolean') && options.range, + loc: (typeof options.loc === 'boolean') && options.loc, + source: null, + tokens: (typeof options.tokens === 'boolean') && options.tokens, + comment: (typeof options.comment === 'boolean') && options.comment, + tolerant: (typeof options.tolerant === 'boolean') && options.tolerant + }; + if (this.config.loc && options.source && options.source !== null) { + this.config.source = String(options.source); + } + this.delegate = delegate; + this.errorHandler = new error_handler_1.ErrorHandler(); + this.errorHandler.tolerant = this.config.tolerant; + this.scanner = new scanner_1.Scanner(code, this.errorHandler); + this.scanner.trackComment = this.config.comment; + this.operatorPrecedence = { + ')': 0, + ';': 0, + ',': 0, + '=': 0, + ']': 0, + '||': 1, + '&&': 2, + '|': 3, + '^': 4, + '&': 5, + '==': 6, + '!=': 6, + '===': 6, + '!==': 6, + '<': 7, + '>': 7, + '<=': 7, + '>=': 7, + '<<': 8, + '>>': 8, + '>>>': 8, + '+': 9, + '-': 9, + '*': 11, + '/': 11, + '%': 11 + }; + this.lookahead = { + type: 2 /* EOF */, + value: '', + lineNumber: this.scanner.lineNumber, + lineStart: 0, + start: 0, + end: 0 + }; + this.hasLineTerminator = false; + this.context = { + isModule: false, + await: false, + allowIn: true, + allowStrictDirective: true, + allowYield: true, + firstCoverInitializedNameError: null, + isAssignmentTarget: false, + isBindingElement: false, + inFunctionBody: false, + inIteration: false, + inSwitch: false, + labelSet: {}, + strict: false + }; + this.tokens = []; + this.startMarker = { + index: 0, + line: this.scanner.lineNumber, + column: 0 + }; + this.lastMarker = { + index: 0, + line: this.scanner.lineNumber, + column: 0 + }; + this.nextToken(); + this.lastMarker = { + index: this.scanner.index, + line: this.scanner.lineNumber, + column: this.scanner.index - this.scanner.lineStart + }; + } + Parser.prototype.throwError = function (messageFormat) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + var args = Array.prototype.slice.call(arguments, 1); + var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) { + assert_1.assert(idx < args.length, 'Message reference must be in range'); + return args[idx]; + }); + var index = this.lastMarker.index; + var line = this.lastMarker.line; + var column = this.lastMarker.column + 1; + throw this.errorHandler.createError(index, line, column, msg); + }; + Parser.prototype.tolerateError = function (messageFormat) { + var values = []; + for (var _i = 1; _i < arguments.length; _i++) { + values[_i - 1] = arguments[_i]; + } + var args = Array.prototype.slice.call(arguments, 1); + var msg = messageFormat.replace(/%(\d)/g, function (whole, idx) { + assert_1.assert(idx < args.length, 'Message reference must be in range'); + return args[idx]; + }); + var index = this.lastMarker.index; + var line = this.scanner.lineNumber; + var column = this.lastMarker.column + 1; + this.errorHandler.tolerateError(index, line, column, msg); + }; + // Throw an exception because of the token. + Parser.prototype.unexpectedTokenError = function (token, message) { + var msg = message || messages_1.Messages.UnexpectedToken; + var value; + if (token) { + if (!message) { + msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS : + (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier : + (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber : + (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString : + (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate : + messages_1.Messages.UnexpectedToken; + if (token.type === 4 /* Keyword */) { + if (this.scanner.isFutureReservedWord(token.value)) { + msg = messages_1.Messages.UnexpectedReserved; + } + else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) { + msg = messages_1.Messages.StrictReservedWord; + } + } + } + value = token.value; + } + else { + value = 'ILLEGAL'; + } + msg = msg.replace('%0', value); + if (token && typeof token.lineNumber === 'number') { + var index = token.start; + var line = token.lineNumber; + var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column; + var column = token.start - lastMarkerLineStart + 1; + return this.errorHandler.createError(index, line, column, msg); + } + else { + var index = this.lastMarker.index; + var line = this.lastMarker.line; + var column = this.lastMarker.column + 1; + return this.errorHandler.createError(index, line, column, msg); + } + }; + Parser.prototype.throwUnexpectedToken = function (token, message) { + throw this.unexpectedTokenError(token, message); + }; + Parser.prototype.tolerateUnexpectedToken = function (token, message) { + this.errorHandler.tolerate(this.unexpectedTokenError(token, message)); + }; + Parser.prototype.collectComments = function () { + if (!this.config.comment) { + this.scanner.scanComments(); + } + else { + var comments = this.scanner.scanComments(); + if (comments.length > 0 && this.delegate) { + for (var i = 0; i < comments.length; ++i) { + var e = comments[i]; + var node = void 0; + node = { + type: e.multiLine ? 'BlockComment' : 'LineComment', + value: this.scanner.source.slice(e.slice[0], e.slice[1]) + }; + if (this.config.range) { + node.range = e.range; + } + if (this.config.loc) { + node.loc = e.loc; + } + var metadata = { + start: { + line: e.loc.start.line, + column: e.loc.start.column, + offset: e.range[0] + }, + end: { + line: e.loc.end.line, + column: e.loc.end.column, + offset: e.range[1] + } + }; + this.delegate(node, metadata); + } + } + } + }; + // From internal representation to an external structure + Parser.prototype.getTokenRaw = function (token) { + return this.scanner.source.slice(token.start, token.end); + }; + Parser.prototype.convertToken = function (token) { + var t = { + type: token_1.TokenName[token.type], + value: this.getTokenRaw(token) + }; + if (this.config.range) { + t.range = [token.start, token.end]; + } + if (this.config.loc) { + t.loc = { + start: { + line: this.startMarker.line, + column: this.startMarker.column + }, + end: { + line: this.scanner.lineNumber, + column: this.scanner.index - this.scanner.lineStart + } + }; + } + if (token.type === 9 /* RegularExpression */) { + var pattern = token.pattern; + var flags = token.flags; + t.regex = { pattern: pattern, flags: flags }; + } + return t; + }; + Parser.prototype.nextToken = function () { + var token = this.lookahead; + this.lastMarker.index = this.scanner.index; + this.lastMarker.line = this.scanner.lineNumber; + this.lastMarker.column = this.scanner.index - this.scanner.lineStart; + this.collectComments(); + if (this.scanner.index !== this.startMarker.index) { + this.startMarker.index = this.scanner.index; + this.startMarker.line = this.scanner.lineNumber; + this.startMarker.column = this.scanner.index - this.scanner.lineStart; + } + var next = this.scanner.lex(); + this.hasLineTerminator = (token.lineNumber !== next.lineNumber); + if (next && this.context.strict && next.type === 3 /* Identifier */) { + if (this.scanner.isStrictModeReservedWord(next.value)) { + next.type = 4 /* Keyword */; + } + } + this.lookahead = next; + if (this.config.tokens && next.type !== 2 /* EOF */) { + this.tokens.push(this.convertToken(next)); + } + return token; + }; + Parser.prototype.nextRegexToken = function () { + this.collectComments(); + var token = this.scanner.scanRegExp(); + if (this.config.tokens) { + // Pop the previous token, '/' or '/=' + // This is added from the lookahead token. + this.tokens.pop(); + this.tokens.push(this.convertToken(token)); + } + // Prime the next lookahead. + this.lookahead = token; + this.nextToken(); + return token; + }; + Parser.prototype.createNode = function () { + return { + index: this.startMarker.index, + line: this.startMarker.line, + column: this.startMarker.column + }; + }; + Parser.prototype.startNode = function (token, lastLineStart) { + if (lastLineStart === void 0) { lastLineStart = 0; } + var column = token.start - token.lineStart; + var line = token.lineNumber; + if (column < 0) { + column += lastLineStart; + line--; + } + return { + index: token.start, + line: line, + column: column + }; + }; + Parser.prototype.finalize = function (marker, node) { + if (this.config.range) { + node.range = [marker.index, this.lastMarker.index]; + } + if (this.config.loc) { + node.loc = { + start: { + line: marker.line, + column: marker.column, + }, + end: { + line: this.lastMarker.line, + column: this.lastMarker.column + } + }; + if (this.config.source) { + node.loc.source = this.config.source; + } + } + if (this.delegate) { + var metadata = { + start: { + line: marker.line, + column: marker.column, + offset: marker.index + }, + end: { + line: this.lastMarker.line, + column: this.lastMarker.column, + offset: this.lastMarker.index + } + }; + this.delegate(node, metadata); + } + return node; + }; + // Expect the next token to match the specified punctuator. + // If not, an exception will be thrown. + Parser.prototype.expect = function (value) { + var token = this.nextToken(); + if (token.type !== 7 /* Punctuator */ || token.value !== value) { + this.throwUnexpectedToken(token); + } + }; + // Quietly expect a comma when in tolerant mode, otherwise delegates to expect(). + Parser.prototype.expectCommaSeparator = function () { + if (this.config.tolerant) { + var token = this.lookahead; + if (token.type === 7 /* Punctuator */ && token.value === ',') { + this.nextToken(); + } + else if (token.type === 7 /* Punctuator */ && token.value === ';') { + this.nextToken(); + this.tolerateUnexpectedToken(token); + } + else { + this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken); + } + } + else { + this.expect(','); + } + }; + // Expect the next token to match the specified keyword. + // If not, an exception will be thrown. + Parser.prototype.expectKeyword = function (keyword) { + var token = this.nextToken(); + if (token.type !== 4 /* Keyword */ || token.value !== keyword) { + this.throwUnexpectedToken(token); + } + }; + // Return true if the next token matches the specified punctuator. + Parser.prototype.match = function (value) { + return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value; + }; + // Return true if the next token matches the specified keyword + Parser.prototype.matchKeyword = function (keyword) { + return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword; + }; + // Return true if the next token matches the specified contextual keyword + // (where an identifier is sometimes a keyword depending on the context) + Parser.prototype.matchContextualKeyword = function (keyword) { + return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword; + }; + // Return true if the next token is an assignment operator + Parser.prototype.matchAssign = function () { + if (this.lookahead.type !== 7 /* Punctuator */) { + return false; + } + var op = this.lookahead.value; + return op === '=' || + op === '*=' || + op === '**=' || + op === '/=' || + op === '%=' || + op === '+=' || + op === '-=' || + op === '<<=' || + op === '>>=' || + op === '>>>=' || + op === '&=' || + op === '^=' || + op === '|='; + }; + // Cover grammar support. + // + // When an assignment expression position starts with an left parenthesis, the determination of the type + // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead) + // or the first comma. This situation also defers the determination of all the expressions nested in the pair. + // + // There are three productions that can be parsed in a parentheses pair that needs to be determined + // after the outermost pair is closed. They are: + // + // 1. AssignmentExpression + // 2. BindingElements + // 3. AssignmentTargets + // + // In order to avoid exponential backtracking, we use two flags to denote if the production can be + // binding element or assignment target. + // + // The three productions have the relationship: + // + // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression + // + // with a single exception that CoverInitializedName when used directly in an Expression, generates + // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the + // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair. + // + // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not + // effect the current flags. This means the production the parser parses is only used as an expression. Therefore + // the CoverInitializedName check is conducted. + // + // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates + // the flags outside of the parser. This means the production the parser parses is used as a part of a potential + // pattern. The CoverInitializedName check is deferred. + Parser.prototype.isolateCoverGrammar = function (parseFunction) { + var previousIsBindingElement = this.context.isBindingElement; + var previousIsAssignmentTarget = this.context.isAssignmentTarget; + var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError; + this.context.isBindingElement = true; + this.context.isAssignmentTarget = true; + this.context.firstCoverInitializedNameError = null; + var result = parseFunction.call(this); + if (this.context.firstCoverInitializedNameError !== null) { + this.throwUnexpectedToken(this.context.firstCoverInitializedNameError); + } + this.context.isBindingElement = previousIsBindingElement; + this.context.isAssignmentTarget = previousIsAssignmentTarget; + this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError; + return result; + }; + Parser.prototype.inheritCoverGrammar = function (parseFunction) { + var previousIsBindingElement = this.context.isBindingElement; + var previousIsAssignmentTarget = this.context.isAssignmentTarget; + var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError; + this.context.isBindingElement = true; + this.context.isAssignmentTarget = true; + this.context.firstCoverInitializedNameError = null; + var result = parseFunction.call(this); + this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement; + this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget; + this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError; + return result; + }; + Parser.prototype.consumeSemicolon = function () { + if (this.match(';')) { + this.nextToken(); + } + else if (!this.hasLineTerminator) { + if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) { + this.throwUnexpectedToken(this.lookahead); + } + this.lastMarker.index = this.startMarker.index; + this.lastMarker.line = this.startMarker.line; + this.lastMarker.column = this.startMarker.column; + } + }; + // https://tc39.github.io/ecma262/#sec-primary-expression + Parser.prototype.parsePrimaryExpression = function () { + var node = this.createNode(); + var expr; + var token, raw; + switch (this.lookahead.type) { + case 3 /* Identifier */: + if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') { + this.tolerateUnexpectedToken(this.lookahead); + } + expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value)); + break; + case 6 /* NumericLiteral */: + case 8 /* StringLiteral */: + if (this.context.strict && this.lookahead.octal) { + this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral); + } + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + token = this.nextToken(); + raw = this.getTokenRaw(token); + expr = this.finalize(node, new Node.Literal(token.value, raw)); + break; + case 1 /* BooleanLiteral */: + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + token = this.nextToken(); + raw = this.getTokenRaw(token); + expr = this.finalize(node, new Node.Literal(token.value === 'true', raw)); + break; + case 5 /* NullLiteral */: + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + token = this.nextToken(); + raw = this.getTokenRaw(token); + expr = this.finalize(node, new Node.Literal(null, raw)); + break; + case 10 /* Template */: + expr = this.parseTemplateLiteral(); + break; + case 7 /* Punctuator */: + switch (this.lookahead.value) { + case '(': + this.context.isBindingElement = false; + expr = this.inheritCoverGrammar(this.parseGroupExpression); + break; + case '[': + expr = this.inheritCoverGrammar(this.parseArrayInitializer); + break; + case '{': + expr = this.inheritCoverGrammar(this.parseObjectInitializer); + break; + case '/': + case '/=': + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + this.scanner.index = this.startMarker.index; + token = this.nextRegexToken(); + raw = this.getTokenRaw(token); + expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags)); + break; + default: + expr = this.throwUnexpectedToken(this.nextToken()); + } + break; + case 4 /* Keyword */: + if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) { + expr = this.parseIdentifierName(); + } + else if (!this.context.strict && this.matchKeyword('let')) { + expr = this.finalize(node, new Node.Identifier(this.nextToken().value)); + } + else { + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + if (this.matchKeyword('function')) { + expr = this.parseFunctionExpression(); + } + else if (this.matchKeyword('this')) { + this.nextToken(); + expr = this.finalize(node, new Node.ThisExpression()); + } + else if (this.matchKeyword('class')) { + expr = this.parseClassExpression(); + } + else { + expr = this.throwUnexpectedToken(this.nextToken()); + } + } + break; + default: + expr = this.throwUnexpectedToken(this.nextToken()); + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-array-initializer + Parser.prototype.parseSpreadElement = function () { + var node = this.createNode(); + this.expect('...'); + var arg = this.inheritCoverGrammar(this.parseAssignmentExpression); + return this.finalize(node, new Node.SpreadElement(arg)); + }; + Parser.prototype.parseArrayInitializer = function () { + var node = this.createNode(); + var elements = []; + this.expect('['); + while (!this.match(']')) { + if (this.match(',')) { + this.nextToken(); + elements.push(null); + } + else if (this.match('...')) { + var element = this.parseSpreadElement(); + if (!this.match(']')) { + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + this.expect(','); + } + elements.push(element); + } + else { + elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression)); + if (!this.match(']')) { + this.expect(','); + } + } + } + this.expect(']'); + return this.finalize(node, new Node.ArrayExpression(elements)); + }; + // https://tc39.github.io/ecma262/#sec-object-initializer + Parser.prototype.parsePropertyMethod = function (params) { + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var previousStrict = this.context.strict; + var previousAllowStrictDirective = this.context.allowStrictDirective; + this.context.allowStrictDirective = params.simple; + var body = this.isolateCoverGrammar(this.parseFunctionSourceElements); + if (this.context.strict && params.firstRestricted) { + this.tolerateUnexpectedToken(params.firstRestricted, params.message); + } + if (this.context.strict && params.stricted) { + this.tolerateUnexpectedToken(params.stricted, params.message); + } + this.context.strict = previousStrict; + this.context.allowStrictDirective = previousAllowStrictDirective; + return body; + }; + Parser.prototype.parsePropertyMethodFunction = function () { + var isGenerator = false; + var node = this.createNode(); + var previousAllowYield = this.context.allowYield; + this.context.allowYield = true; + var params = this.parseFormalParameters(); + var method = this.parsePropertyMethod(params); + this.context.allowYield = previousAllowYield; + return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator)); + }; + Parser.prototype.parsePropertyMethodAsyncFunction = function () { + var node = this.createNode(); + var previousAllowYield = this.context.allowYield; + var previousAwait = this.context.await; + this.context.allowYield = false; + this.context.await = true; + var params = this.parseFormalParameters(); + var method = this.parsePropertyMethod(params); + this.context.allowYield = previousAllowYield; + this.context.await = previousAwait; + return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method)); + }; + Parser.prototype.parseObjectPropertyKey = function () { + var node = this.createNode(); + var token = this.nextToken(); + var key; + switch (token.type) { + case 8 /* StringLiteral */: + case 6 /* NumericLiteral */: + if (this.context.strict && token.octal) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral); + } + var raw = this.getTokenRaw(token); + key = this.finalize(node, new Node.Literal(token.value, raw)); + break; + case 3 /* Identifier */: + case 1 /* BooleanLiteral */: + case 5 /* NullLiteral */: + case 4 /* Keyword */: + key = this.finalize(node, new Node.Identifier(token.value)); + break; + case 7 /* Punctuator */: + if (token.value === '[') { + key = this.isolateCoverGrammar(this.parseAssignmentExpression); + this.expect(']'); + } + else { + key = this.throwUnexpectedToken(token); + } + break; + default: + key = this.throwUnexpectedToken(token); + } + return key; + }; + Parser.prototype.isPropertyKey = function (key, value) { + return (key.type === syntax_1.Syntax.Identifier && key.name === value) || + (key.type === syntax_1.Syntax.Literal && key.value === value); + }; + Parser.prototype.parseObjectProperty = function (hasProto) { + var node = this.createNode(); + var token = this.lookahead; + var kind; + var key = null; + var value = null; + var computed = false; + var method = false; + var shorthand = false; + var isAsync = false; + if (token.type === 3 /* Identifier */) { + var id = token.value; + this.nextToken(); + computed = this.match('['); + isAsync = !this.hasLineTerminator && (id === 'async') && + !this.match(':') && !this.match('(') && !this.match('*') && !this.match(','); + key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id)); + } + else if (this.match('*')) { + this.nextToken(); + } + else { + computed = this.match('['); + key = this.parseObjectPropertyKey(); + } + var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead); + if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) { + kind = 'get'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + this.context.allowYield = false; + value = this.parseGetterMethod(); + } + else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) { + kind = 'set'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + value = this.parseSetterMethod(); + } + else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) { + kind = 'init'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + value = this.parseGeneratorMethod(); + method = true; + } + else { + if (!key) { + this.throwUnexpectedToken(this.lookahead); + } + kind = 'init'; + if (this.match(':') && !isAsync) { + if (!computed && this.isPropertyKey(key, '__proto__')) { + if (hasProto.value) { + this.tolerateError(messages_1.Messages.DuplicateProtoProperty); + } + hasProto.value = true; + } + this.nextToken(); + value = this.inheritCoverGrammar(this.parseAssignmentExpression); + } + else if (this.match('(')) { + value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction(); + method = true; + } + else if (token.type === 3 /* Identifier */) { + var id = this.finalize(node, new Node.Identifier(token.value)); + if (this.match('=')) { + this.context.firstCoverInitializedNameError = this.lookahead; + this.nextToken(); + shorthand = true; + var init = this.isolateCoverGrammar(this.parseAssignmentExpression); + value = this.finalize(node, new Node.AssignmentPattern(id, init)); + } + else { + shorthand = true; + value = id; + } + } + else { + this.throwUnexpectedToken(this.nextToken()); + } + } + return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand)); + }; + Parser.prototype.parseObjectInitializer = function () { + var node = this.createNode(); + this.expect('{'); + var properties = []; + var hasProto = { value: false }; + while (!this.match('}')) { + properties.push(this.parseObjectProperty(hasProto)); + if (!this.match('}')) { + this.expectCommaSeparator(); + } + } + this.expect('}'); + return this.finalize(node, new Node.ObjectExpression(properties)); + }; + // https://tc39.github.io/ecma262/#sec-template-literals + Parser.prototype.parseTemplateHead = function () { + assert_1.assert(this.lookahead.head, 'Template literal must start with a template head'); + var node = this.createNode(); + var token = this.nextToken(); + var raw = token.value; + var cooked = token.cooked; + return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail)); + }; + Parser.prototype.parseTemplateElement = function () { + if (this.lookahead.type !== 10 /* Template */) { + this.throwUnexpectedToken(); + } + var node = this.createNode(); + var token = this.nextToken(); + var raw = token.value; + var cooked = token.cooked; + return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail)); + }; + Parser.prototype.parseTemplateLiteral = function () { + var node = this.createNode(); + var expressions = []; + var quasis = []; + var quasi = this.parseTemplateHead(); + quasis.push(quasi); + while (!quasi.tail) { + expressions.push(this.parseExpression()); + quasi = this.parseTemplateElement(); + quasis.push(quasi); + } + return this.finalize(node, new Node.TemplateLiteral(quasis, expressions)); + }; + // https://tc39.github.io/ecma262/#sec-grouping-operator + Parser.prototype.reinterpretExpressionAsPattern = function (expr) { + switch (expr.type) { + case syntax_1.Syntax.Identifier: + case syntax_1.Syntax.MemberExpression: + case syntax_1.Syntax.RestElement: + case syntax_1.Syntax.AssignmentPattern: + break; + case syntax_1.Syntax.SpreadElement: + expr.type = syntax_1.Syntax.RestElement; + this.reinterpretExpressionAsPattern(expr.argument); + break; + case syntax_1.Syntax.ArrayExpression: + expr.type = syntax_1.Syntax.ArrayPattern; + for (var i = 0; i < expr.elements.length; i++) { + if (expr.elements[i] !== null) { + this.reinterpretExpressionAsPattern(expr.elements[i]); + } + } + break; + case syntax_1.Syntax.ObjectExpression: + expr.type = syntax_1.Syntax.ObjectPattern; + for (var i = 0; i < expr.properties.length; i++) { + this.reinterpretExpressionAsPattern(expr.properties[i].value); + } + break; + case syntax_1.Syntax.AssignmentExpression: + expr.type = syntax_1.Syntax.AssignmentPattern; + delete expr.operator; + this.reinterpretExpressionAsPattern(expr.left); + break; + default: + // Allow other node type for tolerant parsing. + break; + } + }; + Parser.prototype.parseGroupExpression = function () { + var expr; + this.expect('('); + if (this.match(')')) { + this.nextToken(); + if (!this.match('=>')) { + this.expect('=>'); + } + expr = { + type: ArrowParameterPlaceHolder, + params: [], + async: false + }; + } + else { + var startToken = this.lookahead; + var params = []; + if (this.match('...')) { + expr = this.parseRestElement(params); + this.expect(')'); + if (!this.match('=>')) { + this.expect('=>'); + } + expr = { + type: ArrowParameterPlaceHolder, + params: [expr], + async: false + }; + } + else { + var arrow = false; + this.context.isBindingElement = true; + expr = this.inheritCoverGrammar(this.parseAssignmentExpression); + if (this.match(',')) { + var expressions = []; + this.context.isAssignmentTarget = false; + expressions.push(expr); + while (this.lookahead.type !== 2 /* EOF */) { + if (!this.match(',')) { + break; + } + this.nextToken(); + if (this.match(')')) { + this.nextToken(); + for (var i = 0; i < expressions.length; i++) { + this.reinterpretExpressionAsPattern(expressions[i]); + } + arrow = true; + expr = { + type: ArrowParameterPlaceHolder, + params: expressions, + async: false + }; + } + else if (this.match('...')) { + if (!this.context.isBindingElement) { + this.throwUnexpectedToken(this.lookahead); + } + expressions.push(this.parseRestElement(params)); + this.expect(')'); + if (!this.match('=>')) { + this.expect('=>'); + } + this.context.isBindingElement = false; + for (var i = 0; i < expressions.length; i++) { + this.reinterpretExpressionAsPattern(expressions[i]); + } + arrow = true; + expr = { + type: ArrowParameterPlaceHolder, + params: expressions, + async: false + }; + } + else { + expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression)); + } + if (arrow) { + break; + } + } + if (!arrow) { + expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions)); + } + } + if (!arrow) { + this.expect(')'); + if (this.match('=>')) { + if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') { + arrow = true; + expr = { + type: ArrowParameterPlaceHolder, + params: [expr], + async: false + }; + } + if (!arrow) { + if (!this.context.isBindingElement) { + this.throwUnexpectedToken(this.lookahead); + } + if (expr.type === syntax_1.Syntax.SequenceExpression) { + for (var i = 0; i < expr.expressions.length; i++) { + this.reinterpretExpressionAsPattern(expr.expressions[i]); + } + } + else { + this.reinterpretExpressionAsPattern(expr); + } + var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]); + expr = { + type: ArrowParameterPlaceHolder, + params: parameters, + async: false + }; + } + } + this.context.isBindingElement = false; + } + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions + Parser.prototype.parseArguments = function () { + this.expect('('); + var args = []; + if (!this.match(')')) { + while (true) { + var expr = this.match('...') ? this.parseSpreadElement() : + this.isolateCoverGrammar(this.parseAssignmentExpression); + args.push(expr); + if (this.match(')')) { + break; + } + this.expectCommaSeparator(); + if (this.match(')')) { + break; + } + } + } + this.expect(')'); + return args; + }; + Parser.prototype.isIdentifierName = function (token) { + return token.type === 3 /* Identifier */ || + token.type === 4 /* Keyword */ || + token.type === 1 /* BooleanLiteral */ || + token.type === 5 /* NullLiteral */; + }; + Parser.prototype.parseIdentifierName = function () { + var node = this.createNode(); + var token = this.nextToken(); + if (!this.isIdentifierName(token)) { + this.throwUnexpectedToken(token); + } + return this.finalize(node, new Node.Identifier(token.value)); + }; + Parser.prototype.parseNewExpression = function () { + var node = this.createNode(); + var id = this.parseIdentifierName(); + assert_1.assert(id.name === 'new', 'New expression must start with `new`'); + var expr; + if (this.match('.')) { + this.nextToken(); + if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') { + var property = this.parseIdentifierName(); + expr = new Node.MetaProperty(id, property); + } + else { + this.throwUnexpectedToken(this.lookahead); + } + } + else { + var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression); + var args = this.match('(') ? this.parseArguments() : []; + expr = new Node.NewExpression(callee, args); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + return this.finalize(node, expr); + }; + Parser.prototype.parseAsyncArgument = function () { + var arg = this.parseAssignmentExpression(); + this.context.firstCoverInitializedNameError = null; + return arg; + }; + Parser.prototype.parseAsyncArguments = function () { + this.expect('('); + var args = []; + if (!this.match(')')) { + while (true) { + var expr = this.match('...') ? this.parseSpreadElement() : + this.isolateCoverGrammar(this.parseAsyncArgument); + args.push(expr); + if (this.match(')')) { + break; + } + this.expectCommaSeparator(); + if (this.match(')')) { + break; + } + } + } + this.expect(')'); + return args; + }; + Parser.prototype.parseLeftHandSideExpressionAllowCall = function () { + var startToken = this.lookahead; + var maybeAsync = this.matchContextualKeyword('async'); + var previousAllowIn = this.context.allowIn; + this.context.allowIn = true; + var expr; + if (this.matchKeyword('super') && this.context.inFunctionBody) { + expr = this.createNode(); + this.nextToken(); + expr = this.finalize(expr, new Node.Super()); + if (!this.match('(') && !this.match('.') && !this.match('[')) { + this.throwUnexpectedToken(this.lookahead); + } + } + else { + expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression); + } + while (true) { + if (this.match('.')) { + this.context.isBindingElement = false; + this.context.isAssignmentTarget = true; + this.expect('.'); + var property = this.parseIdentifierName(); + expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property)); + } + else if (this.match('(')) { + var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber); + this.context.isBindingElement = false; + this.context.isAssignmentTarget = false; + var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments(); + expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args)); + if (asyncArrow && this.match('=>')) { + for (var i = 0; i < args.length; ++i) { + this.reinterpretExpressionAsPattern(args[i]); + } + expr = { + type: ArrowParameterPlaceHolder, + params: args, + async: true + }; + } + } + else if (this.match('[')) { + this.context.isBindingElement = false; + this.context.isAssignmentTarget = true; + this.expect('['); + var property = this.isolateCoverGrammar(this.parseExpression); + this.expect(']'); + expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property)); + } + else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) { + var quasi = this.parseTemplateLiteral(); + expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi)); + } + else { + break; + } + } + this.context.allowIn = previousAllowIn; + return expr; + }; + Parser.prototype.parseSuper = function () { + var node = this.createNode(); + this.expectKeyword('super'); + if (!this.match('[') && !this.match('.')) { + this.throwUnexpectedToken(this.lookahead); + } + return this.finalize(node, new Node.Super()); + }; + Parser.prototype.parseLeftHandSideExpression = function () { + assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.'); + var node = this.startNode(this.lookahead); + var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() : + this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression); + while (true) { + if (this.match('[')) { + this.context.isBindingElement = false; + this.context.isAssignmentTarget = true; + this.expect('['); + var property = this.isolateCoverGrammar(this.parseExpression); + this.expect(']'); + expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property)); + } + else if (this.match('.')) { + this.context.isBindingElement = false; + this.context.isAssignmentTarget = true; + this.expect('.'); + var property = this.parseIdentifierName(); + expr = this.finalize(node, new Node.StaticMemberExpression(expr, property)); + } + else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) { + var quasi = this.parseTemplateLiteral(); + expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi)); + } + else { + break; + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-update-expressions + Parser.prototype.parseUpdateExpression = function () { + var expr; + var startToken = this.lookahead; + if (this.match('++') || this.match('--')) { + var node = this.startNode(startToken); + var token = this.nextToken(); + expr = this.inheritCoverGrammar(this.parseUnaryExpression); + if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) { + this.tolerateError(messages_1.Messages.StrictLHSPrefix); + } + if (!this.context.isAssignmentTarget) { + this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); + } + var prefix = true; + expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix)); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + else { + expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall); + if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) { + if (this.match('++') || this.match('--')) { + if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) { + this.tolerateError(messages_1.Messages.StrictLHSPostfix); + } + if (!this.context.isAssignmentTarget) { + this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); + } + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var operator = this.nextToken().value; + var prefix = false; + expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix)); + } + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-unary-operators + Parser.prototype.parseAwaitExpression = function () { + var node = this.createNode(); + this.nextToken(); + var argument = this.parseUnaryExpression(); + return this.finalize(node, new Node.AwaitExpression(argument)); + }; + Parser.prototype.parseUnaryExpression = function () { + var expr; + if (this.match('+') || this.match('-') || this.match('~') || this.match('!') || + this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) { + var node = this.startNode(this.lookahead); + var token = this.nextToken(); + expr = this.inheritCoverGrammar(this.parseUnaryExpression); + expr = this.finalize(node, new Node.UnaryExpression(token.value, expr)); + if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) { + this.tolerateError(messages_1.Messages.StrictDelete); + } + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + else if (this.context.await && this.matchContextualKeyword('await')) { + expr = this.parseAwaitExpression(); + } + else { + expr = this.parseUpdateExpression(); + } + return expr; + }; + Parser.prototype.parseExponentiationExpression = function () { + var startToken = this.lookahead; + var expr = this.inheritCoverGrammar(this.parseUnaryExpression); + if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) { + this.nextToken(); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var left = expr; + var right = this.isolateCoverGrammar(this.parseExponentiationExpression); + expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right)); + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-exp-operator + // https://tc39.github.io/ecma262/#sec-multiplicative-operators + // https://tc39.github.io/ecma262/#sec-additive-operators + // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators + // https://tc39.github.io/ecma262/#sec-relational-operators + // https://tc39.github.io/ecma262/#sec-equality-operators + // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators + // https://tc39.github.io/ecma262/#sec-binary-logical-operators + Parser.prototype.binaryPrecedence = function (token) { + var op = token.value; + var precedence; + if (token.type === 7 /* Punctuator */) { + precedence = this.operatorPrecedence[op] || 0; + } + else if (token.type === 4 /* Keyword */) { + precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0; + } + else { + precedence = 0; + } + return precedence; + }; + Parser.prototype.parseBinaryExpression = function () { + var startToken = this.lookahead; + var expr = this.inheritCoverGrammar(this.parseExponentiationExpression); + var token = this.lookahead; + var prec = this.binaryPrecedence(token); + if (prec > 0) { + this.nextToken(); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var markers = [startToken, this.lookahead]; + var left = expr; + var right = this.isolateCoverGrammar(this.parseExponentiationExpression); + var stack = [left, token.value, right]; + var precedences = [prec]; + while (true) { + prec = this.binaryPrecedence(this.lookahead); + if (prec <= 0) { + break; + } + // Reduce: make a binary expression from the three topmost entries. + while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) { + right = stack.pop(); + var operator = stack.pop(); + precedences.pop(); + left = stack.pop(); + markers.pop(); + var node = this.startNode(markers[markers.length - 1]); + stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right))); + } + // Shift. + stack.push(this.nextToken().value); + precedences.push(prec); + markers.push(this.lookahead); + stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression)); + } + // Final reduce to clean-up the stack. + var i = stack.length - 1; + expr = stack[i]; + var lastMarker = markers.pop(); + while (i > 1) { + var marker = markers.pop(); + var lastLineStart = lastMarker && lastMarker.lineStart; + var node = this.startNode(marker, lastLineStart); + var operator = stack[i - 1]; + expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr)); + i -= 2; + lastMarker = marker; + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-conditional-operator + Parser.prototype.parseConditionalExpression = function () { + var startToken = this.lookahead; + var expr = this.inheritCoverGrammar(this.parseBinaryExpression); + if (this.match('?')) { + this.nextToken(); + var previousAllowIn = this.context.allowIn; + this.context.allowIn = true; + var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression); + this.context.allowIn = previousAllowIn; + this.expect(':'); + var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression); + expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate)); + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-assignment-operators + Parser.prototype.checkPatternParam = function (options, param) { + switch (param.type) { + case syntax_1.Syntax.Identifier: + this.validateParam(options, param, param.name); + break; + case syntax_1.Syntax.RestElement: + this.checkPatternParam(options, param.argument); + break; + case syntax_1.Syntax.AssignmentPattern: + this.checkPatternParam(options, param.left); + break; + case syntax_1.Syntax.ArrayPattern: + for (var i = 0; i < param.elements.length; i++) { + if (param.elements[i] !== null) { + this.checkPatternParam(options, param.elements[i]); + } + } + break; + case syntax_1.Syntax.ObjectPattern: + for (var i = 0; i < param.properties.length; i++) { + this.checkPatternParam(options, param.properties[i].value); + } + break; + default: + break; + } + options.simple = options.simple && (param instanceof Node.Identifier); + }; + Parser.prototype.reinterpretAsCoverFormalsList = function (expr) { + var params = [expr]; + var options; + var asyncArrow = false; + switch (expr.type) { + case syntax_1.Syntax.Identifier: + break; + case ArrowParameterPlaceHolder: + params = expr.params; + asyncArrow = expr.async; + break; + default: + return null; + } + options = { + simple: true, + paramSet: {} + }; + for (var i = 0; i < params.length; ++i) { + var param = params[i]; + if (param.type === syntax_1.Syntax.AssignmentPattern) { + if (param.right.type === syntax_1.Syntax.YieldExpression) { + if (param.right.argument) { + this.throwUnexpectedToken(this.lookahead); + } + param.right.type = syntax_1.Syntax.Identifier; + param.right.name = 'yield'; + delete param.right.argument; + delete param.right.delegate; + } + } + else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') { + this.throwUnexpectedToken(this.lookahead); + } + this.checkPatternParam(options, param); + params[i] = param; + } + if (this.context.strict || !this.context.allowYield) { + for (var i = 0; i < params.length; ++i) { + var param = params[i]; + if (param.type === syntax_1.Syntax.YieldExpression) { + this.throwUnexpectedToken(this.lookahead); + } + } + } + if (options.message === messages_1.Messages.StrictParamDupe) { + var token = this.context.strict ? options.stricted : options.firstRestricted; + this.throwUnexpectedToken(token, options.message); + } + return { + simple: options.simple, + params: params, + stricted: options.stricted, + firstRestricted: options.firstRestricted, + message: options.message + }; + }; + Parser.prototype.parseAssignmentExpression = function () { + var expr; + if (!this.context.allowYield && this.matchKeyword('yield')) { + expr = this.parseYieldExpression(); + } + else { + var startToken = this.lookahead; + var token = startToken; + expr = this.parseConditionalExpression(); + if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') { + if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) { + var arg = this.parsePrimaryExpression(); + this.reinterpretExpressionAsPattern(arg); + expr = { + type: ArrowParameterPlaceHolder, + params: [arg], + async: true + }; + } + } + if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) { + // https://tc39.github.io/ecma262/#sec-arrow-function-definitions + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + var isAsync = expr.async; + var list = this.reinterpretAsCoverFormalsList(expr); + if (list) { + if (this.hasLineTerminator) { + this.tolerateUnexpectedToken(this.lookahead); + } + this.context.firstCoverInitializedNameError = null; + var previousStrict = this.context.strict; + var previousAllowStrictDirective = this.context.allowStrictDirective; + this.context.allowStrictDirective = list.simple; + var previousAllowYield = this.context.allowYield; + var previousAwait = this.context.await; + this.context.allowYield = true; + this.context.await = isAsync; + var node = this.startNode(startToken); + this.expect('=>'); + var body = void 0; + if (this.match('{')) { + var previousAllowIn = this.context.allowIn; + this.context.allowIn = true; + body = this.parseFunctionSourceElements(); + this.context.allowIn = previousAllowIn; + } + else { + body = this.isolateCoverGrammar(this.parseAssignmentExpression); + } + var expression = body.type !== syntax_1.Syntax.BlockStatement; + if (this.context.strict && list.firstRestricted) { + this.throwUnexpectedToken(list.firstRestricted, list.message); + } + if (this.context.strict && list.stricted) { + this.tolerateUnexpectedToken(list.stricted, list.message); + } + expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) : + this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression)); + this.context.strict = previousStrict; + this.context.allowStrictDirective = previousAllowStrictDirective; + this.context.allowYield = previousAllowYield; + this.context.await = previousAwait; + } + } + else { + if (this.matchAssign()) { + if (!this.context.isAssignmentTarget) { + this.tolerateError(messages_1.Messages.InvalidLHSInAssignment); + } + if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) { + var id = expr; + if (this.scanner.isRestrictedWord(id.name)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment); + } + if (this.scanner.isStrictModeReservedWord(id.name)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); + } + } + if (!this.match('=')) { + this.context.isAssignmentTarget = false; + this.context.isBindingElement = false; + } + else { + this.reinterpretExpressionAsPattern(expr); + } + token = this.nextToken(); + var operator = token.value; + var right = this.isolateCoverGrammar(this.parseAssignmentExpression); + expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right)); + this.context.firstCoverInitializedNameError = null; + } + } + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-comma-operator + Parser.prototype.parseExpression = function () { + var startToken = this.lookahead; + var expr = this.isolateCoverGrammar(this.parseAssignmentExpression); + if (this.match(',')) { + var expressions = []; + expressions.push(expr); + while (this.lookahead.type !== 2 /* EOF */) { + if (!this.match(',')) { + break; + } + this.nextToken(); + expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression)); + } + expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions)); + } + return expr; + }; + // https://tc39.github.io/ecma262/#sec-block + Parser.prototype.parseStatementListItem = function () { + var statement; + this.context.isAssignmentTarget = true; + this.context.isBindingElement = true; + if (this.lookahead.type === 4 /* Keyword */) { + switch (this.lookahead.value) { + case 'export': + if (!this.context.isModule) { + this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration); + } + statement = this.parseExportDeclaration(); + break; + case 'import': + if (!this.context.isModule) { + this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration); + } + statement = this.parseImportDeclaration(); + break; + case 'const': + statement = this.parseLexicalDeclaration({ inFor: false }); + break; + case 'function': + statement = this.parseFunctionDeclaration(); + break; + case 'class': + statement = this.parseClassDeclaration(); + break; + case 'let': + statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement(); + break; + default: + statement = this.parseStatement(); + break; + } + } + else { + statement = this.parseStatement(); + } + return statement; + }; + Parser.prototype.parseBlock = function () { + var node = this.createNode(); + this.expect('{'); + var block = []; + while (true) { + if (this.match('}')) { + break; + } + block.push(this.parseStatementListItem()); + } + this.expect('}'); + return this.finalize(node, new Node.BlockStatement(block)); + }; + // https://tc39.github.io/ecma262/#sec-let-and-const-declarations + Parser.prototype.parseLexicalBinding = function (kind, options) { + var node = this.createNode(); + var params = []; + var id = this.parsePattern(params, kind); + if (this.context.strict && id.type === syntax_1.Syntax.Identifier) { + if (this.scanner.isRestrictedWord(id.name)) { + this.tolerateError(messages_1.Messages.StrictVarName); + } + } + var init = null; + if (kind === 'const') { + if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) { + if (this.match('=')) { + this.nextToken(); + init = this.isolateCoverGrammar(this.parseAssignmentExpression); + } + else { + this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const'); + } + } + } + else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) { + this.expect('='); + init = this.isolateCoverGrammar(this.parseAssignmentExpression); + } + return this.finalize(node, new Node.VariableDeclarator(id, init)); + }; + Parser.prototype.parseBindingList = function (kind, options) { + var list = [this.parseLexicalBinding(kind, options)]; + while (this.match(',')) { + this.nextToken(); + list.push(this.parseLexicalBinding(kind, options)); + } + return list; + }; + Parser.prototype.isLexicalDeclaration = function () { + var state = this.scanner.saveState(); + this.scanner.scanComments(); + var next = this.scanner.lex(); + this.scanner.restoreState(state); + return (next.type === 3 /* Identifier */) || + (next.type === 7 /* Punctuator */ && next.value === '[') || + (next.type === 7 /* Punctuator */ && next.value === '{') || + (next.type === 4 /* Keyword */ && next.value === 'let') || + (next.type === 4 /* Keyword */ && next.value === 'yield'); + }; + Parser.prototype.parseLexicalDeclaration = function (options) { + var node = this.createNode(); + var kind = this.nextToken().value; + assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const'); + var declarations = this.parseBindingList(kind, options); + this.consumeSemicolon(); + return this.finalize(node, new Node.VariableDeclaration(declarations, kind)); + }; + // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns + Parser.prototype.parseBindingRestElement = function (params, kind) { + var node = this.createNode(); + this.expect('...'); + var arg = this.parsePattern(params, kind); + return this.finalize(node, new Node.RestElement(arg)); + }; + Parser.prototype.parseArrayPattern = function (params, kind) { + var node = this.createNode(); + this.expect('['); + var elements = []; + while (!this.match(']')) { + if (this.match(',')) { + this.nextToken(); + elements.push(null); + } + else { + if (this.match('...')) { + elements.push(this.parseBindingRestElement(params, kind)); + break; + } + else { + elements.push(this.parsePatternWithDefault(params, kind)); + } + if (!this.match(']')) { + this.expect(','); + } + } + } + this.expect(']'); + return this.finalize(node, new Node.ArrayPattern(elements)); + }; + Parser.prototype.parsePropertyPattern = function (params, kind) { + var node = this.createNode(); + var computed = false; + var shorthand = false; + var method = false; + var key; + var value; + if (this.lookahead.type === 3 /* Identifier */) { + var keyToken = this.lookahead; + key = this.parseVariableIdentifier(); + var init = this.finalize(node, new Node.Identifier(keyToken.value)); + if (this.match('=')) { + params.push(keyToken); + shorthand = true; + this.nextToken(); + var expr = this.parseAssignmentExpression(); + value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr)); + } + else if (!this.match(':')) { + params.push(keyToken); + shorthand = true; + value = init; + } + else { + this.expect(':'); + value = this.parsePatternWithDefault(params, kind); + } + } + else { + computed = this.match('['); + key = this.parseObjectPropertyKey(); + this.expect(':'); + value = this.parsePatternWithDefault(params, kind); + } + return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand)); + }; + Parser.prototype.parseObjectPattern = function (params, kind) { + var node = this.createNode(); + var properties = []; + this.expect('{'); + while (!this.match('}')) { + properties.push(this.parsePropertyPattern(params, kind)); + if (!this.match('}')) { + this.expect(','); + } + } + this.expect('}'); + return this.finalize(node, new Node.ObjectPattern(properties)); + }; + Parser.prototype.parsePattern = function (params, kind) { + var pattern; + if (this.match('[')) { + pattern = this.parseArrayPattern(params, kind); + } + else if (this.match('{')) { + pattern = this.parseObjectPattern(params, kind); + } + else { + if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) { + this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding); + } + params.push(this.lookahead); + pattern = this.parseVariableIdentifier(kind); + } + return pattern; + }; + Parser.prototype.parsePatternWithDefault = function (params, kind) { + var startToken = this.lookahead; + var pattern = this.parsePattern(params, kind); + if (this.match('=')) { + this.nextToken(); + var previousAllowYield = this.context.allowYield; + this.context.allowYield = true; + var right = this.isolateCoverGrammar(this.parseAssignmentExpression); + this.context.allowYield = previousAllowYield; + pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right)); + } + return pattern; + }; + // https://tc39.github.io/ecma262/#sec-variable-statement + Parser.prototype.parseVariableIdentifier = function (kind) { + var node = this.createNode(); + var token = this.nextToken(); + if (token.type === 4 /* Keyword */ && token.value === 'yield') { + if (this.context.strict) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); + } + else if (!this.context.allowYield) { + this.throwUnexpectedToken(token); + } + } + else if (token.type !== 3 /* Identifier */) { + if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord); + } + else { + if (this.context.strict || token.value !== 'let' || kind !== 'var') { + this.throwUnexpectedToken(token); + } + } + } + else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') { + this.tolerateUnexpectedToken(token); + } + return this.finalize(node, new Node.Identifier(token.value)); + }; + Parser.prototype.parseVariableDeclaration = function (options) { + var node = this.createNode(); + var params = []; + var id = this.parsePattern(params, 'var'); + if (this.context.strict && id.type === syntax_1.Syntax.Identifier) { + if (this.scanner.isRestrictedWord(id.name)) { + this.tolerateError(messages_1.Messages.StrictVarName); + } + } + var init = null; + if (this.match('=')) { + this.nextToken(); + init = this.isolateCoverGrammar(this.parseAssignmentExpression); + } + else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) { + this.expect('='); + } + return this.finalize(node, new Node.VariableDeclarator(id, init)); + }; + Parser.prototype.parseVariableDeclarationList = function (options) { + var opt = { inFor: options.inFor }; + var list = []; + list.push(this.parseVariableDeclaration(opt)); + while (this.match(',')) { + this.nextToken(); + list.push(this.parseVariableDeclaration(opt)); + } + return list; + }; + Parser.prototype.parseVariableStatement = function () { + var node = this.createNode(); + this.expectKeyword('var'); + var declarations = this.parseVariableDeclarationList({ inFor: false }); + this.consumeSemicolon(); + return this.finalize(node, new Node.VariableDeclaration(declarations, 'var')); + }; + // https://tc39.github.io/ecma262/#sec-empty-statement + Parser.prototype.parseEmptyStatement = function () { + var node = this.createNode(); + this.expect(';'); + return this.finalize(node, new Node.EmptyStatement()); + }; + // https://tc39.github.io/ecma262/#sec-expression-statement + Parser.prototype.parseExpressionStatement = function () { + var node = this.createNode(); + var expr = this.parseExpression(); + this.consumeSemicolon(); + return this.finalize(node, new Node.ExpressionStatement(expr)); + }; + // https://tc39.github.io/ecma262/#sec-if-statement + Parser.prototype.parseIfClause = function () { + if (this.context.strict && this.matchKeyword('function')) { + this.tolerateError(messages_1.Messages.StrictFunction); + } + return this.parseStatement(); + }; + Parser.prototype.parseIfStatement = function () { + var node = this.createNode(); + var consequent; + var alternate = null; + this.expectKeyword('if'); + this.expect('('); + var test = this.parseExpression(); + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + consequent = this.finalize(this.createNode(), new Node.EmptyStatement()); + } + else { + this.expect(')'); + consequent = this.parseIfClause(); + if (this.matchKeyword('else')) { + this.nextToken(); + alternate = this.parseIfClause(); + } + } + return this.finalize(node, new Node.IfStatement(test, consequent, alternate)); + }; + // https://tc39.github.io/ecma262/#sec-do-while-statement + Parser.prototype.parseDoWhileStatement = function () { + var node = this.createNode(); + this.expectKeyword('do'); + var previousInIteration = this.context.inIteration; + this.context.inIteration = true; + var body = this.parseStatement(); + this.context.inIteration = previousInIteration; + this.expectKeyword('while'); + this.expect('('); + var test = this.parseExpression(); + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + } + else { + this.expect(')'); + if (this.match(';')) { + this.nextToken(); + } + } + return this.finalize(node, new Node.DoWhileStatement(body, test)); + }; + // https://tc39.github.io/ecma262/#sec-while-statement + Parser.prototype.parseWhileStatement = function () { + var node = this.createNode(); + var body; + this.expectKeyword('while'); + this.expect('('); + var test = this.parseExpression(); + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + body = this.finalize(this.createNode(), new Node.EmptyStatement()); + } + else { + this.expect(')'); + var previousInIteration = this.context.inIteration; + this.context.inIteration = true; + body = this.parseStatement(); + this.context.inIteration = previousInIteration; + } + return this.finalize(node, new Node.WhileStatement(test, body)); + }; + // https://tc39.github.io/ecma262/#sec-for-statement + // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements + Parser.prototype.parseForStatement = function () { + var init = null; + var test = null; + var update = null; + var forIn = true; + var left, right; + var node = this.createNode(); + this.expectKeyword('for'); + this.expect('('); + if (this.match(';')) { + this.nextToken(); + } + else { + if (this.matchKeyword('var')) { + init = this.createNode(); + this.nextToken(); + var previousAllowIn = this.context.allowIn; + this.context.allowIn = false; + var declarations = this.parseVariableDeclarationList({ inFor: true }); + this.context.allowIn = previousAllowIn; + if (declarations.length === 1 && this.matchKeyword('in')) { + var decl = declarations[0]; + if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) { + this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in'); + } + init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); + this.nextToken(); + left = init; + right = this.parseExpression(); + init = null; + } + else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) { + init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); + this.nextToken(); + left = init; + right = this.parseAssignmentExpression(); + init = null; + forIn = false; + } + else { + init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var')); + this.expect(';'); + } + } + else if (this.matchKeyword('const') || this.matchKeyword('let')) { + init = this.createNode(); + var kind = this.nextToken().value; + if (!this.context.strict && this.lookahead.value === 'in') { + init = this.finalize(init, new Node.Identifier(kind)); + this.nextToken(); + left = init; + right = this.parseExpression(); + init = null; + } + else { + var previousAllowIn = this.context.allowIn; + this.context.allowIn = false; + var declarations = this.parseBindingList(kind, { inFor: true }); + this.context.allowIn = previousAllowIn; + if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) { + init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); + this.nextToken(); + left = init; + right = this.parseExpression(); + init = null; + } + else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) { + init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); + this.nextToken(); + left = init; + right = this.parseAssignmentExpression(); + init = null; + forIn = false; + } + else { + this.consumeSemicolon(); + init = this.finalize(init, new Node.VariableDeclaration(declarations, kind)); + } + } + } + else { + var initStartToken = this.lookahead; + var previousAllowIn = this.context.allowIn; + this.context.allowIn = false; + init = this.inheritCoverGrammar(this.parseAssignmentExpression); + this.context.allowIn = previousAllowIn; + if (this.matchKeyword('in')) { + if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) { + this.tolerateError(messages_1.Messages.InvalidLHSInForIn); + } + this.nextToken(); + this.reinterpretExpressionAsPattern(init); + left = init; + right = this.parseExpression(); + init = null; + } + else if (this.matchContextualKeyword('of')) { + if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) { + this.tolerateError(messages_1.Messages.InvalidLHSInForLoop); + } + this.nextToken(); + this.reinterpretExpressionAsPattern(init); + left = init; + right = this.parseAssignmentExpression(); + init = null; + forIn = false; + } + else { + if (this.match(',')) { + var initSeq = [init]; + while (this.match(',')) { + this.nextToken(); + initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression)); + } + init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq)); + } + this.expect(';'); + } + } + } + if (typeof left === 'undefined') { + if (!this.match(';')) { + test = this.parseExpression(); + } + this.expect(';'); + if (!this.match(')')) { + update = this.parseExpression(); + } + } + var body; + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + body = this.finalize(this.createNode(), new Node.EmptyStatement()); + } + else { + this.expect(')'); + var previousInIteration = this.context.inIteration; + this.context.inIteration = true; + body = this.isolateCoverGrammar(this.parseStatement); + this.context.inIteration = previousInIteration; + } + return (typeof left === 'undefined') ? + this.finalize(node, new Node.ForStatement(init, test, update, body)) : + forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) : + this.finalize(node, new Node.ForOfStatement(left, right, body)); + }; + // https://tc39.github.io/ecma262/#sec-continue-statement + Parser.prototype.parseContinueStatement = function () { + var node = this.createNode(); + this.expectKeyword('continue'); + var label = null; + if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) { + var id = this.parseVariableIdentifier(); + label = id; + var key = '$' + id.name; + if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { + this.throwError(messages_1.Messages.UnknownLabel, id.name); + } + } + this.consumeSemicolon(); + if (label === null && !this.context.inIteration) { + this.throwError(messages_1.Messages.IllegalContinue); + } + return this.finalize(node, new Node.ContinueStatement(label)); + }; + // https://tc39.github.io/ecma262/#sec-break-statement + Parser.prototype.parseBreakStatement = function () { + var node = this.createNode(); + this.expectKeyword('break'); + var label = null; + if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) { + var id = this.parseVariableIdentifier(); + var key = '$' + id.name; + if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { + this.throwError(messages_1.Messages.UnknownLabel, id.name); + } + label = id; + } + this.consumeSemicolon(); + if (label === null && !this.context.inIteration && !this.context.inSwitch) { + this.throwError(messages_1.Messages.IllegalBreak); + } + return this.finalize(node, new Node.BreakStatement(label)); + }; + // https://tc39.github.io/ecma262/#sec-return-statement + Parser.prototype.parseReturnStatement = function () { + if (!this.context.inFunctionBody) { + this.tolerateError(messages_1.Messages.IllegalReturn); + } + var node = this.createNode(); + this.expectKeyword('return'); + var hasArgument = (!this.match(';') && !this.match('}') && + !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) || + this.lookahead.type === 8 /* StringLiteral */ || + this.lookahead.type === 10 /* Template */; + var argument = hasArgument ? this.parseExpression() : null; + this.consumeSemicolon(); + return this.finalize(node, new Node.ReturnStatement(argument)); + }; + // https://tc39.github.io/ecma262/#sec-with-statement + Parser.prototype.parseWithStatement = function () { + if (this.context.strict) { + this.tolerateError(messages_1.Messages.StrictModeWith); + } + var node = this.createNode(); + var body; + this.expectKeyword('with'); + this.expect('('); + var object = this.parseExpression(); + if (!this.match(')') && this.config.tolerant) { + this.tolerateUnexpectedToken(this.nextToken()); + body = this.finalize(this.createNode(), new Node.EmptyStatement()); + } + else { + this.expect(')'); + body = this.parseStatement(); + } + return this.finalize(node, new Node.WithStatement(object, body)); + }; + // https://tc39.github.io/ecma262/#sec-switch-statement + Parser.prototype.parseSwitchCase = function () { + var node = this.createNode(); + var test; + if (this.matchKeyword('default')) { + this.nextToken(); + test = null; + } + else { + this.expectKeyword('case'); + test = this.parseExpression(); + } + this.expect(':'); + var consequent = []; + while (true) { + if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) { + break; + } + consequent.push(this.parseStatementListItem()); + } + return this.finalize(node, new Node.SwitchCase(test, consequent)); + }; + Parser.prototype.parseSwitchStatement = function () { + var node = this.createNode(); + this.expectKeyword('switch'); + this.expect('('); + var discriminant = this.parseExpression(); + this.expect(')'); + var previousInSwitch = this.context.inSwitch; + this.context.inSwitch = true; + var cases = []; + var defaultFound = false; + this.expect('{'); + while (true) { + if (this.match('}')) { + break; + } + var clause = this.parseSwitchCase(); + if (clause.test === null) { + if (defaultFound) { + this.throwError(messages_1.Messages.MultipleDefaultsInSwitch); + } + defaultFound = true; + } + cases.push(clause); + } + this.expect('}'); + this.context.inSwitch = previousInSwitch; + return this.finalize(node, new Node.SwitchStatement(discriminant, cases)); + }; + // https://tc39.github.io/ecma262/#sec-labelled-statements + Parser.prototype.parseLabelledStatement = function () { + var node = this.createNode(); + var expr = this.parseExpression(); + var statement; + if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) { + this.nextToken(); + var id = expr; + var key = '$' + id.name; + if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) { + this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name); + } + this.context.labelSet[key] = true; + var body = void 0; + if (this.matchKeyword('class')) { + this.tolerateUnexpectedToken(this.lookahead); + body = this.parseClassDeclaration(); + } + else if (this.matchKeyword('function')) { + var token = this.lookahead; + var declaration = this.parseFunctionDeclaration(); + if (this.context.strict) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction); + } + else if (declaration.generator) { + this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext); + } + body = declaration; + } + else { + body = this.parseStatement(); + } + delete this.context.labelSet[key]; + statement = new Node.LabeledStatement(id, body); + } + else { + this.consumeSemicolon(); + statement = new Node.ExpressionStatement(expr); + } + return this.finalize(node, statement); + }; + // https://tc39.github.io/ecma262/#sec-throw-statement + Parser.prototype.parseThrowStatement = function () { + var node = this.createNode(); + this.expectKeyword('throw'); + if (this.hasLineTerminator) { + this.throwError(messages_1.Messages.NewlineAfterThrow); + } + var argument = this.parseExpression(); + this.consumeSemicolon(); + return this.finalize(node, new Node.ThrowStatement(argument)); + }; + // https://tc39.github.io/ecma262/#sec-try-statement + Parser.prototype.parseCatchClause = function () { + var node = this.createNode(); + this.expectKeyword('catch'); + this.expect('('); + if (this.match(')')) { + this.throwUnexpectedToken(this.lookahead); + } + var params = []; + var param = this.parsePattern(params); + var paramMap = {}; + for (var i = 0; i < params.length; i++) { + var key = '$' + params[i].value; + if (Object.prototype.hasOwnProperty.call(paramMap, key)) { + this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value); + } + paramMap[key] = true; + } + if (this.context.strict && param.type === syntax_1.Syntax.Identifier) { + if (this.scanner.isRestrictedWord(param.name)) { + this.tolerateError(messages_1.Messages.StrictCatchVariable); + } + } + this.expect(')'); + var body = this.parseBlock(); + return this.finalize(node, new Node.CatchClause(param, body)); + }; + Parser.prototype.parseFinallyClause = function () { + this.expectKeyword('finally'); + return this.parseBlock(); + }; + Parser.prototype.parseTryStatement = function () { + var node = this.createNode(); + this.expectKeyword('try'); + var block = this.parseBlock(); + var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null; + var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null; + if (!handler && !finalizer) { + this.throwError(messages_1.Messages.NoCatchOrFinally); + } + return this.finalize(node, new Node.TryStatement(block, handler, finalizer)); + }; + // https://tc39.github.io/ecma262/#sec-debugger-statement + Parser.prototype.parseDebuggerStatement = function () { + var node = this.createNode(); + this.expectKeyword('debugger'); + this.consumeSemicolon(); + return this.finalize(node, new Node.DebuggerStatement()); + }; + // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations + Parser.prototype.parseStatement = function () { + var statement; + switch (this.lookahead.type) { + case 1 /* BooleanLiteral */: + case 5 /* NullLiteral */: + case 6 /* NumericLiteral */: + case 8 /* StringLiteral */: + case 10 /* Template */: + case 9 /* RegularExpression */: + statement = this.parseExpressionStatement(); + break; + case 7 /* Punctuator */: + var value = this.lookahead.value; + if (value === '{') { + statement = this.parseBlock(); + } + else if (value === '(') { + statement = this.parseExpressionStatement(); + } + else if (value === ';') { + statement = this.parseEmptyStatement(); + } + else { + statement = this.parseExpressionStatement(); + } + break; + case 3 /* Identifier */: + statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement(); + break; + case 4 /* Keyword */: + switch (this.lookahead.value) { + case 'break': + statement = this.parseBreakStatement(); + break; + case 'continue': + statement = this.parseContinueStatement(); + break; + case 'debugger': + statement = this.parseDebuggerStatement(); + break; + case 'do': + statement = this.parseDoWhileStatement(); + break; + case 'for': + statement = this.parseForStatement(); + break; + case 'function': + statement = this.parseFunctionDeclaration(); + break; + case 'if': + statement = this.parseIfStatement(); + break; + case 'return': + statement = this.parseReturnStatement(); + break; + case 'switch': + statement = this.parseSwitchStatement(); + break; + case 'throw': + statement = this.parseThrowStatement(); + break; + case 'try': + statement = this.parseTryStatement(); + break; + case 'var': + statement = this.parseVariableStatement(); + break; + case 'while': + statement = this.parseWhileStatement(); + break; + case 'with': + statement = this.parseWithStatement(); + break; + default: + statement = this.parseExpressionStatement(); + break; + } + break; + default: + statement = this.throwUnexpectedToken(this.lookahead); + } + return statement; + }; + // https://tc39.github.io/ecma262/#sec-function-definitions + Parser.prototype.parseFunctionSourceElements = function () { + var node = this.createNode(); + this.expect('{'); + var body = this.parseDirectivePrologues(); + var previousLabelSet = this.context.labelSet; + var previousInIteration = this.context.inIteration; + var previousInSwitch = this.context.inSwitch; + var previousInFunctionBody = this.context.inFunctionBody; + this.context.labelSet = {}; + this.context.inIteration = false; + this.context.inSwitch = false; + this.context.inFunctionBody = true; + while (this.lookahead.type !== 2 /* EOF */) { + if (this.match('}')) { + break; + } + body.push(this.parseStatementListItem()); + } + this.expect('}'); + this.context.labelSet = previousLabelSet; + this.context.inIteration = previousInIteration; + this.context.inSwitch = previousInSwitch; + this.context.inFunctionBody = previousInFunctionBody; + return this.finalize(node, new Node.BlockStatement(body)); + }; + Parser.prototype.validateParam = function (options, param, name) { + var key = '$' + name; + if (this.context.strict) { + if (this.scanner.isRestrictedWord(name)) { + options.stricted = param; + options.message = messages_1.Messages.StrictParamName; + } + if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { + options.stricted = param; + options.message = messages_1.Messages.StrictParamDupe; + } + } + else if (!options.firstRestricted) { + if (this.scanner.isRestrictedWord(name)) { + options.firstRestricted = param; + options.message = messages_1.Messages.StrictParamName; + } + else if (this.scanner.isStrictModeReservedWord(name)) { + options.firstRestricted = param; + options.message = messages_1.Messages.StrictReservedWord; + } + else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { + options.stricted = param; + options.message = messages_1.Messages.StrictParamDupe; + } + } + /* istanbul ignore next */ + if (typeof Object.defineProperty === 'function') { + Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true }); + } + else { + options.paramSet[key] = true; + } + }; + Parser.prototype.parseRestElement = function (params) { + var node = this.createNode(); + this.expect('...'); + var arg = this.parsePattern(params); + if (this.match('=')) { + this.throwError(messages_1.Messages.DefaultRestParameter); + } + if (!this.match(')')) { + this.throwError(messages_1.Messages.ParameterAfterRestParameter); + } + return this.finalize(node, new Node.RestElement(arg)); + }; + Parser.prototype.parseFormalParameter = function (options) { + var params = []; + var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params); + for (var i = 0; i < params.length; i++) { + this.validateParam(options, params[i], params[i].value); + } + options.simple = options.simple && (param instanceof Node.Identifier); + options.params.push(param); + }; + Parser.prototype.parseFormalParameters = function (firstRestricted) { + var options; + options = { + simple: true, + params: [], + firstRestricted: firstRestricted + }; + this.expect('('); + if (!this.match(')')) { + options.paramSet = {}; + while (this.lookahead.type !== 2 /* EOF */) { + this.parseFormalParameter(options); + if (this.match(')')) { + break; + } + this.expect(','); + if (this.match(')')) { + break; + } + } + } + this.expect(')'); + return { + simple: options.simple, + params: options.params, + stricted: options.stricted, + firstRestricted: options.firstRestricted, + message: options.message + }; + }; + Parser.prototype.matchAsyncFunction = function () { + var match = this.matchContextualKeyword('async'); + if (match) { + var state = this.scanner.saveState(); + this.scanner.scanComments(); + var next = this.scanner.lex(); + this.scanner.restoreState(state); + match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function'); + } + return match; + }; + Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) { + var node = this.createNode(); + var isAsync = this.matchContextualKeyword('async'); + if (isAsync) { + this.nextToken(); + } + this.expectKeyword('function'); + var isGenerator = isAsync ? false : this.match('*'); + if (isGenerator) { + this.nextToken(); + } + var message; + var id = null; + var firstRestricted = null; + if (!identifierIsOptional || !this.match('(')) { + var token = this.lookahead; + id = this.parseVariableIdentifier(); + if (this.context.strict) { + if (this.scanner.isRestrictedWord(token.value)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName); + } + } + else { + if (this.scanner.isRestrictedWord(token.value)) { + firstRestricted = token; + message = messages_1.Messages.StrictFunctionName; + } + else if (this.scanner.isStrictModeReservedWord(token.value)) { + firstRestricted = token; + message = messages_1.Messages.StrictReservedWord; + } + } + } + var previousAllowAwait = this.context.await; + var previousAllowYield = this.context.allowYield; + this.context.await = isAsync; + this.context.allowYield = !isGenerator; + var formalParameters = this.parseFormalParameters(firstRestricted); + var params = formalParameters.params; + var stricted = formalParameters.stricted; + firstRestricted = formalParameters.firstRestricted; + if (formalParameters.message) { + message = formalParameters.message; + } + var previousStrict = this.context.strict; + var previousAllowStrictDirective = this.context.allowStrictDirective; + this.context.allowStrictDirective = formalParameters.simple; + var body = this.parseFunctionSourceElements(); + if (this.context.strict && firstRestricted) { + this.throwUnexpectedToken(firstRestricted, message); + } + if (this.context.strict && stricted) { + this.tolerateUnexpectedToken(stricted, message); + } + this.context.strict = previousStrict; + this.context.allowStrictDirective = previousAllowStrictDirective; + this.context.await = previousAllowAwait; + this.context.allowYield = previousAllowYield; + return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) : + this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator)); + }; + Parser.prototype.parseFunctionExpression = function () { + var node = this.createNode(); + var isAsync = this.matchContextualKeyword('async'); + if (isAsync) { + this.nextToken(); + } + this.expectKeyword('function'); + var isGenerator = isAsync ? false : this.match('*'); + if (isGenerator) { + this.nextToken(); + } + var message; + var id = null; + var firstRestricted; + var previousAllowAwait = this.context.await; + var previousAllowYield = this.context.allowYield; + this.context.await = isAsync; + this.context.allowYield = !isGenerator; + if (!this.match('(')) { + var token = this.lookahead; + id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier(); + if (this.context.strict) { + if (this.scanner.isRestrictedWord(token.value)) { + this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName); + } + } + else { + if (this.scanner.isRestrictedWord(token.value)) { + firstRestricted = token; + message = messages_1.Messages.StrictFunctionName; + } + else if (this.scanner.isStrictModeReservedWord(token.value)) { + firstRestricted = token; + message = messages_1.Messages.StrictReservedWord; + } + } + } + var formalParameters = this.parseFormalParameters(firstRestricted); + var params = formalParameters.params; + var stricted = formalParameters.stricted; + firstRestricted = formalParameters.firstRestricted; + if (formalParameters.message) { + message = formalParameters.message; + } + var previousStrict = this.context.strict; + var previousAllowStrictDirective = this.context.allowStrictDirective; + this.context.allowStrictDirective = formalParameters.simple; + var body = this.parseFunctionSourceElements(); + if (this.context.strict && firstRestricted) { + this.throwUnexpectedToken(firstRestricted, message); + } + if (this.context.strict && stricted) { + this.tolerateUnexpectedToken(stricted, message); + } + this.context.strict = previousStrict; + this.context.allowStrictDirective = previousAllowStrictDirective; + this.context.await = previousAllowAwait; + this.context.allowYield = previousAllowYield; + return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) : + this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator)); + }; + // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive + Parser.prototype.parseDirective = function () { + var token = this.lookahead; + var node = this.createNode(); + var expr = this.parseExpression(); + var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null; + this.consumeSemicolon(); + return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr)); + }; + Parser.prototype.parseDirectivePrologues = function () { + var firstRestricted = null; + var body = []; + while (true) { + var token = this.lookahead; + if (token.type !== 8 /* StringLiteral */) { + break; + } + var statement = this.parseDirective(); + body.push(statement); + var directive = statement.directive; + if (typeof directive !== 'string') { + break; + } + if (directive === 'use strict') { + this.context.strict = true; + if (firstRestricted) { + this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral); + } + if (!this.context.allowStrictDirective) { + this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective); + } + } + else { + if (!firstRestricted && token.octal) { + firstRestricted = token; + } + } + } + return body; + }; + // https://tc39.github.io/ecma262/#sec-method-definitions + Parser.prototype.qualifiedPropertyName = function (token) { + switch (token.type) { + case 3 /* Identifier */: + case 8 /* StringLiteral */: + case 1 /* BooleanLiteral */: + case 5 /* NullLiteral */: + case 6 /* NumericLiteral */: + case 4 /* Keyword */: + return true; + case 7 /* Punctuator */: + return token.value === '['; + default: + break; + } + return false; + }; + Parser.prototype.parseGetterMethod = function () { + var node = this.createNode(); + var isGenerator = false; + var previousAllowYield = this.context.allowYield; + this.context.allowYield = !isGenerator; + var formalParameters = this.parseFormalParameters(); + if (formalParameters.params.length > 0) { + this.tolerateError(messages_1.Messages.BadGetterArity); + } + var method = this.parsePropertyMethod(formalParameters); + this.context.allowYield = previousAllowYield; + return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator)); + }; + Parser.prototype.parseSetterMethod = function () { + var node = this.createNode(); + var isGenerator = false; + var previousAllowYield = this.context.allowYield; + this.context.allowYield = !isGenerator; + var formalParameters = this.parseFormalParameters(); + if (formalParameters.params.length !== 1) { + this.tolerateError(messages_1.Messages.BadSetterArity); + } + else if (formalParameters.params[0] instanceof Node.RestElement) { + this.tolerateError(messages_1.Messages.BadSetterRestParameter); + } + var method = this.parsePropertyMethod(formalParameters); + this.context.allowYield = previousAllowYield; + return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator)); + }; + Parser.prototype.parseGeneratorMethod = function () { + var node = this.createNode(); + var isGenerator = true; + var previousAllowYield = this.context.allowYield; + this.context.allowYield = true; + var params = this.parseFormalParameters(); + this.context.allowYield = false; + var method = this.parsePropertyMethod(params); + this.context.allowYield = previousAllowYield; + return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator)); + }; + // https://tc39.github.io/ecma262/#sec-generator-function-definitions + Parser.prototype.isStartOfExpression = function () { + var start = true; + var value = this.lookahead.value; + switch (this.lookahead.type) { + case 7 /* Punctuator */: + start = (value === '[') || (value === '(') || (value === '{') || + (value === '+') || (value === '-') || + (value === '!') || (value === '~') || + (value === '++') || (value === '--') || + (value === '/') || (value === '/='); // regular expression literal + break; + case 4 /* Keyword */: + start = (value === 'class') || (value === 'delete') || + (value === 'function') || (value === 'let') || (value === 'new') || + (value === 'super') || (value === 'this') || (value === 'typeof') || + (value === 'void') || (value === 'yield'); + break; + default: + break; + } + return start; + }; + Parser.prototype.parseYieldExpression = function () { + var node = this.createNode(); + this.expectKeyword('yield'); + var argument = null; + var delegate = false; + if (!this.hasLineTerminator) { + var previousAllowYield = this.context.allowYield; + this.context.allowYield = false; + delegate = this.match('*'); + if (delegate) { + this.nextToken(); + argument = this.parseAssignmentExpression(); + } + else if (this.isStartOfExpression()) { + argument = this.parseAssignmentExpression(); + } + this.context.allowYield = previousAllowYield; + } + return this.finalize(node, new Node.YieldExpression(argument, delegate)); + }; + // https://tc39.github.io/ecma262/#sec-class-definitions + Parser.prototype.parseClassElement = function (hasConstructor) { + var token = this.lookahead; + var node = this.createNode(); + var kind = ''; + var key = null; + var value = null; + var computed = false; + var method = false; + var isStatic = false; + var isAsync = false; + if (this.match('*')) { + this.nextToken(); + } + else { + computed = this.match('['); + key = this.parseObjectPropertyKey(); + var id = key; + if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) { + token = this.lookahead; + isStatic = true; + computed = this.match('['); + if (this.match('*')) { + this.nextToken(); + } + else { + key = this.parseObjectPropertyKey(); + } + } + if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) { + var punctuator = this.lookahead.value; + if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') { + isAsync = true; + token = this.lookahead; + key = this.parseObjectPropertyKey(); + if (token.type === 3 /* Identifier */ && token.value === 'constructor') { + this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync); + } + } + } + } + var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead); + if (token.type === 3 /* Identifier */) { + if (token.value === 'get' && lookaheadPropertyKey) { + kind = 'get'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + this.context.allowYield = false; + value = this.parseGetterMethod(); + } + else if (token.value === 'set' && lookaheadPropertyKey) { + kind = 'set'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + value = this.parseSetterMethod(); + } + } + else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) { + kind = 'init'; + computed = this.match('['); + key = this.parseObjectPropertyKey(); + value = this.parseGeneratorMethod(); + method = true; + } + if (!kind && key && this.match('(')) { + kind = 'init'; + value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction(); + method = true; + } + if (!kind) { + this.throwUnexpectedToken(this.lookahead); + } + if (kind === 'init') { + kind = 'method'; + } + if (!computed) { + if (isStatic && this.isPropertyKey(key, 'prototype')) { + this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype); + } + if (!isStatic && this.isPropertyKey(key, 'constructor')) { + if (kind !== 'method' || !method || (value && value.generator)) { + this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod); + } + if (hasConstructor.value) { + this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor); + } + else { + hasConstructor.value = true; + } + kind = 'constructor'; + } + } + return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic)); + }; + Parser.prototype.parseClassElementList = function () { + var body = []; + var hasConstructor = { value: false }; + this.expect('{'); + while (!this.match('}')) { + if (this.match(';')) { + this.nextToken(); + } + else { + body.push(this.parseClassElement(hasConstructor)); + } + } + this.expect('}'); + return body; + }; + Parser.prototype.parseClassBody = function () { + var node = this.createNode(); + var elementList = this.parseClassElementList(); + return this.finalize(node, new Node.ClassBody(elementList)); + }; + Parser.prototype.parseClassDeclaration = function (identifierIsOptional) { + var node = this.createNode(); + var previousStrict = this.context.strict; + this.context.strict = true; + this.expectKeyword('class'); + var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier(); + var superClass = null; + if (this.matchKeyword('extends')) { + this.nextToken(); + superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall); + } + var classBody = this.parseClassBody(); + this.context.strict = previousStrict; + return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody)); + }; + Parser.prototype.parseClassExpression = function () { + var node = this.createNode(); + var previousStrict = this.context.strict; + this.context.strict = true; + this.expectKeyword('class'); + var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null; + var superClass = null; + if (this.matchKeyword('extends')) { + this.nextToken(); + superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall); + } + var classBody = this.parseClassBody(); + this.context.strict = previousStrict; + return this.finalize(node, new Node.ClassExpression(id, superClass, classBody)); + }; + // https://tc39.github.io/ecma262/#sec-scripts + // https://tc39.github.io/ecma262/#sec-modules + Parser.prototype.parseModule = function () { + this.context.strict = true; + this.context.isModule = true; + this.scanner.isModule = true; + var node = this.createNode(); + var body = this.parseDirectivePrologues(); + while (this.lookahead.type !== 2 /* EOF */) { + body.push(this.parseStatementListItem()); + } + return this.finalize(node, new Node.Module(body)); + }; + Parser.prototype.parseScript = function () { + var node = this.createNode(); + var body = this.parseDirectivePrologues(); + while (this.lookahead.type !== 2 /* EOF */) { + body.push(this.parseStatementListItem()); + } + return this.finalize(node, new Node.Script(body)); + }; + // https://tc39.github.io/ecma262/#sec-imports + Parser.prototype.parseModuleSpecifier = function () { + var node = this.createNode(); + if (this.lookahead.type !== 8 /* StringLiteral */) { + this.throwError(messages_1.Messages.InvalidModuleSpecifier); + } + var token = this.nextToken(); + var raw = this.getTokenRaw(token); + return this.finalize(node, new Node.Literal(token.value, raw)); + }; + // import {} ...; + Parser.prototype.parseImportSpecifier = function () { + var node = this.createNode(); + var imported; + var local; + if (this.lookahead.type === 3 /* Identifier */) { + imported = this.parseVariableIdentifier(); + local = imported; + if (this.matchContextualKeyword('as')) { + this.nextToken(); + local = this.parseVariableIdentifier(); + } + } + else { + imported = this.parseIdentifierName(); + local = imported; + if (this.matchContextualKeyword('as')) { + this.nextToken(); + local = this.parseVariableIdentifier(); + } + else { + this.throwUnexpectedToken(this.nextToken()); + } + } + return this.finalize(node, new Node.ImportSpecifier(local, imported)); + }; + // {foo, bar as bas} + Parser.prototype.parseNamedImports = function () { + this.expect('{'); + var specifiers = []; + while (!this.match('}')) { + specifiers.push(this.parseImportSpecifier()); + if (!this.match('}')) { + this.expect(','); + } + } + this.expect('}'); + return specifiers; + }; + // import ...; + Parser.prototype.parseImportDefaultSpecifier = function () { + var node = this.createNode(); + var local = this.parseIdentifierName(); + return this.finalize(node, new Node.ImportDefaultSpecifier(local)); + }; + // import <* as foo> ...; + Parser.prototype.parseImportNamespaceSpecifier = function () { + var node = this.createNode(); + this.expect('*'); + if (!this.matchContextualKeyword('as')) { + this.throwError(messages_1.Messages.NoAsAfterImportNamespace); + } + this.nextToken(); + var local = this.parseIdentifierName(); + return this.finalize(node, new Node.ImportNamespaceSpecifier(local)); + }; + Parser.prototype.parseImportDeclaration = function () { + if (this.context.inFunctionBody) { + this.throwError(messages_1.Messages.IllegalImportDeclaration); + } + var node = this.createNode(); + this.expectKeyword('import'); + var src; + var specifiers = []; + if (this.lookahead.type === 8 /* StringLiteral */) { + // import 'foo'; + src = this.parseModuleSpecifier(); + } + else { + if (this.match('{')) { + // import {bar} + specifiers = specifiers.concat(this.parseNamedImports()); + } + else if (this.match('*')) { + // import * as foo + specifiers.push(this.parseImportNamespaceSpecifier()); + } + else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) { + // import foo + specifiers.push(this.parseImportDefaultSpecifier()); + if (this.match(',')) { + this.nextToken(); + if (this.match('*')) { + // import foo, * as foo + specifiers.push(this.parseImportNamespaceSpecifier()); + } + else if (this.match('{')) { + // import foo, {bar} + specifiers = specifiers.concat(this.parseNamedImports()); + } + else { + this.throwUnexpectedToken(this.lookahead); + } + } + } + else { + this.throwUnexpectedToken(this.nextToken()); + } + if (!this.matchContextualKeyword('from')) { + var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; + this.throwError(message, this.lookahead.value); + } + this.nextToken(); + src = this.parseModuleSpecifier(); + } + this.consumeSemicolon(); + return this.finalize(node, new Node.ImportDeclaration(specifiers, src)); + }; + // https://tc39.github.io/ecma262/#sec-exports + Parser.prototype.parseExportSpecifier = function () { + var node = this.createNode(); + var local = this.parseIdentifierName(); + var exported = local; + if (this.matchContextualKeyword('as')) { + this.nextToken(); + exported = this.parseIdentifierName(); + } + return this.finalize(node, new Node.ExportSpecifier(local, exported)); + }; + Parser.prototype.parseExportDeclaration = function () { + if (this.context.inFunctionBody) { + this.throwError(messages_1.Messages.IllegalExportDeclaration); + } + var node = this.createNode(); + this.expectKeyword('export'); + var exportDeclaration; + if (this.matchKeyword('default')) { + // export default ... + this.nextToken(); + if (this.matchKeyword('function')) { + // export default function foo () {} + // export default function () {} + var declaration = this.parseFunctionDeclaration(true); + exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); + } + else if (this.matchKeyword('class')) { + // export default class foo {} + var declaration = this.parseClassDeclaration(true); + exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); + } + else if (this.matchContextualKeyword('async')) { + // export default async function f () {} + // export default async function () {} + // export default async x => x + var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression(); + exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); + } + else { + if (this.matchContextualKeyword('from')) { + this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value); + } + // export default {}; + // export default []; + // export default (1 + 2); + var declaration = this.match('{') ? this.parseObjectInitializer() : + this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression(); + this.consumeSemicolon(); + exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration)); + } + } + else if (this.match('*')) { + // export * from 'foo'; + this.nextToken(); + if (!this.matchContextualKeyword('from')) { + var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; + this.throwError(message, this.lookahead.value); + } + this.nextToken(); + var src = this.parseModuleSpecifier(); + this.consumeSemicolon(); + exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src)); + } + else if (this.lookahead.type === 4 /* Keyword */) { + // export var f = 1; + var declaration = void 0; + switch (this.lookahead.value) { + case 'let': + case 'const': + declaration = this.parseLexicalDeclaration({ inFor: false }); + break; + case 'var': + case 'class': + case 'function': + declaration = this.parseStatementListItem(); + break; + default: + this.throwUnexpectedToken(this.lookahead); + } + exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null)); + } + else if (this.matchAsyncFunction()) { + var declaration = this.parseFunctionDeclaration(); + exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null)); + } + else { + var specifiers = []; + var source = null; + var isExportFromIdentifier = false; + this.expect('{'); + while (!this.match('}')) { + isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default'); + specifiers.push(this.parseExportSpecifier()); + if (!this.match('}')) { + this.expect(','); + } + } + this.expect('}'); + if (this.matchContextualKeyword('from')) { + // export {default} from 'foo'; + // export {foo} from 'foo'; + this.nextToken(); + source = this.parseModuleSpecifier(); + this.consumeSemicolon(); + } + else if (isExportFromIdentifier) { + // export {default}; // missing fromClause + var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause; + this.throwError(message, this.lookahead.value); + } + else { + // export {foo}; + this.consumeSemicolon(); + } + exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source)); + } + return exportDeclaration; + }; + return Parser; + }()); + exports.Parser = Parser; + + +/***/ }, +/* 9 */ +/***/ function(module, exports) { + + "use strict"; + // Ensure the condition is true, otherwise throw an error. + // This is only to have a better contract semantic, i.e. another safety net + // to catch a logic error. The condition shall be fulfilled in normal case. + // Do NOT use this to enforce a certain condition on any user input. + Object.defineProperty(exports, "__esModule", { value: true }); + function assert(condition, message) { + /* istanbul ignore if */ + if (!condition) { + throw new Error('ASSERT: ' + message); + } + } + exports.assert = assert; + + +/***/ }, +/* 10 */ +/***/ function(module, exports) { + + "use strict"; + /* tslint:disable:max-classes-per-file */ + Object.defineProperty(exports, "__esModule", { value: true }); + var ErrorHandler = (function () { + function ErrorHandler() { + this.errors = []; + this.tolerant = false; + } + ErrorHandler.prototype.recordError = function (error) { + this.errors.push(error); + }; + ErrorHandler.prototype.tolerate = function (error) { + if (this.tolerant) { + this.recordError(error); + } + else { + throw error; + } + }; + ErrorHandler.prototype.constructError = function (msg, column) { + var error = new Error(msg); + try { + throw error; + } + catch (base) { + /* istanbul ignore else */ + if (Object.create && Object.defineProperty) { + error = Object.create(base); + Object.defineProperty(error, 'column', { value: column }); + } + } + /* istanbul ignore next */ + return error; + }; + ErrorHandler.prototype.createError = function (index, line, col, description) { + var msg = 'Line ' + line + ': ' + description; + var error = this.constructError(msg, col); + error.index = index; + error.lineNumber = line; + error.description = description; + return error; + }; + ErrorHandler.prototype.throwError = function (index, line, col, description) { + throw this.createError(index, line, col, description); + }; + ErrorHandler.prototype.tolerateError = function (index, line, col, description) { + var error = this.createError(index, line, col, description); + if (this.tolerant) { + this.recordError(error); + } + else { + throw error; + } + }; + return ErrorHandler; + }()); + exports.ErrorHandler = ErrorHandler; + + +/***/ }, +/* 11 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + // Error messages should be identical to V8. + exports.Messages = { + BadGetterArity: 'Getter must not have any formal parameters', + BadSetterArity: 'Setter must have exactly one formal parameter', + BadSetterRestParameter: 'Setter function argument must not be a rest parameter', + ConstructorIsAsync: 'Class constructor may not be an async method', + ConstructorSpecialMethod: 'Class constructor may not be an accessor', + DeclarationMissingInitializer: 'Missing initializer in %0 declaration', + DefaultRestParameter: 'Unexpected token =', + DuplicateBinding: 'Duplicate binding %0', + DuplicateConstructor: 'A class may only have one constructor', + DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals', + ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer', + GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts', + IllegalBreak: 'Illegal break statement', + IllegalContinue: 'Illegal continue statement', + IllegalExportDeclaration: 'Unexpected token', + IllegalImportDeclaration: 'Unexpected token', + IllegalLanguageModeDirective: 'Illegal \'use strict\' directive in function with non-simple parameter list', + IllegalReturn: 'Illegal return statement', + InvalidEscapedReservedWord: 'Keyword must not contain escaped characters', + InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence', + InvalidLHSInAssignment: 'Invalid left-hand side in assignment', + InvalidLHSInForIn: 'Invalid left-hand side in for-in', + InvalidLHSInForLoop: 'Invalid left-hand side in for-loop', + InvalidModuleSpecifier: 'Unexpected token', + InvalidRegExp: 'Invalid regular expression', + LetInLexicalBinding: 'let is disallowed as a lexically bound name', + MissingFromClause: 'Unexpected token', + MultipleDefaultsInSwitch: 'More than one default clause in switch statement', + NewlineAfterThrow: 'Illegal newline after throw', + NoAsAfterImportNamespace: 'Unexpected token', + NoCatchOrFinally: 'Missing catch or finally after try', + ParameterAfterRestParameter: 'Rest parameter must be last formal parameter', + Redeclaration: '%0 \'%1\' has already been declared', + StaticPrototype: 'Classes may not have static property named prototype', + StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode', + StrictDelete: 'Delete of an unqualified identifier in strict mode.', + StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block', + StrictFunctionName: 'Function name may not be eval or arguments in strict mode', + StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode', + StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode', + StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode', + StrictModeWith: 'Strict mode code may not include a with statement', + StrictOctalLiteral: 'Octal literals are not allowed in strict mode.', + StrictParamDupe: 'Strict mode function may not have duplicate parameter names', + StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode', + StrictReservedWord: 'Use of future reserved word in strict mode', + StrictVarName: 'Variable name may not be eval or arguments in strict mode', + TemplateOctalLiteral: 'Octal literals are not allowed in template strings.', + UnexpectedEOS: 'Unexpected end of input', + UnexpectedIdentifier: 'Unexpected identifier', + UnexpectedNumber: 'Unexpected number', + UnexpectedReserved: 'Unexpected reserved word', + UnexpectedString: 'Unexpected string', + UnexpectedTemplate: 'Unexpected quasi %0', + UnexpectedToken: 'Unexpected token %0', + UnexpectedTokenIllegal: 'Unexpected token ILLEGAL', + UnknownLabel: 'Undefined label \'%0\'', + UnterminatedRegExp: 'Invalid regular expression: missing /' + }; + + +/***/ }, +/* 12 */ +/***/ function(module, exports, __nested_webpack_require_226595__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var assert_1 = __nested_webpack_require_226595__(9); + var character_1 = __nested_webpack_require_226595__(4); + var messages_1 = __nested_webpack_require_226595__(11); + function hexValue(ch) { + return '0123456789abcdef'.indexOf(ch.toLowerCase()); + } + function octalValue(ch) { + return '01234567'.indexOf(ch); + } + var Scanner = (function () { + function Scanner(code, handler) { + this.source = code; + this.errorHandler = handler; + this.trackComment = false; + this.isModule = false; + this.length = code.length; + this.index = 0; + this.lineNumber = (code.length > 0) ? 1 : 0; + this.lineStart = 0; + this.curlyStack = []; + } + Scanner.prototype.saveState = function () { + return { + index: this.index, + lineNumber: this.lineNumber, + lineStart: this.lineStart + }; + }; + Scanner.prototype.restoreState = function (state) { + this.index = state.index; + this.lineNumber = state.lineNumber; + this.lineStart = state.lineStart; + }; + Scanner.prototype.eof = function () { + return this.index >= this.length; + }; + Scanner.prototype.throwUnexpectedToken = function (message) { + if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; } + return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message); + }; + Scanner.prototype.tolerateUnexpectedToken = function (message) { + if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; } + this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message); + }; + // https://tc39.github.io/ecma262/#sec-comments + Scanner.prototype.skipSingleLineComment = function (offset) { + var comments = []; + var start, loc; + if (this.trackComment) { + comments = []; + start = this.index - offset; + loc = { + start: { + line: this.lineNumber, + column: this.index - this.lineStart - offset + }, + end: {} + }; + } + while (!this.eof()) { + var ch = this.source.charCodeAt(this.index); + ++this.index; + if (character_1.Character.isLineTerminator(ch)) { + if (this.trackComment) { + loc.end = { + line: this.lineNumber, + column: this.index - this.lineStart - 1 + }; + var entry = { + multiLine: false, + slice: [start + offset, this.index - 1], + range: [start, this.index - 1], + loc: loc + }; + comments.push(entry); + } + if (ch === 13 && this.source.charCodeAt(this.index) === 10) { + ++this.index; + } + ++this.lineNumber; + this.lineStart = this.index; + return comments; + } + } + if (this.trackComment) { + loc.end = { + line: this.lineNumber, + column: this.index - this.lineStart + }; + var entry = { + multiLine: false, + slice: [start + offset, this.index], + range: [start, this.index], + loc: loc + }; + comments.push(entry); + } + return comments; + }; + Scanner.prototype.skipMultiLineComment = function () { + var comments = []; + var start, loc; + if (this.trackComment) { + comments = []; + start = this.index - 2; + loc = { + start: { + line: this.lineNumber, + column: this.index - this.lineStart - 2 + }, + end: {} + }; + } + while (!this.eof()) { + var ch = this.source.charCodeAt(this.index); + if (character_1.Character.isLineTerminator(ch)) { + if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) { + ++this.index; + } + ++this.lineNumber; + ++this.index; + this.lineStart = this.index; + } + else if (ch === 0x2A) { + // Block comment ends with '*/'. + if (this.source.charCodeAt(this.index + 1) === 0x2F) { + this.index += 2; + if (this.trackComment) { + loc.end = { + line: this.lineNumber, + column: this.index - this.lineStart + }; + var entry = { + multiLine: true, + slice: [start + 2, this.index - 2], + range: [start, this.index], + loc: loc + }; + comments.push(entry); + } + return comments; + } + ++this.index; + } + else { + ++this.index; + } + } + // Ran off the end of the file - the whole thing is a comment + if (this.trackComment) { + loc.end = { + line: this.lineNumber, + column: this.index - this.lineStart + }; + var entry = { + multiLine: true, + slice: [start + 2, this.index], + range: [start, this.index], + loc: loc + }; + comments.push(entry); + } + this.tolerateUnexpectedToken(); + return comments; + }; + Scanner.prototype.scanComments = function () { + var comments; + if (this.trackComment) { + comments = []; + } + var start = (this.index === 0); + while (!this.eof()) { + var ch = this.source.charCodeAt(this.index); + if (character_1.Character.isWhiteSpace(ch)) { + ++this.index; + } + else if (character_1.Character.isLineTerminator(ch)) { + ++this.index; + if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) { + ++this.index; + } + ++this.lineNumber; + this.lineStart = this.index; + start = true; + } + else if (ch === 0x2F) { + ch = this.source.charCodeAt(this.index + 1); + if (ch === 0x2F) { + this.index += 2; + var comment = this.skipSingleLineComment(2); + if (this.trackComment) { + comments = comments.concat(comment); + } + start = true; + } + else if (ch === 0x2A) { + this.index += 2; + var comment = this.skipMultiLineComment(); + if (this.trackComment) { + comments = comments.concat(comment); + } + } + else { + break; + } + } + else if (start && ch === 0x2D) { + // U+003E is '>' + if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) { + // '-->' is a single-line comment + this.index += 3; + var comment = this.skipSingleLineComment(3); + if (this.trackComment) { + comments = comments.concat(comment); + } + } + else { + break; + } + } + else if (ch === 0x3C && !this.isModule) { + if (this.source.slice(this.index + 1, this.index + 4) === '!--') { + this.index += 4; // ` + + +#### `auth-type` + +* Default: "legacy" +* Type: "legacy", "webauthn", "sso", "saml", or "oauth" +* DEPRECATED: The SSO/SAML/OAuth methods are deprecated and will be removed in + a future version of npm in favor of web-based login. + +What authentication strategy to use with `adduser`/`login`. + +Pass `webauthn` to use a web-based login. + diff --git a/deps/npm/docs/content/commands/npm-audit.md b/deps/npm/docs/content/commands/npm-audit.md index 24b700ff5abd85..9d09a4107fdc7d 100644 --- a/deps/npm/docs/content/commands/npm-audit.md +++ b/deps/npm/docs/content/commands/npm-audit.md @@ -394,6 +394,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-bugs.md b/deps/npm/docs/content/commands/npm-bugs.md index aeddeb848e81b8..6b45f1f18ac660 100644 --- a/deps/npm/docs/content/commands/npm-bugs.md +++ b/deps/npm/docs/content/commands/npm-bugs.md @@ -11,7 +11,7 @@ description: Report bugs for a package in a web browser ```bash -npm bugs [] +npm bugs [ [ ...]] alias: issues ``` @@ -58,6 +58,68 @@ The base URL of the npm registry. +#### `workspace` + +* Default: +* Type: String (can be set multiple times) + +Enable running a command in the context of the configured workspaces of the +current project while filtering by running only the workspaces defined by +this configuration option. + +Valid values for the `workspace` config are either: + +* Workspace names +* Path to a workspace directory +* Path to a parent workspace directory (will result in selecting all + workspaces within that folder) + +When set for the `npm init` command, this may be set to the folder of a +workspace which does not yet exist, to create the folder and set it up as a +brand new workspace within the project. + +This value is not exported to the environment for child processes. + + + + +#### `workspaces` + +* Default: null +* Type: null or Boolean + +Set to true to run the command in the context of **all** configured +workspaces. + +Explicitly setting this to false will cause commands like `install` to +ignore workspaces altogether. When not set explicitly: + +- Commands that operate on the `node_modules` tree (install, update, etc.) +will link workspaces into the `node_modules` folder. - Commands that do +other things (test, exec, publish, etc.) will operate on the root project, +_unless_ one or more workspaces are specified in the `workspace` config. + +This value is not exported to the environment for child processes. + + + + +#### `include-workspace-root` + +* Default: false +* Type: Boolean + +Include the workspace root when workspaces are enabled for a command. + +When false, specifying individual workspaces via the `workspace` config, or +all workspaces via the `workspaces` flag, will cause npm to operate only on +the specified workspaces, and not on the root project. + +This value is not exported to the environment for child processes. + + + + ### See Also diff --git a/deps/npm/docs/content/commands/npm-ci.md b/deps/npm/docs/content/commands/npm-ci.md index 97d1aa5523dd72..3374bf1e25136b 100644 --- a/deps/npm/docs/content/commands/npm-ci.md +++ b/deps/npm/docs/content/commands/npm-ci.md @@ -1,7 +1,7 @@ --- title: npm-ci section: 1 -description: Install a project with a clean slate +description: Clean install a project --- ### Synopsis @@ -28,12 +28,7 @@ it's meant to be used in automated environments such as test platforms, continuous integration, and deployment -- or any situation where you want to make sure you're doing a clean install of your dependencies. -`npm ci` will be significantly faster when: - -- There is a `package-lock.json` or `npm-shrinkwrap.json` file. -- The `node_modules` folder is missing or empty. - -In short, the main differences between using `npm install` and `npm ci` are: +The main differences between using `npm install` and `npm ci` are: * The project **must** have an existing `package-lock.json` or `npm-shrinkwrap.json`. @@ -46,6 +41,14 @@ In short, the main differences between using `npm install` and `npm ci` are: * It will never write to `package.json` or any of the package-locks: installs are essentially frozen. +NOTE: If you create your `package-lock.json` file by running `npm install` +with flags that can affect the shape of your dependency tree, such as +`--legacy-peer-deps` or `--install-links`, you _must_ provide the same +flags to `npm ci` or you are likely to encounter errors. An easy way to do +this is to run, for example, +`npm config set legacy-peer-deps=true --location=project` and commit the +`.npmrc` file to your repo. + ### Example Make sure you have a package-lock and an up-to-date install: diff --git a/deps/npm/docs/content/commands/npm-config.md b/deps/npm/docs/content/commands/npm-config.md index a66a198ce42d17..28c6003571de5f 100644 --- a/deps/npm/docs/content/commands/npm-config.md +++ b/deps/npm/docs/content/commands/npm-config.md @@ -156,6 +156,15 @@ The command to run for `npm edit` and `npm config edit`. When passed to `npm config` this refers to which config file to use. +When set to "global" mode, packages are installed into the `prefix` folder +instead of the current working directory. See +[folders](/configuring-npm/folders) for more on the differences in behavior. + +* packages are installed into the `{prefix}/lib/node_modules` folder, instead + of the current working directory. +* bin files are linked to `{prefix}/bin` +* man pages are linked to `{prefix}/share/man` + diff --git a/deps/npm/docs/content/commands/npm-dedupe.md b/deps/npm/docs/content/commands/npm-dedupe.md index b5a64831c0bbaa..570e018342f276 100644 --- a/deps/npm/docs/content/commands/npm-dedupe.md +++ b/deps/npm/docs/content/commands/npm-dedupe.md @@ -80,11 +80,9 @@ result in new modules being installed. Using `npm find-dupes` will run the command in `--dry-run` mode. -Note that by default `npm dedupe` will not update the semver values of direct -dependencies in your project `package.json`, if you want to also update -values in `package.json` you can run: `npm dedupe --save` (or add the -`save=true` option to a [configuration file](/configuring-npm/npmrc) -to make that the default behavior). +Note: `npm dedupe` will never update the semver values of direct +dependencies in your project `package.json`, if you want to update +values in `package.json` you can run: `npm update --save` instead. ### Configuration @@ -149,31 +147,11 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use `npm prune`. - This configuration does not affect `npm ci`. -#### `save` - -* Default: `true` unless when using `npm update` or `npm dedupe` where it - defaults to `false` -* Type: Boolean - -Save installed packages to a `package.json` file as dependencies. - -When used with the `npm rm` command, removes the dependency from -`package.json`. - -Will also prevent writing to `package-lock.json` if set to `false`. - - - - #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -323,6 +301,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-diff.md b/deps/npm/docs/content/commands/npm-diff.md index c4c9eafdb3524d..7dcc8af7c3b4c7 100644 --- a/deps/npm/docs/content/commands/npm-diff.md +++ b/deps/npm/docs/content/commands/npm-diff.md @@ -335,6 +335,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-dist-tag.md b/deps/npm/docs/content/commands/npm-dist-tag.md index a0f306cd4970d5..b9caf1fbe7fa9c 100644 --- a/deps/npm/docs/content/commands/npm-dist-tag.md +++ b/deps/npm/docs/content/commands/npm-dist-tag.md @@ -159,6 +159,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-docs.md b/deps/npm/docs/content/commands/npm-docs.md index 8d5a278286a88b..790d563bdb1fb7 100644 --- a/deps/npm/docs/content/commands/npm-docs.md +++ b/deps/npm/docs/content/commands/npm-docs.md @@ -116,6 +116,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-exec.md b/deps/npm/docs/content/commands/npm-exec.md index 3645e336b9da97..8ccfa75c73386c 100644 --- a/deps/npm/docs/content/commands/npm-exec.md +++ b/deps/npm/docs/content/commands/npm-exec.md @@ -205,6 +205,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-find-dupes.md b/deps/npm/docs/content/commands/npm-find-dupes.md index f7366fa6375d1e..4da6c296c6bf6d 100644 --- a/deps/npm/docs/content/commands/npm-find-dupes.md +++ b/deps/npm/docs/content/commands/npm-find-dupes.md @@ -87,10 +87,6 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use `npm prune`. - This configuration does not affect `npm ci`. @@ -229,6 +225,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-init.md b/deps/npm/docs/content/commands/npm-init.md index 71109cd360511d..35343cceb4aa13 100644 --- a/deps/npm/docs/content/commands/npm-init.md +++ b/deps/npm/docs/content/commands/npm-init.md @@ -253,6 +253,17 @@ This value is not exported to the environment for child processes. +#### `workspaces-update` + +* Default: true +* Type: Boolean + +If set to true, the npm cli will run an update after operations that may +possibly change the workspaces installed to the `node_modules` folder. + + + + #### `include-workspace-root` * Default: false @@ -264,6 +275,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-install-test.md b/deps/npm/docs/content/commands/npm-install-test.md index 5ac31cbf08e25c..3dd860ea5c6f68 100644 --- a/deps/npm/docs/content/commands/npm-install-test.md +++ b/deps/npm/docs/content/commands/npm-install-test.md @@ -42,8 +42,7 @@ takes exactly the same arguments as `npm install`. #### `save` -* Default: `true` unless when using `npm update` or `npm dedupe` where it - defaults to `false` +* Default: `true` unless when using `npm update` where it defaults to `false` * Type: Boolean Save installed packages to a `package.json` file as dependencies. @@ -163,10 +162,6 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use `npm prune`. - This configuration does not affect `npm ci`. @@ -315,6 +310,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-install.md b/deps/npm/docs/content/commands/npm-install.md index c85a592ededaec..d6668a2c2bd0fb 100644 --- a/deps/npm/docs/content/commands/npm-install.md +++ b/deps/npm/docs/content/commands/npm-install.md @@ -91,12 +91,12 @@ into a tarball (b). *npm will not install the package dependencies* in the directory ``, but it will create a symlink to ``. - > NOTE: If you want to install the content of a directory like a package from the registry instead of creating a link, you would need to use [`npm pack`](/commands/npm-pack) while in the `` directory, and then install the resulting tarball instead of the `` using `npm install ` + > NOTE: If you want to install the content of a directory like a package from the registry instead of creating a link, you would need to use the `--install-links` option. Example: ```bash - npm install ../../other-package + npm install ../../other-package --install-links npm install ./sub-package ``` @@ -432,8 +432,7 @@ These are some of the most common options related to installation. #### `save` -* Default: `true` unless when using `npm update` or `npm dedupe` where it - defaults to `false` +* Default: `true` unless when using `npm update` where it defaults to `false` * Type: Boolean Save installed packages to a `package.json` file as dependencies. @@ -553,10 +552,6 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use `npm prune`. - This configuration does not affect `npm ci`. @@ -705,6 +700,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-link.md b/deps/npm/docs/content/commands/npm-link.md index 892b55496c9b6f..975c807c38b348 100644 --- a/deps/npm/docs/content/commands/npm-link.md +++ b/deps/npm/docs/content/commands/npm-link.md @@ -125,8 +125,7 @@ workspace(s). #### `save` -* Default: `true` unless when using `npm update` or `npm dedupe` where it - defaults to `false` +* Default: `true` unless when using `npm update` where it defaults to `false` * Type: Boolean Save installed packages to a `package.json` file as dependencies. @@ -225,10 +224,6 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use `npm prune`. - This configuration does not affect `npm ci`. @@ -383,6 +378,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-ls.md b/deps/npm/docs/content/commands/npm-ls.md index 0f06e131f414b2..ded8c0c0d26ef1 100644 --- a/deps/npm/docs/content/commands/npm-ls.md +++ b/deps/npm/docs/content/commands/npm-ls.md @@ -280,6 +280,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-owner.md b/deps/npm/docs/content/commands/npm-owner.md index 0779984e19a9db..72dfe6a22d01b0 100644 --- a/deps/npm/docs/content/commands/npm-owner.md +++ b/deps/npm/docs/content/commands/npm-owner.md @@ -73,6 +73,52 @@ password, npm will prompt on the command line for one. +#### `workspace` + +* Default: +* Type: String (can be set multiple times) + +Enable running a command in the context of the configured workspaces of the +current project while filtering by running only the workspaces defined by +this configuration option. + +Valid values for the `workspace` config are either: + +* Workspace names +* Path to a workspace directory +* Path to a parent workspace directory (will result in selecting all + workspaces within that folder) + +When set for the `npm init` command, this may be set to the folder of a +workspace which does not yet exist, to create the folder and set it up as a +brand new workspace within the project. + +This value is not exported to the environment for child processes. + + + + +#### `workspaces` + +* Default: null +* Type: null or Boolean + +Set to true to run the command in the context of **all** configured +workspaces. + +Explicitly setting this to false will cause commands like `install` to +ignore workspaces altogether. When not set explicitly: + +- Commands that operate on the `node_modules` tree (install, update, etc.) +will link workspaces into the `node_modules` folder. - Commands that do +other things (test, exec, publish, etc.) will operate on the root project, +_unless_ one or more workspaces are specified in the `workspace` config. + +This value is not exported to the environment for child processes. + + + + ### See Also diff --git a/deps/npm/docs/content/commands/npm-pack.md b/deps/npm/docs/content/commands/npm-pack.md index c834f643ac0bb1..fa6c005e9d2287 100644 --- a/deps/npm/docs/content/commands/npm-pack.md +++ b/deps/npm/docs/content/commands/npm-pack.md @@ -122,6 +122,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-pkg.md b/deps/npm/docs/content/commands/npm-pkg.md index 576e1335efbba9..deff7e82c694dd 100644 --- a/deps/npm/docs/content/commands/npm-pkg.md +++ b/deps/npm/docs/content/commands/npm-pkg.md @@ -76,6 +76,14 @@ Returned values are always in **json** format. npm pkg get contributors[0].email ``` + For complex fields you can also name a property in square brackets + to specifically select a child field. This is especially helpful + with the exports object: + + ```bash + npm pkg get "exports[.].require" + ``` + * `npm pkg set =` Sets a `value` in your `package.json` based on the `field` value. When diff --git a/deps/npm/docs/content/commands/npm-prune.md b/deps/npm/docs/content/commands/npm-prune.md index a10a353801b7cd..28f02f6add1908 100644 --- a/deps/npm/docs/content/commands/npm-prune.md +++ b/deps/npm/docs/content/commands/npm-prune.md @@ -186,6 +186,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-publish.md b/deps/npm/docs/content/commands/npm-publish.md index ce6e1c1012c8e2..2995f6bc81551e 100644 --- a/deps/npm/docs/content/commands/npm-publish.md +++ b/deps/npm/docs/content/commands/npm-publish.md @@ -238,6 +238,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-rebuild.md b/deps/npm/docs/content/commands/npm-rebuild.md index d63e00b79d3867..52c368c8c513b9 100644 --- a/deps/npm/docs/content/commands/npm-rebuild.md +++ b/deps/npm/docs/content/commands/npm-rebuild.md @@ -157,6 +157,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-repo.md b/deps/npm/docs/content/commands/npm-repo.md index e14f07012a2484..fc540a9382b235 100644 --- a/deps/npm/docs/content/commands/npm-repo.md +++ b/deps/npm/docs/content/commands/npm-repo.md @@ -46,6 +46,16 @@ Set to `true` to use default system URL opener. +#### `registry` + +* Default: "https://registry.npmjs.org/" +* Type: URL + +The base URL of the npm registry. + + + + #### `workspace` * Default: @@ -103,6 +113,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-run-script.md b/deps/npm/docs/content/commands/npm-run-script.md index 79b7c9a25780e6..73c4b1c7a748a7 100644 --- a/deps/npm/docs/content/commands/npm-run-script.md +++ b/deps/npm/docs/content/commands/npm-run-script.md @@ -203,6 +203,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + @@ -218,6 +220,8 @@ it's present and fail if the script fails. This is useful, for example, when running scripts that may only apply for some builds in an otherwise generic CI setup. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-set-script.md b/deps/npm/docs/content/commands/npm-set-script.md index 2d8e87db852196..8695b43f14423e 100644 --- a/deps/npm/docs/content/commands/npm-set-script.md +++ b/deps/npm/docs/content/commands/npm-set-script.md @@ -7,6 +7,8 @@ description: Set tasks in the scripts section of package.json ### Synopsis An npm command that lets you create a task in the `scripts` section of the `package.json`. +Deprecated. + @@ -97,6 +99,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-star.md b/deps/npm/docs/content/commands/npm-star.md index bbec7ac5f9263f..00ef17a816b4ae 100644 --- a/deps/npm/docs/content/commands/npm-star.md +++ b/deps/npm/docs/content/commands/npm-star.md @@ -69,6 +69,20 @@ false, it uses ascii characters instead of unicode glyphs. +#### `otp` + +* Default: null +* Type: null or String + +This is a one-time password from a two-factor authenticator. It's needed +when publishing or changing package permissions with `npm access`. + +If not set, and a registry response fails with a challenge for a one-time +password, npm will prompt on the command line for one. + + + + ### See Also diff --git a/deps/npm/docs/content/commands/npm-uninstall.md b/deps/npm/docs/content/commands/npm-uninstall.md index 9316c686d4095c..e39c7e328b20ad 100644 --- a/deps/npm/docs/content/commands/npm-uninstall.md +++ b/deps/npm/docs/content/commands/npm-uninstall.md @@ -30,7 +30,7 @@ It also removes the package from the `dependencies`, `devDependencies`, `optionalDependencies`, and `peerDependencies` objects in your `package.json`. -Futher, if you have an `npm-shrinkwrap.json` or `package-lock.json`, npm +Further, if you have an `npm-shrinkwrap.json` or `package-lock.json`, npm will update those files as well. `--no-save` will tell npm not to remove the package from your @@ -70,8 +70,7 @@ npm uninstall lodash --no-save #### `save` -* Default: `true` unless when using `npm update` or `npm dedupe` where it - defaults to `false` +* Default: `true` unless when using `npm update` where it defaults to `false` * Type: Boolean Save installed packages to a `package.json` file as dependencies. @@ -141,6 +140,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-update.md b/deps/npm/docs/content/commands/npm-update.md index aff46b1e5b5576..421d04ca3dc583 100644 --- a/deps/npm/docs/content/commands/npm-update.md +++ b/deps/npm/docs/content/commands/npm-update.md @@ -171,8 +171,7 @@ be _downgraded_. #### `save` -* Default: `true` unless when using `npm update` or `npm dedupe` where it - defaults to `false` +* Default: `true` unless when using `npm update` where it defaults to `false` * Type: Boolean Save installed packages to a `package.json` file as dependencies. @@ -281,10 +280,6 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use `npm prune`. - This configuration does not affect `npm ci`. @@ -433,6 +428,20 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + + + + +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + diff --git a/deps/npm/docs/content/commands/npm-version.md b/deps/npm/docs/content/commands/npm-version.md index 713e5ae410dfc4..8e3334d7889848 100644 --- a/deps/npm/docs/content/commands/npm-version.md +++ b/deps/npm/docs/content/commands/npm-version.md @@ -166,6 +166,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/commands/npm-view.md b/deps/npm/docs/content/commands/npm-view.md index b50b4bfb56c5d6..0ef17d8adfb39b 100644 --- a/deps/npm/docs/content/commands/npm-view.md +++ b/deps/npm/docs/content/commands/npm-view.md @@ -180,6 +180,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + diff --git a/deps/npm/docs/content/configuring-npm/package-json.md b/deps/npm/docs/content/configuring-npm/package-json.md index 0c2047ad9abe08..8b188cfb0b9380 100644 --- a/deps/npm/docs/content/configuring-npm/package-json.md +++ b/deps/npm/docs/content/configuring-npm/package-json.md @@ -643,6 +643,26 @@ git+https://isaacs@github.com/npm/cli.git git://github.com/npm/cli.git#v1.0.27 ``` +When installing from a `git` repository, the presence of certain fields in the +`package.json` will cause npm to believe it needs to perform a build. To do so +your repository will be cloned into a temporary directory, all of its deps +installed, relevant scripts run, and the resulting directory packed and +installed. + +This flow will occur if your git dependency uses `workspaces`, or if any of the +following scripts are present: + +* `build` +* `prepare` +* `prepack` +* `preinstall` +* `install` +* `postinstall` + +If your git repository includes pre-built artifacts, you will likely want to +make sure that none of the above scripts are defined, or your dependency +will be rebuilt for every installation. + #### GitHub URLs As of version 1.1.65, you can refer to GitHub urls as just "foo": diff --git a/deps/npm/docs/content/using-npm/config.md b/deps/npm/docs/content/using-npm/config.md index 39870922c0253c..6ef854eb6e0ff4 100644 --- a/deps/npm/docs/content/using-npm/config.md +++ b/deps/npm/docs/content/using-npm/config.md @@ -68,6 +68,7 @@ The following shorthands are parsed on the command-line: * `--desc`: `--description` * `-f`: `--force` * `-g`: `--global` +* `--iwr`: `--include-workspace-root` * `-L`: `--location` * `-d`: `--loglevel info` * `-s`: `--loglevel silent` @@ -138,6 +139,8 @@ npm ls --global --parseable --long --loglevel info * Type: null or String A basic-auth string to use when authenticating against the npm registry. +This will ONLY be used to authenticate against the npm registry. For other +registries you will need to scope it like "//other-registry.tld/:_auth" Warning: This should generally not be set via a command-line option. It is safer to use a registry-provided authentication bearer token stored in the @@ -762,6 +765,8 @@ it's present and fail if the script fails. This is useful, for example, when running scripts that may only apply for some builds in an otherwise generic CI setup. +This value is not exported to the environment for child processes. + @@ -819,6 +824,8 @@ When false, specifying individual workspaces via the `workspace` config, or all workspaces via the `workspaces` flag, will cause npm to operate only on the specified workspaces, and not on the root project. +This value is not exported to the environment for child processes. + @@ -887,6 +894,18 @@ number, if not already set in package.json. +#### `install-links` + +* Default: false +* Type: Boolean + +When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces. + + + + #### `json` * Default: false @@ -982,6 +1001,15 @@ npm registry. Must be IPv4 in versions of Node prior to 0.12. When passed to `npm config` this refers to which config file to use. +When set to "global" mode, packages are installed into the `prefix` folder +instead of the current working directory. See +[folders](/configuring-npm/folders) for more on the differences in behavior. + +* packages are installed into the `{prefix}/lib/node_modules` folder, instead + of the current working directory. +* bin files are linked to `{prefix}/bin` +* man pages are linked to `{prefix}/share/man` + @@ -1159,6 +1187,19 @@ variable will be set to `'production'` for all lifecycle scripts. +#### `omit-lockfile-registry-resolved` + +* Default: false +* Type: Boolean + +This option causes npm to create lock files without a `resolved` key for +registry dependencies. Subsequent installs will need to resolve tarball +endpoints with the configured registry, likely resulting in a longer install +time. + + + + #### `otp` * Default: null @@ -1201,10 +1242,6 @@ The package to install for [`npm exec`](/commands/npm-exec) If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use `npm prune`. - This configuration does not affect `npm ci`. @@ -1343,8 +1380,7 @@ The base URL of the npm registry. #### `save` -* Default: `true` unless when using `npm update` or `npm dedupe` where it - defaults to `false` +* Default: `true` unless when using `npm update` where it defaults to `false` * Type: Boolean Save installed packages to a `package.json` file as dependencies. @@ -1872,12 +1908,14 @@ When set to `dev` or `development`, this is an alias for `--include=dev`. #### `auth-type` * Default: "legacy" -* Type: "legacy", "sso", "saml", or "oauth" -* DEPRECATED: This method of SSO/SAML/OAuth is deprecated and will be removed - in a future version of npm in favor of web-based login. +* Type: "legacy", "webauthn", "sso", "saml", or "oauth" +* DEPRECATED: The SSO/SAML/OAuth methods are deprecated and will be removed in + a future version of npm in favor of web-based login. What authentication strategy to use with `adduser`/`login`. +Pass `webauthn` to use a web-based login. + diff --git a/deps/npm/docs/content/using-npm/scope.md b/deps/npm/docs/content/using-npm/scope.md index 911d7ea5177c94..ca5903e78c0d95 100644 --- a/deps/npm/docs/content/using-npm/scope.md +++ b/deps/npm/docs/content/using-npm/scope.md @@ -79,9 +79,23 @@ If you wish, you may associate a scope with a registry; see below. #### Publishing public scoped packages to the primary npm registry -To publish a public scoped package, you must specify `--access public` with -the initial publication. This will publish the package and set access -to `public` as if you had run `npm access public` after publishing. +Publishing to a scope, you have two options: + +- Publishing to your user scope (example: `@username/module`) +- Publishing to an organization scope (example: `@org/module`) + +If publishing a public module to an organization scope, you must +first either create an organization with the name of the scope +that you'd like to publish to or be added to an existing organization +with the appropriate permisssions. For example, if you'd like to +publish to `@org`, you would need to create the `org` organization +on npmjs.com prior to trying to publish. + +Scoped packages are not public by default. You will need to specify +`--access public` with the initial `npm publish` command. This will publish +the package and set access to `public` as if you had run `npm access public` +after publishing. You do not need to do this when publishing new versions of +an existing scoped package. #### Publishing private scoped packages to the npm registry diff --git a/deps/npm/docs/content/using-npm/scripts.md b/deps/npm/docs/content/using-npm/scripts.md index b37ca593e4ce63..381c0a71812f09 100644 --- a/deps/npm/docs/content/using-npm/scripts.md +++ b/deps/npm/docs/content/using-npm/scripts.md @@ -203,6 +203,12 @@ will default the `start` command to `node server.js`. `prestart` and * `test` * `posttest` +#### [`npm version`](/commands/npm-version) + +* `preversion` +* `version` +* `postversion` + #### A Note on a lack of [`npm uninstall`](/commands/npm-uninstall) scripts While npm v6 had `uninstall` lifecycle scripts, npm v7 does not. Removal of a package can happen for a wide variety of reasons, and there's no clear way to currently give the script enough context to be useful. diff --git a/deps/npm/docs/output/commands/npm-adduser.html b/deps/npm/docs/output/commands/npm-adduser.html index c0b870e534631e..3b8eaa3159dda3 100644 --- a/deps/npm/docs/output/commands/npm-adduser.html +++ b/deps/npm/docs/output/commands/npm-adduser.html @@ -142,7 +142,7 @@

npm-adduser

Table of contents

- +

Synopsis

@@ -204,6 +204,17 @@

scope

+

auth-type

+
    +
  • Default: "legacy"
  • +
  • Type: "legacy", "webauthn", "sso", "saml", or "oauth"
  • +
  • DEPRECATED: The SSO/SAML/OAuth methods are deprecated and will be removed in +a future version of npm in favor of web-based login.
  • +
+

What authentication strategy to use with adduser/login.

+

Pass webauthn to use a web-based login.

+ +

See Also

    diff --git a/deps/npm/docs/output/commands/npm-audit.html b/deps/npm/docs/output/commands/npm-audit.html index 33c2a803c2a876..af627aff7701a1 100644 --- a/deps/npm/docs/output/commands/npm-audit.html +++ b/deps/npm/docs/output/commands/npm-audit.html @@ -142,7 +142,7 @@

    npm-audit

    Table of contents

    - +

    Synopsis

    @@ -439,6 +439,17 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    + + + +
      +
    • Default: false
    • +
    • Type: Boolean
    • +
    +

    When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

    diff --git a/deps/npm/docs/output/commands/npm-bugs.html b/deps/npm/docs/output/commands/npm-bugs.html index 3b5bed07593a65..28fdc0c643885a 100644 --- a/deps/npm/docs/output/commands/npm-bugs.html +++ b/deps/npm/docs/output/commands/npm-bugs.html @@ -142,14 +142,14 @@

    npm-bugs

    Table of contents

    - +

    Synopsis

    -
    npm bugs [<pkgname>]
    +
    npm bugs [<pkgname> [<pkgname> ...]]
     
     alias: issues
     
    @@ -184,6 +184,57 @@

    registry

    The base URL of the npm registry.

    +

    workspace

    +
      +
    • Default:
    • +
    • Type: String (can be set multiple times)
    • +
    +

    Enable running a command in the context of the configured workspaces of the +current project while filtering by running only the workspaces defined by +this configuration option.

    +

    Valid values for the workspace config are either:

    +
      +
    • Workspace names
    • +
    • Path to a workspace directory
    • +
    • Path to a parent workspace directory (will result in selecting all +workspaces within that folder)
    • +
    +

    When set for the npm init command, this may be set to the folder of a +workspace which does not yet exist, to create the folder and set it up as a +brand new workspace within the project.

    +

    This value is not exported to the environment for child processes.

    + + +

    workspaces

    +
      +
    • Default: null
    • +
    • Type: null or Boolean
    • +
    +

    Set to true to run the command in the context of all configured +workspaces.

    +

    Explicitly setting this to false will cause commands like install to +ignore workspaces altogether. When not set explicitly:

    +
      +
    • Commands that operate on the node_modules tree (install, update, etc.) +will link workspaces into the node_modules folder. - Commands that do +other things (test, exec, publish, etc.) will operate on the root project, +unless one or more workspaces are specified in the workspace config.
    • +
    +

    This value is not exported to the environment for child processes.

    + + +

    include-workspace-root

    +
      +
    • Default: false
    • +
    • Type: Boolean
    • +
    +

    Include the workspace root when workspaces are enabled for a command.

    +

    When false, specifying individual workspaces via the workspace config, or +all workspaces via the workspaces flag, will cause npm to operate only on +the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    + +

    See Also

      diff --git a/deps/npm/docs/output/commands/npm-ci.html b/deps/npm/docs/output/commands/npm-ci.html index bbacda33a5174e..4f9a194ae57e54 100644 --- a/deps/npm/docs/output/commands/npm-ci.html +++ b/deps/npm/docs/output/commands/npm-ci.html @@ -137,7 +137,7 @@

      npm-ci

      -Install a project with a clean slate +Clean install a project
      @@ -161,12 +161,7 @@

      Description

      it's meant to be used in automated environments such as test platforms, continuous integration, and deployment -- or any situation where you want to make sure you're doing a clean install of your dependencies.

      -

      npm ci will be significantly faster when:

      -
        -
      • There is a package-lock.json or npm-shrinkwrap.json file.
      • -
      • The node_modules folder is missing or empty.
      • -
      -

      In short, the main differences between using npm install and npm ci are:

      +

      The main differences between using npm install and npm ci are:

      • The project must have an existing package-lock.json or npm-shrinkwrap.json.
      • @@ -179,6 +174,13 @@

        Description

      • It will never write to package.json or any of the package-locks: installs are essentially frozen.
      +

      NOTE: If you create your package-lock.json file by running npm install +with flags that can affect the shape of your dependency tree, such as +--legacy-peer-deps or --install-links, you must provide the same +flags to npm ci or you are likely to encounter errors. An easy way to do +this is to run, for example, +npm config set legacy-peer-deps=true --location=project and commit the +.npmrc file to your repo.

      Example

      Make sure you have a package-lock and an up-to-date install:

      $ cd ./my/npm/project
      diff --git a/deps/npm/docs/output/commands/npm-config.html b/deps/npm/docs/output/commands/npm-config.html
      index f8b279756dfe16..184895e036fc0a 100644
      --- a/deps/npm/docs/output/commands/npm-config.html
      +++ b/deps/npm/docs/output/commands/npm-config.html
      @@ -251,6 +251,15 @@ 

      location

    • Type: "global", "user", or "project"

    When passed to npm config this refers to which config file to use.

    +

    When set to "global" mode, packages are installed into the prefix folder +instead of the current working directory. See +folders for more on the differences in behavior.

    +
      +
    • packages are installed into the {prefix}/lib/node_modules folder, instead +of the current working directory.
    • +
    • bin files are linked to {prefix}/bin
    • +
    • man pages are linked to {prefix}/share/man
    • +

    long

    diff --git a/deps/npm/docs/output/commands/npm-dedupe.html b/deps/npm/docs/output/commands/npm-dedupe.html index 8d7e42ad46ac93..89d62caf702327 100644 --- a/deps/npm/docs/output/commands/npm-dedupe.html +++ b/deps/npm/docs/output/commands/npm-dedupe.html @@ -142,7 +142,7 @@

    npm-dedupe

    Table of contents

    - +

    Synopsis

    @@ -197,11 +197,9 @@

    Description

    Note that this operation transforms the dependency tree, but will never result in new modules being installed.

    Using npm find-dupes will run the command in --dry-run mode.

    -

    Note that by default npm dedupe will not update the semver values of direct -dependencies in your project package.json, if you want to also update -values in package.json you can run: npm dedupe --save (or add the -save=true option to a configuration file -to make that the default behavior).

    +

    Note: npm dedupe will never update the semver values of direct +dependencies in your project package.json, if you want to update +values in package.json you can run: npm update --save instead.

    Configuration

    @@ -255,24 +253,9 @@

    package-lock

If set to false, then ignore package-lock.json files when installing. This will also prevent writing package-lock.json if save is true.

-

When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use npm prune.

This configuration does not affect npm ci.

-

save

-
    -
  • Default: true unless when using npm update or npm dedupe where it -defaults to false
  • -
  • Type: Boolean
  • -
-

Save installed packages to a package.json file as dependencies.

-

When used with the npm rm command, removes the dependency from -package.json.

-

Will also prevent writing to package-lock.json if set to false.

- -

omit

  • Default: 'dev' if the NODE_ENV environment variable is set to @@ -394,6 +377,17 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    + + + +
      +
    • Default: false
    • +
    • Type: Boolean
    • +
    +

    When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

    diff --git a/deps/npm/docs/output/commands/npm-diff.html b/deps/npm/docs/output/commands/npm-diff.html index c26aa27e8a0011..13ed989c461801 100644 --- a/deps/npm/docs/output/commands/npm-diff.html +++ b/deps/npm/docs/output/commands/npm-diff.html @@ -407,6 +407,7 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    diff --git a/deps/npm/docs/output/commands/npm-dist-tag.html b/deps/npm/docs/output/commands/npm-dist-tag.html index 8cadd42dcc4d26..8615aec686f79d 100644 --- a/deps/npm/docs/output/commands/npm-dist-tag.html +++ b/deps/npm/docs/output/commands/npm-dist-tag.html @@ -267,6 +267,7 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    diff --git a/deps/npm/docs/output/commands/npm-docs.html b/deps/npm/docs/output/commands/npm-docs.html index c25f8abf9b7bfb..8155100d2259d9 100644 --- a/deps/npm/docs/output/commands/npm-docs.html +++ b/deps/npm/docs/output/commands/npm-docs.html @@ -233,6 +233,7 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    diff --git a/deps/npm/docs/output/commands/npm-exec.html b/deps/npm/docs/output/commands/npm-exec.html index 4a5f14389c009e..7a5195ba4a2630 100644 --- a/deps/npm/docs/output/commands/npm-exec.html +++ b/deps/npm/docs/output/commands/npm-exec.html @@ -298,6 +298,7 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    diff --git a/deps/npm/docs/output/commands/npm-find-dupes.html b/deps/npm/docs/output/commands/npm-find-dupes.html index c5685458d9629f..0e3ee0856096ab 100644 --- a/deps/npm/docs/output/commands/npm-find-dupes.html +++ b/deps/npm/docs/output/commands/npm-find-dupes.html @@ -142,7 +142,7 @@

    npm-find-dupes

    Table of contents

    - +

    Synopsis

    @@ -210,9 +210,6 @@

    package-lock

If set to false, then ignore package-lock.json files when installing. This will also prevent writing package-lock.json if save is true.

-

When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use npm prune.

This configuration does not affect npm ci.

@@ -324,6 +321,17 @@

include-workspace-root

When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

+

This value is not exported to the environment for child processes.

+ + + +
    +
  • Default: false
  • +
  • Type: Boolean
  • +
+

When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

diff --git a/deps/npm/docs/output/commands/npm-init.html b/deps/npm/docs/output/commands/npm-init.html index c8dece27945345..b25bfec2d4ffe4 100644 --- a/deps/npm/docs/output/commands/npm-init.html +++ b/deps/npm/docs/output/commands/npm-init.html @@ -142,7 +142,7 @@

npm-init

Table of contents

- +

Synopsis

@@ -339,6 +339,15 @@

workspaces

This value is not exported to the environment for child processes.

+

workspaces-update

+
    +
  • Default: true
  • +
  • Type: Boolean
  • +
+

If set to true, the npm cli will run an update after operations that may +possibly change the workspaces installed to the node_modules folder.

+ +

include-workspace-root

If set to false, then ignore package-lock.json files when installing. This will also prevent writing package-lock.json if save is true.

-

When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use npm prune.

This configuration does not affect npm ci.

@@ -397,6 +393,17 @@

include-workspace-root

When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

+

This value is not exported to the environment for child processes.

+ + + +
    +
  • Default: false
  • +
  • Type: Boolean
  • +
+

When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

diff --git a/deps/npm/docs/output/commands/npm-install.html b/deps/npm/docs/output/commands/npm-install.html index 3fcc2ddf9cb821..509702b5bd4ead 100644 --- a/deps/npm/docs/output/commands/npm-install.html +++ b/deps/npm/docs/output/commands/npm-install.html @@ -142,7 +142,7 @@

npm-install

Table of contents

- +

Synopsis

@@ -221,10 +221,10 @@

Description

npm will not install the package dependencies in the directory <folder>, but it will create a symlink to <folder>.

-

NOTE: If you want to install the content of a directory like a package from the registry instead of creating a link, you would need to use npm pack while in the <folder> directory, and then install the resulting tarball instead of the <folder> using npm install <tarball file>

+

NOTE: If you want to install the content of a directory like a package from the registry instead of creating a link, you would need to use the --install-links option.

Example:

-
npm install ../../other-package
+
npm install ../../other-package --install-links
 npm install ./sub-package
 
@@ -500,8 +500,7 @@

Configuration

save

    -
  • Default: true unless when using npm update or npm dedupe where it -defaults to false
  • +
  • Default: true unless when using npm update where it defaults to false
  • Type: Boolean

Save installed packages to a package.json file as dependencies.

@@ -600,9 +599,6 @@

package-lock

If set to false, then ignore package-lock.json files when installing. This will also prevent writing package-lock.json if save is true.

-

When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use npm prune.

This configuration does not affect npm ci.

@@ -723,6 +719,17 @@

include-workspace-root

When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

+

This value is not exported to the environment for child processes.

+ + + +
    +
  • Default: false
  • +
  • Type: Boolean
  • +
+

When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

diff --git a/deps/npm/docs/output/commands/npm-link.html b/deps/npm/docs/output/commands/npm-link.html index a659cb16c26de1..f7d5f66a9e2bd2 100644 --- a/deps/npm/docs/output/commands/npm-link.html +++ b/deps/npm/docs/output/commands/npm-link.html @@ -142,7 +142,7 @@

npm-link

Table of contents

- +

Synopsis

@@ -229,8 +229,7 @@

Configuration

save

    -
  • Default: true unless when using npm update or npm dedupe where it -defaults to false
  • +
  • Default: true unless when using npm update where it defaults to false
  • Type: Boolean

Save installed packages to a package.json file as dependencies.

@@ -313,9 +312,6 @@

package-lock

If set to false, then ignore package-lock.json files when installing. This will also prevent writing package-lock.json if save is true.

-

When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use npm prune.

This configuration does not affect npm ci.

@@ -440,6 +436,17 @@

include-workspace-root

When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

+

This value is not exported to the environment for child processes.

+ + + +
    +
  • Default: false
  • +
  • Type: Boolean
  • +
+

When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

diff --git a/deps/npm/docs/output/commands/npm-ls.html b/deps/npm/docs/output/commands/npm-ls.html index 798b6f0f2ce357..7b1c29f9a80639 100644 --- a/deps/npm/docs/output/commands/npm-ls.html +++ b/deps/npm/docs/output/commands/npm-ls.html @@ -142,7 +142,7 @@

npm-ls

Table of contents

- +

Synopsis

@@ -166,7 +166,7 @@

Description

the results to only the paths to the packages named. Note that nested packages will also show the paths to the specified packages. For example, running npm ls promzard in npm's source tree will show:

-
npm@8.6.0 /path/to/npm
+
npm@8.12.1 /path/to/npm
 └─┬ init-package-json@0.0.4
   └── promzard@0.1.5
 
@@ -363,6 +363,17 @@

include-workspace-root

When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

+

This value is not exported to the environment for child processes.

+ + + +
    +
  • Default: false
  • +
  • Type: Boolean
  • +
+

When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

diff --git a/deps/npm/docs/output/commands/npm-owner.html b/deps/npm/docs/output/commands/npm-owner.html index b76967a18dad18..744f7821408fd5 100644 --- a/deps/npm/docs/output/commands/npm-owner.html +++ b/deps/npm/docs/output/commands/npm-owner.html @@ -142,7 +142,7 @@

npm-owner

Table of contents

- +

Synopsis

@@ -198,6 +198,45 @@

otp

password, npm will prompt on the command line for one.

+

workspace

+
    +
  • Default:
  • +
  • Type: String (can be set multiple times)
  • +
+

Enable running a command in the context of the configured workspaces of the +current project while filtering by running only the workspaces defined by +this configuration option.

+

Valid values for the workspace config are either:

+
    +
  • Workspace names
  • +
  • Path to a workspace directory
  • +
  • Path to a parent workspace directory (will result in selecting all +workspaces within that folder)
  • +
+

When set for the npm init command, this may be set to the folder of a +workspace which does not yet exist, to create the folder and set it up as a +brand new workspace within the project.

+

This value is not exported to the environment for child processes.

+ + +

workspaces

+
    +
  • Default: null
  • +
  • Type: null or Boolean
  • +
+

Set to true to run the command in the context of all configured +workspaces.

+

Explicitly setting this to false will cause commands like install to +ignore workspaces altogether. When not set explicitly:

+
    +
  • Commands that operate on the node_modules tree (install, update, etc.) +will link workspaces into the node_modules folder. - Commands that do +other things (test, exec, publish, etc.) will operate on the root project, +unless one or more workspaces are specified in the workspace config.
  • +
+

This value is not exported to the environment for child processes.

+ +

See Also

    diff --git a/deps/npm/docs/output/commands/npm-pack.html b/deps/npm/docs/output/commands/npm-pack.html index bdd4b01af46f04..86e45cb303ae36 100644 --- a/deps/npm/docs/output/commands/npm-pack.html +++ b/deps/npm/docs/output/commands/npm-pack.html @@ -240,6 +240,7 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    diff --git a/deps/npm/docs/output/commands/npm-pkg.html b/deps/npm/docs/output/commands/npm-pkg.html index 221afc4e594b2b..95635ee6028383 100644 --- a/deps/npm/docs/output/commands/npm-pkg.html +++ b/deps/npm/docs/output/commands/npm-pkg.html @@ -192,6 +192,11 @@

    Description

    contributor in the list, you can run:

    npm pkg get contributors[0].email
     
    +

    For complex fields you can also name a property in square brackets +to specifically select a child field. This is especially helpful +with the exports object:

    +
    npm pkg get "exports[.].require"
    +
  • npm pkg set <field>=<value>

    diff --git a/deps/npm/docs/output/commands/npm-prune.html b/deps/npm/docs/output/commands/npm-prune.html index 08df537cf8c443..0a248629bd8291 100644 --- a/deps/npm/docs/output/commands/npm-prune.html +++ b/deps/npm/docs/output/commands/npm-prune.html @@ -142,7 +142,7 @@

    npm-prune

    Table of contents

    - +

    Synopsis

    @@ -288,6 +288,17 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    + + + +
      +
    • Default: false
    • +
    • Type: Boolean
    • +
    +

    When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

    diff --git a/deps/npm/docs/output/commands/npm-publish.html b/deps/npm/docs/output/commands/npm-publish.html index f46fd310d0cd13..23e5f11ea0e927 100644 --- a/deps/npm/docs/output/commands/npm-publish.html +++ b/deps/npm/docs/output/commands/npm-publish.html @@ -355,6 +355,7 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    diff --git a/deps/npm/docs/output/commands/npm-rebuild.html b/deps/npm/docs/output/commands/npm-rebuild.html index 139d1591ed3efc..f4524f1a4f0baa 100644 --- a/deps/npm/docs/output/commands/npm-rebuild.html +++ b/deps/npm/docs/output/commands/npm-rebuild.html @@ -142,7 +142,7 @@

    npm-rebuild

    Table of contents

    - +

    Synopsis

    @@ -269,6 +269,17 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    + + + +
      +
    • Default: false
    • +
    • Type: Boolean
    • +
    +

    When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

    diff --git a/deps/npm/docs/output/commands/npm-repo.html b/deps/npm/docs/output/commands/npm-repo.html index b5fedd5ac92ae6..24197ef0ea193c 100644 --- a/deps/npm/docs/output/commands/npm-repo.html +++ b/deps/npm/docs/output/commands/npm-repo.html @@ -142,7 +142,7 @@

    npm-repo

    Table of contents

    - +

    Synopsis

    @@ -174,6 +174,14 @@

    browser

    Set to true to use default system URL opener.

    +

    registry

    + +

    The base URL of the npm registry.

    + +

    workspace

    • Default:
    • @@ -222,6 +230,7 @@

      include-workspace-root

      When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

      +

      This value is not exported to the environment for child processes.

      diff --git a/deps/npm/docs/output/commands/npm-run-script.html b/deps/npm/docs/output/commands/npm-run-script.html index 07fc79127d0b6f..6211c2b55efcfc 100644 --- a/deps/npm/docs/output/commands/npm-run-script.html +++ b/deps/npm/docs/output/commands/npm-run-script.html @@ -290,6 +290,7 @@

      include-workspace-root

      When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

      +

      This value is not exported to the environment for child processes.

      if-present

      @@ -303,6 +304,7 @@

      if-present

      it's present and fail if the script fails. This is useful, for example, when running scripts that may only apply for some builds in an otherwise generic CI setup.

      +

      This value is not exported to the environment for child processes.

      ignore-scripts

      diff --git a/deps/npm/docs/output/commands/npm-set-script.html b/deps/npm/docs/output/commands/npm-set-script.html index cb66491d07c406..d9bc6b60771e9d 100644 --- a/deps/npm/docs/output/commands/npm-set-script.html +++ b/deps/npm/docs/output/commands/npm-set-script.html @@ -147,6 +147,7 @@

      Table of contents

      Synopsis

      An npm command that lets you create a task in the scripts section of the package.json.

      +

      Deprecated.

      @@ -219,6 +220,7 @@

      include-workspace-root

      When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

      +

      This value is not exported to the environment for child processes.

      diff --git a/deps/npm/docs/output/commands/npm-star.html b/deps/npm/docs/output/commands/npm-star.html index 42143bed974a3c..bc1f7ae76992dd 100644 --- a/deps/npm/docs/output/commands/npm-star.html +++ b/deps/npm/docs/output/commands/npm-star.html @@ -142,7 +142,7 @@

      npm-star

      Table of contents

      - +

      Synopsis

      @@ -188,6 +188,17 @@

      unicode

      false, it uses ascii characters instead of unicode glyphs.

      +

      otp

      +
        +
      • Default: null
      • +
      • Type: null or String
      • +
      +

      This is a one-time password from a two-factor authenticator. It's needed +when publishing or changing package permissions with npm access.

      +

      If not set, and a registry response fails with a challenge for a one-time +password, npm will prompt on the command line for one.

      + +

      See Also

      If set to false, then ignore package-lock.json files when installing. This will also prevent writing package-lock.json if save is true.

      -

      When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use npm prune.

      This configuration does not affect npm ci.

      @@ -476,6 +472,17 @@

      include-workspace-root

      When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

      +

      This value is not exported to the environment for child processes.

      + + + +
        +
      • Default: false
      • +
      • Type: Boolean
      • +
      +

      When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

      diff --git a/deps/npm/docs/output/commands/npm-version.html b/deps/npm/docs/output/commands/npm-version.html index 2cb99f3bc07a66..3bab12fec165a7 100644 --- a/deps/npm/docs/output/commands/npm-version.html +++ b/deps/npm/docs/output/commands/npm-version.html @@ -276,6 +276,7 @@

      include-workspace-root

      When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

      +

      This value is not exported to the environment for child processes.

      diff --git a/deps/npm/docs/output/commands/npm-view.html b/deps/npm/docs/output/commands/npm-view.html index e2b9a4ffec1ca8..0eb17026a77b39 100644 --- a/deps/npm/docs/output/commands/npm-view.html +++ b/deps/npm/docs/output/commands/npm-view.html @@ -270,6 +270,7 @@

      include-workspace-root

      When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

      +

      This value is not exported to the environment for child processes.

      diff --git a/deps/npm/docs/output/commands/npm.html b/deps/npm/docs/output/commands/npm.html index c1f1667d85c708..040166af65cabb 100644 --- a/deps/npm/docs/output/commands/npm.html +++ b/deps/npm/docs/output/commands/npm.html @@ -149,7 +149,7 @@

      Table of contents

      Version

      -

      8.6.0

      +

      8.12.1

      Description

      npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency diff --git a/deps/npm/docs/output/configuring-npm/package-json.html b/deps/npm/docs/output/configuring-npm/package-json.html index b318eee5795193..d5860ee6e299a1 100644 --- a/deps/npm/docs/output/configuring-npm/package-json.html +++ b/deps/npm/docs/output/configuring-npm/package-json.html @@ -629,6 +629,24 @@

      Git URLs as Dependencies

      git+https://isaacs@github.com/npm/cli.git git://github.com/npm/cli.git#v1.0.27
+

When installing from a git repository, the presence of certain fields in the +package.json will cause npm to believe it needs to perform a build. To do so +your repository will be cloned into a temporary directory, all of its deps +installed, relevant scripts run, and the resulting directory packed and +installed.

+

This flow will occur if your git dependency uses workspaces, or if any of the +following scripts are present:

+
    +
  • build
  • +
  • prepare
  • +
  • prepack
  • +
  • preinstall
  • +
  • install
  • +
  • postinstall
  • +
+

If your git repository includes pre-built artifacts, you will likely want to +make sure that none of the above scripts are defined, or your dependency +will be rebuilt for every installation.

GitHub URLs

As of version 1.1.65, you can refer to GitHub urls as just "foo": "user/foo-project". Just as with git URLs, a commit-ish suffix can be diff --git a/deps/npm/docs/output/using-npm/config.html b/deps/npm/docs/output/using-npm/config.html index db165abd3f04b5..4ec52124ffe563 100644 --- a/deps/npm/docs/output/using-npm/config.html +++ b/deps/npm/docs/output/using-npm/config.html @@ -142,7 +142,7 @@

config

Table of contents

-
+

Description

@@ -196,6 +196,7 @@

Shorthands and Other CLI Niceties

--desc: --description
  • -f: --force
  • -g: --global
  • +
  • --iwr: --include-workspace-root
  • -L: --location
  • -d: --loglevel info
  • -s: --loglevel silent
  • @@ -257,7 +258,9 @@

    _auth

  • Default: null
  • Type: null or String
  • -

    A basic-auth string to use when authenticating against the npm registry.

    +

    A basic-auth string to use when authenticating against the npm registry. +This will ONLY be used to authenticate against the npm registry. For other +registries you will need to scope it like "//other-registry.tld/:_auth"

    Warning: This should generally not be set via a command-line option. It is safer to use a registry-provided authentication bearer token stored in the ~/.npmrc file by running npm login.

    @@ -761,6 +764,7 @@

    if-present

    it's present and fail if the script fails. This is useful, for example, when running scripts that may only apply for some builds in an otherwise generic CI setup.

    +

    This value is not exported to the environment for child processes.

    ignore-scripts

    @@ -805,6 +809,7 @@

    include-workspace-root

    When false, specifying individual workspaces via the workspace config, or all workspaces via the workspaces flag, will cause npm to operate only on the specified workspaces, and not on the root project.

    +

    This value is not exported to the environment for child processes.

    init-author-email

    @@ -860,6 +865,16 @@

    init-version

    number, if not already set in package.json.

    + +
      +
    • Default: false
    • +
    • Type: Boolean
    • +
    +

    When set file: protocol dependencies that exist outside of the project root +will be packed and installed as regular dependencies instead of creating a +symlink. This option has no effect on workspaces.

    + +

    json

    • Default: false
    • @@ -936,6 +951,15 @@

      location

    • Type: "global", "user", or "project"

    When passed to npm config this refers to which config file to use.

    +

    When set to "global" mode, packages are installed into the prefix folder +instead of the current working directory. See +folders for more on the differences in behavior.

    +
      +
    • packages are installed into the {prefix}/lib/node_modules folder, instead +of the current working directory.
    • +
    • bin files are linked to {prefix}/bin
    • +
    • man pages are linked to {prefix}/share/man
    • +

    lockfile-version

    @@ -1075,6 +1099,17 @@

    omit

    variable will be set to 'production' for all lifecycle scripts.

    +

    omit-lockfile-registry-resolved

    +
      +
    • Default: false
    • +
    • Type: Boolean
    • +
    +

    This option causes npm to create lock files without a resolved key for +registry dependencies. Subsequent installs will need to resolve tarball +endpoints with the configured registry, likely resulting in a longer install +time.

    + +

    otp

    • Default: null
    • @@ -1109,9 +1144,6 @@

      package-lock

    If set to false, then ignore package-lock.json files when installing. This will also prevent writing package-lock.json if save is true.

    -

    When package package-locks are disabled, automatic pruning of extraneous -modules will also be disabled. To remove extraneous modules with -package-locks disabled use npm prune.

    This configuration does not affect npm ci.

    @@ -1223,8 +1255,7 @@

    registry

    save

      -
    • Default: true unless when using npm update or npm dedupe where it -defaults to false
    • +
    • Default: true unless when using npm update where it defaults to false
    • Type: Boolean

    Save installed packages to a package.json file as dependencies.

    @@ -1645,11 +1676,12 @@

    also

    auth-type

    • Default: "legacy"
    • -
    • Type: "legacy", "sso", "saml", or "oauth"
    • -
    • DEPRECATED: This method of SSO/SAML/OAuth is deprecated and will be removed -in a future version of npm in favor of web-based login.
    • +
    • Type: "legacy", "webauthn", "sso", "saml", or "oauth"
    • +
    • DEPRECATED: The SSO/SAML/OAuth methods are deprecated and will be removed in +a future version of npm in favor of web-based login.

    What authentication strategy to use with adduser/login.

    +

    Pass webauthn to use a web-based login.

    cache-max

    diff --git a/deps/npm/docs/output/using-npm/scope.html b/deps/npm/docs/output/using-npm/scope.html index db6fc2a115f496..61ab698b5fbc95 100644 --- a/deps/npm/docs/output/using-npm/scope.html +++ b/deps/npm/docs/output/using-npm/scope.html @@ -194,9 +194,22 @@

    Publishing scoped packages

    does support scoped packages.)

    If you wish, you may associate a scope with a registry; see below.

    Publishing public scoped packages to the primary npm registry

    -

    To publish a public scoped package, you must specify --access public with -the initial publication. This will publish the package and set access -to public as if you had run npm access public after publishing.

    +

    Publishing to a scope, you have two options:

    +
      +
    • Publishing to your user scope (example: @username/module)
    • +
    • Publishing to an organization scope (example: @org/module)
    • +
    +

    If publishing a public module to an organization scope, you must +first either create an organization with the name of the scope +that you'd like to publish to or be added to an existing organization +with the appropriate permisssions. For example, if you'd like to +publish to @org, you would need to create the org organization +on npmjs.com prior to trying to publish.

    +

    Scoped packages are not public by default. You will need to specify +--access public with the initial npm publish command. This will publish +the package and set access to public as if you had run npm access public +after publishing. You do not need to do this when publishing new versions of +an existing scoped package.

    Publishing private scoped packages to the npm registry

    To publish a private scoped package to the npm registry, you must have an npm Private Modules diff --git a/deps/npm/docs/output/using-npm/scripts.html b/deps/npm/docs/output/using-npm/scripts.html index e13d0c488ee8a9..635f0c0acbda82 100644 --- a/deps/npm/docs/output/using-npm/scripts.html +++ b/deps/npm/docs/output/using-npm/scripts.html @@ -142,7 +142,7 @@

    scripts

    Table of contents

    - +

    Description

    @@ -338,6 +338,12 @@

    npm test<
  • test
  • posttest
  • +

    npm version

    +
      +
    • preversion
    • +
    • version
    • +
    • postversion
    • +

    A Note on a lack of npm uninstall scripts

    While npm v6 had uninstall lifecycle scripts, npm v7 does not. Removal of a package can happen for a wide variety of reasons, and there's no clear way to currently give the script enough context to be useful.

    Reasons for a package removal include:

    diff --git a/deps/npm/lib/arborist-cmd.js b/deps/npm/lib/arborist-cmd.js index 6518e91e0ad9d7..5007fbd9244d24 100644 --- a/deps/npm/lib/arborist-cmd.js +++ b/deps/npm/lib/arborist-cmd.js @@ -12,6 +12,7 @@ class ArboristCmd extends BaseCommand { 'workspace', 'workspaces', 'include-workspace-root', + 'install-links', ] static ignoreImplicitWorkspace = false diff --git a/deps/npm/lib/auth/sso.js b/deps/npm/lib/auth/sso.js index 795eb8972a2236..9812a18cb99ca6 100644 --- a/deps/npm/lib/auth/sso.js +++ b/deps/npm/lib/auth/sso.js @@ -36,8 +36,6 @@ function sleep (time) { } const login = async (npm, { creds, registry, scope }) => { - log.warn('deprecated', 'SSO --auth-type is deprecated') - const opts = { ...npm.flatOptions, creds, registry, scope } const { ssoType } = opts diff --git a/deps/npm/lib/commands/adduser.js b/deps/npm/lib/commands/adduser.js index 755abea8eb9ebe..cf467b7a73a5e8 100644 --- a/deps/npm/lib/commands/adduser.js +++ b/deps/npm/lib/commands/adduser.js @@ -3,6 +3,7 @@ const replaceInfo = require('../utils/replace-info.js') const BaseCommand = require('../base-command.js') const authTypes = { legacy: require('../auth/legacy.js'), + webauthn: require('../auth/legacy.js'), oauth: require('../auth/oauth.js'), saml: require('../auth/saml.js'), sso: require('../auth/sso.js'), @@ -14,6 +15,7 @@ class AddUser extends BaseCommand { static params = [ 'registry', 'scope', + 'auth-type', ] static ignoreImplicitWorkspace = true diff --git a/deps/npm/lib/commands/bin.js b/deps/npm/lib/commands/bin.js index 4200d5b8ca556a..9ba3cb4003241b 100644 --- a/deps/npm/lib/commands/bin.js +++ b/deps/npm/lib/commands/bin.js @@ -15,7 +15,7 @@ class Bin extends BaseCommand { async exec (args) { const b = this.npm.bin this.npm.output(b) - if (this.npm.config.get('global') && !path.split(delimiter).includes(b)) { + if (this.npm.global && !path.split(delimiter).includes(b)) { log.error('bin', '(not in PATH env variable)') } } diff --git a/deps/npm/lib/commands/birthday.js b/deps/npm/lib/commands/birthday.js index c7b5b31c54a62a..cdd6db62869059 100644 --- a/deps/npm/lib/commands/birthday.js +++ b/deps/npm/lib/commands/birthday.js @@ -1,13 +1,15 @@ const BaseCommand = require('../base-command.js') +const log = require('../utils/log-shim') class Birthday extends BaseCommand { static name = 'birthday' - static description = 'Birthday' + static description = 'Birthday, deprecated' static ignoreImplicitWorkspace = true static isShellout = true async exec () { this.npm.config.set('yes', true) + log.warn('birthday', 'birthday is deprecated and will be removed in a future release') return this.npm.exec('exec', ['@npmcli/npm-birthday']) } } diff --git a/deps/npm/lib/commands/bugs.js b/deps/npm/lib/commands/bugs.js index f6218f033f3d3d..17cbd96649b871 100644 --- a/deps/npm/lib/commands/bugs.js +++ b/deps/npm/lib/commands/bugs.js @@ -1,33 +1,10 @@ -const pacote = require('pacote') -const log = require('../utils/log-shim') -const openUrl = require('../utils/open-url.js') -const hostedFromMani = require('../utils/hosted-git-info-from-manifest.js') -const BaseCommand = require('../base-command.js') +const PackageUrlCmd = require('../package-url-cmd.js') -class Bugs extends BaseCommand { +class Bugs extends PackageUrlCmd { static description = 'Report bugs for a package in a web browser' static name = 'bugs' - static usage = ['[]'] - static params = ['browser', 'registry'] - static ignoreImplicitWorkspace = true - async exec (args) { - if (!args || !args.length) { - args = ['.'] - } - - await Promise.all(args.map(pkg => this.getBugs(pkg))) - } - - async getBugs (pkg) { - const opts = { ...this.npm.flatOptions, fullMetadata: true } - const mani = await pacote.manifest(pkg, opts) - const url = this.getBugsUrl(mani) - log.silly('bugs', 'url', url) - await openUrl(this.npm, url, `${mani.name} bug list available at the following URL`) - } - - getBugsUrl (mani) { + getUrl (spec, mani) { if (mani.bugs) { if (typeof mani.bugs === 'string') { return mani.bugs @@ -43,7 +20,7 @@ class Bugs extends BaseCommand { } // try to get it from the repo, if possible - const info = hostedFromMani(mani) + const info = this.hostedFromMani(mani) if (info) { return info.bugs() } diff --git a/deps/npm/lib/commands/cache.js b/deps/npm/lib/commands/cache.js index b8f84abc1d9412..862f346adb4369 100644 --- a/deps/npm/lib/commands/cache.js +++ b/deps/npm/lib/commands/cache.js @@ -10,11 +10,7 @@ const jsonParse = require('json-parse-even-better-errors') const localeCompare = require('@isaacs/string-locale-compare')('en') const log = require('../utils/log-shim') -const searchCachePackage = async (path, spec, cacheKeys) => { - const parsed = npa(spec) - if (parsed.rawSpec !== '' && parsed.type === 'tag') { - throw new Error(`Cannot list cache keys for a tagged package.`) - } +const searchCachePackage = async (path, parsed, cacheKeys) => { /* eslint-disable-next-line max-len */ const searchMFH = new RegExp(`^make-fetch-happen:request-cache:.*(? { if (!packument.versions || typeof packument.versions !== 'object') { continue } + // assuming this is a packument for (const ver of Object.keys(packument.versions)) { if (semver.satisfies(ver, parsed.rawSpec)) { @@ -148,6 +145,7 @@ class Cache extends BaseCommand { } this.npm.output(`Deleted: ${key}`) await cacache.rm.entry(cachePath, key) + // XXX this could leave other entries without content! await cacache.rm.content(cachePath, entry.integrity) } } @@ -177,7 +175,7 @@ class Cache extends BaseCommand { async verify () { const cache = path.join(this.npm.cache, '_cacache') const prefix = cache.indexOf(process.env.HOME) === 0 - ? `~${cache.substr(process.env.HOME.length)}` + ? `~${cache.slice(process.env.HOME.length)}` : cache const stats = await cacache.verify(cache) this.npm.output(`Cache verified and compressed (${prefix})`) @@ -204,7 +202,11 @@ class Cache extends BaseCommand { // get results for each package spec specified const results = new Set() for (const spec of specs) { - const keySet = await searchCachePackage(cachePath, spec, cacheKeys) + const parsed = npa(spec) + if (parsed.rawSpec !== '' && parsed.type === 'tag') { + throw this.usageError('Cannot list cache keys for a tagged package.') + } + const keySet = await searchCachePackage(cachePath, parsed, cacheKeys) for (const key of keySet) { results.add(key) } diff --git a/deps/npm/lib/commands/ci.js b/deps/npm/lib/commands/ci.js index eb1e02bcdc7241..2a6125d564e912 100644 --- a/deps/npm/lib/commands/ci.js +++ b/deps/npm/lib/commands/ci.js @@ -8,19 +8,10 @@ const readdir = util.promisify(fs.readdir) const log = require('../utils/log-shim.js') const validateLockfile = require('../utils/validate-lockfile.js') -const removeNodeModules = async where => { - const rimrafOpts = { glob: false } - process.emit('time', 'npm-ci:rm') - const path = `${where}/node_modules` - // get the list of entries so we can skip the glob for performance - const entries = await readdir(path, null).catch(er => []) - await Promise.all(entries.map(f => rimraf(`${path}/${f}`, rimrafOpts))) - process.emit('timeEnd', 'npm-ci:rm') -} const ArboristWorkspaceCmd = require('../arborist-cmd.js') class CI extends ArboristWorkspaceCmd { - static description = 'Install a project with a clean slate' + static description = 'Clean install a project' static name = 'ci' static params = [ 'audit', @@ -30,10 +21,10 @@ class CI extends ArboristWorkspaceCmd { ] async exec () { - if (this.npm.config.get('global')) { - const err = new Error('`npm ci` does not work for global packages') - err.code = 'ECIGLOBAL' - throw err + if (this.npm.global) { + throw Object.assign(new Error('`npm ci` does not work for global packages'), { + code: 'ECIGLOBAL', + }) } const where = this.npm.prefix @@ -46,17 +37,14 @@ class CI extends ArboristWorkspaceCmd { } const arb = new Arborist(opts) - await Promise.all([ - arb.loadVirtual().catch(er => { - log.verbose('loadVirtual', er.stack) - const msg = - 'The `npm ci` command can only install with an existing package-lock.json or\n' + - 'npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or\n' + - 'later to generate a package-lock.json file, then try again.' - throw new Error(msg) - }), - removeNodeModules(where), - ]) + await arb.loadVirtual().catch(er => { + log.verbose('loadVirtual', er.stack) + const msg = + 'The `npm ci` command can only install with an existing package-lock.json or\n' + + 'npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or\n' + + 'later to generate a package-lock.json file, then try again.' + throw this.usageError(msg) + }) // retrieves inventory of packages from loaded virtual tree (lock file) const virtualInventory = new Map(arb.virtualTree.inventory) @@ -70,15 +58,24 @@ class CI extends ArboristWorkspaceCmd { // throws a validation error in case of mismatches const errors = validateLockfile(virtualInventory, arb.idealTree.inventory) if (errors.length) { - throw new Error( + throw this.usageError( '`npm ci` can only install packages when your package.json and ' + 'package-lock.json or npm-shrinkwrap.json are in sync. Please ' + 'update your lock file with `npm install` ' + 'before continuing.\n\n' + - errors.join('\n') + '\n' + errors.join('\n') ) } + // Only remove node_modules after we've successfully loaded the virtual + // tree and validated the lockfile + await this.npm.time('npm-ci:rm', async () => { + const path = `${where}/node_modules` + // get the list of entries so we can skip the glob for performance + const entries = await readdir(path, null).catch(er => []) + return Promise.all(entries.map(f => rimraf(`${path}/${f}`, { glob: false }))) + }) + await arb.reify(opts) const ignoreScripts = this.npm.config.get('ignore-scripts') diff --git a/deps/npm/lib/commands/completion.js b/deps/npm/lib/commands/completion.js index d0c68af6cebfc8..c24fb050dcb34d 100644 --- a/deps/npm/lib/commands/completion.js +++ b/deps/npm/lib/commands/completion.js @@ -29,18 +29,26 @@ // as an array. // +const fs = require('@npmcli/fs') +const nopt = require('nopt') + const { definitions, shorthands } = require('../utils/config/index.js') const { aliases, cmdList, plumbing } = require('../utils/cmd-list.js') const aliasNames = Object.keys(aliases) const fullList = cmdList.concat(aliasNames).filter(c => !plumbing.includes(c)) -const nopt = require('nopt') const configNames = Object.keys(definitions) const shorthandNames = Object.keys(shorthands) const allConfs = configNames.concat(shorthandNames) const { isWindowsShell } = require('../utils/is-windows.js') -const fileExists = require('../utils/file-exists.js') +const fileExists = async (file) => { + try { + const stat = await fs.stat(file) + return stat.isFile() + } catch { + return false + } +} -const { promisify } = require('util') const BaseCommand = require('../base-command.js') class Completion extends BaseCommand { @@ -97,17 +105,17 @@ class Completion extends BaseCommand { const word = words[w] const line = COMP_LINE const point = +COMP_POINT - const partialLine = line.substr(0, point) + const partialLine = line.slice(0, point) const partialWords = words.slice(0, w) // figure out where in that last word the point is. const partialWordRaw = args[w] let i = partialWordRaw.length - while (partialWordRaw.substr(0, i) !== partialLine.substr(-1 * i) && i > 0) { + while (partialWordRaw.slice(0, i) !== partialLine.slice(-1 * i) && i > 0) { i-- } - const partialWord = unescape(partialWordRaw.substr(0, i)) + const partialWord = unescape(partialWordRaw.slice(0, i)) partialWords.push(partialWord) const opts = { @@ -189,12 +197,10 @@ class Completion extends BaseCommand { } const dumpScript = async () => { - const fs = require('fs') - const readFile = promisify(fs.readFile) const { resolve } = require('path') const p = resolve(__dirname, '..', 'utils', 'completion.sh') - const d = (await readFile(p, 'utf8')).replace(/^#!.*?\n/, '') + const d = (await fs.readFile(p, 'utf8')).replace(/^#!.*?\n/, '') await new Promise((res, rej) => { let done = false process.stdout.on('error', er => { diff --git a/deps/npm/lib/commands/config.js b/deps/npm/lib/commands/config.js index 690a69a3233e4f..96dd4abcaf4af8 100644 --- a/deps/npm/lib/commands/config.js +++ b/deps/npm/lib/commands/config.js @@ -266,6 +266,9 @@ ${defData} if (!long) { msg.push( `; node bin location = ${process.execPath}`, + `; node version = ${process.version}`, + `; npm local prefix = ${this.npm.localPrefix}`, + `; npm version = ${this.npm.version}`, `; cwd = ${process.cwd()}`, `; HOME = ${process.env.HOME}`, '; Run `npm config ls -l` to show all defaults.' @@ -273,7 +276,7 @@ ${defData} msg.push('') } - if (!this.npm.config.get('global')) { + if (!this.npm.global) { const pkgPath = resolve(this.npm.prefix, 'package.json') const pkg = await rpj(pkgPath).catch(() => ({})) diff --git a/deps/npm/lib/commands/dedupe.js b/deps/npm/lib/commands/dedupe.js index 4662ce3241b246..2cc44b2a9fb2fd 100644 --- a/deps/npm/lib/commands/dedupe.js +++ b/deps/npm/lib/commands/dedupe.js @@ -12,7 +12,6 @@ class Dedupe extends ArboristWorkspaceCmd { 'legacy-bundling', 'strict-peer-deps', 'package-lock', - 'save', 'omit', 'ignore-scripts', 'audit', @@ -23,25 +22,23 @@ class Dedupe extends ArboristWorkspaceCmd { ] async exec (args) { - if (this.npm.config.get('global')) { + if (this.npm.global) { const er = new Error('`npm dedupe` does not work in global mode.') er.code = 'EDEDUPEGLOBAL' throw er } - // In the context of `npm dedupe` the save - // config value should default to `false` - const save = this.npm.config.isDefault('save') - ? false - : this.npm.config.get('save') - const dryRun = this.npm.config.get('dry-run') const where = this.npm.prefix const opts = { ...this.npm.flatOptions, path: where, dryRun, - save, + // Saving during dedupe would only update if one of your direct + // dependencies was also duplicated somewhere in your tree. It would be + // confusing if running this were to also update your package.json. In + // order to reduce potential confusion we set this to false. + save: false, workspaces: this.workspaceNames, } const arb = new Arborist(opts) diff --git a/deps/npm/lib/commands/deprecate.js b/deps/npm/lib/commands/deprecate.js index 88eb320c32a523..0ae88f1921f566 100644 --- a/deps/npm/lib/commands/deprecate.js +++ b/deps/npm/lib/commands/deprecate.js @@ -26,7 +26,7 @@ class Deprecate extends BaseCommand { const packages = await libaccess.lsPackages(username, this.npm.flatOptions) return Object.keys(packages) .filter((name) => - packages[name] === 'write' && + packages[name] === 'read-write' && (opts.conf.argv.remain.length === 0 || name.startsWith(opts.conf.argv.remain[0]))) } diff --git a/deps/npm/lib/commands/diff.js b/deps/npm/lib/commands/diff.js index ff942cc44e9460..b8a64bd98a0394 100644 --- a/deps/npm/lib/commands/diff.js +++ b/deps/npm/lib/commands/diff.js @@ -6,7 +6,7 @@ const Arborist = require('@npmcli/arborist') const pacote = require('pacote') const pickManifest = require('npm-pick-manifest') const log = require('../utils/log-shim') -const readPackageName = require('../utils/read-package-name.js') +const readPackage = require('read-package-json-fast') const BaseCommand = require('../base-command.js') class Diff extends BaseCommand { @@ -50,7 +50,7 @@ class Diff extends BaseCommand { // node_modules is sometimes under ./lib, and in global mode we're only ever // walking through node_modules (because we will have been given a package // name already) - if (this.npm.config.get('global')) { + if (this.npm.global) { this.top = resolve(this.npm.globalDir, '..') } else { this.top = this.prefix @@ -81,7 +81,8 @@ class Diff extends BaseCommand { async packageName (path) { let name try { - name = await readPackageName(this.prefix) + const pkg = await readPackage(resolve(this.prefix, 'package.json')) + name = pkg.name } catch (e) { log.verbose('diff', 'could not read project dir package.json') } @@ -114,7 +115,8 @@ class Diff extends BaseCommand { let noPackageJson let pkgName try { - pkgName = await readPackageName(this.prefix) + const pkg = await readPackage(resolve(this.prefix, 'package.json')) + pkgName = pkg.name } catch (e) { log.verbose('diff', 'could not read project dir package.json') noPackageJson = true @@ -225,7 +227,8 @@ class Diff extends BaseCommand { if (semverA && semverB) { let pkgName try { - pkgName = await readPackageName(this.prefix) + const pkg = await readPackage(resolve(this.prefix, 'package.json')) + pkgName = pkg.name } catch (e) { log.verbose('diff', 'could not read project dir package.json') } diff --git a/deps/npm/lib/commands/dist-tag.js b/deps/npm/lib/commands/dist-tag.js index 3b82c5194cca82..a207e422cb53c1 100644 --- a/deps/npm/lib/commands/dist-tag.js +++ b/deps/npm/lib/commands/dist-tag.js @@ -1,9 +1,10 @@ const npa = require('npm-package-arg') +const path = require('path') const regFetch = require('npm-registry-fetch') const semver = require('semver') const log = require('../utils/log-shim') const otplease = require('../utils/otplease.js') -const readPackageName = require('../utils/read-package-name.js') +const readPackage = require('read-package-json-fast') const BaseCommand = require('../base-command.js') class DistTag extends BaseCommand { @@ -147,15 +148,15 @@ class DistTag extends BaseCommand { async list (spec, opts) { if (!spec) { - if (this.npm.config.get('global')) { + if (this.npm.global) { throw this.usageError() } - const pkg = await readPackageName(this.npm.prefix) - if (!pkg) { + const { name } = await readPackage(path.resolve(this.npm.prefix, 'package.json')) + if (!name) { throw this.usageError() } - return this.list(pkg, opts) + return this.list(name, opts) } spec = npa(spec) diff --git a/deps/npm/lib/commands/docs.js b/deps/npm/lib/commands/docs.js index 631615acc56b3d..5d20215b56a07f 100644 --- a/deps/npm/lib/commands/docs.js +++ b/deps/npm/lib/commands/docs.js @@ -1,54 +1,19 @@ -const pacote = require('pacote') -const openUrl = require('../utils/open-url.js') -const hostedFromMani = require('../utils/hosted-git-info-from-manifest.js') -const log = require('../utils/log-shim') -const BaseCommand = require('../base-command.js') -class Docs extends BaseCommand { +const PackageUrlCmd = require('../package-url-cmd.js') +class Docs extends PackageUrlCmd { static description = 'Open documentation for a package in a web browser' static name = 'docs' - static params = [ - 'browser', - 'registry', - 'workspace', - 'workspaces', - 'include-workspace-root', - ] - static usage = ['[ [ ...]]'] - static ignoreImplicitWorkspace = false - - async exec (args) { - if (!args || !args.length) { - args = ['.'] - } - - await Promise.all(args.map(pkg => this.getDocs(pkg))) - } - - async execWorkspaces (args, filters) { - await this.setWorkspaces(filters) - return this.exec(this.workspacePaths) - } - - async getDocs (pkg) { - const opts = { ...this.npm.flatOptions, fullMetadata: true } - const mani = await pacote.manifest(pkg, opts) - const url = this.getDocsUrl(mani) - log.silly('docs', 'url', url) - await openUrl(this.npm, url, `${mani.name} docs available at the following URL`) - } - - getDocsUrl (mani) { + getUrl (spec, mani) { if (mani.homepage) { return mani.homepage } - const info = hostedFromMani(mani) + const info = this.hostedFromMani(mani) if (info) { return info.docs() } - return 'https://www.npmjs.com/package/' + mani.name + return `https://www.npmjs.com/package/${mani.name}` } } module.exports = Docs diff --git a/deps/npm/lib/commands/doctor.js b/deps/npm/lib/commands/doctor.js index 22a25477e22e03..f5bee1eb83f6cb 100644 --- a/deps/npm/lib/commands/doctor.js +++ b/deps/npm/lib/commands/doctor.js @@ -1,5 +1,4 @@ const cacache = require('cacache') -const chalk = require('chalk') const fs = require('fs') const fetch = require('make-fetch-happen') const table = require('text-table') @@ -102,28 +101,19 @@ class Doctor extends BaseCommand { messages.push(line) } - const outHead = ['Check', 'Value', 'Recommendation/Notes'].map( - !this.npm.color ? h => h : h => chalk.underline(h) - ) + const outHead = ['Check', 'Value', 'Recommendation/Notes'].map(h => this.npm.chalk.underline(h)) let allOk = true - const outBody = messages.map( - !this.npm.color - ? item => { - allOk = allOk && item[1] - item[1] = item[1] ? 'ok' : 'not ok' - item[2] = String(item[2]) - return item - } - : item => { - allOk = allOk && item[1] - if (!item[1]) { - item[0] = chalk.red(item[0]) - item[2] = chalk.magenta(String(item[2])) - } - item[1] = item[1] ? chalk.green('ok') : chalk.red('not ok') - return item - } - ) + const outBody = messages.map(item => { + if (!item[1]) { + allOk = false + item[0] = this.npm.chalk.red(item[0]) + item[1] = this.npm.chalk.red('not ok') + item[2] = this.npm.chalk.magenta(String(item[2])) + } else { + item[1] = this.npm.chalk.green('ok') + } + return item + }) const outTable = [outHead, ...outBody] const tableOpts = { stringLength: s => ansiTrim(s).length, @@ -145,7 +135,7 @@ class Doctor extends BaseCommand { return '' } catch (er) { if (/^E\d{3}$/.test(er.code || '')) { - throw er.code.substr(1) + ' ' + er.message + throw er.code.slice(1) + ' ' + er.message } else { throw er.message } @@ -211,7 +201,7 @@ class Doctor extends BaseCommand { const gid = process.getgid() const files = new Set([root]) for (const f of files) { - tracker.silly('checkFilesPermission', f.substr(root.length + 1)) + tracker.silly('checkFilesPermission', f.slice(root.length + 1)) const st = await lstat(f).catch(er => { // if it can't be missing, or if it can and the error wasn't that it was missing if (!missingOk || er.code !== 'ENOENT') { diff --git a/deps/npm/lib/commands/exec.js b/deps/npm/lib/commands/exec.js index 5e6a94296d2872..d9a686cc9a3be7 100644 --- a/deps/npm/lib/commands/exec.js +++ b/deps/npm/lib/commands/exec.js @@ -48,10 +48,8 @@ class Exec extends BaseCommand { static ignoreImplicitWorkspace = false static isShellout = true - async exec (_args, { locationMsg, path, runPath } = {}) { - if (!path) { - path = this.npm.localPrefix - } + async exec (_args, { locationMsg, runPath } = {}) { + const path = this.npm.localPrefix if (!runPath) { runPath = process.cwd() @@ -75,6 +73,9 @@ class Exec extends BaseCommand { return libexec({ ...flatOptions, + // we explicitly set packageLockOnly to false because if it's true + // when we try to install a missing package, we won't actually install it + packageLockOnly: false, args, call, localBin, @@ -95,7 +96,7 @@ class Exec extends BaseCommand { for (const path of this.workspacePaths) { const locationMsg = await getLocationMsg({ color, path }) - await this.exec(args, { locationMsg, path, runPath: path }) + await this.exec(args, { locationMsg, runPath: path }) } } } diff --git a/deps/npm/lib/commands/fund.js b/deps/npm/lib/commands/fund.js index 787a5193f01558..09ca81653b0eb3 100644 --- a/deps/npm/lib/commands/fund.js +++ b/deps/npm/lib/commands/fund.js @@ -45,7 +45,7 @@ class Fund extends ArboristWorkspaceCmd { throw err } - if (this.npm.config.get('global')) { + if (this.npm.global) { const err = new Error('`npm fund` does not support global packages') err.code = 'EFUNDGLOBAL' throw err diff --git a/deps/npm/lib/commands/help-search.js b/deps/npm/lib/commands/help-search.js index 9422b83561cc89..488189bbbc5cd8 100644 --- a/deps/npm/lib/commands/help-search.js +++ b/deps/npm/lib/commands/help-search.js @@ -1,11 +1,13 @@ const fs = require('fs') const path = require('path') -const color = require('ansicolors') +const chalk = require('chalk') const { promisify } = require('util') const glob = promisify(require('glob')) const readFile = promisify(fs.readFile) const BaseCommand = require('../base-command.js') +const globify = pattern => pattern.split('\\').join('/') + class HelpSearch extends BaseCommand { static description = 'Search npm help documentation' static name = 'help-search' @@ -19,7 +21,7 @@ class HelpSearch extends BaseCommand { } const docPath = path.resolve(__dirname, '..', '..', 'docs/content') - const files = await glob(`${docPath}/*/*.md`) + const files = await glob(`${globify(docPath)}/*/*.md`) const data = await this.readFiles(files) const results = await this.searchFiles(args, data, files) const formatted = this.formatResults(args, results) @@ -171,9 +173,9 @@ class HelpSearch extends BaseCommand { const finder = line.toLowerCase().split(arg.toLowerCase()) let p = 0 for (const f of finder) { - hilitLine.push(line.substr(p, f.length)) - const word = line.substr(p + f.length, arg.length) - const hilit = color.bgBlack(color.red(word)) + hilitLine.push(line.slice(p, p + f.length)) + const word = line.slice(p + f.length, p + f.length + arg.length) + const hilit = chalk.bgBlack.red(word) hilitLine.push(hilit) p += f.length + arg.length } diff --git a/deps/npm/lib/commands/help.js b/deps/npm/lib/commands/help.js index d31b3ca697651d..e7d6395a1b01a6 100644 --- a/deps/npm/lib/commands/help.js +++ b/deps/npm/lib/commands/help.js @@ -5,6 +5,7 @@ const { promisify } = require('util') const glob = promisify(require('glob')) const localeCompare = require('@isaacs/string-locale-compare')('en') +const globify = pattern => pattern.split('\\').join('/') const BaseCommand = require('../base-command.js') // Strips out the number from foo.7 or foo.7. or foo.7.tgz @@ -26,7 +27,7 @@ class Help extends BaseCommand { return [] } const g = path.resolve(__dirname, '../../man/man[0-9]/*.[0-9]') - const files = await glob(g) + const files = await glob(globify(g)) return Object.keys(files.reduce(function (acc, file) { file = path.basename(file).replace(/\.[0-9]+$/, '') @@ -61,7 +62,7 @@ class Help extends BaseCommand { const manroot = path.resolve(__dirname, '..', '..', 'man') // find either section.n or npm-section.n const f = `${manroot}/${manSearch}/?(npm-)${section}.[0-9]*` - let mans = await glob(f) + let mans = await glob(globify(f)) mans = mans.sort((a, b) => { // Prefer the page with an npm prefix, if there's only one. const aHasPrefix = manNpmPrefixRegex.test(a) diff --git a/deps/npm/lib/commands/init.js b/deps/npm/lib/commands/init.js index 2a6b6aaddc7e65..4c299e65137bed 100644 --- a/deps/npm/lib/commands/init.js +++ b/deps/npm/lib/commands/init.js @@ -8,13 +8,22 @@ const libexec = require('libnpmexec') const mapWorkspaces = require('@npmcli/map-workspaces') const PackageJson = require('@npmcli/package-json') const log = require('../utils/log-shim.js') +const updateWorkspaces = require('../workspaces/update-workspaces.js') const getLocationMsg = require('../exec/get-workspace-location-msg.js') const BaseCommand = require('../base-command.js') class Init extends BaseCommand { static description = 'Create a package.json file' - static params = ['yes', 'force', 'workspace', 'workspaces', 'include-workspace-root'] + static params = [ + 'yes', + 'force', + 'workspace', + 'workspaces', + 'workspaces-update', + 'include-workspace-root', + ] + static name = 'init' static usage = [ '[--force|-f|--yes|-y|--scope]', @@ -46,11 +55,13 @@ class Init extends BaseCommand { const pkg = await rpj(resolve(this.npm.localPrefix, 'package.json')) const wPath = filterArg => resolve(this.npm.localPrefix, filterArg) + const workspacesPaths = [] // npm-exec style, runs in the context of each workspace filter if (args.length) { for (const filterArg of filters) { const path = wPath(filterArg) await mkdirp(path) + workspacesPaths.push(path) await this.execCreate({ args, path }) await this.setWorkspace({ pkg, workspacePath: path }) } @@ -61,9 +72,13 @@ class Init extends BaseCommand { for (const filterArg of filters) { const path = wPath(filterArg) await mkdirp(path) + workspacesPaths.push(path) await this.template(path) await this.setWorkspace({ pkg, workspacePath: path }) } + + // reify packages once all workspaces have been initialized + await this.update(workspacesPaths) } async execCreate ({ args, path }) { @@ -196,6 +211,34 @@ class Init extends BaseCommand { await pkgJson.save() } + + async update (workspacesPaths) { + // translate workspaces paths into an array containing workspaces names + const workspaces = [] + for (const path of workspacesPaths) { + const pkgPath = resolve(path, 'package.json') + const { name } = await rpj(pkgPath) + .catch(() => ({})) + + if (name) { + workspaces.push(name) + } + } + + const { + config, + flatOptions, + localPrefix, + } = this.npm + + await updateWorkspaces({ + config, + flatOptions, + localPrefix, + npm: this.npm, + workspaces, + }) + } } module.exports = Init diff --git a/deps/npm/lib/commands/install.js b/deps/npm/lib/commands/install.js index ebba02a1bd47d0..4cda36448317fe 100644 --- a/deps/npm/lib/commands/install.js +++ b/deps/npm/lib/commands/install.js @@ -106,10 +106,9 @@ class Install extends ArboristWorkspaceCmd { // the /path/to/node_modules/.. const globalTop = resolve(this.npm.globalDir, '..') const ignoreScripts = this.npm.config.get('ignore-scripts') - const isGlobalInstall = this.npm.config.get('global') + const isGlobalInstall = this.npm.global const where = isGlobalInstall ? globalTop : this.npm.prefix const forced = this.npm.config.get('force') - const isDev = this.npm.config.get('dev') const scriptShell = this.npm.config.get('script-shell') || undefined // be very strict about engines when trying to update npm itself @@ -140,12 +139,10 @@ class Install extends ArboristWorkspaceCmd { args = ['.'] } - // TODO: Add warnings for other deprecated flags? or remove this one? - if (isDev) { - log.warn( - 'install', - 'Usage of the `--dev` option is deprecated. Use `--include=dev` instead.' - ) + // throw usage error if trying to install empty package + // name to global space, e.g: `npm i -g ""` + if (where === globalTop && !args.every(Boolean)) { + throw this.usageError() } const opts = { @@ -163,7 +160,7 @@ class Install extends ArboristWorkspaceCmd { 'preinstall', 'install', 'postinstall', - 'prepublish', // XXX should we remove this finally?? + 'prepublish', // XXX(npm9) should we remove this finally?? 'preprepare', 'prepare', 'postprepare', diff --git a/deps/npm/lib/commands/link.js b/deps/npm/lib/commands/link.js index d656791469a643..80a60d36e324e9 100644 --- a/deps/npm/lib/commands/link.js +++ b/deps/npm/lib/commands/link.js @@ -43,7 +43,7 @@ class Link extends ArboristWorkspaceCmd { } async exec (args) { - if (this.npm.config.get('global')) { + if (this.npm.global) { throw Object.assign( new Error( 'link should never be --global.\n' + diff --git a/deps/npm/lib/commands/ls.js b/deps/npm/lib/commands/ls.js index e56c90dae16eaf..cfd9cb5a5051ca 100644 --- a/deps/npm/lib/commands/ls.js +++ b/deps/npm/lib/commands/ls.js @@ -52,16 +52,12 @@ class LS extends ArboristWorkspaceCmd { const all = this.npm.config.get('all') const color = this.npm.color const depth = this.npm.config.get('depth') - const dev = this.npm.config.get('dev') - const development = this.npm.config.get('development') - const global = this.npm.config.get('global') + const global = this.npm.global const json = this.npm.config.get('json') const link = this.npm.config.get('link') const long = this.npm.config.get('long') - const only = this.npm.config.get('only') + const omit = this.npm.flatOptions.omit const parseable = this.npm.config.get('parseable') - const prod = this.npm.config.get('prod') - const production = this.npm.config.get('production') const unicode = this.npm.config.get('unicode') const packageLockOnly = this.npm.config.get('package-lock-only') const workspacesEnabled = this.npm.flatOptions.workspacesEnabled @@ -138,15 +134,10 @@ class LS extends ArboristWorkspaceCmd { ? [] : [...(node.target).edgesOut.values()] .filter(filterBySelectedWorkspaces) - .filter(filterByEdgesTypes({ - currentDepth, - dev, - development, + .filter(currentDepth === 0 ? filterByEdgesTypes({ link, - prod, - production, - only, - })) + omit, + }) : () => true) .map(mapEdgesToNodes({ seenPaths })) .concat(appendExtraneousChildren({ node, seenPaths })) .sort(sortAlphabetically) @@ -399,27 +390,13 @@ const getJsonOutputItem = (node, { global, long }) => { return augmentItemWithIncludeMetadata(node, item) } -const filterByEdgesTypes = ({ - currentDepth, - dev, - development, - link, - prod, - production, - only, -}) => { - // filter deps by type, allows for: `npm ls --dev`, `npm ls --prod`, - // `npm ls --link`, `npm ls --only=dev`, etc - const filterDev = currentDepth === 0 && - (dev || development || /^dev(elopment)?$/.test(only)) - const filterProd = currentDepth === 0 && - (prod || production || /^prod(uction)?$/.test(only)) - const filterLink = currentDepth === 0 && link - - return (edge) => - (filterDev ? edge.dev : true) && - (filterProd ? (!edge.dev && !edge.peer && !edge.peerOptional) : true) && - (filterLink ? (edge.to && edge.to.isLink) : true) +const filterByEdgesTypes = ({ link, omit = [] }) => (edge) => { + for (const omitType of omit) { + if (edge[omitType]) { + return false + } + } + return link ? edge.to && edge.to.isLink : true } const appendExtraneousChildren = ({ node, seenPaths }) => diff --git a/deps/npm/lib/commands/outdated.js b/deps/npm/lib/commands/outdated.js index 0cb5b4247a0009..081e75a2c61d36 100644 --- a/deps/npm/lib/commands/outdated.js +++ b/deps/npm/lib/commands/outdated.js @@ -2,8 +2,7 @@ const os = require('os') const path = require('path') const pacote = require('pacote') const table = require('text-table') -const color = require('chalk') -const styles = require('ansistyles') +const chalk = require('chalk') const npa = require('npm-package-arg') const pickManifest = require('npm-pick-manifest') const localeCompare = require('@isaacs/string-locale-compare')('en') @@ -28,7 +27,7 @@ class Outdated extends ArboristWorkspaceCmd { async exec (args) { const global = path.resolve(this.npm.globalDir, '..') - const where = this.npm.config.get('global') + const where = this.npm.global ? global : this.npm.prefix @@ -106,7 +105,7 @@ class Outdated extends ArboristWorkspaceCmd { const outTable = [outHead].concat(outList) if (this.npm.color) { - outTable[0] = outTable[0].map(heading => styles.underline(heading)) + outTable[0] = outTable[0].map(heading => chalk.underline(heading)) } const tableOpts = { @@ -141,7 +140,7 @@ class Outdated extends ArboristWorkspaceCmd { getEdgesOut (node) { // TODO: normalize usage of edges and avoid looping through nodes here - if (this.npm.config.get('global')) { + if (this.npm.global) { for (const child of node.children.values()) { this.trackEdge(child) } @@ -167,7 +166,7 @@ class Outdated extends ArboristWorkspaceCmd { } getWorkspacesEdges (node) { - if (this.npm.config.get('global')) { + if (this.npm.global) { return } @@ -208,7 +207,7 @@ class Outdated extends ArboristWorkspaceCmd { : edge.dev ? 'devDependencies' : 'dependencies' - for (const omitType of this.npm.config.get('omit')) { + for (const omitType of this.npm.flatOptions.omit) { if (node[omitType]) { return } @@ -282,7 +281,7 @@ class Outdated extends ArboristWorkspaceCmd { : node.name return this.npm.color && humanOutput - ? color.green(workspaceName) + ? chalk.green(workspaceName) : workspaceName } @@ -307,9 +306,9 @@ class Outdated extends ArboristWorkspaceCmd { } if (this.npm.color) { - columns[0] = color[current === wanted ? 'yellow' : 'red'](columns[0]) // current - columns[2] = color.green(columns[2]) // wanted - columns[3] = color.magenta(columns[3]) // latest + columns[0] = chalk[current === wanted ? 'yellow' : 'red'](columns[0]) // current + columns[2] = chalk.green(columns[2]) // wanted + columns[3] = chalk.magenta(columns[3]) // latest } return columns diff --git a/deps/npm/lib/commands/owner.js b/deps/npm/lib/commands/owner.js index 07f71c5974768f..4797e9c7ec84b4 100644 --- a/deps/npm/lib/commands/owner.js +++ b/deps/npm/lib/commands/owner.js @@ -3,8 +3,18 @@ const npmFetch = require('npm-registry-fetch') const pacote = require('pacote') const log = require('../utils/log-shim') const otplease = require('../utils/otplease.js') -const readLocalPkgName = require('../utils/read-package-name.js') +const readPackageJsonFast = require('read-package-json-fast') const BaseCommand = require('../base-command.js') +const { resolve } = require('path') + +const readJson = async (pkg) => { + try { + const json = await readPackageJsonFast(pkg) + return json + } catch { + return {} + } +} class Owner extends BaseCommand { static description = 'Manage package owners' @@ -12,6 +22,8 @@ class Owner extends BaseCommand { static params = [ 'registry', 'otp', + 'workspace', + 'workspaces', ] static usage = [ @@ -38,15 +50,15 @@ class Owner extends BaseCommand { // reaches registry in order to autocomplete rm if (argv[2] === 'rm') { - if (this.npm.config.get('global')) { + if (this.npm.global) { return [] } - const pkgName = await readLocalPkgName(this.npm.prefix) - if (!pkgName) { + const { name } = await readJson(resolve(this.npm.prefix, 'package.json')) + if (!name) { return [] } - const spec = npa(pkgName) + const spec = npa(name) const data = await pacote.packument(spec, { ...this.npm.flatOptions, fullMetadata: true, @@ -59,22 +71,43 @@ class Owner extends BaseCommand { } async exec ([action, ...args]) { - switch (action) { - case 'ls': - case 'list': - return this.ls(args[0]) - case 'add': - return this.changeOwners(args[0], args[1], 'add') - case 'rm': - case 'remove': - return this.changeOwners(args[0], args[1], 'rm') - default: + if (action === 'ls' || action === 'list') { + await this.ls(args[0]) + } else if (action === 'add') { + await this.changeOwners(args[0], args[1], 'add') + } else if (action === 'rm' || action === 'remove') { + await this.changeOwners(args[0], args[1], 'rm') + } else { + throw this.usageError() + } + } + + async execWorkspaces ([action, ...args], filters) { + await this.setWorkspaces(filters) + // ls pkg or owner add/rm package + if ((action === 'ls' && args.length > 0) || args.length > 1) { + const implicitWorkspaces = this.npm.config.get('workspace', 'default') + if (implicitWorkspaces.length === 0) { + log.warn(`Ignoring specified workspace(s)`) + } + return this.exec([action, ...args]) + } + + for (const [name] of this.workspaces) { + if (action === 'ls' || action === 'list') { + await this.ls(name) + } else if (action === 'add') { + await this.changeOwners(args[0], name, 'add') + } else if (action === 'rm' || action === 'remove') { + await this.changeOwners(args[0], name, 'rm') + } else { throw this.usageError() + } } } async ls (pkg) { - pkg = await this.getPkg(pkg) + pkg = await this.getPkg(this.npm.prefix, pkg) const spec = npa(pkg) try { @@ -91,17 +124,17 @@ class Owner extends BaseCommand { } } - async getPkg (pkg) { + async getPkg (prefix, pkg) { if (!pkg) { - if (this.npm.config.get('global')) { + if (this.npm.global) { throw this.usageError() } - const pkgName = await readLocalPkgName(this.npm.prefix) - if (!pkgName) { + const { name } = await readJson(resolve(prefix, 'package.json')) + if (!name) { throw this.usageError() } - return pkgName + return name } return pkg } @@ -111,7 +144,7 @@ class Owner extends BaseCommand { throw this.usageError() } - pkg = await this.getPkg(pkg) + pkg = await this.getPkg(this.npm.prefix, pkg) log.verbose(`owner ${addOrRm}`, '%s to %s', user, pkg) const spec = npa(pkg) @@ -125,15 +158,6 @@ class Owner extends BaseCommand { throw err } - if (!u || !u.name || u.error) { - throw Object.assign( - new Error( - "Couldn't get user data for " + user + ': ' + JSON.stringify(u) - ), - { code: 'EOWNERUSER' } - ) - } - // normalize user data u = { name: u.name, email: u.email } @@ -177,32 +201,31 @@ class Owner extends BaseCommand { } const dataPath = `/${spec.escapedName}/-rev/${encodeURIComponent(data._rev)}` - const res = await otplease(this.npm.flatOptions, opts => { - return npmFetch.json(dataPath, { - ...opts, - method: 'PUT', - body: { - _id: data._id, - _rev: data._rev, - maintainers, - }, - spec, + try { + const res = await otplease(this.npm.flatOptions, opts => { + return npmFetch.json(dataPath, { + ...opts, + method: 'PUT', + body: { + _id: data._id, + _rev: data._rev, + maintainers, + }, + spec, + }) }) - }) - - if (!res.error) { if (addOrRm === 'add') { this.npm.output(`+ ${user} (${spec.name})`) } else { this.npm.output(`- ${user} (${spec.name})`) } - } else { + return res + } catch (err) { throw Object.assign( - new Error('Failed to update package: ' + JSON.stringify(res)), + new Error('Failed to update package: ' + JSON.stringify(err.message)), { code: 'EOWNERMUTATE' } ) } - return res } } diff --git a/deps/npm/lib/commands/pack.js b/deps/npm/lib/commands/pack.js index 41fef5cb45a47c..8190ceecaf94bc 100644 --- a/deps/npm/lib/commands/pack.js +++ b/deps/npm/lib/commands/pack.js @@ -44,7 +44,11 @@ class Pack extends BaseCommand { // noise generated during packing const tarballs = [] for (const { arg, manifest } of manifests) { - const tarballData = await libpack(arg, this.npm.flatOptions) + const tarballData = await libpack(arg, { + ...this.npm.flatOptions, + prefix: this.npm.localPrefix, + workspaces: this.workspacePaths, + }) const pkgContents = await getContents(manifest, tarballData) tarballs.push(pkgContents) } diff --git a/deps/npm/lib/commands/pkg.js b/deps/npm/lib/commands/pkg.js index 3a8e01f65bc921..5fac9bfb54683b 100644 --- a/deps/npm/lib/commands/pkg.js +++ b/deps/npm/lib/commands/pkg.js @@ -29,7 +29,7 @@ class Pkg extends BaseCommand { this.prefix = prefix } - if (this.npm.config.get('global')) { + if (this.npm.global) { throw Object.assign( new Error(`There's no package.json file to manage on global mode`), { code: 'EPKGGLOBAL' } diff --git a/deps/npm/lib/commands/profile.js b/deps/npm/lib/commands/profile.js index a82d31fd443a9e..fcf0eb7d53fa69 100644 --- a/deps/npm/lib/commands/profile.js +++ b/deps/npm/lib/commands/profile.js @@ -1,6 +1,6 @@ const inspect = require('util').inspect const { URL } = require('url') -const ansistyles = require('ansistyles') +const chalk = require('chalk') const log = require('../utils/log-shim.js') const npmProfile = require('npm-profile') const qrcodeTerminal = require('qrcode-terminal') @@ -163,7 +163,7 @@ class Profile extends BaseCommand { } else { const table = new Table() for (const key of Object.keys(cleaned)) { - table.push({ [ansistyles.bright(key)]: cleaned[key] }) + table.push({ [chalk.bold(key)]: cleaned[key] }) } this.npm.output(table.toString()) diff --git a/deps/npm/lib/commands/publish.js b/deps/npm/lib/commands/publish.js index 1f26370e89a567..da6437fa9c58fc 100644 --- a/deps/npm/lib/commands/publish.js +++ b/deps/npm/lib/commands/publish.js @@ -7,7 +7,6 @@ const runScript = require('@npmcli/run-script') const pacote = require('pacote') const npa = require('npm-package-arg') const npmFetch = require('npm-registry-fetch') -const chalk = require('chalk') const replaceInfo = require('../utils/replace-info.js') const otplease = require('../utils/otplease.js') @@ -69,10 +68,6 @@ class Publish extends BaseCommand { const spec = npa(args[0]) let manifest = await this.getManifest(spec, opts) - if (manifest.publishConfig) { - flatten(manifest.publishConfig, opts) - } - // only run scripts for directory type publishes if (spec.type === 'directory' && !ignoreScripts) { await runScript({ @@ -85,36 +80,42 @@ class Publish extends BaseCommand { } // we pass dryRun: true to libnpmpack so it doesn't write the file to disk - const tarballData = await pack(spec, { ...opts, dryRun: true }) + const tarballData = await pack(spec, { + ...opts, + dryRun: true, + prefix: this.npm.localPrefix, + workspaces: this.workspacePaths, + }) const pkgContents = await getContents(manifest, tarballData) // The purpose of re-reading the manifest is in case it changed, // so that we send the latest and greatest thing to the registry // note that publishConfig might have changed as well! manifest = await this.getManifest(spec, opts) - if (manifest.publishConfig) { - flatten(manifest.publishConfig, opts) - } - // note that logTar calls log.notice(), so if we ARE in silent mode, - // this will do nothing, but we still want it in the debuglog if it fails. + // JSON already has the package contents if (!json) { logTar(pkgContents, { unicode }) } - if (!dryRun) { - const resolved = npa.resolve(manifest.name, manifest.version) - const registry = npmFetch.pickRegistry(resolved, opts) - const creds = this.npm.config.getCredentialsByURI(registry) - const outputRegistry = replaceInfo(registry) - if (!creds.token && !creds.username) { - throw Object.assign( - new Error(`This command requires you to be logged in to ${outputRegistry}`), { - code: 'ENEEDAUTH', - } - ) + const resolved = npa.resolve(manifest.name, manifest.version) + const registry = npmFetch.pickRegistry(resolved, opts) + const creds = this.npm.config.getCredentialsByURI(registry) + const noCreds = !creds.token && !creds.username + const outputRegistry = replaceInfo(registry) + + if (noCreds) { + const msg = `This command requires you to be logged in to ${outputRegistry}` + if (dryRun) { + log.warn('', `${msg} (dry-run)`) + } else { + throw Object.assign(new Error(msg), { code: 'ENEEDAUTH' }) } - log.notice('', `Publishing to ${outputRegistry}`) + } + + log.notice('', `Publishing to ${outputRegistry}${dryRun ? ' (dry-run)' : ''}`) + + if (!dryRun) { await otplease(opts, opts => libpub(manifest, tarballData, opts)) } @@ -154,8 +155,6 @@ class Publish extends BaseCommand { const results = {} const json = this.npm.config.get('json') const { silent } = this.npm - const noop = a => a - const color = this.npm.color ? chalk : { green: noop, bold: noop } await this.setWorkspaces(filters) for (const [name, workspace] of this.workspaces.entries()) { @@ -167,9 +166,9 @@ class Publish extends BaseCommand { log.warn( 'publish', `Skipping workspace ${ - color.green(name) + this.npm.chalk.green(name) }, marked as ${ - color.bold('private') + this.npm.chalk.bold('private') }` ) continue @@ -192,15 +191,22 @@ class Publish extends BaseCommand { // if it's a directory, read it from the file system // otherwise, get the full metadata from whatever it is - getManifest (spec, opts) { + // XXX can't pacote read the manifest from a directory? + async getManifest (spec, opts) { + let manifest if (spec.type === 'directory') { - return readJson(`${spec.fetchSpec}/package.json`) + manifest = await readJson(`${spec.fetchSpec}/package.json`) + } else { + manifest = await pacote.manifest(spec, { + ...opts, + fullmetadata: true, + fullReadJson: true, + }) } - return pacote.manifest(spec, { - ...opts, - fullMetadata: true, - fullReadJson: true, - }) + if (manifest.publishConfig) { + flatten(manifest.publishConfig, opts) + } + return manifest } } module.exports = Publish diff --git a/deps/npm/lib/commands/rebuild.js b/deps/npm/lib/commands/rebuild.js index 0e8a1510bde2b3..3e6046d8df22b0 100644 --- a/deps/npm/lib/commands/rebuild.js +++ b/deps/npm/lib/commands/rebuild.js @@ -26,7 +26,7 @@ class Rebuild extends ArboristWorkspaceCmd { async exec (args) { const globalTop = resolve(this.npm.globalDir, '..') - const where = this.npm.config.get('global') ? globalTop : this.npm.prefix + const where = this.npm.global ? globalTop : this.npm.prefix const arb = new Arborist({ ...this.npm.flatOptions, path: where, diff --git a/deps/npm/lib/commands/repo.js b/deps/npm/lib/commands/repo.js index b8dccc209ff87a..b89b74c0bf1baa 100644 --- a/deps/npm/lib/commands/repo.js +++ b/deps/npm/lib/commands/repo.js @@ -1,40 +1,11 @@ -const pacote = require('pacote') const { URL } = require('url') -const log = require('../utils/log-shim') -const hostedFromMani = require('../utils/hosted-git-info-from-manifest.js') -const openUrl = require('../utils/open-url.js') -const BaseCommand = require('../base-command.js') -class Repo extends BaseCommand { +const PackageUrlCmd = require('../package-url-cmd.js') +class Repo extends PackageUrlCmd { static description = 'Open package repository page in the browser' static name = 'repo' - static params = ['browser', 'workspace', 'workspaces', 'include-workspace-root'] - static usage = ['[ [ ...]]'] - static ignoreImplicitWorkspace = false - - async exec (args) { - if (!args || !args.length) { - args = ['.'] - } - - await Promise.all(args.map(pkg => this.get(pkg))) - } - - async execWorkspaces (args, filters) { - await this.setWorkspaces(filters) - return this.exec(this.workspacePaths) - } - - async get (pkg) { - // XXX It is very odd that `where` is how pacote knows to look anywhere - // other than the cwd. - const opts = { - ...this.npm.flatOptions, - where: this.npm.localPrefix, - fullMetadata: true, - } - const mani = await pacote.manifest(pkg, opts) + getUrl (spec, mani) { const r = mani.repository const rurl = !r ? null : typeof r === 'string' ? r @@ -43,22 +14,20 @@ class Repo extends BaseCommand { if (!rurl) { throw Object.assign(new Error('no repository'), { - pkgid: pkg, + pkgid: spec, }) } - const info = hostedFromMani(mani) + const info = this.hostedFromMani(mani) const url = info ? info.browse(mani.repository.directory) : unknownHostedUrl(rurl) if (!url) { throw Object.assign(new Error('no repository: could not get url'), { - pkgid: pkg, + pkgid: spec, }) } - - log.silly('docs', 'url', url) - await openUrl(this.npm, url, `${mani.name} repo available at the following URL`) + return url } } module.exports = Repo diff --git a/deps/npm/lib/commands/search.js b/deps/npm/lib/commands/search.js index a06ba4031443b4..8751e9e7d22fd0 100644 --- a/deps/npm/lib/commands/search.js +++ b/deps/npm/lib/commands/search.js @@ -3,26 +3,33 @@ const Pipeline = require('minipass-pipeline') const libSearch = require('libnpmsearch') const log = require('../utils/log-shim.js') -const formatPackageStream = require('../search/format-package-stream.js') -const packageFilter = require('../search/package-filter.js') +const formatSearchStream = require('../utils/format-search-stream.js') + +function filter (data, include, exclude) { + const words = [data.name] + .concat(data.maintainers.map(m => `=${m.username}`)) + .concat(data.keywords || []) + .map(f => f && f.trim && f.trim()) + .filter(f => f) + .join(' ') + .toLowerCase() + + if (exclude.find(e => match(words, e))) { + return false + } -function prepareIncludes (args) { - return args - .map(s => s.toLowerCase()) - .filter(s => s) + return true } -function prepareExcludes (searchexclude) { - var exclude - if (typeof searchexclude === 'string') { - exclude = searchexclude.split(/\s+/) - } else { - exclude = [] +function match (words, pattern) { + if (pattern.startsWith('/')) { + if (pattern.endsWith('/')) { + pattern = pattern.slice(0, -1) + } + pattern = new RegExp(pattern.slice(1)) + return words.match(pattern) } - - return exclude - .map(s => s.toLowerCase()) - .filter(s => s) + return words.indexOf(pattern) !== -1 } const BaseCommand = require('../base-command.js') @@ -50,8 +57,8 @@ class Search extends BaseCommand { const opts = { ...this.npm.flatOptions, ...this.npm.flatOptions.search, - include: prepareIncludes(args), - exclude: prepareExcludes(this.npm.flatOptions.search.exclude), + include: args.map(s => s.toLowerCase()).filter(s => s), + exclude: this.npm.flatOptions.search.exclude.split(/\s+/), } if (opts.include.length === 0) { @@ -63,7 +70,7 @@ class Search extends BaseCommand { class FilterStream extends Minipass { write (pkg) { - if (packageFilter(pkg, opts.include, opts.exclude)) { + if (filter(pkg, opts.include, opts.exclude)) { super.write(pkg) } } @@ -73,7 +80,7 @@ class Search extends BaseCommand { // Grab a configured output stream that will spit out packages in the // desired format. - const outputStream = formatPackageStream({ + const outputStream = formatSearchStream({ args, // --searchinclude options are not highlighted ...opts, }) diff --git a/deps/npm/lib/commands/set-script.js b/deps/npm/lib/commands/set-script.js index a6b7c3a50cdafe..a085f72a314284 100644 --- a/deps/npm/lib/commands/set-script.js +++ b/deps/npm/lib/commands/set-script.js @@ -5,7 +5,7 @@ const log = require('../utils/log-shim') const BaseCommand = require('../base-command.js') class SetScript extends BaseCommand { - static description = 'Set tasks in the scripts section of package.json' + static description = 'Set tasks in the scripts section of package.json, deprecated' static params = ['workspace', 'workspaces', 'include-workspace-root'] static name = 'set-script' static usage = ['[ + + + + + + + + + +ECMAScript Best Practices – test262 + + + +
    + +
    +
    +
    + Loading... + Loading... +
    +
    +
    + +
    + +
    +

    ECMAScript Best Practices test262 + ECMAScript.org

    +
    + + +
    + +
    +

    What is test262 Best Practices?

    +

    test262 Best Practices is a supplemental test suite to test262 containing test cases that are not required by the ECMAScript specification, but deemed best practices for JavaScript implementers by Ecma's TC-39 committee.

    + +

    Running the Tests

    +

    Click the “Run” tab at the top of this page for instructions and follow the instructions to run the tests.

    + + + +
    + +
    +

    Development

    +

    Test262 is being developed by the members of Ecma TC39. Ecma's intellectual property policies, permit only Ecma + members to directly contribute code to the project. However, a public mailing list is used to coordinate development of Test262. If you wish to participate in the discussion please subscribe. Bug reports and suggestions should be sent to the mailing list. +

    +

    + Ecma members can find detailed instructions on Test262 development procedures at the Test262 Wiki. +

    +
    + +
    + +

    Please click on the Run All button to run all the tests. Once you start the test you may pause the test anytime by clicking on the Pause button. You can click on the Results tab once the test is completed or after pausing the test. The Reset button is for restarting the test run. You may run individual tests by clicking the Run button next to the tests listed below. If you wish to run several chapters in sequence, but not the entire test suite, click the Select button for the chapters you wish to run and then click the Run Selected button.

    + + +
    +
    +
    + + + + + Run All + Run Selected Tests + Pause + Resume + Reset +
    +
    +
    +

    + Timer Value(ms) : +

    + + +
    + Tests to run:  | + Total tests ran: | + Pass: | + Fail: | + Failed to load: +

    +
    + + +
    +
    +
    + + +
    +
    +
    +
    + Test suite version:  | Test suite date: +
    +
    + +
    +
    +
    + +
    +
    +
    Total tests:
    + Passed: | Failed: | + Failed to load: +
    + +
    +
    +
    Test results will be displayed after the tests are executed using the Run page.
    +
    +
    + Test suite version:  | Test suite date: +
    + +
    +  100%  +  75% to 99.9%  +  50% to 75%   +  less than 50% +
    +
    +
    +
    + + + + + diff --git a/deps/v8/third_party/test262-harness/src/templates/runner.intl402.html b/deps/v8/third_party/test262-harness/src/templates/runner.intl402.html new file mode 100644 index 00000000000000..349c637954e13a --- /dev/null +++ b/deps/v8/third_party/test262-harness/src/templates/runner.intl402.html @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + +ECMAScript Internationalization – test402 + + + +
    + +
    +
    +
    + Loading... + Loading... +
    +
    +
    + +
    + +
    +

    ECMAScript Internationalization test402 + ECMAScript.org

    +
    + + +
    + +
    +

    What is test402?

    +

    test402 is a test suite intended to check agreement between JavaScript implementations and the ECMAScript Internationalization API Specification. + The test suite contains many individual tests, each of which tests some specific requirements of the ECMAScript Internationalization API Specification.

    +

    What is the ECMAScript Internationalization API?

    +

    The ECMAScript Internationalization API is a complement to the ECMAScript Language Specification, 5.1 edition. + It enables internationalization of JavaScript applications by providing collation (string comparison), number formatting, and date and time formatting, and lets applications choose the language and tailor the functionality to their needs. + The ECMAScript Internationalization API Specification 1.0 was approved as an official Ecma standard by the Ecma General Assembly in December 2012. + The ECMAScript Internationalization 1.0 standard is available in + PDF, + HTML, and + EPUB + versions from the Ecma International web site.

    +

    What is ECMAScript?

    +

    "ECMAScript" is the name under which the language more commonly known as "JavaScript" is standardized. Development of the ECMAScript standard is the responsibility of Technical Committee 39 (TC39) of Ecma International. + The ECMAScript Language Specification standard is officially known as ECMA-262. + ECMAScript 5.1 (or just ES5.1) is short hand for the "ECMA-262, 5.1 Edition ECMAScript Language Specification" the official name of the current edition of the standard. + ECMAScript 5.1 was approved as an official Ecma standard by the Ecma General Assembly in June 2011. + The ECMAScript 5.1 standard is available in PDF and HTML versions from the Ecma International web site.

    +

    Who creates and maintains test402?

    +

    Development of test402 is a project of Ecma TC39. + The testing framework and individual tests are created by member organizations of TC39 and contributed to Ecma for use in test402. + For more information about how test402 is developed and maintained click the “Development” tab at the top of this page.

    +

    What is the status of test402?

    +

    test402 is very very very incomplete. + It is still undergoing active development.

    +

    Where can I find out more?

    +

    Please visit our Frequently Asked Questions section on the ECMAScript Wiki.

    + +

    Running the Tests

    +

    Click the “Run” tab at the top of this page for instructions and follow the instructions to run the tests.

    + + + +
    + +
    +

    Development

    +

    Test402 is being developed by the members of Ecma TC39. Ecma's intellectual property policies permit only Ecma + members to directly contribute code to the project. However, a public mailing list is used to coordinate development of test402 and its sibling test262. If you wish to participate in the discussion please subscribe. Bug reports and suggestions should be sent to the mailing list. +

    +
    + +
    + +

    Please click on the Run All button to run all the tests. Once you start the test you may pause the test anytime by clicking on the Pause button. You can click on the Results tab once the test is completed or after pausing the test. The Reset button is for restarting the test run. You may run individual tests by clicking the Run button next to the tests listed below. If you wish to run several chapters in sequence, but not the entire test suite, click the Select button for the chapters you wish to run and then click the Run Selected button.

    + + +
    +
    +
    + + + + + Run All + Run Selected Tests + Pause + Resume + Reset +
    +
    +
    +

    + Timer Value(ms) : +

    + + +
    + Tests to run:  | + Total tests ran: | + Pass: | + Fail: | + Failed to load: +

    +
    + + +
    +
    +
    + + +
    +
    +
    +
    + Test suite version:  | Test suite date: +
    +
    + +
    +
    +
    + +
    +
    +
    Total tests:
    + Passed: | Failed: | + Failed to load: +
    + +
    +
    +
    Test results will be displayed after the tests are executed using the Run page.
    +
    +
    + Test suite version:  | Test suite date: +
    + +
    +  100%  +  75% to 99.9%  +  50% to 75%   +  less than 50% +
    +
    +
    +
    + + + + + diff --git a/deps/v8/third_party/test262-harness/src/templates/runner.test262.html b/deps/v8/third_party/test262-harness/src/templates/runner.test262.html new file mode 100644 index 00000000000000..6eb493f1fd9981 --- /dev/null +++ b/deps/v8/third_party/test262-harness/src/templates/runner.test262.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + +ECMAScript Language – test262 + + + +
    + +
    +
    +
    + Loading... + Loading... +
    +
    +
    + +
    + +
    +

    ECMAScript Language test262 + ECMAScript.org

    +
    + + +
    + +
    +

    What is test262?

    +

    test262 is a test suite intended to check agreement between JavaScript implementations and ECMA-262, the ECMAScript Language Specification (currently 5.1 Edition). + The test suite contains thousands of individual tests, each of which tests some specific requirements of the ECMAScript Language Specification.

    +

    What is ECMAScript?

    +

    "ECMAScript" is the name under which the language more commonly known as "JavaScript" is standardized. Development of the ECMAScript standard is the responsibility of Technical Committee 39 (TC39) of Ecma International. + The ECMAScript Language Specification standard is officially known as ECMA-262. + ECMAScript 5.1 (or just ES5.1) is short hand for the "ECMA-262, 5.1 Edition ECMAScript Language Specification" the official name of the current edition of the standard. + ECMAScript 5.1 was approved as an official Ecma standard by the Ecma General Assembly in June 2011. + The ECMAScript 5.1 standard is available in PDF and HTML versions from the Ecma International web site.

    +

    Who creates and maintains test262?

    +

    + Development of test262 is a project of Ecma TC39. The + testing framework and individual tests are created by + developers all over the world and contributed to Ecma for + use in test262. For more information about how test262 is + developed and maintained, click the + “Development” tab at the top of this page. +

    +

    What is the status of test262?

    +

    test262 is not yet complete. It is still undergoing active development. Some portions of the ES5 specification have very complete test coverage while other portions of the specification have only partial test coverage. Some tests may be invalid or may yield false positive or false negative results. A perfect passing score on test262 does not guarantee that a JavaScript implementation perfectly supports ES5. Because tests are being actively added and modified, tests results from different days or times may not be directly comparable. Click the “Development” tab at the top of this page for instructions for reporting test262 bugs.

    +

    Where can I find out more?

    +

    Please visit our Frequently Asked Questions section on the ECMAScript Wiki.

    + +

    Running the Tests

    +

    Click the “Run” tab at the top of this page for instructions and follow the instructions to run the tests.

    + + + +
    + +
    +

    Development

    +

    + Test262 is being developed as an open source project and + the maintainers are accepting patches from the community. + The project is maintained using the + git version control system and is currently + hosted on GitHub.com. Bug reports and patches may be + submitted to the GitHub repository. +

    + +

    + A public + mailing list is used to coordinate development of + test262. If you wish to participate in the discussion, + please subscribe. +

    +
    + +
    + +

    Please click on the Run All button to run all the tests. Once you start the test you may pause the test anytime by clicking on the Pause button. You can click on the Results tab once the test is completed or after pausing the test. The Reset button is for restarting the test run. You may run individual tests by clicking the Run button next to the tests listed below. If you wish to run several chapters in sequence, but not the entire test suite, click the Select button for the chapters you wish to run and then click the Run Selected button.

    + + +
    +
    +
    + + + + + Run All + Run Selected Tests + Pause + Resume + Reset +
    +
    +
    +

    + Timer Value(ms) : +

    + + +
    + Tests To run:  | + Total tests ran: | + Pass: | + Fail: | + Failed to load: +

    +
    + + +
    +
    +
    + + +
    +
    +
    +
    + Test suite version:  | Test suite date: +
    +
    + +
    +
    +
    + +
    +
    +
    Total tests:
    + Passed: | Failed: | + Failed to load: +
    + +
    +
    +
    Test results will be displayed after the tests are executed using the Run page.
    +
    +
    + Test suite version.:  | Test suite date: +
    + +
    +  100%  +  75% to 99.9%  +  50% to 75%   +  less than 50% +
    +
    +
    +
    + + + + + diff --git a/deps/v8/third_party/test262-harness/src/test262.py b/deps/v8/third_party/test262-harness/src/test262.py new file mode 100755 index 00000000000000..c92e5bf0cfb94f --- /dev/null +++ b/deps/v8/third_party/test262-harness/src/test262.py @@ -0,0 +1,664 @@ +#!/usr/bin/env python +# Copyright 2009 the Sputnik authors. All rights reserved. +# This code is governed by the BSD license found in the LICENSE file. + +# This is derived from sputnik.py, the Sputnik console test runner, +# with elements from packager.py, which is separately +# copyrighted. TODO: Refactor so there is less duplication between +# test262.py and packager.py. + + +import logging +import optparse +import os +from os import path +import platform +import re +import subprocess +import sys +import tempfile +import time +import xml.dom.minidom +import datetime +import shutil +import json +import stat +import xml.etree.ElementTree as xmlj +import unicodedata +from collections import Counter + + +from parseTestRecord import parseTestRecord, stripHeader + +from _packagerConfig import * + +class Test262Error(Exception): + def __init__(self, message): + self.message = message + +def ReportError(s): + raise Test262Error(s) + + + +if not os.path.exists(EXCLUDED_FILENAME): + print "Cannot generate (JSON) test262 tests without a file," + \ + " %s, showing which tests have been disabled!" % EXCLUDED_FILENAME + sys.exit(1) +EXCLUDE_LIST = xml.dom.minidom.parse(EXCLUDED_FILENAME) +EXCLUDE_REASON = EXCLUDE_LIST.getElementsByTagName("reason") +EXCLUDE_LIST = EXCLUDE_LIST.getElementsByTagName("test") +EXCLUDE_LIST = [x.getAttribute("id") for x in EXCLUDE_LIST] + + +def BuildOptions(): + result = optparse.OptionParser() + result.add_option("--command", default=None, help="The command-line to run") + result.add_option("--tests", default=path.abspath('.'), + help="Path to the tests") + result.add_option("--cat", default=False, action="store_true", + help="Print packaged test code that would be run") + result.add_option("--summary", default=False, action="store_true", + help="Print summary after running tests") + result.add_option("--full-summary", default=False, action="store_true", + help="Print summary and test output after running tests") + result.add_option("--strict_only", default=False, action="store_true", + help="Test only strict mode") + result.add_option("--non_strict_only", default=False, action="store_true", + help="Test only non-strict mode") + result.add_option("--unmarked_default", default="both", + help="default mode for tests of unspecified strictness") + result.add_option("--logname", help="Filename to save stdout to") + result.add_option("--junitname", help="Filename to save test results in JUnit XML format") + result.add_option("--loglevel", default="warning", + help="sets log level to debug, info, warning, error, or critical") + result.add_option("--print-handle", default="print", help="Command to print from console") + result.add_option("--list-includes", default=False, action="store_true", + help="List includes required by tests") + return result + + +def ValidateOptions(options): + if not options.command: + ReportError("A --command must be specified.") + if not path.exists(options.tests): + ReportError("Couldn't find test path '%s'" % options.tests) + + +placeHolderPattern = re.compile(r"\{\{(\w+)\}\}") + + +def IsWindows(): + p = platform.system() + return (p == 'Windows') or (p == 'Microsoft') + + +class TempFile(object): + + def __init__(self, suffix="", prefix="tmp", text=False): + self.suffix = suffix + self.prefix = prefix + self.text = text + self.fd = None + self.name = None + self.is_closed = False + self.Open() + + def Open(self): + (self.fd, self.name) = tempfile.mkstemp( + suffix = self.suffix, + prefix = self.prefix, + text = self.text) + + def Write(self, str): + os.write(self.fd, str) + + def Read(self): + f = file(self.name) + result = f.read() + f.close() + return result + + def Close(self): + if not self.is_closed: + self.is_closed = True + os.close(self.fd) + + def Dispose(self): + try: + self.Close() + os.unlink(self.name) + except OSError, e: + logging.error("Error disposing temp file: %s", str(e)) + + +class TestResult(object): + + def __init__(self, exit_code, stdout, stderr, case): + self.exit_code = exit_code + self.stdout = stdout + self.stderr = stderr + self.case = case + + def ReportOutcome(self, long_format): + name = self.case.GetName() + mode = self.case.GetMode() + if self.HasUnexpectedOutcome(): + if self.case.IsNegative(): + print "=== %s was expected to fail in %s, but didn't ===" % (name, mode) + print "--- expected error: %s ---\n" % self.case.GetNegativeType() + else: + if long_format: + print "=== %s failed in %s ===" % (name, mode) + else: + print "%s in %s: " % (name, mode) + self.WriteOutput(sys.stdout) + if long_format: + print "===" + elif self.case.IsNegative(): + print "%s failed in %s as expected" % (name, mode) + else: + print "%s passed in %s" % (name, mode) + + def WriteOutput(self, target): + out = self.stdout.strip() + if len(out) > 0: + target.write("--- output --- \n %s" % out) + err = self.stderr.strip() + if len(err) > 0: + target.write("--- errors --- \n %s" % err) + + # This is a way to make the output from the "whitespace" tests into valid XML + def SafeFormat(self, msg): + try: + msg = msg.encode(encoding='ascii', errors='strict') + msg = msg.replace('\u000Bx', '?') + msg = msg.replace('\u000Cx', '?') + except: + return 'Output contained invalid characters' + + def XmlAssemble(self, result): + test_name = self.case.GetName() + test_mode = self.case.GetMode() + testCaseElement = xmlj.Element("testcase") + testpath = self.TestPathManipulation(test_name) + testCaseElement.attrib["classname"] = "%s.%s" % (testpath[0] , testpath[1]) + testCaseElement.attrib["name"] = "%s %s" % (testpath[2].replace('.','_') , test_mode) + if self.HasUnexpectedOutcome(): + failureElement = xmlj.Element("failure") + out = self.stdout.strip().decode('utf-8') + err = self.stderr.strip().decode('utf-8') + if len(out) > 0: + failureElement.text = self.SafeFormat(out) + if len(err) > 0: + failureElement.text = self.SafeFormat(err) + testCaseElement.append(failureElement) + return testCaseElement + + def TestPathManipulation(self, test_name): + testdirlist = test_name.split('/') + testcase = testdirlist.pop() + testclass = testdirlist.pop() + testclass = testclass.replace('.','_') + if len(testdirlist) >= 1: + testpackage = testdirlist.pop(0) + else: + testpackage = testclass + return(testpackage,testclass,testcase) + + def HasFailed(self): + return self.exit_code != 0 + + def AsyncHasFailed(self): + return 'Test262:AsyncTestComplete' not in self.stdout + + def HasUnexpectedOutcome(self): + if self.case.IsAsyncTest(): + return self.AsyncHasFailed() or self.HasFailed() + elif self.case.IsNegative(): + return not (self.HasFailed() and self.case.NegativeMatch(self.GetErrorOutput())) + else: + return self.HasFailed() + + def GetErrorOutput(self): + if len(self.stderr) != 0: + return self.stderr + return self.stdout + + +class TestCase(object): + + def __init__(self, suite, name, full_path, strict_mode): + self.suite = suite + self.name = name + self.full_path = full_path + self.strict_mode = strict_mode + f = open(self.full_path) + self.contents = f.read() + f.close() + testRecord = parseTestRecord(self.contents, name) + self.test = testRecord["test"] + del testRecord["test"] + del testRecord["header"] + testRecord.pop("commentary", None) # do not throw if missing + self.testRecord = testRecord; + + self.validate() + + def NegativeMatch(self, stderr): + neg = re.compile(self.GetNegativeType()) + return re.search(neg, stderr) + + def GetNegative(self): + if not self.IsNegative(): + return None + return self.testRecord["negative"] + + def GetNegativeType(self): + negative = self.GetNegative() + return negative and negative["type"] + + def GetNegativePhase(self): + negative = self.GetNegative() + return negative and negative["phase"] + + def GetName(self): + return path.join(*self.name) + + def GetMode(self): + if self.strict_mode: + return "strict mode" + else: + return "non-strict mode" + + def GetPath(self): + return self.name + + def IsNegative(self): + return 'negative' in self.testRecord + + def IsOnlyStrict(self): + return 'onlyStrict' in self.testRecord + + def IsNoStrict(self): + return 'noStrict' in self.testRecord or self.IsRaw() + + def IsRaw(self): + return 'raw' in self.testRecord + + def IsAsyncTest(self): + return 'async' in self.testRecord + + def GetIncludeList(self): + if self.testRecord.get('includes'): + return self.testRecord['includes'] + return [] + + def GetAdditionalIncludes(self): + return '\n'.join([self.suite.GetInclude(include) for include in self.GetIncludeList()]) + + def GetSource(self): + if self.IsRaw(): + return self.test + + source = self.suite.GetInclude("sta.js") + \ + self.suite.GetInclude("cth.js") + \ + self.suite.GetInclude("assert.js") + + if self.IsAsyncTest(): + source = source + \ + self.suite.GetInclude("timer.js") + \ + self.suite.GetInclude("doneprintHandle.js").replace('print', self.suite.print_handle) + + source = source + \ + self.GetAdditionalIncludes() + \ + self.test + '\n' + + if self.GetNegativePhase() == "early": + source = ("throw 'Expected an early error, but code was executed.';\n" + + source) + + if self.strict_mode: + source = '"use strict";\nvar strict_mode = true;\n' + source + else: + # add comment line so line numbers match in both strict and non-strict version + source = '//"no strict";\nvar strict_mode = false;\n' + source + + return source + + def InstantiateTemplate(self, template, params): + def GetParameter(match): + key = match.group(1) + return params.get(key, match.group(0)) + return placeHolderPattern.sub(GetParameter, template) + + def Execute(self, command): + if IsWindows(): + args = '%s' % command + else: + args = command.split(" ") + stdout = TempFile(prefix="test262-out-") + stderr = TempFile(prefix="test262-err-") + try: + logging.info("exec: %s", str(args)) + process = subprocess.Popen( + args, + shell = IsWindows(), + stdout = stdout.fd, + stderr = stderr.fd + ) + code = process.wait() + out = stdout.Read() + err = stderr.Read() + finally: + stdout.Dispose() + stderr.Dispose() + return (code, out, err) + + def RunTestIn(self, command_template, tmp): + tmp.Write(self.GetSource()) + tmp.Close() + command = self.InstantiateTemplate(command_template, { + 'path': tmp.name + }) + (code, out, err) = self.Execute(command) + return TestResult(code, out, err, self) + + def Run(self, command_template): + tmp = TempFile(suffix=".js", prefix="test262-", text=True) + try: + result = self.RunTestIn(command_template, tmp) + finally: + tmp.Dispose() + return result + + def Print(self): + print self.GetSource() + + def validate(self): + flags = self.testRecord.get("flags") + phase = self.GetNegativePhase() + + if phase not in [None, "early", "runtime"]: + raise TypeError("Invalid value for negative phase: " + phase) + + if not flags: + return + + if 'raw' in flags: + if 'noStrict' in flags: + raise TypeError("The `raw` flag implies the `noStrict` flag") + elif 'onlyStrict' in flags: + raise TypeError( + "The `raw` flag is incompatible with the `onlyStrict` flag") + elif len(self.GetIncludeList()) > 0: + raise TypeError( + "The `raw` flag is incompatible with the `includes` tag") + +class ProgressIndicator(object): + + def __init__(self, count): + self.count = count + self.succeeded = 0 + self.failed = 0 + self.failed_tests = [] + + def HasRun(self, result): + result.ReportOutcome(True) + if result.HasUnexpectedOutcome(): + self.failed += 1 + self.failed_tests.append(result) + else: + self.succeeded += 1 + + +def MakePlural(n): + if (n == 1): + return (n, "") + else: + return (n, "s") + +def PercentFormat(partial, total): + return "%i test%s (%.1f%%)" % (MakePlural(partial) + + ((100.0 * partial)/total,)) + + +class TestSuite(object): + + def __init__(self, root, strict_only, non_strict_only, unmarked_default, print_handle): + # TODO: derive from packagerConfig.py + self.test_root = path.join(root, 'test') + self.lib_root = path.join(root, 'harness') + self.strict_only = strict_only + self.non_strict_only = non_strict_only + self.unmarked_default = unmarked_default + self.print_handle = print_handle + self.include_cache = { } + + + def Validate(self): + if not path.exists(self.test_root): + ReportError("No test repository found") + if not path.exists(self.lib_root): + ReportError("No test library found") + + def IsHidden(self, path): + return path.startswith('.') or path == 'CVS' + + def IsTestCase(self, path): + return path.endswith('.js') + + def ShouldRun(self, rel_path, tests): + if len(tests) == 0: + return True + for test in tests: + if test in rel_path: + return True + return False + + def GetInclude(self, name): + if not name in self.include_cache: + static = path.join(self.lib_root, name) + if path.exists(static): + f = open(static) + contents = stripHeader(f.read()) + contents = re.sub(r'\r\n', '\n', contents) + self.include_cache[name] = contents + "\n" + f.close() + else: + ReportError("Can't find: " + static) + return self.include_cache[name] + + def EnumerateTests(self, tests): + logging.info("Listing tests in %s", self.test_root) + cases = [] + for root, dirs, files in os.walk(self.test_root): + for f in [x for x in dirs if self.IsHidden(x)]: + dirs.remove(f) + dirs.sort() + for f in sorted(files): + if self.IsTestCase(f): + full_path = path.join(root, f) + if full_path.startswith(self.test_root): + rel_path = full_path[len(self.test_root)+1:] + else: + logging.warning("Unexpected path %s", full_path) + rel_path = full_path + if self.ShouldRun(rel_path, tests): + basename = path.basename(full_path)[:-3] + name = rel_path.split(path.sep)[:-1] + [basename] + if EXCLUDE_LIST.count(basename) >= 1: + print 'Excluded: ' + basename + else: + if not self.non_strict_only: + strict_case = TestCase(self, name, full_path, True) + if not strict_case.IsNoStrict(): + if strict_case.IsOnlyStrict() or \ + self.unmarked_default in ['both', 'strict']: + cases.append(strict_case) + if not self.strict_only: + non_strict_case = TestCase(self, name, full_path, False) + if not non_strict_case.IsOnlyStrict(): + if non_strict_case.IsNoStrict() or \ + self.unmarked_default in ['both', 'non_strict']: + cases.append(non_strict_case) + logging.info("Done listing tests") + return cases + + + def PrintSummary(self, progress, logfile): + + def write(s): + if logfile: + self.logf.write(s + "\n") + print s + + print + write("=== Summary ==="); + count = progress.count + succeeded = progress.succeeded + failed = progress.failed + write(" - Ran %i test%s" % MakePlural(count)) + if progress.failed == 0: + write(" - All tests succeeded") + else: + write(" - Passed " + PercentFormat(succeeded, count)) + write(" - Failed " + PercentFormat(failed, count)) + positive = [c for c in progress.failed_tests if not c.case.IsNegative()] + negative = [c for c in progress.failed_tests if c.case.IsNegative()] + if len(positive) > 0: + print + write("Failed Tests") + for result in positive: + write(" %s in %s" % (result.case.GetName(), result.case.GetMode())) + if len(negative) > 0: + print + write("Expected to fail but passed ---") + for result in negative: + write(" %s in %s" % (result.case.GetName(), result.case.GetMode())) + + def PrintFailureOutput(self, progress, logfile): + for result in progress.failed_tests: + if logfile: + self.WriteLog(result) + print + result.ReportOutcome(False) + + def Run(self, command_template, tests, print_summary, full_summary, logname, junitfile): + if not "{{path}}" in command_template: + command_template += " {{path}}" + cases = self.EnumerateTests(tests) + if len(cases) == 0: + ReportError("No tests to run") + progress = ProgressIndicator(len(cases)) + if logname: + self.logf = open(logname, "w") + if junitfile: + self.outfile = open(junitfile, "w") + TestSuitesElement = xmlj.Element("testsuites") + TestSuiteElement = xmlj.Element("testsuite") + TestSuitesElement.append(TestSuiteElement) + TestSuiteElement.attrib["name "] = "test262" + for x in range(len(EXCLUDE_LIST)): + if self.ShouldRun (unicode(EXCLUDE_LIST[x].encode('utf-8','ignore')), tests): + SkipCaseElement = xmlj.Element("testcase") + SkipCaseElement.attrib["classname"] = unicode(EXCLUDE_LIST[x]).encode('utf-8','ignore') + SkipCaseElement.attrib["name"] = unicode(EXCLUDE_LIST[x]).encode('utf-8','ignore') + SkipElement = xmlj.Element("skipped") + SkipElement.attrib["message"] = unicode(EXCLUDE_REASON[x].firstChild.nodeValue) + SkipCaseElement.append(SkipElement) + TestSuiteElement.append(SkipCaseElement) + + for case in cases: + result = case.Run(command_template) + if junitfile: + TestCaseElement = result.XmlAssemble(result) + TestSuiteElement.append(TestCaseElement) + if case == cases[len(cases)-1]: + xmlj.ElementTree(TestSuitesElement).write(junitfile, "UTF-8") + if logname: + self.WriteLog(result) + progress.HasRun(result) + + if print_summary: + self.PrintSummary(progress, logname) + if full_summary: + self.PrintFailureOutput(progress, logname) + else: + print + print "Use --full-summary to see output from failed tests" + print + return progress.failed + + def WriteLog(self, result): + name = result.case.GetName() + mode = result.case.GetMode() + if result.HasUnexpectedOutcome(): + if result.case.IsNegative(): + self.logf.write("=== %s was expected to fail in %s, but didn't === \n" % (name, mode)) + self.logf.write("--- expected error: %s ---\n" % result.case.GetNegativeType()) + result.WriteOutput(self.logf) + else: + self.logf.write("=== %s failed in %s === \n" % (name, mode)) + result.WriteOutput(self.logf) + self.logf.write("===\n") + elif result.case.IsNegative(): + self.logf.write("%s failed in %s as expected \n" % (name, mode)) + else: + self.logf.write("%s passed in %s \n" % (name, mode)) + + def Print(self, tests): + cases = self.EnumerateTests(tests) + if len(cases) > 0: + cases[0].Print() + + def ListIncludes(self, tests): + cases = self.EnumerateTests(tests) + includes_dict = Counter() + for case in cases: + includes = case.GetIncludeList() + includes_dict.update(includes) + + print includes_dict + + +def Main(): + code = 0 + parser = BuildOptions() + (options, args) = parser.parse_args() + ValidateOptions(options) + test_suite = TestSuite(options.tests, + options.strict_only, + options.non_strict_only, + options.unmarked_default, + options.print_handle) + test_suite.Validate() + if options.loglevel == 'debug': + logging.basicConfig(level=logging.DEBUG) + elif options.loglevel == 'info': + logging.basicConfig(level=logging.INFO) + elif options.loglevel == 'warning': + logging.basicConfig(level=logging.WARNING) + elif options.loglevel == 'error': + logging.basicConfig(level=logging.ERROR) + elif options.loglevel == 'critical': + logging.basicConfig(level=logging.CRITICAL) + if options.cat: + test_suite.Print(args) + elif options.list_includes: + test_suite.ListIncludes(args) + else: + code = test_suite.Run(options.command, args, + options.summary or options.full_summary, + options.full_summary, + options.logname, + options.junitname) + return code + +if __name__ == '__main__': + try: + code = Main() + sys.exit(code) + except Test262Error, e: + print "Error: %s" % e.message + sys.exit(1) diff --git a/deps/v8/third_party/test262-harness/test/README.md b/deps/v8/third_party/test262-harness/test/README.md new file mode 100644 index 00000000000000..6084f93b8e03f6 --- /dev/null +++ b/deps/v8/third_party/test262-harness/test/README.md @@ -0,0 +1,11 @@ +# Unit tests for python packaging tools + +This directory holds tests for the python code, not tests of EMCAScript + +## Running tests + +```` +$ cd tools/packaging/test +$ for x in test*.py; do python $x; done +```` + diff --git a/deps/v8/third_party/test262-harness/test/fixtures/negative.js b/deps/v8/third_party/test262-harness/test/fixtures/negative.js new file mode 100644 index 00000000000000..f772b2e8bdb06a --- /dev/null +++ b/deps/v8/third_party/test262-harness/test/fixtures/negative.js @@ -0,0 +1,11 @@ +// fake copyright comment +/*--- +info: > + Sample test info +description: Sample test description +negative: + phase: early + type: SyntaxError +---*/ + +??? diff --git a/deps/v8/third_party/test262-harness/test/fixtures/test262-old-headers.js b/deps/v8/third_party/test262-harness/test/fixtures/test262-old-headers.js new file mode 100644 index 00000000000000..ff41177c5ddb15 --- /dev/null +++ b/deps/v8/third_party/test262-harness/test/fixtures/test262-old-headers.js @@ -0,0 +1,19 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * The production Block { } in strict code can't contain function + * declaration; + * + * @path bestPractice/Sbp_A1_T1.js + * @description Trying to declare function at the Block statement + * @onlyStrict + * @negative SyntaxError + * @bestPractice http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls + */ + +"use strict"; +{ + function __func(){} +} + diff --git a/deps/v8/third_party/test262-harness/test/fixtures/test262-yaml-headers.js b/deps/v8/third_party/test262-harness/test/fixtures/test262-yaml-headers.js new file mode 100644 index 00000000000000..e897237bcba714 --- /dev/null +++ b/deps/v8/third_party/test262-harness/test/fixtures/test262-yaml-headers.js @@ -0,0 +1,18 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +info: > + The production Block { } in strict code can't contain function + declaration; +description: Trying to declare function at the Block statement +negative: SyntaxError +bestPractice: "http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls" +flags: [onlyStrict] +---*/ + +"use strict"; +{ + function __func(){} +} + diff --git a/deps/v8/third_party/test262-harness/test/test_common.py b/deps/v8/third_party/test262-harness/test/test_common.py new file mode 100644 index 00000000000000..4c86b0a334b0c7 --- /dev/null +++ b/deps/v8/third_party/test262-harness/test/test_common.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +# Copyright 2014 by Sam Mikes. All rights reserved. +# This code is governed by the BSD license found in the LICENSE file. + +import unittest + +import os + +# add parent dir to search path +import sys +sys.path.append("src") + + +from _common import * + +def slurpFile(name): + with open('test/' + name) as f: + contents = f.read() + return contents + + +class TestOldParsing(unittest.TestCase): + + def test_test(self): + pass + + def test_overview(self): + name = 'fixtures/test262-old-headers.js' + contents = slurpFile(name) + record = convertDocString(contents) + + self.assertEqual("""The production Block { } in strict code can't contain function +declaration;""", record['commentary']) + + self.assertEqual("bestPractice/Sbp_A1_T1.js", record['path']) + self.assertEqual("Trying to declare function at the Block statement", + record['description']) + self.assertEqual("", record['onlyStrict']) + self.assertEqual("SyntaxError", record['negative']) + self.assertEqual("http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls", + record['bestPractice']) + + +class TestYAMLParsing(unittest.TestCase): + + def test_overview(self): + name = 'fixtures/test262-yaml-headers.js' + contents = slurpFile(name) + record = convertDocString(contents) + + self.assertEqual("The production Block { } in strict code can't contain function declaration;\n", record['commentary']) + + self.assertEqual("Trying to declare function at the Block statement", + record['description']) + self.assertEqual(['onlyStrict'], record['flags']) + self.assertEqual("", record['onlyStrict']) + self.assertEqual("SyntaxError", record['negative']) + self.assertEqual("http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls", + record['bestPractice']) + + +if __name__ == '__main__': + unittest.main() diff --git a/deps/v8/third_party/test262-harness/test/test_monkeyYaml.py b/deps/v8/third_party/test262-harness/test/test_monkeyYaml.py new file mode 100644 index 00000000000000..428e45b6a03682 --- /dev/null +++ b/deps/v8/third_party/test262-harness/test/test_monkeyYaml.py @@ -0,0 +1,210 @@ +#!/usr/bin/env python + +# Copyright 2014 by Sam Mikes. All rights reserved. +# This code is governed by the BSD license found in the LICENSE file. + +import unittest + +import os +import yaml +import imp + +# add parent dir to search path +import sys +sys.path.append("src") + +import _monkeyYaml as monkeyYaml + +class TestMonkeyYAMLParsing(unittest.TestCase): + + def test_empty(self): + self.assertEqual(monkeyYaml.load(""), yaml.load("")) + + def test_newline(self): + self.assertEqual(monkeyYaml.load("\n"), yaml.load("\n")) + + def test_oneline(self): + y = "foo: bar" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_twolines(self): + y = "foo: bar\nbaz_bletch : blith:er" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_multiLine(self): + y = "foo: >\n bar\nbaz: 3" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_es5id(self): + y = "es5id: 15.2.3.6-4-102" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_Multiline_1(self): + lines = [" foo"] + value = ">" + y = "\n".join([value] + lines) + (lines, value) = monkeyYaml.myMultiline(lines, value) + self.assertEqual(lines, []) + self.assertEqual(value, yaml.load(y)) + + def test_Multiline_2(self): + lines = [" foo", " bar"] + y = "\n".join([">"] + lines) + (lines, value) = monkeyYaml.myMultiline(lines) + self.assertEqual(lines, []) + self.assertEqual(value, yaml.load(y)) + + def test_Multiline_3(self): + lines = [" foo", " bar"] + y = "\n".join([">"] + lines) + (lines, value) = monkeyYaml.myMultiline(lines) + self.assertEqual(lines, []) + self.assertEqual(value, yaml.load(y)) + + def test_Multiline_4(self): + lines = [" foo", " bar", " other: 42"] + (lines, value) = monkeyYaml.myMultiline(lines) + self.assertEqual(lines, [" other: 42"]) + self.assertEqual(value, "foo bar") + + def test_myLeading(self): + self.assertEqual(2, monkeyYaml.myLeadingSpaces(" foo")) + self.assertEqual(2, monkeyYaml.myLeadingSpaces(" ")) + self.assertEqual(0, monkeyYaml.myLeadingSpaces("\t ")) + + def test_includes_flow(self): + y = "includes: [a.js,b.js, c_with_wings.js]\n" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_myFlowList_1(self): + y = "[a.js,b.js, c_with_wings.js, 3, 4.12]" + self.assertEqual(monkeyYaml.myFlowList(y), ['a.js', 'b.js', 'c_with_wings.js', 3, 4.12]) + + def test_multiline_list_1(self): + y = "foo:\n - bar\n - baz" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_multiline_list2(self): + self.assertEqual(monkeyYaml.myRemoveListHeader(2, " - foo"), "foo") + + def test_multiline_list3(self): + (lines, value) = monkeyYaml.myMultilineList([" - foo", " - bar", "baz: bletch"], "") + self.assertEqual(lines, ["baz: bletch"]) + self.assertEqual(value, ["foo", "bar"]) + + def test_multiline_list_carriage_return(self): + y = "foo:\r\n - bar\r\n - baz" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_oneline_indented(self): + y = " foo: bar\n baz: baf\n" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + + def test_indentation_215(self): + self.maxDiff = None + y = """ + description: > + The method should exist on the Array prototype, and it should be writable + and configurable, but not enumerable. + includes: [propertyHelper.js] + es6id: 22.1.3.13 + """ + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_indentation_215_2(self): + self.maxDiff = None + y = """ + description: > + The method should exist + includes: [propertyHelper.js] + es6id: 22.1.3.13 + """ + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_line_folding(self): + self.maxDiff = None + y = """ +description: aaa + bbb +es6id: 19.1.2.1 +""" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_line_folding_2(self): + self.maxDiff = None + y = """ +description: ccc + + ddd + +es6id: 19.1.2.1 +""" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_line_folding_3(self): + self.maxDiff = None + y = """ +description: eee + + + fff +es6id: 19.1.2.1 +""" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_line_folding_4(self): + self.maxDiff = None + y = """ +description: ggg + + hhh + iii + + jjj +es6id: 19.1.2.1 +""" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_no_folding(self): + y = """ +description: | + This is text that, naively parsed, would appear + + to: have + nested: data +""" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_value_multiline(self): + y = """ +description: + This is a multi-line value + + whose trailing newline should be stripped +""" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_nested_1(self): + y = """ +es61d: 19.1.2.1 +negative: + stage: early + type: ReferenceError +description: foo +""" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + + def test_nested_2(self): + y = """ +es61d: 19.1.2.1 +first: + second_a: + third: 1 + second_b: 3 +description: foo +""" + self.assertEqual(monkeyYaml.load(y), yaml.load(y)) + +if __name__ == '__main__': + unittest.main() diff --git a/deps/v8/third_party/test262-harness/test/test_parseTestRecord.py b/deps/v8/third_party/test262-harness/test/test_parseTestRecord.py new file mode 100644 index 00000000000000..36576b57b146f4 --- /dev/null +++ b/deps/v8/third_party/test262-harness/test/test_parseTestRecord.py @@ -0,0 +1,183 @@ +#!/usr/bin/env python + +# Copyright 2014 by Sam Mikes. All rights reserved. +# This code is governed by the BSD license found in the LICENSE file. + +import unittest + +import os +import yaml + +# add parent dir to search path +import sys +sys.path.append("src") + +from parseTestRecord import * + +def slurpFile(name): + with open('test/' + name) as f: + contents = f.read() + return contents + + +class TestOldParsing(unittest.TestCase): + + def test_test(self): + self.assertTrue(True) + + def test_overview(self): + name = 'fixtures/test262-old-headers.js' + contents = slurpFile(name) + record = parseTestRecord(contents, name) + + self.assertEqual("""// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file.""", + record['header']) + self.assertEqual("""The production Block { } in strict code can't contain function +declaration;""", record['commentary']) + + self.assertEqual("bestPractice/Sbp_A1_T1.js", record['path']) + self.assertEqual("Trying to declare function at the Block statement", + record['description']) + self.assertEqual("", record['onlyStrict']) + self.assertEqual("SyntaxError", record['negative']) + self.assertEqual("http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls", + record['bestPractice']) + + self.assertEqual(""""use strict"; +{ + function __func(){} +} + +""", record['test']) + + @unittest.expectedFailure + def test_nomatch(self): + with self.assertRaisesRegexp(Exception, "unrecognized"): + parseTestRecord("#!/usr/bin/env python", "random.py") + + def test_duplicate(self): + with self.assertRaisesRegexp(Exception, "duplicate: foo"): + parseTestRecord(""" +// Copyright + +/** + * @foo bar + * @foo bar + */ + +1; +""" + , "name") + + def test_malformed(self): + with self.assertRaisesRegexp(Exception, 'Malformed "@" attribute: name'): + parseTestRecord(""" +// Copyright + +/** + * @ baz + * @foo bar + */ + +1; +""" + , "name") + + def test_stripStars(self): + self.assertEqual("", stripStars("")) + self.assertEqual("foo", stripStars("\n* foo")) + self.assertEqual("@foo bar", stripStars("\n* @foo bar")) + self.assertEqual("@foo bar", stripStars("\n *@foo bar")) + + +class TestYAMLParsing(unittest.TestCase): + def test_test(self): + self.assertTrue(True) + + def test_split(self): + name = 'fixtures/test262-yaml-headers.js' + contents = slurpFile(name) + self.assertTrue('---' in contents) + match = matchParts(contents, name) + self.assertEqual("""--- +info: > + The production Block { } in strict code can't contain function + declaration; +description: Trying to declare function at the Block statement +negative: SyntaxError +bestPractice: "http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls" +flags: [onlyStrict] +---""", match.group(2)) + + def test_yamlParse(self): + text = """ +info: > + The production Block { } in strict code can't contain function + declaration; +description: Trying to declare function at the Block statement +negative: SyntaxError +bestPractice: "http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls" +flags: [onlyStrict]""" + parsed = yaml.load(text) + + self.assertEqual("Trying to declare function at the Block statement", + parsed['description']) + self.assertEqual("SyntaxError", parsed['negative']) + self.assertEqual('http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls', parsed['bestPractice']) + self.assertEqual(["onlyStrict"], parsed['flags']) + self.assertEqual("The production Block { } in strict code can't contain function declaration;\n", parsed['info']) + + def test_hasYAML(self): + self.assertTrue(hasYAML("---\n some: yaml\n\n---")) + self.assertFalse(hasYAML("\n* Test description\n *\n * @foo bar\n* @noStrict\n")) + + def test_fixturehasYAML(self): + name = 'fixtures/test262-yaml-headers.js' + contents = slurpFile(name) + self.assertTrue('---' in contents) + match = matchParts(contents, name) + self.assertTrue(hasYAML(match.group(2))) + + def test_missingKeys(self): + result = {} + yamlAttrParser(result, """--- + info: some info (note no flags or includes) +---""", "") + self.assertEqual("some info (note no flags or includes)", result['commentary']) + + def test_overview(self): + name = 'fixtures/test262-yaml-headers.js' + contents = slurpFile(name) + record = parseTestRecord(contents, name) + + self.assertEqual("""// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file.""", + record['header']) + self.assertEqual("The production Block { } in strict code can't contain function declaration;\n", record['commentary']) + + self.assertEqual("Trying to declare function at the Block statement", + record['description']) + self.assertEqual(['onlyStrict'], record['flags']) + self.assertEqual("", record['onlyStrict']) + self.assertEqual("SyntaxError", record['negative']) + self.assertEqual("http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls", + record['bestPractice']) + + self.assertEqual(""""use strict"; +{ + function __func(){} +} + +""", record['test']) + + def test_negative(self): + name = 'fixtures/negative.js' + contents = slurpFile(name) + record = parseTestRecord(contents, name) + + self.assertEqual('early', record['negative']['phase']) + self.assertEqual('SyntaxError', record['negative']['type']) + +if __name__ == '__main__': + unittest.main() diff --git a/deps/v8/third_party/test262-harness/test/test_test262.py b/deps/v8/third_party/test262-harness/test/test_test262.py new file mode 100644 index 00000000000000..8cf41d79f0817d --- /dev/null +++ b/deps/v8/third_party/test262-harness/test/test_test262.py @@ -0,0 +1,274 @@ +#!/usr/bin/env python + +# Copyright 2014 by Sam Mikes. All rights reserved. +# This code is governed by the BSD license found in the LICENSE file. + +import unittest + +import sys +import os +import cStringIO +from functools import wraps + +sys.path.append("src") + +import test262 + +class TestTest262(unittest.TestCase): + + def test_that_tests_run(self): + self.assertEqual(1 + 2, 3) + +class MockTest(object): + + def __init__(self, name, negative): + self.name = name + self.negative = negative if negative else False + self.strict_mode = False + + def GetName(self): + return self.name + + def IsNegative(self): + return self.negative + + def GetMode(self): + if self.strict_mode: + return "strict mode" + + return "non-strict mode" + +class MockResult(object): + + def __init__(self, case): + self.case = case + + + +class TestTestSuite(unittest.TestCase): + + def test_that_tests_run(self): + self.assertEqual(1 + 2, 3) + + def test_create_test_suite(self): + test_suite = test262.TestSuite(".", + False, + False, + False, + None) + self.assertNotEqual(test_suite, None) + + def test_summary(self): + test_suite = test262.TestSuite(".", + False, + False, + False, + None) + + progress = test262.ProgressIndicator(100) + progress.succeeded = 98 + progress.failed = 2 + + result = mute(True)(test_suite.PrintSummary)(progress, None) + self.assertEqual(""" +=== Summary === + - Ran 100 tests + - Passed 98 tests (98.0%) + - Failed 2 tests (2.0%) +""", result) + + def test_summary_logfile(self): + test_suite = test262.TestSuite(".", + False, + False, + False, + None) + + progress = test262.ProgressIndicator(100) + progress.succeeded = 98 + progress.failed = 2 + + fake_log = cStringIO.StringIO() + test_suite.logf = fake_log + + result = mute(True)(test_suite.PrintSummary)(progress, True) + + expected_out = """ +=== Summary === + - Ran 100 tests + - Passed 98 tests (98.0%) + - Failed 2 tests (2.0%) +""" + + expected_log = """=== Summary === + - Ran 100 tests + - Passed 98 tests (98.0%) + - Failed 2 tests (2.0%) +""" + self.assertEqual(expected_out, result) + self.assertEqual(expected_log, fake_log.getvalue()) + + + def test_summary_withfails(self): + test_suite = test262.TestSuite(".", + False, + False, + False, + None) + + progress = test262.ProgressIndicator(100) + progress.succeeded = 98 + progress.failed = 2 + progress.failed_tests = [ + MockResult(MockTest("foo", False)), + MockResult(MockTest("bar", True)) + ] + + result = mute(True)(test_suite.PrintSummary)(progress, None) + self.assertEqual(""" +=== Summary === + - Ran 100 tests + - Passed 98 tests (98.0%) + - Failed 2 tests (2.0%) + +Failed Tests + foo in non-strict mode + +Expected to fail but passed --- + bar in non-strict mode +""", result) + + + def test_summary_withfails_andlog(self): + test_suite = test262.TestSuite(".", + False, + False, + False, + None) + + progress = test262.ProgressIndicator(100) + progress.succeeded = 98 + progress.failed = 2 + progress.failed_tests = [ + MockResult(MockTest("foo", False)), + MockResult(MockTest("bar", True)) + ] + + fake_log = cStringIO.StringIO() + test_suite.logf = fake_log + + expected_out = """ +=== Summary === + - Ran 100 tests + - Passed 98 tests (98.0%) + - Failed 2 tests (2.0%) + +Failed Tests + foo in non-strict mode + +Expected to fail but passed --- + bar in non-strict mode +""" + expected_log = """=== Summary === + - Ran 100 tests + - Passed 98 tests (98.0%) + - Failed 2 tests (2.0%) +Failed Tests + foo in non-strict mode +Expected to fail but passed --- + bar in non-strict mode +""" + + result = mute(True)(test_suite.PrintSummary)(progress, True) + self.assertEqual(expected_out, result) + self.assertEqual(expected_log, fake_log.getvalue()) + + + def test_summary_success_logfile(self): + test_suite = test262.TestSuite(".", + False, + False, + False, + None) + + progress = test262.ProgressIndicator(100) + progress.succeeded = 100 + progress.failed = 0 + + fake_log = cStringIO.StringIO() + test_suite.logf = fake_log + + result = mute(True)(test_suite.PrintSummary)(progress, True) + + expected_out = """ +=== Summary === + - Ran 100 tests + - All tests succeeded +""" + + expected_log = """=== Summary === + - Ran 100 tests + - All tests succeeded +""" + self.assertEqual(expected_out, result) + self.assertEqual(expected_log, fake_log.getvalue()) + + + def test_percent_format(self): + self.assertEqual(test262.PercentFormat(1, 100), "1 test (1.0%)") + self.assertEqual(test262.PercentFormat(0, 100), "0 tests (0.0%)") + self.assertEqual(test262.PercentFormat(99, 100), "99 tests (99.0%)") + + +# module level utility functions +# copied from https://stackoverflow.com/questions/2828953/silence-the-stdout-of-a-function-in-python-without-trashing-sys-stdout-and-resto + + +def mute(returns_output=False): + """ + Decorate a function that prints to stdout, intercepting the output. + If "returns_output" is True, the function will return a generator + yielding the printed lines instead of the return values. + + The decorator litterally hijack sys.stdout during each function + execution for ALL THE THREADS, so be careful with what you apply it to + and in which context. + + >>> def numbers(): + print "42" + print "1984" + ... + >>> numbers() + 42 + 1984 + >>> mute()(numbers)() + >>> list(mute(True)(numbers)()) + ['42', '1984'] + + """ + + def decorator(func): + + @wraps(func) + def wrapper(*args, **kwargs): + + saved_stdout = sys.stdout + sys.stdout = cStringIO.StringIO() + + try: + out = func(*args, **kwargs) + if returns_output: + out = sys.stdout.getvalue() + finally: + sys.stdout = saved_stdout + + return out + + return wrapper + + return decorator + + +if __name__ == '__main__': + unittest.main() + diff --git a/deps/v8/third_party/zlib/README.chromium b/deps/v8/third_party/zlib/README.chromium index c3c1ef69ad4656..db159bef60a9d9 100644 --- a/deps/v8/third_party/zlib/README.chromium +++ b/deps/v8/third_party/zlib/README.chromium @@ -1,7 +1,7 @@ Name: zlib Short Name: zlib URL: http://zlib.net/ -Version: 1.2.11 +Version: 1.2.12 CPEPrefix: cpe:/a:zlib:zlib:1.2.11 Security Critical: yes License: Custom license @@ -27,3 +27,4 @@ Local Modifications: - Plus the changes in 'patches' folder. - Code in contrib/ other than contrib/minizip was added to match zlib's contributor layout. + - Backported patches from 1.2.12 release (Work In Progress). diff --git a/deps/v8/third_party/zlib/contrib/optimizations/inffast_chunk.c b/deps/v8/third_party/zlib/contrib/optimizations/inffast_chunk.c index 4bacbc46f620a3..8d62920a21185f 100644 --- a/deps/v8/third_party/zlib/contrib/optimizations/inffast_chunk.c +++ b/deps/v8/third_party/zlib/contrib/optimizations/inffast_chunk.c @@ -95,7 +95,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ code const FAR *dcode; /* local strm->distcode */ unsigned lmask; /* mask for first level of length codes */ unsigned dmask; /* mask for first level of distance codes */ - code here; /* retrieved table entry */ + code const *here; /* retrieved table entry */ unsigned op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ unsigned len; /* match length, unused bytes */ @@ -139,20 +139,20 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ bits += 8; #endif } - here = lcode[hold & lmask]; + here = lcode + (hold & lmask); dolen: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op == 0) { /* literal */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + Tracevv((stderr, here->val >= 0x20 && here->val < 0x7f ? "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - *out++ = (unsigned char)(here.val); + "inflate: literal 0x%02x\n", here->val)); + *out++ = (unsigned char)(here->val); } else if (op & 16) { /* length base */ - len = (unsigned)(here.val); + len = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (op) { if (bits < op) { @@ -182,14 +182,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ bits += 8; #endif } - here = dcode[hold & dmask]; + here = dcode + (hold & dmask); dodist: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op & 16) { /* distance base */ - dist = (unsigned)(here.val); + dist = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (bits < op) { #ifdef INFLATE_CHUNK_READ_64LE @@ -295,7 +295,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } } else if ((op & 64) == 0) { /* 2nd level distance code */ - here = dcode[here.val + (hold & ((1U << op) - 1))]; + here = dcode + here->val + (hold & ((1U << op) - 1)); goto dodist; } else { @@ -305,7 +305,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } } else if ((op & 64) == 0) { /* 2nd level length code */ - here = lcode[here.val + (hold & ((1U << op) - 1))]; + here = lcode + here->val + (hold & ((1U << op) - 1)); goto dolen; } else if (op & 32) { /* end-of-block */ diff --git a/deps/v8/third_party/zlib/contrib/optimizations/inflate.c b/deps/v8/third_party/zlib/contrib/optimizations/inflate.c index 81d558bd6ef5fa..4841cd964cf2f7 100644 --- a/deps/v8/third_party/zlib/contrib/optimizations/inflate.c +++ b/deps/v8/third_party/zlib/contrib/optimizations/inflate.c @@ -131,6 +131,7 @@ z_streamp strm; state->mode = HEAD; state->last = 0; state->havedict = 0; + state->flags = -1; state->dmax = 32768U; state->head = Z_NULL; state->hold = 0; @@ -682,7 +683,6 @@ int flush; state->mode = FLAGS; break; } - state->flags = 0; /* expect zlib header */ if (state->head != Z_NULL) state->head->done = -1; if (!(state->wrap & 1) || /* check if zlib header allowed */ @@ -709,6 +709,7 @@ int flush; break; } state->dmax = 1U << len; + state->flags = 0; /* indicate zlib header */ Tracev((stderr, "inflate: zlib header ok\n")); strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = hold & 0x200 ? DICTID : TYPE; @@ -1233,7 +1234,7 @@ int flush; case LENGTH: if (state->wrap && state->flags) { NEEDBITS(32); - if (hold != (state->total & 0xffffffffUL)) { + if ((state->wrap & 4) && hold != (state->total & 0xffffffff)) { strm->msg = (char *)"incorrect length check"; state->mode = BAD; break; @@ -1423,6 +1424,7 @@ int ZEXPORT inflateSync(strm) z_streamp strm; { unsigned len; /* number of bytes to look at or looked at */ + int flags; /* temporary to save header status */ unsigned long in, out; /* temporary to save total_in and total_out */ unsigned char buf[4]; /* to restore bit buffer to byte string */ struct inflate_state FAR *state; @@ -1455,9 +1457,15 @@ z_streamp strm; /* return no joy or set up to restart inflate() on a new block */ if (state->have != 4) return Z_DATA_ERROR; + if (state->flags == -1) + state->wrap = 0; /* if no header yet, treat as raw */ + else + state->wrap &= ~4; /* no point in computing a check value now */ + flags = state->flags; in = strm->total_in; out = strm->total_out; inflateReset(strm); strm->total_in = in; strm->total_out = out; + state->flags = flags; state->mode = TYPE; return Z_OK; } @@ -1553,7 +1561,7 @@ int check; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; - if (check) + if (check && state->wrap) state->wrap |= 4; else state->wrap &= ~4; diff --git a/deps/v8/third_party/zlib/crc32.c b/deps/v8/third_party/zlib/crc32.c index d4c3248d98415b..5ee3bd425e6c59 100644 --- a/deps/v8/third_party/zlib/crc32.c +++ b/deps/v8/third_party/zlib/crc32.c @@ -250,7 +250,7 @@ unsigned long ZEXPORT crc32_z(crc, buf, len) #endif /* DYNAMIC_CRC_TABLE */ #ifdef BYFOUR - if (sizeof(void *) == sizeof(ptrdiff_t)) { + if (sizeof(void *) == sizeof(z_size_t)) { z_crc_t endian; endian = 1; @@ -327,7 +327,7 @@ local unsigned long crc32_little(crc, buf, len) c = (z_crc_t)crc; c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { + while (len && ((z_size_t)buf & 3)) { c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); len--; } @@ -367,7 +367,7 @@ local unsigned long crc32_big(crc, buf, len) c = ZSWAP32((z_crc_t)crc); c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { + while (len && ((z_size_t)buf & 3)) { c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); len--; } diff --git a/deps/v8/third_party/zlib/deflate.c b/deps/v8/third_party/zlib/deflate.c index fc7ae45905fff1..5c7c718d29ad85 100644 --- a/deps/v8/third_party/zlib/deflate.c +++ b/deps/v8/third_party/zlib/deflate.c @@ -176,10 +176,15 @@ local const config configuration_table[10] = { /* =========================================================================== * Initialize the hash table (avoiding 64K overflow for 16 bit systems). * prev[] will be initialized on the fly. + * TODO(cavalcantii): optimization opportunity, check comments on: + * https://chromium-review.googlesource.com/c/chromium/src/+/3561506/ */ #define CLEAR_HASH(s) \ - s->head[s->hash_size-1] = NIL; \ - zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); + do { \ + s->head[s->hash_size-1] = NIL; \ + zmemzero((Bytef *)s->head, \ + (unsigned)(s->hash_size-1)*sizeof(*s->head)); \ + } while (0) /* =========================================================================== * Slide the hash table when sliding the window down (could be avoided with 32 @@ -534,13 +539,13 @@ int ZEXPORT deflateResetKeep (strm) #ifdef GZIP s->wrap == 2 ? GZIP_STATE : #endif - s->wrap ? INIT_STATE : BUSY_STATE; + INIT_STATE; strm->adler = #ifdef GZIP s->wrap == 2 ? crc32(0L, Z_NULL, 0) : #endif adler32(0L, Z_NULL, 0); - s->last_flush = Z_NO_FLUSH; + s->last_flush = -2; _tr_init(s); @@ -595,7 +600,8 @@ int ZEXPORT deflatePrime (strm, bits, value) if (deflateStateCheck(strm)) return Z_STREAM_ERROR; s = strm->state; - if (s->sym_buf < s->pending_out + ((Buf_size + 7) >> 3)) + if (bits < 0 || bits > 16 || + s->sym_buf < s->pending_out + ((Buf_size + 7) >> 3)) return Z_BUF_ERROR; do { put = Buf_size - s->bi_valid; @@ -633,12 +639,12 @@ int ZEXPORT deflateParams(strm, level, strategy) func = configuration_table[s->level].func; if ((strategy != s->strategy || func != configuration_table[level].func) && - s->high_water) { + s->last_flush != -2) { /* Flush the last buffer: */ int err = deflate(strm, Z_BLOCK); if (err == Z_STREAM_ERROR) return err; - if (strm->avail_out == 0) + if (strm->avail_in || (s->strstart - s->block_start) + s->lookahead) return Z_BUF_ERROR; } if (s->level != level) { @@ -857,6 +863,8 @@ int ZEXPORT deflate (strm, flush) } /* Write the header */ + if (s->status == INIT_STATE && s->wrap == 0) + s->status = BUSY_STATE; if (s->status == INIT_STATE) { /* zlib header */ uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; @@ -1589,6 +1597,8 @@ local void fill_window_c(s) s->match_start -= wsize; s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ s->block_start -= (long) wsize; + if (s->insert > s->strstart) + s->insert = s->strstart; slide_hash(s); more += wsize; } @@ -1818,6 +1828,7 @@ local block_state deflate_stored(s, flush) s->matches = 2; /* clear hash */ zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size); s->strstart = s->w_size; + s->insert = s->strstart; } else { if (s->window_size - s->strstart <= used) { @@ -1826,12 +1837,14 @@ local block_state deflate_stored(s, flush) zmemcpy(s->window, s->window + s->w_size, s->strstart); if (s->matches < 2) s->matches++; /* add a pending slide_hash() */ + if (s->insert > s->strstart) + s->insert = s->strstart; } zmemcpy(s->window + s->strstart, s->strm->next_in - used, used); s->strstart += used; + s->insert += MIN(used, s->w_size - s->insert); } s->block_start = s->strstart; - s->insert += MIN(used, s->w_size - s->insert); } if (s->high_water < s->strstart) s->high_water = s->strstart; @@ -1846,7 +1859,7 @@ local block_state deflate_stored(s, flush) return block_done; /* Fill the window with any remaining input. */ - have = s->window_size - s->strstart - 1; + have = s->window_size - s->strstart; if (s->strm->avail_in > have && s->block_start >= (long)s->w_size) { /* Slide the window down. */ s->block_start -= s->w_size; @@ -1855,12 +1868,15 @@ local block_state deflate_stored(s, flush) if (s->matches < 2) s->matches++; /* add a pending slide_hash() */ have += s->w_size; /* more space now */ + if (s->insert > s->strstart) + s->insert = s->strstart; } if (have > s->strm->avail_in) have = s->strm->avail_in; if (have) { deflate_read_buf(s->strm, s->window + s->strstart, have); s->strstart += have; + s->insert += MIN(have, s->w_size - s->insert); } if (s->high_water < s->strstart) s->high_water = s->strstart; diff --git a/deps/v8/third_party/zlib/google/BUILD.gn b/deps/v8/third_party/zlib/google/BUILD.gn index c29e8927806235..e996b167dba856 100644 --- a/deps/v8/third_party/zlib/google/BUILD.gn +++ b/deps/v8/third_party/zlib/google/BUILD.gn @@ -7,6 +7,7 @@ import("//build_overrides/build.gni") if (build_with_chromium) { static_library("zip") { sources = [ + "redact.h", "zip.cc", "zip.h", "zip_internal.cc", @@ -18,6 +19,7 @@ if (build_with_chromium) { ] deps = [ "//base", + "//base:i18n", "//third_party/zlib:minizip", ] } diff --git a/deps/v8/third_party/zlib/google/compression_utils_unittest.cc b/deps/v8/third_party/zlib/google/compression_utils_unittest.cc index 415b9ab9228928..76572e5a47eac4 100644 --- a/deps/v8/third_party/zlib/google/compression_utils_unittest.cc +++ b/deps/v8/third_party/zlib/google/compression_utils_unittest.cc @@ -7,9 +7,9 @@ #include #include +#include #include -#include "base/cxx17_backports.h" #include "testing/gtest/include/gtest/gtest.h" namespace compression { @@ -33,24 +33,24 @@ const uint8_t kCompressedData[] = { } // namespace TEST(CompressionUtilsTest, GzipCompression) { - std::string data(reinterpret_cast(kData), base::size(kData)); + std::string data(reinterpret_cast(kData), std::size(kData)); std::string compressed_data; EXPECT_TRUE(GzipCompress(data, &compressed_data)); std::string golden_compressed_data( reinterpret_cast(kCompressedData), - base::size(kCompressedData)); + std::size(kCompressedData)); EXPECT_EQ(golden_compressed_data, compressed_data); } TEST(CompressionUtilsTest, GzipUncompression) { std::string compressed_data(reinterpret_cast(kCompressedData), - base::size(kCompressedData)); + std::size(kCompressedData)); std::string uncompressed_data; EXPECT_TRUE(GzipUncompress(compressed_data, &uncompressed_data)); std::string golden_data(reinterpret_cast(kData), - base::size(kData)); + std::size(kData)); EXPECT_EQ(golden_data, uncompressed_data); } @@ -59,7 +59,7 @@ TEST(CompressionUtilsTest, GzipUncompressionFromSpanToString) { EXPECT_TRUE(GzipUncompress(kCompressedData, &uncompressed_data)); std::string golden_data(reinterpret_cast(kData), - base::size(kData)); + std::size(kData)); EXPECT_EQ(golden_data, uncompressed_data); } @@ -84,10 +84,10 @@ TEST(CompressionUtilsTest, LargeInput) { TEST(CompressionUtilsTest, InPlace) { const std::string original_data(reinterpret_cast(kData), - base::size(kData)); + std::size(kData)); const std::string golden_compressed_data( reinterpret_cast(kCompressedData), - base::size(kCompressedData)); + std::size(kCompressedData)); std::string data(original_data); EXPECT_TRUE(GzipCompress(data, &data)); diff --git a/deps/v8/third_party/zlib/google/redact.h b/deps/v8/third_party/zlib/google/redact.h new file mode 100644 index 00000000000000..ea7da16a52751c --- /dev/null +++ b/deps/v8/third_party/zlib/google/redact.h @@ -0,0 +1,31 @@ +// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +#ifndef THIRD_PARTY_ZLIB_GOOGLE_REDACT_H_ +#define THIRD_PARTY_ZLIB_GOOGLE_REDACT_H_ + +#include + +#include "base/files/file_path.h" +#include "base/logging.h" + +namespace zip { + +// Redacts file paths in log messages. +// Example: +// LOG(ERROR) << "Cannot open " << Redact(path); +class Redact { + public: + explicit Redact(const base::FilePath& path) : path_(path) {} + + friend std::ostream& operator<<(std::ostream& out, const Redact&& r) { + return LOG_IS_ON(INFO) ? out << "'" << r.path_ << "'" : out << "(redacted)"; + } + + private: + const base::FilePath& path_; +}; + +} // namespace zip + +#endif // THIRD_PARTY_ZLIB_GOOGLE_REDACT_H_ diff --git a/deps/v8/third_party/zlib/google/zip.cc b/deps/v8/third_party/zlib/google/zip.cc index 7c46718808d27f..1a43196e99d5af 100644 --- a/deps/v8/third_party/zlib/google/zip.cc +++ b/deps/v8/third_party/zlib/google/zip.cc @@ -10,10 +10,12 @@ #include "base/bind.h" #include "base/files/file.h" #include "base/files/file_enumerator.h" +#include "base/files/file_util.h" #include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/strings/string_util.h" #include "build/build_config.h" +#include "third_party/zlib/google/redact.h" #include "third_party/zlib/google/zip_internal.h" #include "third_party/zlib/google/zip_reader.h" #include "third_party/zlib/google/zip_writer.h" @@ -25,14 +27,13 @@ bool IsHiddenFile(const base::FilePath& file_path) { return file_path.BaseName().value()[0] == '.'; } -bool ExcludeNoFilesFilter(const base::FilePath& file_path) { - return true; -} - // Creates a directory at |extract_dir|/|entry_path|, including any parents. bool CreateDirectory(const base::FilePath& extract_dir, const base::FilePath& entry_path) { - return base::CreateDirectory(extract_dir.Append(entry_path)); + const base::FilePath dir = extract_dir.Append(entry_path); + const bool ok = base::CreateDirectory(dir); + PLOG_IF(ERROR, !ok) << "Cannot create directory " << Redact(dir); + return ok; } // Creates a WriterDelegate that can write a file at |extract_dir|/|entry_path|. @@ -59,12 +60,13 @@ class DirectFileAccessor : public FileAccessor { const base::FilePath absolute_path = src_dir_.Append(path); if (base::DirectoryExists(absolute_path)) { files->emplace_back(); - LOG(ERROR) << "Cannot open '" << path << "': It is a directory"; + LOG(ERROR) << "Cannot open " << Redact(path) << ": It is a directory"; } else { - files->emplace_back(absolute_path, - base::File::FLAG_OPEN | base::File::FLAG_READ); - LOG_IF(ERROR, !files->back().IsValid()) - << "Cannot open '" << path << "'"; + const base::File& file = files->emplace_back( + absolute_path, base::File::FLAG_OPEN | base::File::FLAG_READ); + LOG_IF(ERROR, !file.IsValid()) + << "Cannot open " << Redact(path) << ": " + << base::File::ErrorToString(file.error_details()); } } @@ -97,7 +99,7 @@ class DirectFileAccessor : public FileAccessor { base::File::Info file_info; if (!base::GetFileInfo(src_dir_.Append(path), &file_info)) { - LOG(ERROR) << "Cannot get info of '" << path << "'"; + PLOG(ERROR) << "Cannot get info of " << Redact(path); return false; } @@ -125,7 +127,7 @@ bool Zip(const ZipParams& params) { std::unique_ptr zip_writer; -#if defined(OS_POSIX) +#if defined(OS_POSIX) || defined(OS_FUCHSIA) if (params.dest_fd != base::kInvalidPlatformFile) { DCHECK(params.dest_file.empty()); zip_writer = @@ -169,79 +171,82 @@ bool Zip(const ZipParams& params) { return zip_writer->Close(); } -bool Unzip(const base::FilePath& src_file, const base::FilePath& dest_dir) { - return UnzipWithFilterCallback( - src_file, dest_dir, base::BindRepeating(&ExcludeNoFilesFilter), true); -} - -bool UnzipWithFilterCallback(const base::FilePath& src_file, - const base::FilePath& dest_dir, - FilterCallback filter_cb, - bool log_skipped_files) { +bool Unzip(const base::FilePath& src_file, + const base::FilePath& dest_dir, + UnzipOptions options) { base::File file(src_file, base::File::FLAG_OPEN | base::File::FLAG_READ); if (!file.IsValid()) { - DLOG(WARNING) << "Cannot open '" << src_file << "'"; + PLOG(ERROR) << "Cannot open " << Redact(src_file) << ": " + << base::File::ErrorToString(file.error_details()); return false; } - return UnzipWithFilterAndWriters( - file.GetPlatformFile(), - base::BindRepeating(&CreateFilePathWriterDelegate, dest_dir), - base::BindRepeating(&CreateDirectory, dest_dir), std::move(filter_cb), - log_skipped_files); + DLOG_IF(WARNING, !base::IsDirectoryEmpty(dest_dir)) + << "ZIP extraction directory is not empty: " << dest_dir; + + return Unzip(file.GetPlatformFile(), + base::BindRepeating(&CreateFilePathWriterDelegate, dest_dir), + base::BindRepeating(&CreateDirectory, dest_dir), + std::move(options)); } -bool UnzipWithFilterAndWriters(const base::PlatformFile& src_file, - WriterFactory writer_factory, - DirectoryCreator directory_creator, - FilterCallback filter_cb, - bool log_skipped_files) { +bool Unzip(const base::PlatformFile& src_file, + WriterFactory writer_factory, + DirectoryCreator directory_creator, + UnzipOptions options) { ZipReader reader; + reader.SetEncoding(std::move(options.encoding)); + reader.SetPassword(std::move(options.password)); + if (!reader.OpenFromPlatformFile(src_file)) { - DLOG(WARNING) << "Cannot open '" << src_file << "'"; + LOG(ERROR) << "Cannot open ZIP from file handle " << src_file; return false; } - while (reader.HasMore()) { - if (!reader.OpenCurrentEntryInZip()) { - DLOG(WARNING) << "Failed to open the current file in zip"; - return false; + + while (const ZipReader::Entry* const entry = reader.Next()) { + if (entry->is_unsafe) { + LOG(ERROR) << "Found unsafe entry " << Redact(entry->path) << " in ZIP"; + if (!options.continue_on_error) + return false; + continue; } - const base::FilePath& entry_path = reader.current_entry_info()->file_path(); - if (reader.current_entry_info()->is_unsafe()) { - DLOG(WARNING) << "Found an unsafe file in zip " << entry_path; - return false; + + if (options.filter && !options.filter.Run(entry->path)) { + VLOG(1) << "Skipped ZIP entry " << Redact(entry->path); + continue; } - if (filter_cb.Run(entry_path)) { - if (reader.current_entry_info()->is_directory()) { - if (!directory_creator.Run(entry_path)) - return false; - } else { - std::unique_ptr writer = writer_factory.Run(entry_path); - if (!reader.ExtractCurrentEntry(writer.get(), - std::numeric_limits::max())) { - DLOG(WARNING) << "Failed to extract " << entry_path; + + if (entry->is_directory) { + // It's a directory. + if (!directory_creator.Run(entry->path)) { + LOG(ERROR) << "Cannot create directory " << Redact(entry->path); + if (!options.continue_on_error) return false; - } } - } else if (log_skipped_files) { - DLOG(WARNING) << "Skipped file " << entry_path; + + continue; } - if (!reader.AdvanceToNextEntry()) { - DLOG(WARNING) << "Failed to advance to the next file"; - return false; + // It's a file. + std::unique_ptr writer = writer_factory.Run(entry->path); + if (!writer || !reader.ExtractCurrentEntry(writer.get())) { + LOG(ERROR) << "Cannot extract file " << Redact(entry->path) + << " from ZIP"; + if (!options.continue_on_error) + return false; } } - return true; + + return reader.ok(); } bool ZipWithFilterCallback(const base::FilePath& src_dir, const base::FilePath& dest_file, - FilterCallback filter_cb) { + FilterCallback filter) { DCHECK(base::DirectoryExists(src_dir)); return Zip({.src_dir = src_dir, .dest_file = dest_file, - .filter_callback = std::move(filter_cb)}); + .filter_callback = std::move(filter)}); } bool Zip(const base::FilePath& src_dir, @@ -252,7 +257,7 @@ bool Zip(const base::FilePath& src_dir, .include_hidden_files = include_hidden_files}); } -#if defined(OS_POSIX) +#if defined(OS_POSIX) || defined(OS_FUCHSIA) bool ZipFiles(const base::FilePath& src_dir, Paths src_relative_paths, int dest_fd) { @@ -261,6 +266,6 @@ bool ZipFiles(const base::FilePath& src_dir, .dest_fd = dest_fd, .src_files = src_relative_paths}); } -#endif // defined(OS_POSIX) +#endif // defined(OS_POSIX) || defined(OS_FUCHSIA) } // namespace zip diff --git a/deps/v8/third_party/zlib/google/zip.h b/deps/v8/third_party/zlib/google/zip.h index ecaecb1dc9663c..25ec655caf314b 100644 --- a/deps/v8/third_party/zlib/google/zip.h +++ b/deps/v8/third_party/zlib/google/zip.h @@ -99,7 +99,7 @@ struct ZipParams { // Either dest_file or dest_fd should be set, but not both. base::FilePath dest_file; -#if defined(OS_POSIX) +#if defined(OS_POSIX) || defined(OS_FUCHSIA) // Destination file passed a file descriptor. // Either dest_file or dest_fd should be set, but not both. int dest_fd = base::kInvalidPlatformFile; @@ -159,7 +159,7 @@ bool Zip(const base::FilePath& src_dir, const base::FilePath& dest_file, bool include_hidden_files); -#if defined(OS_POSIX) +#if defined(OS_POSIX) || defined(OS_FUCHSIA) // Zips files listed in |src_relative_paths| to destination specified by file // descriptor |dest_fd|, without taking ownership of |dest_fd|. The paths listed // in |src_relative_paths| are relative to the |src_dir| and will be used as the @@ -168,35 +168,45 @@ bool Zip(const base::FilePath& src_dir, bool ZipFiles(const base::FilePath& src_dir, Paths src_relative_paths, int dest_fd); -#endif // defined(OS_POSIX) - -// Unzip the contents of zip_file into dest_dir. -// For each file in zip_file, include it only if the callback |filter_cb| -// returns true. Otherwise omit it. -// If |log_skipped_files| is true, files skipped during extraction are printed -// to debug log. -bool UnzipWithFilterCallback(const base::FilePath& zip_file, - const base::FilePath& dest_dir, - FilterCallback filter_cb, - bool log_skipped_files); - -// Unzip the contents of zip_file, using the writers provided by writer_factory. -// For each file in zip_file, include it only if the callback |filter_cb| -// returns true. Otherwise omit it. -// If |log_skipped_files| is true, files skipped during extraction are printed -// to debug log. +#endif // defined(OS_POSIX) || defined(OS_FUCHSIA) + +// Options of the Unzip function, with valid default values. +struct UnzipOptions { + // Encoding of entry paths in the ZIP archive. By default, paths are assumed + // to be in UTF-8. + std::string encoding; + + // Only extract the entries for which |filter_cb| returns true. By default, + // everything gets extracted. + FilterCallback filter; + + // Password to decrypt the encrypted files. + std::string password; + + // Should ignore errors when extracting files? + bool continue_on_error = false; +}; + typedef base::RepeatingCallback( const base::FilePath&)> WriterFactory; + typedef base::RepeatingCallback DirectoryCreator; -bool UnzipWithFilterAndWriters(const base::PlatformFile& zip_file, - WriterFactory writer_factory, - DirectoryCreator directory_creator, - FilterCallback filter_cb, - bool log_skipped_files); - -// Unzip the contents of zip_file into dest_dir. -bool Unzip(const base::FilePath& zip_file, const base::FilePath& dest_dir); + +// Unzips the contents of |zip_file|, using the writers provided by +// |writer_factory|. +bool Unzip(const base::PlatformFile& zip_file, + WriterFactory writer_factory, + DirectoryCreator directory_creator, + UnzipOptions options = {}); + +// Unzips the contents of |zip_file| into |dest_dir|. +// This function does not overwrite any existing file. +// A filename collision will result in an error. +// Therefore, |dest_dir| should initially be an empty directory. +bool Unzip(const base::FilePath& zip_file, + const base::FilePath& dest_dir, + UnzipOptions options = {}); } // namespace zip diff --git a/deps/v8/third_party/zlib/google/zip_internal.cc b/deps/v8/third_party/zlib/google/zip_internal.cc index 00e9eefe6c206b..1adf2e6d0e8fef 100644 --- a/deps/v8/third_party/zlib/google/zip_internal.cc +++ b/deps/v8/third_party/zlib/google/zip_internal.cc @@ -342,7 +342,7 @@ zipFile OpenForZipping(const std::string& file_name_utf8, int append_flag) { zip_func_ptrs); } -#if defined(OS_POSIX) +#if defined(OS_POSIX) || defined(OS_FUCHSIA) zipFile OpenFdForZipping(int zip_fd, int append_flag) { zlib_filefunc64_def zip_funcs; FillFdOpenFileFunc(&zip_funcs, zip_fd); diff --git a/deps/v8/third_party/zlib/google/zip_internal.h b/deps/v8/third_party/zlib/google/zip_internal.h index c7feba692be9fe..92833fa1702130 100644 --- a/deps/v8/third_party/zlib/google/zip_internal.h +++ b/deps/v8/third_party/zlib/google/zip_internal.h @@ -54,7 +54,7 @@ unzFile PrepareMemoryForUnzipping(const std::string& data); // Windows. |append_flag| will be passed to zipOpen2(). zipFile OpenForZipping(const std::string& file_name_utf8, int append_flag); -#if defined(OS_POSIX) +#if defined(OS_POSIX) || defined(OS_FUCHSIA) // Opens the file referred to by |zip_fd| for zipping. |append_flag| will be // passed to zipOpen2(). zipFile OpenFdForZipping(int zip_fd, int append_flag); diff --git a/deps/v8/third_party/zlib/google/zip_reader.cc b/deps/v8/third_party/zlib/google/zip_reader.cc index 53fa13fd99cb03..2cc101c75ce7c9 100644 --- a/deps/v8/third_party/zlib/google/zip_reader.cc +++ b/deps/v8/third_party/zlib/google/zip_reader.cc @@ -4,15 +4,23 @@ #include "third_party/zlib/google/zip_reader.h" +#include #include #include "base/bind.h" +#include "base/check.h" #include "base/files/file.h" +#include "base/files/file_util.h" +#include "base/i18n/icu_string_conversions.h" #include "base/logging.h" +#include "base/numerics/safe_conversions.h" +#include "base/strings/strcat.h" +#include "base/strings/string_piece.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/sequenced_task_runner_handle.h" #include "build/build_config.h" +#include "third_party/zlib/google/redact.h" #include "third_party/zlib/google/zip_internal.h" #if defined(USE_SYSTEM_MINIZIP) @@ -24,116 +32,93 @@ #endif // defined(OS_WIN) #endif // defined(USE_SYSTEM_MINIZIP) -namespace zip { +#if defined(OS_POSIX) +#include +#endif +namespace zip { namespace { -// StringWriterDelegate -------------------------------------------------------- - -// A writer delegate that writes no more than |max_read_bytes| to a given -// std::string. -class StringWriterDelegate : public WriterDelegate { - public: - StringWriterDelegate(size_t max_read_bytes, std::string* output); - - StringWriterDelegate(const StringWriterDelegate&) = delete; - StringWriterDelegate& operator=(const StringWriterDelegate&) = delete; +enum UnzipError : int; + +std::ostream& operator<<(std::ostream& out, UnzipError error) { +#define SWITCH_ERR(X) \ + case X: \ + return out << #X; + switch (error) { + SWITCH_ERR(UNZ_OK); + SWITCH_ERR(UNZ_END_OF_LIST_OF_FILE); + SWITCH_ERR(UNZ_ERRNO); + SWITCH_ERR(UNZ_PARAMERROR); + SWITCH_ERR(UNZ_BADZIPFILE); + SWITCH_ERR(UNZ_INTERNALERROR); + SWITCH_ERR(UNZ_CRCERROR); + default: + return out << "UNZ" << static_cast(error); + } +#undef SWITCH_ERR +} - ~StringWriterDelegate() override; +bool IsValidFileNameCharacterOnWindows(char16_t c) { + if (c < 32) + return false; - // WriterDelegate methods: + switch (c) { + case '<': // Less than + case '>': // Greater than + case ':': // Colon + case '"': // Double quote + case '|': // Vertical bar or pipe + case '?': // Question mark + case '*': // Asterisk + case '/': // Forward slash + case '\\': // Backslash + return false; + } - // Returns true. - bool PrepareOutput() override; + return true; +} - // Appends |num_bytes| bytes from |data| to the output string. Returns false - // if |num_bytes| will cause the string to exceed |max_read_bytes|. - bool WriteBytes(const char* data, int num_bytes) override; +// A writer delegate that writes to a given string. +class StringWriterDelegate : public WriterDelegate { + public: + explicit StringWriterDelegate(std::string* output) : output_(output) {} - void SetTimeModified(const base::Time& time) override; + // WriterDelegate methods: + bool WriteBytes(const char* data, int num_bytes) override { + output_->append(data, num_bytes); + return true; + } private: - size_t max_read_bytes_; - std::string* output_; + std::string* const output_; }; -StringWriterDelegate::StringWriterDelegate(size_t max_read_bytes, - std::string* output) - : max_read_bytes_(max_read_bytes), - output_(output) { -} - -StringWriterDelegate::~StringWriterDelegate() { -} - -bool StringWriterDelegate::PrepareOutput() { - return true; -} - -bool StringWriterDelegate::WriteBytes(const char* data, int num_bytes) { - if (output_->size() + num_bytes > max_read_bytes_) - return false; - output_->append(data, num_bytes); - return true; -} - -void StringWriterDelegate::SetTimeModified(const base::Time& time) { - // Do nothing. +#if defined(OS_POSIX) +void SetPosixFilePermissions(int fd, int mode) { + base::stat_wrapper_t sb; + if (base::File::Fstat(fd, &sb)) { + return; + } + mode_t new_mode = sb.st_mode; + // Transfer the executable bit only if the file is readable. + if ((sb.st_mode & S_IRUSR) == S_IRUSR && (mode & S_IXUSR) == S_IXUSR) { + new_mode |= S_IXUSR; + } + if ((sb.st_mode & S_IRGRP) == S_IRGRP && (mode & S_IXGRP) == S_IXGRP) { + new_mode |= S_IXGRP; + } + if ((sb.st_mode & S_IROTH) == S_IROTH && (mode & S_IXOTH) == S_IXOTH) { + new_mode |= S_IXOTH; + } + if (new_mode != sb.st_mode) { + fchmod(fd, new_mode); + } } +#endif } // namespace -// TODO(satorux): The implementation assumes that file names in zip files -// are encoded in UTF-8. This is true for zip files created by Zip() -// function in zip.h, but not true for user-supplied random zip files. -ZipReader::EntryInfo::EntryInfo(const std::string& file_name_in_zip, - const unz_file_info& raw_file_info) - : file_path_(base::FilePath::FromUTF8Unsafe(file_name_in_zip)), - is_directory_(false), - is_unsafe_(false), - is_encrypted_(false) { - original_size_ = raw_file_info.uncompressed_size; - - // Directory entries in zip files end with "/". - is_directory_ = base::EndsWith(file_name_in_zip, "/", - base::CompareCase::INSENSITIVE_ASCII); - - // Check the file name here for directory traversal issues. - is_unsafe_ = file_path_.ReferencesParent(); - - // We also consider that the file name is unsafe, if it's invalid UTF-8. - std::u16string file_name_utf16; - if (!base::UTF8ToUTF16(file_name_in_zip.data(), file_name_in_zip.size(), - &file_name_utf16)) { - is_unsafe_ = true; - } - - // We also consider that the file name is unsafe, if it's absolute. - // On Windows, IsAbsolute() returns false for paths starting with "/". - if (file_path_.IsAbsolute() || - base::StartsWith(file_name_in_zip, "/", - base::CompareCase::INSENSITIVE_ASCII)) - is_unsafe_ = true; - - // Whether the file is encrypted is bit 0 of the flag. - is_encrypted_ = raw_file_info.flag & 1; - - // Construct the last modified time. The timezone info is not present in - // zip files, so we construct the time as local time. - base::Time::Exploded exploded_time = {}; // Zero-clear. - exploded_time.year = raw_file_info.tmu_date.tm_year; - // The month in zip file is 0-based, whereas ours is 1-based. - exploded_time.month = raw_file_info.tmu_date.tm_mon + 1; - exploded_time.day_of_month = raw_file_info.tmu_date.tm_mday; - exploded_time.hour = raw_file_info.tmu_date.tm_hour; - exploded_time.minute = raw_file_info.tmu_date.tm_min; - exploded_time.second = raw_file_info.tmu_date.tm_sec; - exploded_time.millisecond = 0; - - if (!base::Time::FromUTCExploded(exploded_time, &last_modified_)) - last_modified_ = base::Time::UnixEpoch(); -} - ZipReader::ZipReader() { Reset(); } @@ -142,13 +127,14 @@ ZipReader::~ZipReader() { Close(); } -bool ZipReader::Open(const base::FilePath& zip_file_path) { +bool ZipReader::Open(const base::FilePath& zip_path) { DCHECK(!zip_file_); // Use of "Unsafe" function does not look good, but there is no way to do // this safely on Linux. See file_util.h for details. - zip_file_ = internal::OpenForUnzipping(zip_file_path.AsUTF8Unsafe()); + zip_file_ = internal::OpenForUnzipping(zip_path.AsUTF8Unsafe()); if (!zip_file_) { + LOG(ERROR) << "Cannot open ZIP archive " << Redact(zip_path); return false; } @@ -164,6 +150,7 @@ bool ZipReader::OpenFromPlatformFile(base::PlatformFile zip_fd) { zip_file_ = internal::OpenHandleForUnzipping(zip_fd); #endif if (!zip_file_) { + LOG(ERROR) << "Cannot open ZIP from file handle " << zip_fd; return false; } @@ -179,107 +166,242 @@ bool ZipReader::OpenFromString(const std::string& data) { void ZipReader::Close() { if (zip_file_) { - unzClose(zip_file_); + if (const UnzipError err{unzClose(zip_file_)}; err != UNZ_OK) { + LOG(ERROR) << "Error while closing ZIP archive: " << err; + } } Reset(); } -bool ZipReader::HasMore() { - return !reached_end_; -} - -bool ZipReader::AdvanceToNextEntry() { +const ZipReader::Entry* ZipReader::Next() { DCHECK(zip_file_); - // Should not go further if we already reached the end. if (reached_end_) - return false; + return nullptr; - unz_file_pos position = {}; - if (unzGetFilePos(zip_file_, &position) != UNZ_OK) - return false; - const int current_entry_index = position.num_of_file; - // If we are currently at the last entry, then the next position is the - // end of the zip file, so mark that we reached the end. - if (current_entry_index + 1 == num_entries_) { - reached_end_ = true; - } else { - DCHECK_LT(current_entry_index + 1, num_entries_); - if (unzGoToNextFile(zip_file_) != UNZ_OK) { - return false; + DCHECK(ok_); + + // Move to the next entry if we're not trying to open the first entry. + if (next_index_ > 0) { + if (const UnzipError err{unzGoToNextFile(zip_file_)}; err != UNZ_OK) { + reached_end_ = true; + if (err != UNZ_END_OF_LIST_OF_FILE) { + LOG(ERROR) << "Cannot go to next entry in ZIP: " << err; + ok_ = false; + } + return nullptr; } } - current_entry_info_.reset(); - return true; + + next_index_++; + + if (!OpenEntry()) { + reached_end_ = true; + ok_ = false; + return nullptr; + } + + return &entry_; } -bool ZipReader::OpenCurrentEntryInZip() { +bool ZipReader::OpenEntry() { DCHECK(zip_file_); - unz_file_info raw_file_info = {}; - char raw_file_name_in_zip[internal::kZipMaxPath] = {}; - const int result = unzGetCurrentFileInfo(zip_file_, - &raw_file_info, - raw_file_name_in_zip, - sizeof(raw_file_name_in_zip) - 1, - NULL, // extraField. - 0, // extraFieldBufferSize. - NULL, // szComment. - 0); // commentBufferSize. - if (result != UNZ_OK) + // Get entry info. + unz_file_info64 info = {}; + char path_in_zip[internal::kZipMaxPath] = {}; + if (const UnzipError err{unzGetCurrentFileInfo64( + zip_file_, &info, path_in_zip, sizeof(path_in_zip) - 1, nullptr, 0, + nullptr, 0)}; + err != UNZ_OK) { + LOG(ERROR) << "Cannot get entry from ZIP: " << err; return false; - if (raw_file_name_in_zip[0] == '\0') + } + + entry_.path_in_original_encoding = path_in_zip; + + // Convert path from original encoding to Unicode. + std::u16string path_in_utf16; + const char* const encoding = encoding_.empty() ? "UTF-8" : encoding_.c_str(); + if (!base::CodepageToUTF16(entry_.path_in_original_encoding, encoding, + base::OnStringConversionError::SUBSTITUTE, + &path_in_utf16)) { + LOG(ERROR) << "Cannot convert path from encoding " << encoding; return false; - current_entry_info_.reset( - new EntryInfo(raw_file_name_in_zip, raw_file_info)); + } + + // Normalize path. + Normalize(path_in_utf16); + + entry_.original_size = info.uncompressed_size; + + // The file content of this entry is encrypted if flag bit 0 is set. + entry_.is_encrypted = info.flag & 1; + + // Construct the last modified time. The timezone info is not present in ZIP + // archives, so we construct the time as UTC. + base::Time::Exploded exploded_time = {}; + exploded_time.year = info.tmu_date.tm_year; + exploded_time.month = info.tmu_date.tm_mon + 1; // 0-based vs 1-based + exploded_time.day_of_month = info.tmu_date.tm_mday; + exploded_time.hour = info.tmu_date.tm_hour; + exploded_time.minute = info.tmu_date.tm_min; + exploded_time.second = info.tmu_date.tm_sec; + exploded_time.millisecond = 0; + + if (!base::Time::FromUTCExploded(exploded_time, &entry_.last_modified)) + entry_.last_modified = base::Time::UnixEpoch(); + +#if defined(OS_POSIX) + entry_.posix_mode = (info.external_fa >> 16L) & (S_IRWXU | S_IRWXG | S_IRWXO); +#else + entry_.posix_mode = 0; +#endif + return true; } +void ZipReader::Normalize(base::StringPiece16 in) { + entry_.is_unsafe = true; + + // Directory entries in ZIP have a path ending with "/". + entry_.is_directory = base::EndsWith(in, u"/"); + + std::u16string normalized_path; + if (base::StartsWith(in, u"/")) { + normalized_path = u"ROOT"; + entry_.is_unsafe = false; + } + + for (;;) { + // Consume initial path separators. + const base::StringPiece16::size_type i = in.find_first_not_of(u'/'); + if (i == base::StringPiece16::npos) + break; + + in.remove_prefix(i); + DCHECK(!in.empty()); + + // Isolate next path component. + const base::StringPiece16 part = in.substr(0, in.find_first_of(u'/')); + DCHECK(!part.empty()); + + in.remove_prefix(part.size()); + + if (!normalized_path.empty()) + normalized_path += u'/'; + + if (part == u".") { + normalized_path += u"DOT"; + entry_.is_unsafe = true; + continue; + } + + if (part == u"..") { + normalized_path += u"UP"; + entry_.is_unsafe = true; + continue; + } + + // Windows has more restrictions than other systems when it comes to valid + // file paths. Replace Windows-invalid characters on all systems for + // consistency. In particular, this prevents a path component containing + // colon and backslash from being misinterpreted as an absolute path on + // Windows. + for (const char16_t c : part) { + normalized_path += IsValidFileNameCharacterOnWindows(c) ? c : 0xFFFD; + } + + entry_.is_unsafe = false; + } + + // If the entry is a directory, add the final path separator to the entry + // path. + if (entry_.is_directory && !normalized_path.empty()) { + normalized_path += u'/'; + entry_.is_unsafe = false; + } + + entry_.path = base::FilePath::FromUTF16Unsafe(normalized_path); + + // By construction, we should always get a relative path. + DCHECK(!entry_.path.IsAbsolute()) << entry_.path; +} + bool ZipReader::ExtractCurrentEntry(WriterDelegate* delegate, uint64_t num_bytes_to_extract) const { DCHECK(zip_file_); - - const int open_result = unzOpenCurrentFile(zip_file_); - if (open_result != UNZ_OK) + DCHECK_LT(0, next_index_); + DCHECK(ok_); + DCHECK(!reached_end_); + + // Use password only for encrypted files. For non-encrypted files, no password + // is needed, and must be nullptr. + const char* const password = + entry_.is_encrypted ? password_.c_str() : nullptr; + if (const UnzipError err{unzOpenCurrentFilePassword(zip_file_, password)}; + err != UNZ_OK) { + LOG(ERROR) << "Cannot open file " << Redact(entry_.path) + << " from ZIP: " << err; return false; + } + DCHECK(delegate); if (!delegate->PrepareOutput()) return false; - std::unique_ptr buf(new char[internal::kZipBufSize]); uint64_t remaining_capacity = num_bytes_to_extract; bool entire_file_extracted = false; while (remaining_capacity > 0) { + char buf[internal::kZipBufSize]; const int num_bytes_read = - unzReadCurrentFile(zip_file_, buf.get(), internal::kZipBufSize); + unzReadCurrentFile(zip_file_, buf, internal::kZipBufSize); if (num_bytes_read == 0) { entire_file_extracted = true; break; - } else if (num_bytes_read < 0) { - // If num_bytes_read < 0, then it's a specific UNZ_* error code. + } + + if (num_bytes_read < 0) { + LOG(ERROR) << "Cannot read file " << Redact(entry_.path) + << " from ZIP: " << UnzipError(num_bytes_read); break; - } else if (num_bytes_read > 0) { - uint64_t num_bytes_to_write = std::min( - remaining_capacity, base::checked_cast(num_bytes_read)); - if (!delegate->WriteBytes(buf.get(), num_bytes_to_write)) - break; - if (remaining_capacity == base::checked_cast(num_bytes_read)) { - // Ensures function returns true if the entire file has been read. - entire_file_extracted = - (unzReadCurrentFile(zip_file_, buf.get(), 1) == 0); - } - CHECK_GE(remaining_capacity, num_bytes_to_write); - remaining_capacity -= num_bytes_to_write; } + + DCHECK_LT(0, num_bytes_read); + CHECK_LE(num_bytes_read, internal::kZipBufSize); + + uint64_t num_bytes_to_write = std::min( + remaining_capacity, base::checked_cast(num_bytes_read)); + if (!delegate->WriteBytes(buf, num_bytes_to_write)) + break; + + if (remaining_capacity == base::checked_cast(num_bytes_read)) { + // Ensures function returns true if the entire file has been read. + const int n = unzReadCurrentFile(zip_file_, buf, 1); + entire_file_extracted = (n == 0); + LOG_IF(ERROR, n < 0) << "Cannot read file " << Redact(entry_.path) + << " from ZIP: " << UnzipError(n); + } + + CHECK_GE(remaining_capacity, num_bytes_to_write); + remaining_capacity -= num_bytes_to_write; } - unzCloseCurrentFile(zip_file_); + if (const UnzipError err{unzCloseCurrentFile(zip_file_)}; err != UNZ_OK) { + LOG(ERROR) << "Cannot extract file " << Redact(entry_.path) + << " from ZIP: " << err; + entire_file_extracted = false; + } - if (entire_file_extracted && - current_entry_info()->last_modified() != base::Time::UnixEpoch()) { - delegate->SetTimeModified(current_entry_info()->last_modified()); + if (entire_file_extracted) { + delegate->SetPosixFilePermissions(entry_.posix_mode); + if (entry_.last_modified != base::Time::UnixEpoch()) { + delegate->SetTimeModified(entry_.last_modified); + } + } else { + delegate->OnError(); } return entire_file_extracted; @@ -289,25 +411,33 @@ void ZipReader::ExtractCurrentEntryToFilePathAsync( const base::FilePath& output_file_path, SuccessCallback success_callback, FailureCallback failure_callback, - const ProgressCallback& progress_callback) { + ProgressCallback progress_callback) { DCHECK(zip_file_); - DCHECK(current_entry_info_.get()); + DCHECK_LT(0, next_index_); + DCHECK(ok_); + DCHECK(!reached_end_); // If this is a directory, just create it and return. - if (current_entry_info()->is_directory()) { + if (entry_.is_directory) { if (base::CreateDirectory(output_file_path)) { base::SequencedTaskRunnerHandle::Get()->PostTask( FROM_HERE, std::move(success_callback)); } else { - DVLOG(1) << "Unzip failed: unable to create directory."; + LOG(ERROR) << "Cannot create directory " << Redact(output_file_path); base::SequencedTaskRunnerHandle::Get()->PostTask( FROM_HERE, std::move(failure_callback)); } return; } - if (unzOpenCurrentFile(zip_file_) != UNZ_OK) { - DVLOG(1) << "Unzip failed: unable to open current zip entry."; + // Use password only for encrypted files. For non-encrypted files, no password + // is needed, and must be nullptr. + const char* const password = + entry_.is_encrypted ? password_.c_str() : nullptr; + if (const UnzipError err{unzOpenCurrentFilePassword(zip_file_, password)}; + err != UNZ_OK) { + LOG(ERROR) << "Cannot open file " << Redact(entry_.path) + << " from ZIP: " << err; base::SequencedTaskRunnerHandle::Get()->PostTask( FROM_HERE, std::move(failure_callback)); return; @@ -315,7 +445,7 @@ void ZipReader::ExtractCurrentEntryToFilePathAsync( base::FilePath output_dir_path = output_file_path.DirName(); if (!base::CreateDirectory(output_dir_path)) { - DVLOG(1) << "Unzip failed: unable to create containing directory."; + LOG(ERROR) << "Cannot create directory " << Redact(output_dir_path); base::SequencedTaskRunnerHandle::Get()->PostTask( FROM_HERE, std::move(failure_callback)); return; @@ -325,8 +455,7 @@ void ZipReader::ExtractCurrentEntryToFilePathAsync( base::File output_file(output_file_path, flags); if (!output_file.IsValid()) { - DVLOG(1) << "Unzip failed: unable to create platform file at " - << output_file_path.value(); + LOG(ERROR) << "Cannot create file " << Redact(output_file_path); base::SequencedTaskRunnerHandle::Get()->PostTask( FROM_HERE, std::move(failure_callback)); return; @@ -336,7 +465,7 @@ void ZipReader::ExtractCurrentEntryToFilePathAsync( FROM_HERE, base::BindOnce(&ZipReader::ExtractChunk, weak_ptr_factory_.GetWeakPtr(), std::move(output_file), std::move(success_callback), - std::move(failure_callback), progress_callback, + std::move(failure_callback), std::move(progress_callback), 0 /* initial offset */)); } @@ -344,120 +473,136 @@ bool ZipReader::ExtractCurrentEntryToString(uint64_t max_read_bytes, std::string* output) const { DCHECK(output); DCHECK(zip_file_); + DCHECK_LT(0, next_index_); + DCHECK(ok_); + DCHECK(!reached_end_); + + output->clear(); - if (max_read_bytes == 0) { - output->clear(); + if (max_read_bytes == 0) return true; - } - if (current_entry_info()->is_directory()) { - output->clear(); + if (entry_.is_directory) return true; - } - // The original_size() is the best hint for the real size, so it saves - // doing reallocations for the common case when the uncompressed size is - // correct. However, we need to assume that the uncompressed size could be - // incorrect therefore this function needs to read as much data as possible. - std::string contents; - contents.reserve( - static_cast(std::min(base::checked_cast(max_read_bytes), - current_entry_info()->original_size()))); - - StringWriterDelegate writer(max_read_bytes, &contents); - if (!ExtractCurrentEntry(&writer, max_read_bytes)) { - if (contents.length() < max_read_bytes) { - // There was an error in extracting entry. If ExtractCurrentEntry() - // returns false, the entire file was not read - in which case - // contents.length() should equal |max_read_bytes| unless an error - // occurred which caused extraction to be aborted. - output->clear(); - } else { - // |num_bytes| is less than the length of current entry. - output->swap(contents); - } - return false; - } - output->swap(contents); - return true; + // The original_size is the best hint for the real size, so it saves doing + // reallocations for the common case when the uncompressed size is correct. + // However, we need to assume that the uncompressed size could be incorrect + // therefore this function needs to read as much data as possible. + output->reserve(base::checked_cast(std::min( + max_read_bytes, base::checked_cast(entry_.original_size)))); + + StringWriterDelegate writer(output); + return ExtractCurrentEntry(&writer, max_read_bytes); } bool ZipReader::OpenInternal() { DCHECK(zip_file_); unz_global_info zip_info = {}; // Zero-clear. - if (unzGetGlobalInfo(zip_file_, &zip_info) != UNZ_OK) { + if (const UnzipError err{unzGetGlobalInfo(zip_file_, &zip_info)}; + err != UNZ_OK) { + LOG(ERROR) << "Cannot get ZIP info: " << err; return false; } - num_entries_ = zip_info.number_entry; - if (num_entries_ < 0) - return false; - // We are already at the end if the zip file is empty. - reached_end_ = (num_entries_ == 0); + num_entries_ = zip_info.number_entry; + reached_end_ = (num_entries_ <= 0); + ok_ = true; return true; } void ZipReader::Reset() { - zip_file_ = NULL; + zip_file_ = nullptr; num_entries_ = 0; - reached_end_ = false; - current_entry_info_.reset(); + next_index_ = 0; + reached_end_ = true; + ok_ = false; + entry_ = {}; } void ZipReader::ExtractChunk(base::File output_file, SuccessCallback success_callback, FailureCallback failure_callback, - const ProgressCallback& progress_callback, - const int64_t offset) { + ProgressCallback progress_callback, + int64_t offset) { char buffer[internal::kZipBufSize]; - const int num_bytes_read = unzReadCurrentFile(zip_file_, - buffer, - internal::kZipBufSize); + const int num_bytes_read = + unzReadCurrentFile(zip_file_, buffer, internal::kZipBufSize); if (num_bytes_read == 0) { - unzCloseCurrentFile(zip_file_); - std::move(success_callback).Run(); - } else if (num_bytes_read < 0) { - DVLOG(1) << "Unzip failed: error while reading zipfile " - << "(" << num_bytes_read << ")"; - std::move(failure_callback).Run(); - } else { - if (num_bytes_read != output_file.Write(offset, buffer, num_bytes_read)) { - DVLOG(1) << "Unzip failed: unable to write all bytes to target."; + if (const UnzipError err{unzCloseCurrentFile(zip_file_)}; err != UNZ_OK) { + LOG(ERROR) << "Cannot extract file " << Redact(entry_.path) + << " from ZIP: " << err; std::move(failure_callback).Run(); return; } - int64_t current_progress = offset + num_bytes_read; + std::move(success_callback).Run(); + return; + } - progress_callback.Run(current_progress); + if (num_bytes_read < 0) { + LOG(ERROR) << "Cannot read file " << Redact(entry_.path) + << " from ZIP: " << UnzipError(num_bytes_read); + std::move(failure_callback).Run(); + return; + } - base::SequencedTaskRunnerHandle::Get()->PostTask( - FROM_HERE, - base::BindOnce(&ZipReader::ExtractChunk, weak_ptr_factory_.GetWeakPtr(), - std::move(output_file), std::move(success_callback), - std::move(failure_callback), progress_callback, - current_progress)); + if (num_bytes_read != output_file.Write(offset, buffer, num_bytes_read)) { + LOG(ERROR) << "Cannot write " << num_bytes_read + << " bytes to file at offset " << offset; + std::move(failure_callback).Run(); + return; } + + offset += num_bytes_read; + progress_callback.Run(offset); + + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, + base::BindOnce(&ZipReader::ExtractChunk, weak_ptr_factory_.GetWeakPtr(), + std::move(output_file), std::move(success_callback), + std::move(failure_callback), std::move(progress_callback), + offset)); } // FileWriterDelegate ---------------------------------------------------------- -FileWriterDelegate::FileWriterDelegate(base::File* file) : file_(file) {} - -FileWriterDelegate::FileWriterDelegate(std::unique_ptr file) - : file_(file.get()), owned_file_(std::move(file)) {} +FileWriterDelegate::FileWriterDelegate(base::File* file) : file_(file) { + DCHECK(file_); +} -FileWriterDelegate::~FileWriterDelegate() { - if (!file_->SetLength(file_length_)) { - DVPLOG(1) << "Failed updating length of written file"; - } +FileWriterDelegate::FileWriterDelegate(base::File owned_file) + : owned_file_(std::move(owned_file)) { + DCHECK_EQ(file_, &owned_file_); } +FileWriterDelegate::~FileWriterDelegate() {} + bool FileWriterDelegate::PrepareOutput() { - return file_->Seek(base::File::FROM_BEGIN, 0) >= 0; + DCHECK(file_); + + if (!file_->IsValid()) { + LOG(ERROR) << "File is not valid"; + return false; + } + + const int64_t length = file_->GetLength(); + if (length < 0) { + PLOG(ERROR) << "Cannot get length of file handle " + << file_->GetPlatformFile(); + return false; + } + + // Just log a warning if the file is not empty. + // See crbug.com/1309879 and crbug.com/774762. + LOG_IF(WARNING, length > 0) + << "File handle " << file_->GetPlatformFile() + << " is not empty: Its length is " << length << " bytes"; + + return true; } bool FileWriterDelegate::WriteBytes(const char* data, int num_bytes) { @@ -471,32 +616,65 @@ void FileWriterDelegate::SetTimeModified(const base::Time& time) { file_->SetTimes(base::Time::Now(), time); } +void FileWriterDelegate::SetPosixFilePermissions(int mode) { +#if defined(OS_POSIX) + zip::SetPosixFilePermissions(file_->GetPlatformFile(), mode); +#endif +} + +void FileWriterDelegate::OnError() { + file_length_ = 0; + file_->SetLength(0); +} + // FilePathWriterDelegate ------------------------------------------------------ -FilePathWriterDelegate::FilePathWriterDelegate( - const base::FilePath& output_file_path) - : output_file_path_(output_file_path) {} +FilePathWriterDelegate::FilePathWriterDelegate(base::FilePath output_file_path) + : FileWriterDelegate(base::File()), + output_file_path_(std::move(output_file_path)) {} FilePathWriterDelegate::~FilePathWriterDelegate() {} bool FilePathWriterDelegate::PrepareOutput() { // We can't rely on parent directory entries being specified in the // zip, so we make sure they are created. - if (!base::CreateDirectory(output_file_path_.DirName())) + if (const base::FilePath dir = output_file_path_.DirName(); + !base::CreateDirectory(dir)) { + PLOG(ERROR) << "Cannot create directory " << Redact(dir); return false; + } - file_.Initialize(output_file_path_, - base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); - return file_.IsValid(); -} + owned_file_.Initialize(output_file_path_, + base::File::FLAG_CREATE | base::File::FLAG_WRITE); + if (!owned_file_.IsValid()) { + PLOG(ERROR) << "Cannot create file " << Redact(output_file_path_) << ": " + << base::File::ErrorToString(owned_file_.error_details()); + return false; + } + + const int64_t length = owned_file_.GetLength(); + if (length < 0) { + PLOG(ERROR) << "Cannot get length of file " << Redact(output_file_path_); + return false; + } + + if (length > 0) { + LOG(ERROR) << "File " << Redact(output_file_path_) + << " is not empty: Its length is " << length << " bytes"; + return false; + } -bool FilePathWriterDelegate::WriteBytes(const char* data, int num_bytes) { - return num_bytes == file_.WriteAtCurrentPos(data, num_bytes); + return true; } -void FilePathWriterDelegate::SetTimeModified(const base::Time& time) { - file_.Close(); - base::TouchFile(output_file_path_, base::Time::Now(), time); +void FilePathWriterDelegate::OnError() { + FileWriterDelegate::OnError(); + owned_file_.Close(); + + if (!base::DeleteFile(output_file_path_)) { + LOG(ERROR) << "Cannot delete partially extracted file " + << Redact(output_file_path_); + } } } // namespace zip diff --git a/deps/v8/third_party/zlib/google/zip_reader.h b/deps/v8/third_party/zlib/google/zip_reader.h index e1ca7aa417c55d..703b74be038f7a 100644 --- a/deps/v8/third_party/zlib/google/zip_reader.h +++ b/deps/v8/third_party/zlib/google/zip_reader.h @@ -7,14 +7,15 @@ #include #include +#include #include #include #include "base/callback.h" #include "base/files/file.h" #include "base/files/file_path.h" -#include "base/files/file_util.h" #include "base/memory/weak_ptr.h" +#include "base/numerics/safe_conversions.h" #include "base/time/time.h" #if defined(USE_SYSTEM_MINIZIP) @@ -33,33 +34,47 @@ class WriterDelegate { // Invoked once before any data is streamed out to pave the way (e.g., to open // the output file). Return false on failure to cancel extraction. - virtual bool PrepareOutput() = 0; + virtual bool PrepareOutput() { return true; } // Invoked to write the next chunk of data. Return false on failure to cancel // extraction. - virtual bool WriteBytes(const char* data, int num_bytes) = 0; + virtual bool WriteBytes(const char* data, int num_bytes) { return true; } // Sets the last-modified time of the data. - virtual void SetTimeModified(const base::Time& time) = 0; + virtual void SetTimeModified(const base::Time& time) {} + + // Called with the POSIX file permissions of the data; POSIX implementations + // may apply some of the permissions (for example, the executable bit) to the + // output file. + virtual void SetPosixFilePermissions(int mode) {} + + // Called if an error occurred while extracting the file. The WriterDelegate + // can then remove and clean up the partially extracted data. + virtual void OnError() {} }; -// This class is used for reading zip files. A typical use case of this -// class is to scan entries in a zip file and extract them. The code will -// look like: +// This class is used for reading ZIP archives. A typical use case of this class +// is to scan entries in a ZIP archive and extract them. The code will look +// like: // // ZipReader reader; -// reader.Open(zip_file_path); -// while (reader.HasMore()) { -// reader.OpenCurrentEntryInZip(); -// const base::FilePath& entry_path = -// reader.current_entry_info()->file_path(); -// auto writer = CreateFilePathWriterDelegate(extract_dir, entry_path); -// reader.ExtractCurrentEntry(writer, std::numeric_limits::max()); -// reader.AdvanceToNextEntry(); +// if (!reader.Open(zip_path)) { +// // Cannot open +// return; +// } +// +// while (const ZipReader::entry* entry = reader.Next()) { +// auto writer = CreateFilePathWriterDelegate(extract_dir, entry->path); +// if (!reader.ExtractCurrentEntry(writer)) { +// // Cannot extract +// return; +// } // } // -// For simplicity, error checking is omitted in the example code above. The -// production code should check return values from all of these functions. +// if (!reader.ok()) { +// // Error while enumerating entries +// return; +// } // class ZipReader { public: @@ -71,54 +86,56 @@ class ZipReader { // of bytes that have been processed so far. using ProgressCallback = base::RepeatingCallback; - // This class represents information of an entry (file or directory) in - // a zip file. - class EntryInfo { - public: - EntryInfo(const std::string& filename_in_zip, - const unz_file_info& raw_file_info); + // Information of an entry (file or directory) in a ZIP archive. + struct Entry { + // Path of this entry, in its original encoding as it is stored in the ZIP + // archive. The encoding is not specified here. It might or might not be + // UTF-8, and the caller needs to use other means to determine the encoding + // if it wants to interpret this path correctly. + std::string path_in_original_encoding; + + // Path of the entry, converted to Unicode. This path is relative (eg + // "foo/bar.txt"). Absolute paths (eg "/foo/bar.txt") or paths containing + // ".." or "." components (eg "../foo/bar.txt") are converted to safe + // relative paths. Eg: + // (In ZIP) -> (Entry.path) + // /foo/bar -> ROOT/foo/bar + // ../a -> UP/a + // ./a -> DOT/a + base::FilePath path; + + // Size of the original uncompressed file, or 0 if the entry is a directory. + // This value should not be trusted, because it is stored as metadata in the + // ZIP archive and can be different from the real uncompressed size. + int64_t original_size; + + // Last modified time. If the timestamp stored in the ZIP archive is not + // valid, the Unix epoch will be returned. + // + // The timestamp stored in the ZIP archive uses the MS-DOS date and time + // format. + // + // http://msdn.microsoft.com/en-us/library/ms724247(v=vs.85).aspx + // + // As such the following limitations apply: + // * Only years from 1980 to 2107 can be represented. + // * The timestamp has a 2-second resolution. + // * There is no timezone information, so the time is interpreted as UTC. + base::Time last_modified; - EntryInfo(const EntryInfo&) = delete; - EntryInfo& operator=(const EntryInfo&) = delete; + // True if the entry is a directory. + // False if the entry is a file. + bool is_directory; - // Returns the file path. The path is usually relative like - // "foo/bar.txt", but if it's absolute, is_unsafe() returns true. - const base::FilePath& file_path() const { return file_path_; } + // True if the entry path cannot be converted to a safe relative path. This + // happens if a file entry (not a directory) has a filename "." or "..". + bool is_unsafe; - // Returns the size of the original file (i.e. after uncompressed). - // Returns 0 if the entry is a directory. - // Note: this value should not be trusted, because it is stored as metadata - // in the zip archive and can be different from the real uncompressed size. - int64_t original_size() const { return original_size_; } + // True if the file content is encrypted. + bool is_encrypted; - // Returns the last modified time. If the time stored in the zip file was - // not valid, the unix epoch will be returned. - // - // The time stored in the zip archive uses the MS-DOS date and time format. - // http://msdn.microsoft.com/en-us/library/ms724247(v=vs.85).aspx - // As such the following limitations apply: - // * only years from 1980 to 2107 can be represented. - // * the time stamp has a 2 second resolution. - // * there's no timezone information, so the time is interpreted as local. - base::Time last_modified() const { return last_modified_; } - - // Returns true if the entry is a directory. - bool is_directory() const { return is_directory_; } - - // Returns true if the entry is unsafe, like having ".." or invalid - // UTF-8 characters in its file name, or the file path is absolute. - bool is_unsafe() const { return is_unsafe_; } - - // Returns true if the entry is encrypted. - bool is_encrypted() const { return is_encrypted_; } - - private: - const base::FilePath file_path_; - int64_t original_size_; - base::Time last_modified_; - bool is_directory_; - bool is_unsafe_; - bool is_encrypted_; + // Entry POSIX permissions (POSIX systems only). + int posix_mode; }; ZipReader(); @@ -128,11 +145,11 @@ class ZipReader { ~ZipReader(); - // Opens the zip file specified by |zip_file_path|. Returns true on + // Opens the ZIP archive specified by |zip_path|. Returns true on // success. - bool Open(const base::FilePath& zip_file_path); + bool Open(const base::FilePath& zip_path); - // Opens the zip file referred to by the platform file |zip_fd|, without + // Opens the ZIP archive referred to by the platform file |zip_fd|, without // taking ownership of |zip_fd|. Returns true on success. bool OpenFromPlatformFile(base::PlatformFile zip_fd); @@ -141,72 +158,94 @@ class ZipReader { // string until it finishes extracting files. bool OpenFromString(const std::string& data); - // Closes the currently opened zip file. This function is called in the + // Closes the currently opened ZIP archive. This function is called in the // destructor of the class, so you usually don't need to call this. void Close(); - // Returns true if there is at least one entry to read. This function is - // used to scan entries with AdvanceToNextEntry(), like: - // - // while (reader.HasMore()) { - // // Do something with the current file here. - // reader.AdvanceToNextEntry(); - // } - bool HasMore(); + // Sets the encoding of entry paths in the ZIP archive. + // By default, paths are assumed to be in UTF-8. + void SetEncoding(std::string encoding) { encoding_ = std::move(encoding); } - // Advances the next entry. Returns true on success. - bool AdvanceToNextEntry(); + // Sets the decryption password that will be used to decrypt encrypted file in + // the ZIP archive. + void SetPassword(std::string password) { password_ = std::move(password); } - // Opens the current entry in the zip file. On success, returns true and - // updates the the current entry state (i.e. current_entry_info() is - // updated). This function should be called before operations over the - // current entry like ExtractCurrentEntryToFile(). + // Gets the next entry. Returns null if there is no more entry, or if an error + // occurred while scanning entries. The returned Entry is owned by this + // ZipReader, and is valid until Next() is called again or until this + // ZipReader is closed. + // + // This function should be called before operations over the current entry + // like ExtractCurrentEntryToFile(). // - // Note that there is no CloseCurrentEntryInZip(). The the current entry - // state is reset automatically as needed. - bool OpenCurrentEntryInZip(); + // while (const ZipReader::Entry* entry = reader.Next()) { + // // Do something with the current entry here. + // ... + // } + // + // // Finished scanning entries. + // // Check if the scanning stopped because of an error. + // if (!reader.ok()) { + // // There was an error. + // ... + // } + const Entry* Next(); + + // Returns true if the enumeration of entries was successful, or false if it + // stopped because of an error. + bool ok() const { return ok_; } // Extracts |num_bytes_to_extract| bytes of the current entry to |delegate|, - // starting from the beginning of the entry. Return value specifies whether - // the entire file was extracted. + // starting from the beginning of the entry. + // + // Returns true if the entire file was extracted without error. + // + // Precondition: Next() returned a non-null Entry. bool ExtractCurrentEntry(WriterDelegate* delegate, - uint64_t num_bytes_to_extract) const; + uint64_t num_bytes_to_extract = + std::numeric_limits::max()) const; - // Asynchronously extracts the current entry to the given output file path. - // If the current entry is a directory it just creates the directory - // synchronously instead. OpenCurrentEntryInZip() must be called beforehand. - // success_callback will be called on success and failure_callback will be - // called on failure. progress_callback will be called at least once. + // Asynchronously extracts the current entry to the given output file path. If + // the current entry is a directory it just creates the directory + // synchronously instead. + // + // |success_callback| will be called on success and |failure_callback| will be + // called on failure. |progress_callback| will be called at least once. // Callbacks will be posted to the current MessageLoop in-order. + // + // Precondition: Next() returned a non-null Entry. void ExtractCurrentEntryToFilePathAsync( const base::FilePath& output_file_path, SuccessCallback success_callback, FailureCallback failure_callback, - const ProgressCallback& progress_callback); + ProgressCallback progress_callback); // Extracts the current entry into memory. If the current entry is a - // directory, the |output| parameter is set to the empty string. If the - // current entry is a file, the |output| parameter is filled with its - // contents. OpenCurrentEntryInZip() must be called beforehand. Note: the - // |output| parameter can be filled with a big amount of data, avoid passing - // it around by value, but by reference or pointer. Note: the value returned - // by EntryInfo::original_size() cannot be trusted, so the real size of the - // uncompressed contents can be different. |max_read_bytes| limits the ammount - // of memory used to carry the entry. Returns true if the entire content is - // read. If the entry is bigger than |max_read_bytes|, returns false and - // |output| is filled with |max_read_bytes| of data. If an error occurs, - // returns false, and |output| is set to the empty string. + // directory, |*output| is set to the empty string. If the current entry is a + // file, |*output| is filled with its contents. + // + // The value in |Entry::original_size| cannot be trusted, so the real size of + // the uncompressed contents can be different. |max_read_bytes| limits the + // amount of memory used to carry the entry. + // + // Returns true if the entire content is read without error. If the content is + // bigger than |max_read_bytes|, this function returns false and |*output| is + // filled with |max_read_bytes| of data. If an error occurs, this function + // returns false and |*output| contains the content extracted so far, which + // might be garbage data. + // + // Precondition: Next() returned a non-null Entry. bool ExtractCurrentEntryToString(uint64_t max_read_bytes, std::string* output) const; - // Returns the current entry info. Returns NULL if the current entry is - // not yet opened. OpenCurrentEntryInZip() must be called beforehand. - EntryInfo* current_entry_info() const { - return current_entry_info_.get(); + bool ExtractCurrentEntryToString(std::string* output) const { + return ExtractCurrentEntryToString( + base::checked_cast(output->max_size()), output); } - // Returns the number of entries in the zip file. - // Open() must be called beforehand. + // Returns the number of entries in the ZIP archive. + // + // Precondition: one of the Open() methods returned true. int num_entries() const { return num_entries_; } private: @@ -216,23 +255,39 @@ class ZipReader { // Resets the internal state. void Reset(); + // Opens the current entry in the ZIP archive. On success, returns true and + // updates the current entry state |entry_|. + // + // Note that there is no matching CloseEntry(). The current entry state is + // reset automatically as needed. + bool OpenEntry(); + + // Normalizes the given path passed as UTF-16 string piece. Sets entry_.path, + // entry_.is_directory and entry_.is_unsafe. + void Normalize(base::StringPiece16 in); + // Extracts a chunk of the file to the target. Will post a task for the next // chunk and success/failure/progress callbacks as necessary. void ExtractChunk(base::File target_file, SuccessCallback success_callback, FailureCallback failure_callback, - const ProgressCallback& progress_callback, + ProgressCallback progress_callback, const int64_t offset); + std::string encoding_; + std::string password_; unzFile zip_file_; int num_entries_; + int next_index_; bool reached_end_; - std::unique_ptr current_entry_info_; + bool ok_; + Entry entry_; base::WeakPtrFactory weak_ptr_factory_{this}; }; -// A writer delegate that writes to a given File. +// A writer delegate that writes to a given File. It is recommended that this +// file be initially empty. class FileWriterDelegate : public WriterDelegate { public: // Constructs a FileWriterDelegate that manipulates |file|. The delegate will @@ -241,17 +296,14 @@ class FileWriterDelegate : public WriterDelegate { explicit FileWriterDelegate(base::File* file); // Constructs a FileWriterDelegate that takes ownership of |file|. - explicit FileWriterDelegate(std::unique_ptr file); + explicit FileWriterDelegate(base::File owned_file); FileWriterDelegate(const FileWriterDelegate&) = delete; FileWriterDelegate& operator=(const FileWriterDelegate&) = delete; - // Truncates the file to the number of bytes written. ~FileWriterDelegate() override; - // WriterDelegate methods: - - // Seeks to the beginning of the file, returning false if the seek fails. + // Returns true if the file handle passed to the constructor is valid. bool PrepareOutput() override; // Writes |num_bytes| bytes of |data| to the file, returning false on error or @@ -261,45 +313,48 @@ class FileWriterDelegate : public WriterDelegate { // Sets the last-modified time of the data. void SetTimeModified(const base::Time& time) override; - // Return the actual size of the file. - int64_t file_length() { return file_length_; } + // On POSIX systems, sets the file to be executable if the source file was + // executable. + void SetPosixFilePermissions(int mode) override; - private: - // The file the delegate modifies. - base::File* file_; + // Empties the file to avoid leaving garbage data in it. + void OnError() override; + + // Gets the number of bytes written into the file. + int64_t file_length() { return file_length_; } + protected: // The delegate can optionally own the file it modifies, in which case // owned_file_ is set and file_ is an alias for owned_file_. - std::unique_ptr owned_file_; + base::File owned_file_; + + // The file the delegate modifies. + base::File* const file_ = &owned_file_; int64_t file_length_ = 0; }; -// A writer delegate that writes a file at a given path. -class FilePathWriterDelegate : public WriterDelegate { +// A writer delegate that creates and writes a file at a given path. This does +// not overwrite any existing file. +class FilePathWriterDelegate : public FileWriterDelegate { public: - explicit FilePathWriterDelegate(const base::FilePath& output_file_path); + explicit FilePathWriterDelegate(base::FilePath output_file_path); FilePathWriterDelegate(const FilePathWriterDelegate&) = delete; FilePathWriterDelegate& operator=(const FilePathWriterDelegate&) = delete; ~FilePathWriterDelegate() override; - // WriterDelegate methods: - - // Creates the output file and any necessary intermediate directories. + // Creates the output file and any necessary intermediate directories. Does + // not overwrite any existing file, and returns false if the output file + // cannot be created because another file conflicts with it. bool PrepareOutput() override; - // Writes |num_bytes| bytes of |data| to the file, returning false if not all - // bytes could be written. - bool WriteBytes(const char* data, int num_bytes) override; - - // Sets the last-modified time of the data. - void SetTimeModified(const base::Time& time) override; + // Deletes the output file. + void OnError() override; private: - base::FilePath output_file_path_; - base::File file_; + const base::FilePath output_file_path_; }; } // namespace zip diff --git a/deps/v8/third_party/zlib/google/zip_reader_unittest.cc b/deps/v8/third_party/zlib/google/zip_reader_unittest.cc index c1d654afe9ad9f..31dceaccad30de 100644 --- a/deps/v8/third_party/zlib/google/zip_reader_unittest.cc +++ b/deps/v8/third_party/zlib/google/zip_reader_unittest.cc @@ -8,13 +8,14 @@ #include #include -#include +#include #include +#include #include "base/bind.h" #include "base/check.h" -#include "base/cxx17_backports.h" #include "base/files/file.h" +#include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/hash/md5.h" @@ -23,15 +24,20 @@ #include "base/strings/string_piece.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" +#include "base/test/bind.h" #include "base/test/task_environment.h" #include "base/time/time.h" +#include "build/build_config.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" #include "third_party/zlib/google/zip_internal.h" -using ::testing::Return; using ::testing::_; +using ::testing::ElementsAre; +using ::testing::ElementsAreArray; +using ::testing::Return; +using ::testing::SizeIs; namespace { @@ -39,10 +45,7 @@ const static std::string kQuuxExpectedMD5 = "d1ae4ac8a17a0e09317113ab284b57a6"; class FileWrapper { public: - typedef enum { - READ_ONLY, - READ_WRITE - } AccessMode; + typedef enum { READ_ONLY, READ_WRITE } AccessMode; FileWrapper(const base::FilePath& path, AccessMode mode) { int flags = base::File::FLAG_READ; @@ -73,18 +76,13 @@ class MockUnzipListener : public base::SupportsWeakPtr { : success_calls_(0), failure_calls_(0), progress_calls_(0), - current_progress_(0) { - } + current_progress_(0) {} // Success callback for async functions. - void OnUnzipSuccess() { - success_calls_++; - } + void OnUnzipSuccess() { success_calls_++; } // Failure callback for async functions. - void OnUnzipFailure() { - failure_calls_++; - } + void OnUnzipFailure() { failure_calls_++; } // Progress callback for async functions. void OnUnzipProgress(int64_t progress) { @@ -111,184 +109,189 @@ class MockWriterDelegate : public zip::WriterDelegate { MOCK_METHOD0(PrepareOutput, bool()); MOCK_METHOD2(WriteBytes, bool(const char*, int)); MOCK_METHOD1(SetTimeModified, void(const base::Time&)); + MOCK_METHOD1(SetPosixFilePermissions, void(int)); + MOCK_METHOD0(OnError, void()); }; bool ExtractCurrentEntryToFilePath(zip::ZipReader* reader, base::FilePath path) { zip::FilePathWriterDelegate writer(path); - return reader->ExtractCurrentEntry(&writer, - std::numeric_limits::max()); + return reader->ExtractCurrentEntry(&writer); } -bool LocateAndOpenEntry(zip::ZipReader* reader, - const base::FilePath& path_in_zip) { +const zip::ZipReader::Entry* LocateAndOpenEntry( + zip::ZipReader* const reader, + const base::FilePath& path_in_zip) { + DCHECK(reader); + EXPECT_TRUE(reader->ok()); + // The underlying library can do O(1) access, but ZipReader does not expose // that. O(N) access is acceptable for these tests. - while (reader->HasMore()) { - if (!reader->OpenCurrentEntryInZip()) - return false; - if (reader->current_entry_info()->file_path() == path_in_zip) - return true; - reader->AdvanceToNextEntry(); + while (const zip::ZipReader::Entry* const entry = reader->Next()) { + EXPECT_TRUE(reader->ok()); + if (entry->path == path_in_zip) + return entry; } - return false; + + EXPECT_TRUE(reader->ok()); + return nullptr; } -} // namespace +using Paths = std::vector; + +} // namespace namespace zip { // Make the test a PlatformTest to setup autorelease pools properly on Mac. class ZipReaderTest : public PlatformTest { protected: - virtual void SetUp() { + void SetUp() override { PlatformTest::SetUp(); ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); test_dir_ = temp_dir_.GetPath(); - - ASSERT_TRUE(GetTestDataDirectory(&test_data_dir_)); - - test_zip_file_ = test_data_dir_.AppendASCII("test.zip"); - encrypted_zip_file_ = test_data_dir_.AppendASCII("test_encrypted.zip"); - evil_zip_file_ = test_data_dir_.AppendASCII("evil.zip"); - evil_via_invalid_utf8_zip_file_ = test_data_dir_.AppendASCII( - "evil_via_invalid_utf8.zip"); - evil_via_absolute_file_name_zip_file_ = test_data_dir_.AppendASCII( - "evil_via_absolute_file_name.zip"); - - test_zip_contents_.insert(base::FilePath(FILE_PATH_LITERAL("foo/"))); - test_zip_contents_.insert(base::FilePath(FILE_PATH_LITERAL("foo/bar/"))); - test_zip_contents_.insert( - base::FilePath(FILE_PATH_LITERAL("foo/bar/baz.txt"))); - test_zip_contents_.insert( - base::FilePath(FILE_PATH_LITERAL("foo/bar/quux.txt"))); - test_zip_contents_.insert( - base::FilePath(FILE_PATH_LITERAL("foo/bar.txt"))); - test_zip_contents_.insert(base::FilePath(FILE_PATH_LITERAL("foo.txt"))); - test_zip_contents_.insert( - base::FilePath(FILE_PATH_LITERAL("foo/bar/.hidden"))); } - virtual void TearDown() { - PlatformTest::TearDown(); + static base::FilePath GetTestDataDirectory() { + base::FilePath path; + CHECK(base::PathService::Get(base::DIR_SOURCE_ROOT, &path)); + return path.AppendASCII("third_party") + .AppendASCII("zlib") + .AppendASCII("google") + .AppendASCII("test") + .AppendASCII("data"); } - bool GetTestDataDirectory(base::FilePath* path) { - bool success = base::PathService::Get(base::DIR_SOURCE_ROOT, path); - EXPECT_TRUE(success); - if (!success) - return false; - *path = path->AppendASCII("third_party"); - *path = path->AppendASCII("zlib"); - *path = path->AppendASCII("google"); - *path = path->AppendASCII("test"); - *path = path->AppendASCII("data"); - return true; - } + static Paths GetPaths(const base::FilePath& zip_path, + base::StringPiece encoding = {}) { + Paths paths; + + if (ZipReader reader; reader.Open(zip_path)) { + if (!encoding.empty()) + reader.SetEncoding(std::string(encoding)); + + while (const ZipReader::Entry* const entry = reader.Next()) { + EXPECT_TRUE(reader.ok()); + paths.push_back(entry->path); + } + + EXPECT_TRUE(reader.ok()); + } - bool CompareFileAndMD5(const base::FilePath& path, - const std::string expected_md5) { - // Read the output file and compute the MD5. - std::string output; - if (!base::ReadFileToString(path, &output)) - return false; - const std::string md5 = base::MD5String(output); - return expected_md5 == md5; + return paths; } // The path to temporary directory used to contain the test operations. base::FilePath test_dir_; // The path to the test data directory where test.zip etc. are located. - base::FilePath test_data_dir_; + const base::FilePath data_dir_ = GetTestDataDirectory(); // The path to test.zip in the test data directory. - base::FilePath test_zip_file_; - // The path to test_encrypted.zip in the test data directory. - base::FilePath encrypted_zip_file_; - // The path to evil.zip in the test data directory. - base::FilePath evil_zip_file_; - // The path to evil_via_invalid_utf8.zip in the test data directory. - base::FilePath evil_via_invalid_utf8_zip_file_; - // The path to evil_via_absolute_file_name.zip in the test data directory. - base::FilePath evil_via_absolute_file_name_zip_file_; - std::set test_zip_contents_; - + const base::FilePath test_zip_file_ = data_dir_.AppendASCII("test.zip"); + const Paths test_zip_contents_ = { + base::FilePath(FILE_PATH_LITERAL("foo/")), + base::FilePath(FILE_PATH_LITERAL("foo/bar/")), + base::FilePath(FILE_PATH_LITERAL("foo/bar/baz.txt")), + base::FilePath(FILE_PATH_LITERAL("foo/bar/quux.txt")), + base::FilePath(FILE_PATH_LITERAL("foo/bar.txt")), + base::FilePath(FILE_PATH_LITERAL("foo.txt")), + base::FilePath(FILE_PATH_LITERAL("foo/bar/.hidden")), + }; base::ScopedTempDir temp_dir_; - base::test::TaskEnvironment task_environment_; }; TEST_F(ZipReaderTest, Open_ValidZipFile) { ZipReader reader; - ASSERT_TRUE(reader.Open(test_zip_file_)); + EXPECT_TRUE(reader.Open(test_zip_file_)); + EXPECT_TRUE(reader.ok()); } TEST_F(ZipReaderTest, Open_ValidZipPlatformFile) { ZipReader reader; + EXPECT_FALSE(reader.ok()); FileWrapper zip_fd_wrapper(test_zip_file_, FileWrapper::READ_ONLY); - ASSERT_TRUE(reader.OpenFromPlatformFile(zip_fd_wrapper.platform_file())); + EXPECT_TRUE(reader.OpenFromPlatformFile(zip_fd_wrapper.platform_file())); + EXPECT_TRUE(reader.ok()); } TEST_F(ZipReaderTest, Open_NonExistentFile) { ZipReader reader; - ASSERT_FALSE(reader.Open(test_data_dir_.AppendASCII("nonexistent.zip"))); + EXPECT_FALSE(reader.ok()); + EXPECT_FALSE(reader.Open(data_dir_.AppendASCII("nonexistent.zip"))); + EXPECT_FALSE(reader.ok()); } TEST_F(ZipReaderTest, Open_ExistentButNonZipFile) { ZipReader reader; - ASSERT_FALSE(reader.Open(test_data_dir_.AppendASCII("create_test_zip.sh"))); + EXPECT_FALSE(reader.ok()); + EXPECT_FALSE(reader.Open(data_dir_.AppendASCII("create_test_zip.sh"))); + EXPECT_FALSE(reader.ok()); } -// Iterate through the contents in the test zip file, and compare that the -// contents collected from the zip reader matches the expected contents. +TEST_F(ZipReaderTest, Open_EmptyFile) { + ZipReader reader; + EXPECT_FALSE(reader.ok()); + EXPECT_FALSE(reader.Open(data_dir_.AppendASCII("empty.zip"))); + EXPECT_FALSE(reader.ok()); +} + +// Iterate through the contents in the test ZIP archive, and compare that the +// contents collected from the ZipReader matches the expected contents. TEST_F(ZipReaderTest, Iteration) { - std::set actual_contents; + Paths actual_contents; ZipReader reader; - ASSERT_TRUE(reader.Open(test_zip_file_)); - while (reader.HasMore()) { - ASSERT_TRUE(reader.OpenCurrentEntryInZip()); - actual_contents.insert(reader.current_entry_info()->file_path()); - ASSERT_TRUE(reader.AdvanceToNextEntry()); + EXPECT_FALSE(reader.ok()); + EXPECT_TRUE(reader.Open(test_zip_file_)); + EXPECT_TRUE(reader.ok()); + while (const ZipReader::Entry* const entry = reader.Next()) { + EXPECT_TRUE(reader.ok()); + actual_contents.push_back(entry->path); } - EXPECT_FALSE(reader.AdvanceToNextEntry()); // Shouldn't go further. - EXPECT_EQ(test_zip_contents_.size(), - static_cast(reader.num_entries())); - EXPECT_EQ(test_zip_contents_.size(), actual_contents.size()); - EXPECT_EQ(test_zip_contents_, actual_contents); + + EXPECT_TRUE(reader.ok()); + EXPECT_FALSE(reader.Next()); // Shouldn't go further. + EXPECT_TRUE(reader.ok()); + + EXPECT_THAT(actual_contents, SizeIs(reader.num_entries())); + EXPECT_THAT(actual_contents, ElementsAreArray(test_zip_contents_)); } -// Open the test zip file from a file descriptor, iterate through its contents, -// and compare that they match the expected contents. +// Open the test ZIP archive from a file descriptor, iterate through its +// contents, and compare that they match the expected contents. TEST_F(ZipReaderTest, PlatformFileIteration) { - std::set actual_contents; + Paths actual_contents; ZipReader reader; FileWrapper zip_fd_wrapper(test_zip_file_, FileWrapper::READ_ONLY); - ASSERT_TRUE(reader.OpenFromPlatformFile(zip_fd_wrapper.platform_file())); - while (reader.HasMore()) { - ASSERT_TRUE(reader.OpenCurrentEntryInZip()); - actual_contents.insert(reader.current_entry_info()->file_path()); - ASSERT_TRUE(reader.AdvanceToNextEntry()); + EXPECT_TRUE(reader.OpenFromPlatformFile(zip_fd_wrapper.platform_file())); + EXPECT_TRUE(reader.ok()); + while (const ZipReader::Entry* const entry = reader.Next()) { + EXPECT_TRUE(reader.ok()); + actual_contents.push_back(entry->path); } - EXPECT_FALSE(reader.AdvanceToNextEntry()); // Shouldn't go further. - EXPECT_EQ(test_zip_contents_.size(), - static_cast(reader.num_entries())); - EXPECT_EQ(test_zip_contents_.size(), actual_contents.size()); - EXPECT_EQ(test_zip_contents_, actual_contents); + + EXPECT_TRUE(reader.ok()); + EXPECT_FALSE(reader.Next()); // Shouldn't go further. + EXPECT_TRUE(reader.ok()); + + EXPECT_THAT(actual_contents, SizeIs(reader.num_entries())); + EXPECT_THAT(actual_contents, ElementsAreArray(test_zip_contents_)); } -TEST_F(ZipReaderTest, current_entry_info_RegularFile) { +TEST_F(ZipReaderTest, RegularFile) { ZipReader reader; ASSERT_TRUE(reader.Open(test_zip_file_)); base::FilePath target_path(FILE_PATH_LITERAL("foo/bar/quux.txt")); - ASSERT_TRUE(LocateAndOpenEntry(&reader, target_path)); - ZipReader::EntryInfo* current_entry_info = reader.current_entry_info(); - EXPECT_EQ(target_path, current_entry_info->file_path()); - EXPECT_EQ(13527, current_entry_info->original_size()); + const ZipReader::Entry* entry = LocateAndOpenEntry(&reader, target_path); + ASSERT_TRUE(entry); + + EXPECT_EQ(target_path, entry->path); + EXPECT_EQ(13527, entry->original_size); // The expected time stamp: 2009-05-29 06:22:20 base::Time::Exploded exploded = {}; // Zero-clear. - current_entry_info->last_modified().UTCExplode(&exploded); + entry->last_modified.UTCExplode(&exploded); EXPECT_EQ(2009, exploded.year); EXPECT_EQ(5, exploded.month); EXPECT_EQ(29, exploded.day_of_month); @@ -297,67 +300,106 @@ TEST_F(ZipReaderTest, current_entry_info_RegularFile) { EXPECT_EQ(20, exploded.second); EXPECT_EQ(0, exploded.millisecond); - EXPECT_FALSE(current_entry_info->is_unsafe()); - EXPECT_FALSE(current_entry_info->is_directory()); + EXPECT_FALSE(entry->is_unsafe); + EXPECT_FALSE(entry->is_directory); } -TEST_F(ZipReaderTest, current_entry_info_DotDotFile) { +TEST_F(ZipReaderTest, DotDotFile) { ZipReader reader; - ASSERT_TRUE(reader.Open(evil_zip_file_)); + ASSERT_TRUE(reader.Open(data_dir_.AppendASCII("evil.zip"))); base::FilePath target_path(FILE_PATH_LITERAL( - "../levilevilevilevilevilevilevilevilevilevilevilevil")); - ASSERT_TRUE(LocateAndOpenEntry(&reader, target_path)); - ZipReader::EntryInfo* current_entry_info = reader.current_entry_info(); - EXPECT_EQ(target_path, current_entry_info->file_path()); - - // This file is unsafe because of ".." in the file name. - EXPECT_TRUE(current_entry_info->is_unsafe()); - EXPECT_FALSE(current_entry_info->is_directory()); + "UP/levilevilevilevilevilevilevilevilevilevilevilevil")); + const ZipReader::Entry* entry = LocateAndOpenEntry(&reader, target_path); + ASSERT_TRUE(entry); + EXPECT_EQ(target_path, entry->path); + EXPECT_FALSE(entry->is_unsafe); + EXPECT_FALSE(entry->is_directory); } -TEST_F(ZipReaderTest, current_entry_info_InvalidUTF8File) { +TEST_F(ZipReaderTest, InvalidUTF8File) { ZipReader reader; - ASSERT_TRUE(reader.Open(evil_via_invalid_utf8_zip_file_)); - // The evil file is the 2nd file in the zip file. - // We cannot locate by the file name ".\x80.\\evil.txt", - // as FilePath may internally convert the string. - ASSERT_TRUE(reader.AdvanceToNextEntry()); - ASSERT_TRUE(reader.OpenCurrentEntryInZip()); - ZipReader::EntryInfo* current_entry_info = reader.current_entry_info(); + ASSERT_TRUE(reader.Open(data_dir_.AppendASCII("evil_via_invalid_utf8.zip"))); + base::FilePath target_path = base::FilePath::FromUTF8Unsafe(".�.�evil.txt"); + const ZipReader::Entry* entry = LocateAndOpenEntry(&reader, target_path); + ASSERT_TRUE(entry); + EXPECT_EQ(target_path, entry->path); + EXPECT_FALSE(entry->is_unsafe); + EXPECT_FALSE(entry->is_directory); +} - // This file is unsafe because of invalid UTF-8 in the file name. - EXPECT_TRUE(current_entry_info->is_unsafe()); - EXPECT_FALSE(current_entry_info->is_directory()); +// By default, file paths in ZIPs are interpreted as UTF-8. But in this test, +// the ZIP archive contains file paths that are actually encoded in Shift JIS. +// The SJIS-encoded paths are thus wrongly interpreted as UTF-8, resulting in +// garbled paths. Invalid UTF-8 sequences are safely converted to the +// replacement character �. +TEST_F(ZipReaderTest, EncodingSjisAsUtf8) { + EXPECT_THAT( + GetPaths(data_dir_.AppendASCII("SJIS Bug 846195.zip")), + ElementsAre( + base::FilePath::FromUTF8Unsafe("�V�����t�H���_/SJIS_835C_��.txt"), + base::FilePath::FromUTF8Unsafe( + "�V�����t�H���_/�V�����e�L�X�g �h�L�������g.txt"))); } -TEST_F(ZipReaderTest, current_entry_info_AbsoluteFile) { - ZipReader reader; - ASSERT_TRUE(reader.Open(evil_via_absolute_file_name_zip_file_)); - base::FilePath target_path(FILE_PATH_LITERAL("/evil.txt")); - ASSERT_TRUE(LocateAndOpenEntry(&reader, target_path)); - ZipReader::EntryInfo* current_entry_info = reader.current_entry_info(); - EXPECT_EQ(target_path, current_entry_info->file_path()); +// In this test, SJIS-encoded paths are interpreted as Code Page 1252. This +// results in garbled paths. Note the presence of C1 control codes U+0090 and +// U+0081 in the garbled paths. +TEST_F(ZipReaderTest, EncodingSjisAs1252) { + EXPECT_THAT( + GetPaths(data_dir_.AppendASCII("SJIS Bug 846195.zip"), "windows-1252"), + ElementsAre(base::FilePath::FromUTF8Unsafe( + "\u0090V‚µ‚¢ƒtƒHƒ‹ƒ_/SJIS_835C_ƒ�.txt"), + base::FilePath::FromUTF8Unsafe( + "\u0090V‚µ‚¢ƒtƒHƒ‹ƒ_/\u0090V‚µ‚¢ƒeƒLƒXƒg " + "ƒhƒLƒ…ƒ\u0081ƒ“ƒg.txt"))); +} + +// In this test, SJIS-encoded paths are interpreted as Code Page 866. This +// results in garbled paths. +TEST_F(ZipReaderTest, EncodingSjisAsIbm866) { + EXPECT_THAT( + GetPaths(data_dir_.AppendASCII("SJIS Bug 846195.zip"), "IBM866"), + ElementsAre( + base::FilePath::FromUTF8Unsafe("РVВ╡ВвГtГHГЛГ_/SJIS_835C_Г�.txt"), + base::FilePath::FromUTF8Unsafe( + "РVВ╡ВвГtГHГЛГ_/РVВ╡ВвГeГLГXГg ГhГLГЕГБГУГg.txt"))); +} + +// Tests that SJIS-encoded paths are correctly converted to Unicode. +TEST_F(ZipReaderTest, EncodingSjis) { + EXPECT_THAT( + GetPaths(data_dir_.AppendASCII("SJIS Bug 846195.zip"), "Shift_JIS"), + ElementsAre( + base::FilePath::FromUTF8Unsafe("新しいフォルダ/SJIS_835C_ソ.txt"), + base::FilePath::FromUTF8Unsafe( + "新しいフォルダ/新しいテキスト ドキュメント.txt"))); +} - // This file is unsafe because of the absolute file name. - EXPECT_TRUE(current_entry_info->is_unsafe()); - EXPECT_FALSE(current_entry_info->is_directory()); +TEST_F(ZipReaderTest, AbsoluteFile) { + ZipReader reader; + ASSERT_TRUE( + reader.Open(data_dir_.AppendASCII("evil_via_absolute_file_name.zip"))); + base::FilePath target_path(FILE_PATH_LITERAL("ROOT/evil.txt")); + const ZipReader::Entry* entry = LocateAndOpenEntry(&reader, target_path); + ASSERT_TRUE(entry); + EXPECT_EQ(target_path, entry->path); + EXPECT_FALSE(entry->is_unsafe); + EXPECT_FALSE(entry->is_directory); } -TEST_F(ZipReaderTest, current_entry_info_Directory) { +TEST_F(ZipReaderTest, Directory) { ZipReader reader; ASSERT_TRUE(reader.Open(test_zip_file_)); base::FilePath target_path(FILE_PATH_LITERAL("foo/bar/")); - ASSERT_TRUE(LocateAndOpenEntry(&reader, target_path)); - ZipReader::EntryInfo* current_entry_info = reader.current_entry_info(); - - EXPECT_EQ(base::FilePath(FILE_PATH_LITERAL("foo/bar/")), - current_entry_info->file_path()); + const ZipReader::Entry* entry = LocateAndOpenEntry(&reader, target_path); + ASSERT_TRUE(entry); + EXPECT_EQ(target_path, entry->path); // The directory size should be zero. - EXPECT_EQ(0, current_entry_info->original_size()); + EXPECT_EQ(0, entry->original_size); // The expected time stamp: 2009-05-31 15:49:52 base::Time::Exploded exploded = {}; // Zero-clear. - current_entry_info->last_modified().UTCExplode(&exploded); + entry->last_modified.UTCExplode(&exploded); EXPECT_EQ(2009, exploded.year); EXPECT_EQ(5, exploded.month); EXPECT_EQ(31, exploded.day_of_month); @@ -366,22 +408,91 @@ TEST_F(ZipReaderTest, current_entry_info_Directory) { EXPECT_EQ(52, exploded.second); EXPECT_EQ(0, exploded.millisecond); - EXPECT_FALSE(current_entry_info->is_unsafe()); - EXPECT_TRUE(current_entry_info->is_directory()); + EXPECT_FALSE(entry->is_unsafe); + EXPECT_TRUE(entry->is_directory); } -TEST_F(ZipReaderTest, current_entry_info_EncryptedFile) { +TEST_F(ZipReaderTest, EncryptedFile_WrongPassword) { ZipReader reader; - base::FilePath target_path(FILE_PATH_LITERAL("foo/bar/quux.txt")); + ASSERT_TRUE(reader.Open(data_dir_.AppendASCII("Different Encryptions.zip"))); + reader.SetPassword("wrong password"); - ASSERT_TRUE(reader.Open(encrypted_zip_file_)); - ASSERT_TRUE(LocateAndOpenEntry(&reader, target_path)); - EXPECT_TRUE(reader.current_entry_info()->is_encrypted()); - reader.Close(); + { + const ZipReader::Entry* entry = reader.Next(); + ASSERT_TRUE(entry); + EXPECT_EQ(base::FilePath::FromASCII("ClearText.txt"), entry->path); + EXPECT_FALSE(entry->is_directory); + EXPECT_FALSE(entry->is_encrypted); + std::string contents = "dummy"; + EXPECT_TRUE(reader.ExtractCurrentEntryToString(&contents)); + EXPECT_EQ("This is not encrypted.\n", contents); + } - ASSERT_TRUE(reader.Open(test_zip_file_)); - ASSERT_TRUE(LocateAndOpenEntry(&reader, target_path)); - EXPECT_FALSE(reader.current_entry_info()->is_encrypted()); + for (const base::StringPiece path : { + "Encrypted AES-128.txt", + "Encrypted AES-192.txt", + "Encrypted AES-256.txt", + "Encrypted ZipCrypto.txt", + }) { + const ZipReader::Entry* entry = reader.Next(); + ASSERT_TRUE(entry); + EXPECT_EQ(base::FilePath::FromASCII(path), entry->path); + EXPECT_FALSE(entry->is_directory); + EXPECT_TRUE(entry->is_encrypted); + std::string contents = "dummy"; + EXPECT_FALSE(reader.ExtractCurrentEntryToString(&contents)); + } + + EXPECT_FALSE(reader.Next()); + EXPECT_TRUE(reader.ok()); +} + +TEST_F(ZipReaderTest, EncryptedFile_RightPassword) { + ZipReader reader; + ASSERT_TRUE(reader.Open(data_dir_.AppendASCII("Different Encryptions.zip"))); + reader.SetPassword("password"); + + { + const ZipReader::Entry* entry = reader.Next(); + ASSERT_TRUE(entry); + EXPECT_EQ(base::FilePath::FromASCII("ClearText.txt"), entry->path); + EXPECT_FALSE(entry->is_directory); + EXPECT_FALSE(entry->is_encrypted); + std::string contents = "dummy"; + EXPECT_TRUE(reader.ExtractCurrentEntryToString(&contents)); + EXPECT_EQ("This is not encrypted.\n", contents); + } + + // TODO(crbug.com/1296838) Support AES encryption. + for (const base::StringPiece path : { + "Encrypted AES-128.txt", + "Encrypted AES-192.txt", + "Encrypted AES-256.txt", + }) { + const ZipReader::Entry* entry = reader.Next(); + ASSERT_TRUE(entry); + EXPECT_EQ(base::FilePath::FromASCII(path), entry->path); + EXPECT_FALSE(entry->is_directory); + EXPECT_TRUE(entry->is_encrypted); + std::string contents = "dummy"; + EXPECT_FALSE(reader.ExtractCurrentEntryToString(&contents)); + EXPECT_EQ("", contents); + } + + { + const ZipReader::Entry* entry = reader.Next(); + ASSERT_TRUE(entry); + EXPECT_EQ(base::FilePath::FromASCII("Encrypted ZipCrypto.txt"), + entry->path); + EXPECT_FALSE(entry->is_directory); + EXPECT_TRUE(entry->is_encrypted); + std::string contents = "dummy"; + EXPECT_TRUE(reader.ExtractCurrentEntryToString(&contents)); + EXPECT_EQ("This is encrypted with ZipCrypto.\n", contents); + } + + EXPECT_FALSE(reader.Next()); + EXPECT_TRUE(reader.ok()); } // Verifies that the ZipReader class can extract a file from a zip archive @@ -404,7 +515,7 @@ TEST_F(ZipReaderTest, OpenFromString) { "\x50\x75\x78\x0b\x00\x01\x04\x8e\xf0\x00\x00\x04\x88\x13\x00\x00" "\x50\x4b\x05\x06\x00\x00\x00\x00\x01\x00\x01\x00\x4e\x00\x00\x00" "\x52\x00\x00\x00\x00\x00"; - std::string data(kTestData, base::size(kTestData)); + std::string data(kTestData, std::size(kTestData)); ZipReader reader; ASSERT_TRUE(reader.OpenFromString(data)); base::FilePath target_path(FILE_PATH_LITERAL("test.txt")); @@ -413,8 +524,8 @@ TEST_F(ZipReaderTest, OpenFromString) { test_dir_.AppendASCII("test.txt"))); std::string actual; - ASSERT_TRUE(base::ReadFileToString( - test_dir_.AppendASCII("test.txt"), &actual)); + ASSERT_TRUE( + base::ReadFileToString(test_dir_.AppendASCII("test.txt"), &actual)); EXPECT_EQ(std::string("This is a test.\n"), actual); } @@ -445,8 +556,8 @@ TEST_F(ZipReaderTest, ExtractToFileAsync_RegularFile) { EXPECT_LE(1, listener.progress_calls()); std::string output; - ASSERT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("quux.txt"), - &output)); + ASSERT_TRUE( + base::ReadFileToString(test_dir_.AppendASCII("quux.txt"), &output)); const std::string md5 = base::MD5String(output); EXPECT_EQ(kQuuxExpectedMD5, md5); @@ -456,6 +567,103 @@ TEST_F(ZipReaderTest, ExtractToFileAsync_RegularFile) { EXPECT_EQ(file_size, listener.current_progress()); } +TEST_F(ZipReaderTest, ExtractToFileAsync_Encrypted_NoPassword) { + MockUnzipListener listener; + + ZipReader reader; + ASSERT_TRUE(reader.Open(data_dir_.AppendASCII("Different Encryptions.zip"))); + ASSERT_TRUE(LocateAndOpenEntry( + &reader, base::FilePath::FromASCII("Encrypted ZipCrypto.txt"))); + const base::FilePath target_path = test_dir_.AppendASCII("extracted"); + reader.ExtractCurrentEntryToFilePathAsync( + target_path, + base::BindOnce(&MockUnzipListener::OnUnzipSuccess, listener.AsWeakPtr()), + base::BindOnce(&MockUnzipListener::OnUnzipFailure, listener.AsWeakPtr()), + base::BindRepeating(&MockUnzipListener::OnUnzipProgress, + listener.AsWeakPtr())); + + EXPECT_EQ(0, listener.success_calls()); + EXPECT_EQ(0, listener.failure_calls()); + EXPECT_EQ(0, listener.progress_calls()); + + base::RunLoop().RunUntilIdle(); + + EXPECT_EQ(0, listener.success_calls()); + EXPECT_EQ(1, listener.failure_calls()); + EXPECT_LE(1, listener.progress_calls()); + + // The extracted file contains rubbish data. + // We probably shouldn't even look at it. + std::string contents; + ASSERT_TRUE(base::ReadFileToString(target_path, &contents)); + EXPECT_NE("", contents); + EXPECT_EQ(contents.size(), listener.current_progress()); +} + +TEST_F(ZipReaderTest, ExtractToFileAsync_Encrypted_RightPassword) { + MockUnzipListener listener; + + ZipReader reader; + reader.SetPassword("password"); + ASSERT_TRUE(reader.Open(data_dir_.AppendASCII("Different Encryptions.zip"))); + ASSERT_TRUE(LocateAndOpenEntry( + &reader, base::FilePath::FromASCII("Encrypted ZipCrypto.txt"))); + const base::FilePath target_path = test_dir_.AppendASCII("extracted"); + reader.ExtractCurrentEntryToFilePathAsync( + target_path, + base::BindOnce(&MockUnzipListener::OnUnzipSuccess, listener.AsWeakPtr()), + base::BindOnce(&MockUnzipListener::OnUnzipFailure, listener.AsWeakPtr()), + base::BindRepeating(&MockUnzipListener::OnUnzipProgress, + listener.AsWeakPtr())); + + EXPECT_EQ(0, listener.success_calls()); + EXPECT_EQ(0, listener.failure_calls()); + EXPECT_EQ(0, listener.progress_calls()); + + base::RunLoop().RunUntilIdle(); + + EXPECT_EQ(1, listener.success_calls()); + EXPECT_EQ(0, listener.failure_calls()); + EXPECT_LE(1, listener.progress_calls()); + + std::string contents; + ASSERT_TRUE(base::ReadFileToString(target_path, &contents)); + EXPECT_EQ("This is encrypted with ZipCrypto.\n", contents); + EXPECT_EQ(contents.size(), listener.current_progress()); +} + +TEST_F(ZipReaderTest, ExtractToFileAsync_WrongCrc) { + MockUnzipListener listener; + + ZipReader reader; + ASSERT_TRUE(reader.Open(data_dir_.AppendASCII("Wrong CRC.zip"))); + ASSERT_TRUE( + LocateAndOpenEntry(&reader, base::FilePath::FromASCII("Corrupted.txt"))); + const base::FilePath target_path = test_dir_.AppendASCII("extracted"); + reader.ExtractCurrentEntryToFilePathAsync( + target_path, + base::BindOnce(&MockUnzipListener::OnUnzipSuccess, listener.AsWeakPtr()), + base::BindOnce(&MockUnzipListener::OnUnzipFailure, listener.AsWeakPtr()), + base::BindRepeating(&MockUnzipListener::OnUnzipProgress, + listener.AsWeakPtr())); + + EXPECT_EQ(0, listener.success_calls()); + EXPECT_EQ(0, listener.failure_calls()); + EXPECT_EQ(0, listener.progress_calls()); + + base::RunLoop().RunUntilIdle(); + + EXPECT_EQ(0, listener.success_calls()); + EXPECT_EQ(1, listener.failure_calls()); + EXPECT_LE(1, listener.progress_calls()); + + std::string contents; + ASSERT_TRUE(base::ReadFileToString(target_path, &contents)); + EXPECT_EQ("This file has been changed after its CRC was computed.\n", + contents); + EXPECT_EQ(contents.size(), listener.current_progress()); +} + // Verifies that the asynchronous extraction to a file works. TEST_F(ZipReaderTest, ExtractToFileAsync_Directory) { MockUnzipListener listener; @@ -490,7 +698,7 @@ TEST_F(ZipReaderTest, ExtractCurrentEntryToString) { // sizes from 0 to 7 bytes respectively, being the contents of each file a // substring of "0123456" starting at '0'. base::FilePath test_zip_file = - test_data_dir_.AppendASCII("test_mismatch_size.zip"); + data_dir_.AppendASCII("test_mismatch_size.zip"); ZipReader reader; std::string contents; @@ -515,7 +723,7 @@ TEST_F(ZipReaderTest, ExtractCurrentEntryToString) { } // More than necessary byte read limit: must pass. - EXPECT_TRUE(reader.ExtractCurrentEntryToString(16, &contents)); + EXPECT_TRUE(reader.ExtractCurrentEntryToString(&contents)); EXPECT_EQ(std::string(base::StringPiece("0123456", i)), contents); } reader.Close(); @@ -526,7 +734,7 @@ TEST_F(ZipReaderTest, ExtractPartOfCurrentEntry) { // sizes from 0 to 7 bytes respectively, being the contents of each file a // substring of "0123456" starting at '0'. base::FilePath test_zip_file = - test_data_dir_.AppendASCII("test_mismatch_size.zip"); + data_dir_.AppendASCII("test_mismatch_size.zip"); ZipReader reader; std::string contents; @@ -564,6 +772,37 @@ TEST_F(ZipReaderTest, ExtractPartOfCurrentEntry) { reader.Close(); } +TEST_F(ZipReaderTest, ExtractPosixPermissions) { + base::ScopedTempDir temp_dir; + ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); + + ZipReader reader; + ASSERT_TRUE(reader.Open(data_dir_.AppendASCII("test_posix_permissions.zip"))); + for (auto entry : {"0.txt", "1.txt", "2.txt", "3.txt"}) { + ASSERT_TRUE(LocateAndOpenEntry(&reader, base::FilePath::FromASCII(entry))); + FilePathWriterDelegate delegate(temp_dir.GetPath().AppendASCII(entry)); + ASSERT_TRUE(reader.ExtractCurrentEntry(&delegate)); + } + reader.Close(); + +#if defined(OS_POSIX) + // This assumes a umask of at least 0400. + int mode = 0; + EXPECT_TRUE(base::GetPosixFilePermissions( + temp_dir.GetPath().AppendASCII("0.txt"), &mode)); + EXPECT_EQ(mode & 0700, 0700); + EXPECT_TRUE(base::GetPosixFilePermissions( + temp_dir.GetPath().AppendASCII("1.txt"), &mode)); + EXPECT_EQ(mode & 0700, 0600); + EXPECT_TRUE(base::GetPosixFilePermissions( + temp_dir.GetPath().AppendASCII("2.txt"), &mode)); + EXPECT_EQ(mode & 0700, 0700); + EXPECT_TRUE(base::GetPosixFilePermissions( + temp_dir.GetPath().AppendASCII("3.txt"), &mode)); + EXPECT_EQ(mode & 0700, 0600); +#endif +} + // This test exposes http://crbug.com/430959, at least on OS X TEST_F(ZipReaderTest, DISABLED_LeakDetectionTest) { for (int i = 0; i < 100000; ++i) { @@ -578,45 +817,40 @@ TEST_F(ZipReaderTest, DISABLED_LeakDetectionTest) { TEST_F(ZipReaderTest, ExtractCurrentEntryPrepareFailure) { testing::StrictMock mock_writer; - EXPECT_CALL(mock_writer, PrepareOutput()) - .WillOnce(Return(false)); + EXPECT_CALL(mock_writer, PrepareOutput()).WillOnce(Return(false)); base::FilePath target_path(FILE_PATH_LITERAL("foo/bar/quux.txt")); ZipReader reader; ASSERT_TRUE(reader.Open(test_zip_file_)); ASSERT_TRUE(LocateAndOpenEntry(&reader, target_path)); - ASSERT_FALSE(reader.ExtractCurrentEntry( - &mock_writer, std::numeric_limits::max())); + ASSERT_FALSE(reader.ExtractCurrentEntry(&mock_writer)); } -// Test that when WriterDelegate::WriteBytes returns false, no other methods on -// the delegate are called and the extraction fails. +// Test that when WriterDelegate::WriteBytes returns false, only the OnError +// method on the delegate is called and the extraction fails. TEST_F(ZipReaderTest, ExtractCurrentEntryWriteBytesFailure) { testing::StrictMock mock_writer; - EXPECT_CALL(mock_writer, PrepareOutput()) - .WillOnce(Return(true)); - EXPECT_CALL(mock_writer, WriteBytes(_, _)) - .WillOnce(Return(false)); + EXPECT_CALL(mock_writer, PrepareOutput()).WillOnce(Return(true)); + EXPECT_CALL(mock_writer, WriteBytes(_, _)).WillOnce(Return(false)); + EXPECT_CALL(mock_writer, OnError()); base::FilePath target_path(FILE_PATH_LITERAL("foo/bar/quux.txt")); ZipReader reader; ASSERT_TRUE(reader.Open(test_zip_file_)); ASSERT_TRUE(LocateAndOpenEntry(&reader, target_path)); - ASSERT_FALSE(reader.ExtractCurrentEntry( - &mock_writer, std::numeric_limits::max())); + ASSERT_FALSE(reader.ExtractCurrentEntry(&mock_writer)); } // Test that extraction succeeds when the writer delegate reports all is well. TEST_F(ZipReaderTest, ExtractCurrentEntrySuccess) { testing::StrictMock mock_writer; - EXPECT_CALL(mock_writer, PrepareOutput()) - .WillOnce(Return(true)); - EXPECT_CALL(mock_writer, WriteBytes(_, _)) - .WillRepeatedly(Return(true)); + EXPECT_CALL(mock_writer, PrepareOutput()).WillOnce(Return(true)); + EXPECT_CALL(mock_writer, WriteBytes(_, _)).WillRepeatedly(Return(true)); + EXPECT_CALL(mock_writer, SetPosixFilePermissions(_)); EXPECT_CALL(mock_writer, SetTimeModified(_)); base::FilePath target_path(FILE_PATH_LITERAL("foo/bar/quux.txt")); @@ -624,8 +858,38 @@ TEST_F(ZipReaderTest, ExtractCurrentEntrySuccess) { ASSERT_TRUE(reader.Open(test_zip_file_)); ASSERT_TRUE(LocateAndOpenEntry(&reader, target_path)); - ASSERT_TRUE(reader.ExtractCurrentEntry(&mock_writer, - std::numeric_limits::max())); + ASSERT_TRUE(reader.ExtractCurrentEntry(&mock_writer)); +} + +TEST_F(ZipReaderTest, WrongCrc) { + ZipReader reader; + ASSERT_TRUE(reader.Open(data_dir_.AppendASCII("Wrong CRC.zip"))); + + const ZipReader::Entry* const entry = + LocateAndOpenEntry(&reader, base::FilePath::FromASCII("Corrupted.txt")); + ASSERT_TRUE(entry); + + std::string contents = "dummy"; + EXPECT_FALSE(reader.ExtractCurrentEntryToString(&contents)); + EXPECT_EQ("This file has been changed after its CRC was computed.\n", + contents); + + contents = "dummy"; + EXPECT_FALSE( + reader.ExtractCurrentEntryToString(entry->original_size + 1, &contents)); + EXPECT_EQ("This file has been changed after its CRC was computed.\n", + contents); + + contents = "dummy"; + EXPECT_FALSE( + reader.ExtractCurrentEntryToString(entry->original_size, &contents)); + EXPECT_EQ("This file has been changed after its CRC was computed.\n", + contents); + + contents = "dummy"; + EXPECT_FALSE( + reader.ExtractCurrentEntryToString(entry->original_size - 1, &contents)); + EXPECT_EQ("This file has been changed after its CRC was computed.", contents); } class FileWriterDelegateTest : public ::testing::Test { @@ -639,34 +903,39 @@ class FileWriterDelegateTest : public ::testing::Test { ASSERT_TRUE(file_.IsValid()); } - // Writes data to the file, leaving the current position at the end of the - // write. - void PopulateFile() { - static const char kSomeData[] = "this sure is some data."; - static const size_t kSomeDataLen = sizeof(kSomeData) - 1; - ASSERT_NE(-1LL, file_.Write(0LL, kSomeData, kSomeDataLen)); - } - base::FilePath temp_file_path_; base::File file_; }; -TEST_F(FileWriterDelegateTest, WriteToStartAndTruncate) { - // Write stuff and advance. - PopulateFile(); +TEST_F(FileWriterDelegateTest, WriteToEnd) { + const std::string payload = "This is the actualy payload data.\n"; - // This should rewind, write, then truncate. - static const char kSomeData[] = "short"; - static const int kSomeDataLen = sizeof(kSomeData) - 1; { FileWriterDelegate writer(&file_); + EXPECT_EQ(0, writer.file_length()); ASSERT_TRUE(writer.PrepareOutput()); - ASSERT_TRUE(writer.WriteBytes(kSomeData, kSomeDataLen)); + ASSERT_TRUE(writer.WriteBytes(payload.data(), payload.size())); + EXPECT_EQ(payload.size(), writer.file_length()); } - ASSERT_EQ(kSomeDataLen, file_.GetLength()); - char buf[kSomeDataLen] = {}; - ASSERT_EQ(kSomeDataLen, file_.Read(0LL, buf, kSomeDataLen)); - ASSERT_EQ(std::string(kSomeData), std::string(buf, kSomeDataLen)); + + EXPECT_EQ(payload.size(), file_.GetLength()); +} + +TEST_F(FileWriterDelegateTest, EmptyOnError) { + const std::string payload = "This is the actualy payload data.\n"; + + { + FileWriterDelegate writer(&file_); + EXPECT_EQ(0, writer.file_length()); + ASSERT_TRUE(writer.PrepareOutput()); + ASSERT_TRUE(writer.WriteBytes(payload.data(), payload.size())); + EXPECT_EQ(payload.size(), writer.file_length()); + EXPECT_EQ(payload.size(), file_.GetLength()); + writer.OnError(); + EXPECT_EQ(0, writer.file_length()); + } + + EXPECT_EQ(0, file_.GetLength()); } } // namespace zip diff --git a/deps/v8/third_party/zlib/google/zip_unittest.cc b/deps/v8/third_party/zlib/google/zip_unittest.cc index 944930ffc84e39..435d7b02ee2344 100644 --- a/deps/v8/third_party/zlib/google/zip_unittest.cc +++ b/deps/v8/third_party/zlib/google/zip_unittest.cc @@ -5,9 +5,11 @@ #include #include -#include -#include +#include +#include #include +#include +#include #include #include "base/bind.h" @@ -18,10 +20,13 @@ #include "base/files/scoped_temp_dir.h" #include "base/logging.h" #include "base/path_service.h" +#include "base/strings/strcat.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "base/test/bind.h" +#include "base/time/time.h" #include "build/build_config.h" +#include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" #include "third_party/zlib/google/zip.h" @@ -33,6 +38,23 @@ namespace { +using testing::UnorderedElementsAre; +using testing::UnorderedElementsAreArray; + +std::vector GetRelativePaths(const base::FilePath& dir, + base::FileEnumerator::FileType type) { + std::vector got_paths; + base::FileEnumerator files(dir, true, type); + for (base::FilePath path = files.Next(); !path.empty(); path = files.Next()) { + base::FilePath relative; + EXPECT_TRUE(dir.AppendRelativePath(path, &relative)); + got_paths.push_back(relative.NormalizePathSeparatorsTo('/').AsUTF8Unsafe()); + } + + EXPECT_EQ(base::File::FILE_OK, files.GetError()); + return got_paths; +} + bool CreateFile(const std::string& content, base::FilePath* file_path, base::File* file) { @@ -47,6 +69,46 @@ bool CreateFile(const std::string& content, return file->IsValid(); } +// A WriterDelegate that logs progress once per second. +class ProgressWriterDelegate : public zip::WriterDelegate { + public: + explicit ProgressWriterDelegate(int64_t expected_size) + : expected_size_(expected_size) { + CHECK_GT(expected_size_, 0); + } + + bool WriteBytes(const char* data, int num_bytes) override { + received_bytes_ += num_bytes; + LogProgressIfNecessary(); + return true; + } + + void SetTimeModified(const base::Time& time) override { LogProgress(); } + + int64_t received_bytes() const { return received_bytes_; } + + private: + void LogProgressIfNecessary() { + const base::TimeTicks now = base::TimeTicks::Now(); + if (next_progress_report_time_ > now) + return; + + next_progress_report_time_ = now + progress_period_; + LogProgress(); + } + + void LogProgress() const { + LOG(INFO) << "Unzipping... " << std::setw(3) + << (100 * received_bytes_ / expected_size_) << "%"; + } + + const base::TimeDelta progress_period_ = base::Seconds(1); + base::TimeTicks next_progress_report_time_ = + base::TimeTicks::Now() + progress_period_; + const uint64_t expected_size_; + int64_t received_bytes_ = 0; +}; + // A virtual file system containing: // /test // /test/foo.txt @@ -153,8 +215,8 @@ class VirtualFileSystem : public zip::FileAccessor { std::vector files, subdirs; }; - std::map file_tree_; - std::map files_; + std::unordered_map file_tree_; + std::unordered_map files_; }; // static @@ -192,41 +254,38 @@ class ZipTest : public PlatformTest { virtual void TearDown() { PlatformTest::TearDown(); } - bool GetTestDataDirectory(base::FilePath* path) { - bool success = base::PathService::Get(base::DIR_SOURCE_ROOT, path); + static base::FilePath GetDataDirectory() { + base::FilePath path; + bool success = base::PathService::Get(base::DIR_SOURCE_ROOT, &path); EXPECT_TRUE(success); - if (!success) - return false; - for (const base::StringPiece s : - {"third_party", "zlib", "google", "test", "data"}) { - *path = path->AppendASCII(s); - } - return true; + return std::move(path) + .AppendASCII("third_party") + .AppendASCII("zlib") + .AppendASCII("google") + .AppendASCII("test") + .AppendASCII("data"); } void TestUnzipFile(const base::FilePath::StringType& filename, bool expect_hidden_files) { - base::FilePath test_dir; - ASSERT_TRUE(GetTestDataDirectory(&test_dir)); - TestUnzipFile(test_dir.Append(filename), expect_hidden_files); + TestUnzipFile(GetDataDirectory().Append(filename), expect_hidden_files); } void TestUnzipFile(const base::FilePath& path, bool expect_hidden_files) { - ASSERT_TRUE(base::PathExists(path)) << "no file " << path.value(); + ASSERT_TRUE(base::PathExists(path)) << "no file " << path; ASSERT_TRUE(zip::Unzip(path, test_dir_)); - base::FilePath original_dir; - ASSERT_TRUE(GetTestDataDirectory(&original_dir)); - original_dir = original_dir.AppendASCII("test"); + base::FilePath original_dir = GetDataDirectory().AppendASCII("test"); base::FileEnumerator files( test_dir_, true, base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES); - base::FilePath unzipped_entry_path = files.Next(); + size_t count = 0; - while (!unzipped_entry_path.empty()) { + for (base::FilePath unzipped_entry_path = files.Next(); + !unzipped_entry_path.empty(); unzipped_entry_path = files.Next()) { EXPECT_EQ(zip_contents_.count(unzipped_entry_path), 1U) - << "Couldn't find " << unzipped_entry_path.value(); + << "Couldn't find " << unzipped_entry_path; count++; if (base::PathExists(unzipped_entry_path) && @@ -242,13 +301,12 @@ class ZipTest : public PlatformTest { << "Original file '" << original_path << "' and unzipped file '" << unzipped_entry_path << "' have different contents"; } - unzipped_entry_path = files.Next(); } + EXPECT_EQ(base::File::FILE_OK, files.GetError()); size_t expected_count = 0; - for (std::set::iterator iter = zip_contents_.begin(); - iter != zip_contents_.end(); ++iter) { - if (expect_hidden_files || iter->BaseName().value()[0] != '.') + for (const base::FilePath& path : zip_contents_) { + if (expect_hidden_files || path.BaseName().value()[0] != '.') ++expected_count; } @@ -314,12 +372,23 @@ class ZipTest : public PlatformTest { base::ScopedTempDir temp_dir_; // Hard-coded contents of a known zip file. - std::set zip_contents_; + std::unordered_set zip_contents_; // Hard-coded list of relative paths for a zip file created with ZipFiles. std::vector zip_file_list_; }; +TEST_F(ZipTest, UnzipNoSuchFile) { + EXPECT_FALSE(zip::Unzip(GetDataDirectory().AppendASCII("No Such File.zip"), + test_dir_)); + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre()); + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::DIRECTORIES), + UnorderedElementsAre()); +} + TEST_F(ZipTest, Unzip) { TestUnzipFile(FILE_PATH_LITERAL("test.zip"), true); } @@ -329,108 +398,617 @@ TEST_F(ZipTest, UnzipUncompressed) { } TEST_F(ZipTest, UnzipEvil) { - base::FilePath path; - ASSERT_TRUE(GetTestDataDirectory(&path)); - path = path.AppendASCII("evil.zip"); + base::FilePath path = GetDataDirectory().AppendASCII("evil.zip"); // Unzip the zip file into a sub directory of test_dir_ so evil.zip // won't create a persistent file outside test_dir_ in case of a // failure. base::FilePath output_dir = test_dir_.AppendASCII("out"); - ASSERT_FALSE(zip::Unzip(path, output_dir)); - base::FilePath evil_file = output_dir; - evil_file = evil_file.AppendASCII( - "../levilevilevilevilevilevilevilevilevilevilevilevil"); - ASSERT_FALSE(base::PathExists(evil_file)); + EXPECT_TRUE(zip::Unzip(path, output_dir)); + EXPECT_TRUE(base::PathExists(output_dir.AppendASCII( + "UP/levilevilevilevilevilevilevilevilevilevilevilevil"))); } TEST_F(ZipTest, UnzipEvil2) { - base::FilePath path; - ASSERT_TRUE(GetTestDataDirectory(&path)); - // The zip file contains an evil file with invalid UTF-8 in its file - // name. - path = path.AppendASCII("evil_via_invalid_utf8.zip"); + // The ZIP file contains a file with invalid UTF-8 in its file name. + base::FilePath path = + GetDataDirectory().AppendASCII("evil_via_invalid_utf8.zip"); // See the comment at UnzipEvil() for why we do this. base::FilePath output_dir = test_dir_.AppendASCII("out"); - // This should fail as it contains an evil file. - ASSERT_FALSE(zip::Unzip(path, output_dir)); - base::FilePath evil_file = output_dir; - evil_file = evil_file.AppendASCII("../evil.txt"); - ASSERT_FALSE(base::PathExists(evil_file)); + ASSERT_TRUE(zip::Unzip(path, output_dir)); + ASSERT_TRUE(base::PathExists( + output_dir.Append(base::FilePath::FromUTF8Unsafe(".�.�evil.txt")))); + ASSERT_FALSE(base::PathExists(output_dir.AppendASCII("../evil.txt"))); } TEST_F(ZipTest, UnzipWithFilter) { auto filter = base::BindRepeating([](const base::FilePath& path) { return path.BaseName().MaybeAsASCII() == "foo.txt"; }); - base::FilePath path; - ASSERT_TRUE(GetTestDataDirectory(&path)); - ASSERT_TRUE(zip::UnzipWithFilterCallback(path.AppendASCII("test.zip"), - test_dir_, filter, false)); - // Only foo.txt should have been extracted. The following paths should not - // be extracted: - // foo/ - // foo/bar.txt - // foo/bar/ - // foo/bar/.hidden - // foo/bar/baz.txt - // foo/bar/quux.txt - ASSERT_TRUE(base::PathExists(test_dir_.AppendASCII("foo.txt"))); - base::FileEnumerator extractedFiles( - test_dir_, - false, // Do not enumerate recursively - the file must be in the root. - base::FileEnumerator::FileType::FILES); - int extracted_count = 0; - while (!extractedFiles.Next().empty()) - ++extracted_count; - ASSERT_EQ(1, extracted_count); - - base::FileEnumerator extractedDirs( - test_dir_, - false, // Do not enumerate recursively - we require zero directories. - base::FileEnumerator::FileType::DIRECTORIES); - extracted_count = 0; - while (!extractedDirs.Next().empty()) - ++extracted_count; - ASSERT_EQ(0, extracted_count); + ASSERT_TRUE(zip::Unzip(GetDataDirectory().AppendASCII("test.zip"), test_dir_, + {.filter = std::move(filter)})); + // Only foo.txt should have been extracted. + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("foo.txt")); + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::DIRECTORIES), + UnorderedElementsAre()); +} + +TEST_F(ZipTest, UnzipEncryptedWithRightPassword) { + // TODO(crbug.com/1296838) Also check the AES-encrypted files. + auto filter = base::BindRepeating([](const base::FilePath& path) { + return !base::StartsWith(path.MaybeAsASCII(), "Encrypted AES"); + }); + + ASSERT_TRUE(zip::Unzip( + GetDataDirectory().AppendASCII("Different Encryptions.zip"), test_dir_, + {.filter = std::move(filter), .password = "password"})); + + std::string contents; + ASSERT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("ClearText.txt"), + &contents)); + EXPECT_EQ("This is not encrypted.\n", contents); + + ASSERT_TRUE(base::ReadFileToString( + test_dir_.AppendASCII("Encrypted ZipCrypto.txt"), &contents)); + EXPECT_EQ("This is encrypted with ZipCrypto.\n", contents); +} + +TEST_F(ZipTest, UnzipEncryptedWithWrongPassword) { + // TODO(crbug.com/1296838) Also check the AES-encrypted files. + auto filter = base::BindRepeating([](const base::FilePath& path) { + return !base::StartsWith(path.MaybeAsASCII(), "Encrypted AES"); + }); + + ASSERT_FALSE(zip::Unzip( + GetDataDirectory().AppendASCII("Different Encryptions.zip"), test_dir_, + {.filter = std::move(filter), .password = "wrong"})); + + std::string contents; + ASSERT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("ClearText.txt"), + &contents)); + EXPECT_EQ("This is not encrypted.\n", contents); + + // No rubbish file should be left behind. + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("ClearText.txt")); +} + +TEST_F(ZipTest, UnzipEncryptedWithNoPassword) { + // TODO(crbug.com/1296838) Also check the AES-encrypted files. + auto filter = base::BindRepeating([](const base::FilePath& path) { + return !base::StartsWith(path.MaybeAsASCII(), "Encrypted AES"); + }); + + ASSERT_FALSE( + zip::Unzip(GetDataDirectory().AppendASCII("Different Encryptions.zip"), + test_dir_, {.filter = std::move(filter)})); + + std::string contents; + ASSERT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("ClearText.txt"), + &contents)); + EXPECT_EQ("This is not encrypted.\n", contents); + + // No rubbish file should be left behind. + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("ClearText.txt")); +} + +TEST_F(ZipTest, UnzipEncryptedContinueOnError) { + EXPECT_TRUE( + zip::Unzip(GetDataDirectory().AppendASCII("Different Encryptions.zip"), + test_dir_, {.continue_on_error = true})); + + std::string contents; + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("ClearText.txt"), + &contents)); + EXPECT_EQ("This is not encrypted.\n", contents); + + // No rubbish file should be left behind. + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("ClearText.txt")); +} + +TEST_F(ZipTest, UnzipWrongCrc) { + ASSERT_FALSE( + zip::Unzip(GetDataDirectory().AppendASCII("Wrong CRC.zip"), test_dir_)); + + // No rubbish file should be left behind. + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre()); +} + +TEST_F(ZipTest, UnzipRepeatedDirName) { + EXPECT_TRUE(zip::Unzip( + GetDataDirectory().AppendASCII("Repeated Dir Name.zip"), test_dir_)); + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre()); + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::DIRECTORIES), + UnorderedElementsAre("repeated")); +} + +TEST_F(ZipTest, UnzipRepeatedFileName) { + EXPECT_FALSE(zip::Unzip( + GetDataDirectory().AppendASCII("Repeated File Name.zip"), test_dir_)); + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("repeated")); + + std::string contents; + EXPECT_TRUE( + base::ReadFileToString(test_dir_.AppendASCII("repeated"), &contents)); + EXPECT_EQ("First file", contents); +} + +TEST_F(ZipTest, UnzipCannotCreateEmptyDir) { + EXPECT_FALSE(zip::Unzip( + GetDataDirectory().AppendASCII("Empty Dir Same Name As File.zip"), + test_dir_)); + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("repeated")); + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::DIRECTORIES), + UnorderedElementsAre()); + + std::string contents; + EXPECT_TRUE( + base::ReadFileToString(test_dir_.AppendASCII("repeated"), &contents)); + EXPECT_EQ("First file", contents); +} + +TEST_F(ZipTest, UnzipCannotCreateParentDir) { + EXPECT_FALSE(zip::Unzip( + GetDataDirectory().AppendASCII("Parent Dir Same Name As File.zip"), + test_dir_)); + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("repeated")); + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::DIRECTORIES), + UnorderedElementsAre()); + + std::string contents; + EXPECT_TRUE( + base::ReadFileToString(test_dir_.AppendASCII("repeated"), &contents)); + EXPECT_EQ("First file", contents); +} + +// TODO(crbug.com/1311140) Detect and rename reserved file names on Windows. +TEST_F(ZipTest, UnzipWindowsSpecialNames) { + EXPECT_TRUE( + zip::Unzip(GetDataDirectory().AppendASCII("Windows Special Names.zip"), + test_dir_, {.continue_on_error = true})); + + std::unordered_set want_paths = { + "First", + "Last", + "CLOCK$", + " NUL.txt", +#ifndef OS_WIN + "NUL", + "NUL ", + "NUL.", + "NUL .", + "NUL.txt", + "NUL.tar.gz", + "NUL..txt", + "NUL...txt", + "NUL .txt", + "NUL .txt", + "NUL ..txt", +#ifndef OS_MAC + "Nul.txt", +#endif + "nul.very long extension", + "a/NUL", + "CON", + "PRN", + "AUX", + "COM1", + "COM2", + "COM3", + "COM4", + "COM5", + "COM6", + "COM7", + "COM8", + "COM9", + "LPT1", + "LPT2", + "LPT3", + "LPT4", + "LPT5", + "LPT6", + "LPT7", + "LPT8", + "LPT9", +#endif + }; + + const std::vector got_paths = + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES); + + for (const std::string& path : got_paths) { + const bool ok = want_paths.erase(path); + +#ifdef OS_WIN + if (!ok) { + // See crbug.com/1313991: Different versions of Windows treat these + // filenames differently. No hard error here if there is an unexpected + // file. + LOG(WARNING) << "Found unexpected file: " << std::quoted(path); + continue; + } +#else + EXPECT_TRUE(ok) << "Found unexpected file: " << std::quoted(path); +#endif + + std::string contents; + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII(path), &contents)); + EXPECT_EQ(base::StrCat({"This is: ", path}), contents); + } + + for (const std::string& path : want_paths) { + EXPECT_TRUE(false) << "Cannot find expected file: " << std::quoted(path); + } +} + +TEST_F(ZipTest, UnzipDifferentCases) { +#if defined(OS_WIN) || defined(OS_MAC) + // Only the first file (with mixed case) is extracted. + EXPECT_FALSE(zip::Unzip(GetDataDirectory().AppendASCII( + "Repeated File Name With Different Cases.zip"), + test_dir_)); + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("Case")); + + std::string contents; + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("Case"), &contents)); + EXPECT_EQ("Mixed case 111", contents); +#else + // All the files are extracted. + EXPECT_TRUE(zip::Unzip(GetDataDirectory().AppendASCII( + "Repeated File Name With Different Cases.zip"), + test_dir_)); + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("Case", "case", "CASE")); + + std::string contents; + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("Case"), &contents)); + EXPECT_EQ("Mixed case 111", contents); + + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("case"), &contents)); + EXPECT_EQ("Lower case 22", contents); + + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("CASE"), &contents)); + EXPECT_EQ("Upper case 3", contents); +#endif +} + +TEST_F(ZipTest, UnzipDifferentCasesContinueOnError) { + EXPECT_TRUE(zip::Unzip(GetDataDirectory().AppendASCII( + "Repeated File Name With Different Cases.zip"), + test_dir_, {.continue_on_error = true})); + + std::string contents; + +#if defined(OS_WIN) || defined(OS_MAC) + // Only the first file (with mixed case) has been extracted. + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("Case")); + + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("Case"), &contents)); + EXPECT_EQ("Mixed case 111", contents); +#else + // All the files have been extracted. + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES), + UnorderedElementsAre("Case", "case", "CASE")); + + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("Case"), &contents)); + EXPECT_EQ("Mixed case 111", contents); + + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("case"), &contents)); + EXPECT_EQ("Lower case 22", contents); + + EXPECT_TRUE(base::ReadFileToString(test_dir_.AppendASCII("CASE"), &contents)); + EXPECT_EQ("Upper case 3", contents); +#endif +} + +TEST_F(ZipTest, UnzipMixedPaths) { + EXPECT_TRUE(zip::Unzip(GetDataDirectory().AppendASCII("Mixed Paths.zip"), + test_dir_, {.continue_on_error = true})); + + std::unordered_set want_paths = { +#ifdef OS_WIN + "Dot", // + "Space→", // +#else + " ", // + "AUX", // Disappears on Windows + "COM1", // Disappears on Windows + "COM2", // Disappears on Windows + "COM3", // Disappears on Windows + "COM4", // Disappears on Windows + "COM5", // Disappears on Windows + "COM6", // Disappears on Windows + "COM7", // Disappears on Windows + "COM8", // Disappears on Windows + "COM9", // Disappears on Windows + "CON", // Disappears on Windows + "Dot .", // + "LPT1", // Disappears on Windows + "LPT2", // Disappears on Windows + "LPT3", // Disappears on Windows + "LPT4", // Disappears on Windows + "LPT5", // Disappears on Windows + "LPT6", // Disappears on Windows + "LPT7", // Disappears on Windows + "LPT8", // Disappears on Windows + "LPT9", // Disappears on Windows + "NUL ..txt", // Disappears on Windows + "NUL .txt", // Disappears on Windows + "NUL ", // Disappears on Windows + "NUL .", // Disappears on Windows + "NUL .txt", // Disappears on Windows + "NUL", // Disappears on Windows + "NUL.", // Disappears on Windows + "NUL...txt", // Disappears on Windows + "NUL..txt", // Disappears on Windows + "NUL.tar.gz", // Disappears on Windows + "NUL.txt", // Disappears on Windows + "PRN", // Disappears on Windows + "Space→ ", // + "c/NUL", // Disappears on Windows + "nul.very long extension", // Disappears on Windows +#ifndef OS_MAC + "CASE", // Conflicts with "Case" + "case", // Conflicts with "Case" +#endif +#endif + " NUL.txt", // + " ←Space", // + "$HOME", // + "%TMP", // + "-", // + "...Three", // + "..Two", // + ".One", // + "Ampersand &", // + "Angle ��", // + "At @", // + "Backslash1→�", // + "Backslash3→�←Backslash4", // + "Backspace �", // + "Backtick `", // + "Bell �", // + "CLOCK$", // + "Caret ^", // + "Carriage Return �", // + "Case", // + "Colon �", // + "Comma ,", // + "Curly {}", // + "C�", // + "C��", // + "C��Temp", // + "C��Temp�", // + "C��Temp�File", // + "Dash -", // + "Delete \x7F", // + "Dollar $", // + "Double quote �", // + "Equal =", // + "Escape �", // + "Euro €", // + "Exclamation !", // + "FileOrDir", // + "First", // + "Hash #", // + "Last", // + "Line Feed �", // + "Percent %", // + "Pipe �", // + "Plus +", // + "Question �", // + "Quote '", // + "ROOT/At The Top", // + "ROOT/UP/Over The Top", // + "ROOT/dev/null", // + "Round ()", // + "Semicolon ;", // + "Smile \U0001F642", // + "Square []", // + "Star �", // + "String Terminator \u009C", // + "Tab �", // + "Tilde ~", // + "UP/One Level Up", // + "UP/UP/Two Levels Up", // + "Underscore _", // + "a/DOT/b", // + "a/UP/b", // + "u/v/w/x/y/z", // + "~", // + "�←Backslash2", // + "��server�share�file", // + }; + + const std::vector got_paths = + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::FILES); + + for (const std::string& path : got_paths) { + const bool ok = want_paths.erase(path); +#ifdef OS_WIN + // See crbug.com/1313991: Different versions of Windows treat reserved + // Windows filenames differently. No hard error here if there is an + // unexpected file. + LOG_IF(WARNING, !ok) << "Found unexpected file: " << std::quoted(path); +#else + EXPECT_TRUE(ok) << "Found unexpected file: " << std::quoted(path); +#endif + } + + for (const std::string& path : want_paths) { + EXPECT_TRUE(false) << "Cannot find expected file: " << std::quoted(path); + } + + EXPECT_THAT( + GetRelativePaths(test_dir_, base::FileEnumerator::FileType::DIRECTORIES), + UnorderedElementsAreArray({ + "Empty", + "ROOT", + "ROOT/Empty", + "ROOT/UP", + "ROOT/dev", + "UP", + "UP/UP", + "a", + "a/DOT", + "a/UP", + "c", + "u", + "u/v", + "u/v/w", + "u/v/w/x", + "u/v/w/x/y", + })); } TEST_F(ZipTest, UnzipWithDelegates) { - auto filter = - base::BindRepeating([](const base::FilePath& path) { return true; }); - auto dir_creator = base::BindRepeating( - [](const base::FilePath& extract_dir, const base::FilePath& entry_path) { - return base::CreateDirectory(extract_dir.Append(entry_path)); - }, - test_dir_); - auto writer = base::BindRepeating( - [](const base::FilePath& extract_dir, const base::FilePath& entry_path) - -> std::unique_ptr { + auto dir_creator = + base::BindLambdaForTesting([this](const base::FilePath& entry_path) { + return base::CreateDirectory(test_dir_.Append(entry_path)); + }); + auto writer = + base::BindLambdaForTesting([this](const base::FilePath& entry_path) + -> std::unique_ptr { return std::make_unique( - extract_dir.Append(entry_path)); - }, - test_dir_); - base::FilePath path; - ASSERT_TRUE(GetTestDataDirectory(&path)); - base::File file(path.AppendASCII("test.zip"), + test_dir_.Append(entry_path)); + }); + + base::File file(GetDataDirectory().AppendASCII("test.zip"), base::File::Flags::FLAG_OPEN | base::File::Flags::FLAG_READ); - ASSERT_TRUE(zip::UnzipWithFilterAndWriters(file.GetPlatformFile(), writer, - dir_creator, filter, false)); + EXPECT_TRUE(zip::Unzip(file.GetPlatformFile(), writer, dir_creator)); base::FilePath dir = test_dir_; base::FilePath dir_foo = dir.AppendASCII("foo"); base::FilePath dir_foo_bar = dir_foo.AppendASCII("bar"); - ASSERT_TRUE(base::PathExists(dir.AppendASCII("foo.txt"))); - ASSERT_TRUE(base::PathExists(dir_foo)); - ASSERT_TRUE(base::PathExists(dir_foo.AppendASCII("bar.txt"))); - ASSERT_TRUE(base::PathExists(dir_foo_bar)); - ASSERT_TRUE(base::PathExists(dir_foo_bar.AppendASCII(".hidden"))); - ASSERT_TRUE(base::PathExists(dir_foo_bar.AppendASCII("baz.txt"))); - ASSERT_TRUE(base::PathExists(dir_foo_bar.AppendASCII("quux.txt"))); + EXPECT_TRUE(base::PathExists(dir.AppendASCII("foo.txt"))); + EXPECT_TRUE(base::DirectoryExists(dir_foo)); + EXPECT_TRUE(base::PathExists(dir_foo.AppendASCII("bar.txt"))); + EXPECT_TRUE(base::DirectoryExists(dir_foo_bar)); + EXPECT_TRUE(base::PathExists(dir_foo_bar.AppendASCII(".hidden"))); + EXPECT_TRUE(base::PathExists(dir_foo_bar.AppendASCII("baz.txt"))); + EXPECT_TRUE(base::PathExists(dir_foo_bar.AppendASCII("quux.txt"))); +} + +TEST_F(ZipTest, UnzipOnlyDirectories) { + auto dir_creator = + base::BindLambdaForTesting([this](const base::FilePath& entry_path) { + return base::CreateDirectory(test_dir_.Append(entry_path)); + }); + + // Always return a null WriterDelegate. + auto writer = + base::BindLambdaForTesting([](const base::FilePath& entry_path) { + return std::unique_ptr(); + }); + + base::File file(GetDataDirectory().AppendASCII("test.zip"), + base::File::Flags::FLAG_OPEN | base::File::Flags::FLAG_READ); + EXPECT_TRUE(zip::Unzip(file.GetPlatformFile(), writer, dir_creator, + {.continue_on_error = true})); + base::FilePath dir = test_dir_; + base::FilePath dir_foo = dir.AppendASCII("foo"); + base::FilePath dir_foo_bar = dir_foo.AppendASCII("bar"); + EXPECT_FALSE(base::PathExists(dir.AppendASCII("foo.txt"))); + EXPECT_TRUE(base::DirectoryExists(dir_foo)); + EXPECT_FALSE(base::PathExists(dir_foo.AppendASCII("bar.txt"))); + EXPECT_TRUE(base::DirectoryExists(dir_foo_bar)); + EXPECT_FALSE(base::PathExists(dir_foo_bar.AppendASCII(".hidden"))); + EXPECT_FALSE(base::PathExists(dir_foo_bar.AppendASCII("baz.txt"))); + EXPECT_FALSE(base::PathExists(dir_foo_bar.AppendASCII("quux.txt"))); +} + +// Tests that a ZIP archive containing SJIS-encoded file names can be correctly +// extracted if the encoding is specified. +TEST_F(ZipTest, UnzipSjis) { + ASSERT_TRUE(zip::Unzip(GetDataDirectory().AppendASCII("SJIS Bug 846195.zip"), + test_dir_, {.encoding = "Shift_JIS"})); + + const base::FilePath dir = + test_dir_.Append(base::FilePath::FromUTF8Unsafe("新しいフォルダ")); + EXPECT_TRUE(base::DirectoryExists(dir)); + + std::string contents; + ASSERT_TRUE(base::ReadFileToString( + dir.Append(base::FilePath::FromUTF8Unsafe("SJIS_835C_ソ.txt")), + &contents)); + EXPECT_EQ( + "This file's name contains 0x5c (backslash) as the 2nd byte of Japanese " + "characater \"\x83\x5c\" when encoded in Shift JIS.", + contents); + + ASSERT_TRUE(base::ReadFileToString(dir.Append(base::FilePath::FromUTF8Unsafe( + "新しいテキスト ドキュメント.txt")), + &contents)); + EXPECT_EQ("This file name is coded in Shift JIS in the archive.", contents); +} + +// Tests that a ZIP archive containing SJIS-encoded file names can be extracted +// even if the encoding is not specified. In this case, file names are +// interpreted as UTF-8, which leads to garbled names where invalid UTF-8 +// sequences are replaced with the character �. Nevertheless, the files are +// safely extracted and readable. +TEST_F(ZipTest, UnzipSjisAsUtf8) { + ASSERT_TRUE(zip::Unzip(GetDataDirectory().AppendASCII("SJIS Bug 846195.zip"), + test_dir_)); + + EXPECT_FALSE(base::DirectoryExists( + test_dir_.Append(base::FilePath::FromUTF8Unsafe("新しいフォルダ")))); + + const base::FilePath dir = + test_dir_.Append(base::FilePath::FromUTF8Unsafe("�V�����t�H���_")); + EXPECT_TRUE(base::DirectoryExists(dir)); + + std::string contents; + ASSERT_TRUE(base::ReadFileToString( + dir.Append(base::FilePath::FromUTF8Unsafe("SJIS_835C_��.txt")), + &contents)); + EXPECT_EQ( + "This file's name contains 0x5c (backslash) as the 2nd byte of Japanese " + "characater \"\x83\x5c\" when encoded in Shift JIS.", + contents); + + ASSERT_TRUE(base::ReadFileToString(dir.Append(base::FilePath::FromUTF8Unsafe( + "�V�����e�L�X�g �h�L�������g.txt")), + &contents)); + EXPECT_EQ("This file name is coded in Shift JIS in the archive.", contents); } TEST_F(ZipTest, Zip) { - base::FilePath src_dir; - ASSERT_TRUE(GetTestDataDirectory(&src_dir)); - src_dir = src_dir.AppendASCII("test"); + base::FilePath src_dir = GetDataDirectory().AppendASCII("test"); base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -441,9 +1019,7 @@ TEST_F(ZipTest, Zip) { } TEST_F(ZipTest, ZipIgnoreHidden) { - base::FilePath src_dir; - ASSERT_TRUE(GetTestDataDirectory(&src_dir)); - src_dir = src_dir.AppendASCII("test"); + base::FilePath src_dir = GetDataDirectory().AppendASCII("test"); base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -454,9 +1030,7 @@ TEST_F(ZipTest, ZipIgnoreHidden) { } TEST_F(ZipTest, ZipNonASCIIDir) { - base::FilePath src_dir; - ASSERT_TRUE(GetTestDataDirectory(&src_dir)); - src_dir = src_dir.AppendASCII("test"); + base::FilePath src_dir = GetDataDirectory().AppendASCII("test"); base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -492,11 +1066,9 @@ TEST_F(ZipTest, ZipTimeStamp) { TestTimeStamp("02 Jan 2038 23:59:58", VALID_YEAR); } -#if defined(OS_POSIX) +#if defined(OS_POSIX) || defined(OS_FUCHSIA) TEST_F(ZipTest, ZipFiles) { - base::FilePath src_dir; - ASSERT_TRUE(GetTestDataDirectory(&src_dir)); - src_dir = src_dir.AppendASCII("test"); + base::FilePath src_dir = GetDataDirectory().AppendASCII("test"); base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -513,25 +1085,20 @@ TEST_F(ZipTest, ZipFiles) { EXPECT_TRUE(reader.Open(zip_name)); EXPECT_EQ(zip_file_list_.size(), static_cast(reader.num_entries())); for (size_t i = 0; i < zip_file_list_.size(); ++i) { - EXPECT_TRUE(reader.HasMore()); - EXPECT_TRUE(reader.OpenCurrentEntryInZip()); - const zip::ZipReader::EntryInfo* entry_info = reader.current_entry_info(); - EXPECT_EQ(entry_info->file_path(), zip_file_list_[i]); - reader.AdvanceToNextEntry(); + const zip::ZipReader::Entry* const entry = reader.Next(); + ASSERT_TRUE(entry); + EXPECT_EQ(entry->path, zip_file_list_[i]); } } -#endif // defined(OS_POSIX) +#endif // defined(OS_POSIX) || defined(OS_FUCHSIA) TEST_F(ZipTest, UnzipFilesWithIncorrectSize) { - base::FilePath test_data_folder; - ASSERT_TRUE(GetTestDataDirectory(&test_data_folder)); - // test_mismatch_size.zip contains files with names from 0.txt to 7.txt with // sizes from 0 to 7 bytes respectively, but the metadata in the zip file says // the uncompressed size is 3 bytes. The ZipReader and minizip code needs to // be clever enough to get all the data out. base::FilePath test_zip_file = - test_data_folder.AppendASCII("test_mismatch_size.zip"); + GetDataDirectory().AppendASCII("test_mismatch_size.zip"); base::ScopedTempDir scoped_temp_dir; ASSERT_TRUE(scoped_temp_dir.CreateUniqueTempDir()); @@ -578,9 +1145,7 @@ TEST_F(ZipTest, ZipWithFileAccessor) { // Tests progress reporting while zipping files. TEST_F(ZipTest, ZipProgress) { - base::FilePath src_dir; - ASSERT_TRUE(GetTestDataDirectory(&src_dir)); - src_dir = src_dir.AppendASCII("test"); + base::FilePath src_dir = GetDataDirectory().AppendASCII("test"); base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -617,9 +1182,7 @@ TEST_F(ZipTest, ZipProgress) { // Tests throttling of progress reporting while zipping files. TEST_F(ZipTest, ZipProgressPeriod) { - base::FilePath src_dir; - ASSERT_TRUE(GetTestDataDirectory(&src_dir)); - src_dir = src_dir.AppendASCII("test"); + base::FilePath src_dir = GetDataDirectory().AppendASCII("test"); base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -658,9 +1221,7 @@ TEST_F(ZipTest, ZipProgressPeriod) { // Tests cancellation while zipping files. TEST_F(ZipTest, ZipCancel) { - base::FilePath src_dir; - ASSERT_TRUE(GetTestDataDirectory(&src_dir)); - src_dir = src_dir.AppendASCII("test"); + base::FilePath src_dir = GetDataDirectory().AppendASCII("test"); base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -783,8 +1344,28 @@ TEST_F(ZipTest, NestedZip) { // Tests that there is no 2GB or 4GB limits. Tests that big files can be zipped // (crbug.com/1207737) and that big ZIP files can be created -// (crbug.com/1221447). +// (crbug.com/1221447). Tests that the big ZIP can be opened, that its entries +// are correctly enumerated (crbug.com/1298347), and that the big file can be +// extracted. +// +// Because this test is dealing with big files, it tends to take a lot of disk +// space and time (crbug.com/1299736). Therefore, it only gets run on a few bots +// (ChromeOS and Windows). +// +// This test is too slow with TSAN. +// OS Fuchsia does not seem to support large files. +// Some 32-bit Android waterfall and CQ try bots are running out of space when +// performing this test (android-asan, android-11-x86-rel, +// android-marshmallow-x86-rel-non-cq). +// Some Mac, Linux and Debug (dbg) bots tend to time out when performing this +// test (crbug.com/1299736, crbug.com/1300448). +#if defined(THREAD_SANITIZER) || BUILDFLAG(IS_FUCHSIA) || \ + BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_CHROMEOS_LACROS) || !defined(NDEBUG) TEST_F(ZipTest, DISABLED_BigFile) { +#else +TEST_F(ZipTest, BigFile) { +#endif base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -795,15 +1376,26 @@ TEST_F(ZipTest, DISABLED_BigFile) { // purpose of this test, it doesn't really matter. const int64_t src_size = 5'000'000'000; + const base::FilePath src_file = src_dir.AppendASCII("src.zip"); + LOG(INFO) << "Creating big file " << src_file; { - base::File f(src_dir.AppendASCII("src.zip"), - base::File::FLAG_CREATE | base::File::FLAG_WRITE); + base::File f(src_file, base::File::FLAG_CREATE | base::File::FLAG_WRITE); ASSERT_TRUE(f.SetLength(src_size)); } // Zip the dummy ZIP file. const base::FilePath dest_file = temp_dir.GetPath().AppendASCII("dest.zip"); - EXPECT_TRUE(zip::Zip({.src_dir = src_dir, .dest_file = dest_file})); + LOG(INFO) << "Zipping big file into " << dest_file; + zip::ProgressCallback progress_callback = + base::BindLambdaForTesting([&](const zip::Progress& progress) { + LOG(INFO) << "Zipping... " << std::setw(3) + << (100 * progress.bytes / src_size) << "%"; + return true; + }); + EXPECT_TRUE(zip::Zip({.src_dir = src_dir, + .dest_file = dest_file, + .progress_callback = std::move(progress_callback), + .progress_period = base::Seconds(1)})); // Since the dummy source (inner) ZIP file should simply be stored in the // destination (outer) ZIP file, the destination file should be bigger than @@ -812,6 +1404,25 @@ TEST_F(ZipTest, DISABLED_BigFile) { ASSERT_TRUE(base::GetFileSize(dest_file, &dest_file_size)); EXPECT_GT(dest_file_size, src_size + 100); EXPECT_LT(dest_file_size, src_size + 300); + + LOG(INFO) << "Reading big ZIP " << dest_file; + zip::ZipReader reader; + ASSERT_TRUE(reader.Open(dest_file)); + + const zip::ZipReader::Entry* const entry = reader.Next(); + ASSERT_TRUE(entry); + EXPECT_EQ(FP("src.zip"), entry->path); + EXPECT_EQ(src_size, entry->original_size); + EXPECT_FALSE(entry->is_directory); + EXPECT_FALSE(entry->is_encrypted); + + ProgressWriterDelegate writer(src_size); + EXPECT_TRUE(reader.ExtractCurrentEntry(&writer, + std::numeric_limits::max())); + EXPECT_EQ(src_size, writer.received_bytes()); + + EXPECT_FALSE(reader.Next()); + EXPECT_TRUE(reader.ok()); } } // namespace diff --git a/deps/v8/third_party/zlib/google/zip_writer.cc b/deps/v8/third_party/zlib/google/zip_writer.cc index 201f1997b5b4fe..e3f677fe328082 100644 --- a/deps/v8/third_party/zlib/google/zip_writer.cc +++ b/deps/v8/third_party/zlib/google/zip_writer.cc @@ -10,23 +10,12 @@ #include "base/logging.h" #include "base/strings/strcat.h" #include "base/strings/string_util.h" +#include "third_party/zlib/google/redact.h" #include "third_party/zlib/google/zip_internal.h" namespace zip { namespace internal { -class Redact { - public: - explicit Redact(const base::FilePath& path) : path_(path) {} - - friend std::ostream& operator<<(std::ostream& out, const Redact&& r) { - return LOG_IS_ON(INFO) ? out << "'" << r.path_ << "'" : out << "(redacted)"; - } - - private: - const base::FilePath& path_; -}; - bool ZipWriter::ShouldContinue() { if (!progress_callback_) return true; @@ -134,7 +123,7 @@ bool ZipWriter::AddDirectoryEntry(const base::FilePath& path) { return AddDirectoryContents(path); } -#if defined(OS_POSIX) +#if defined(OS_POSIX) || defined(OS_FUCHSIA) // static std::unique_ptr ZipWriter::CreateWithFd( int zip_file_fd, diff --git a/deps/v8/third_party/zlib/google/zip_writer.h b/deps/v8/third_party/zlib/google/zip_writer.h index fcc96275004af6..aa3c965d911599 100644 --- a/deps/v8/third_party/zlib/google/zip_writer.h +++ b/deps/v8/third_party/zlib/google/zip_writer.h @@ -36,7 +36,7 @@ class ZipWriter { // Creates a writer that will write a ZIP file to |zip_file_fd| or |zip_file| // and which entries are relative to |file_accessor|'s source directory. // All file reads are performed using |file_accessor|. -#if defined(OS_POSIX) +#if defined(OS_POSIX) || defined(OS_FUCHSIA) static std::unique_ptr CreateWithFd(int zip_file_fd, FileAccessor* file_accessor); #endif diff --git a/deps/v8/third_party/zlib/gzguts.h b/deps/v8/third_party/zlib/gzguts.h index 990a4d25149337..6378d468a258b1 100644 --- a/deps/v8/third_party/zlib/gzguts.h +++ b/deps/v8/third_party/zlib/gzguts.h @@ -39,7 +39,7 @@ # include #endif -#if defined(_WIN32) || defined(__CYGWIN__) +#if defined(_WIN32) # define WIDECHAR #endif diff --git a/deps/v8/third_party/zlib/gzlib.c b/deps/v8/third_party/zlib/gzlib.c index 4105e6aff92594..4838bf04745beb 100644 --- a/deps/v8/third_party/zlib/gzlib.c +++ b/deps/v8/third_party/zlib/gzlib.c @@ -5,7 +5,7 @@ #include "gzguts.h" -#if defined(_WIN32) && !defined(__BORLANDC__) && !defined(__MINGW32__) +#if defined(_WIN32) && !defined(__BORLANDC__) # define LSEEK _lseeki64 #else #if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 @@ -397,7 +397,7 @@ z_off64_t ZEXPORT gzseek64(file, offset, whence) /* if within raw area while reading, just go there */ if (state->mode == GZ_READ && state->how == COPY && state->x.pos + offset >= 0) { - ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR); + ret = LSEEK(state->fd, offset - (z_off64_t)state->x.have, SEEK_CUR); if (ret == -1) return -1; state->x.have = 0; diff --git a/deps/v8/third_party/zlib/gzread.c b/deps/v8/third_party/zlib/gzread.c index 832d3ef98c5948..85776cd25769dc 100644 --- a/deps/v8/third_party/zlib/gzread.c +++ b/deps/v8/third_party/zlib/gzread.c @@ -314,9 +314,9 @@ local z_size_t gz_read(state, buf, len) got = 0; do { /* set n to the maximum amount of len that fits in an unsigned int */ - n = -1; + n = (unsigned)-1; if (n > len) - n = len; + n = (unsigned)len; /* first just try copying data from the output buffer */ if (state->x.have) { @@ -397,7 +397,7 @@ int ZEXPORT gzread(file, buf, len) } /* read len or fewer bytes to buf */ - len = gz_read(state, buf, len); + len = (unsigned)gz_read(state, buf, len); /* check for an error */ if (len == 0 && state->err != Z_OK && state->err != Z_BUF_ERROR) @@ -451,7 +451,6 @@ z_size_t ZEXPORT gzfread(buf, size, nitems, file) int ZEXPORT gzgetc(file) gzFile file; { - int ret; unsigned char buf[1]; gz_statep state; @@ -473,8 +472,7 @@ int ZEXPORT gzgetc(file) } /* nothing there -- try gz_read() */ - ret = gz_read(state, buf, 1); - return ret < 1 ? -1 : buf[0]; + return gz_read(state, buf, 1) < 1 ? -1 : buf[0]; } int ZEXPORT gzgetc_(file) diff --git a/deps/v8/third_party/zlib/gzwrite.c b/deps/v8/third_party/zlib/gzwrite.c index c7b5651d70b994..52381332edd157 100644 --- a/deps/v8/third_party/zlib/gzwrite.c +++ b/deps/v8/third_party/zlib/gzwrite.c @@ -209,7 +209,7 @@ local z_size_t gz_write(state, buf, len) state->in); copy = state->size - have; if (copy > len) - copy = len; + copy = (unsigned)len; memcpy(state->in + have, buf, copy); state->strm.avail_in += copy; state->x.pos += copy; @@ -229,7 +229,7 @@ local z_size_t gz_write(state, buf, len) do { unsigned n = (unsigned)-1; if (n > len) - n = len; + n = (unsigned)len; state->strm.avail_in = n; state->x.pos += n; if (gz_comp(state, Z_NO_FLUSH) == -1) @@ -349,12 +349,11 @@ int ZEXPORT gzputc(file, c) } /* -- see zlib.h -- */ -int ZEXPORT gzputs(file, str) +int ZEXPORT gzputs(file, s) gzFile file; - const char *str; + const char *s; { - int ret; - z_size_t len; + z_size_t len, put; gz_statep state; /* get internal structure */ @@ -367,9 +366,13 @@ int ZEXPORT gzputs(file, str) return -1; /* write string */ - len = strlen(str); - ret = gz_write(state, str, len); - return ret == 0 && len != 0 ? -1 : ret; + len = strlen(s); + if ((int)len < 0 || (unsigned)len != len) { + gz_error(state, Z_STREAM_ERROR, "string length does not fit in int"); + return -1; + } + put = gz_write(state, s, len); + return put < len ? -1 : (int)len; } #if defined(STDC) || defined(Z_HAVE_STDARG_H) @@ -441,7 +444,7 @@ int ZEXPORTVA gzvprintf(gzFile file, const char *format, va_list va) strm->avail_in = state->size; if (gz_comp(state, Z_NO_FLUSH) == -1) return state->err; - memcpy(state->in, state->in + state->size, left); + memmove(state->in, state->in + state->size, left); strm->next_in = state->in; strm->avail_in = left; } @@ -540,7 +543,7 @@ int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, strm->avail_in = state->size; if (gz_comp(state, Z_NO_FLUSH) == -1) return state->err; - memcpy(state->in, state->in + state->size, left); + memmove(state->in, state->in + state->size, left); strm->next_in = state->in; strm->avail_in = left; } diff --git a/deps/v8/third_party/zlib/inffast.c b/deps/v8/third_party/zlib/inffast.c index 2797e8a03c5151..d89ad5ccdee0e2 100644 --- a/deps/v8/third_party/zlib/inffast.c +++ b/deps/v8/third_party/zlib/inffast.c @@ -74,7 +74,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ code const FAR *dcode; /* local strm->distcode */ unsigned lmask; /* mask for first level of length codes */ unsigned dmask; /* mask for first level of distance codes */ - code here; /* retrieved table entry */ + code const *here; /* retrieved table entry */ unsigned op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ unsigned len; /* match length, unused bytes */ @@ -111,20 +111,20 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ hold += (unsigned long)(*in++) << bits; bits += 8; } - here = lcode[hold & lmask]; + here = lcode + (hold & lmask); dolen: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op == 0) { /* literal */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + Tracevv((stderr, here->val >= 0x20 && here->val < 0x7f ? "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - *out++ = (unsigned char)(here.val); + "inflate: literal 0x%02x\n", here->val)); + *out++ = (unsigned char)(here->val); } else if (op & 16) { /* length base */ - len = (unsigned)(here.val); + len = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (op) { if (bits < op) { @@ -142,14 +142,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ hold += (unsigned long)(*in++) << bits; bits += 8; } - here = dcode[hold & dmask]; + here = dcode + (hold & dmask); dodist: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op & 16) { /* distance base */ - dist = (unsigned)(here.val); + dist = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (bits < op) { hold += (unsigned long)(*in++) << bits; @@ -268,7 +268,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } } else if ((op & 64) == 0) { /* 2nd level distance code */ - here = dcode[here.val + (hold & ((1U << op) - 1))]; + here = dcode + here->val + (hold & ((1U << op) - 1)); goto dodist; } else { @@ -278,7 +278,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } } else if ((op & 64) == 0) { /* 2nd level length code */ - here = lcode[here.val + (hold & ((1U << op) - 1))]; + here = lcode + here->val + (hold & ((1U << op) - 1)); goto dolen; } else if (op & 32) { /* end-of-block */ diff --git a/deps/v8/third_party/zlib/inflate.c b/deps/v8/third_party/zlib/inflate.c index 68902e81bd4be9..7543c33def95c8 100644 --- a/deps/v8/third_party/zlib/inflate.c +++ b/deps/v8/third_party/zlib/inflate.c @@ -130,6 +130,7 @@ z_streamp strm; state->mode = HEAD; state->last = 0; state->havedict = 0; + state->flags = -1; state->dmax = 32768U; state->head = Z_NULL; state->hold = 0; @@ -671,7 +672,6 @@ int flush; state->mode = FLAGS; break; } - state->flags = 0; /* expect zlib header */ if (state->head != Z_NULL) state->head->done = -1; if (!(state->wrap & 1) || /* check if zlib header allowed */ @@ -698,6 +698,7 @@ int flush; break; } state->dmax = 1U << len; + state->flags = 0; /* indicate zlib header */ Tracev((stderr, "inflate: zlib header ok\n")); strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = hold & 0x200 ? DICTID : TYPE; @@ -1223,7 +1224,7 @@ int flush; case LENGTH: if (state->wrap && state->flags) { NEEDBITS(32); - if (hold != (state->total & 0xffffffffUL)) { + if ((state->wrap & 4) && hold != (state->total & 0xffffffff)) { strm->msg = (char *)"incorrect length check"; state->mode = BAD; break; @@ -1403,6 +1404,7 @@ int ZEXPORT inflateSync(strm) z_streamp strm; { unsigned len; /* number of bytes to look at or looked at */ + int flags; /* temporary to save header status */ unsigned long in, out; /* temporary to save total_in and total_out */ unsigned char buf[4]; /* to restore bit buffer to byte string */ struct inflate_state FAR *state; @@ -1435,9 +1437,15 @@ z_streamp strm; /* return no joy or set up to restart inflate() on a new block */ if (state->have != 4) return Z_DATA_ERROR; + if (state->flags == -1) + state->wrap = 0; /* if no header yet, treat as raw */ + else + state->wrap &= ~4; /* no point in computing a check value now */ + flags = state->flags; in = strm->total_in; out = strm->total_out; inflateReset(strm); strm->total_in = in; strm->total_out = out; + state->flags = flags; state->mode = TYPE; return Z_OK; } @@ -1533,7 +1541,7 @@ int check; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; - if (check) + if (check && state->wrap) state->wrap |= 4; else state->wrap &= ~4; diff --git a/deps/v8/third_party/zlib/inflate.h b/deps/v8/third_party/zlib/inflate.h index a46cce6b6d05ef..98679fa9bc245e 100644 --- a/deps/v8/third_party/zlib/inflate.h +++ b/deps/v8/third_party/zlib/inflate.h @@ -86,7 +86,8 @@ struct inflate_state { int wrap; /* bit 0 true for zlib, bit 1 true for gzip, bit 2 true to validate check value */ int havedict; /* true if dictionary provided */ - int flags; /* gzip header method and flags (0 if zlib) */ + int flags; /* gzip header method and flags, 0 if zlib, or + -1 if raw or no header yet */ unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ unsigned long check; /* protected copy of check value */ unsigned long total; /* protected copy of output count */ diff --git a/deps/v8/third_party/zlib/patches/0009-infcover-oob.patch b/deps/v8/third_party/zlib/patches/0009-infcover-oob.patch new file mode 100644 index 00000000000000..648360f332d49c --- /dev/null +++ b/deps/v8/third_party/zlib/patches/0009-infcover-oob.patch @@ -0,0 +1,24 @@ +From 75690b2683667be5535ac6243438115dc9c40f6a Mon Sep 17 00:00:00 2001 +From: Florian Mayer +Date: Wed, 16 Mar 2022 16:38:36 -0700 +Subject: [PATCH] Fix out of bounds in infcover.c. + +--- + test/infcover.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/test/infcover.c b/test/infcover.c +index 2be01646c..a6d83693c 100644 +--- a/test/infcover.c ++++ b/test/infcover.c +@@ -373,7 +373,9 @@ local void cover_support(void) + mem_setup(&strm); + strm.avail_in = 0; + strm.next_in = Z_NULL; +- ret = inflateInit_(&strm, ZLIB_VERSION - 1, (int)sizeof(z_stream)); ++ char versioncpy[] = ZLIB_VERSION; ++ versioncpy[0] -= 1; ++ ret = inflateInit_(&strm, versioncpy, (int)sizeof(z_stream)); + assert(ret == Z_VERSION_ERROR); + mem_done(&strm, "wrong version"); + diff --git a/deps/v8/third_party/zlib/trees.c b/deps/v8/third_party/zlib/trees.c index 5f89d056ef9692..decaeb7c3c7f0c 100644 --- a/deps/v8/third_party/zlib/trees.c +++ b/deps/v8/third_party/zlib/trees.c @@ -149,7 +149,7 @@ local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, local void compress_block OF((deflate_state *s, const ct_data *ltree, const ct_data *dtree)); local int detect_data_type OF((deflate_state *s)); -local unsigned bi_reverse OF((unsigned value, int length)); +local unsigned bi_reverse OF((unsigned code, int len)); local void bi_windup OF((deflate_state *s)); local void bi_flush OF((deflate_state *s)); @@ -870,7 +870,8 @@ void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last) bi_windup(s); /* align on byte boundary */ put_short(s, (ush)stored_len); put_short(s, (ush)~stored_len); - zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len); + if (stored_len) + zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len); s->pending += stored_len; #ifdef ZLIB_DEBUG s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; diff --git a/deps/v8/third_party/zlib/zlib.h b/deps/v8/third_party/zlib/zlib.h index 99fd467f6b1a54..589f865eeca7f7 100644 --- a/deps/v8/third_party/zlib/zlib.h +++ b/deps/v8/third_party/zlib/zlib.h @@ -543,8 +543,7 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, int strategy)); This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. + fields zalloc, zfree and opaque must be initialized before by the caller. The method parameter is the compression method. It must be Z_DEFLATED in this version of the library. @@ -712,11 +711,12 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, used to switch between compression and straight copy of the input data, or to switch to a different kind of input data requiring a different strategy. If the compression approach (which is a function of the level) or the - strategy is changed, and if any input has been consumed in a previous - deflate() call, then the input available so far is compressed with the old - level and strategy using deflate(strm, Z_BLOCK). There are three approaches - for the compression levels 0, 1..3, and 4..9 respectively. The new level - and strategy will take effect at the next call of deflate(). + strategy is changed, and if there have been any deflate() calls since the + state was initialized or reset, then the input available so far is + compressed with the old level and strategy using deflate(strm, Z_BLOCK). + There are three approaches for the compression levels 0, 1..3, and 4..9 + respectively. The new level and strategy will take effect at the next call + of deflate(). If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does not have enough output space to complete, then the parameter change will not @@ -865,9 +865,11 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, detection, or add 16 to decode only the gzip format (the zlib format will return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see - below), inflate() will not automatically decode concatenated gzip streams. - inflate() will return Z_STREAM_END at the end of the gzip stream. The state - would need to be reset to continue decoding a subsequent gzip stream. + below), inflate() will *not* automatically decode concatenated gzip members. + inflate() will return Z_STREAM_END at the end of the gzip member. The state + would need to be reset to continue decoding a subsequent gzip member. This + *must* be done if there is more data after a gzip member, in order for the + decompression to be compliant with the gzip standard (RFC 1952). inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the @@ -1739,7 +1741,7 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); if (crc != original_crc) error(); */ -ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, +ZEXTERN uLong ZEXPORT crc32_z OF((uLong crc, const Bytef *buf, z_size_t len)); /* Same as crc32(), but with a size_t length. @@ -1916,7 +1918,7 @@ ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) +#if defined(_WIN32) && !defined(Z_SOLO) ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, const char *mode)); #endif diff --git a/deps/v8/third_party/zlib/zutil.c b/deps/v8/third_party/zlib/zutil.c index a76c6b0c7e557f..dcab28a0d5177a 100644 --- a/deps/v8/third_party/zlib/zutil.c +++ b/deps/v8/third_party/zlib/zutil.c @@ -136,8 +136,8 @@ const char * ZEXPORT zError(err) return ERR_MSG(err); } -#if defined(_WIN32_WCE) - /* The Microsoft C Run-Time Library for Windows CE doesn't have +#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 + /* The older Microsoft C Run-Time Library for Windows CE doesn't have * errno. We define it as a global variable to simplify porting. * Its value is always 0 and should not be used. */ diff --git a/deps/v8/third_party/zlib/zutil.h b/deps/v8/third_party/zlib/zutil.h index 4425bcf75eb38c..ec1993f3f7044a 100644 --- a/deps/v8/third_party/zlib/zutil.h +++ b/deps/v8/third_party/zlib/zutil.h @@ -44,10 +44,6 @@ # endif #endif -#ifdef Z_SOLO - typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */ -#endif - #ifndef local # define local static #endif @@ -185,10 +181,6 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ #if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX # if defined(_WIN32_WCE) # define fdopen(fd,mode) NULL /* No fdopen() */ -# ifndef _PTRDIFF_T_DEFINED - typedef int ptrdiff_t; -# define _PTRDIFF_T_DEFINED -# endif # else # define fdopen(fd,type) _fdopen(fd,type) # endif diff --git a/deps/v8/tools/BUILD.gn b/deps/v8/tools/BUILD.gn index 2f8197dd3697a9..e168a05d4e4253 100644 --- a/deps/v8/tools/BUILD.gn +++ b/deps/v8/tools/BUILD.gn @@ -11,7 +11,7 @@ group("gn_all") { data_deps = [ ":v8_check_static_initializers", "debug_helper:v8_debug_helper", - "gcmole:v8_run_gcmole", + "gcmole:v8_gcmole_files", "jsfunfuzz:v8_jsfunfuzz", ] diff --git a/deps/v8/tools/PRESUBMIT.py b/deps/v8/tools/PRESUBMIT.py index c883782ecf2d27..ded0016793a405 100644 --- a/deps/v8/tools/PRESUBMIT.py +++ b/deps/v8/tools/PRESUBMIT.py @@ -2,7 +2,13 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +# This line is 'magic' in that git-cl looks for it to decide whether to +# use Python3 instead of Python2 when running the code in this file. +USE_PYTHON3 = True + + def CheckChangeOnCommit(input_api, output_api): tests = input_api.canned_checks.GetUnitTestsInDirectory( - input_api, output_api, 'unittests', files_to_check=[r'.+_test\.py$']) + input_api, output_api, 'unittests', files_to_check=[r'.+_test\.py$'], + run_on_python2=False) return input_api.RunTests(tests) diff --git a/deps/v8/tools/callstats-from-telemetry.sh b/deps/v8/tools/callstats-from-telemetry.sh index cea471cde82316..3572b7e6ba8bc8 100755 --- a/deps/v8/tools/callstats-from-telemetry.sh +++ b/deps/v8/tools/callstats-from-telemetry.sh @@ -46,7 +46,7 @@ fi OUT=out.json if [[ -e $OUT ]]; then echo "# Creating backup for $OUT" - cp --backup=numbered $OUT $OUT.bak + cp $OUT $OUT.bak fi echo "# Writing to $OUT" @@ -54,11 +54,14 @@ echo "# Writing to $OUT" function convert { NAME=$1 JSON=$2 - du -sh $JSON; - echo "Converting NAME=$NAME"; - echo "," >> $OUT; - echo "\"$NAME\": " >> $OUT; - jq '[.traceEvents[].args | select(."runtime-call-stats" != null) | ."runtime-call-stats"]' $JSON >> $OUT; + # Check if any json file exists: + if ls $JSON 1> /dev/null 2>&1; then + du -sh $JSON; + echo "Converting NAME=$NAME"; + echo "," >> $OUT; + echo "\"$NAME\": " >> $OUT; + jq '[.traceEvents[].args | select(."runtime-call-stats" != null) | ."runtime-call-stats"]' $JSON >> $OUT; + fi } diff --git a/deps/v8/tools/callstats.html b/deps/v8/tools/callstats.html index d00f48d8b556b3..2a797680bcbdeb 100644 --- a/deps/v8/tools/callstats.html +++ b/deps/v8/tools/callstats.html @@ -1543,23 +1543,27 @@ // Instead of the default multi-page JSON: // {"Version 1": { "Page 1": ..., ...}, "Version 2": {...}, ...} // In this case insert a single "Default" version as top-level entry. - let firstProperty = (object) => { + const firstProperty = (object) => { for (let key in object) return object[key]; }; - let maybePage = firstProperty(json); - let maybeMetrics = firstProperty(maybePage); - let tempName = name ? name : new Date().toISOString(); - tempName = window.prompt('Enter a name for the loaded file:', tempName); - if ('count' in maybeMetrics && 'duration' in maybeMetrics) { + const maybeMetrics = firstProperty(json); + const maybeMetric = firstProperty(maybeMetrics); + const tempName = name ? name : new Date().toISOString(); + const getFileName = + () => window.prompt('Enter a name for the loaded file:', tempName); + if ('count' in maybeMetric && 'duration' in maybeMetric) { return { - [tempName]: json + [getFileName()]: json } } // Legacy fallback where the metrics are encoded as arrays: // { PAGE: [[metric_name, ...], [...], ]} - if (Array.isArray(maybeMetrics)) { + // Also, make sure we don't have the versioned array-style: + // { VERSION: { PAGE: [[metric_name, ...], [...], ]}, ...} + const innerArray = firstProperty(maybeMetrics); + if (Array.isArray(maybeMetric) && !Array.isArray(innerArray)) { return { - [tempName]: json + [getFileName()]: json } } return json @@ -2705,4 +2709,4 @@

    Aggregated raw txt output

    - \ No newline at end of file + diff --git a/deps/v8/tools/callstats.py b/deps/v8/tools/callstats.py index f756757a9a60c6..1b76d0c166b6bb 100755 --- a/deps/v8/tools/callstats.py +++ b/deps/v8/tools/callstats.py @@ -74,7 +74,7 @@ def start_replay_server(args, sites, discard_output=True): with open(os.devnull, 'w') as null: server = subprocess.Popen(cmd_args, stdout=null, stderr=null) else: - server = subprocess.Popen(cmd_args) + server = subprocess.Popen(cmd_args) print("RUNNING REPLAY SERVER: %s with PID=%s" % (args.replay_bin, server.pid)) print("=" * 80) return {'process': server, 'injection': injection} @@ -320,7 +320,7 @@ def do_run_replay_server(args): try: replay_server['process'].wait() finally: - stop_replay_server(replay_server) + stop_replay_server(replay_server) # Calculate statistics. @@ -493,12 +493,18 @@ def stats(s, units=""): print_entry("Total", S["Total"]) +def extract_domain(filename): + # Extract domain name: domain#123.txt or domain_123.txt + match = re.match(r'^(.*?)[^a-zA-Z]?[0-9]+?.txt', filename) + domain = match.group(1) + return domain + + def do_stats(args): domains = {} for path in args.logfiles: filename = os.path.basename(path) - m = re.match(r'^([^#]+)(#.*)?$', filename) - domain = m.group(1) + domain = extract_domain(filename) if domain not in domains: domains[domain] = {} read_stats(path, domains[domain], args) if args.aggregate: @@ -558,8 +564,7 @@ def _read_logs(args): if version not in versions: versions[version] = {} for filename in files: if filename.endswith(".txt"): - m = re.match(r'^([^#]+)(#.*)?\.txt$', filename) - domain = m.group(1) + domain = extract_domain(filename) if domain not in versions[version]: versions[version][domain] = {} read_stats(os.path.join(root, filename), versions[version][domain], args) diff --git a/deps/v8/tools/chrome/linux-perf-renderer-cmd.sh b/deps/v8/tools/chrome/linux-perf-renderer-cmd.sh new file mode 100755 index 00000000000000..4fe4e516bd2991 --- /dev/null +++ b/deps/v8/tools/chrome/linux-perf-renderer-cmd.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +PERF_DATA_DIR="." +PERF_DATA_PREFIX="chrome_renderer" +RENDERER_ID="0" +for i in "$@"; do + case $i in + --help) + echo "Usage: path/to/chrome --renderer-cmd-prefix='$0 [OPTION]' [CHROME OPTIONS]" + echo "This script is mostly used in conjuction with linux_perf.py to run linux-perf" + echo "for each renderer process." + echo "It generates perf.data files that can be read by pprof or linux-perf." + echo "" + echo 'File naming: ${OUT_DIR}/${PREFIX}_${PARENT_PID}_${RENDERER_ID}.perf.data' + echo "" + echo "Options:" + echo " --perf-data-dir=OUT_DIR Change the location where perf.data is written." + echo " Default: '$PERF_DATA_DIR'" + echo " --perf-data-prefix=PREFIX Set a custom prefex for all generated perf.data files." + echo " Default: '$PERF_DATA_PREFIX'" + exit + ;; + --perf-data-dir=*) + PERF_DATA_DIR="${i#*=}" + shift + ;; + --perf-data-prefix=*) + PERF_DATA_PREFIX="${i#*=}" + shift + ;; + --renderer-client-id=*) + # Don't shift this option since it is passed in (and used by) chrome. + RENDERER_ID="${i#*=}" + ;; + *) + ;; + esac +done + + +PERF_OUTPUT="$PERF_DATA_DIR/${PERF_DATA_PREFIX}_${PPID}_${RENDERER_ID}.perf.data" +perf record --call-graph=fp --clockid=mono --freq=max --output="${PERF_OUTPUT}" -- $@ diff --git a/deps/v8/tools/chrome/linux_perf.py b/deps/v8/tools/chrome/linux_perf.py new file mode 100755 index 00000000000000..91d30857246993 --- /dev/null +++ b/deps/v8/tools/chrome/linux_perf.py @@ -0,0 +1,207 @@ +#!/usr/bin/env python3 +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import optparse +from pathlib import Path +from re import A +import os +import shlex +from signal import SIGQUIT +import subprocess +import signal +import tempfile +import time +import psutil +import multiprocessing + +from unittest import result + +renderer_cmd_file = Path(__file__).parent / 'linux-perf-renderer-cmd.sh' +assert renderer_cmd_file.is_file() +renderer_cmd_prefix = f"{renderer_cmd_file} --perf-data-prefix=chrome_renderer" + +# ============================================================================== + +usage = """Usage: %prog $CHROME_BIN [OPTION]... -- [CHROME_OPTION]... [URL] + +This script runs linux-perf on all render process with custom V8 logging to get +support to resolve JS function names. + +The perf data is written to OUT_DIR separate by renderer process. + +See http://v8.dev//linux-perf for more detailed instructions. +""" +parser = optparse.OptionParser(usage=usage) +parser.add_option( + '--perf-data-dir', + default=None, + metavar="OUT_DIR", + help="Output directory for linux perf profile files") +parser.add_option( + "--profile-browser-process", + action="store_true", + default=False, + help="Also start linux-perf for the browser process. " + "By default only renderer processes are sampled. " + "Outputs 'browser_*.perf.data' in the CDW") +parser.add_option("--timeout", type=int, help="Stop chrome after N seconds") + +chrome_options = optparse.OptionGroup( + parser, "Chrome-forwarded Options", + "These convenience for a better script experience that are forward directly" + "to chrome. Any other chrome option can be passed after the '--' arguments" + "separator.") +chrome_options.add_option("--user-data-dir", dest="user_data_dir", default=None) +chrome_options.add_option("--js-flags", dest="js_flags") +chrome_options.add_option( + "--renderer-cmd-prefix", + default=None, + help=f"Set command prefix, used for each new chrome renderer process." + "Default: {renderer_cmd_prefix}") +FEATURES_DOC = "See chrome's base/feature_list.h source file for more dertails" +chrome_options.add_option( + "--enable-features", + help="Comma-separated list of enabled chrome features. " + FEATURES_DOC) +chrome_options.add_option( + "--disable-features", + help="Command-separated list of disabled chrome features. " + FEATURES_DOC) +parser.add_option_group(chrome_options) + + +# ============================================================================== +def log(*args): + print("") + print("=" * 80) + print(*args) + print("=" * 80) + + +# ============================================================================== + +(options, args) = parser.parse_args() + +if len(args) == 0: + parser.error("No chrome binary provided") + +chrome_bin = Path(args.pop(0)) +if not chrome_bin.exists(): + parser.error(f"Chrome '{chrome_bin}' does not exist") + +if options.renderer_cmd_prefix is not None: + if options.perf_data_dir is not None: + parser.error("Cannot specify --perf-data-dir " + "if a custom --renderer-cmd-prefix is provided") +else: + options.renderer_cmd_prefix = str(renderer_cmd_file) + +if options.perf_data_dir is None: + options.perf_data_dir = Path.cwd() +else: + options.perf_data_dir = Path(options.perf_data_dir).absolute() + +if not options.perf_data_dir.is_dir(): + parser.error(f"--perf-data-dir={options.perf_data_dir} " + "is not an directory or does not exist.") + +if options.timeout and options.timeout < 2: + parser.error("--timeout should be more than 2 seconds") + +# ============================================================================== +old_cwd = Path.cwd() +os.chdir(options.perf_data_dir) + +# ============================================================================== +JS_FLAGS_PERF = ("--perf-prof --no-write-protect-code-memory " + "--interpreted-frames-native-stack") + +with tempfile.TemporaryDirectory(prefix="chrome-") as tmp_dir_path: + tempdir = Path(tmp_dir_path) + cmd = [ + str(chrome_bin), + ] + if options.user_data_dir is None: + cmd.append(f"--user-data-dir={tempdir}") + cmd += [ + "--no-sandbox", "--incognito", "--enable-benchmarking", "--no-first-run", + "--no-default-browser-check", + f"--renderer-cmd-prefix={options.renderer_cmd_prefix}", + f"--js-flags={JS_FLAGS_PERF}" + ] + if options.js_flags: + cmd += [f"--js-flags={options.js_flags}"] + if options.enable_features: + cmd += [f"--enable-features={options.enable_features}"] + if options.disable_features: + cmd += [f"--disable-features={options.disable_features}"] + cmd += args + log("CHROME CMD: ", shlex.join(cmd)) + + if options.profile_browser_process: + perf_data_file = f"{tempdir.name}_browser.perf.data" + perf_cmd = [ + "perf", "record", "--call-graph=fp", "--freq=max", "--clockid=mono", + f"--output={perf_data_file}", "--" + ] + cmd = perf_cmd + cmd + log("LINUX PERF CMD: ", shlex.join(cmd)) + + if options.timeout is None: + subprocess.run(cmd) + else: + process = subprocess.Popen(cmd) + time.sleep(options.timeout) + log(f"QUITING chrome child processes after {options.timeout}s timeout") + current_process = psutil.Process() + children = current_process.children(recursive=True) + for child in children: + if "chrome" in child.name() or "content_shell" in child.name(): + print(f" quitting PID={child.pid}") + child.send_signal(signal.SIGQUIT) + # Wait for linux-perf to write out files + time.sleep(1) + process.send_signal(signal.SIGQUIT) + process.wait() + +# ============================================================================== +log("PARALLEL POST PROCESSING: Injecting JS symbols") + + +def inject_v8_symbols(perf_dat_file): + output_file = perf_dat_file.with_suffix(".data.jitted") + cmd = [ + "perf", "inject", "--jit", f"--input={perf_dat_file}", + f"--output={output_file}" + ] + try: + subprocess.run(cmd) + print(f"Processed: {output_file}") + except: + print(shlex.join(cmd)) + return None + return output_file + + +results = [] +with multiprocessing.Pool() as pool: + results = list( + pool.imap_unordered(inject_v8_symbols, + options.perf_data_dir.glob("*perf.data"))) + +results = list(filter(lambda x: x is not None, results)) +if len(results) == 0: + print("No perf files were successfully processed" + " Check for errors or partial results in '{options.perf_data_dir}'") + exit(1) +log(f"RESULTS in '{options.perf_data_dir}'") +results.sort(key=lambda x: x.stat().st_size) +BYTES_TO_MIB = 1 / 1024 / 1024 +for output_file in reversed(results): + print( + f"{output_file.name:67}{(output_file.stat().st_size*BYTES_TO_MIB):10.2f}MiB" + ) + +log("PPROF EXAMPLE") +path_strings = map(lambda f: str(f.relative_to(old_cwd)), results) +print(f"pprof -flame { ' '.join(path_strings)}") diff --git a/deps/v8/tools/clusterfuzz/BUILD.gn b/deps/v8/tools/clusterfuzz/BUILD.gn deleted file mode 100644 index 54e4fded96f9c8..00000000000000 --- a/deps/v8/tools/clusterfuzz/BUILD.gn +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2017 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import("../../gni/v8.gni") - -if (v8_correctness_fuzzer) { - copy("v8_correctness_fuzzer_resources") { - sources = [ - "v8_commands.py", - "v8_foozzie.py", - "v8_foozzie_harness_adjust.js", - "v8_fuzz_config.py", - "v8_fuzz_experiments.json", - "v8_fuzz_flags.json", - "v8_mock.js", - "v8_mock_archs.js", - "v8_mock_webassembly.js", - "v8_smoke_tests.js", - "v8_suppressions.js", - "v8_suppressions.py", - ] - outputs = [ "$root_out_dir/{{source_file_part}}" ] - } -} diff --git a/deps/v8/tools/clusterfuzz/PRESUBMIT.py b/deps/v8/tools/clusterfuzz/PRESUBMIT.py deleted file mode 100644 index a98bb24413653b..00000000000000 --- a/deps/v8/tools/clusterfuzz/PRESUBMIT.py +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 2018 the V8 project authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -def CheckChangeOnCommit(input_api, output_api): - tests = input_api.canned_checks.GetUnitTestsInDirectory( - input_api, output_api, '.', files_to_check=['v8_foozzie_test.py$']) - return input_api.RunTests(tests) diff --git a/deps/v8/tools/clusterfuzz/foozzie/BUILD.gn b/deps/v8/tools/clusterfuzz/foozzie/BUILD.gn new file mode 100644 index 00000000000000..90113e5aa4f5f5 --- /dev/null +++ b/deps/v8/tools/clusterfuzz/foozzie/BUILD.gn @@ -0,0 +1,25 @@ +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("../../../gni/v8.gni") + +if (v8_correctness_fuzzer) { + copy("v8_correctness_fuzzer_resources") { + sources = [ + "v8_commands.py", + "v8_foozzie.py", + "v8_foozzie_harness_adjust.js", + "v8_fuzz_config.py", + "v8_fuzz_experiments.json", + "v8_fuzz_flags.json", + "v8_mock.js", + "v8_mock_archs.js", + "v8_mock_webassembly.js", + "v8_smoke_tests.js", + "v8_suppressions.js", + "v8_suppressions.py", + ] + outputs = [ "$root_out_dir/{{source_file_part}}" ] + } +} diff --git a/deps/v8/tools/clusterfuzz/foozzie/PRESUBMIT.py b/deps/v8/tools/clusterfuzz/foozzie/PRESUBMIT.py new file mode 100644 index 00000000000000..cc94c5146d085e --- /dev/null +++ b/deps/v8/tools/clusterfuzz/foozzie/PRESUBMIT.py @@ -0,0 +1,30 @@ +# Copyright 2018 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import json + +# This line is 'magic' in that git-cl looks for it to decide whether to +# use Python3 instead of Python2 when running the code in this file. +USE_PYTHON3 = True + + +def _RunTests(input_api, output_api): + return input_api.RunTests( + input_api.canned_checks.GetUnitTestsInDirectory( + input_api, output_api, '.', files_to_check=[r'.+_test\.py$'])) + + +def _CommonChecks(input_api, output_api): + """Checks common to both upload and commit.""" + checks = [ + _RunTests, + ] + + return sum([check(input_api, output_api) for check in checks], []) + +def CheckChangeOnCommit(input_api, output_api): + return _CommonChecks(input_api, output_api) + +def CheckChangeOnUpload(input_api, output_api): + return _CommonChecks(input_api, output_api) diff --git a/deps/v8/tools/clusterfuzz/testdata/baseline/d8.py b/deps/v8/tools/clusterfuzz/foozzie/testdata/baseline/d8.py similarity index 100% rename from deps/v8/tools/clusterfuzz/testdata/baseline/d8.py rename to deps/v8/tools/clusterfuzz/foozzie/testdata/baseline/d8.py diff --git a/deps/v8/tools/clusterfuzz/testdata/baseline/v8_build_config.json b/deps/v8/tools/clusterfuzz/foozzie/testdata/baseline/v8_build_config.json similarity index 100% rename from deps/v8/tools/clusterfuzz/testdata/baseline/v8_build_config.json rename to deps/v8/tools/clusterfuzz/foozzie/testdata/baseline/v8_build_config.json diff --git a/deps/v8/tools/clusterfuzz/testdata/build1/d8.py b/deps/v8/tools/clusterfuzz/foozzie/testdata/build1/d8.py similarity index 100% rename from deps/v8/tools/clusterfuzz/testdata/build1/d8.py rename to deps/v8/tools/clusterfuzz/foozzie/testdata/build1/d8.py diff --git a/deps/v8/tools/clusterfuzz/testdata/build1/v8_build_config.json b/deps/v8/tools/clusterfuzz/foozzie/testdata/build1/v8_build_config.json similarity index 100% rename from deps/v8/tools/clusterfuzz/testdata/build1/v8_build_config.json rename to deps/v8/tools/clusterfuzz/foozzie/testdata/build1/v8_build_config.json diff --git a/deps/v8/tools/clusterfuzz/testdata/build2/d8.py b/deps/v8/tools/clusterfuzz/foozzie/testdata/build2/d8.py similarity index 100% rename from deps/v8/tools/clusterfuzz/testdata/build2/d8.py rename to deps/v8/tools/clusterfuzz/foozzie/testdata/build2/d8.py diff --git a/deps/v8/tools/clusterfuzz/testdata/build2/v8_build_config.json b/deps/v8/tools/clusterfuzz/foozzie/testdata/build2/v8_build_config.json similarity index 100% rename from deps/v8/tools/clusterfuzz/testdata/build2/v8_build_config.json rename to deps/v8/tools/clusterfuzz/foozzie/testdata/build2/v8_build_config.json diff --git a/deps/v8/tools/clusterfuzz/testdata/build3/d8.py b/deps/v8/tools/clusterfuzz/foozzie/testdata/build3/d8.py similarity index 100% rename from deps/v8/tools/clusterfuzz/testdata/build3/d8.py rename to deps/v8/tools/clusterfuzz/foozzie/testdata/build3/d8.py diff --git a/deps/v8/tools/clusterfuzz/testdata/build3/v8_build_config.json b/deps/v8/tools/clusterfuzz/foozzie/testdata/build3/v8_build_config.json similarity index 100% rename from deps/v8/tools/clusterfuzz/testdata/build3/v8_build_config.json rename to deps/v8/tools/clusterfuzz/foozzie/testdata/build3/v8_build_config.json diff --git a/deps/v8/tools/clusterfuzz/testdata/failure_output.txt b/deps/v8/tools/clusterfuzz/foozzie/testdata/failure_output.txt similarity index 76% rename from deps/v8/tools/clusterfuzz/testdata/failure_output.txt rename to deps/v8/tools/clusterfuzz/foozzie/testdata/failure_output.txt index 91c06467ea11c9..3d8715d5838d37 100644 --- a/deps/v8/tools/clusterfuzz/testdata/failure_output.txt +++ b/deps/v8/tools/clusterfuzz/foozzie/testdata/failure_output.txt @@ -9,9 +9,9 @@ # Compared x64,ignition with x64,ignition_turbo # # Flags of x64,ignition: ---correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --es-staging --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --turbo-filter=~ --no-opt --no-sparkplug --liftoff --no-wasm-tier-up --flag1 --flag2=0 +--correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --harmony --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --turbo-filter=~ --no-opt --no-sparkplug --liftoff --no-wasm-tier-up --flag1 --flag2=0 # Flags of x64,ignition_turbo: ---correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --es-staging --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --flag3 +--correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --harmony --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --flag3 # # Difference: - unknown diff --git a/deps/v8/tools/clusterfuzz/testdata/failure_output_arch.txt b/deps/v8/tools/clusterfuzz/foozzie/testdata/failure_output_arch.txt similarity index 77% rename from deps/v8/tools/clusterfuzz/testdata/failure_output_arch.txt rename to deps/v8/tools/clusterfuzz/foozzie/testdata/failure_output_arch.txt index 68af8a5dcfbeb3..5d32d9bab85ac9 100644 --- a/deps/v8/tools/clusterfuzz/testdata/failure_output_arch.txt +++ b/deps/v8/tools/clusterfuzz/foozzie/testdata/failure_output_arch.txt @@ -9,9 +9,9 @@ # Compared x64,ignition with x64,ignition_turbo # # Flags of x64,ignition: ---correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --es-staging --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --turbo-filter=~ --no-opt --no-sparkplug --liftoff --no-wasm-tier-up +--correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --harmony --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --turbo-filter=~ --no-opt --no-sparkplug --liftoff --no-wasm-tier-up # Flags of x64,ignition_turbo: ---correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --es-staging --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --bad-flag +--correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --harmony --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --bad-flag # # Difference: + bad behavior diff --git a/deps/v8/tools/clusterfuzz/testdata/failure_output_second.txt b/deps/v8/tools/clusterfuzz/foozzie/testdata/failure_output_second.txt similarity index 77% rename from deps/v8/tools/clusterfuzz/testdata/failure_output_second.txt rename to deps/v8/tools/clusterfuzz/foozzie/testdata/failure_output_second.txt index 75da7f5a992b16..67ce872e4b6d23 100644 --- a/deps/v8/tools/clusterfuzz/testdata/failure_output_second.txt +++ b/deps/v8/tools/clusterfuzz/foozzie/testdata/failure_output_second.txt @@ -9,9 +9,9 @@ # Compared x64,ignition with ia32,ignition_turbo # # Flags of x64,ignition: ---correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --es-staging --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --turbo-filter=~ --no-opt --no-sparkplug --liftoff --no-wasm-tier-up +--correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --harmony --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --turbo-filter=~ --no-opt --no-sparkplug --liftoff --no-wasm-tier-up # Flags of ia32,ignition_turbo: ---correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --es-staging --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --very-bad-flag +--correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --harmony --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --very-bad-flag # # Difference: + very bad behavior diff --git a/deps/v8/tools/clusterfuzz/testdata/fuzz-123.js b/deps/v8/tools/clusterfuzz/foozzie/testdata/fuzz-123.js similarity index 100% rename from deps/v8/tools/clusterfuzz/testdata/fuzz-123.js rename to deps/v8/tools/clusterfuzz/foozzie/testdata/fuzz-123.js diff --git a/deps/v8/tools/clusterfuzz/testdata/smoke_test_output.txt b/deps/v8/tools/clusterfuzz/foozzie/testdata/smoke_test_output.txt similarity index 78% rename from deps/v8/tools/clusterfuzz/testdata/smoke_test_output.txt rename to deps/v8/tools/clusterfuzz/foozzie/testdata/smoke_test_output.txt index c2c1378ec8130f..618c2104204506 100644 --- a/deps/v8/tools/clusterfuzz/testdata/smoke_test_output.txt +++ b/deps/v8/tools/clusterfuzz/foozzie/testdata/smoke_test_output.txt @@ -9,9 +9,9 @@ # Compared x64,ignition with x64,ignition_turbo # # Flags of x64,ignition: ---correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --es-staging --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --turbo-filter=~ --no-opt --no-sparkplug --liftoff --no-wasm-tier-up +--correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --harmony --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 --turbo-filter=~ --no-opt --no-sparkplug --liftoff --no-wasm-tier-up # Flags of x64,ignition_turbo: ---correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --es-staging --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 +--correctness-fuzzer-suppressions --expose-gc --fuzzing --allow-natives-for-differential-fuzzing --invoke-weak-callbacks --omit-quit --harmony --wasm-staging --no-wasm-async-compilation --suppress-asm-messages --random-seed 12345 # # Difference: - unknown diff --git a/deps/v8/tools/clusterfuzz/toolchain/BUILD.gn b/deps/v8/tools/clusterfuzz/foozzie/toolchain/BUILD.gn similarity index 100% rename from deps/v8/tools/clusterfuzz/toolchain/BUILD.gn rename to deps/v8/tools/clusterfuzz/foozzie/toolchain/BUILD.gn diff --git a/deps/v8/tools/clusterfuzz/v8_commands.py b/deps/v8/tools/clusterfuzz/foozzie/v8_commands.py similarity index 93% rename from deps/v8/tools/clusterfuzz/v8_commands.py rename to deps/v8/tools/clusterfuzz/foozzie/v8_commands.py index f03161c2c481db..c6c85f1ac2ddfd 100644 --- a/deps/v8/tools/clusterfuzz/v8_commands.py +++ b/deps/v8/tools/clusterfuzz/foozzie/v8_commands.py @@ -16,16 +16,16 @@ # List of default flags passed to each d8 run. DEFAULT_FLAGS = [ - '--correctness-fuzzer-suppressions', - '--expose-gc', - '--fuzzing', - '--allow-natives-for-differential-fuzzing', - '--invoke-weak-callbacks', - '--omit-quit', - '--es-staging', - '--wasm-staging', - '--no-wasm-async-compilation', - '--suppress-asm-messages', + '--correctness-fuzzer-suppressions', + '--expose-gc', + '--fuzzing', + '--allow-natives-for-differential-fuzzing', + '--invoke-weak-callbacks', + '--omit-quit', + '--harmony', + '--wasm-staging', + '--no-wasm-async-compilation', + '--suppress-asm-messages', ] BASE_PATH = os.path.dirname(os.path.abspath(__file__)) diff --git a/deps/v8/tools/clusterfuzz/v8_foozzie.py b/deps/v8/tools/clusterfuzz/foozzie/v8_foozzie.py similarity index 99% rename from deps/v8/tools/clusterfuzz/v8_foozzie.py rename to deps/v8/tools/clusterfuzz/foozzie/v8_foozzie.py index 656bc89ed34465..485d1d601a1e7c 100755 --- a/deps/v8/tools/clusterfuzz/v8_foozzie.py +++ b/deps/v8/tools/clusterfuzz/foozzie/v8_foozzie.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2016 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. diff --git a/deps/v8/tools/clusterfuzz/v8_foozzie_harness_adjust.js b/deps/v8/tools/clusterfuzz/foozzie/v8_foozzie_harness_adjust.js similarity index 100% rename from deps/v8/tools/clusterfuzz/v8_foozzie_harness_adjust.js rename to deps/v8/tools/clusterfuzz/foozzie/v8_foozzie_harness_adjust.js diff --git a/deps/v8/tools/clusterfuzz/v8_foozzie_test.py b/deps/v8/tools/clusterfuzz/foozzie/v8_foozzie_test.py similarity index 99% rename from deps/v8/tools/clusterfuzz/v8_foozzie_test.py rename to deps/v8/tools/clusterfuzz/foozzie/v8_foozzie_test.py index a8ba74364bc264..fe149620f938af 100755 --- a/deps/v8/tools/clusterfuzz/v8_foozzie_test.py +++ b/deps/v8/tools/clusterfuzz/foozzie/v8_foozzie_test.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2016 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. diff --git a/deps/v8/tools/clusterfuzz/v8_fuzz_config.py b/deps/v8/tools/clusterfuzz/foozzie/v8_fuzz_config.py similarity index 100% rename from deps/v8/tools/clusterfuzz/v8_fuzz_config.py rename to deps/v8/tools/clusterfuzz/foozzie/v8_fuzz_config.py diff --git a/deps/v8/tools/clusterfuzz/v8_fuzz_experiments.json b/deps/v8/tools/clusterfuzz/foozzie/v8_fuzz_experiments.json similarity index 100% rename from deps/v8/tools/clusterfuzz/v8_fuzz_experiments.json rename to deps/v8/tools/clusterfuzz/foozzie/v8_fuzz_experiments.json diff --git a/deps/v8/tools/clusterfuzz/v8_fuzz_flags.json b/deps/v8/tools/clusterfuzz/foozzie/v8_fuzz_flags.json similarity index 90% rename from deps/v8/tools/clusterfuzz/v8_fuzz_flags.json rename to deps/v8/tools/clusterfuzz/foozzie/v8_fuzz_flags.json index 7aefe69267280a..c9c107e0e847e6 100644 --- a/deps/v8/tools/clusterfuzz/v8_fuzz_flags.json +++ b/deps/v8/tools/clusterfuzz/foozzie/v8_fuzz_flags.json @@ -27,8 +27,9 @@ [0.1, "--no-enable-popcnt"], [0.25, "--no-lazy-feedback-allocation"], [0.1, "--no-lazy-feedback-allocation --interrupt-budget=100"], - [0.05, "--budget-for-feedback-vector-allocation=0"], + [0.05, "--interrupt-budget-for-feedback-allocation=0"], [0.1, "--no-wasm-generic-wrapper"], [0.1, "--turbo-force-mid-tier-regalloc"], - [0.0001, "--simulate-errors"] + [0.0001, "--simulate-errors"], + [0.25, "--compact-maps"] ] diff --git a/deps/v8/tools/clusterfuzz/v8_mock.js b/deps/v8/tools/clusterfuzz/foozzie/v8_mock.js similarity index 100% rename from deps/v8/tools/clusterfuzz/v8_mock.js rename to deps/v8/tools/clusterfuzz/foozzie/v8_mock.js diff --git a/deps/v8/tools/clusterfuzz/v8_mock_archs.js b/deps/v8/tools/clusterfuzz/foozzie/v8_mock_archs.js similarity index 100% rename from deps/v8/tools/clusterfuzz/v8_mock_archs.js rename to deps/v8/tools/clusterfuzz/foozzie/v8_mock_archs.js diff --git a/deps/v8/tools/clusterfuzz/v8_mock_webassembly.js b/deps/v8/tools/clusterfuzz/foozzie/v8_mock_webassembly.js similarity index 100% rename from deps/v8/tools/clusterfuzz/v8_mock_webassembly.js rename to deps/v8/tools/clusterfuzz/foozzie/v8_mock_webassembly.js diff --git a/deps/v8/tools/clusterfuzz/v8_smoke_tests.js b/deps/v8/tools/clusterfuzz/foozzie/v8_smoke_tests.js similarity index 100% rename from deps/v8/tools/clusterfuzz/v8_smoke_tests.js rename to deps/v8/tools/clusterfuzz/foozzie/v8_smoke_tests.js diff --git a/deps/v8/tools/clusterfuzz/v8_suppressions.js b/deps/v8/tools/clusterfuzz/foozzie/v8_suppressions.js similarity index 100% rename from deps/v8/tools/clusterfuzz/v8_suppressions.js rename to deps/v8/tools/clusterfuzz/foozzie/v8_suppressions.js diff --git a/deps/v8/tools/clusterfuzz/v8_suppressions.py b/deps/v8/tools/clusterfuzz/foozzie/v8_suppressions.py similarity index 100% rename from deps/v8/tools/clusterfuzz/v8_suppressions.py rename to deps/v8/tools/clusterfuzz/foozzie/v8_suppressions.py diff --git a/deps/v8/tools/clusterfuzz/js_fuzzer/exceptions.js b/deps/v8/tools/clusterfuzz/js_fuzzer/exceptions.js index 4a571d5dd0dfde..6aa3094179aa87 100644 --- a/deps/v8/tools/clusterfuzz/js_fuzzer/exceptions.js +++ b/deps/v8/tools/clusterfuzz/js_fuzzer/exceptions.js @@ -97,14 +97,14 @@ const DISALLOWED_FLAGS = [ // stabilized yet and would cause too much noise when enabled. /^--experimental-.*/, - // Disallowed due to noise. We explicitly add --es-staging to job + // Disallowed due to noise. We explicitly add --harmony to job // definitions, and all of these features are staged before launch. /^--harmony-.*/, // Disallowed because they are passed explicitly on the command line. '--allow-natives-syntax', '--debug-code', - '--es-staging', + '--harmony', '--wasm-staging', '--expose-gc', '--expose_gc', diff --git a/deps/v8/tools/clusterfuzz/js_fuzzer/foozzie_launcher.py b/deps/v8/tools/clusterfuzz/js_fuzzer/foozzie_launcher.py index b1f892c64a356d..e046d9f43e6cbe 100644 --- a/deps/v8/tools/clusterfuzz/js_fuzzer/foozzie_launcher.py +++ b/deps/v8/tools/clusterfuzz/js_fuzzer/foozzie_launcher.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2020 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -7,6 +7,9 @@ """ Launcher for the foozzie differential-fuzzing harness. Wraps foozzie with Python2 for backwards-compatibility when bisecting. + +Obsolete now after switching to Python3 entirely. We keep the launcher +for a transition period. """ import os @@ -22,6 +25,7 @@ args = sys.argv[2:] else: args = sys.argv[1:] - process = subprocess.Popen(['python2'] + args) + process = subprocess.Popen(['python3'] + args) + process = subprocess.Popen(args) process.communicate() sys.exit(process.returncode) diff --git a/deps/v8/tools/clusterfuzz/trials/BUILD.gn b/deps/v8/tools/clusterfuzz/trials/BUILD.gn new file mode 100644 index 00000000000000..d3c8bf6aab3d93 --- /dev/null +++ b/deps/v8/tools/clusterfuzz/trials/BUILD.gn @@ -0,0 +1,8 @@ +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +copy("v8_clusterfuzz_resources") { + sources = [ "clusterfuzz_trials_config.json" ] + outputs = [ "$root_out_dir/{{source_file_part}}" ] +} diff --git a/deps/v8/tools/clusterfuzz/trials/PRESUBMIT.py b/deps/v8/tools/clusterfuzz/trials/PRESUBMIT.py new file mode 100644 index 00000000000000..16a64abccc4b3a --- /dev/null +++ b/deps/v8/tools/clusterfuzz/trials/PRESUBMIT.py @@ -0,0 +1,57 @@ +# Copyright 2022 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import json + +# This line is 'magic' in that git-cl looks for it to decide whether to +# use Python3 instead of Python2 when running the code in this file. +USE_PYTHON3 = True + + +def _CheckTrialsConfig(input_api, output_api): + def FilterFile(affected_file): + return input_api.FilterSourceFile( + affected_file, + files_to_check=(r'.+clusterfuzz_trials_config\.json',)) + + results = [] + for f in input_api.AffectedFiles( + file_filter=FilterFile, include_deletes=False): + with open(f.AbsoluteLocalPath()) as j: + try: + trials = json.load(j) + for trial in trials: + if not all( + k in trial for k in ('app_args', 'app_name', 'probability')): + results.append('trial {} is not configured correctly'.format(trial)) + if trial['app_name'] != 'd8': + results.append('trial {} has an incorrect app_name'.format(trial)) + if not isinstance(trial['probability'], float): + results.append('trial {} probability is not a float'.format(trial)) + if not (0 <= trial['probability'] <= 1): + results.append( + 'trial {} has invalid probability value'.format(trial)) + if not isinstance(trial['app_args'], str) or not trial['app_args']: + results.append( + 'trial {} should have a non-empty string for app_args'.format( + trial)) + except Exception as e: + results.append( + 'JSON validation failed for %s. Error:\n%s' % (f.LocalPath(), e)) + + return [output_api.PresubmitError(r) for r in results] + +def _CommonChecks(input_api, output_api): + """Checks common to both upload and commit.""" + checks = [ + _CheckTrialsConfig, + ] + + return sum([check(input_api, output_api) for check in checks], []) + +def CheckChangeOnCommit(input_api, output_api): + return _CommonChecks(input_api, output_api) + +def CheckChangeOnUpload(input_api, output_api): + return _CommonChecks(input_api, output_api) diff --git a/deps/v8/tools/clusterfuzz/trials/clusterfuzz_trials_config.json b/deps/v8/tools/clusterfuzz/trials/clusterfuzz_trials_config.json new file mode 100644 index 00000000000000..682972d5b24766 --- /dev/null +++ b/deps/v8/tools/clusterfuzz/trials/clusterfuzz_trials_config.json @@ -0,0 +1,38 @@ +[ + {"app_args": "--assert-types", "app_name": "d8", "probability": 0.25}, + {"app_args": "--interrupt-budget-for-feedback-vector-allocation=0", "app_name": "d8", "probability": 0.05}, + {"app_args": "--compact-maps", "app_name": "d8", "probability": 0.25}, + {"app_args": "--force-slow-path", "app_name": "d8", "probability": 0.05}, + {"app_args": "--future", "app_name": "d8", "probability": 0.25}, + {"app_args": "--interrupt-budget=1000", "app_name": "d8", "probability": 0.25}, + {"app_args": "--jitless", "app_name": "d8", "probability": 0.1}, + {"app_args": "--random-gc-interval=2000", "app_name": "d8", "probability": 0.05}, + {"app_args": "--noanalyze-environment-liveness", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-avx", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-bmi1", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-bmi2", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-fma3", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-lzcnt", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-popcnt", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-sahf", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-sse3", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-sse4_1", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-sse4_2", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-enable-ssse3", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-lazy-feedback-allocation", "app_name": "d8", "probability": 0.35}, + {"app_args": "--no-regexp-tier-up", "app_name": "d8", "probability": 0.2}, + {"app_args": "--no-untrusted-code-mitigations", "app_name": "d8", "probability": 0.1}, + {"app_args": "--no-use-ic", "app_name": "d8", "probability": 0.25}, + {"app_args": "--no-wasm-generic-wrapper", "app_name": "d8", "probability": 0.1}, + {"app_args": "--regexp-interpret-all", "app_name": "d8", "probability": 0.1}, + {"app_args": "--simulate-errors", "app_name": "d8", "probability": 0.001}, + {"app_args": "--stress-compaction-random", "app_name": "d8", "probability": 0.05}, + {"app_args": "--stress-concurrent-inlining", "app_name": "d8", "probability": 0.25}, + {"app_args": "--stress-concurrent-inlining-attach-code", "app_name": "d8", "probability": 0.25}, + {"app_args": "--stress-flush-code", "app_name": "d8", "probability": 0.25}, + {"app_args": "--stress-marking=100", "app_name": "d8", "probability": 0.05}, + {"app_args": "--stress-scavenge=100", "app_name": "d8", "probability": 0.05}, + {"app_args": "--turbo-instruction-scheduling", "app_name": "d8", "probability": 0.1}, + {"app_args": "--turbo-stress-instruction-scheduling", "app_name": "d8", "probability": 0.1}, + {"app_args": "--wasm-code-gc --stress-wasm-code-gc", "app_name": "d8", "probability": 0.1} +] diff --git a/deps/v8/tools/codemap.mjs b/deps/v8/tools/codemap.mjs index 55327b6982ee5c..8d1e00c9e96b50 100644 --- a/deps/v8/tools/codemap.mjs +++ b/deps/v8/tools/codemap.mjs @@ -27,6 +27,15 @@ import { SplayTree } from "./splaytree.mjs"; +/** +* The number of alignment bits in a page address. +*/ +const kPageAlignment = 12; +/** +* Page size in bytes. +*/ +const kPageSize = 1 << kPageAlignment; + /** * Constructs a mapper that maps addresses into code entries. * @@ -56,19 +65,7 @@ export class CodeMap { /** * Map of memory pages occupied with static code. */ - pages_ = []; - - - /** - * The number of alignment bits in a page address. - */ - static PAGE_ALIGNMENT = 12; - - - /** - * Page size in bytes. - */ - static PAGE_SIZE = 1 << CodeMap.PAGE_ALIGNMENT; + pages_ = new Set(); /** @@ -130,9 +127,8 @@ export class CodeMap { * @private */ markPages_(start, end) { - for (let addr = start; addr <= end; - addr += CodeMap.PAGE_SIZE) { - this.pages_[(addr / CodeMap.PAGE_SIZE)|0] = 1; + for (let addr = start; addr <= end; addr += kPageSize) { + this.pages_.add((addr / kPageSize) | 0); } } @@ -144,7 +140,7 @@ export class CodeMap { let addr = end - 1; while (addr >= start) { const node = tree.findGreatestLessThan(addr); - if (!node) break; + if (node === null) break; const start2 = node.key, end2 = start2 + node.value.size; if (start2 < end && start < end2) to_delete.push(start2); addr = start2 - 1; @@ -164,7 +160,7 @@ export class CodeMap { */ findInTree_(tree, addr) { const node = tree.findGreatestLessThan(addr); - return node && this.isAddressBelongsTo_(addr, node) ? node : null; + return node !== null && this.isAddressBelongsTo_(addr, node) ? node : null; } /** @@ -175,22 +171,23 @@ export class CodeMap { * @param {number} addr Address. */ findAddress(addr) { - const pageAddr = (addr / CodeMap.PAGE_SIZE)|0; - if (pageAddr in this.pages_) { + const pageAddr = (addr / kPageSize) | 0; + if (this.pages_.has(pageAddr)) { // Static code entries can contain "holes" of unnamed code. // In this case, the whole library is assigned to this address. let result = this.findInTree_(this.statics_, addr); - if (!result) { + if (result === null) { result = this.findInTree_(this.libraries_, addr); - if (!result) return null; + if (result === null) return null; } return {entry: result.value, offset: addr - result.key}; } - const min = this.dynamics_.findMin(); const max = this.dynamics_.findMax(); - if (max != null && addr < (max.key + max.value.size) && addr >= min.key) { + if (max === null) return null; + const min = this.dynamics_.findMin(); + if (addr >= min.key && addr < (max.key + max.value.size)) { const dynaEntry = this.findInTree_(this.dynamics_, addr); - if (dynaEntry == null) return null; + if (dynaEntry === null) return null; // Dedupe entry name. const entry = dynaEntry.value; if (!entry.nameUpdated_) { @@ -210,7 +207,7 @@ export class CodeMap { */ findEntry(addr) { const result = this.findAddress(addr); - return result ? result.entry : null; + return result !== null ? result.entry : null; } /** @@ -220,7 +217,7 @@ export class CodeMap { */ findDynamicEntryByStartAddress(addr) { const node = this.dynamics_.find(addr); - return node ? node.value : null; + return node !== null ? node.value : null; } /** diff --git a/deps/v8/tools/compare_torque_output.py b/deps/v8/tools/compare_torque_output.py index 50e93a7538dfdb..4ef01217dc655a 100644 --- a/deps/v8/tools/compare_torque_output.py +++ b/deps/v8/tools/compare_torque_output.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2020 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. diff --git a/deps/v8/tools/csvparser.mjs b/deps/v8/tools/csvparser.mjs index c43ee4c4fcf9b2..2f94d7910651e3 100644 --- a/deps/v8/tools/csvparser.mjs +++ b/deps/v8/tools/csvparser.mjs @@ -38,19 +38,17 @@ export class CsvParser { escapeField(string) { let nextPos = string.indexOf("\\"); if (nextPos === -1) return string; - - let result = string.substring(0, nextPos); + let result = [string.substring(0, nextPos)]; // Escape sequences of the form \x00 and \u0000; - let endPos = string.length; let pos = 0; while (nextPos !== -1) { - let escapeIdentifier = string.charAt(nextPos + 1); + const escapeIdentifier = string[nextPos + 1]; pos = nextPos + 2; if (escapeIdentifier === 'n') { - result += '\n'; + result.push('\n'); nextPos = pos; } else if (escapeIdentifier === '\\') { - result += '\\'; + result.push('\\'); nextPos = pos; } else { if (escapeIdentifier === 'x') { @@ -61,11 +59,11 @@ export class CsvParser { nextPos = pos + 4; } // Convert the selected escape sequence to a single character. - let escapeChars = string.substring(pos, nextPos); + const escapeChars = string.substring(pos, nextPos); if (escapeChars === '2C') { - result += ','; + result.push(','); } else { - result += String.fromCharCode(parseInt(escapeChars, 16)); + result.push(String.fromCharCode(parseInt(escapeChars, 16))); } } @@ -74,12 +72,13 @@ export class CsvParser { nextPos = string.indexOf("\\", pos); // If there are no more escape sequences consume the rest of the string. if (nextPos === -1) { - result += string.substr(pos); + result.push(string.substr(pos)); + break; } else if (pos !== nextPos) { - result += string.substring(pos, nextPos); + result.push(string.substring(pos, nextPos)); } } - return result; + return result.join(''); } /** diff --git a/deps/v8/tools/debug_helper/debug-macro-shims.h b/deps/v8/tools/debug_helper/debug-macro-shims.h index 948482810b601a..02deb3d766fa74 100644 --- a/deps/v8/tools/debug_helper/debug-macro-shims.h +++ b/deps/v8/tools/debug_helper/debug-macro-shims.h @@ -8,6 +8,7 @@ #ifndef V8_TORQUE_DEBUG_MACRO_SHIMS_H_ #define V8_TORQUE_DEBUG_MACRO_SHIMS_H_ +#include "src/numbers/integer-literal.h" #include "src/objects/smi.h" #include "tools/debug_helper/debug-helper-internal.h" @@ -66,6 +67,14 @@ inline Value IntPtrMul(d::MemoryAccessor accessor, intptr_t a, intptr_t b) { return {d::MemoryAccessResult::kOk, a * b}; } +inline Value IntPtrLessThan(d::MemoryAccessor accessor, intptr_t a, + intptr_t b) { + return {d::MemoryAccessResult::kOk, a < b}; +} +inline Value IntPtrLessThanOrEqual(d::MemoryAccessor accessor, intptr_t a, + intptr_t b) { + return {d::MemoryAccessResult::kOk, a <= b}; +} inline Value Signed(d::MemoryAccessor accessor, uintptr_t u) { return {d::MemoryAccessResult::kOk, static_cast(u)}; } @@ -73,6 +82,9 @@ inline Value SmiUntag(d::MemoryAccessor accessor, uintptr_t s_t) { Smi s(s_t); return {d::MemoryAccessResult::kOk, s.value()}; } +inline Value SmiFromInt32(d::MemoryAccessor accessor, int32_t i) { + return {d::MemoryAccessResult::kOk, Smi::FromInt(i).ptr()}; +} inline Value UintPtrLessThan(d::MemoryAccessor accessor, uintptr_t a, uintptr_t b) { return {d::MemoryAccessResult::kOk, a < b}; @@ -93,6 +105,19 @@ inline Value Word32NotEqual(d::MemoryAccessor accessor, uint32_t a, uint32_t b) { return {d::MemoryAccessResult::kOk, a != b}; } +// This is used in a nested call where we cannot pass Value. +inline int31_t ConstexprIntegerLiteralToInt31(d::MemoryAccessor accessor, + const IntegerLiteral& i) { + return i.To(); +} +inline int32_t ConstexprIntegerLiteralToInt32(d::MemoryAccessor accessor, + const IntegerLiteral& i) { + return i.To(); +} +inline intptr_t ConstexprIntegerLiteralToIntptr(d::MemoryAccessor accessor, + const IntegerLiteral& i) { + return i.To(); +} } // namespace CodeStubAssembler } // namespace TorqueDebugMacroShims diff --git a/deps/v8/tools/debug_helper/gen-heap-constants.py b/deps/v8/tools/debug_helper/gen-heap-constants.py index 6eb7f3743ca2f1..3ea5be68210573 100644 --- a/deps/v8/tools/debug_helper/gen-heap-constants.py +++ b/deps/v8/tools/debug_helper/gen-heap-constants.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2019 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -31,7 +31,7 @@ def iterate_objects(target_space, camel_space_name): if space == target_space: result.append((offset, name)) for (space, offset), name in v8heapconst.KNOWN_OBJECTS.items(): - if space == target_space: + if space == target_space and (space, offset) not in v8heapconst.KNOWN_MAPS: result.append((offset, name)) out = out + '\nstd::string FindKnownObjectIn' + camel_space_name \ + '(uintptr_t offset) {\n switch (offset) {\n' @@ -40,8 +40,9 @@ def iterate_objects(target_space, camel_space_name): out = out + ' default: return "";\n }\n}\n' iterate_objects('map_space', 'MapSpace') -iterate_objects('read_only_space', 'ReadOnlySpace') iterate_objects('old_space', 'OldSpace') +iterate_objects('read_only_space', 'ReadOnlySpace') + def iterate_maps(target_space, camel_space_name): global out @@ -54,6 +55,7 @@ def iterate_maps(target_space, camel_space_name): out = out + ' default: return -1;\n }\n}\n' iterate_maps('map_space', 'MapSpace') +iterate_maps('old_space', 'OldSpace') iterate_maps('read_only_space', 'ReadOnlySpace') out = out + '\nvoid FillInUnknownHeapAddresses(' + \ diff --git a/deps/v8/tools/debug_helper/get-object-properties.cc b/deps/v8/tools/debug_helper/get-object-properties.cc index 10ef48cbbac680..43a67941ac6014 100644 --- a/deps/v8/tools/debug_helper/get-object-properties.cc +++ b/deps/v8/tools/debug_helper/get-object-properties.cc @@ -11,7 +11,7 @@ #include "src/execution/frames.h" #include "src/execution/isolate-utils.h" #include "src/objects/string-inl.h" -#include "src/security/external-pointer.h" +#include "src/sandbox/external-pointer.h" #include "src/strings/unicode-inl.h" #include "torque-generated/class-debug-readers.h" #include "torque-generated/debug-macros.h" @@ -350,7 +350,7 @@ class ReadStringVisitor : public TqObjectVisitor { ExternalPointer_t resource_data = GetOrFinish(object->GetResourceDataValue(accessor_)); #ifdef V8_COMPRESS_POINTERS - Isolate* isolate = GetIsolateForHeapSandbox( + Isolate* isolate = GetIsolateForSandbox( HeapObject::unchecked_cast(Object(heap_addresses_.any_heap_pointer))); uintptr_t data_address = static_cast(DecodeExternalPointer( isolate, resource_data, kExternalStringResourceDataTag)); diff --git a/deps/v8/tools/debug_helper/heap-constants.cc b/deps/v8/tools/debug_helper/heap-constants.cc index f62dd9b6975a9f..412308eb7f999b 100644 --- a/deps/v8/tools/debug_helper/heap-constants.cc +++ b/deps/v8/tools/debug_helper/heap-constants.cc @@ -61,6 +61,10 @@ KnownInstanceType FindKnownMapInstanceTypes( return KnownInstanceType( FindKnownMapInstanceTypeInMapSpace(offset_in_page)); } + if (containing_page == heap_addresses.old_space_first_page) { + return KnownInstanceType( + FindKnownMapInstanceTypeInOldSpace(offset_in_page)); + } if (containing_page == heap_addresses.read_only_space_first_page) { return KnownInstanceType( FindKnownMapInstanceTypeInReadOnlySpace(offset_in_page)); @@ -74,6 +78,12 @@ KnownInstanceType FindKnownMapInstanceTypes( result.types.push_back(static_cast(sub_result)); } } + if (heap_addresses.old_space_first_page == 0) { + int sub_result = FindKnownMapInstanceTypeInOldSpace(offset_in_page); + if (sub_result >= 0) { + result.types.push_back(static_cast(sub_result)); + } + } if (heap_addresses.read_only_space_first_page == 0) { int sub_result = FindKnownMapInstanceTypeInReadOnlySpace(offset_in_page); if (sub_result >= 0) { diff --git a/deps/v8/tools/debug_helper/heap-constants.h b/deps/v8/tools/debug_helper/heap-constants.h index 89620479eca2b9..9486a18d053bd3 100644 --- a/deps/v8/tools/debug_helper/heap-constants.h +++ b/deps/v8/tools/debug_helper/heap-constants.h @@ -34,6 +34,7 @@ void FillInUnknownHeapAddresses(d::HeapAddresses* heap_addresses, // Returns the instance type for the known Map, given its offset within the // first page of the space, or empty string on failure. int FindKnownMapInstanceTypeInMapSpace(uintptr_t offset); +int FindKnownMapInstanceTypeInOldSpace(uintptr_t offset); int FindKnownMapInstanceTypeInReadOnlySpace(uintptr_t offset); // ===== End of generated functions. =========================================== diff --git a/deps/v8/tools/dev/gm.py b/deps/v8/tools/dev/gm.py index 613065d5b11169..d16b4dd737add7 100755 --- a/deps/v8/tools/dev/gm.py +++ b/deps/v8/tools/dev/gm.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python # Copyright 2017 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -21,9 +21,6 @@ not contain spaces. """ # See HELP below for additional documentation. -# Note on Python3 compatibility: gm.py itself is Python3 compatible, but -# run-tests.py, which will be executed by the same binary, is not; hence -# the hashbang line at the top of this file explicitly requires Python2. from __future__ import print_function import errno @@ -43,7 +40,8 @@ # All arches that this script understands. ARCHES = ["ia32", "x64", "arm", "arm64", "mipsel", "mips64el", "ppc", "ppc64", - "riscv64", "s390", "s390x", "android_arm", "android_arm64", "loong64"] + "riscv64", "s390", "s390x", "android_arm", "android_arm64", "loong64", + "fuchsia_x64", "fuchsia_arm64"] # Arches that get built/run when you don't specify any. DEFAULT_ARCHES = ["ia32", "x64", "arm", "arm64"] # Modes that this script understands. @@ -291,7 +289,7 @@ def GetTargetCpu(self): cpu = "x86" if self.arch == "android_arm": cpu = "arm" - elif self.arch == "android_arm64": + elif self.arch == "android_arm64" or self.arch == "fuchsia_arm64": cpu = "arm64" elif self.arch == "arm64" and _GetMachine() in ("aarch64", "arm64"): # arm64 build host: @@ -310,7 +308,7 @@ def GetTargetCpu(self): def GetV8TargetCpu(self): if self.arch == "android_arm": v8_cpu = "arm" - elif self.arch == "android_arm64": + elif self.arch == "android_arm64" or self.arch == "fuchsia_arm64": v8_cpu = "arm64" elif self.arch in ("arm", "arm64", "mipsel", "mips64el", "ppc", "ppc64", "riscv64", "s390", "s390x", "loong64"): @@ -322,6 +320,8 @@ def GetV8TargetCpu(self): def GetTargetOS(self): if self.arch in ("android_arm", "android_arm64"): return ["target_os = \"android\""] + elif self.arch in ("fuchsia_x64", "fuchsia_arm64"): + return ["target_os = \"fuchsia\""] return [] def GetSpecialCompiler(self): diff --git a/deps/v8/tools/disasm.py b/deps/v8/tools/disasm.py index a91d0dbff4d8b1..c21e7f98536604 100644 --- a/deps/v8/tools/disasm.py +++ b/deps/v8/tools/disasm.py @@ -81,7 +81,7 @@ def GetDisasmLines(filename, offset, size, arch, inplace, arch_flags=""): stdout=subprocess.PIPE, stderr=subprocess.STDOUT) out, err = process.communicate() - lines = out.split("\n") + lines = out.decode('utf-8').split("\n") header_line = 0 for i, line in enumerate(lines): if _DISASM_HEADER_RE.match(line): diff --git a/deps/v8/tools/dumpcpp.mjs b/deps/v8/tools/dumpcpp.mjs index 9459deda157fe9..d271c8c25aeb74 100644 --- a/deps/v8/tools/dumpcpp.mjs +++ b/deps/v8/tools/dumpcpp.mjs @@ -12,12 +12,13 @@ export { export class CppProcessor extends LogReader { constructor(cppEntriesProvider, timedRange, pairwiseTimedRange) { - super({}, timedRange, pairwiseTimedRange); - this.dispatchTable_ = { + super(timedRange, pairwiseTimedRange); + this.setDispatchTable({ + __proto__: null, 'shared-library': { parsers: [parseString, parseInt, parseInt, parseInt], processor: this.processSharedLibrary } - }; + }); this.cppEntriesProvider_ = cppEntriesProvider; this.codeMap_ = new CodeMap(); this.lastLogFileName_ = null; diff --git a/deps/v8/tools/gcmole/BUILD.gn b/deps/v8/tools/gcmole/BUILD.gn index 558766487d17d2..9354f24ff8a971 100644 --- a/deps/v8/tools/gcmole/BUILD.gn +++ b/deps/v8/tools/gcmole/BUILD.gn @@ -4,16 +4,18 @@ import("../../gni/v8.gni") -group("v8_run_gcmole") { +group("v8_gcmole_files") { testonly = true - + data_deps = [ + "../../:v8_dump_build_config", + "../../:v8_generated_cc_files", + ] data = [ - "GCMOLE.gn", "gcmole.py", "gcmole-test.cc", "gcmole-tools/", "run-gcmole.py", - "suspects.whitelist", + "suspects.allowlist", "ignored_files", "test-expectations.txt", @@ -36,8 +38,6 @@ group("v8_run_gcmole") { "$target_gen_dir/../../torque-generated/", ] - deps = [ "../../:run_torque" ] - if (v8_gcmole) { # This assumes gcmole tools have been fetched by a hook # into v8/tools/gcmole/gcmole_tools. diff --git a/deps/v8/tools/gcmole/GCMOLE.gn b/deps/v8/tools/gcmole/GCMOLE.gn deleted file mode 100644 index 62da0a084ba3c3..00000000000000 --- a/deps/v8/tools/gcmole/GCMOLE.gn +++ /dev/null @@ -1,6 +0,0 @@ -action("gcmole") { - sources = [ - ### gcmole(all) ### - "tools/gcmole/gcmole-test.cc", - ] -} diff --git a/deps/v8/tools/gcmole/Makefile b/deps/v8/tools/gcmole/Makefile index e1bde684a6608f..fe295341dab6c1 100644 --- a/deps/v8/tools/gcmole/Makefile +++ b/deps/v8/tools/gcmole/Makefile @@ -32,11 +32,18 @@ LLVM_BUILD_INCLUDE:=$(BUILD_ROOT)/include CLANG_SRC_INCLUDE:=$(CLANG_SRC_ROOT)/include CLANG_BUILD_INCLUDE:=$(BUILD_ROOT)/tools/clang/include +CXXFLAGS = -O3 -g3 +all: libgcmole.so +Release: libgcmole.so + +Debug: CXXFLAGS = -O1 -DDEBUG -g +Debug: libgcmole.so + libgcmole.so: gcmole.cc $(CXX) -I$(LLVM_BUILD_INCLUDE) -I$(LLVM_SRC_INCLUDE) \ - -I$(CLANG_BUILD_INCLUDE) -I$(CLANG_SRC_INCLUDE) -I. -D_DEBUG \ + -I$(CLANG_BUILD_INCLUDE) -I$(CLANG_SRC_INCLUDE) -I. ${CXXFLAGS} \ -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS \ - -D__STDC_LIMIT_MACROS -O3 -fomit-frame-pointer -fno-exceptions \ + -D__STDC_LIMIT_MACROS -fomit-frame-pointer -fno-exceptions \ -fno-rtti -fPIC -Woverloaded-virtual -Wcast-qual -fno-strict-aliasing \ -pedantic -Wno-long-long -Wall -W -Wno-unused-parameter \ -Wwrite-strings -static-libstdc++ -std=c++0x -shared -o libgcmole.so \ diff --git a/deps/v8/tools/gcmole/README b/deps/v8/tools/gcmole/README index 1d2acd3b1a0010..15828fa435381b 100644 --- a/deps/v8/tools/gcmole/README +++ b/deps/v8/tools/gcmole/README @@ -109,7 +109,7 @@ script "bootstrap.sh" mentioned above). TROUBLESHOOTING --------------------------------------------------------------- -gcmole is tighly coupled with the AST structure that Clang produces. Therefore +gcmole is tightly coupled with the AST structure that Clang produces. Therefore when upgrading to a newer Clang version, it might start producing bogus output or completely stop outputting warnings. In such occasion, one might start the debugging process by checking weather a new AST node type is introduced which diff --git a/deps/v8/tools/gcmole/bootstrap.sh b/deps/v8/tools/gcmole/bootstrap.sh index e04ef5826c6b40..f47ba6d2139deb 100755 --- a/deps/v8/tools/gcmole/bootstrap.sh +++ b/deps/v8/tools/gcmole/bootstrap.sh @@ -35,6 +35,8 @@ LLVM_RELEASE=9.0.1 +BUILD_TYPE="Release" +# BUILD_TYPE="Debug" THIS_DIR="$(readlink -f "$(dirname "${0}")")" LLVM_PROJECT_DIR="${THIS_DIR}/bootstrap/llvm" BUILD_DIR="${THIS_DIR}/bootstrap/build" @@ -99,29 +101,35 @@ if [ ! -e "${BUILD_DIR}" ]; then fi cd "${BUILD_DIR}" cmake -GNinja -DCMAKE_CXX_FLAGS="-static-libstdc++" -DLLVM_ENABLE_TERMINFO=OFF \ - -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=clang \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DLLVM_ENABLE_PROJECTS=clang \ -DLLVM_ENABLE_Z3_SOLVER=OFF "${LLVM_PROJECT_DIR}/llvm" -MACOSX_DEPLOYMENT_TARGET=10.5 ninja -j"${NUM_JOBS}" - -# Strip the clang binary. -STRIP_FLAGS= -if [ "${OS}" = "Darwin" ]; then - # See http://crbug.com/256342 - STRIP_FLAGS=-x +MACOSX_DEPLOYMENT_TARGET=10.5 ninja -j"${NUM_JOBS}" clang + +if [[ "${BUILD_TYPE}" = "Release" ]]; then + # Strip the clang binary. + STRIP_FLAGS= + if [ "${OS}" = "Darwin" ]; then + # See http://crbug.com/256342 + STRIP_FLAGS=-x + fi + strip ${STRIP_FLAGS} bin/clang fi -strip ${STRIP_FLAGS} bin/clang cd - # Build libgcmole.so make -C "${THIS_DIR}" clean make -C "${THIS_DIR}" LLVM_SRC_ROOT="${LLVM_PROJECT_DIR}/llvm" \ CLANG_SRC_ROOT="${LLVM_PROJECT_DIR}/clang" \ - BUILD_ROOT="${BUILD_DIR}" libgcmole.so + BUILD_ROOT="${BUILD_DIR}" $BUILD_TYPE set +x -echo -echo You can now run gcmole using this command: -echo -echo CLANG_BIN=\"tools/gcmole/gcmole-tools/bin\" python tools/gcmole/gcmole.py +echo '#########################################################################' +echo 'Congratulations you compiled clang and libgcmole.so' +echo +echo '# You can now run gcmole:' +echo 'tools/gcmole/gcmole.py \' +echo ' --clang-bin-dir="tools/gcmole/bootstrap/build/bin" \' +echo ' --clang-plugins-dir="tools/gcmole" \' +echo ' --v8-target-cpu=$CPU' echo diff --git a/deps/v8/tools/gcmole/gcmole-tools.tar.gz.sha1 b/deps/v8/tools/gcmole/gcmole-tools.tar.gz.sha1 index 6de7b957f367c0..70900be895cc2b 100644 --- a/deps/v8/tools/gcmole/gcmole-tools.tar.gz.sha1 +++ b/deps/v8/tools/gcmole/gcmole-tools.tar.gz.sha1 @@ -1 +1 @@ -b9c0f67013d70cabd7a53ca059304f8f51bd937b \ No newline at end of file +270aaed40a5d903a4795a2b59c33991b2885374c \ No newline at end of file diff --git a/deps/v8/tools/gcmole/gcmole.cc b/deps/v8/tools/gcmole/gcmole.cc index 3dc4baa72280e0..74208b27eec46c 100644 --- a/deps/v8/tools/gcmole/gcmole.cc +++ b/deps/v8/tools/gcmole/gcmole.cc @@ -48,6 +48,8 @@ namespace { bool g_tracing_enabled = false; bool g_dead_vars_analysis = false; +bool g_verbose = false; +bool g_print_gc_call_chain = false; #define TRACE(str) \ do { \ @@ -80,16 +82,13 @@ typedef std::map CalleesMap; static bool GetMangledName(clang::MangleContext* ctx, const clang::NamedDecl* decl, MangledName* result) { - if (!llvm::isa(decl) && - !llvm::isa(decl)) { - llvm::SmallVector output; - llvm::raw_svector_ostream out(output); - ctx->mangleName(decl, out); - *result = out.str().str(); - return true; - } - - return false; + if (llvm::isa(decl)) return false; + if (llvm::isa(decl)) return false; + llvm::SmallVector output; + llvm::raw_svector_ostream out(output); + ctx->mangleName(decl, out); + *result = out.str().str(); + return true; } @@ -217,8 +216,7 @@ struct Resolver { class CalleesPrinter : public clang::RecursiveASTVisitor { public: - explicit CalleesPrinter(clang::MangleContext* ctx) : ctx_(ctx) { - } + explicit CalleesPrinter(clang::MangleContext* ctx) : ctx_(ctx) {} virtual bool VisitCallExpr(clang::CallExpr* expr) { const clang::FunctionDecl* callee = expr->getDirectCallee(); @@ -236,17 +234,17 @@ class CalleesPrinter : public clang::RecursiveASTVisitor { } void AnalyzeFunction(const clang::FunctionDecl* f) { + if (!InV8Namespace(f)) return; MangledName name; - if (InV8Namespace(f) && GetMangledName(ctx_, f, &name)) { - const std::string& function = f->getNameAsString(); - AddCallee(name, function); - - const clang::FunctionDecl* body = NULL; - if (f->hasBody(body) && !Analyzed(name)) { - EnterScope(name); - TraverseStmt(body->getBody()); - LeaveScope(); - } + if (!GetMangledName(ctx_, f, &name)) return; + const std::string& function = f->getNameAsString(); + AddCallee(name, function); + + const clang::FunctionDecl* body = NULL; + if (f->hasBody(body) && !Analyzed(name)) { + EnterScope(name); + TraverseStmt(body->getBody()); + LeaveScope(); } } @@ -303,17 +301,18 @@ class FunctionDeclarationFinder : public clang::ASTConsumer, public clang::RecursiveASTVisitor { public: - explicit FunctionDeclarationFinder(clang::DiagnosticsEngine& d, - clang::SourceManager& sm, - const std::vector& args) - : d_(d), sm_(sm) {} + explicit FunctionDeclarationFinder( + clang::DiagnosticsEngine& diagnostics_engine, + clang::SourceManager& source_manager, + const std::vector& args) + : diagnostics_engine_(diagnostics_engine), + source_manager_(source_manager) {} virtual void HandleTranslationUnit(clang::ASTContext &ctx) { - mangle_context_ = clang::ItaniumMangleContext::create(ctx, d_); + mangle_context_ = + clang::ItaniumMangleContext::create(ctx, diagnostics_engine_); callees_printer_ = new CalleesPrinter(mangle_context_); - TraverseDecl(ctx.getTranslationUnitDecl()); - callees_printer_->PrintCallGraph(); } @@ -323,8 +322,8 @@ class FunctionDeclarationFinder } private: - clang::DiagnosticsEngine& d_; - clang::SourceManager& sm_; + clang::DiagnosticsEngine& diagnostics_engine_; + clang::SourceManager& source_manager_; clang::MangleContext* mangle_context_; CalleesPrinter* callees_printer_; @@ -333,8 +332,39 @@ class FunctionDeclarationFinder static bool gc_suspects_loaded = false; static CalleesSet gc_suspects; static CalleesSet gc_functions; -static bool whitelist_loaded = false; -static CalleesSet suspects_whitelist; + +static bool allowlist_loaded = false; +static CalleesSet suspects_allowlist; + +static bool gc_causes_loaded = false; +static std::map> gc_causes; + +static void LoadGCCauses() { + if (gc_causes_loaded) return; + std::ifstream fin("gccauses"); + std::string mangled, function; + while (!fin.eof()) { + std::getline(fin, mangled, ','); + std::getline(fin, function); + if (mangled.empty()) break; + std::string parent = mangled; + // start,nested + std::getline(fin, mangled, ','); + assert(mangled.compare("start") == 0); + std::getline(fin, function); + assert(function.compare("nested") == 0); + while (true) { + std::getline(fin, mangled, ','); + std::getline(fin, function); + if (mangled.compare("end") == 0) { + assert(function.compare("nested") == 0); + break; + } + gc_causes[parent].push_back(mangled); + } + } + gc_causes_loaded = true; +} static void LoadGCSuspects() { if (gc_suspects_loaded) return; @@ -352,55 +382,48 @@ static void LoadGCSuspects() { gc_suspects_loaded = true; } -static void LoadSuspectsWhitelist() { - if (whitelist_loaded) return; +static void LoadSuspectsAllowList() { + if (allowlist_loaded) return; - std::ifstream fin("tools/gcmole/suspects.whitelist"); + // TODO(cbruni): clean up once fully migrated + std::ifstream fin("tools/gcmole/suspects.allowlist"); std::string s; - while (fin >> s) suspects_whitelist.insert(s); + while (fin >> s) suspects_allowlist.insert(s); - whitelist_loaded = true; + allowlist_loaded = true; } // Looks for exact match of the mangled name. -static bool KnownToCauseGC(clang::MangleContext* ctx, - const clang::FunctionDecl* decl) { +static bool IsKnownToCauseGC(clang::MangleContext* ctx, + const clang::FunctionDecl* decl) { LoadGCSuspects(); - if (!InV8Namespace(decl)) return false; - - if (suspects_whitelist.find(decl->getNameAsString()) != - suspects_whitelist.end()) { + if (suspects_allowlist.find(decl->getNameAsString()) != + suspects_allowlist.end()) { return false; } - MangledName name; if (GetMangledName(ctx, decl, &name)) { return gc_suspects.find(name) != gc_suspects.end(); } - return false; } // Looks for partial match of only the function name. -static bool SuspectedToCauseGC(clang::MangleContext* ctx, - const clang::FunctionDecl* decl) { +static bool IsSuspectedToCauseGC(clang::MangleContext* ctx, + const clang::FunctionDecl* decl) { LoadGCSuspects(); - if (!InV8Namespace(decl)) return false; - - LoadSuspectsWhitelist(); - if (suspects_whitelist.find(decl->getNameAsString()) != - suspects_whitelist.end()) { + LoadSuspectsAllowList(); + if (suspects_allowlist.find(decl->getNameAsString()) != + suspects_allowlist.end()) { return false; } - if (gc_functions.find(decl->getNameAsString()) != gc_functions.end()) { TRACE_LLVM_DECL("Suspected by ", decl); return true; } - return false; } @@ -449,10 +472,9 @@ class ExprEffect { intptr_t effect_; }; - -const std::string BAD_EXPR_MSG("Possible problem with evaluation order."); -const std::string DEAD_VAR_MSG("Possibly dead variable."); - +const std::string BAD_EXPR_MSG( + "Possible problem with evaluation order with interleaved GCs."); +const std::string DEAD_VAR_MSG("Possibly stale variable due to GCs."); class Environment { public: @@ -612,22 +634,16 @@ class CallProps { ExprEffect ComputeCumulativeEffect(bool result_is_raw) { ExprEffect out = ExprEffect::NoneWithEnv(env_); - if (gc_.any()) { - out.setGC(); - } + if (gc_.any()) out.setGC(); if (raw_use_.any()) out.setRawUse(); if (result_is_raw) out.setRawDef(); return out; } bool IsSafe() { - if (!gc_.any()) { - return true; - } + if (!gc_.any()) return true; std::bitset raw = (raw_def_ | raw_use_); - if (!raw.any()) { - return true; - } + if (!raw.any()) return true; bool result = gc_.count() == 1 && !((raw ^ gc_).any()); return result; } @@ -950,13 +966,10 @@ class FunctionAnalyzer { ExprEffect Parallel(clang::Expr* parent, int n, clang::Expr** exprs, const Environment& env) { CallProps props; - for (int i = 0; i < n; ++i) { props.SetEffect(i, VisitExpr(exprs[i], env)); } - if (!props.IsSafe()) ReportUnsafe(parent, BAD_EXPR_MSG); - return props.ComputeCumulativeEffect( RepresentsRawPointerType(parent->getType())); } @@ -984,27 +997,24 @@ class FunctionAnalyzer { const clang::QualType& var_type, const std::string& var_name, const Environment& env) { - if (RepresentsRawPointerType(var_type)) { - // We currently care only about our internal pointer types and not about - // raw C++ pointers, because normally special care is taken when storing - // raw pointers to the managed heap. Furthermore, checking for raw - // pointers produces too many false positives in the dead variable - // analysis. - if (IsInternalPointerType(var_type) && !env.IsAlive(var_name) && - !HasActiveGuard() && g_dead_vars_analysis) { - ReportUnsafe(parent, DEAD_VAR_MSG); - } - return ExprEffect::RawUse(); - } - return ExprEffect::None(); + if (!g_dead_vars_analysis) return ExprEffect::None(); + if (!RepresentsRawPointerType(var_type)) return ExprEffect::None(); + // We currently care only about our internal pointer types and not about + // raw C++ pointers, because normally special care is taken when storing + // raw pointers to the managed heap. Furthermore, checking for raw + // pointers produces too many false positives in the dead variable + // analysis. + if (!IsInternalPointerType(var_type)) return ExprEffect::None(); + if (env.IsAlive(var_name)) return ExprEffect::None(); + if (HasActiveGuard()) return ExprEffect::None(); + ReportUnsafe(parent, DEAD_VAR_MSG); + return ExprEffect::RawUse(); } ExprEffect Use(const clang::Expr* parent, const clang::ValueDecl* var, const Environment& env) { - if (IsExternalVMState(var)) { - return ExprEffect::GC(); - } + if (IsExternalVMState(var)) return ExprEffect::GC(); return Use(parent, var->getType(), var->getNameAsString(), env); } @@ -1062,43 +1072,40 @@ class FunctionAnalyzer { RepresentsRawPointerType(call->getType())); clang::FunctionDecl* callee = call->getDirectCallee(); - if (callee != NULL) { - if (KnownToCauseGC(ctx_, callee)) { + if (callee == NULL) return out; + + if (IsKnownToCauseGC(ctx_, callee)) { + out.setGC(); + scopes_.back().SetGCCauseLocation( + clang::FullSourceLoc(call->getExprLoc(), sm_), callee); + } + + // Support for virtual methods that might be GC suspects. + if (memcall == NULL) return out; + clang::CXXMethodDecl* method = + llvm::dyn_cast_or_null(callee); + if (method == NULL) return out; + if (!method->isVirtual()) return out; + + clang::CXXMethodDecl* target = method->getDevirtualizedMethod( + memcall->getImplicitObjectArgument(), false); + if (target != NULL) { + if (IsKnownToCauseGC(ctx_, target)) { out.setGC(); scopes_.back().SetGCCauseLocation( - clang::FullSourceLoc(call->getExprLoc(), sm_)); + clang::FullSourceLoc(call->getExprLoc(), sm_), target); } - - // Support for virtual methods that might be GC suspects. - clang::CXXMethodDecl* method = - llvm::dyn_cast_or_null(callee); - if (method != NULL && method->isVirtual()) { - clang::CXXMemberCallExpr* memcall = - llvm::dyn_cast_or_null(call); - if (memcall != NULL) { - clang::CXXMethodDecl* target = method->getDevirtualizedMethod( - memcall->getImplicitObjectArgument(), false); - if (target != NULL) { - if (KnownToCauseGC(ctx_, target)) { - out.setGC(); - scopes_.back().SetGCCauseLocation( - clang::FullSourceLoc(call->getExprLoc(), sm_)); - } - } else { - // According to the documentation, {getDevirtualizedMethod} might - // return NULL, in which case we still want to use the partial - // match of the {method}'s name against the GC suspects in order - // to increase coverage. - if (SuspectedToCauseGC(ctx_, method)) { - out.setGC(); - scopes_.back().SetGCCauseLocation( - clang::FullSourceLoc(call->getExprLoc(), sm_)); - } - } - } + } else { + // According to the documentation, {getDevirtualizedMethod} might + // return NULL, in which case we still want to use the partial + // match of the {method}'s name against the GC suspects in order + // to increase coverage. + if (IsSuspectedToCauseGC(ctx_, method)) { + out.setGC(); + scopes_.back().SetGCCauseLocation( + clang::FullSourceLoc(call->getExprLoc(), sm_), method); } } - return out; } @@ -1185,11 +1192,9 @@ class FunctionAnalyzer { } bool changed() { - if (changed_) { - changed_ = false; - return true; - } - return false; + if (!changed_) return false; + changed_ = false; + return true; } const Environment& in() { @@ -1455,7 +1460,7 @@ class FunctionAnalyzer { } bool HasActiveGuard() { - for (auto s : scopes_) { + for (const auto s : scopes_) { if (s.IsBeforeGCCause()) return true; } return false; @@ -1466,6 +1471,36 @@ class FunctionAnalyzer { d_.Report(clang::FullSourceLoc(expr->getExprLoc(), sm_), d_.getCustomDiagID(clang::DiagnosticsEngine::Warning, "%0")) << msg; + if (scopes_.empty()) return; + GCScope scope = scopes_[0]; + if (!scope.gccause_location.isValid()) return; + d_.Report(scope.gccause_location, + d_.getCustomDiagID(clang::DiagnosticsEngine::Note, + "Call might cause unexpected GC.")); + clang::FunctionDecl* gccause_decl = scope.gccause_decl; + d_.Report( + clang::FullSourceLoc(gccause_decl->getBeginLoc(), sm_), + d_.getCustomDiagID(clang::DiagnosticsEngine::Note, "GC call here.")); + + if (!g_print_gc_call_chain) return; + // TODO(cbruni, v8::10009): print call-chain to gc with proper source + // positions. + LoadGCCauses(); + MangledName name; + if (!GetMangledName(ctx_, gccause_decl, &name)) return; + std::cout << "Potential GC call chain:\n"; + std::set stack; + while (true) { + if (!stack.insert(name).second) break; + std::cout << "\t" << name << "\n"; + auto next = gc_causes.find(name); + if (next == gc_causes.end()) break; + std::vector calls = next->second; + for (MangledName call : calls) { + name = call; + if (stack.find(call) != stack.end()) break; + } + } } @@ -1484,10 +1519,11 @@ class FunctionAnalyzer { struct GCScope { clang::FullSourceLoc guard_location; clang::FullSourceLoc gccause_location; + clang::FunctionDecl* gccause_decl; // We're only interested in guards that are declared before any further GC // causing calls (see TestGuardedDeadVarAnalysisMidFunction for example). - bool IsBeforeGCCause() { + bool IsBeforeGCCause() const { if (!guard_location.isValid()) return false; if (!gccause_location.isValid()) return true; return guard_location.isBeforeInTranslationUnitThan(gccause_location); @@ -1495,9 +1531,11 @@ class FunctionAnalyzer { // After we set the first GC cause in the scope, we don't need the later // ones. - void SetGCCauseLocation(clang::FullSourceLoc gccause_location_) { + void SetGCCauseLocation(clang::FullSourceLoc gccause_location_, + clang::FunctionDecl* decl) { if (gccause_location.isValid()) return; gccause_location = gccause_location_; + gccause_decl = decl; } }; std::vector scopes_; @@ -1513,9 +1551,8 @@ class ProblemsFinder : public clang::ASTConsumer, if (args[i] == "--dead-vars") { g_dead_vars_analysis = true; } - if (args[i] == "--verbose") { - g_tracing_enabled = true; - } + if (args[i] == "--verbose-trace") g_tracing_enabled = true; + if (args[i] == "--verbose") g_verbose = true; } } @@ -1571,7 +1608,7 @@ class ProblemsFinder : public clang::ASTConsumer, clang::ItaniumMangleContext::create(ctx, d_), object_decl, maybe_object_decl, smi_decl, no_gc_mole_decl, d_, sm_); TraverseDecl(ctx.getTranslationUnitDecl()); - } else { + } else if (g_verbose) { if (object_decl == NULL) { llvm::errs() << "Failed to resolve v8::internal::Object\n"; } @@ -1609,7 +1646,6 @@ class ProblemsFinder : public clang::ASTConsumer, FunctionAnalyzer* function_analyzer_; }; - template class Action : public clang::PluginASTAction { protected: diff --git a/deps/v8/tools/gcmole/gcmole.py b/deps/v8/tools/gcmole/gcmole.py old mode 100644 new mode 100755 index 3df0788adeff08..df1d33c3cfadab --- a/deps/v8/tools/gcmole/gcmole.py +++ b/deps/v8/tools/gcmole/gcmole.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2020 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -6,58 +6,78 @@ # This is main driver for gcmole tool. See README for more details. # Usage: CLANG_BIN=clang-bin-dir python tools/gcmole/gcmole.py [arm|arm64|ia32|x64] -# for py2/py3 compatibility -from __future__ import print_function +from multiprocessing import cpu_count +from pathlib import Path import collections import difflib -from multiprocessing import cpu_count +import json +import optparse import os import re import subprocess import sys import threading -if sys.version_info.major > 2: - import queue -else: - import Queue as queue +import queue + + +ArchCfg = collections.namedtuple( + "ArchCfg", ["name", "cpu", "triple", "arch_define", "arch_options"]) -ArchCfg = collections.namedtuple("ArchCfg", - ["triple", "arch_define", "arch_options"]) +# TODO(cbruni): use gn desc by default for platform-specific settings +OPTIONS_64BIT = [ + "-DV8_COMPRESS_POINTERS", + "-DV8_COMPRESS_POINTERS_IN_SHARED_CAGE", + "-DV8_EXTERNAL_CODE_SPACE", + "-DV8_SHORT_BUILTIN_CALLS", + "-DV8_SHARED_RO_HEAP", +] ARCHITECTURES = { "ia32": ArchCfg( + name="ia32", + cpu="x86", triple="i586-unknown-linux", arch_define="V8_TARGET_ARCH_IA32", arch_options=["-m32"], ), "arm": ArchCfg( + name="arm", + cpu="arm", triple="i586-unknown-linux", arch_define="V8_TARGET_ARCH_ARM", arch_options=["-m32"], ), + # TODO(cbruni): Use detailed settings: + # arch_options = OPTIONS_64BIT + [ "-DV8_WIN64_UNWINDING_INFO" ] "x64": ArchCfg( + name="x64", + cpu="x64", triple="x86_64-unknown-linux", arch_define="V8_TARGET_ARCH_X64", arch_options=[]), "arm64": ArchCfg( + name="arm64", + cpu="arm64", triple="x86_64-unknown-linux", arch_define="V8_TARGET_ARCH_ARM64", arch_options=[], ), } +ARCHITECTURES['x86'] = ARCHITECTURES['ia32'] -def log(format, *args): - print(format.format(*args)) +def log(format, *args, **kwargs): + mark = ("#", "=", "-", ".")[kwargs.get("level", 0)] + print(mark * 2, str(format).format(*list(map(str, args)))) -def fatal(format, *args): - log(format, *args) +def fatal(format): + log(format) sys.exit(1) @@ -65,26 +85,27 @@ def fatal(format, *args): # Clang invocation -def MakeClangCommandLine(plugin, plugin_args, arch_cfg, clang_bin_dir, - clang_plugins_dir): +def make_clang_command_line(plugin, plugin_args, options): + arch_cfg = ARCHITECTURES[options.v8_target_cpu] prefixed_plugin_args = [] if plugin_args: for arg in plugin_args: prefixed_plugin_args += [ "-Xclang", - "-plugin-arg-{}".format(plugin), + "-plugin-arg-" + plugin, "-Xclang", arg, ] - + log("Using generated files in {}", options.v8_build_dir / 'gen') + icu_src_dir = options.v8_root_dir / 'third_party/icu/source' return ([ - os.path.join(clang_bin_dir, "clang++"), - "-std=c++14", + options.clang_bin_dir / "clang++", + "-std=c++17", "-c", "-Xclang", "-load", "-Xclang", - os.path.join(clang_plugins_dir, "libgcmole.so"), + options.clang_plugins_dir / "libgcmole.so", "-Xclang", "-plugin", "-Xclang", @@ -95,41 +116,44 @@ def MakeClangCommandLine(plugin, plugin_args, arch_cfg, clang_bin_dir, "-Xclang", arch_cfg.triple, "-fno-exceptions", + "-Wno-everything", "-D", arch_cfg.arch_define, "-DENABLE_DEBUGGER_SUPPORT", - "-DV8_INTL_SUPPORT", "-DV8_ENABLE_WEBASSEMBLY", - "-I./", - "-Iinclude/", - "-Iout/build/gen", - "-Ithird_party/icu/source/common", - "-Ithird_party/icu/source/i18n", + "-DV8_GC_MOLE", + "-DV8_INTL_SUPPORT", + "-I{}".format(options.v8_root_dir), + "-I{}".format(options.v8_root_dir / 'include'), + "-I{}".format(options.v8_build_dir / 'gen'), + "-I{}".format(icu_src_dir / 'common'), + "-I{}".format(icu_src_dir / 'i18n'), ] + arch_cfg.arch_options) -def InvokeClangPluginForFile(filename, cmd_line, verbose): +def invoke_clang_plugin_for_file(filename, cmd_line, verbose): + args = cmd_line + [filename] + args = list(map(str, args)) if verbose: - print("popen ", " ".join(cmd_line + [filename])) - p = subprocess.Popen( - cmd_line + [filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + print("popen ", " ".join(args)) + p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() - return p.returncode, stdout, stderr + return p.returncode, stdout.decode("utf-8"), stderr.decode("utf-8") -def InvokeClangPluginForFilesInQueue(i, input_queue, output_queue, cancel_event, - cmd_line, verbose): +def invoke_clang_plugin_for_files_in_queue(i, input_queue, output_queue, + cancel_event, cmd_line, verbose): success = False try: while not cancel_event.is_set(): filename = input_queue.get_nowait() - ret, stdout, stderr = InvokeClangPluginForFile(filename, cmd_line, - verbose) - output_queue.put_nowait((filename, ret, stdout.decode('utf-8'), stderr.decode('utf-8'))) + ret, stdout, stderr = invoke_clang_plugin_for_file( + filename, cmd_line, verbose) + output_queue.put_nowait((filename, ret, stdout, stderr)) if ret != 0: break except KeyboardInterrupt: - log("-- [{}] Interrupting", i) + log("[{}] Interrupting", i, level=1) except queue.Empty: success = True finally: @@ -138,30 +162,21 @@ def InvokeClangPluginForFilesInQueue(i, input_queue, output_queue, cancel_event, output_queue.put_nowait(success) -def InvokeClangPluginForEachFile( - filenames, - plugin, - plugin_args, - arch_cfg, - flags, - clang_bin_dir, - clang_plugins_dir, -): - cmd_line = MakeClangCommandLine(plugin, plugin_args, arch_cfg, clang_bin_dir, - clang_plugins_dir) - verbose = flags["verbose"] - if flags["sequential"]: - log("** Sequential execution.") +def invoke_clang_plugin_for_each_file(filenames, plugin, plugin_args, options): + cmd_line = make_clang_command_line(plugin, plugin_args, options) + verbose = options.verbose + if options.sequential: + log("Sequential execution.") for filename in filenames: - log("-- {}", filename) - returncode, stdout, stderr = InvokeClangPluginForFile( + log(filename, level=1) + returncode, stdout, stderr = invoke_clang_plugin_for_file( filename, cmd_line, verbose) if returncode != 0: sys.stderr.write(stderr) sys.exit(returncode) yield filename, stdout, stderr else: - log("** Parallel execution.") + log("Parallel execution.") cpus = cpu_count() input_queue = queue.Queue() output_queue = queue.Queue() @@ -175,7 +190,7 @@ def InvokeClangPluginForEachFile( for i in range(min(len(filenames), cpus)): threads.append( threading.Thread( - target=InvokeClangPluginForFilesInQueue, + target=invoke_clang_plugin_for_files_in_queue, args=(i, input_queue, output_queue, cancel_event, cmd_line, verbose))) @@ -192,7 +207,7 @@ def InvokeClangPluginForEachFile( else: break filename, returncode, stdout, stderr = output - log("-- {}", filename) + log(filename, level=2) if returncode != 0: sys.stderr.write(stderr) sys.exit(returncode) @@ -207,31 +222,30 @@ def InvokeClangPluginForEachFile( # ----------------------------------------------------------------------------- -def ParseGNFile(for_test): - result = {} +def parse_gn_file(options, for_test): if for_test: - gn_files = [("tools/gcmole/GCMOLE.gn", re.compile('"([^"]*?\.cc)"'), "")] - else: - gn_files = [ - ("BUILD.gn", re.compile('"([^"]*?\.cc)"'), ""), - ("test/cctest/BUILD.gn", re.compile('"(test-[^"]*?\.cc)"'), - "test/cctest/"), - ] - + return {"all": [options.v8_root_dir / "tools/gcmole/gcmole-test.cc"]} + result = {} + gn_files = [ + ("BUILD.gn", re.compile('"([^"]*?\.cc)"'), ""), + ("test/cctest/BUILD.gn", re.compile('"(test-[^"]*?\.cc)"'), + Path("test/cctest/")), + ] for filename, pattern, prefix in gn_files: - with open(filename) as gn_file: + path = options.v8_root_dir / filename + with open(path) as gn_file: gn = gn_file.read() for condition, sources in re.findall("### gcmole\((.*?)\) ###(.*?)\]", gn, re.MULTILINE | re.DOTALL): if condition not in result: result[condition] = [] for file in pattern.findall(sources): - result[condition].append(prefix + file) + result[condition].append(options.v8_root_dir / prefix / file) return result -def EvaluateCondition(cond, props): +def evaluate_condition(cond, props): if cond == "all": return True @@ -245,34 +259,19 @@ def EvaluateCondition(cond, props): return props[p] == v -def BuildFileList(sources, props): - ret = [] - for condition, files in sources.items(): - if EvaluateCondition(condition, props): - ret += files - return ret - - -gn_sources = ParseGNFile(for_test=False) -gn_test_sources = ParseGNFile(for_test=True) - - -def FilesForArch(arch): - return BuildFileList(gn_sources, { - "os": "linux", - "arch": arch, - "mode": "debug", - "simulator": "" - }) - - -def FilesForTest(arch): - return BuildFileList(gn_test_sources, { +def build_file_list(options, for_test): + sources = parse_gn_file(options, for_test) + props = { "os": "linux", - "arch": arch, + "arch": options.v8_target_cpu, "mode": "debug", "simulator": "" - }) + } + ret = [] + for condition, files in list(sources.items()): + if evaluate_condition(condition, props): + ret += files + return ret # ----------------------------------------------------------------------------- @@ -308,19 +307,19 @@ def FilesForTest(arch): GC_PATTERN = ",.*Collect.*Garbage" SAFEPOINT_PATTERN = ",SafepointSlowPath" -ALLOWLIST_PATTERN = "|".join("(?:%s)" % p for p in ALLOWLIST) +ALLOWLIST_PATTERN = "|".join("(?:{})".format(p) for p in ALLOWLIST) -def MergeRegexp(pattern_dict): - return re.compile("|".join( - "(?P<%s>%s)" % (key, value) for (key, value) in pattern_dict.items())) +def merge_regexp(pattern_dict): + return re.compile("|".join("(?P<{}>{})".format(key, value) + for (key, value) in list(pattern_dict.items()))) -IS_SPECIAL_WITHOUT_ALLOW_LIST = MergeRegexp({ +IS_SPECIAL_WITHOUT_ALLOW_LIST = merge_regexp({ "gc": GC_PATTERN, "safepoint": SAFEPOINT_PATTERN }) -IS_SPECIAL_WITH_ALLOW_LIST = MergeRegexp({ +IS_SPECIAL_WITH_ALLOW_LIST = merge_regexp({ "gc": GC_PATTERN, "safepoint": SAFEPOINT_PATTERN, "allow": ALLOWLIST_PATTERN @@ -329,133 +328,139 @@ def MergeRegexp(pattern_dict): class GCSuspectsCollector: - def __init__(self, flags): + def __init__(self, options): self.gc = {} - self.gc_caused = collections.defaultdict(lambda: []) + self.gc_caused = collections.defaultdict(lambda: set()) self.funcs = {} self.current_caller = None - self.allowlist = flags["allowlist"] + self.allowlist = options.allowlist self.is_special = IS_SPECIAL_WITH_ALLOW_LIST if self.allowlist else IS_SPECIAL_WITHOUT_ALLOW_LIST - def AddCause(self, name, cause): - self.gc_caused[name].append(cause) + def add_cause(self, name, cause): + self.gc_caused[name].add(cause) - def Parse(self, lines): + def parse(self, lines): for funcname in lines: if not funcname: continue if funcname[0] != "\t": - self.Resolve(funcname) + self.resolve(funcname) self.current_caller = funcname else: name = funcname[1:] - callers_for_name = self.Resolve(name) + callers_for_name = self.resolve(name) callers_for_name.add(self.current_caller) - def Resolve(self, name): + def resolve(self, name): if name not in self.funcs: self.funcs[name] = set() m = self.is_special.search(name) if m: if m.group("gc"): self.gc[name] = True - self.AddCause(name, "") + self.add_cause(name, "") elif m.group("safepoint"): self.gc[name] = True - self.AddCause(name, "") + self.add_cause(name, "") elif m.group("allow"): self.gc[name] = False return self.funcs[name] - def Propagate(self): - log("** Propagating GC information") + def propagate(self): + log("Propagating GC information") def mark(funcname, callers): for caller in callers: if caller not in self.gc: self.gc[caller] = True mark(caller, self.funcs[caller]) + self.add_cause(caller, funcname) - self.AddCause(caller, funcname) - - for funcname, callers in self.funcs.items(): + for funcname, callers in list(self.funcs.items()): if self.gc.get(funcname, False): mark(funcname, callers) -def GenerateGCSuspects(arch, files, arch_cfg, flags, clang_bin_dir, - clang_plugins_dir): +def generate_gc_suspects(files, options): # Reset the global state. - collector = GCSuspectsCollector(flags) - - log("** Building GC Suspects for {}", arch) - for filename, stdout, stderr in InvokeClangPluginForEachFile( - files, "dump-callees", [], arch_cfg, flags, clang_bin_dir, - clang_plugins_dir): - collector.Parse(stdout.splitlines()) - - collector.Propagate() - - with open("gcsuspects", "w") as out: - for name, value in collector.gc.items(): + collector = GCSuspectsCollector(options) + + log("Building GC Suspects for {}", options.v8_target_cpu) + for _, stdout, _ in invoke_clang_plugin_for_each_file(files, "dump-callees", + [], options): + collector.parse(stdout.splitlines()) + collector.propagate() + # TODO(cbruni): remove once gcmole.cc is migrated + write_gcmole_results(collector, options, options.v8_root_dir) + write_gcmole_results(collector, options, options.out_dir) + + +def write_gcmole_results(collector, options, dst): + # gcsuspects contains a list("mangled_full_name,name") of all functions that + # could cause a gc (directly or indirectly). + # + # EXAMPLE + # _ZN2v88internal4Heap16CreateApiObjectsEv,CreateApiObjects + # _ZN2v88internal4Heap17CreateInitialMapsEv,CreateInitialMaps + # ... + with open(dst / "gcsuspects", "w") as out: + for name, value in list(collector.gc.items()): if value: out.write(name + "\n") - - with open("gccauses", "w") as out: - out.write("GC = {\n") - for name, causes in collector.gc_caused.items(): - out.write(" '{}': [\n".format(name)) + # gccauses contains a map["mangled_full_name,name"] => list(inner gcsuspects) + # Where the inner gcsuspects are functions directly called in the outer + # function that can cause a gc. The format is encoded for simplified + # deserialization in gcmole.cc. + # + # EXAMPLE: + # _ZN2v88internal4Heap17CreateHeapObjectsEv,CreateHeapObjects + # start,nested + # _ZN2v88internal4Heap16CreateApiObjectsEv,CreateApiObjects + # _ZN2v88internal4Heap17CreateInitialMapsEv,CreateInitialMaps + # ... + # end,nested + # ... + with open(dst / "gccauses", "w") as out: + for name, causes in list(collector.gc_caused.items()): + out.write("{}\n".format(name)) + out.write("start,nested\n") for cause in causes: - out.write(" '{}',\n".format(cause)) - out.write(" ],\n") - out.write("}\n") - - log("** GCSuspects generated for {}", arch) + out.write("{}\n".format(cause)) + out.write("end,nested\n") + log("GCSuspects and gccauses generated for {} in '{}'", options.v8_target_cpu, + dst) # ------------------------------------------------------------------------------ # Analysis -def CheckCorrectnessForArch(arch, for_test, flags, clang_bin_dir, - clang_plugins_dir): - if for_test: - files = FilesForTest(arch) - else: - files = FilesForArch(arch) - arch_cfg = ARCHITECTURES[arch] +def check_correctness_for_arch(options, for_test): + files = build_file_list(options, for_test) - if not flags["reuse_gcsuspects"]: - GenerateGCSuspects(arch, files, arch_cfg, flags, clang_bin_dir, - clang_plugins_dir) + if not options.reuse_gcsuspects: + generate_gc_suspects(files, options) else: - log("** Reusing GCSuspects for {}", arch) + log("Reusing GCSuspects for {}", options.v8_target_cpu) processed_files = 0 errors_found = False output = "" - log( - "** Searching for evaluation order problems{} for {}", - " and dead variables" if flags["dead_vars"] else "", - arch, - ) + log("Searching for evaluation order problems " + + (' and dead variables' if options.dead_vars else '') + "for" + + options.v8_target_cpu) plugin_args = [] - if flags["dead_vars"]: + if options.dead_vars: plugin_args.append("--dead-vars") - if flags["verbose_trace"]: + if options.verbose: plugin_args.append("--verbose") - for filename, stdout, stderr in InvokeClangPluginForEachFile( - files, - "find-problems", - plugin_args, - arch_cfg, - flags, - clang_bin_dir, - clang_plugins_dir, - ): + if options.verbose_trace: + plugin_args.append("--verbose-trace") + for _, _, stderr in invoke_clang_plugin_for_each_file(files, "find-problems", + plugin_args, options): processed_files = processed_files + 1 if not errors_found: errors_found = re.search("^[^:]+:\d+:\d+: (warning|error)", stderr, @@ -465,112 +470,281 @@ def CheckCorrectnessForArch(arch, for_test, flags, clang_bin_dir, else: sys.stdout.write(stderr) - log( - "** Done processing {} files. {}", - processed_files, - "Errors found" if errors_found else "No errors found", - ) + log("Done processing {} files.", processed_files) + log("Errors found" if errors_found else "No errors found") return errors_found, output -def TestRun(flags, clang_bin_dir, clang_plugins_dir): - log("** Test Run") - errors_found, output = CheckCorrectnessForArch("x64", True, flags, - clang_bin_dir, - clang_plugins_dir) +def test_run(options): + if not options.test_run: + return True + log("Test Run") + errors_found, output = check_correctness_for_arch(options, True) if not errors_found: - log("** Test file should produce errors, but none were found. Output:") - log(output) + log("Test file should produce errors, but none were found. Output:") + print(output) return False - filename = "tools/gcmole/test-expectations.txt" - with open(filename) as exp_file: + new_file = options.out_dir / "test-expectations-gen.txt" + with open(new_file, "w") as f: + f.write(output) + log("Wrote test-results: {}", new_file) + + expected_file = options.v8_root_dir / "tools/gcmole/test-expectations.txt" + with open(expected_file) as exp_file: expectations = exp_file.read() if output != expectations: - log("** Output mismatch from running tests. Please run them manually.") - + diff_file = options.out_dir / "test_output.diff" + print("#" * 79) + log("Output mismatch from running tests.") + log("Please run gcmole manually with --test-run --verbose.") + log("Expected: " + expected_file) + log("New: " + new_file) + log("*Diff:* " + diff_file) + print("#" * 79) for line in difflib.unified_diff( expectations.splitlines(), output.splitlines(), - fromfile=filename, - tofile="output", + fromfile=str(new_file), + tofile=str(diff_file), lineterm="", ): - log("{}", line) + print(line) - log("------") - log("--- Full output ---") - log(output) - log("------") + print("#" * 79) + log("Full output") + log("Expected: " + expected_file) + log("Diff: " + diff_file) + log("*New:* " + new_file) + print("#" * 79) + print(output) + print("#" * 79) return False - log("** Tests ran successfully") + log("Tests ran successfully") return True +# ============================================================================= +def relative_parents(path, level=0): + return Path(os.path.relpath(str(path.resolve().parents[level]))) + + def main(args): - DIR = os.path.dirname(args[0]) - - clang_bin_dir = os.getenv("CLANG_BIN") - clang_plugins_dir = os.getenv("CLANG_PLUGINS") - - if not clang_bin_dir or clang_bin_dir == "": - fatal("CLANG_BIN not set") - - if not clang_plugins_dir or clang_plugins_dir == "": - clang_plugins_dir = DIR - - flags = { - #: not build gcsuspects file and reuse previously generated one. - "reuse_gcsuspects": False, - #:n't use parallel python runner. - "sequential": False, - # Print commands to console before executing them. - "verbose": True, - # Perform dead variable analysis. - "dead_vars": True, - # Enable verbose tracing from the plugin itself. - "verbose_trace": False, - # When building gcsuspects allowlist certain functions as if they can be - # causing GC. Currently used to reduce number of false positives in dead - # variables analysis. See TODO for ALLOWLIST - "allowlist": True, - } - pos_args = [] - - flag_regexp = re.compile("^--(no[-_]?)?([\w\-_]+)$") - for arg in args[1:]: - m = flag_regexp.match(arg) - if m: - no, flag = m.groups() - flag = flag.replace("-", "_") - if flag in flags: - flags[flag] = no is None - else: - fatal("Unknown flag: {}", flag) + # Print arguments for better debugging on the bots + # Get a clean parent path relative to PWD + gcmole_dir = relative_parents(Path(args[0])) + + parser = optparse.OptionParser() + archs = list(ARCHITECTURES.keys()) + parser.add_option( + "--v8-target-cpu", + type="choice", + choices=archs, + help="Tested CPU architecture. Choices: {}".format(archs), + metavar="CPU") + default_clang_bin_dir = gcmole_dir / 'gcmole-tools/bin' + parser.add_option( + "--clang-bin-dir", + metavar="DIR", + help="Build dir of the custom clang version for gcmole." + \ + "Default: env['CLANG_DIR'] or '{}'".format(default_clang_bin_dir)) + parser.add_option( + "--clang-plugins-dir", + metavar="DIR", + help="Containing dir for libgcmole.so." + "Default: env['CLANG_PLUGINS'] or '{}'".format(gcmole_dir)) + default_root_dir = relative_parents(gcmole_dir, 1) + parser.add_option( + "--v8-root-dir", + metavar="DIR", + default=default_root_dir, + help="V8 checkout directory. Default: '{}'".format(default_root_dir)) + parser.add_option( + "--v8-build-dir", + metavar="BUILD_DIR", + help="GN build dir for v8. Default: 'out/CPU.Release'. " + "Config must match cpu specified by --v8-target-cpu") + parser.add_option( + "--out-dir", + metavar="DIR", + help="Output location for the gcsuspect and gcauses file." + "Default: BUILD_DIR/gen/tools/gcmole") + parser.add_option( + "--is-bot", + action="store_true", + default=False, + help="Flag for setting build bot specific settings.") + + group = optparse.OptionGroup(parser, "GCMOLE options") + group.add_option( + "--reuse-gcsuspects", + action="store_true", + default=False, + help="Don't build gcsuspects file and reuse previously generated one.") + group.add_option( + "--sequential", + action="store_true", + default=False, + help="Don't use parallel python runner.") + group.add_option( + "--verbose", + action="store_true", + default=False, + help="Print commands to console before executing them.") + group.add_option( + "--no-dead-vars", + action="store_false", + dest="dead_vars", + default=True, + help="Don't perform dead variable analysis.") + group.add_option( + "--verbose-trace", + action="store_true", + default=False, + help="Enable verbose tracing from the plugin itself." + "This can be useful to debug finding dead variable.") + group.add_option( + "--no-allowlist", + action="store_true", + default=True, + dest="allowlist", + help="When building gcsuspects allowlist certain functions as if they can be " + "causing GC. Currently used to reduce number of false positives in dead " + "variables analysis. See TODO for ALLOWLIST in gcmole.py") + group.add_option( + "--test-run", + action="store_true", + default=False, + help="Test gcmole on tools/gcmole/gcmole-test.cc") + parser.add_option_group(group) + + (options, args) = parser.parse_args() + + if not options.v8_target_cpu: + # Backwards compatibility + if len(args[0]) > 0 and args[0] in archs: + options.v8_target_cpu = args[0] + log("Using --v8-target-cpu={}", options.v8_target_cpu) else: - pos_args.append(arg) + parser.error("Missing --v8-target-cpu option") - archs = pos_args if len(pos_args) > 0 else ["ia32", "arm", "x64", "arm64"] + options.is_bot = False + verify_and_convert_dirs(parser, options, gcmole_dir, default_clang_bin_dir) + verify_clang_plugin(parser, options) + prepare_gcmole_files(options) + verify_build_config(parser, options) any_errors_found = False - if not TestRun(flags, clang_bin_dir, clang_plugins_dir): + if not test_run(options): any_errors_found = True else: - for arch in archs: - if not ARCHITECTURES[arch]: - fatal("Unknown arch: {}", arch) - - errors_found, output = CheckCorrectnessForArch(arch, False, flags, - clang_bin_dir, - clang_plugins_dir) - any_errors_found = any_errors_found or errors_found + errors_found, output = check_correctness_for_arch(options, False) + any_errors_found = any_errors_found or errors_found sys.exit(1 if any_errors_found else 0) +def verify_and_convert_dirs(parser, options, gcmole_dir, default_clang_bin_dir): + # Verify options for setting directors and convert the input strings to Path + # objects. + options.v8_root_dir = Path(options.v8_root_dir) + + if not options.clang_bin_dir: + if os.getenv("CLANG_BIN"): + options.clang_bin_dir = Path(os.getenv("CLANG_BIN")) + options.is_bot = True + else: + options.clang_bin_dir = default_clang_bin_dir + if not (options.clang_bin_dir / 'clang++').exists(): + options.clang_bin_dir = Path(gcmole_dir, + "tools/gcmole/bootstrap/build/bin") + log("Using --clang-bin-dir={}", options.clang_bin_dir) + else: + options.clang_bin_dir = Path(options.clang_bin_dir) + + if not options.clang_plugins_dir: + if os.getenv("CLANG_PLUGINS"): + options.clang_plugins_dir = Path(os.getenv("CLANG_PLUGINS")) + else: + options.clang_plugins_dir = gcmole_dir.resolve() + log("Using --clang-plugins-dir={}", options.clang_plugins_dir) + else: + options.clang_plugins_dir = Path(options.clang_plugins_dir) + + if not options.v8_build_dir: + config = ARCHITECTURES[options.v8_target_cpu] + options.v8_build_dir = options.v8_root_dir / ('out/%s.release' % + config.name) + # Fallback for build bots. + if not options.v8_build_dir.exists() and os.getenv("CLANG_BIN"): + options.v8_build_dir = options.v8_root_dir / 'out/build' + log("Using --v8-build-dir={}", options.v8_build_dir) + else: + options.v8_build_dir = Path(options.v8_build_dir) + + if not options.out_dir: + options.out_dir = options.v8_build_dir / 'gen/tools/gcmole' + if options.v8_build_dir.exists(): + options.out_dir.mkdir(parents=True, exist_ok=True) + else: + options.out_dir = Path(options.out_dir) + + for flag in [ + "--v8-root-dir", "--v8-build-dir", "--clang-bin-dir", + "--clang-plugins-dir", "--out-dir" + ]: + dir = getattr(options, parser.get_option(flag).dest) + if not dir.is_dir(): + parser.error("{}='{}' does not exist!".format(flag, dir)) + + +def verify_clang_plugin(parser, options): + libgcmole_path = options.clang_plugins_dir / "libgcmole.so" + if not libgcmole_path.is_file(): + parser.error("'{}' does not exist. Please build gcmole first.".format( + libgcmole_path)) + clang_path = options.clang_bin_dir / "clang++" + if not clang_path.is_file(): + parser.error( + "'{}' does not exist. Please build gcmole first.".format(clang_path)) + + +def prepare_gcmole_files(options): + cmd = [ + "ninja", "-C", options.v8_build_dir, "v8_gcmole_files", + "v8_dump_build_config" + ] + cmd = list(map(str, cmd)) + log("Preparing files: {}", " ".join(cmd)) + try: + subprocess.check_call(cmd) + except: + # Ignore ninja task errors on the bots + if options.is_bot: + log("Ninja command failed, ignoring errors.") + else: + raise + + +def verify_build_config(parser, options): + if options.is_bot: + #TODO(cbruni): Fix, currently not supported on the bots + return + config_file = options.v8_build_dir / 'v8_build_config.json' + with open(config_file) as f: + config = json.load(f) + found_cpu = None + for key in ('v8_target_cpu', 'target_cpu', 'current_cpu'): + found_cpu = config.get('v8_target_cpu') + if found_cpu == options.v8_target_cpu: + return + parser.error("Build dir '{}' config doesn't match request cpu. {}: {}".format( + options.v8_build_dir, options.v8_target_cpu, found_cpu)) + + if __name__ == "__main__": main(sys.argv) diff --git a/deps/v8/tools/gcmole/package.sh b/deps/v8/tools/gcmole/package.sh index bbddd5b7726cac..ceeffc2a297c53 100755 --- a/deps/v8/tools/gcmole/package.sh +++ b/deps/v8/tools/gcmole/package.sh @@ -14,6 +14,7 @@ PACKAGE_DIR="${THIS_DIR}/gcmole-tools" PACKAGE_FILE="${THIS_DIR}/gcmole-tools.tar.gz" PACKAGE_SUM="${THIS_DIR}/gcmole-tools.tar.gz.sha1" BUILD_DIR="${THIS_DIR}/bootstrap/build" +V8_ROOT_DIR= `realpath "${THIS_DIR}/../.."` # Echo all commands set -x @@ -72,5 +73,8 @@ echo "sudo chroot \$CHROOT_DIR bash -c 'PATH=/docs/depot_tools:\$PATH; /docs/v8/ echo echo You can now run gcmole using this command: echo -echo CLANG_BIN=\"tools/gcmole/gcmole-tools/bin\" python tools/gcmole/gcmole.py +echo 'tools/gcmole/gcmole.py \' +echo ' --clang-bin-dir="tools/gcmole/gcmole-tools/bin" \' +echo ' --clang-plugins-dir="tools/gcmole/gcmole-tools" \' +echo ' --v8-target-cpu=$CPU' echo diff --git a/deps/v8/tools/gcmole/run-gcmole.py b/deps/v8/tools/gcmole/run-gcmole.py index cfcb2dd4107fa0..b3b0b68d9d2b34 100755 --- a/deps/v8/tools/gcmole/run-gcmole.py +++ b/deps/v8/tools/gcmole/run-gcmole.py @@ -1,11 +1,8 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2016 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# for py2/py3 compatibility -from __future__ import print_function - import os import os.path import signal diff --git a/deps/v8/tools/gcmole/suspects.whitelist b/deps/v8/tools/gcmole/suspects.allowlist similarity index 100% rename from deps/v8/tools/gcmole/suspects.whitelist rename to deps/v8/tools/gcmole/suspects.allowlist diff --git a/deps/v8/tools/gdbinit b/deps/v8/tools/gdbinit index 4e26346afaa48c..3db2e42278ea33 100644 --- a/deps/v8/tools/gdbinit +++ b/deps/v8/tools/gdbinit @@ -161,16 +161,17 @@ end set disable-randomization off # Install a handler whenever the debugger stops due to a signal. It walks up the -# stack looking for V8_Dcheck and moves the frame to the one above it so it's -# immediately at the line of code that triggered the DCHECK. +# stack looking for V8_Dcheck / V8_Fatal / OS::DebugBreak frame and moves the +# frame to the one above it so it's immediately at the line of code that +# triggered the stop condition. python -def dcheck_stop_handler(event): +def v8_stop_handler(event): frame = gdb.selected_frame() select_frame = None message = None count = 0 - # limit stack scanning since they're usually shallow and otherwise stack - # overflows can be very slow. + # Limit stack scanning since the frames we look for are near the top anyway, + # and otherwise stack overflows can be very slow. while frame is not None and count < 7: count += 1 # If we are in a frame created by gdb (e.g. for `(gdb) call foo()`), gdb @@ -186,6 +187,8 @@ def dcheck_stop_handler(event): break if frame.name() is not None and frame.name().startswith('V8_Fatal'): select_frame = frame.older() + if frame.name() == 'v8::base::OS::DebugBreak': + select_frame = frame.older() frame = frame.older() if select_frame is not None: @@ -194,7 +197,7 @@ def dcheck_stop_handler(event): if message: print('DCHECK error: {}'.format(message)) -gdb.events.stop.connect(dcheck_stop_handler) +gdb.events.stop.connect(v8_stop_handler) end # Code imported from chromium/src/tools/gdb/gdbinit diff --git a/deps/v8/tools/gen-keywords-gen-h.py b/deps/v8/tools/gen-keywords-gen-h.py index 02750dc109620e..97c91ee289488c 100755 --- a/deps/v8/tools/gen-keywords-gen-h.py +++ b/deps/v8/tools/gen-keywords-gen-h.py @@ -83,7 +83,8 @@ def trim_and_dcheck_char_table(out): def use_isinrange(out): # Our IsInRange method is more efficient than checking for min/max length return checked_sub(r'if \(len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH\)', - r'if (IsInRange(len, MIN_WORD_LENGTH, MAX_WORD_LENGTH))', + r'if (base::IsInRange(len, MIN_WORD_LENGTH, ' + + r'MAX_WORD_LENGTH))', out) diff --git a/deps/v8/tools/gen-postmortem-metadata.py b/deps/v8/tools/gen-postmortem-metadata.py index 298af332d9d3c0..9fae92417e580b 100644 --- a/deps/v8/tools/gen-postmortem-metadata.py +++ b/deps/v8/tools/gen-postmortem-metadata.py @@ -337,7 +337,7 @@ */ #include "src/init/v8.h" -#include "src/codegen/register-arch.h" +#include "src/codegen/register.h" #include "src/execution/frames.h" #include "src/execution/frames-inl.h" /* for architecture-specific frame constants */ #include "src/objects/contexts.h" @@ -359,7 +359,7 @@ #undef FRAME_CONST -''' % sys.argv[0]; +''' % sys.argv[0] footer = ''' } @@ -440,12 +440,12 @@ def load_objects_from_file(objfilename, checktypes): continue; if (in_torque_insttype and (not line or line.isspace())): - in_torque_insttype = False - continue + in_torque_insttype = False + continue if (in_torque_fulldef and (not line or line.isspace())): - in_torque_fulldef = False - continue + in_torque_fulldef = False + continue pre = line.strip() line = re.sub('// .*', '', line.strip()); @@ -497,7 +497,7 @@ def load_objects_from_file(objfilename, checktypes): for entry in entries: entry = entry.strip() if not entry: - continue + continue start = entry.find('('); end = entry.find(')', start); rest = entry[start + 1: end]; diff --git a/deps/v8/tools/generate-header-include-checks.py b/deps/v8/tools/generate-header-include-checks.py index 42c118c9d5ece0..2d6f218e1161b5 100755 --- a/deps/v8/tools/generate-header-include-checks.py +++ b/deps/v8/tools/generate-header-include-checks.py @@ -37,14 +37,17 @@ 'src/trap-handler/trap-handler-simulator.h', ] AUTO_EXCLUDE_PATTERNS = [ - 'src/base/atomicops_internals_.*', - # TODO(petermarshall): Enable once Perfetto is built by default. - 'src/libplatform/tracing/perfetto*', + 'src/base/atomicops_internals_.*', + # TODO(petermarshall): Enable once Perfetto is built by default. + 'src/libplatform/tracing/perfetto*', + # TODO(v8:7700): Enable once Maglev is built by default. + 'src/maglev/.*', ] + [ - # platform-specific headers - '\\b{}\\b'.format(p) for p in - ('win', 'win32', 'ia32', 'x64', 'arm', 'arm64', 'mips', 'mips64', 's390', - 'ppc', 'riscv64', 'loong64')] + # platform-specific headers + '\\b{}\\b'.format(p) + for p in ('win', 'win32', 'ia32', 'x64', 'arm', 'arm64', 'mips', 'mips64', + 's390', 'ppc', 'riscv64', 'loong64') +] args = None def parse_args(): diff --git a/deps/v8/tools/get_landmines.py b/deps/v8/tools/get_landmines.py index bf8efa595e4ebd..a2ace649f662c8 100755 --- a/deps/v8/tools/get_landmines.py +++ b/deps/v8/tools/get_landmines.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright 2014 the V8 project authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. @@ -8,9 +8,6 @@ (or a list of 'landmines'). """ -# for py2/py3 compatibility -from __future__ import print_function - import os import sys diff --git a/deps/v8/tools/grokdump.py b/deps/v8/tools/grokdump.py index 368580f0c3ae01..1e10b36f8bed06 100755 --- a/deps/v8/tools/grokdump.py +++ b/deps/v8/tools/grokdump.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright 2012 the V8 project authors. All rights reserved. # Redistribution and use in source and binary forms, with or without @@ -30,12 +30,9 @@ # flake8: noqa # https://bugs.chromium.org/p/v8/issues/detail?id=8784 -# for py2/py3 compatibility -from __future__ import print_function - -import BaseHTTPServer +import http.server as http_server import bisect -import cgi +import html import cmd import codecs import ctypes @@ -46,11 +43,10 @@ import optparse import os import re -import StringIO +import io import sys import types -import urllib -import urlparse +import urllib.parse import v8heapconst import webbrowser @@ -168,7 +164,7 @@ def dump_region(reader, start, size, location): print("%s - %s" % (reader.FormatIntPtr(start), reader.FormatIntPtr(start + size))) print(start + size + 1); - for i in range(0, size, reader.PointerSize()): + for i in range(0, size, reader.MachinePointerSize()): slot = start + i maybe_address = reader.ReadUIntPtr(slot) heap_object = heap.FindObject(maybe_address) @@ -609,12 +605,14 @@ def __cmp__(self, other): def Covers(self, addr): return (self.start <= addr) and (addr < self.end) + class MinidumpReader(object): """Minidump (.dmp) reader.""" _HEADER_MAGIC = 0x504d444d def __init__(self, options, minidump_name): + self._reset() self.minidump_name = minidump_name if sys.platform == 'win32': self.minidump_file = open(minidump_name, "a+") @@ -626,11 +624,19 @@ def __init__(self, options, minidump_name): if self.header.signature != MinidumpReader._HEADER_MAGIC: print("Warning: Unsupported minidump header magic!", file=sys.stderr) DebugPrint(self.header) - directories = [] offset = self.header.stream_directories_rva + directories = [] for _ in range(self.header.stream_count): directories.append(MINIDUMP_DIRECTORY.Read(self.minidump, offset)) offset += MINIDUMP_DIRECTORY.size + + self.symdir = options.symdir + self._ReadArchitecture(directories) + self._ReadDirectories(directories) + self._FindObjdump(options) + + def _reset(self): + self.header = None self.arch = None self.exception = None self.exception_context = None @@ -639,13 +645,9 @@ def __init__(self, options, minidump_name): self.module_list = None self.thread_map = {} - self.symdir = options.symdir self.modules_with_symbols = [] self.symbols = [] - self._ReadArchitecture(directories) - self._ReadDirectories(directories) - self._FindObjdump(options) def _ReadArchitecture(self, directories): # Find MDRawSystemInfo stream and determine arch. @@ -710,7 +712,7 @@ def _ReadDirectories(self, directories): def _FindObjdump(self, options): if options.objdump: - objdump_bin = options.objdump + objdump_bin = options.objdump else: objdump_bin = self._FindThirdPartyObjdump() if not objdump_bin or not os.path.exists(objdump_bin): @@ -722,29 +724,29 @@ def _FindObjdump(self, options): disasm.OBJDUMP_BIN = objdump_bin def _FindThirdPartyObjdump(self): - # Try to find the platform specific objdump - third_party_dir = os.path.join( - os.path.dirname(os.path.dirname(__file__)), 'third_party') - objdumps = [] - for root, dirs, files in os.walk(third_party_dir): - for file in files: - if file.endswith("objdump"): - objdumps.append(os.path.join(root, file)) - if self.arch == MD_CPU_ARCHITECTURE_ARM: - platform_filter = 'arm-linux' - elif self.arch == MD_CPU_ARCHITECTURE_ARM64: - platform_filter = 'aarch64' - else: - # use default otherwise - return None - print(("# Looking for platform specific (%s) objdump in " - "third_party directory.") % platform_filter) - objdumps = filter(lambda file: platform_filter in file >= 0, objdumps) - if len(objdumps) == 0: - print("# Could not find platform specific objdump in third_party.") - print("# Make sure you installed the correct SDK.") - return None - return objdumps[0] + # Try to find the platform specific objdump + third_party_dir = os.path.join( + os.path.dirname(os.path.dirname(__file__)), 'third_party') + objdumps = [] + for root, dirs, files in os.walk(third_party_dir): + for file in files: + if file.endswith("objdump"): + objdumps.append(os.path.join(root, file)) + if self.arch == MD_CPU_ARCHITECTURE_ARM: + platform_filter = 'arm-linux' + elif self.arch == MD_CPU_ARCHITECTURE_ARM64: + platform_filter = 'aarch64' + else: + # use default otherwise + return None + print(("# Looking for platform specific (%s) objdump in " + "third_party directory.") % platform_filter) + objdumps = list(filter(lambda file: platform_filter in file >= 0, objdumps)) + if len(objdumps) == 0: + print("# Could not find platform specific objdump in third_party.") + print("# Make sure you installed the correct SDK.") + return None + return objdumps[0] def ContextDescriptor(self): if self.arch == MD_CPU_ARCHITECTURE_X86: @@ -765,7 +767,7 @@ def IsValidAddress(self, address): return self.FindLocation(address) is not None def IsAlignedAddress(self, address): - return (address % self.PointerSize()) == 0 + return (address % self.MachinePointerSize()) == 0 def IsExceptionStackAddress(self, address): if not self.IsAlignedAddress(address): return False @@ -804,11 +806,29 @@ def Is64(self): return (self.arch == MD_CPU_ARCHITECTURE_ARM64 or self.arch == MD_CPU_ARCHITECTURE_AMD64) + def IsPointerCompressed(self): + # Assume all 64-bit builds are pointer compressed. + return self.Is64() + + def Is32BitTagged(self): + return not self.Is64() or self.IsPointerCompressed() + + def ReadTagged(self, address): + if self.Is32BitTagged(): + return self.ReadU32(address) + return self.ReadU64(address) + def ReadUIntPtr(self, address): if self.Is64(): return self.ReadU64(address) return self.ReadU32(address) + def ReadSized(self, address, size): + if size == 8: + return self.ReadU64(address) + assert (size == 4) + return self.ReadU32(address) + def ReadBytes(self, address, size): location = self.FindLocation(address) return self.minidump[location:location + size] @@ -819,8 +839,10 @@ def _ReadWord(self, location): return ctypes.c_uint32.from_buffer(self.minidump, location).value def ReadAsciiPtr(self, address): - ascii_content = [c if c >= '\x20' and c < '\x7f' else '.' - for c in self.ReadBytes(address, self.PointerSize())] + ascii_content = [ + chr(c) if c >= 0x20 and c < 0x7f else '.' + for c in self.ReadBytes(address, self.MachinePointerSize()) + ] return ''.join(ascii_content) def ReadAsciiString(self, address): @@ -908,7 +930,7 @@ def ForEachMemoryRegion(self, cb): def FindWord(self, word, alignment=0): def search_inside_region(reader, start, size, location): location = (location + alignment) & ~alignment - for i in range(size - self.PointerSize()): + for i in range(size - self.MachinePointerSize()): loc = location + i if reader._ReadWord(loc) == word: slot = start + (loc - location) @@ -920,7 +942,7 @@ def FindWordList(self, word): aligned_res = [] unaligned_res = [] def search_inside_region(reader, start, size, location): - for i in range(size - self.PointerSize()): + for i in range(size - self.MachinePointerSize()): loc = location + i if reader._ReadWord(loc) == word: slot = start + (loc - location) @@ -974,6 +996,7 @@ def CountUndefinedInstructions(lines): def Dispose(self): + self._reset() self.minidump.close() self.minidump_file.close() @@ -1023,11 +1046,21 @@ def FormatIntPtr(self, value): return "%016x" % value return "%08x" % value - def PointerSize(self): + def FormatTagged(self, value): + if self.Is64() and not self.IsPointerCompressed(): + return "%016x" % value + return "%08x" % value + + def MachinePointerSize(self): if self.Is64(): return 8 return 4 + def TaggedPointerSize(self): + if self.IsPointerCompressed(): + return 4 + return self.MachinePointerSize() + def Register(self, name): return self.exception_context.__getattribute__(name) @@ -1173,11 +1206,11 @@ def __str__(self): instance_type) def ObjectField(self, offset): - field_value = self.heap.reader.ReadUIntPtr(self.address + offset) + field_value = self.heap.reader.ReadTagged(self.address + offset) return self.heap.FindObjectOrSmi(field_value) def SmiField(self, offset): - field_value = self.heap.reader.ReadUIntPtr(self.address + offset) + field_value = self.heap.reader.ReadTagged(self.address + offset) if self.heap.IsSmi(field_value): return self.heap.SmiUntag(field_value) return None @@ -1189,7 +1222,7 @@ def Decode(self, offset, size, value): # Instance Sizes def InstanceSizesOffset(self): - return self.heap.PointerSize() + return self.heap.TaggedPointerSize() def InstanceSizeOffset(self): return self.InstanceSizesOffset() @@ -1224,28 +1257,29 @@ def BitField3Offset(self): return self.InstanceAttributesOffset() + self.heap.IntSize() def PrototypeOffset(self): - return self.BitField3Offset() + self.heap.PointerSize() + return self.BitField3Offset() + self.heap.TaggedPointerSize() def ConstructorOrBackPointerOffset(self): - return self.PrototypeOffset() + self.heap.PointerSize() + return self.PrototypeOffset() + self.heap.TaggedPointerSize() def TransitionsOrPrototypeInfoOffset(self): - return self.ConstructorOrBackPointerOffset() + self.heap.PointerSize() + return self.ConstructorOrBackPointerOffset() + self.heap.TaggedPointerSize() def DescriptorsOffset(self): - return self.TransitionsOrPrototypeInfoOffset() + self.heap.PointerSize() + return (self.TransitionsOrPrototypeInfoOffset() + + self.heap.TaggedPointerSize()) def CodeCacheOffset(self): - return self.DescriptorsOffset() + self.heap.PointerSize() + return self.DescriptorsOffset() + self.heap.TaggedPointerSize() def DependentCodeOffset(self): - return self.CodeCacheOffset() + self.heap.PointerSize() + return self.CodeCacheOffset() + self.heap.TaggedPointerSize() def ReadByte(self, offset): return self.heap.reader.ReadU8(self.address + offset) - def ReadWord(self, offset): - return self.heap.reader.ReadUIntPtr(self.address + offset) + def ReadSlot(self, offset): + return self.heap.reader.ReadTagged(self.address + offset) def Print(self, p): p.Print("Map(%08x)" % (self.address)) @@ -1264,7 +1298,7 @@ def Print(self, p): p.Print(" - kind: %s" % (self.Decode(3, 5, bitfield2))) - bitfield3 = self.ReadWord(self.BitField3Offset()) + bitfield3 = self.ReadSlot(self.BitField3Offset()) p.Print( " - EnumLength: %d NumberOfOwnDescriptors: %d OwnsDescriptors: %s" % ( @@ -1299,7 +1333,7 @@ def __init__(self, heap, map, address): class String(HeapObject): def LengthOffset(self): # First word after the map is the hash, the second is the length. - return self.heap.PointerSize() * 2 + return self.heap.TaggedPointerSize() * 2 def __init__(self, heap, map, address): HeapObject.__init__(self, heap, map, address) @@ -1317,7 +1351,7 @@ def __str__(self): class SeqString(String): def CharsOffset(self): - return self.heap.PointerSize() * 3 + return self.heap.TaggedPointerSize() * 3 def __init__(self, heap, map, address): String.__init__(self, heap, map, address) @@ -1360,10 +1394,10 @@ def GetChars(self): class ConsString(String): def LeftOffset(self): - return self.heap.PointerSize() * 3 + return self.heap.TaggedPointerSize() * 3 def RightOffset(self): - return self.heap.PointerSize() * 4 + return self.heap.TaggedPointerSize() * 4 def __init__(self, heap, map, address): String.__init__(self, heap, map, address) @@ -1390,13 +1424,13 @@ class Oddball(HeapObject): ] def ToStringOffset(self): - return self.heap.PointerSize() + return self.heap.TaggedPointerSize() def ToNumberOffset(self): - return self.ToStringOffset() + self.heap.PointerSize() + return self.ToStringOffset() + self.heap.TaggedPointerSize() def KindOffset(self): - return self.ToNumberOffset() + self.heap.PointerSize() + return self.ToNumberOffset() + self.heap.TaggedPointerSize() def __init__(self, heap, map, address): HeapObject.__init__(self, heap, map, address) @@ -1418,13 +1452,13 @@ def __str__(self): class FixedArray(HeapObject): def LengthOffset(self): - return self.heap.PointerSize() + return self.heap.TaggedPointerSize() def ElementsOffset(self): - return self.heap.PointerSize() * 2 + return self.heap.TaggedPointerSize() * 2 def MemberOffset(self, i): - return self.ElementsOffset() + self.heap.PointerSize() * i + return self.ElementsOffset() + self.heap.TaggedPointerSize() * i def Get(self, i): return self.ObjectField(self.MemberOffset(i)) @@ -1561,10 +1595,10 @@ def Print(self, p): class JSFunction(HeapObject): def CodeEntryOffset(self): - return 3 * self.heap.PointerSize() + return 3 * self.heap.TaggedPointerSize() def SharedOffset(self): - return 5 * self.heap.PointerSize() + return 5 * self.heap.TaggedPointerSize() def __init__(self, heap, map, address): HeapObject.__init__(self, heap, map, address) @@ -1611,19 +1645,19 @@ def _GetSource(self): class SharedFunctionInfo(HeapObject): def CodeOffset(self): - return 2 * self.heap.PointerSize() + return 2 * self.heap.TaggedPointerSize() def ScriptOffset(self): - return 7 * self.heap.PointerSize() + return 7 * self.heap.TaggedPointerSize() def InferredNameOffset(self): - return 9 * self.heap.PointerSize() + return 9 * self.heap.TaggedPointerSize() def EndPositionOffset(self): - return 12 * self.heap.PointerSize() + 4 * self.heap.IntSize() + return 12 * self.heap.TaggedPointerSize() + 4 * self.heap.IntSize() def StartPositionAndTypeOffset(self): - return 12 * self.heap.PointerSize() + 5 * self.heap.IntSize() + return 12 * self.heap.TaggedPointerSize() + 5 * self.heap.IntSize() def __init__(self, heap, map, address): HeapObject.__init__(self, heap, map, address) @@ -1631,7 +1665,7 @@ def __init__(self, heap, map, address): self.code = self.ObjectField(self.CodeOffset()) self.script = self.ObjectField(self.ScriptOffset()) self.inferred_name = self.ObjectField(self.InferredNameOffset()) - if heap.PointerSize() == 8: + if heap.TaggedPointerSize() == 8: start_position_and_type = \ heap.reader.ReadU32(self.StartPositionAndTypeOffset()) self.start_position = start_position_and_type >> 2 @@ -1653,10 +1687,10 @@ def __init__(self, heap, map, address): class Script(HeapObject): def SourceOffset(self): - return self.heap.PointerSize() + return self.heap.TaggedPointerSize() def NameOffset(self): - return self.SourceOffset() + self.heap.PointerSize() + return self.SourceOffset() + self.heap.TaggedPointerSize() def __init__(self, heap, map, address): HeapObject.__init__(self, heap, map, address) @@ -1666,10 +1700,10 @@ def __init__(self, heap, map, address): class CodeCache(HeapObject): def DefaultCacheOffset(self): - return self.heap.PointerSize() + return self.heap.TaggedPointerSize() def NormalTypeCacheOffset(self): - return self.DefaultCacheOffset() + self.heap.PointerSize() + return self.DefaultCacheOffset() + self.heap.TaggedPointerSize() def __init__(self, heap, map, address): HeapObject.__init__(self, heap, map, address) @@ -1689,12 +1723,12 @@ class Code(HeapObject): CODE_ALIGNMENT_MASK = (1 << 5) - 1 def InstructionSizeOffset(self): - return self.heap.PointerSize() + return self.heap.TaggedPointerSize() @staticmethod def HeaderSize(heap): - return (heap.PointerSize() + heap.IntSize() + \ - 4 * heap.PointerSize() + 3 * heap.IntSize() + \ + return (heap.TaggedPointerSize() + heap.IntSize() + \ + 4 * heap.TaggedPointerSize() + 3 * heap.IntSize() + \ Code.CODE_ALIGNMENT_MASK) & ~Code.CODE_ALIGNMENT_MASK def __init__(self, heap, map, address): @@ -1763,7 +1797,7 @@ def FindObject(self, tagged_address): if not self.IsTaggedObjectAddress(tagged_address): return None address = tagged_address - 1 if not self.reader.IsValidAddress(address): return None - map_tagged_address = self.reader.ReadUIntPtr(address) + map_tagged_address = self.reader.ReadTagged(address) if tagged_address == map_tagged_address: # Meta map? meta_map = Map(self, None, address) @@ -1796,11 +1830,17 @@ def FindMapAddress(self, tagged_address): def IntSize(self): return 4 - def PointerSize(self): - return self.reader.PointerSize() + def MachinePointerSize(self): + return self.reader.MachinePointerSize() + + def TaggedPointerSize(self): + return self.reader.TaggedPointerSize() + + def IsPointerCompressed(self): + return self.reader.IsPointerCompressed() def ObjectAlignmentMask(self): - return self.PointerSize() - 1 + return self.TaggedPointerSize() - 1 def IsTaggedObjectAddress(self, address): return (address & self.ObjectAlignmentMask()) == 1 @@ -1829,13 +1869,14 @@ def IsTaggedAddress(self, address): return (address & self.ObjectAlignmentMask()) == 1 def IsSmi(self, tagged_address): - if self.reader.Is64(): + if self.reader.Is64() and not self.reader.IsPointerCompressed(): return (tagged_address & 0xFFFFFFFF) == 0 return not self.IsTaggedAddress(tagged_address) def SmiUntag(self, tagged_address): - if self.reader.Is64(): return tagged_address >> 32 - return tagged_address >> 1 + if self.reader.Is64() and not self.reader.IsPointerCompressed(): + return tagged_address >> 32 + return (tagged_address >> 1) & 0xFFFFFFFF def AddressTypeMarker(self, address): if not self.reader.IsValidAddress(address): return " " @@ -1858,7 +1899,7 @@ def RelativeOffset(self, slot, address): if self.IsTaggedObjectAddress(address): address -= 1 if not self.reader.IsValidAlignedAddress(address): return None - offset = (address - slot) / self.PointerSize() + offset = (address - slot) / self.MachinePointerSize() lower_limit = -32 upper_limit = 128 @@ -1873,12 +1914,12 @@ def RelativeOffset(self, slot, address): def FindObjectPointers(self, start=0, end=0): objects = set() def find_object_in_region(reader, start, size, location): - for slot in range(start, start+size, self.reader.PointerSize()): + for slot in range(start, start + size, self.reader.TaggedPointerSize()): if not self.reader.IsValidAddress(slot): break # Collect only tagged pointers (object) to tagged pointers (map) - tagged_address = self.reader.ReadUIntPtr(slot) + tagged_address = self.reader.ReadTagged(slot) if not self.IsValidTaggedObjectAddress(tagged_address): continue - map_address = self.reader.ReadUIntPtr(tagged_address - 1) + map_address = self.reader.ReadTagged(tagged_address - 1) if not self.IsTaggedMapAddress(map_address): continue objects.add(tagged_address) @@ -1951,10 +1992,12 @@ def color_addresses(self): exception_thread.stack.memory.data_size frame_pointer = self.reader.ExceptionFP() self.styles[frame_pointer] = "frame" - for slot in range(stack_top, stack_bottom, self.reader.PointerSize()): + for slot in range(stack_top, stack_bottom, + self.reader.MachinePointerSize()): # stack address self.styles[slot] = "sa" - for slot in range(stack_top, stack_bottom, self.reader.PointerSize()): + for slot in range(stack_top, stack_bottom, + self.reader.MachinePointerSize()): maybe_address = self.reader.ReadUIntPtr(slot) # stack value self.styles[maybe_address] = "sv" @@ -2026,7 +2069,7 @@ def IsFrameMarker(self, slot, address): # Frame markers only occur directly after a frame pointer and only on the # stack. if not self.reader.IsExceptionStackAddress(slot): return False - next_slot = slot + self.reader.PointerSize() + next_slot = slot + self.reader.MachinePointerSize() if not self.reader.IsValidAddress(next_slot): return False next_address = self.reader.ReadUIntPtr(next_slot) return self.reader.IsExceptionStackAddress(next_address) @@ -2058,7 +2101,7 @@ def SenseObject(self, address, slot=None): if found_obj: return found_obj address = tagged_address - 1 if self.reader.IsValidAddress(address): - map_tagged_address = self.reader.ReadUIntPtr(address) + map_tagged_address = self.reader.ReadTagged(address) map = self.SenseMap(map_tagged_address) if map is None: return None instance_type_name = INSTANCE_TYPES.get(map.instance_type) @@ -2118,7 +2161,7 @@ def PrintStackTraceMessage(self, start=None, print_message=True): Returns the first address where the normal stack starts again. """ # Only look at the first 1k words on the stack - ptr_size = self.reader.PointerSize() + ptr_size = self.reader.MachinePointerSize() if start is None: start = self.reader.ExceptionSP() if not self.reader.IsValidAddress(start): return start end = start + ptr_size * 1024 * 4 @@ -2140,7 +2183,7 @@ def PrintStackTraceMessage(self, start=None, print_message=True): print_message) def TryExtractStackTrace(self, slot, start, end, print_message): - ptr_size = self.reader.PointerSize() + ptr_size = self.reader.MachinePointerSize() assert self.reader.ReadUIntPtr(slot) & 0xFFFFFFFF == STACK_TRACE_MARKER end_marker = STACK_TRACE_MARKER + 1; header_size = 10 @@ -2163,7 +2206,7 @@ def TryExtractStackTrace(self, slot, start, end, print_message): return stack_start def FindPtr(self, expected_value, start, end): - ptr_size = self.reader.PointerSize() + ptr_size = self.reader.MachinePointerSize() for slot in range(start, end, ptr_size): if not self.reader.IsValidAddress(slot): return None value = self.reader.ReadUIntPtr(slot) @@ -2171,7 +2214,7 @@ def FindPtr(self, expected_value, start, end): return None def TryExtractErrorMessage(self, slot, start, end, print_message): - ptr_size = self.reader.PointerSize() + ptr_size = self.reader.MachinePointerSize() end_marker = ERROR_MESSAGE_MARKER + 1; header_size = 1 end_search = start + 1024 + (header_size * ptr_size); @@ -2186,7 +2229,7 @@ def TryExtractErrorMessage(self, slot, start, end, print_message): def TryExtractOldStyleStackTrace(self, message_slot, start, end, print_message): - ptr_size = self.reader.PointerSize() + ptr_size = self.reader.MachinePointerSize() if message_slot == 0: """ On Mac we don't always get proper magic markers, so just try printing @@ -2225,7 +2268,7 @@ def FormatStackTrace(self, message, print_message): print(" Use `dsa` to print the message with annotated addresses.") print("") return - ptr_size = self.reader.PointerSize() + ptr_size = self.reader.MachinePointerSize() # Annotate all addresses in the dumped message prog = re.compile("[0-9a-fA-F]{%s}" % ptr_size*2) addresses = list(set(prog.findall(message))) @@ -2252,7 +2295,7 @@ def TryInferFramePointer(self, slot, address): def TryInferContext(self, address): if self.context: return - ptr_size = self.reader.PointerSize() + ptr_size = self.reader.MachinePointerSize() possible_context = dict() count = 0 while self.reader.IsExceptionStackAddress(address): @@ -2266,7 +2309,7 @@ def TryInferContext(self, address): count += 1 if count <= 5 or len(possible_context) == 0: return # Find entry with highest count - possible_context = possible_context.items() + possible_context = list(possible_context.items()) possible_context.sort(key=lambda pair: pair[1]) address,count = possible_context[-1] if count <= 4: return @@ -2287,7 +2330,7 @@ def InterpretMemory(self, start, end): in_oom_dump_area = False is_stack = self.reader.IsExceptionStackAddress(start) free_space_end = 0 - ptr_size = self.reader.PointerSize() + ptr_size = self.reader.TaggedPointerSize() for slot in range(start, end, ptr_size): if not self.reader.IsValidAddress(slot): @@ -2309,7 +2352,7 @@ def InterpretMemory(self, start, end): if isinstance(heap_object, KnownMap) and \ heap_object.known_name == "FreeSpaceMap": # The free-space length is is stored as a Smi in the next slot. - length = self.reader.ReadUIntPtr(slot + ptr_size) + length = self.reader.ReadTagged(slot + ptr_size) if self.heap.IsSmi(length): length = self.heap.SmiUntag(length) free_space_end = slot + length - ptr_size @@ -2575,11 +2618,11 @@ def InterpretMemory(self, start, end): class WebParameterError(Exception): - def __init__(self, message): - Exception.__init__(self, message) + pass -class InspectionWebHandler(BaseHTTPServer.BaseHTTPRequestHandler): +class InspectionWebHandler(http_server.BaseHTTPRequestHandler): + def formatter(self, query_components): name = query_components.get("dump", [None])[0] return self.server.get_dump_formatter(name) @@ -2593,40 +2636,39 @@ def send_success_html_headers(self): self.end_headers() return + def write(self, string): + self.wfile.write(string.encode('utf-8')) + def do_GET(self): try: - parsedurl = urlparse.urlparse(self.path) - query_components = urlparse.parse_qs(parsedurl.query) + parsedurl = urllib.parse.urlparse(self.path) + query_components = urllib.parse.parse_qs(parsedurl.query) + out_buffer = io.StringIO() if parsedurl.path == "/dumps.html": self.send_success_html_headers() - out_buffer = StringIO.StringIO() self.server.output_dumps(out_buffer) - self.wfile.write(out_buffer.getvalue()) + self.write(out_buffer.getvalue()) elif parsedurl.path == "/summary.html": self.send_success_html_headers() - out_buffer = StringIO.StringIO() self.formatter(query_components).output_summary(out_buffer) - self.wfile.write(out_buffer.getvalue()) + self.write(out_buffer.getvalue()) elif parsedurl.path == "/info.html": self.send_success_html_headers() - out_buffer = StringIO.StringIO() self.formatter(query_components).output_info(out_buffer) - self.wfile.write(out_buffer.getvalue()) + self.write(out_buffer.getvalue()) elif parsedurl.path == "/modules.html": self.send_success_html_headers() - out_buffer = StringIO.StringIO() self.formatter(query_components).output_modules(out_buffer) - self.wfile.write(out_buffer.getvalue()) + self.write(out_buffer.getvalue()) elif parsedurl.path == "/search.html" or parsedurl.path == "/s": address = query_components.get("val", []) if len(address) != 1: self.send_error(404, "Invalid params") return self.send_success_html_headers() - out_buffer = StringIO.StringIO() self.formatter(query_components).output_search_res( out_buffer, address[0]) - self.wfile.write(out_buffer.getvalue()) + self.write(out_buffer.getvalue()) elif parsedurl.path == "/disasm.html": address = query_components.get("val", []) exact = query_components.get("exact", ["on"]) @@ -2634,19 +2676,17 @@ def do_GET(self): self.send_error(404, "Invalid params") return self.send_success_html_headers() - out_buffer = StringIO.StringIO() self.formatter(query_components).output_disasm( out_buffer, address[0], exact[0]) - self.wfile.write(out_buffer.getvalue()) + self.write(out_buffer.getvalue()) elif parsedurl.path == "/data.html": address = query_components.get("val", []) datakind = query_components.get("type", ["address"]) if len(address) == 1 and len(datakind) == 1: self.send_success_html_headers() - out_buffer = StringIO.StringIO() self.formatter(query_components).output_data( out_buffer, address[0], datakind[0]) - self.wfile.write(out_buffer.getvalue()) + self.write(out_buffer.getvalue()) else: self.send_error(404,'Invalid params') elif parsedurl.path == "/setdumpdesc": @@ -2657,7 +2697,7 @@ def do_GET(self): description = description[0] if self.server.set_dump_desc(name, description): self.send_success_html_headers() - self.wfile.write("OK") + self.write("OK") return self.send_error(404,'Invalid params') elif parsedurl.path == "/setcomment": @@ -2668,7 +2708,7 @@ def do_GET(self): comment = comment[0] self.formatter(query_components).set_comment(address, comment) self.send_success_html_headers() - self.wfile.write("OK") + self.write("OK") else: self.send_error(404,'Invalid params') elif parsedurl.path == "/setpageaddress": @@ -2679,7 +2719,7 @@ def do_GET(self): address = address[0] self.formatter(query_components).set_page_address(kind, address) self.send_success_html_headers() - self.wfile.write("OK") + self.write("OK") else: self.send_error(404,'Invalid params') else: @@ -2701,7 +2741,7 @@ class InspectionWebFormatter(object): def __init__(self, switches, minidump_name, http_server): self.dumpfilename = os.path.split(minidump_name)[1] - self.encfilename = urllib.urlencode({ 'dump' : self.dumpfilename }) + self.encfilename = urllib.parse.urlencode({'dump': self.dumpfilename}) self.reader = MinidumpReader(switches, minidump_name) self.server = http_server @@ -2711,7 +2751,8 @@ def __init__(self, switches, minidump_name, http_server): stack_bottom = exception_thread.stack.start + \ exception_thread.stack.memory.data_size stack_map = {self.reader.ExceptionIP(): -1} - for slot in range(stack_top, stack_bottom, self.reader.PointerSize()): + for slot in range(stack_top, stack_bottom, + self.reader.MachinePointerSize()): maybe_address = self.reader.ReadUIntPtr(slot) if not maybe_address in stack_map: stack_map[maybe_address] = slot @@ -2757,10 +2798,23 @@ def format_address(self, maybeaddress, straddress = None): return ("%s" % (style_class, self.encfilename, straddress, straddress)) + def format_onheap_address(self, size, maybeaddress, uncompressed): + if maybeaddress is None: + return "not in dump" + else: + straddress = "0x" + self.reader.FormatTagged(maybeaddress) + struncompressed = "0x" + self.reader.FormatIntPtr(uncompressed) + style_class = "" + if not self.reader.IsValidAddress(maybeaddress): + style_class = "class=nd" + return ("%s" % + (style_class, self.encfilename, struncompressed, straddress)) + def output_header(self, f): - f.write(WEB_HEADER % - { "query_dump" : self.encfilename, - "dump_name" : cgi.escape(self.dumpfilename) }) + f.write(WEB_HEADER % { + "query_dump": self.encfilename, + "dump_name": html.escape(self.dumpfilename) + }) def output_footer(self, f): f.write(WEB_FOOTER) @@ -2779,7 +2833,8 @@ def output_summary(self, f): stack_bottom = min(exception_thread.stack.start + \ exception_thread.stack.memory.data_size, stack_top + self.MAX_CONTEXT_STACK) - self.output_words(f, stack_top - 16, stack_bottom, stack_top, "Stack") + self.output_words(f, stack_top - 16, stack_bottom, stack_top, "Stack", + self.heap.MachinePointerSize()) f.write('
    ') self.output_footer(f) @@ -2889,7 +2944,7 @@ def align_up(self, a, size): def format_object(self, address): heap_object = self.padawan.SenseObject(address) - return cgi.escape(str(heap_object or "")) + return html.escape(str(heap_object or "")) def output_data(self, f, straddress, datakind): try: @@ -2900,7 +2955,11 @@ def output_data(self, f, straddress, datakind): return region = self.reader.FindRegion(address) if datakind == "address": - self.output_words(f, region[0], region[0] + region[1], address, "Dump") + self.output_words(f, region[0], region[0] + region[1], address, "Dump", + self.heap.MachinePointerSize()) + if datakind == "tagged": + self.output_words(f, region[0], region[0] + region[1], address, + "Tagged Dump", self.heap.TaggedPointerSize()) elif datakind == "ascii": self.output_ascii(f, region[0], region[0] + region[1], address) self.output_footer(f) @@ -2909,14 +2968,13 @@ def output_data(self, f, straddress, datakind): f.write("

    Unrecognized address format \"%s\".

    " % straddress) return - def output_words(self, f, start_address, end_address, - highlight_address, desc): + def output_words(self, f, start_address, end_address, highlight_address, desc, + size): region = self.reader.FindRegion(highlight_address) if region is None: f.write("

    Address 0x%x not found in the dump.

    " % (highlight_address)) return - size = self.heap.PointerSize() start_address = self.align_down(start_address, size) low = self.align_down(region[0], size) high = self.align_up(region[0] + region[1], size) @@ -2943,6 +3001,7 @@ def output_words(self, f, start_address, end_address, slot = start_address + j heap_object = "" maybe_address = None + maybe_uncompressed_address = None end_region = region[0] + region[1] if slot < region[0] or slot + size > end_region: straddress = "0x" @@ -2954,10 +3013,20 @@ def output_words(self, f, start_address, end_address, for i in range(slot, region[0]): straddress += "??" else: - maybe_address = self.reader.ReadUIntPtr(slot) - straddress = self.format_address(maybe_address) - if maybe_address: - heap_object = self.format_object(maybe_address) + maybe_address = self.reader.ReadSized(slot, size) + if size == self.reader.MachinePointerSize(): + maybe_uncompressed_address = maybe_address + else: + maybe_uncompressed_address = (slot & (0xFFFFFF << 32)) | ( + maybe_address & 0xFFFFFF) + + if size == self.reader.TaggedPointerSize(): + straddress = self.format_onheap_address(size, maybe_address, + maybe_uncompressed_address) + if maybe_address: + heap_object = self.format_object(maybe_address) + else: + straddress = self.format_address(maybe_address) address_fmt = "%s 
    ") - if maybe_address != None: - self.output_comment_box( - f, "sv-" + self.reader.FormatIntPtr(slot), maybe_address) + if maybe_uncompressed_address != None: + self.output_comment_box(f, "sv-" + self.reader.FormatIntPtr(slot), + maybe_uncompressed_address) f.write("%s
    %s%s   ") f.write(datetime.datetime.fromtimestamp(mtime)) f.write(" r Relayout graph
    nShow graph with selected nodes for next phase
    bShow graph with selected nodes for previous phase
    a Select all nodes
    * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V010.md b/doc/changelogs/CHANGELOG_V010.md index 97038ffea4e7fc..4aebd7733ca9db 100644 --- a/doc/changelogs/CHANGELOG_V010.md +++ b/doc/changelogs/CHANGELOG_V010.md @@ -64,6 +64,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V012.md b/doc/changelogs/CHANGELOG_V012.md index e61577e7793e90..10a08fcba023e7 100644 --- a/doc/changelogs/CHANGELOG_V012.md +++ b/doc/changelogs/CHANGELOG_V012.md @@ -32,6 +32,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V10.md b/doc/changelogs/CHANGELOG_V10.md index 48a71cb9eec308..5dc28207c26fd8 100644 --- a/doc/changelogs/CHANGELOG_V10.md +++ b/doc/changelogs/CHANGELOG_V10.md @@ -58,6 +58,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V11.md b/doc/changelogs/CHANGELOG_V11.md index 95c7e50580fe93..c1018094f1acc4 100644 --- a/doc/changelogs/CHANGELOG_V11.md +++ b/doc/changelogs/CHANGELOG_V11.md @@ -30,6 +30,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V12.md b/doc/changelogs/CHANGELOG_V12.md index bbde2a05f67166..63b2f650acbb2a 100644 --- a/doc/changelogs/CHANGELOG_V12.md +++ b/doc/changelogs/CHANGELOG_V12.md @@ -67,6 +67,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V13.md b/doc/changelogs/CHANGELOG_V13.md index f759ed07b8beea..e2060a11dee28a 100644 --- a/doc/changelogs/CHANGELOG_V13.md +++ b/doc/changelogs/CHANGELOG_V13.md @@ -30,6 +30,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V14.md b/doc/changelogs/CHANGELOG_V14.md index ac8589e615ce78..320efb6c2a7c1f 100644 --- a/doc/changelogs/CHANGELOG_V14.md +++ b/doc/changelogs/CHANGELOG_V14.md @@ -9,6 +9,8 @@ +14.19.3
    +14.19.2
    14.19.1
    14.19.0
    14.18.3
    @@ -54,6 +56,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) @@ -72,6 +75,71 @@ * [io.js](CHANGELOG_IOJS.md) * [Archive](CHANGELOG_ARCHIVE.md) + + +## 2022-05-17, Version 14.19.3 'Fermium' (LTS), @richardlau + +### Notable Changes + +* This release updates OpenSSL to 1.1.1o. This update is not being treated as a security release as the issues addressed in OpenSSL 1.1.1o were assessed to not affect Node.js 14. See for more information on how the May 2022 OpenSSL releases affects other Node.js release lines. +* The list of GPG keys used to sign releases has been synchronized with the main branch. + +### Commits + +* \[[`68397e49d9`](https://github.com/nodejs/node/commit/68397e49d9)] - **deps**: update archs files for OpenSSL-1.1.1o (RafaelGSS) [#42956](https://github.com/nodejs/node/pull/42956) +* \[[`7f9a5ed4a8`](https://github.com/nodejs/node/commit/7f9a5ed4a8)] - **deps**: upgrade openssl sources to 1.1.1o (RafaelGSS) [#42956](https://github.com/nodejs/node/pull/42956) +* \[[`61eba58cb6`](https://github.com/nodejs/node/commit/61eba58cb6)] - **doc**: add release key for Juan Arboleda (Juan José) [#42961](https://github.com/nodejs/node/pull/42961) + + + +## 2022-05-04, Version 14.19.2 'Fermium' (LTS), @BethGriggs prepared by @juanarbol + +### Notable Changes + +**doc:** + +* New release key for Bryan English + +Learn more at: +Contributed by Bryan English (@bengl) + +**npm:** + +* Upgrade `npm` to `v6.14.17`. + +Learn more at: +Contributed by Ruy Adorno (@ruyadorno) + +**V8:** + +* V8 had a stack overflow issue affecting the `vm` module, cherry-picking [`cc9a8a37445e`](https://github.com/v8/v8/commit/cc9a8a37445eeffff17474020bb6038c2f9af9fc) + from V8 solves this issue. + +Learn more at: +Contributed by Gus Caplan (@devsnek) + +* Using `getHeapSnapshot()` was causing a Node.js crash due a V8 issue, this is fixed by backporting [`367b0c1e7a32`](https://github.com/v8/v8/commit/367b0c1e7a323deafeab56736b01bc7e14fc1998) + from V8. + +Learn more at: +Contributed by Chengzhong Wu (@legendecas) + +### Commits + +* \[[`c73ac527d6`](https://github.com/nodejs/node/commit/c73ac527d6)] - **build**: set DESTCPU correctly for 'make binary' on Apple Silicon (Chris Heisterkamp) [#40147](https://github.com/nodejs/node/pull/40147) +* \[[`dcaed6db24`](https://github.com/nodejs/node/commit/dcaed6db24)] - **build**: use ccache in make-v8.sh on ppc64le and s390x (Richard Lau) [#42204](https://github.com/nodejs/node/pull/42204) +* \[[`4203d132b1`](https://github.com/nodejs/node/commit/4203d132b1)] - **child\_process**: queue pending messages (Erick Wendel) [#41221](https://github.com/nodejs/node/pull/41221) +* \[[`a3ebdbfe8f`](https://github.com/nodejs/node/commit/a3ebdbfe8f)] - **deps**: upgrade npm to 6.14.17 (Ruy Adorno) [#42900](https://github.com/nodejs/node/pull/42900) +* \[[`39e44f8382`](https://github.com/nodejs/node/commit/39e44f8382)] - **deps**: V8: cherry-pick cc9a8a37445e (Gus Caplan) [#41826](https://github.com/nodejs/node/pull/41826) +* \[[`b52a268b6f`](https://github.com/nodejs/node/commit/b52a268b6f)] - **deps**: V8: cherry-pick 367b0c1e7a32 (legendecas) [#42637](https://github.com/nodejs/node/pull/42637) +* \[[`77ba012065`](https://github.com/nodejs/node/commit/77ba012065)] - **doc**: fix documentation of `FileHandle.prototype.appendFile` (Antoine du Hamel) [#42588](https://github.com/nodejs/node/pull/42588) +* \[[`3d3d7ed1b7`](https://github.com/nodejs/node/commit/3d3d7ed1b7)] - **doc**: specify flag needed for JSON and Wasm modules (Rich Trott) [#42736](https://github.com/nodejs/node/pull/42736) +* \[[`542d812c93`](https://github.com/nodejs/node/commit/542d812c93)] - **doc**: use openpgp.org for keyserver examples (Nick Schonning) [#39227](https://github.com/nodejs/node/pull/39227) +* \[[`7f2825b1a9`](https://github.com/nodejs/node/commit/7f2825b1a9)] - **doc**: add release key for Bryan English (Bryan English) [#42102](https://github.com/nodejs/node/pull/42102) +* \[[`75302d3dce`](https://github.com/nodejs/node/commit/75302d3dce)] - **fs**: fix write methods param validation and docs (Livia Medeiros) [#41677](https://github.com/nodejs/node/pull/41677) +* \[[`d4171e0eac`](https://github.com/nodejs/node/commit/d4171e0eac)] - **stream**: resume stream on drain (Robert Nagy) [#41848](https://github.com/nodejs/node/pull/41848) +* \[[`de474c8b6f`](https://github.com/nodejs/node/commit/de474c8b6f)] - **worker**: do not send message if port is closing (Rich Trott) [#42357](https://github.com/nodejs/node/pull/42357) + ## 2022-03-17, Version 14.19.1 'Fermium' (LTS), @richardlau diff --git a/doc/changelogs/CHANGELOG_V15.md b/doc/changelogs/CHANGELOG_V15.md index 0acdea3ba80043..10d08ab75fee24 100644 --- a/doc/changelogs/CHANGELOG_V15.md +++ b/doc/changelogs/CHANGELOG_V15.md @@ -31,6 +31,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [14.x](CHANGELOG_V14.md) diff --git a/doc/changelogs/CHANGELOG_V16.md b/doc/changelogs/CHANGELOG_V16.md index 95b6ed90d39f08..8b35ef7ce55e65 100644 --- a/doc/changelogs/CHANGELOG_V16.md +++ b/doc/changelogs/CHANGELOG_V16.md @@ -9,6 +9,8 @@ +16.15.1
    +16.15.0
    16.14.2
    16.14.1
    16.14.0
    @@ -41,6 +43,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [15.x](CHANGELOG_V15.md) * [14.x](CHANGELOG_V14.md) @@ -59,6 +62,334 @@ * [io.js](CHANGELOG_IOJS.md) * [Archive](CHANGELOG_ARCHIVE.md) + + +## 2022-06-01, Version 16.15.1 'Gallium' (LTS), @BethGriggs prepared by @juanarbol + +### Notable Changes + +* **deps**: + * upgrade npm to 8.11.0 () [#43210](https://github.com/nodejs/node/pull/43210) + +* **docs**: + * add release key for RafaelGSS (Rafael Gonzaga) [#43131](https://github.com/nodejs/node/pull/43131) + * add release key for Juan Arboleda (Juan José) [#42961](https://github.com/nodejs/node/pull/42961) + +### Commits + +* \[[`f7c4ce2255`](https://github.com/nodejs/node/commit/f7c4ce2255)] - **deps**: V8: cherry-pick 3ebf2052a1b2 (Liu Yu) [#43147](https://github.com/nodejs/node/pull/43147) +* \[[`447f9a0e2e`](https://github.com/nodejs/node/commit/447f9a0e2e)] - **deps**: upgrade npm to 8.11.0 () [#43210](https://github.com/nodejs/node/pull/43210) +* \[[`68572bdea2`](https://github.com/nodejs/node/commit/68572bdea2)] - **deps**: upgrade npm to 8.10.0 () [#43061](https://github.com/nodejs/node/pull/43061) +* \[[`3dfc632f12`](https://github.com/nodejs/node/commit/3dfc632f12)] - **deps**: upgrade npm to 8.9.0 (npm-robot) [#42968](https://github.com/nodejs/node/pull/42968) +* \[[`a746943fcb`](https://github.com/nodejs/node/commit/a746943fcb)] - **deps**: update archs files for OpenSSL-1.1.1o (RafaelGSS) [#42957](https://github.com/nodejs/node/pull/42957) +* \[[`6efc844922`](https://github.com/nodejs/node/commit/6efc844922)] - **deps**: upgrade openssl sources to OpenSSL\_1\_1\_1o (RafaelGSS) [#42957](https://github.com/nodejs/node/pull/42957) +* \[[`3ceeb574c3`](https://github.com/nodejs/node/commit/3ceeb574c3)] - **deps**: upgrade npm to 8.8.0 (npm-robot) [#42886](https://github.com/nodejs/node/pull/42886) +* \[[`f8b2156e07`](https://github.com/nodejs/node/commit/f8b2156e07)] - **deps**: upgrade npm to 8.7.0 () [#42744](https://github.com/nodejs/node/pull/42744) +* \[[`898b4751e9`](https://github.com/nodejs/node/commit/898b4751e9)] - **deps**: upgrade npm to 8.6.0 (npm team) [#42550](https://github.com/nodejs/node/pull/42550) +* \[[`617f64a1cd`](https://github.com/nodejs/node/commit/617f64a1cd)] - **doc**: add release key for RafaelGSS (Rafael Gonzaga) [#43131](https://github.com/nodejs/node/pull/43131) +* \[[`e1b47e6e3d`](https://github.com/nodejs/node/commit/e1b47e6e3d)] - **doc**: add release key for Juan Arboleda (Juan José) [#42961](https://github.com/nodejs/node/pull/42961) +* \[[`4185f1f466`](https://github.com/nodejs/node/commit/4185f1f466)] - **src,inspector**: fix empty MaybeLocal crash (Darshan Sen) [#42409](https://github.com/nodejs/node/pull/42409) +* \[[`f11b3cfc6a`](https://github.com/nodejs/node/commit/f11b3cfc6a)] - **test**: delete test/pummel/test-repl-empty-maybelocal-crash.js (Darshan Sen) [#42720](https://github.com/nodejs/node/pull/42720) +* \[[`feac215e4e`](https://github.com/nodejs/node/commit/feac215e4e)] - **tools**: disable trap handler for Windows cross-compiler (Michaël Zasso) [#40488](https://github.com/nodejs/node/pull/40488) +* \[[`47cdddf59b`](https://github.com/nodejs/node/commit/47cdddf59b)] - **tools**: update V8 gypfiles for 9.6 (Michaël Zasso) [#40488](https://github.com/nodejs/node/pull/40488) + + + +## 2022-04-26, Version 16.15.0 'Gallium' (LTS), @danielleadams + +### Notable changes + +#### Add fetch API + +Adds experimental support to the fetch API. This adds the `--experimental-fetch` +flag that installs the `fetch`, `Request`, `Response`, `Headers`, and `FormData` +globals. + +* **(SEMVER-MINOR)** add fetch (Michaël Zasso) [#41749](https://github.com/nodejs/node/pull/41749) +* **(SEMVER-MINOR)** add FormData global when fetch is enabled (Michaël Zasso) [#41956](https://github.com/nodejs/node/pull/41956) + +#### Other notable changes + +* **build**: + * remove broken x32 arch support (Ben Noordhuis) [#41905](https://github.com/nodejs/node/pull/41905) +* **crypto**: + * **(SEMVER-MINOR)** add KeyObject.prototype.equals method (Filip Skokan) [#42093](https://github.com/nodejs/node/pull/42093) +* **doc**: + * add @ShogunPanda to collaborators (Paolo Insogna) [#42362](https://github.com/nodejs/node/pull/42362) + * add JakobJingleheimer to collaborators list (Jacob Smith) [#42185](https://github.com/nodejs/node/pull/42185) + * add joesepi to collaborators (Joe Sepi) [#41914](https://github.com/nodejs/node/pull/41914) + * add marsonya to collaborators (Akhil Marsonya) [#41991](https://github.com/nodejs/node/pull/41991) + * deprecate string coercion in `fs.write`, `fs.writeFileSync` (Livia Medeiros) [#42149](https://github.com/nodejs/node/pull/42149) + * deprecate notice for process methods (Yash Ladha) [#41587](https://github.com/nodejs/node/pull/41587) +* **esm**: + * **(SEMVER-MINOR)** support https remotely and http locally under flag (Bradley Farias) [#36328](https://github.com/nodejs/node/pull/36328) +* **module**: + * **(SEMVER-MINOR)** unflag esm json modules (Geoffrey Booth) [#41736](https://github.com/nodejs/node/pull/41736) +* **node-api**: + * **(SEMVER-MINOR)** add node\_api\_symbol\_for() (Darshan Sen) [#41329](https://github.com/nodejs/node/pull/41329) +* **process**: + * deprecate multipleResolves (Benjamin Gruenbaum) [#41872](https://github.com/nodejs/node/pull/41872) +* **stream**: + * **(SEMVER-MINOR)** support some and every (Benjamin Gruenbaum) [#41573](https://github.com/nodejs/node/pull/41573) + * **(SEMVER-MINOR)** add toArray (Benjamin Gruenbaum) [#41553](https://github.com/nodejs/node/pull/41553) + * **(SEMVER-MINOR)** add forEach method (Benjamin Gruenbaum) [#41445](https://github.com/nodejs/node/pull/41445) + +### Commits + +* \[[`3d4df9cd70`](https://github.com/nodejs/node/commit/3d4df9cd70)] - **(SEMVER-MINOR)** **benchmark**: add `subarray` to `buffer-slice` (Benjamin Gruenbaum) [#41596](https://github.com/nodejs/node/pull/41596) +* \[[`d40f5a177a`](https://github.com/nodejs/node/commit/d40f5a177a)] - **buffer**: improve blob read performance (Xuguang Mei) [#42117](https://github.com/nodejs/node/pull/42117) +* \[[`84752a495f`](https://github.com/nodejs/node/commit/84752a495f)] - **(SEMVER-MINOR)** **buffer**: alias `subarray` and `slice` (Benjamin Gruenbaum) [#41596](https://github.com/nodejs/node/pull/41596) +* \[[`c5da1dda4a`](https://github.com/nodejs/node/commit/c5da1dda4a)] - **build**: use ccache in make-v8.sh on ppc64le and s390x (Richard Lau) [#42204](https://github.com/nodejs/node/pull/42204) +* \[[`ba56e41953`](https://github.com/nodejs/node/commit/ba56e41953)] - **build**: drop shortened URL from lint-commit-message (Richard Lau) [#42168](https://github.com/nodejs/node/pull/42168) +* \[[`b2c88ec69c`](https://github.com/nodejs/node/commit/b2c88ec69c)] - **build**: fix usage of input in feature action (Michael Dawson) [#42150](https://github.com/nodejs/node/pull/42150) +* \[[`bcabd70d93`](https://github.com/nodejs/node/commit/bcabd70d93)] - **build**: increase max ops for stale feature action (Michael Dawson) [#42130](https://github.com/nodejs/node/pull/42130) +* \[[`042fb6f4d5`](https://github.com/nodejs/node/commit/042fb6f4d5)] - **build**: add corepack to the auto-updated dependencies (Maël Nison) [#42090](https://github.com/nodejs/node/pull/42090) +* \[[`611cbf13a6`](https://github.com/nodejs/node/commit/611cbf13a6)] - **build**: last test of the stale feature action (Michael Dawson) [#42085](https://github.com/nodejs/node/pull/42085) +* \[[`0d8f76ff2f`](https://github.com/nodejs/node/commit/0d8f76ff2f)] - **build**: update feature close action for testing (Michael Dawson) [#42082](https://github.com/nodejs/node/pull/42082) +* \[[`bc3d8a752f`](https://github.com/nodejs/node/commit/bc3d8a752f)] - **build**: cancel running CI jobs when a PR is updated (Michaël Zasso) [#42017](https://github.com/nodejs/node/pull/42017) +* \[[`e049173bce`](https://github.com/nodejs/node/commit/e049173bce)] - **build**: increase operations and test tag (Michael Dawson) [#42038](https://github.com/nodejs/node/pull/42038) +* \[[`4c47d59e9b`](https://github.com/nodejs/node/commit/4c47d59e9b)] - **build**: allow manual run of feature request action (Michael Dawson) [#42037](https://github.com/nodejs/node/pull/42037) +* \[[`692ee2ae06`](https://github.com/nodejs/node/commit/692ee2ae06)] - **build**: add action to close stale feature requests (Michael Dawson) [#41981](https://github.com/nodejs/node/pull/41981) +* \[[`290a2bfd81`](https://github.com/nodejs/node/commit/290a2bfd81)] - **build**: prevent concurrent CI and CQ workflow runs (Michaël Zasso) [#42016](https://github.com/nodejs/node/pull/42016) +* \[[`d2c1624279`](https://github.com/nodejs/node/commit/d2c1624279)] - **build**: use zoslib\_include\_dir provided by node-gyp (alexcfyung) [#41713](https://github.com/nodejs/node/pull/41713) +* \[[`db4a3dc1a6`](https://github.com/nodejs/node/commit/db4a3dc1a6)] - **build**: move tool updates workflow runtime a day later (Rich Trott) [#41982](https://github.com/nodejs/node/pull/41982) +* \[[`24d0c32af4`](https://github.com/nodejs/node/commit/24d0c32af4)] - **build**: extend yamllint configuration (Mestery) [#41756](https://github.com/nodejs/node/pull/41756) +* \[[`428b967ea4`](https://github.com/nodejs/node/commit/428b967ea4)] - **build**: remove broken x32 arch support (Ben Noordhuis) [#41905](https://github.com/nodejs/node/pull/41905) +* \[[`51847e0d24`](https://github.com/nodejs/node/commit/51847e0d24)] - **build**: revert fast-track changes (Filip Skokan) [#41892](https://github.com/nodejs/node/pull/41892) +* \[[`1452f8d6f1`](https://github.com/nodejs/node/commit/1452f8d6f1)] - **build**: improve consistency between workflows (Mestery) [#41791](https://github.com/nodejs/node/pull/41791) +* \[[`9677da4b46`](https://github.com/nodejs/node/commit/9677da4b46)] - **(SEMVER-MINOR)** **build**: add --v8-enable-hugepage flag (Daoming Qiu) [#41487](https://github.com/nodejs/node/pull/41487) +* \[[`5468de5317`](https://github.com/nodejs/node/commit/5468de5317)] - **build,tools**: change the quotes in YAML (Mestery) [#41756](https://github.com/nodejs/node/pull/41756) +* \[[`f32c39762c`](https://github.com/nodejs/node/commit/f32c39762c)] - **child\_process**: kHideConsoleWindows for spawnSync (Raymond Zhao) [#41412](https://github.com/nodejs/node/pull/41412) +* \[[`914f9071ba`](https://github.com/nodejs/node/commit/914f9071ba)] - **cluster**: respect listen backlog set by workers (Elad Nava) [#41623](https://github.com/nodejs/node/pull/41623) +* \[[`f990308972`](https://github.com/nodejs/node/commit/f990308972)] - **crypto**: fix auth tag length error when mode != GCM (Tobias Nießen) [#42383](https://github.com/nodejs/node/pull/42383) +* \[[`7f43f94304`](https://github.com/nodejs/node/commit/7f43f94304)] - **crypto**: fix fingerprint string size calculation (Tobias Nießen) [#42175](https://github.com/nodejs/node/pull/42175) +* \[[`602f34eeb8`](https://github.com/nodejs/node/commit/602f34eeb8)] - **crypto**: add CHECKs to remaining BIO\_s\_mem allocs (Tobias Nießen) [#42155](https://github.com/nodejs/node/pull/42155) +* \[[`4eecb25125`](https://github.com/nodejs/node/commit/4eecb25125)] - **crypto**: validate `this` value for `webcrypto.getRandomValues` (Antoine du Hamel) [#41760](https://github.com/nodejs/node/pull/41760) +* \[[`b7599d8b14`](https://github.com/nodejs/node/commit/b7599d8b14)] - **(SEMVER-MINOR)** **crypto**: add KeyObject.prototype.equals method (Filip Skokan) [#42093](https://github.com/nodejs/node/pull/42093) +* \[[`70ae0ae8a0`](https://github.com/nodejs/node/commit/70ae0ae8a0)] - **crypto**: check result of BIO\_new in X509ToObject (Tobias Nießen) [#41979](https://github.com/nodejs/node/pull/41979) +* \[[`36b9028f4f`](https://github.com/nodejs/node/commit/36b9028f4f)] - **crypto**: rename X509\_NAME\_FLAGS (Tobias Nießen) [#42001](https://github.com/nodejs/node/pull/42001) +* \[[`a592442218`](https://github.com/nodejs/node/commit/a592442218)] - **(SEMVER-MINOR)** **crypto**: expose Web Crypto API on the global scope (Antoine du Hamel) [#41938](https://github.com/nodejs/node/pull/41938) +* \[[`46dda316df`](https://github.com/nodejs/node/commit/46dda316df)] - **crypto**: do not advertise unsupported algorithms (Brian White) [#41864](https://github.com/nodejs/node/pull/41864) +* \[[`adb88fcb46`](https://github.com/nodejs/node/commit/adb88fcb46)] - **(SEMVER-MINOR)** **crypto**: support RFC 2818 compatible checkHost (Tobias Nießen) [#41569](https://github.com/nodejs/node/pull/41569) +* \[[`e9d7af1cc6`](https://github.com/nodejs/node/commit/e9d7af1cc6)] - **debugger**: correct typo in inspect\_repl.js (Kohei Ueno) [#42267](https://github.com/nodejs/node/pull/42267) +* \[[`e6019a4cc0`](https://github.com/nodejs/node/commit/e6019a4cc0)] - **debugger**: add debugger alias for exec(expr) (Xuguang Mei) [#41907](https://github.com/nodejs/node/pull/41907) +* \[[`83691ada5b`](https://github.com/nodejs/node/commit/83691ada5b)] - **debugger**: remove duplicate setPauseOnException call (Balakrishna Avulapati) [#41838](https://github.com/nodejs/node/pull/41838) +* \[[`7e73e5e46b`](https://github.com/nodejs/node/commit/7e73e5e46b)] - **deps**: upgrade npm to 8.5.5 (npm team) [#42382](https://github.com/nodejs/node/pull/42382) +* \[[`8d734cbde6`](https://github.com/nodejs/node/commit/8d734cbde6)] - **deps**: cares: cherry-pick b5a3d96 (bradh352) [#42216](https://github.com/nodejs/node/pull/42216) +* \[[`ba1d949ce0`](https://github.com/nodejs/node/commit/ba1d949ce0)] - **deps**: V8: cherry-pick c6f6626deb14 (Lu Yahan) [#42240](https://github.com/nodejs/node/pull/42240) +* \[[`6b721d7103`](https://github.com/nodejs/node/commit/6b721d7103)] - **deps**: upgrade npm to 8.5.3 (npm team) [#42205](https://github.com/nodejs/node/pull/42205) +* \[[`baeb66a35a`](https://github.com/nodejs/node/commit/baeb66a35a)] - **deps**: update nghttp2 to 1.47.0 (Yash Ladha) [#42127](https://github.com/nodejs/node/pull/42127) +* \[[`1a0f26f55c`](https://github.com/nodejs/node/commit/1a0f26f55c)] - **deps**: upgrade npm to 8.5.2 (npm team) [#42122](https://github.com/nodejs/node/pull/42122) +* \[[`396240bf80`](https://github.com/nodejs/node/commit/396240bf80)] - **deps**: V8: cherry-pick 77d515484864 (Lu Yahan) [#42067](https://github.com/nodejs/node/pull/42067) +* \[[`3f09a6d227`](https://github.com/nodejs/node/commit/3f09a6d227)] - **deps**: V8: cherry-pick b66334313c8b (Lu Yahan) [#42067](https://github.com/nodejs/node/pull/42067) +* \[[`a73536b286`](https://github.com/nodejs/node/commit/a73536b286)] - **deps**: upgrade npm to 8.5.1 (npm-robot) [#42039](https://github.com/nodejs/node/pull/42039) +* \[[`c64b0381ee`](https://github.com/nodejs/node/commit/c64b0381ee)] - **deps**: update undici to 5.0.0 (Node.js GitHub Bot) [#42583](https://github.com/nodejs/node/pull/42583) +* \[[`a670c1fb5f`](https://github.com/nodejs/node/commit/a670c1fb5f)] - **deps**: update undici to 4.16.0 (Node.js GitHub Bot) [#42414](https://github.com/nodejs/node/pull/42414) +* \[[`721d10751b`](https://github.com/nodejs/node/commit/721d10751b)] - **deps**: update undici to 4.15.1 (Michaël Zasso) [#42246](https://github.com/nodejs/node/pull/42246) +* \[[`83a667621b`](https://github.com/nodejs/node/commit/83a667621b)] - **deps**: update undici to 3e267ece5f (Michaël Zasso) [#41955](https://github.com/nodejs/node/pull/41955) +* \[[`208ab5723e`](https://github.com/nodejs/node/commit/208ab5723e)] - **doc**: improve README.md usability (Rich Trott) [#42378](https://github.com/nodejs/node/pull/42378) +* \[[`682248c980`](https://github.com/nodejs/node/commit/682248c980)] - **doc**: add that chacha20-poly1305 is IETF version (Tobias Nießen) [#42370](https://github.com/nodejs/node/pull/42370) +* \[[`83391d185c`](https://github.com/nodejs/node/commit/83391d185c)] - **doc**: document goal to have examples (Michael Dawson) [#42274](https://github.com/nodejs/node/pull/42274) +* \[[`7073017efb`](https://github.com/nodejs/node/commit/7073017efb)] - **doc**: fix Embedder's Guide link to V8 official docs (Aroyan) [#42373](https://github.com/nodejs/node/pull/42373) +* \[[`cb07930bda`](https://github.com/nodejs/node/commit/cb07930bda)] - **doc**: remove unneeded lint disable comment (Rich Trott) [#42374](https://github.com/nodejs/node/pull/42374) +* \[[`fb42f99514`](https://github.com/nodejs/node/commit/fb42f99514)] - **doc**: revise async\_hooks docs (Rich Trott) [#42337](https://github.com/nodejs/node/pull/42337) +* \[[`835e65b78e`](https://github.com/nodejs/node/commit/835e65b78e)] - **doc**: add @ShogunPanda to collaborators (Paolo Insogna) [#42362](https://github.com/nodejs/node/pull/42362) +* \[[`df1909982d`](https://github.com/nodejs/node/commit/df1909982d)] - **doc**: update base branch name for `nodejs/nodejs.org` (Danielle Adams) [#42355](https://github.com/nodejs/node/pull/42355) +* \[[`4f6b187059`](https://github.com/nodejs/node/commit/4f6b187059)] - **doc**: fix async iterable pipeline signal examples (Randall Leeds) [#42258](https://github.com/nodejs/node/pull/42258) +* \[[`3188dcb390`](https://github.com/nodejs/node/commit/3188dcb390)] - **doc**: clarify path search in `child_process.spawn` (Damjan Cvetko) [#41418](https://github.com/nodejs/node/pull/41418) +* \[[`f53b454e2e`](https://github.com/nodejs/node/commit/f53b454e2e)] - **doc**: clarify the meaning of legacy status (Darshan Sen) [#42269](https://github.com/nodejs/node/pull/42269) +* \[[`43b8a4fc57`](https://github.com/nodejs/node/commit/43b8a4fc57)] - **doc**: improve pipe description (Mikael Finstad) [#42295](https://github.com/nodejs/node/pull/42295) +* \[[`9fa6e445d5`](https://github.com/nodejs/node/commit/9fa6e445d5)] - **doc**: remove outdated timeout.unref content (Xuguang Mei) [#42241](https://github.com/nodejs/node/pull/42241) +* \[[`a84896ea2c`](https://github.com/nodejs/node/commit/a84896ea2c)] - **doc**: deprecate string coercion in `fs.write`, `fs.writeFileSync` (Livia Medeiros) [#42149](https://github.com/nodejs/node/pull/42149) +* \[[`436bdde654`](https://github.com/nodejs/node/commit/436bdde654)] - **doc**: remove refs to old OpenSSL list-\* commands (Tobias Nießen) [#42235](https://github.com/nodejs/node/pull/42235) +* \[[`6763bede4c`](https://github.com/nodejs/node/commit/6763bede4c)] - **doc**: readline `'line'` event emits final line (Matt Probert) [#42214](https://github.com/nodejs/node/pull/42214) +* \[[`6545094a94`](https://github.com/nodejs/node/commit/6545094a94)] - **doc**: update stale feature messages (Michael Dawson) [#42217](https://github.com/nodejs/node/pull/42217) +* \[[`275b66d54e`](https://github.com/nodejs/node/commit/275b66d54e)] - **doc**: remove erroneous comma in cluster explainer (Tobias Nießen) [#42238](https://github.com/nodejs/node/pull/42238) +* \[[`cda623cc1d`](https://github.com/nodejs/node/commit/cda623cc1d)] - **doc**: remove "considered" for clarity (Rich Trott) [#42218](https://github.com/nodejs/node/pull/42218) +* \[[`17172fef20`](https://github.com/nodejs/node/commit/17172fef20)] - **doc**: clarify that some modules don't work when compiled without ssl (Antoine du Hamel) [#42198](https://github.com/nodejs/node/pull/42198) +* \[[`126045356a`](https://github.com/nodejs/node/commit/126045356a)] - **doc**: add note about nghttp2 hd pair size (Rafael Silva) [#42172](https://github.com/nodejs/node/pull/42172) +* \[[`63b468f753`](https://github.com/nodejs/node/commit/63b468f753)] - **doc**: use parenthesis instead of em dash (Antoine du Hamel) [#42202](https://github.com/nodejs/node/pull/42202) +* \[[`19b62ddd68`](https://github.com/nodejs/node/commit/19b62ddd68)] - **doc**: add next-10 to strategic initiatives (Michael Dawson) [#42167](https://github.com/nodejs/node/pull/42167) +* \[[`993a943f2c`](https://github.com/nodejs/node/commit/993a943f2c)] - **doc**: add missing single-quotes to `http.OutgoingMessage` (Juan José Arboleda) [#42162](https://github.com/nodejs/node/pull/42162) +* \[[`d0ce089622`](https://github.com/nodejs/node/commit/d0ce089622)] - **doc**: fix typos (apeltop) [#42146](https://github.com/nodejs/node/pull/42146) +* \[[`88e67b8ec3`](https://github.com/nodejs/node/commit/88e67b8ec3)] - **doc**: add JakobJingleheimer to collaborators list (Jacob Smith) [#42185](https://github.com/nodejs/node/pull/42185) +* \[[`5322c73241`](https://github.com/nodejs/node/commit/5322c73241)] - **doc**: remove reference to obsolete security program (Rich Trott) [#42144](https://github.com/nodejs/node/pull/42144) +* \[[`5980b6d133`](https://github.com/nodejs/node/commit/5980b6d133)] - **doc**: remove repeated a word (apeltop) [#42138](https://github.com/nodejs/node/pull/42138) +* \[[`a70a1ce3a9`](https://github.com/nodejs/node/commit/a70a1ce3a9)] - **doc**: make building with ninja more discoverable (Balakrishna Avulapati) [#41840](https://github.com/nodejs/node/pull/41840) +* \[[`bc457c2339`](https://github.com/nodejs/node/commit/bc457c2339)] - **doc**: document change to IncomingMessage.headers enumerability (Arnold Zokas) [#42095](https://github.com/nodejs/node/pull/42095) +* \[[`1eb4d8b89c`](https://github.com/nodejs/node/commit/1eb4d8b89c)] - **doc**: add meixg to triagers (Xuguang Mei) [#42066](https://github.com/nodejs/node/pull/42066) +* \[[`3d75c8748c`](https://github.com/nodejs/node/commit/3d75c8748c)] - **doc**: clarify persistent ref behavior (Michael Dawson) [#42035](https://github.com/nodejs/node/pull/42035) +* \[[`8c26d8cea1`](https://github.com/nodejs/node/commit/8c26d8cea1)] - **doc**: move bnoordhuis back to collaborators (Ben Noordhuis) [#42064](https://github.com/nodejs/node/pull/42064) +* \[[`0c21b58d57`](https://github.com/nodejs/node/commit/0c21b58d57)] - **doc**: clarify supported versus enabled TLS ciphers (Tobias Nießen) [#42063](https://github.com/nodejs/node/pull/42063) +* \[[`a658437c64`](https://github.com/nodejs/node/commit/a658437c64)] - **doc**: add missing api entries on performance (legendecas) [#42018](https://github.com/nodejs/node/pull/42018) +* \[[`51cb78022e`](https://github.com/nodejs/node/commit/51cb78022e)] - **doc**: fix typo in http2 endAfterHeaders description (Alexandru Comanescu) [#42060](https://github.com/nodejs/node/pull/42060) +* \[[`40ddfa4e69`](https://github.com/nodejs/node/commit/40ddfa4e69)] - **doc**: make minor fixes to contributing guides (T-O-R-U-S) [#41966](https://github.com/nodejs/node/pull/41966) +* \[[`60d6409af0`](https://github.com/nodejs/node/commit/60d6409af0)] - **doc**: use openpgp.org for keyserver examples (Nick Schonning) [#39227](https://github.com/nodejs/node/pull/39227) +* \[[`9800719237`](https://github.com/nodejs/node/commit/9800719237)] - **doc**: adjust a/an word usage (Derek Wolpert) [#41915](https://github.com/nodejs/node/pull/41915) +* \[[`43894b1bc4`](https://github.com/nodejs/node/commit/43894b1bc4)] - **doc**: capitalize valgrind (T•Ø•R•Ü•S) [#41986](https://github.com/nodejs/node/pull/41986) +* \[[`a34cc75026`](https://github.com/nodejs/node/commit/a34cc75026)] - **doc**: fix deprecation number (Antoine du Hamel) [#41990](https://github.com/nodejs/node/pull/41990) +* \[[`dd88f54d57`](https://github.com/nodejs/node/commit/dd88f54d57)] - **doc**: add marsonya to collaborators (Akhil Marsonya) [#41991](https://github.com/nodejs/node/pull/41991) +* \[[`8858950a9f`](https://github.com/nodejs/node/commit/8858950a9f)] - **doc**: deprecate notice for process methods (Yash Ladha) [#41587](https://github.com/nodejs/node/pull/41587) +* \[[`d77db88386`](https://github.com/nodejs/node/commit/d77db88386)] - **doc**: fix bug in `readable.unshift` code example (Xuguang Mei) [#41944](https://github.com/nodejs/node/pull/41944) +* \[[`81e56c9178`](https://github.com/nodejs/node/commit/81e56c9178)] - **doc**: add missing `buffer` in the `stream/consumers` import example (Mestery) [#41961](https://github.com/nodejs/node/pull/41961) +* \[[`c08efba968`](https://github.com/nodejs/node/commit/c08efba968)] - **doc**: fix typo in readableStream.locked description (Tobias Nießen) [#41923](https://github.com/nodejs/node/pull/41923) +* \[[`e21831bad1`](https://github.com/nodejs/node/commit/e21831bad1)] - **doc**: fix wrong indent in stream documentation (Xuguang Mei) [#41943](https://github.com/nodejs/node/pull/41943) +* \[[`e55f340052`](https://github.com/nodejs/node/commit/e55f340052)] - **doc**: emphasize security warning in vm module doc (Rich Trott) [#41916](https://github.com/nodejs/node/pull/41916) +* \[[`ce15007fd7`](https://github.com/nodejs/node/commit/ce15007fd7)] - **doc**: clarify `tls.Server` `'connection'` event documentation (Austin Cheney) [#41917](https://github.com/nodejs/node/pull/41917) +* \[[`6fc0a25b64`](https://github.com/nodejs/node/commit/6fc0a25b64)] - **doc**: improve scrollbar appearance in dark mode (Aaron Xie) [#41890](https://github.com/nodejs/node/pull/41890) +* \[[`90d955100d`](https://github.com/nodejs/node/commit/90d955100d)] - **doc**: replace text with paths in toggle SVGs (Brian White) [#41885](https://github.com/nodejs/node/pull/41885) +* \[[`6fd538331d`](https://github.com/nodejs/node/commit/6fd538331d)] - **doc**: edit process.config deprecation text (Rich Trott) [#41889](https://github.com/nodejs/node/pull/41889) +* \[[`55caa10c54`](https://github.com/nodejs/node/commit/55caa10c54)] - **doc**: add joesepi to collaborators (Joe Sepi) [#41914](https://github.com/nodejs/node/pull/41914) +* \[[`73f3a2cf96`](https://github.com/nodejs/node/commit/73f3a2cf96)] - **doc**: remove unneeded ellipsis in header (Rich Trott) [#41888](https://github.com/nodejs/node/pull/41888) +* \[[`b950f5db84`](https://github.com/nodejs/node/commit/b950f5db84)] - **doc**: fix webstream close reject state state doc (Benjamin Gruenbaum) [#41860](https://github.com/nodejs/node/pull/41860) +* \[[`e46c7d6f69`](https://github.com/nodejs/node/commit/e46c7d6f69)] - **(SEMVER-MINOR)** **doc**: deprecate `buffer.slice` (Benjamin Gruenbaum) [#41596](https://github.com/nodejs/node/pull/41596) +* \[[`83129729c6`](https://github.com/nodejs/node/commit/83129729c6)] - **doc**: fix backticks around 'default' (Tobias Nießen) [#41613](https://github.com/nodejs/node/pull/41613) +* \[[`f8819e86fd`](https://github.com/nodejs/node/commit/f8819e86fd)] - **doc**: fix version history for `net.Socket` and `net.Server` (Antoine du Hamel) [#42268](https://github.com/nodejs/node/pull/42268) +* \[[`12bf85a606`](https://github.com/nodejs/node/commit/12bf85a606)] - **doc,tools**: improve navigability of API docs (Paolo Insogna) [#41404](https://github.com/nodejs/node/pull/41404) +* \[[`37f6f92905`](https://github.com/nodejs/node/commit/37f6f92905)] - **errors**: do not access .stack in debug (Benjamin Coe) [#42096](https://github.com/nodejs/node/pull/42096) +* \[[`166eb782f9`](https://github.com/nodejs/node/commit/166eb782f9)] - **esm**: fix base URL for network imports (Bradley Farias) [#42131](https://github.com/nodejs/node/pull/42131) +* \[[`b68db72746`](https://github.com/nodejs/node/commit/b68db72746)] - **esm**: fix relative imports for https (Bradley Farias) [#42119](https://github.com/nodejs/node/pull/42119) +* \[[`c777cb3368`](https://github.com/nodejs/node/commit/c777cb3368)] - **esm**: make extension-less errors in type:module actionable (Bradley Farias) [#42301](https://github.com/nodejs/node/pull/42301) +* \[[`2e42ccf1a5`](https://github.com/nodejs/node/commit/2e42ccf1a5)] - **esm**: improve typings and code coverage (Bradley Farias) [#42305](https://github.com/nodejs/node/pull/42305) +* \[[`25017ca107`](https://github.com/nodejs/node/commit/25017ca107)] - **esm**: add runtime warning for specifier resolution flag (Geoffrey Booth) [#42252](https://github.com/nodejs/node/pull/42252) +* \[[`1324023fea`](https://github.com/nodejs/node/commit/1324023fea)] - **esm**: improve `fetch_module` test coverage and remove hack (Antoine du Hamel) [#41947](https://github.com/nodejs/node/pull/41947) +* \[[`9b8c927d29`](https://github.com/nodejs/node/commit/9b8c927d29)] - **esm**: remove erroneous `context.parentURL` property passed to `load` hook (Jacob Smith) [#41975](https://github.com/nodejs/node/pull/41975) +* \[[`47cefec5c9`](https://github.com/nodejs/node/commit/47cefec5c9)] - **esm**: fix typo in `fetch_module` (Michael Scovetta) [#41924](https://github.com/nodejs/node/pull/41924) +* \[[`0d185f7930`](https://github.com/nodejs/node/commit/0d185f7930)] - **(SEMVER-MINOR)** **esm**: support https remotely and http locally under flag (Bradley Farias) [#36328](https://github.com/nodejs/node/pull/36328) +* \[[`b0a83115db`](https://github.com/nodejs/node/commit/b0a83115db)] - **events**: set default handler value (Benjamin Gruenbaum) [#41970](https://github.com/nodejs/node/pull/41970) +* \[[`6b55ba2fa2`](https://github.com/nodejs/node/commit/6b55ba2fa2)] - **fs**: adjust default `length` for `fs.readSync` and fsPromises/`read` (Livia Medeiros) [#42128](https://github.com/nodejs/node/pull/42128) +* \[[`da87c731b8`](https://github.com/nodejs/node/commit/da87c731b8)] - **fs**: fix default `length` parameter for `fs.read` (wbt) [#40349](https://github.com/nodejs/node/pull/40349) +* \[[`33e4a32f9e`](https://github.com/nodejs/node/commit/33e4a32f9e)] - **(SEMVER-MINOR)** **fs**: support copy of relative links with cp and cpSync (Marcos Bjoerkelund) [#41819](https://github.com/nodejs/node/pull/41819) +* \[[`571eb6dc74`](https://github.com/nodejs/node/commit/571eb6dc74)] - **fs**: fix cb/sync writev empty array behavior (Benjamin Gruenbaum) [#41932](https://github.com/nodejs/node/pull/41932) +* \[[`257a7a5802`](https://github.com/nodejs/node/commit/257a7a5802)] - **fs**: fix writev empty array error behavior (Benjamin Gruenbaum) [#41919](https://github.com/nodejs/node/pull/41919) +* \[[`2d165652f1`](https://github.com/nodejs/node/commit/2d165652f1)] - **fs**: refactor to use ES2020 syntax (小菜) [#41903](https://github.com/nodejs/node/pull/41903) +* \[[`39fb114dde`](https://github.com/nodejs/node/commit/39fb114dde)] - **(SEMVER-MINOR)** **http**: trace http client by perf\_hooks (theanarkh) [#42345](https://github.com/nodejs/node/pull/42345) +* \[[`16c00c6ac8`](https://github.com/nodejs/node/commit/16c00c6ac8)] - **http**: add default argument for Agent.prototype.getName (小菜) [#41906](https://github.com/nodejs/node/pull/41906) +* \[[`d301a8825b`](https://github.com/nodejs/node/commit/d301a8825b)] - **http2**: fix potential integer overflow (Michael Dawson) [#42248](https://github.com/nodejs/node/pull/42248) +* \[[`ddef6bbcb8`](https://github.com/nodejs/node/commit/ddef6bbcb8)] - **http2**: add edge case to GOAWAY request (Rafael Silva) [#42190](https://github.com/nodejs/node/pull/42190) +* \[[`28af75ef65`](https://github.com/nodejs/node/commit/28af75ef65)] - **http2**: close stream and session on frameError (Rafael Silva) [#42147](https://github.com/nodejs/node/pull/42147) +* \[[`ebe2b6d21e`](https://github.com/nodejs/node/commit/ebe2b6d21e)] - **lib**: refactor to use primordials in `lib/assert.js` (Akhil Marsonya) [#41702](https://github.com/nodejs/node/pull/41702) +* \[[`dcebb99dfc`](https://github.com/nodejs/node/commit/dcebb99dfc)] - **lib**: fix AsyncResource.bind not using 'this' from the caller by default (Roch Devost) [#42177](https://github.com/nodejs/node/pull/42177) +* \[[`e1704407ae`](https://github.com/nodejs/node/commit/e1704407ae)] - **lib**: clean after the cancel algorithm throw error (Chen Gang) [#41366](https://github.com/nodejs/node/pull/41366) +* \[[`91a06bd629`](https://github.com/nodejs/node/commit/91a06bd629)] - **lib**: add legacy built-in functions to primordials (Antoine du Hamel) [#42049](https://github.com/nodejs/node/pull/42049) +* \[[`e80043fb61`](https://github.com/nodejs/node/commit/e80043fb61)] - **lib**: stop installing webcrypto if `no_browser_globals` is `true` (Mestery) [#41971](https://github.com/nodejs/node/pull/41971) +* \[[`9946b9bceb`](https://github.com/nodejs/node/commit/9946b9bceb)] - **lib**: allow respondWithNewView on byob auto allocated streams (Sean Quinlan) [#41887](https://github.com/nodejs/node/pull/41887) +* \[[`f4e39171de`](https://github.com/nodejs/node/commit/f4e39171de)] - **lib**: restrict usage of fetch related globals in core internals (Antoine du Hamel) [#41957](https://github.com/nodejs/node/pull/41957) +* \[[`b1f0cc6412`](https://github.com/nodejs/node/commit/b1f0cc6412)] - **lib**: move kEnumerableProperty to internal/util (Mestery) [#41877](https://github.com/nodejs/node/pull/41877) +* \[[`2a85e0ac00`](https://github.com/nodejs/node/commit/2a85e0ac00)] - **lib**: add internal genericNodeError() function (Rich Trott) [#41879](https://github.com/nodejs/node/pull/41879) +* \[[`647805a747`](https://github.com/nodejs/node/commit/647805a747)] - **(SEMVER-MINOR)** **lib**: add FormData global when fetch is enabled (Michaël Zasso) [#41956](https://github.com/nodejs/node/pull/41956) +* \[[`f17ce913c9`](https://github.com/nodejs/node/commit/f17ce913c9)] - **(SEMVER-MINOR)** **lib**: add fetch (Michaël Zasso) [#41749](https://github.com/nodejs/node/pull/41749) +* \[[`2cbf45b8a5`](https://github.com/nodejs/node/commit/2cbf45b8a5)] - **loader**: fix esm resolve for symlink file (Xuguang Mei) [#42197](https://github.com/nodejs/node/pull/42197) +* \[[`a363842261`](https://github.com/nodejs/node/commit/a363842261)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#42404](https://github.com/nodejs/node/pull/42404) +* \[[`a122eb1989`](https://github.com/nodejs/node/commit/a122eb1989)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#42317](https://github.com/nodejs/node/pull/42317) +* \[[`c56e15a0eb`](https://github.com/nodejs/node/commit/c56e15a0eb)] - **meta**: add dependencies label to label-pr-config (Mestery) [#42129](https://github.com/nodejs/node/pull/42129) +* \[[`137ca4e1d4`](https://github.com/nodejs/node/commit/137ca4e1d4)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#42227](https://github.com/nodejs/node/pull/42227) +* \[[`09ab04696f`](https://github.com/nodejs/node/commit/09ab04696f)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#42142](https://github.com/nodejs/node/pull/42142) +* \[[`d4d9c00949`](https://github.com/nodejs/node/commit/d4d9c00949)] - **meta**: correct link to feature request document (Simen Bekkhus) [#42092](https://github.com/nodejs/node/pull/42092) +* \[[`2135f8e6cb`](https://github.com/nodejs/node/commit/2135f8e6cb)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#42068](https://github.com/nodejs/node/pull/42068) +* \[[`b969a278eb`](https://github.com/nodejs/node/commit/b969a278eb)] - **meta**: remove collaborator (Rich Trott) [#42073](https://github.com/nodejs/node/pull/42073) +* \[[`de035bceda`](https://github.com/nodejs/node/commit/de035bceda)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#42058](https://github.com/nodejs/node/pull/42058) +* \[[`f5ffa34f77`](https://github.com/nodejs/node/commit/f5ffa34f77)] - **meta**: use plain emojis instead of escape sequences (Mestery) [#41989](https://github.com/nodejs/node/pull/41989) +* \[[`6f1adf1f3e`](https://github.com/nodejs/node/commit/6f1adf1f3e)] - **meta**: update AUTHORS and .mailmap (Rich Trott) [#41953](https://github.com/nodejs/node/pull/41953) +* \[[`363028c887`](https://github.com/nodejs/node/commit/363028c887)] - **(SEMVER-MINOR)** **module**: unflag esm json modules (Geoffrey Booth) [#41736](https://github.com/nodejs/node/pull/41736) +* \[[`b3afb20b44`](https://github.com/nodejs/node/commit/b3afb20b44)] - **(SEMVER-MINOR)** **net**: add new options to `net.Socket` and `net.Server` (Paolo Insogna) [#41310](https://github.com/nodejs/node/pull/41310) +* \[[`bd48ad9c16`](https://github.com/nodejs/node/commit/bd48ad9c16)] - **node-api**: fix typo in `node_api.cc` (Austin Kelleher) [#42110](https://github.com/nodejs/node/pull/42110) +* \[[`11ec3345e7`](https://github.com/nodejs/node/commit/11ec3345e7)] - **(SEMVER-MINOR)** **node-api**: add node\_api\_symbol\_for() (Darshan Sen) [#41329](https://github.com/nodejs/node/pull/41329) +* \[[`7c0b8ca5ac`](https://github.com/nodejs/node/commit/7c0b8ca5ac)] - **perf\_hooks**: do not return all entries with getEntriesBy\[Name|Type] (Xuguang Mei) [#42104](https://github.com/nodejs/node/pull/42104) +* \[[`b7a307f0ed`](https://github.com/nodejs/node/commit/b7a307f0ed)] - **perf\_hooks**: use arrays to store EntryBuffers (Xuguang Mei) [#42032](https://github.com/nodejs/node/pull/42032) +* \[[`61ecdf8f12`](https://github.com/nodejs/node/commit/61ecdf8f12)] - **process**: fix named report export (madflow) [#41861](https://github.com/nodejs/node/pull/41861) +* \[[`bc08165953`](https://github.com/nodejs/node/commit/bc08165953)] - **process**: deprecate multipleResolves (Benjamin Gruenbaum) [#41872](https://github.com/nodejs/node/pull/41872) +* \[[`a88d4a2e2c`](https://github.com/nodejs/node/commit/a88d4a2e2c)] - **repl**: remove preview when press escape (meixg) [#42053](https://github.com/nodejs/node/pull/42053) +* \[[`83267aaa7f`](https://github.com/nodejs/node/commit/83267aaa7f)] - **repl**: #41690 REPL gives wrong autocomplete on literals (Xuguang Mei) [#41883](https://github.com/nodejs/node/pull/41883) +* \[[`73ce911a6f`](https://github.com/nodejs/node/commit/73ce911a6f)] - **src**: convert hex2bin() into a regular function (Darshan Sen) [#42321](https://github.com/nodejs/node/pull/42321) +* \[[`7fe16ecc7a`](https://github.com/nodejs/node/commit/7fe16ecc7a)] - **src**: fix coverity warnings in node\_file.cc (Michael Dawson) [#42272](https://github.com/nodejs/node/pull/42272) +* \[[`5b30e28eb4`](https://github.com/nodejs/node/commit/5b30e28eb4)] - **src**: check EC\_POINT\_get\_affine\_coordinates result (Tobias Nießen) [#42304](https://github.com/nodejs/node/pull/42304) +* \[[`57b619da46`](https://github.com/nodejs/node/commit/57b619da46)] - **src**: simplify bound check in ParseArrayIndex (Tobias Nießen) [#42306](https://github.com/nodejs/node/pull/42306) +* \[[`0e3e3fda22`](https://github.com/nodejs/node/commit/0e3e3fda22)] - **src**: avoid returning invalid value from hex2bin (Tobias Nießen) [#42307](https://github.com/nodejs/node/pull/42307) +* \[[`5eaa59159f`](https://github.com/nodejs/node/commit/5eaa59159f)] - **src**: check return value of HMAC\_Final (Tobias Nießen) [#42303](https://github.com/nodejs/node/pull/42303) +* \[[`376b3c4293`](https://github.com/nodejs/node/commit/376b3c4293)] - **src**: include internal/options in the snapshot (Joyee Cheung) [#42203](https://github.com/nodejs/node/pull/42203) +* \[[`268fd97925`](https://github.com/nodejs/node/commit/268fd97925)] - **src**: remove redundant buffer size check (Tobias Nießen) [#42257](https://github.com/nodejs/node/pull/42257) +* \[[`90ce5c9fc5`](https://github.com/nodejs/node/commit/90ce5c9fc5)] - **src**: perform minor cleanups on zlib code (Anna Henningsen) [#42247](https://github.com/nodejs/node/pull/42247) +* \[[`de3748a7e7`](https://github.com/nodejs/node/commit/de3748a7e7)] - **src**: use `emplace_back` instead of `push_back` (Yash Ladha) [#42159](https://github.com/nodejs/node/pull/42159) +* \[[`830f93d892`](https://github.com/nodejs/node/commit/830f93d892)] - **src**: fix unchecked return warning from coverity (Michael Dawson) [#42176](https://github.com/nodejs/node/pull/42176) +* \[[`db9f7752a9`](https://github.com/nodejs/node/commit/db9f7752a9)] - **src**: return proper URLs from node\_api\_get\_module\_file\_name (Anna Henningsen) [#41758](https://github.com/nodejs/node/pull/41758) +* \[[`d4b1b5cf85`](https://github.com/nodejs/node/commit/d4b1b5cf85)] - **src**: skip revoke\_data\_object if uuid is not found (Xuguang Mei) [#42212](https://github.com/nodejs/node/pull/42212) +* \[[`3026449009`](https://github.com/nodejs/node/commit/3026449009)] - **src**: remove dead code in AddFingerprintDigest (Tobias Nießen) [#42145](https://github.com/nodejs/node/pull/42145) +* \[[`29fd5ff37d`](https://github.com/nodejs/node/commit/29fd5ff37d)] - **src**: combine GetCurveASN1Name and GetCurveNistName (Tobias Nießen) [#42118](https://github.com/nodejs/node/pull/42118) +* \[[`447ae8c5a3`](https://github.com/nodejs/node/commit/447ae8c5a3)] - **src**: simplify TLSWrap::SetSession (Tobias Nießen) [#42087](https://github.com/nodejs/node/pull/42087) +* \[[`2fe17f3891`](https://github.com/nodejs/node/commit/2fe17f3891)] - **src**: prefer bool over int in crypto\_common (Tobias Nießen) [#42097](https://github.com/nodejs/node/pull/42097) +* \[[`237f47e38e`](https://github.com/nodejs/node/commit/237f47e38e)] - **src**: simplify arg type of AddFingerprintDigest (Tobias Nießen) [#42101](https://github.com/nodejs/node/pull/42101) +* \[[`4244b1a0bb`](https://github.com/nodejs/node/commit/4244b1a0bb)] - **src**: do not ignore return value of BIO\_reset (Tobias Nießen) [#42103](https://github.com/nodejs/node/pull/42103) +* \[[`e77a7cf985`](https://github.com/nodejs/node/commit/e77a7cf985)] - **src**: simplify GetExponentString (Tobias Nießen) [#42121](https://github.com/nodejs/node/pull/42121) +* \[[`c811b8a1cb`](https://github.com/nodejs/node/commit/c811b8a1cb)] - **(SEMVER-MINOR)** **src**: allow preventing InitializeInspector in env (Shelley Vohr) [#35025](https://github.com/nodejs/node/pull/35025) +* \[[`af73a853f5`](https://github.com/nodejs/node/commit/af73a853f5)] - **src**: use const reference instead of pointer in URL::SerializeURL (Anna Henningsen) [#41759](https://github.com/nodejs/node/pull/41759) +* \[[`703593ab2a`](https://github.com/nodejs/node/commit/703593ab2a)] - **src**: reserve string allocation space early in URL::SerializeURL (Anna Henningsen) [#41759](https://github.com/nodejs/node/pull/41759) +* \[[`170a6cb33e`](https://github.com/nodejs/node/commit/170a6cb33e)] - **src**: fix query/fragment serialization in URL::SerializeURL (Anna Henningsen) [#41759](https://github.com/nodejs/node/pull/41759) +* \[[`86b9d3af98`](https://github.com/nodejs/node/commit/86b9d3af98)] - **src**: don't print interface if sin6\_scope\_id is 0 (Santiago Gimeno) [#41547](https://github.com/nodejs/node/pull/41547) +* \[[`fdea60e958`](https://github.com/nodejs/node/commit/fdea60e958)] - **src,buffer**: evaluate THROW\_AND\_RETURN\_IF\_OOB() expression only once (Darshan Sen) [#41945](https://github.com/nodejs/node/pull/41945) +* \[[`bf1f485c8d`](https://github.com/nodejs/node/commit/bf1f485c8d)] - **src,crypto**: avoid tristate Maybe\ in ExportJWKEcKey() (Darshan Sen) [#42223](https://github.com/nodejs/node/pull/42223) +* \[[`a5b189cda7`](https://github.com/nodejs/node/commit/a5b189cda7)] - **stream**: use .chunk when calling adapters's writev (Xuguang Mei) [#42161](https://github.com/nodejs/node/pull/42161) +* \[[`0c690456cf`](https://github.com/nodejs/node/commit/0c690456cf)] - **stream**: add more forEach tests (Benjamin Gruenbaum) [#41937](https://github.com/nodejs/node/pull/41937) +* \[[`f12cf6db47`](https://github.com/nodejs/node/commit/f12cf6db47)] - **(SEMVER-MINOR)** **stream**: add reduce (Benjamin Gruenbaum) [#41669](https://github.com/nodejs/node/pull/41669) +* \[[`4b6343964e`](https://github.com/nodejs/node/commit/4b6343964e)] - **stream**: use synchronous error validation on iteration helpers (iMoses) [#41652](https://github.com/nodejs/node/pull/41652) +* \[[`60e28ba507`](https://github.com/nodejs/node/commit/60e28ba507)] - **stream**: add asIndexedPairs (Benjamin Gruenbaum) [#41681](https://github.com/nodejs/node/pull/41681) +* \[[`88a48197c4`](https://github.com/nodejs/node/commit/88a48197c4)] - **stream**: add drop and take (Benjamin Gruenbaum) [#41630](https://github.com/nodejs/node/pull/41630) +* \[[`205c018ab4`](https://github.com/nodejs/node/commit/205c018ab4)] - **(SEMVER-MINOR)** **stream**: support flatMap (Benjamin Gruenbaum) [#41612](https://github.com/nodejs/node/pull/41612) +* \[[`0be2321d53`](https://github.com/nodejs/node/commit/0be2321d53)] - **(SEMVER-MINOR)** **stream**: support some and every (Benjamin Gruenbaum) [#41573](https://github.com/nodejs/node/pull/41573) +* \[[`ac8526e9a5`](https://github.com/nodejs/node/commit/ac8526e9a5)] - **(SEMVER-MINOR)** **stream**: add toArray (Benjamin Gruenbaum) [#41553](https://github.com/nodejs/node/pull/41553) +* \[[`dcc58314b9`](https://github.com/nodejs/node/commit/dcc58314b9)] - **(SEMVER-MINOR)** **stream**: add forEach method (Benjamin Gruenbaum) [#41445](https://github.com/nodejs/node/pull/41445) +* \[[`f21f104c7c`](https://github.com/nodejs/node/commit/f21f104c7c)] - **string\_decoder**: fix crash when calling \_\_proto\_\_.write() (Darshan Sen) [#42062](https://github.com/nodejs/node/pull/42062) +* \[[`e3bced182c`](https://github.com/nodejs/node/commit/e3bced182c)] - **test**: give slow tests more time on Rasberry PIs (Michael Dawson) [#42380](https://github.com/nodejs/node/pull/42380) +* \[[`04243a85c7`](https://github.com/nodejs/node/commit/04243a85c7)] - **test**: improve https\_renew\_cert.sh script (Tobias Nießen) [#42343](https://github.com/nodejs/node/pull/42343) +* \[[`6d422ad807`](https://github.com/nodejs/node/commit/6d422ad807)] - **test**: improve \_http\_incoming.js coverage (Yoshiki Kurihara) [#42211](https://github.com/nodejs/node/pull/42211) +* \[[`3d37efe588`](https://github.com/nodejs/node/commit/3d37efe588)] - **test**: improve \_http\_outgoing coverage (Yoshiki Kurihara) [#42213](https://github.com/nodejs/node/pull/42213) +* \[[`245577e15c`](https://github.com/nodejs/node/commit/245577e15c)] - **test**: add test case for reverted 17.7 regression (Rich Trott) [#42283](https://github.com/nodejs/node/pull/42283) +* \[[`3cc06de597`](https://github.com/nodejs/node/commit/3cc06de597)] - **test**: use global webcrypto for WPT tests (Antoine du Hamel) [#42236](https://github.com/nodejs/node/pull/42236) +* \[[`623be18fa3`](https://github.com/nodejs/node/commit/623be18fa3)] - **test**: cover 32-bit sizes in generatePrime (Tobias Nießen) [#42207](https://github.com/nodejs/node/pull/42207) +* \[[`70281e17ad`](https://github.com/nodejs/node/commit/70281e17ad)] - **test**: fix test-process-env-tz.js by using RegExp (Khaidi Chu) [#42113](https://github.com/nodejs/node/pull/42113) +* \[[`33b11a3548`](https://github.com/nodejs/node/commit/33b11a3548)] - **test**: update V8 trace events test expectations (Nikolaos Papaspyrou) [#42120](https://github.com/nodejs/node/pull/42120) +* \[[`978b50fe44`](https://github.com/nodejs/node/commit/978b50fe44)] - **test**: deflake test-common-expect-warning (Luigi Pinca) [#42046](https://github.com/nodejs/node/pull/42046) +* \[[`629d06ace8`](https://github.com/nodejs/node/commit/629d06ace8)] - **test**: validate `EventEmitterAsyncResource` methods throw on invalid this (Yoshiki Kurihara) [#42041](https://github.com/nodejs/node/pull/42041) +* \[[`17af006e38`](https://github.com/nodejs/node/commit/17af006e38)] - **test**: increase Fibonacci argument to 40 (Rich Trott) [#42055](https://github.com/nodejs/node/pull/42055) +* \[[`b06780801c`](https://github.com/nodejs/node/commit/b06780801c)] - **test**: remove test-stdout-close-catch flaky designation (Rich Trott) [#42045](https://github.com/nodejs/node/pull/42045) +* \[[`9ae6982387`](https://github.com/nodejs/node/commit/9ae6982387)] - **test**: check that fetch globals are disabled by default (Michaël Zasso) [#42015](https://github.com/nodejs/node/pull/42015) +* \[[`2a1a94bbbb`](https://github.com/nodejs/node/commit/2a1a94bbbb)] - **test**: improve vm test coverage (Yoshiki Kurihara) [#41847](https://github.com/nodejs/node/pull/41847) +* \[[`3e354da097`](https://github.com/nodejs/node/commit/3e354da097)] - **test**: run webmessaging/broadcastchannel WPT (Ben Noordhuis) [#41962](https://github.com/nodejs/node/pull/41962) +* \[[`711e863084`](https://github.com/nodejs/node/commit/711e863084)] - **test**: fix names of tests marked flaky on IBM i (Richard Lau) [#41984](https://github.com/nodejs/node/pull/41984) +* \[[`95eb03c298`](https://github.com/nodejs/node/commit/95eb03c298)] - **test**: fix typographical error (Rich Trott) [#41983](https://github.com/nodejs/node/pull/41983) +* \[[`31def41391`](https://github.com/nodejs/node/commit/31def41391)] - **test**: fix intl tests on small-icu builds (Antoine du Hamel) [#41939](https://github.com/nodejs/node/pull/41939) +* \[[`11e76fcba4`](https://github.com/nodejs/node/commit/11e76fcba4)] - **test**: remove lint rule for setTimeout() arguments (Rich Trott) [#41901](https://github.com/nodejs/node/pull/41901) +* \[[`fd8bf09608`](https://github.com/nodejs/node/commit/fd8bf09608)] - **test**: move test-crypto-engine to addon (Michael Dawson) [#41830](https://github.com/nodejs/node/pull/41830) +* \[[`25109a6471`](https://github.com/nodejs/node/commit/25109a6471)] - **test**: improve stability of oom test (Benjamin Gruenbaum) [#41681](https://github.com/nodejs/node/pull/41681) +* \[[`ad17c9ce0c`](https://github.com/nodejs/node/commit/ad17c9ce0c)] - **test,crypto**: add and update empty passphrase regression tests (Darshan Sen) [#42319](https://github.com/nodejs/node/pull/42319) +* \[[`9649d656ba`](https://github.com/nodejs/node/commit/9649d656ba)] - **tls**: avoid throw in onerror for bad TLSSocket obj (Valters Jansons) [#41523](https://github.com/nodejs/node/pull/41523) +* \[[`789e6041a6`](https://github.com/nodejs/node/commit/789e6041a6)] - **tools**: update lint-md-dependencies to rollup\@2.70.1 (Node.js GitHub Bot) [#42403](https://github.com/nodejs/node/pull/42403) +* \[[`1c1061549a`](https://github.com/nodejs/node/commit/1c1061549a)] - **tools**: update doc to highlight.js\@11.5.0 unified\@10.1.2 (Node.js GitHub Bot) [#42315](https://github.com/nodejs/node/pull/42315) +* \[[`97aa236083`](https://github.com/nodejs/node/commit/97aa236083)] - **tools**: update lint-md-dependencies to rollup\@2.70.0 unified\@10.1.2 (Node.js GitHub Bot) [#42316](https://github.com/nodejs/node/pull/42316) +* \[[`7636370bdb`](https://github.com/nodejs/node/commit/7636370bdb)] - **tools**: update eslint to 8.11.0 (Node.js GitHub Bot) [#42318](https://github.com/nodejs/node/pull/42318) +* \[[`359395393f`](https://github.com/nodejs/node/commit/359395393f)] - **tools**: fix web streams API links (Brian White) [#42153](https://github.com/nodejs/node/pull/42153) +* \[[`fe5578b627`](https://github.com/nodejs/node/commit/fe5578b627)] - **tools**: update lint-md-dependencies to rollup\@2.69.1 (Node.js GitHub Bot) [#42226](https://github.com/nodejs/node/pull/42226) +* \[[`8532f83c8e`](https://github.com/nodejs/node/commit/8532f83c8e)] - **tools**: update lint-md rollup dependencies (Node.js GitHub Bot) [#42141](https://github.com/nodejs/node/pull/42141) +* \[[`f2a16158a0`](https://github.com/nodejs/node/commit/f2a16158a0)] - **tools**: update eslint to 8.10.0 (Node.js GitHub Bot) [#42143](https://github.com/nodejs/node/pull/42143) +* \[[`11f747b0e4`](https://github.com/nodejs/node/commit/11f747b0e4)] - **tools**: update lint-md-dependencies to rollup\@2.67.3 (Node.js GitHub Bot) [#42057](https://github.com/nodejs/node/pull/42057) +* \[[`c47b436bd0`](https://github.com/nodejs/node/commit/c47b436bd0)] - **tools**: enable es2022 env in ESLint config (Michaël Zasso) [#42043](https://github.com/nodejs/node/pull/42043) +* \[[`bbdf285a39`](https://github.com/nodejs/node/commit/bbdf285a39)] - **tools**: add `console` to the list of restricted globals (Antoine du Hamel) [#42012](https://github.com/nodejs/node/pull/42012) +* \[[`aace6c2626`](https://github.com/nodejs/node/commit/aace6c2626)] - **tools**: lint deprecation codes (Antoine du Hamel) [#41992](https://github.com/nodejs/node/pull/41992) +* \[[`c229889022`](https://github.com/nodejs/node/commit/c229889022)] - **tools**: fix bugs in prefer-primordials linter rule (Antoine du Hamel) [#42010](https://github.com/nodejs/node/pull/42010) +* \[[`410d0ce44a`](https://github.com/nodejs/node/commit/410d0ce44a)] - **tools**: add timers functions to the list of restricted globals (Antoine du Hamel) [#42013](https://github.com/nodejs/node/pull/42013) +* \[[`06d8c53e62`](https://github.com/nodejs/node/commit/06d8c53e62)] - **tools**: reduce list of globals in ESLint config (Rich Trott) [#41996](https://github.com/nodejs/node/pull/41996) +* \[[`82b64f44fc`](https://github.com/nodejs/node/commit/82b64f44fc)] - **tools**: update remark-preset-lint-node to 3.3.1 (Rich Trott) [#41999](https://github.com/nodejs/node/pull/41999) +* \[[`1db9cc7e59`](https://github.com/nodejs/node/commit/1db9cc7e59)] - **tools**: update ESLint to 8.9.0 (Luigi Pinca) [#41973](https://github.com/nodejs/node/pull/41973) +* \[[`f8c6232f90`](https://github.com/nodejs/node/commit/f8c6232f90)] - **tools**: update lint-md-dependencies to rollup\@2.67.2 (Node.js GitHub Bot) [#41941](https://github.com/nodejs/node/pull/41941) +* \[[`57d5576c4d`](https://github.com/nodejs/node/commit/57d5576c4d)] - **tools**: fix typo in prefer-primordials.js (Ikko Ashimine) [#41891](https://github.com/nodejs/node/pull/41891) +* \[[`4bba27935a`](https://github.com/nodejs/node/commit/4bba27935a)] - **tools,lib**: remove `global` and `Intl` from the list of globals (Antoine du Hamel) [#42014](https://github.com/nodejs/node/pull/42014) +* \[[`e918570d10`](https://github.com/nodejs/node/commit/e918570d10)] - **url**: preserve null char in WHATWG URL errors (Rich Trott) [#42263](https://github.com/nodejs/node/pull/42263) +* \[[`962a8ec350`](https://github.com/nodejs/node/commit/962a8ec350)] - **url**: trim leading and trailing C0 control chars (Rich Trott) [#42196](https://github.com/nodejs/node/pull/42196) +* \[[`78647edba7`](https://github.com/nodejs/node/commit/78647edba7)] - **url, src**: modify one `special_back_slash` (Khaidi Chu) [#42112](https://github.com/nodejs/node/pull/42112) +* \[[`a458fbf949`](https://github.com/nodejs/node/commit/a458fbf949)] - **worker**: do not send message if port is closing (Rich Trott) [#42357](https://github.com/nodejs/node/pull/42357) +* \[[`604621a275`](https://github.com/nodejs/node/commit/604621a275)] - **worker**: fix typo in debug statement (Antoine du Hamel) [#42011](https://github.com/nodejs/node/pull/42011) +* \[[`237affc951`](https://github.com/nodejs/node/commit/237affc951)] - **(SEMVER-MINOR)** **worker**: graduate get/setEnvironmentData APIs (James M Snell) [#41272](https://github.com/nodejs/node/pull/41272) + ## 2022-03-17, Version 16.14.2 'Gallium' (LTS), @richardlau diff --git a/doc/changelogs/CHANGELOG_V17.md b/doc/changelogs/CHANGELOG_V17.md index 46b610a27c4a15..1a8fad1a35b6e5 100644 --- a/doc/changelogs/CHANGELOG_V17.md +++ b/doc/changelogs/CHANGELOG_V17.md @@ -8,6 +8,7 @@ +17.9.1
    17.9.0
    17.8.0
    17.7.2
    @@ -27,6 +28,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) * [14.x](CHANGELOG_V14.md) @@ -45,6 +47,30 @@ * [io.js](CHANGELOG_IOJS.md) * [Archive](CHANGELOG_ARCHIVE.md) + + +## 2022-06-01, Version 17.9.1 (Current), @ruyadorno + +### Notable Changes + +* Upgrade npm to 8.11.0 + +#### Update to OpenSSL 3.0.3 + +This update can be treated as a security release as the issues addressed in OpenSSL 3.0.3 slightly affect Node.js 17. +See for more information on how the May 2022 OpenSSL releases affect other Node.js release lines. + +### Commits + +* \[[`17fef6ed54`](https://github.com/nodejs/node/commit/17fef6ed54)] - **deps**: upgrade npm to 8.11.0 (npm team) [#43210](https://github.com/nodejs/node/pull/43210) +* \[[`d0b53c0557`](https://github.com/nodejs/node/commit/d0b53c0557)] - **deps**: upgrade npm to 8.10.0 (npm team) [#43061](https://github.com/nodejs/node/pull/43061) +* \[[`72630d176f`](https://github.com/nodejs/node/commit/72630d176f)] - **deps**: upgrade npm to 8.9.0 (npm team) [#42968](https://github.com/nodejs/node/pull/42968) +* \[[`93d58c361e`](https://github.com/nodejs/node/commit/93d58c361e)] - **deps**: upgrade npm to 8.8.0 (npm team) [#42886](https://github.com/nodejs/node/pull/42886) +* \[[`34e6edd421`](https://github.com/nodejs/node/commit/34e6edd421)] - **deps**: upgrade npm to 8.7.0 (npm team) [#42744](https://github.com/nodejs/node/pull/42744) +* \[[`02f8b0cdad`](https://github.com/nodejs/node/commit/02f8b0cdad)] - **deps**: upgrade npm to 8.6.0 (npm team) [#42550](https://github.com/nodejs/node/pull/42550) +* \[[`871eace946`](https://github.com/nodejs/node/commit/871eace946)] - **deps**: update archs files for quictls/openssl-3.0.3 (RafaelGSS) [#43025](https://github.com/nodejs/node/pull/43025) +* \[[`05fb807ab0`](https://github.com/nodejs/node/commit/05fb807ab0)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.3 (RafaelGSS) [#43025](https://github.com/nodejs/node/pull/43025) + ## 2022-04-07, Version 17.9.0 (Current), @BethGriggs prepared by @juanarbol diff --git a/doc/changelogs/CHANGELOG_V18.md b/doc/changelogs/CHANGELOG_V18.md new file mode 100644 index 00000000000000..4fa2894562a94c --- /dev/null +++ b/doc/changelogs/CHANGELOG_V18.md @@ -0,0 +1,731 @@ +# Node.js 18 ChangeLog + + + + + + + + + + +
    Current
    +18.4.0
    +18.3.0
    +18.2.0
    +18.1.0
    +18.0.0
    +
    + +* Other Versions + * [17.x](CHANGELOG_V17.md) + * [16.x](CHANGELOG_V16.md) + * [15.x](CHANGELOG_V15.md) + * [14.x](CHANGELOG_V14.md) + * [13.x](CHANGELOG_V13.md) + * [12.x](CHANGELOG_V12.md) + * [11.x](CHANGELOG_V11.md) + * [10.x](CHANGELOG_V10.md) + * [9.x](CHANGELOG_V9.md) + * [8.x](CHANGELOG_V8.md) + * [7.x](CHANGELOG_V7.md) + * [6.x](CHANGELOG_V6.md) + * [5.x](CHANGELOG_V5.md) + * [4.x](CHANGELOG_V4.md) + * [0.12.x](CHANGELOG_V012.md) + * [0.10.x](CHANGELOG_V010.md) + * [io.js](CHANGELOG_IOJS.md) + * [Archive](CHANGELOG_ARCHIVE.md) + + + +## 2022-06-16, Version 18.4.0 (Current), @danielleadams + +### Notable Changes + +* **crypto**: + * remove Node.js-specific webcrypto extensions (Filip Skokan) [#43310](https://github.com/nodejs/node/pull/43310) + * add CFRG curves to Web Crypto API (Filip Skokan) [#42507](https://github.com/nodejs/node/pull/42507) +* **dns**: + * accept `'IPv4'` and `'IPv6'` for `family` (Antoine du Hamel) [#43054](https://github.com/nodejs/node/pull/43054) +* **report**: + * add more heap infos in process report (theanarkh) [#43116](https://github.com/nodejs/node/pull/43116) + +### Commits + +* \[[`702bfa0b7c`](https://github.com/nodejs/node/commit/702bfa0b7c)] - **async\_hooks**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`f7c4015fd8`](https://github.com/nodejs/node/commit/f7c4015fd8)] - **bootstrap**: consolidate global properties definition (Chengzhong Wu) [#43357](https://github.com/nodejs/node/pull/43357) +* \[[`8d892f5259`](https://github.com/nodejs/node/commit/8d892f5259)] - **build**: add nonpm and nocorepack to vcbuild.bat (Darshan Sen) [#43219](https://github.com/nodejs/node/pull/43219) +* \[[`4109ddc005`](https://github.com/nodejs/node/commit/4109ddc005)] - **child\_process**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`7b5cb14f0c`](https://github.com/nodejs/node/commit/7b5cb14f0c)] - **cluster**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`9f1de2c005`](https://github.com/nodejs/node/commit/9f1de2c005)] - **crypto**: fix webcrypto import of cfrg raw public keys (Filip Skokan) [#43404](https://github.com/nodejs/node/pull/43404) +* \[[`7f02e22998`](https://github.com/nodejs/node/commit/7f02e22998)] - **crypto**: test webcrypto ec raw public key import (Filip Skokan) [#43405](https://github.com/nodejs/node/pull/43405) +* \[[`0a075cb548`](https://github.com/nodejs/node/commit/0a075cb548)] - **crypto**: fix webcrypto JWK EC and OKP import crv check (Filip Skokan) [#43346](https://github.com/nodejs/node/pull/43346) +* \[[`df0903c8e8`](https://github.com/nodejs/node/commit/df0903c8e8)] - **crypto**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`6d0053345e`](https://github.com/nodejs/node/commit/6d0053345e)] - **(SEMVER-MINOR)** **crypto**: remove Node.js-specific webcrypto extensions (Filip Skokan) [#43310](https://github.com/nodejs/node/pull/43310) +* \[[`28c034d6b5`](https://github.com/nodejs/node/commit/28c034d6b5)] - **(SEMVER-MINOR)** **crypto**: add CFRG curves to Web Crypto API (Filip Skokan) [#42507](https://github.com/nodejs/node/pull/42507) +* \[[`fe7fd85109`](https://github.com/nodejs/node/commit/fe7fd85109)] - **deps**: update Corepack to 0.11.2 (Maël Nison) [#43402](https://github.com/nodejs/node/pull/43402) +* \[[`517f17b214`](https://github.com/nodejs/node/commit/517f17b214)] - **deps**: update undici to 5.5.1 (Node.js GitHub Bot) [#43412](https://github.com/nodejs/node/pull/43412) +* \[[`f4c830fbe4`](https://github.com/nodejs/node/commit/f4c830fbe4)] - **deps**: upgrade npm to 8.12.1 (npm CLI robot) [#43301](https://github.com/nodejs/node/pull/43301) +* \[[`0bb84b09a5`](https://github.com/nodejs/node/commit/0bb84b09a5)] - **(SEMVER-MINOR)** **dns**: accept `'IPv4'` and `'IPv6'` for `family` (Antoine du Hamel) [#43054](https://github.com/nodejs/node/pull/43054) +* \[[`f91babe494`](https://github.com/nodejs/node/commit/f91babe494)] - **doc**: packages documentation updates for 12 EOL (Guy Bedford) [#43375](https://github.com/nodejs/node/pull/43375) +* \[[`066f963ec1`](https://github.com/nodejs/node/commit/066f963ec1)] - **doc**: add initial doc on how to update cjs-module-lexer (Michael Dawson) [#43255](https://github.com/nodejs/node/pull/43255) +* \[[`36e5684ae0`](https://github.com/nodejs/node/commit/36e5684ae0)] - **doc**: clarify use of deps/icu-small (Michael Dawson) [#43287](https://github.com/nodejs/node/pull/43287) +* \[[`b9634e7ef3`](https://github.com/nodejs/node/commit/b9634e7ef3)] - **doc**: remove llnode from diag tierlist (Tony Gorez) [#43289](https://github.com/nodejs/node/pull/43289) +* \[[`4caeb10e7b`](https://github.com/nodejs/node/commit/4caeb10e7b)] - **doc**: remove ETW from diag tierlist (Tony Gorez) [#43295](https://github.com/nodejs/node/pull/43295) +* \[[`41955e5ce5`](https://github.com/nodejs/node/commit/41955e5ce5)] - **doc**: use serial comma in report docs (Tobias Nießen) [#43394](https://github.com/nodejs/node/pull/43394) +* \[[`e30d4c1cb0`](https://github.com/nodejs/node/commit/e30d4c1cb0)] - **doc**: add fspromises mkdir example (Tierney Cyren) [#40843](https://github.com/nodejs/node/pull/40843) +* \[[`adec5fa929`](https://github.com/nodejs/node/commit/adec5fa929)] - **doc**: add F3n67u to triagers (Feng Yu) [#43350](https://github.com/nodejs/node/pull/43350) +* \[[`cc3505b192`](https://github.com/nodejs/node/commit/cc3505b192)] - **doc**: fix typo in globals.md (Daeyeon Jeong) [#43365](https://github.com/nodejs/node/pull/43365) +* \[[`052c8eaf6a`](https://github.com/nodejs/node/commit/052c8eaf6a)] - **doc**: use serial comma in webstreams docs (Tobias Nießen) [#43353](https://github.com/nodejs/node/pull/43353) +* \[[`b824a0b7d0`](https://github.com/nodejs/node/commit/b824a0b7d0)] - **doc**: fix specifier example in `esm.md` (hiroki osame) [#43351](https://github.com/nodejs/node/pull/43351) +* \[[`d558b3c028`](https://github.com/nodejs/node/commit/d558b3c028)] - **doc**: add undici to glossary (F3n67u) [#43327](https://github.com/nodejs/node/pull/43327) +* \[[`f9ad98f5cb`](https://github.com/nodejs/node/commit/f9ad98f5cb)] - **doc**: change glossary link in pull request guide to node's glossary doc (Feng Yu) [#43318](https://github.com/nodejs/node/pull/43318) +* \[[`02944a6783`](https://github.com/nodejs/node/commit/02944a6783)] - **doc**: fix typo in util.parseArgs usage example (Michael Ficarra) [#43332](https://github.com/nodejs/node/pull/43332) +* \[[`f2bc6a3f71`](https://github.com/nodejs/node/commit/f2bc6a3f71)] - **doc**: improve description of TZ (Tobias Nießen) [#43334](https://github.com/nodejs/node/pull/43334) +* \[[`9335ea6c35`](https://github.com/nodejs/node/commit/9335ea6c35)] - **doc**: use serial comma in net docs (Tobias Nießen) [#43335](https://github.com/nodejs/node/pull/43335) +* \[[`05f38c6c3e`](https://github.com/nodejs/node/commit/05f38c6c3e)] - **doc**: make clear the result of comparison between Symbol.for (Kohei Ueno) [#43309](https://github.com/nodejs/node/pull/43309) +* \[[`c9aed9de9f`](https://github.com/nodejs/node/commit/c9aed9de9f)] - **doc**: add missing require to stream api doc (Feng Yu) [#43237](https://github.com/nodejs/node/pull/43237) +* \[[`f3188c1c9c`](https://github.com/nodejs/node/commit/f3188c1c9c)] - **doc**: add CIGTM to `glossary.md` (Feng Yu) [#43316](https://github.com/nodejs/node/pull/43316) +* \[[`c572d2d115`](https://github.com/nodejs/node/commit/c572d2d115)] - **doc**: use serial comma in pull request doc (Feng Yu) [#43319](https://github.com/nodejs/node/pull/43319) +* \[[`8a4e1fa002`](https://github.com/nodejs/node/commit/8a4e1fa002)] - **doc**: use serial comma in ESM docs (Tobias Nießen) [#43322](https://github.com/nodejs/node/pull/43322) +* \[[`fff0560a66`](https://github.com/nodejs/node/commit/fff0560a66)] - **doc**: promote cdt to tier 3 (Tony Gorez) [#43290](https://github.com/nodejs/node/pull/43290) +* \[[`7d0f6da97f`](https://github.com/nodejs/node/commit/7d0f6da97f)] - **doc**: fix chromium document link in pull-requests.md (rikapo) [#43265](https://github.com/nodejs/node/pull/43265) +* \[[`4674b0d2a5`](https://github.com/nodejs/node/commit/4674b0d2a5)] - **doc**: fix 404 link of BUILDING.md (Feng Yu) [#43234](https://github.com/nodejs/node/pull/43234) +* \[[`ee392c5c0b`](https://github.com/nodejs/node/commit/ee392c5c0b)] - **doc**: update CHANGELOG\_V18.md (Filip Skokan) [#43298](https://github.com/nodejs/node/pull/43298) +* \[[`5a3a2a197f`](https://github.com/nodejs/node/commit/5a3a2a197f)] - **doc**: add src/crypto to CC list for nodejs/crypto (Tobias Nießen) [#43286](https://github.com/nodejs/node/pull/43286) +* \[[`69ce50396c`](https://github.com/nodejs/node/commit/69ce50396c)] - **doc**: use serial comma in console docs (Tobias Nießen) [#43257](https://github.com/nodejs/node/pull/43257) +* \[[`0c5092c51c`](https://github.com/nodejs/node/commit/0c5092c51c)] - **events**: fix adding abort listener in `events.once` (Daeyeon Jeong) [#43373](https://github.com/nodejs/node/pull/43373) +* \[[`fda2105481`](https://github.com/nodejs/node/commit/fda2105481)] - **events**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`63bf49b143`](https://github.com/nodejs/node/commit/63bf49b143)] - **fs**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`9b764531b9`](https://github.com/nodejs/node/commit/9b764531b9)] - **fs**: export constants from `fs/promises` (Feng Yu) [#43177](https://github.com/nodejs/node/pull/43177) +* \[[`a4409f85f8`](https://github.com/nodejs/node/commit/a4409f85f8)] - **http**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`2ffd54105a`](https://github.com/nodejs/node/commit/2ffd54105a)] - **http2**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`b468b8fe51`](https://github.com/nodejs/node/commit/b468b8fe51)] - **https**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`d2a98dc6cf`](https://github.com/nodejs/node/commit/d2a98dc6cf)] - **inspector**: add missing initialization (Michael Dawson) [#43254](https://github.com/nodejs/node/pull/43254) +* \[[`3b2f7eed39`](https://github.com/nodejs/node/commit/3b2f7eed39)] - **lib**: use `kEmptyObject` in various places (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`4a9511d971`](https://github.com/nodejs/node/commit/4a9511d971)] - **lib**: give names to promisified methods (LiviaMedeiros) [#43218](https://github.com/nodejs/node/pull/43218) +* \[[`b8644606eb`](https://github.com/nodejs/node/commit/b8644606eb)] - **lib**: use null-prototype objects for property descriptors (Antoine du Hamel) [#43270](https://github.com/nodejs/node/pull/43270) +* \[[`64edd6cbc3`](https://github.com/nodejs/node/commit/64edd6cbc3)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#43399](https://github.com/nodejs/node/pull/43399) +* \[[`b05cea57ba`](https://github.com/nodejs/node/commit/b05cea57ba)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#43387](https://github.com/nodejs/node/pull/43387) +* \[[`a8ecec57e3`](https://github.com/nodejs/node/commit/a8ecec57e3)] - **meta**: move one or more collaborators to emeritus (#43183) (Node.js GitHub Bot) [#43183](https://github.com/nodejs/node/pull/43183) +* \[[`60dc36244a`](https://github.com/nodejs/node/commit/60dc36244a)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#43312](https://github.com/nodejs/node/pull/43312) +* \[[`9803b82ac7`](https://github.com/nodejs/node/commit/9803b82ac7)] - **net,dns**: move hasObserver out of perf function (theanarkh) [#43217](https://github.com/nodejs/node/pull/43217) +* \[[`112518fb1d`](https://github.com/nodejs/node/commit/112518fb1d)] - **perf\_hooks**: fix function wrapped by `timerify` to work correctly (Kohei Ueno) [#43330](https://github.com/nodejs/node/pull/43330) +* \[[`a3310d13bf`](https://github.com/nodejs/node/commit/a3310d13bf)] - **perf\_hooks**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`7e8a00a26d`](https://github.com/nodejs/node/commit/7e8a00a26d)] - **readline**: fix question stack overflow (Eugene Chapko) [#43320](https://github.com/nodejs/node/pull/43320) +* \[[`5e98cacf77`](https://github.com/nodejs/node/commit/5e98cacf77)] - **readline**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`66d956ca49`](https://github.com/nodejs/node/commit/66d956ca49)] - **repl**: make autocomplete case-insensitive (Sergey Petushkov) [#41632](https://github.com/nodejs/node/pull/41632) +* \[[`201f3d7f56`](https://github.com/nodejs/node/commit/201f3d7f56)] - **(SEMVER-MINOR)** **report**: add more heap infos in process report (theanarkh) [#43116](https://github.com/nodejs/node/pull/43116) +* \[[`a0568409b6`](https://github.com/nodejs/node/commit/a0568409b6)] - **src**: fix json utils escapes for U+000B (Chengzhong Wu) [#43206](https://github.com/nodejs/node/pull/43206) +* \[[`931ecfa033`](https://github.com/nodejs/node/commit/931ecfa033)] - **src**: fix memory leaks and refactor `ByteSource` (Tobias Nießen) [#43202](https://github.com/nodejs/node/pull/43202) +* \[[`5e65c1f3da`](https://github.com/nodejs/node/commit/5e65c1f3da)] - **src**: convey potential exceptions during StreamPipe construction (Darshan Sen) [#43240](https://github.com/nodejs/node/pull/43240) +* \[[`b200a5ff67`](https://github.com/nodejs/node/commit/b200a5ff67)] - **stream**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`1cc1a57cdb`](https://github.com/nodejs/node/commit/1cc1a57cdb)] - **test**: remove unused argument in test-util-inspect.js (Colin Ihrig) [#43395](https://github.com/nodejs/node/pull/43395) +* \[[`42c2115a82`](https://github.com/nodejs/node/commit/42c2115a82)] - **test**: mark test\_buffer/test\_finalizer flaky (Michael Dawson) [#43414](https://github.com/nodejs/node/pull/43414) +* \[[`71802c32d0`](https://github.com/nodejs/node/commit/71802c32d0)] - **test**: fix address in use error (Caleb Everett) [#43199](https://github.com/nodejs/node/pull/43199) +* \[[`e1b8c85a7a`](https://github.com/nodejs/node/commit/e1b8c85a7a)] - **test**: add test for short-option followed by its value (Kohei Ueno) [#43358](https://github.com/nodejs/node/pull/43358) +* \[[`f8d26c6011`](https://github.com/nodejs/node/commit/f8d26c6011)] - **test**: fix `common.mustNotCall` error message (Antoine du Hamel) [#42917](https://github.com/nodejs/node/pull/42917) +* \[[`18fffe6108`](https://github.com/nodejs/node/commit/18fffe6108)] - **test**: convert then to async/await (Meek Simbule) [#43292](https://github.com/nodejs/node/pull/43292) +* \[[`acd96d80eb`](https://github.com/nodejs/node/commit/acd96d80eb)] - **test**: add `BigInt`s to `common.getArrayBufferViews()` (LiviaMedeiros) [#43235](https://github.com/nodejs/node/pull/43235) +* \[[`e576a7fa50`](https://github.com/nodejs/node/commit/e576a7fa50)] - **test\_runner**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`fecad7a3a5`](https://github.com/nodejs/node/commit/fecad7a3a5)] - **timers**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`e31baca76a`](https://github.com/nodejs/node/commit/e31baca76a)] - **tls**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`7f8f61a749`](https://github.com/nodejs/node/commit/7f8f61a749)] - **tls**: fix performance regression in `convertALPNProtocols()` (LiviaMedeiros) [#43250](https://github.com/nodejs/node/pull/43250) +* \[[`ac9599a718`](https://github.com/nodejs/node/commit/ac9599a718)] - **tools**: report unsafe string and regex primordials as lint errors (Antoine du Hamel) [#43393](https://github.com/nodejs/node/pull/43393) +* \[[`b69d874592`](https://github.com/nodejs/node/commit/b69d874592)] - **tools**: fix `create-or-update-pull-request-action` hash on GHA (Antoine du Hamel) [#43378](https://github.com/nodejs/node/pull/43378) +* \[[`cf8a115983`](https://github.com/nodejs/node/commit/cf8a115983)] - **tools**: add `avoid-prototype-pollution` lint rule (Antoine du Hamel) [#43308](https://github.com/nodejs/node/pull/43308) +* \[[`8c0fe1e184`](https://github.com/nodejs/node/commit/8c0fe1e184)] - **tools**: fix find-inactive actions (LiviaMedeiros) [#43377](https://github.com/nodejs/node/pull/43377) +* \[[`7f45d69f83`](https://github.com/nodejs/node/commit/7f45d69f83)] - **tools**: update lint-md-dependencies to rollup\@2.75.5 (Node.js GitHub Bot) [#43313](https://github.com/nodejs/node/pull/43313) +* \[[`d5d0f01c5a`](https://github.com/nodejs/node/commit/d5d0f01c5a)] - **tools**: update eslint to 8.17.0 (Node.js GitHub Bot) [#43314](https://github.com/nodejs/node/pull/43314) +* \[[`f598fe1585`](https://github.com/nodejs/node/commit/f598fe1585)] - **tools**: use hashes instead of tags for external actions (#43284) (Antoine du Hamel) [#43284](https://github.com/nodejs/node/pull/43284) +* \[[`10f79947d9`](https://github.com/nodejs/node/commit/10f79947d9)] - **tools**: update `codecov/codecov-action` version (Antoine du Hamel) [#43297](https://github.com/nodejs/node/pull/43297) +* \[[`f93848fa50`](https://github.com/nodejs/node/commit/f93848fa50)] - **tools**: update lint-md-dependencies to rollup\@2.75.3 (Node.js GitHub Bot) [#43261](https://github.com/nodejs/node/pull/43261) +* \[[`b3d7dc1de8`](https://github.com/nodejs/node/commit/b3d7dc1de8)] - **tools**: update clang-format 1.7.0 to 1.8.0 (Darshan Sen) [#43241](https://github.com/nodejs/node/pull/43241) +* \[[`812140c65a`](https://github.com/nodejs/node/commit/812140c65a)] - **tools,doc**: add guards against prototype pollution when creating proxies (Antoine du Hamel) [#43391](https://github.com/nodejs/node/pull/43391) +* \[[`56b8cc5cef`](https://github.com/nodejs/node/commit/56b8cc5cef)] - **util**: freeze `kEnumerableProperty` (LiviaMedeiros) [#43390](https://github.com/nodejs/node/pull/43390) +* \[[`b187d55b6d`](https://github.com/nodejs/node/commit/b187d55b6d)] - **util**: add `kEmptyObject` to internal/util (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`024b396275`](https://github.com/nodejs/node/commit/024b396275)] - **vm**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`7fc432fa35`](https://github.com/nodejs/node/commit/7fc432fa35)] - **wasi**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) +* \[[`44b65d0ca7`](https://github.com/nodejs/node/commit/44b65d0ca7)] - **worker**: use `kEmptyObject` (LiviaMedeiros) [#43159](https://github.com/nodejs/node/pull/43159) + + + +## 2022-06-01, Version 18.3.0 (Current), @bengl + +### Notable Changes + +* \[[`dc3b91f351`](https://github.com/nodejs/node/commit/dc3b91f351)] - **deps**: update undici to 5.4.0 (Node.js GitHub Bot) [#43262](https://github.com/nodejs/node/pull/43262) +* \[[`d6cf409d78`](https://github.com/nodejs/node/commit/d6cf409d78)] - **(SEMVER-MINOR)** **util**: add parseArgs module (Benjamin Coe) [#42675](https://github.com/nodejs/node/pull/42675) +* \[[`9539cfa358`](https://github.com/nodejs/node/commit/9539cfa358)] - **(SEMVER-MINOR)** **http**: add uniqueHeaders option to request and createServer (Paolo Insogna) [#41397](https://github.com/nodejs/node/pull/41397) +* \[[`41fdc2617d`](https://github.com/nodejs/node/commit/41fdc2617d)] - **deps**: upgrade npm to 8.11.0 (npm team) [#43210](https://github.com/nodejs/node/pull/43210) +* \[[`0000654e47`](https://github.com/nodejs/node/commit/0000654e47)] - **deps**: patch V8 to 10.2.154.4 (Michaël Zasso) [#43067](https://github.com/nodejs/node/pull/43067) +* \[[`b3c8e609fd`](https://github.com/nodejs/node/commit/b3c8e609fd)] - **(SEMVER-MINOR)** **deps**: update V8 to 10.2.154.2 (Michaël Zasso) [#42740](https://github.com/nodejs/node/pull/42740) +* \[[`3e89b7336d`](https://github.com/nodejs/node/commit/3e89b7336d)] - **(SEMVER-MINOR)** **fs**: make params in writing methods optional (LiviaMedeiros) [#42601](https://github.com/nodejs/node/pull/42601) +* \[[`9539cfa358`](https://github.com/nodejs/node/commit/9539cfa358)] - **(SEMVER-MINOR)** **http**: add uniqueHeaders option to request and createServer (Paolo Insogna) [#41397](https://github.com/nodejs/node/pull/41397) +* \[[`8f5b4570e5`](https://github.com/nodejs/node/commit/8f5b4570e5)] - **(SEMVER-MINOR)** **net**: add ability to reset a tcp socket (pupilTong) [#43112](https://github.com/nodejs/node/pull/43112) +* \[[`5eff7b4a6a`](https://github.com/nodejs/node/commit/5eff7b4a6a)] - **(SEMVER-MINOR)** _**Revert**_ "**build**: make x86 Windows support temporarily experimental" (Michaël Zasso) [#42740](https://github.com/nodejs/node/pull/42740) + * This means 32-bit Windows binaries are back with this release. + +### Commits + +* \[[`aefc9dda9a`](https://github.com/nodejs/node/commit/aefc9dda9a)] - **benchmark**: add node-error benchmark (RafaelGSS) [#43077](https://github.com/nodejs/node/pull/43077) +* \[[`85d81a764f`](https://github.com/nodejs/node/commit/85d81a764f)] - **bootstrap**: include code cache in the embedded snapshot (Joyee Cheung) [#43023](https://github.com/nodejs/node/pull/43023) +* \[[`5eff7b4a6a`](https://github.com/nodejs/node/commit/5eff7b4a6a)] - **(SEMVER-MINOR)** _**Revert**_ "**build**: make x86 Windows support temporarily experimental" (Michaël Zasso) [#42740](https://github.com/nodejs/node/pull/42740) +* \[[`d6634707c5`](https://github.com/nodejs/node/commit/d6634707c5)] - **(SEMVER-MINOR)** **build**: run V8 tests with detected Python version (Richard Lau) [#42740](https://github.com/nodejs/node/pull/42740) +* \[[`b8b5e6df67`](https://github.com/nodejs/node/commit/b8b5e6df67)] - **(SEMVER-MINOR)** **build**: reset embedder string to "-node.0" (Michaël Zasso) [#42740](https://github.com/nodejs/node/pull/42740) +* \[[`285ef30877`](https://github.com/nodejs/node/commit/285ef30877)] - **console**: fix console.dir crash on a revoked proxy (Daeyeon Jeong) [#43100](https://github.com/nodejs/node/pull/43100) +* \[[`920d8c5300`](https://github.com/nodejs/node/commit/920d8c5300)] - **crypto**: align webcrypto RSA key import/export with other implementations (Filip Skokan) [#42816](https://github.com/nodejs/node/pull/42816) +* \[[`c76caadf2e`](https://github.com/nodejs/node/commit/c76caadf2e)] - **debugger**: throw a more useful error when the frame is missing (Kohei Ueno) [#42776](https://github.com/nodejs/node/pull/42776) +* \[[`dc3b91f351`](https://github.com/nodejs/node/commit/dc3b91f351)] - **deps**: update undici to 5.4.0 (Node.js GitHub Bot) [#43262](https://github.com/nodejs/node/pull/43262) +* \[[`35250bf2f6`](https://github.com/nodejs/node/commit/35250bf2f6)] - **deps**: regenerate OpenSSL archs files (Daniel Bevenius) [#42973](https://github.com/nodejs/node/pull/42973) +* \[[`ecacc3a727`](https://github.com/nodejs/node/commit/ecacc3a727)] - **deps**: exclude linker scripts for windows builds (Daniel Bevenius) [#42973](https://github.com/nodejs/node/pull/42973) +* \[[`41fdc2617d`](https://github.com/nodejs/node/commit/41fdc2617d)] - **deps**: upgrade npm to 8.11.0 (npm team) [#43210](https://github.com/nodejs/node/pull/43210) +* \[[`87b248e27e`](https://github.com/nodejs/node/commit/87b248e27e)] - **deps**: update undici to 5.3.0 (Node.js GitHub Bot) [#43197](https://github.com/nodejs/node/pull/43197) +* \[[`d42de132a7`](https://github.com/nodejs/node/commit/d42de132a7)] - **deps**: upgrade npm to 8.10.0 (npm team) [#43061](https://github.com/nodejs/node/pull/43061) +* \[[`0000654e47`](https://github.com/nodejs/node/commit/0000654e47)] - **deps**: patch V8 to 10.2.154.4 (Michaël Zasso) [#43067](https://github.com/nodejs/node/pull/43067) +* \[[`742ffefb44`](https://github.com/nodejs/node/commit/742ffefb44)] - **(SEMVER-MINOR)** **deps**: make V8 10.2 ABI-compatible with 10.1 (Michaël Zasso) [#42740](https://github.com/nodejs/node/pull/42740) +* \[[`c626a533c7`](https://github.com/nodejs/node/commit/c626a533c7)] - **deps**: make V8 compilable with older glibc (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`76546b12a2`](https://github.com/nodejs/node/commit/76546b12a2)] - **deps**: V8: fix v8-cppgc.h for MSVC (Jiawen Geng) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`45e1fd4473`](https://github.com/nodejs/node/commit/45e1fd4473)] - **deps**: silence V8's warning on CompileFunction (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`2130891a9a`](https://github.com/nodejs/node/commit/2130891a9a)] - **(SEMVER-MINOR)** **deps**: disable trap handler for Windows cross-compiler (Michaël Zasso) [#40488](https://github.com/nodejs/node/pull/40488) +* \[[`e678b6c63d`](https://github.com/nodejs/node/commit/e678b6c63d)] - **deps**: fix V8 build issue with inline methods (Jiawen Geng) [#38807](https://github.com/nodejs/node/pull/38807) +* \[[`f83323f304`](https://github.com/nodejs/node/commit/f83323f304)] - **deps**: V8: forward declaration of `Rtl*FunctionTable` (Refael Ackermann) [#32116](https://github.com/nodejs/node/pull/32116) +* \[[`4be7584ca6`](https://github.com/nodejs/node/commit/4be7584ca6)] - **deps**: V8: un-cherry-pick bd019bd (Refael Ackermann) [#32116](https://github.com/nodejs/node/pull/32116) +* \[[`b3c8e609fd`](https://github.com/nodejs/node/commit/b3c8e609fd)] - **(SEMVER-MINOR)** **deps**: update V8 to 10.2.154.2 (Michaël Zasso) [#42740](https://github.com/nodejs/node/pull/42740) +* \[[`0afdc3e9a8`](https://github.com/nodejs/node/commit/0afdc3e9a8)] - **doc**: use serial comma in errors docs (Tobias Nießen) [#43242](https://github.com/nodejs/node/pull/43242) +* \[[`00989338b3`](https://github.com/nodejs/node/commit/00989338b3)] - **doc**: add note regarding `%Array.prototype.concat%` in `primordials.md` (Antoine du Hamel) [#43166](https://github.com/nodejs/node/pull/43166) +* \[[`badf72dd0a`](https://github.com/nodejs/node/commit/badf72dd0a)] - **doc**: use serial comma in worker\_threads docs (Tobias Nießen) [#43220](https://github.com/nodejs/node/pull/43220) +* \[[`776e746f0a`](https://github.com/nodejs/node/commit/776e746f0a)] - **doc**: fix napi version for node\_api\_symbol\_for (Danielle Adams) [#42878](https://github.com/nodejs/node/pull/42878) +* \[[`76b46801f8`](https://github.com/nodejs/node/commit/76b46801f8)] - **doc**: document `signal` option for `EventTarget#addEventListener` (Antoine du Hamel) [#43170](https://github.com/nodejs/node/pull/43170) +* \[[`3082c75efd`](https://github.com/nodejs/node/commit/3082c75efd)] - **doc**: make minor adjustments (LiviaMedeiros) [#43175](https://github.com/nodejs/node/pull/43175) +* \[[`598c1f102e`](https://github.com/nodejs/node/commit/598c1f102e)] - **doc**: use serial comma in dgram docs (Tobias Nießen) [#43191](https://github.com/nodejs/node/pull/43191) +* \[[`b772c13a62`](https://github.com/nodejs/node/commit/b772c13a62)] - **doc**: use serial comma in process docs (Tobias Nießen) [#43179](https://github.com/nodejs/node/pull/43179) +* \[[`f90a3d7a54`](https://github.com/nodejs/node/commit/f90a3d7a54)] - **doc**: improved parallel specification (mawaregetsuka) [#42679](https://github.com/nodejs/node/pull/42679) +* \[[`71074eedef`](https://github.com/nodejs/node/commit/71074eedef)] - **doc**: improve callback params for `fs.mkdir` (Daeyeon Jeong) [#43016](https://github.com/nodejs/node/pull/43016) +* \[[`2b8b224077`](https://github.com/nodejs/node/commit/2b8b224077)] - **doc**: remove outdated footnote (Python 2 --> 3 for V8 tests) (DeeDeeG) [#43105](https://github.com/nodejs/node/pull/43105) +* \[[`945f228cf1`](https://github.com/nodejs/node/commit/945f228cf1)] - **doc**: add release key for RafaelGSS (Rafael Gonzaga) [#43131](https://github.com/nodejs/node/pull/43131) +* \[[`56fc712f93`](https://github.com/nodejs/node/commit/56fc712f93)] - **doc**: use serial comma in assert docs (Tobias Nießen) [#43154](https://github.com/nodejs/node/pull/43154) +* \[[`093a3cf2f1`](https://github.com/nodejs/node/commit/093a3cf2f1)] - **doc**: fix errors in Performance hooks doc (OneNail) [#43152](https://github.com/nodejs/node/pull/43152) +* \[[`4d9f43a8a7`](https://github.com/nodejs/node/commit/4d9f43a8a7)] - **doc**: use serial comma in dns docs (Tobias Nießen) [#43145](https://github.com/nodejs/node/pull/43145) +* \[[`4e9393e32f`](https://github.com/nodejs/node/commit/4e9393e32f)] - **doc**: use ASCII apostrophes consistently (Tobias Nießen) [#43114](https://github.com/nodejs/node/pull/43114) +* \[[`b3181851d7`](https://github.com/nodejs/node/commit/b3181851d7)] - **doc**: add strategic initiative for shadow realm (Chengzhong Wu) [#43037](https://github.com/nodejs/node/pull/43037) +* \[[`6f48dfb499`](https://github.com/nodejs/node/commit/6f48dfb499)] - **fs**: add trailing commas (LiviaMedeiros) [#43127](https://github.com/nodejs/node/pull/43127) +* \[[`3e89b7336d`](https://github.com/nodejs/node/commit/3e89b7336d)] - **(SEMVER-MINOR)** **fs**: make params in writing methods optional (LiviaMedeiros) [#42601](https://github.com/nodejs/node/pull/42601) +* \[[`9539cfa358`](https://github.com/nodejs/node/commit/9539cfa358)] - **(SEMVER-MINOR)** **http**: add uniqueHeaders option to request and createServer (Paolo Insogna) [#41397](https://github.com/nodejs/node/pull/41397) +* \[[`b187060f76`](https://github.com/nodejs/node/commit/b187060f76)] - **http2**: set origin name correctly when servername is empty (ofirbarak) [#42838](https://github.com/nodejs/node/pull/42838) +* \[[`a07f5f28f3`](https://github.com/nodejs/node/commit/a07f5f28f3)] - **http2**: improve tests and docs (Daeyeon Jeong) [#42858](https://github.com/nodejs/node/pull/42858) +* \[[`701d40496d`](https://github.com/nodejs/node/commit/701d40496d)] - **lib**: refactor `validateInt32` and `validateUint32` (mawaregetsuka) [#43071](https://github.com/nodejs/node/pull/43071) +* \[[`09da76493a`](https://github.com/nodejs/node/commit/09da76493a)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#43231](https://github.com/nodejs/node/pull/43231) +* \[[`1da6b7c32b`](https://github.com/nodejs/node/commit/1da6b7c32b)] - **meta**: add mailmap entry for legendecas (Chengzhong Wu) [#43156](https://github.com/nodejs/node/pull/43156) +* \[[`1be254b24e`](https://github.com/nodejs/node/commit/1be254b24e)] - **meta**: add mailmap entry for npm team (Luigi Pinca) [#43143](https://github.com/nodejs/node/pull/43143) +* \[[`7d8d9d625a`](https://github.com/nodejs/node/commit/7d8d9d625a)] - **meta**: add mailmap entry for Morgan Roderick (Luigi Pinca) [#43144](https://github.com/nodejs/node/pull/43144) +* \[[`8f5b4570e5`](https://github.com/nodejs/node/commit/8f5b4570e5)] - **(SEMVER-MINOR)** **net**: add ability to reset a tcp socket (pupilTong) [#43112](https://github.com/nodejs/node/pull/43112) +* \[[`11c783fa63`](https://github.com/nodejs/node/commit/11c783fa63)] - **net**: remoteAddress always undefined called before connected (OneNail) [#43011](https://github.com/nodejs/node/pull/43011) +* \[[`9c4e070567`](https://github.com/nodejs/node/commit/9c4e070567)] - **(SEMVER-MINOR)** **node-api**: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) [#36510](https://github.com/nodejs/node/pull/36510) +* \[[`54d68b1afd`](https://github.com/nodejs/node/commit/54d68b1afd)] - **perf\_hooks**: fix start\_time of perf\_hooks (theanarkh) [#43069](https://github.com/nodejs/node/pull/43069) +* \[[`baa5d0005a`](https://github.com/nodejs/node/commit/baa5d0005a)] - **src**: refactor GetCipherValue and related functions (Tobias Nießen) [#43171](https://github.com/nodejs/node/pull/43171) +* \[[`6ee9fb14e4`](https://github.com/nodejs/node/commit/6ee9fb14e4)] - **src**: make SecureContext fields private (Tobias Nießen) [#43173](https://github.com/nodejs/node/pull/43173) +* \[[`1e2552ba6c`](https://github.com/nodejs/node/commit/1e2552ba6c)] - **src**: reuse GetServerName (Tobias Nießen) [#43168](https://github.com/nodejs/node/pull/43168) +* \[[`d8a14a2486`](https://github.com/nodejs/node/commit/d8a14a2486)] - **src**: fix static analysis warning and use smart ptr (Tobias Nießen) [#43117](https://github.com/nodejs/node/pull/43117) +* \[[`72a767b7ca`](https://github.com/nodejs/node/commit/72a767b7ca)] - **src**: remove SecureContext::operator\* (Tobias Nießen) [#43121](https://github.com/nodejs/node/pull/43121) +* \[[`82fb037388`](https://github.com/nodejs/node/commit/82fb037388)] - **src**: move context snapshot index to SnapshotData (Joyee Cheung) [#43023](https://github.com/nodejs/node/pull/43023) +* \[[`9577878258`](https://github.com/nodejs/node/commit/9577878258)] - **src**: replace TraceEventScope with sync events (Chengzhong Wu) [#42977](https://github.com/nodejs/node/pull/42977) +* \[[`41b69e3cf4`](https://github.com/nodejs/node/commit/41b69e3cf4)] - **src,lib**: migrate to console on context's extra binding (Chengzhong Wu) [#43142](https://github.com/nodejs/node/pull/43142) +* \[[`3e1ed1ee0c`](https://github.com/nodejs/node/commit/3e1ed1ee0c)] - **test**: improve code coverage for inspector connection errors (Kohei Ueno) [#42310](https://github.com/nodejs/node/pull/42310) +* \[[`d7ca2234dc`](https://github.com/nodejs/node/commit/d7ca2234dc)] - **test**: use mustSucceed instead of mustCall with assert.ifError (MURAKAMI Masahiko) [#43188](https://github.com/nodejs/node/pull/43188) +* \[[`9cc5ce6a24`](https://github.com/nodejs/node/commit/9cc5ce6a24)] - **test**: improve readline/emitKeypressEvents.js coverage (OneNail) [#42908](https://github.com/nodejs/node/pull/42908) +* \[[`447bbd0d66`](https://github.com/nodejs/node/commit/447bbd0d66)] - **tls**: fix convertALPNProtocols accepting ArrayBufferViews (LiviaMedeiros) [#43211](https://github.com/nodejs/node/pull/43211) +* \[[`df691464aa`](https://github.com/nodejs/node/commit/df691464aa)] - **tools**: update lint-md-dependencies to rollup\@2.75.1 (Node.js GitHub Bot) [#43230](https://github.com/nodejs/node/pull/43230) +* \[[`d9fb25c936`](https://github.com/nodejs/node/commit/d9fb25c936)] - **tools**: refactor build-addons.js to ESM (Feng Yu) [#43099](https://github.com/nodejs/node/pull/43099) +* \[[`0efeceb4a6`](https://github.com/nodejs/node/commit/0efeceb4a6)] - **tools**: update lint-md-dependencies to rollup\@2.74.1 (Node.js GitHub Bot) [#43172](https://github.com/nodejs/node/pull/43172) +* \[[`ed352a945c`](https://github.com/nodejs/node/commit/ed352a945c)] - **tools**: update eslint to 8.16.0 (Node.js GitHub Bot) [#43174](https://github.com/nodejs/node/pull/43174) +* \[[`1183058908`](https://github.com/nodejs/node/commit/1183058908)] - **tools**: refactor update-authors.js to ESM (Feng Yu) [#43098](https://github.com/nodejs/node/pull/43098) +* \[[`5228028962`](https://github.com/nodejs/node/commit/5228028962)] - **(SEMVER-MINOR)** **tools**: update V8 gypfiles for 10.2 (Michaël Zasso) [#42740](https://github.com/nodejs/node/pull/42740) +* \[[`d6cf409d78`](https://github.com/nodejs/node/commit/d6cf409d78)] - **(SEMVER-MINOR)** **util**: add parseArgs module (Benjamin Coe) [#42675](https://github.com/nodejs/node/pull/42675) +* \[[`d91b489784`](https://github.com/nodejs/node/commit/d91b489784)] - **worker**: fix heap snapshot crash on exit (Chengzhong Wu) [#43123](https://github.com/nodejs/node/pull/43123) + + + +## 2022-05-17, Version 18.2.0 (Current), @BethGriggs prepared by @RafaelGSS + +### Notable Changes + +#### OpenSSL 3.0.3 + +This update can be treated as a security release as the issues addressed in OpenSSL 3.0.3 slightly affect Node.js 18. +See for more information on how the May 2022 OpenSSL releases affect other Node.js release lines. + +* \[[`8e54c19a6e`](https://github.com/nodejs/node/commit/8e54c19a6e)] - **deps**: update archs files for quictls/openssl-3.0.3+quic (RafaelGSS) [#43022](https://github.com/nodejs/node/pull/43022) +* \[[`6365bf808e`](https://github.com/nodejs/node/commit/6365bf808e)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.3 (RafaelGSS) [#43022](https://github.com/nodejs/node/pull/43022) + +#### Other Notable Changes + +* \[[`13c333e533`](https://github.com/nodejs/node/commit/13c333e533)] - _**Revert**_ "**deps**: add template for generated headers" (Daniel Bevenius) [#42978](https://github.com/nodejs/node/pull/42978) +* \[[`d128356a7f`](https://github.com/nodejs/node/commit/d128356a7f)] - **deps**: update undici to 5.2.0 (Node.js GitHub Bot) [#43059](https://github.com/nodejs/node/pull/43059) +* \[[`2df1624f80`](https://github.com/nodejs/node/commit/2df1624f80)] - **deps**: upgrade npm to 8.9.0 (npm team) [#42968](https://github.com/nodejs/node/pull/42968) +* \[[`6365bf808e`](https://github.com/nodejs/node/commit/6365bf808e)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.3 (RafaelGSS) [#43022](https://github.com/nodejs/node/pull/43022) +* \[[`4a3f678e70`](https://github.com/nodejs/node/commit/4a3f678e70)] - **doc**: add LiviaMedeiros to collaborators (LiviaMedeiros) [#43039](https://github.com/nodejs/node/pull/43039) +* \[[`686c4c1f6f`](https://github.com/nodejs/node/commit/686c4c1f6f)] - **doc**: add release key for Juan Arboleda (Juan José) [#42961](https://github.com/nodejs/node/pull/42961) +* \[[`784d84cf34`](https://github.com/nodejs/node/commit/784d84cf34)] - **(SEMVER-MINOR)** **fs**: add `read(buffer[, options])` versions (LiviaMedeiros) [#42768](https://github.com/nodejs/node/pull/42768) +* \[[`2f192c4be0`](https://github.com/nodejs/node/commit/2f192c4be0)] - **(SEMVER-MINOR)** **http**: added connection closing methods (Paolo Insogna) [#42812](https://github.com/nodejs/node/pull/42812) +* \[[`c92e291beb`](https://github.com/nodejs/node/commit/c92e291beb)] - **(SEMVER-MINOR)** **perf\_hooks**: add PerformanceResourceTiming (RafaelGSS) [#42725](https://github.com/nodejs/node/pull/42725) + +### Commits + +* \[[`7cac7bb806`](https://github.com/nodejs/node/commit/7cac7bb806)] - **assert**: fix CallTracker wraps the function causes the length to be lost (OneNail) [#42909](https://github.com/nodejs/node/pull/42909) +* \[[`e74a8da287`](https://github.com/nodejs/node/commit/e74a8da287)] - **assert**: make `assert.fail` less affected by prototype tampering (Antoine du Hamel) [#42918](https://github.com/nodejs/node/pull/42918) +* \[[`1146806673`](https://github.com/nodejs/node/commit/1146806673)] - **bootstrap**: stop delaying instantiation of maps in per-context scripts (Darshan Sen) [#42934](https://github.com/nodejs/node/pull/42934) +* \[[`a20310d171`](https://github.com/nodejs/node/commit/a20310d171)] - **bootstrap**: use a context snapshotted with primordials in workers (Joyee Cheung) [#42867](https://github.com/nodejs/node/pull/42867) +* \[[`9ee7d9eb15`](https://github.com/nodejs/node/commit/9ee7d9eb15)] - **bootstrap**: fix wasm\_web\_api external reference registration (Joyee Cheung) [#42903](https://github.com/nodejs/node/pull/42903) +* \[[`cec678a00e`](https://github.com/nodejs/node/commit/cec678a00e)] - **build**: set ASAN workaround (Richard Lau) [#43085](https://github.com/nodejs/node/pull/43085) +* \[[`7c4df42caa`](https://github.com/nodejs/node/commit/7c4df42caa)] - **build**: disable windows-2022 temporarily (Jiawen Geng) [#43093](https://github.com/nodejs/node/pull/43093) +* \[[`0eb32ed976`](https://github.com/nodejs/node/commit/0eb32ed976)] - **build**: fix various shared library build issues (William Marlow) [#41850](https://github.com/nodejs/node/pull/41850) +* \[[`48f4a714b2`](https://github.com/nodejs/node/commit/48f4a714b2)] - **build**: fix indeterminacy of icu\_locales value (Sergey Nazaryev) [#42865](https://github.com/nodejs/node/pull/42865) +* \[[`19c060fd84`](https://github.com/nodejs/node/commit/19c060fd84)] - **crypto**: adjust minimum length in generateKey('hmac', ...) (LiviaMedeiros) [#42944](https://github.com/nodejs/node/pull/42944) +* \[[`183bcc0699`](https://github.com/nodejs/node/commit/183bcc0699)] - **crypto**: clean up parameter validation in HKDF (Tobias Nießen) [#42924](https://github.com/nodejs/node/pull/42924) +* \[[`946f57c7bc`](https://github.com/nodejs/node/commit/946f57c7bc)] - **debugger**: fix inconsistent inspector output of exec new Map() (Kohei Ueno) [#42423](https://github.com/nodejs/node/pull/42423) +* \[[`d128356a7f`](https://github.com/nodejs/node/commit/d128356a7f)] - **deps**: update undici to 5.2.0 (Node.js GitHub Bot) [#43059](https://github.com/nodejs/node/pull/43059) +* \[[`a9703a55ef`](https://github.com/nodejs/node/commit/a9703a55ef)] - **deps**: remove opensslconf template headers (Daniel Bevenius) [#43035](https://github.com/nodejs/node/pull/43035) +* \[[`a4a4f7134b`](https://github.com/nodejs/node/commit/a4a4f7134b)] - **deps**: fix llhttp version number (Michael Dawson) [#43029](https://github.com/nodejs/node/pull/43029) +* \[[`8e54c19a6e`](https://github.com/nodejs/node/commit/8e54c19a6e)] - **deps**: update archs files for quictls/openssl-3.0.3+quic (RafaelGSS) [#43022](https://github.com/nodejs/node/pull/43022) +* \[[`6365bf808e`](https://github.com/nodejs/node/commit/6365bf808e)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.3 (RafaelGSS) [#43022](https://github.com/nodejs/node/pull/43022) +* \[[`e8121ae7fe`](https://github.com/nodejs/node/commit/e8121ae7fe)] - **deps**: regenerate OpenSSL archs files (Daniel Bevenius) [#42978](https://github.com/nodejs/node/pull/42978) +* \[[`13c333e533`](https://github.com/nodejs/node/commit/13c333e533)] - _**Revert**_ "**deps**: add template for generated headers" (Daniel Bevenius) [#42978](https://github.com/nodejs/node/pull/42978) +* \[[`2df1624f80`](https://github.com/nodejs/node/commit/2df1624f80)] - **deps**: upgrade npm to 8.9.0 (npm team) [#42968](https://github.com/nodejs/node/pull/42968) +* \[[`f53ed9d1bb`](https://github.com/nodejs/node/commit/f53ed9d1bb)] - **doc**: use serial comma in fs docs (Tobias Nießen) [#43104](https://github.com/nodejs/node/pull/43104) +* \[[`839824aca8`](https://github.com/nodejs/node/commit/839824aca8)] - **doc**: use serial comma in events docs (Tobias Nießen) [#43113](https://github.com/nodejs/node/pull/43113) +* \[[`9629c74080`](https://github.com/nodejs/node/commit/9629c74080)] - **doc**: use serial comma in modules docs (Tobias Nießen) [#43103](https://github.com/nodejs/node/pull/43103) +* \[[`76096c2d4a`](https://github.com/nodejs/node/commit/76096c2d4a)] - **doc**: use serial comma in util docs (Tobias Nießen) [#43063](https://github.com/nodejs/node/pull/43063) +* \[[`1e9de0dd5a`](https://github.com/nodejs/node/commit/1e9de0dd5a)] - **doc**: remove git:// protocol, adjust nits in onboarding.md (LiviaMedeiros) [#43045](https://github.com/nodejs/node/pull/43045) +* \[[`eb630d7ef9`](https://github.com/nodejs/node/commit/eb630d7ef9)] - **doc**: add maintaining info for shared libary option (Michael Dawson) [#42517](https://github.com/nodejs/node/pull/42517) +* \[[`3816a97bae`](https://github.com/nodejs/node/commit/3816a97bae)] - **doc**: add detail for how to update llhttp (Michael Dawson) [#43028](https://github.com/nodejs/node/pull/43028) +* \[[`330e267a57`](https://github.com/nodejs/node/commit/330e267a57)] - **doc**: use serial comma in buffer docs (Tobias Nießen) [#43048](https://github.com/nodejs/node/pull/43048) +* \[[`0957212390`](https://github.com/nodejs/node/commit/0957212390)] - **doc**: use consistent method symbol (Paolo Insogna) [#42974](https://github.com/nodejs/node/pull/42974) +* \[[`22cb7104cb`](https://github.com/nodejs/node/commit/22cb7104cb)] - **doc**: add Rafael to the security steward for NearForm (Matteo Collina) [#42966](https://github.com/nodejs/node/pull/42966) +* \[[`ef177da3f1`](https://github.com/nodejs/node/commit/ef177da3f1)] - **doc**: mark some node-api functions as experimental (NickNaso) [#42987](https://github.com/nodejs/node/pull/42987) +* \[[`4a3f678e70`](https://github.com/nodejs/node/commit/4a3f678e70)] - **doc**: add LiviaMedeiros to collaborators (LiviaMedeiros) [#43039](https://github.com/nodejs/node/pull/43039) +* \[[`c988a0ed26`](https://github.com/nodejs/node/commit/c988a0ed26)] - **doc**: use serial comma in http docs (Tobias Nießen) [#43026](https://github.com/nodejs/node/pull/43026) +* \[[`4de918b4c1`](https://github.com/nodejs/node/commit/4de918b4c1)] - **doc**: add the preferred name for @himself65 (Himself65) [#43024](https://github.com/nodejs/node/pull/43024) +* \[[`686c4c1f6f`](https://github.com/nodejs/node/commit/686c4c1f6f)] - **doc**: add release key for Juan Arboleda (Juan José) [#42961](https://github.com/nodejs/node/pull/42961) +* \[[`64e0aa116d`](https://github.com/nodejs/node/commit/64e0aa116d)] - **doc**: rename N-API to Node-API in test/README.md (Daeyeon Jeong) [#42946](https://github.com/nodejs/node/pull/42946) +* \[[`65d64553c0`](https://github.com/nodejs/node/commit/65d64553c0)] - **doc**: use serial comma in tls docs (Tobias Nießen) [#43001](https://github.com/nodejs/node/pull/43001) +* \[[`840e61e745`](https://github.com/nodejs/node/commit/840e61e745)] - **doc**: improve commit message example for releases (Juan José) [#42954](https://github.com/nodejs/node/pull/42954) +* \[[`ba3ad7c665`](https://github.com/nodejs/node/commit/ba3ad7c665)] - **doc**: use serial comma in cluster docs (Tobias Nießen) [#42989](https://github.com/nodejs/node/pull/42989) +* \[[`3ab3086008`](https://github.com/nodejs/node/commit/3ab3086008)] - **doc**: fix errors in Web Streams doc (OneNail) [#42862](https://github.com/nodejs/node/pull/42862) +* \[[`1fbfee2497`](https://github.com/nodejs/node/commit/1fbfee2497)] - **doc**: fix examples in cluster.md (OneNail) [#42889](https://github.com/nodejs/node/pull/42889) +* \[[`1237c742f4`](https://github.com/nodejs/node/commit/1237c742f4)] - **doc**: add additional step to security release process (Michael Dawson) [#42916](https://github.com/nodejs/node/pull/42916) +* \[[`88692d8fd6`](https://github.com/nodejs/node/commit/88692d8fd6)] - **doc**: add section regarding property definition in `primordials.md` (Antoine du Hamel) [#42921](https://github.com/nodejs/node/pull/42921) +* \[[`924670f3af`](https://github.com/nodejs/node/commit/924670f3af)] - **doc**: clarify some default values in `fs.md` (LiviaMedeiros) [#42892](https://github.com/nodejs/node/pull/42892) +* \[[`becca06f9b`](https://github.com/nodejs/node/commit/becca06f9b)] - **fs**: remove unnecessary ?? operator (Morgan Roderick) [#43073](https://github.com/nodejs/node/pull/43073) +* \[[`784d84cf34`](https://github.com/nodejs/node/commit/784d84cf34)] - **(SEMVER-MINOR)** **fs**: add `read(buffer[, options])` versions (LiviaMedeiros) [#42768](https://github.com/nodejs/node/pull/42768) +* \[[`2f192c4be0`](https://github.com/nodejs/node/commit/2f192c4be0)] - **(SEMVER-MINOR)** **http**: added connection closing methods (Paolo Insogna) [#42812](https://github.com/nodejs/node/pull/42812) +* \[[`bfbf965eb0`](https://github.com/nodejs/node/commit/bfbf965eb0)] - **http2**: compat support for array headers (OneNail) [#42901](https://github.com/nodejs/node/pull/42901) +* \[[`46a44b3011`](https://github.com/nodejs/node/commit/46a44b3011)] - **lib**: move WebAssembly Web API into separate file (Tobias Nießen) [#42993](https://github.com/nodejs/node/pull/42993) +* \[[`c64b8d3282`](https://github.com/nodejs/node/commit/c64b8d3282)] - **lib,test**: enable wasm/webapi/empty-body WPT (Tobias Nießen) [#42960](https://github.com/nodejs/node/pull/42960) +* \[[`ddd271ec2b`](https://github.com/nodejs/node/commit/ddd271ec2b)] - **meta**: add mailmap entry for ShogunPanda (Paolo Insogna) [#43094](https://github.com/nodejs/node/pull/43094) +* \[[`174ff972f0`](https://github.com/nodejs/node/commit/174ff972f0)] - **meta**: update .mailmap for recent README name change (Rich Trott) [#43027](https://github.com/nodejs/node/pull/43027) +* \[[`16df8ad7c3`](https://github.com/nodejs/node/commit/16df8ad7c3)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#43004](https://github.com/nodejs/node/pull/43004) +* \[[`0ec32d0715`](https://github.com/nodejs/node/commit/0ec32d0715)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#42937](https://github.com/nodejs/node/pull/42937) +* \[[`037ff3da6d`](https://github.com/nodejs/node/commit/037ff3da6d)] - **node-api**: explicitly set \_\_cdecl for API functions (Vladimir Morozov) [#42780](https://github.com/nodejs/node/pull/42780) +* \[[`e2462a2f98`](https://github.com/nodejs/node/commit/e2462a2f98)] - **node-api**: fix napi\_get\_all\_property\_names (Vladimir Morozov) [#42463](https://github.com/nodejs/node/pull/42463) +* \[[`c92e291beb`](https://github.com/nodejs/node/commit/c92e291beb)] - **(SEMVER-MINOR)** **perf\_hooks**: add PerformanceResourceTiming (RafaelGSS) [#42725](https://github.com/nodejs/node/pull/42725) +* \[[`c535db1195`](https://github.com/nodejs/node/commit/c535db1195)] - **src**: delete AllocatedBuffer (Darshan Sen) [#43008](https://github.com/nodejs/node/pull/43008) +* \[[`5dc79298e1`](https://github.com/nodejs/node/commit/5dc79298e1)] - **src**: remove unnecessary comment (Kohei Ueno) [#42952](https://github.com/nodejs/node/pull/42952) +* \[[`38e4c15534`](https://github.com/nodejs/node/commit/38e4c15534)] - **src**: always signal V8 for intercepted properties (Michaël Zasso) [#42963](https://github.com/nodejs/node/pull/42963) +* \[[`cacff07e75`](https://github.com/nodejs/node/commit/cacff07e75)] - **src**: fix memory leak for v8.serialize (liuxingbaoyu) [#42695](https://github.com/nodejs/node/pull/42695) +* \[[`8cfc18e4db`](https://github.com/nodejs/node/commit/8cfc18e4db)] - **src,crypto**: remove uses of AllocatedBuffer from crypto\_rsa.cc (Darshan Sen) [#42852](https://github.com/nodejs/node/pull/42852) +* \[[`0670843b24`](https://github.com/nodejs/node/commit/0670843b24)] - **test**: fix dangerous .map in `test/parallel/test-http-set-trailers.js` (LiviaMedeiros) [#43087](https://github.com/nodejs/node/pull/43087) +* \[[`9eb8bf1d26`](https://github.com/nodejs/node/commit/9eb8bf1d26)] - **test**: reduce flakiness of `test-fs-read-position-validation.mjs` (LiviaMedeiros) [#42999](https://github.com/nodejs/node/pull/42999) +* \[[`41d2f6e8c5`](https://github.com/nodejs/node/commit/41d2f6e8c5)] - **test**: rename handlewrap.hasref tests (Daeyeon Jeong) [#42754](https://github.com/nodejs/node/pull/42754) +* \[[`e058f47277`](https://github.com/nodejs/node/commit/e058f47277)] - **test**: improve observable ICU behaviour coverage (LiviaMedeiros) [#42683](https://github.com/nodejs/node/pull/42683) +* \[[`d23debb4cb`](https://github.com/nodejs/node/commit/d23debb4cb)] - **test**: validate webstream encoder/decoder inspector (Yoshiki Kurihara) [#42747](https://github.com/nodejs/node/pull/42747) +* \[[`b1c18edaa9`](https://github.com/nodejs/node/commit/b1c18edaa9)] - **test**: use`mustSucceed` instead of `mustCall` with `assert.ifError` (MURAKAMI Masahiko) [#42806](https://github.com/nodejs/node/pull/42806) +* \[[`2dc795687a`](https://github.com/nodejs/node/commit/2dc795687a)] - **test**: improve `lib/internal/webstreams/readablestream.js` coverage (MURAKAMI Masahiko) [#42823](https://github.com/nodejs/node/pull/42823) +* \[[`d746207dc2`](https://github.com/nodejs/node/commit/d746207dc2)] - **test**: fix test-crypto-fips.js under shared OpenSSL (Vita Batrla) [#42947](https://github.com/nodejs/node/pull/42947) +* \[[`56c47b5101`](https://github.com/nodejs/node/commit/56c47b5101)] - **test**: use consistent timeouts (Paolo Insogna) [#42893](https://github.com/nodejs/node/pull/42893) +* \[[`68ed3c88d9`](https://github.com/nodejs/node/commit/68ed3c88d9)] - **test**: add test for position validation in fs.read() and fs.readSync() (LiviaMedeiros) [#42837](https://github.com/nodejs/node/pull/42837) +* \[[`72b90fd5f5`](https://github.com/nodejs/node/commit/72b90fd5f5)] - **test**: reduce impact of flaky HTTP server tests (Tobias Nießen) [#42926](https://github.com/nodejs/node/pull/42926) +* \[[`531a0a9980`](https://github.com/nodejs/node/commit/531a0a9980)] - **tools**: update lint-md-dependencies to rollup\@2.73.0 (Node.js GitHub Bot) [#43107](https://github.com/nodejs/node/pull/43107) +* \[[`64daaca46d`](https://github.com/nodejs/node/commit/64daaca46d)] - **tools**: update eslint to 8.15.0 (Node.js GitHub Bot) [#43005](https://github.com/nodejs/node/pull/43005) +* \[[`79872382ef`](https://github.com/nodejs/node/commit/79872382ef)] - **tools**: refactor lint-sh.js to esm module (Feng Yu) [#42942](https://github.com/nodejs/node/pull/42942) +* \[[`265ecdfe07`](https://github.com/nodejs/node/commit/265ecdfe07)] - **tools**: update lint-md-dependencies (Node.js GitHub Bot) [#43003](https://github.com/nodejs/node/pull/43003) +* \[[`e9e1f1e194`](https://github.com/nodejs/node/commit/e9e1f1e194)] - **typings**: fix `os.cpus` invalid return type (Himself65) [#43006](https://github.com/nodejs/node/pull/43006) +* \[[`55ef6e81cb`](https://github.com/nodejs/node/commit/55ef6e81cb)] - **wasm**: add missing init reported by coverity (Michael Dawson) [#42897](https://github.com/nodejs/node/pull/42897) +* \[[`5470578008`](https://github.com/nodejs/node/commit/5470578008)] - **worker**: fix stream racing with terminate (Keyhan Vakil) [#42874](https://github.com/nodejs/node/pull/42874) + + + +## 2022-05-03, Version 18.1.0 (Current), @targos + +### Notable Changes + +* \[[`c46e7bbf69`](https://github.com/nodejs/node/commit/c46e7bbf69)] - **doc**: add @kuriyosh to collaborators (Yoshiki Kurihara) [#42824](https://github.com/nodejs/node/pull/42824) +* \[[`b0f7c4c8f9`](https://github.com/nodejs/node/commit/b0f7c4c8f9)] - **(SEMVER-MINOR)** **lib,src**: implement WebAssembly Web API (Tobias Nießen) [#42701](https://github.com/nodejs/node/pull/42701) +* \[[`78a860ae58`](https://github.com/nodejs/node/commit/78a860ae58)] - **(SEMVER-MINOR)** **test\_runner**: add initial CLI runner (Colin Ihrig) [#42658](https://github.com/nodejs/node/pull/42658) +* \[[`bf9240ae8c`](https://github.com/nodejs/node/commit/bf9240ae8c)] - **(SEMVER-MINOR)** **worker**: add hasRef() to MessagePort (Darshan Sen) [#42849](https://github.com/nodejs/node/pull/42849) + +### Commits + +* \[[`4694f5bb96`](https://github.com/nodejs/node/commit/4694f5bb96)] - **async\_hooks**: avoid decrementing iterator after erase (Gabriel Bota) [#42749](https://github.com/nodejs/node/pull/42749) +* \[[`459546b4f0`](https://github.com/nodejs/node/commit/459546b4f0)] - **benchmark**: fix misc/startup failure (Antoine du Hamel) [#42746](https://github.com/nodejs/node/pull/42746) +* \[[`6bd24204ea`](https://github.com/nodejs/node/commit/6bd24204ea)] - **bootstrap**: use the isolate snapshot in workers (Joyee Cheung) [#42702](https://github.com/nodejs/node/pull/42702) +* \[[`29c8411f99`](https://github.com/nodejs/node/commit/29c8411f99)] - **bootstrap**: move embedded snapshot to SnapshotBuilder (Joyee Cheung) [#42702](https://github.com/nodejs/node/pull/42702) +* \[[`4050b0d64f`](https://github.com/nodejs/node/commit/4050b0d64f)] - **build**: enable V8's shared read-only heap (Michaël Zasso) [#42809](https://github.com/nodejs/node/pull/42809) +* \[[`f9994e2029`](https://github.com/nodejs/node/commit/f9994e2029)] - **build**: improve reliability of find\_python.cmd script (Luigi Pinca) [#42810](https://github.com/nodejs/node/pull/42810) +* \[[`5d15eb1a14`](https://github.com/nodejs/node/commit/5d15eb1a14)] - **build**: fix format-cpp (Darshan Sen) [#42764](https://github.com/nodejs/node/pull/42764) +* \[[`7c973474bf`](https://github.com/nodejs/node/commit/7c973474bf)] - **build**: improve the format-cpp error message (Darshan Sen) [#42765](https://github.com/nodejs/node/pull/42765) +* \[[`7681e60829`](https://github.com/nodejs/node/commit/7681e60829)] - **crypto**: validate `this` in all webcrypto methods and getters (Filip Skokan) [#42815](https://github.com/nodejs/node/pull/42815) +* \[[`2a4c8263c3`](https://github.com/nodejs/node/commit/2a4c8263c3)] - **deps**: update undici to 5.1.1 (Michaël Zasso) [#42939](https://github.com/nodejs/node/pull/42939) +* \[[`1102922ef9`](https://github.com/nodejs/node/commit/1102922ef9)] - **deps**: upgrade npm to 8.8.0 (npm team) [#42886](https://github.com/nodejs/node/pull/42886) +* \[[`279892987b`](https://github.com/nodejs/node/commit/279892987b)] - **deps**: remove linux-ppc64 architecture (Daniel Bevenius) [#42616](https://github.com/nodejs/node/pull/42616) +* \[[`4abe9879ae`](https://github.com/nodejs/node/commit/4abe9879ae)] - **deps**: remove linux-ppc architecture (Daniel Bevenius) [#42616](https://github.com/nodejs/node/pull/42616) +* \[[`8dc71f2266`](https://github.com/nodejs/node/commit/8dc71f2266)] - **deps**: remove aix-gcc architecture (Daniel Bevenius) [#42616](https://github.com/nodejs/node/pull/42616) +* \[[`6dc1f82384`](https://github.com/nodejs/node/commit/6dc1f82384)] - **deps**: remove archs/aix64-gcc (Daniel Bevenius) [#42616](https://github.com/nodejs/node/pull/42616) +* \[[`e8734a4771`](https://github.com/nodejs/node/commit/e8734a4771)] - **deps**: add note about removing asm archs (Daniel Bevenius) [#42616](https://github.com/nodejs/node/pull/42616) +* \[[`7fae2c9d6e`](https://github.com/nodejs/node/commit/7fae2c9d6e)] - **deps**: add template for generated headers (Daniel Bevenius) [#42616](https://github.com/nodejs/node/pull/42616) +* \[[`294664e32c`](https://github.com/nodejs/node/commit/294664e32c)] - **deps**: upgrade npm to 8.7.0 (npm team) [#42744](https://github.com/nodejs/node/pull/42744) +* \[[`60e461c45d`](https://github.com/nodejs/node/commit/60e461c45d)] - **doc**: reword "test directory" (LiviaMedeiros) [#42817](https://github.com/nodejs/node/pull/42817) +* \[[`227a45ba60`](https://github.com/nodejs/node/commit/227a45ba60)] - **doc**: remove legacy `-J` test.py option from BUILDING.md (LiviaMedeiros) [#42817](https://github.com/nodejs/node/pull/42817) +* \[[`e313dc6ed9`](https://github.com/nodejs/node/commit/e313dc6ed9)] - **doc**: http2.createServer `options` as optional (Daeyeon Jeong) [#42832](https://github.com/nodejs/node/pull/42832) +* \[[`8f2b2280cd`](https://github.com/nodejs/node/commit/8f2b2280cd)] - **doc**: record March 2022 security release steward (Richard Lau) [#42876](https://github.com/nodejs/node/pull/42876) +* \[[`e15d22c024`](https://github.com/nodejs/node/commit/e15d22c024)] - **doc**: initial version of security-model-strategy.md (Michael Dawson) [#42709](https://github.com/nodejs/node/pull/42709) +* \[[`fe65996790`](https://github.com/nodejs/node/commit/fe65996790)] - **doc**: clarify guide on testing internal errors (Livia Medeiros) [#42813](https://github.com/nodejs/node/pull/42813) +* \[[`2f849a460f`](https://github.com/nodejs/node/commit/2f849a460f)] - **doc**: fix markdown formatting in primordials.md (Tobias Nießen) [#42877](https://github.com/nodejs/node/pull/42877) +* \[[`cd2f5a4fd4`](https://github.com/nodejs/node/commit/cd2f5a4fd4)] - **doc**: add primordials guidelines (Antoine du Hamel) [#38635](https://github.com/nodejs/node/pull/38635) +* \[[`2d76f72665`](https://github.com/nodejs/node/commit/2d76f72665)] - **doc**: elevate node-clinic diagnostic tier (RafaelGSS) [#42802](https://github.com/nodejs/node/pull/42802) +* \[[`9b61ac2617`](https://github.com/nodejs/node/commit/9b61ac2617)] - **doc**: update WebAssembly strategy with Wasm Web API (Tobias Nießen) [#42836](https://github.com/nodejs/node/pull/42836) +* \[[`c6c1dc5833`](https://github.com/nodejs/node/commit/c6c1dc5833)] - **doc**: order `vm.Module` linker arguments correctly (Simen Bekkhus) [#42797](https://github.com/nodejs/node/pull/42797) +* \[[`c46e7bbf69`](https://github.com/nodejs/node/commit/c46e7bbf69)] - **doc**: add @kuriyosh to collaborators (Yoshiki Kurihara) [#42824](https://github.com/nodejs/node/pull/42824) +* \[[`59da1339b4`](https://github.com/nodejs/node/commit/59da1339b4)] - **doc**: add maintaining-webassembly.md (Michael Dawson) [#42660](https://github.com/nodejs/node/pull/42660) +* \[[`d9f3f05cab`](https://github.com/nodejs/node/commit/d9f3f05cab)] - **doc**: fix outdated documentation for `family` property (Antoine du Hamel) [#42789](https://github.com/nodejs/node/pull/42789) +* \[[`6fa080cb48`](https://github.com/nodejs/node/commit/6fa080cb48)] - **doc**: delete heapdump from diagnostic tooling support tiers (Tony Gorez) [#42783](https://github.com/nodejs/node/pull/42783) +* \[[`c32f76d49e`](https://github.com/nodejs/node/commit/c32f76d49e)] - **doc**: fix example in assert.md (Livia Medeiros) [#42786](https://github.com/nodejs/node/pull/42786) +* \[[`6225370b2e`](https://github.com/nodejs/node/commit/6225370b2e)] - **doc**: fix version history for Loaders API (Antoine du Hamel) [#42778](https://github.com/nodejs/node/pull/42778) +* \[[`3d65a3b13e`](https://github.com/nodejs/node/commit/3d65a3b13e)] - **doc**: add `node:` prefix for all core modules (Antoine du Hamel) [#42752](https://github.com/nodejs/node/pull/42752) +* \[[`46c880b99b`](https://github.com/nodejs/node/commit/46c880b99b)] - **doc**: clarify core modules that can be loaded without a prefix (Antoine du Hamel) [#42753](https://github.com/nodejs/node/pull/42753) +* \[[`025b3e786a`](https://github.com/nodejs/node/commit/025b3e786a)] - **doc**: consolidate use of multiple-byte units (Antoine du Hamel) [#42587](https://github.com/nodejs/node/pull/42587) +* \[[`962d80b7a1`](https://github.com/nodejs/node/commit/962d80b7a1)] - **doc**: add documentation for inherited methods (Luigi Pinca) [#42691](https://github.com/nodejs/node/pull/42691) +* \[[`222b3e6674`](https://github.com/nodejs/node/commit/222b3e6674)] - **doc**: close tag in n-api.md (Livia Medeiros) [#42751](https://github.com/nodejs/node/pull/42751) +* \[[`4c30936065`](https://github.com/nodejs/node/commit/4c30936065)] - **doc**: copyedit http.OutgoingMessage documentation (Luigi Pinca) [#42733](https://github.com/nodejs/node/pull/42733) +* \[[`d77c59d0f2`](https://github.com/nodejs/node/commit/d77c59d0f2)] - **doc**: improve fragment (`:target`) anchors behavior on HTML version (Antoine du Hamel) [#42739](https://github.com/nodejs/node/pull/42739) +* \[[`c50309cb39`](https://github.com/nodejs/node/commit/c50309cb39)] - **doc**: fix `added:` info for `outgoingMessage.writable*` (Luigi Pinca) [#42737](https://github.com/nodejs/node/pull/42737) +* \[[`6b7c35e807`](https://github.com/nodejs/node/commit/6b7c35e807)] - **doc**: delete mdb\_v8 from diagnostic tooling support tiers (Tony Gorez) [#42626](https://github.com/nodejs/node/pull/42626) +* \[[`2a07a9fc3a`](https://github.com/nodejs/node/commit/2a07a9fc3a)] - **doc**: document the 'close' and 'finish' events (Luigi Pinca) [#42704](https://github.com/nodejs/node/pull/42704) +* \[[`ef5ab8179b`](https://github.com/nodejs/node/commit/ef5ab8179b)] - **doc**: fix `added:` info for `outgoingMessage.{,un}cork()` (Luigi Pinca) [#42711](https://github.com/nodejs/node/pull/42711) +* \[[`a6e1e7a5d7`](https://github.com/nodejs/node/commit/a6e1e7a5d7)] - **doc,test**: add tests and docs for duplex.fromWeb and duplex.toWeb (Erick Wendel) [#42738](https://github.com/nodejs/node/pull/42738) +* \[[`336242a7c6`](https://github.com/nodejs/node/commit/336242a7c6)] - **errors,console**: refactor to use ES2021 syntax (小菜) [#42872](https://github.com/nodejs/node/pull/42872) +* \[[`0e16120d0d`](https://github.com/nodejs/node/commit/0e16120d0d)] - **errors,vm**: update error and use cause (Gus Caplan) [#42820](https://github.com/nodejs/node/pull/42820) +* \[[`a0638a23b0`](https://github.com/nodejs/node/commit/a0638a23b0)] - **esm**: fix imports from non-file module (Antoine du Hamel) [#42881](https://github.com/nodejs/node/pull/42881) +* \[[`dab15f69e3`](https://github.com/nodejs/node/commit/dab15f69e3)] - **esm**: graduate top-level-await to stable (Antoine du Hamel) [#42875](https://github.com/nodejs/node/pull/42875) +* \[[`48bbb73f36`](https://github.com/nodejs/node/commit/48bbb73f36)] - **fs**: fix mkdirSync so ENOSPC is correctly reported (Santiago Gimeno) [#42811](https://github.com/nodejs/node/pull/42811) +* \[[`d33cbabd79`](https://github.com/nodejs/node/commit/d33cbabd79)] - **lib**: remove experimental warning from FormData (Xuguang Mei) [#42807](https://github.com/nodejs/node/pull/42807) +* \[[`ad8269450a`](https://github.com/nodejs/node/commit/ad8269450a)] - **lib,src**: use Response URL as WebAssembly location (Tobias Nießen) [#42842](https://github.com/nodejs/node/pull/42842) +* \[[`b0f7c4c8f9`](https://github.com/nodejs/node/commit/b0f7c4c8f9)] - **(SEMVER-MINOR)** **lib,src**: implement WebAssembly Web API (Tobias Nießen) [#42701](https://github.com/nodejs/node/pull/42701) +* \[[`fdc65032a7`](https://github.com/nodejs/node/commit/fdc65032a7)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#42848](https://github.com/nodejs/node/pull/42848) +* \[[`33ac027fdf`](https://github.com/nodejs/node/commit/33ac027fdf)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#42769](https://github.com/nodejs/node/pull/42769) +* \[[`14893c5984`](https://github.com/nodejs/node/commit/14893c5984)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#42760](https://github.com/nodejs/node/pull/42760) +* \[[`2f38b4812c`](https://github.com/nodejs/node/commit/2f38b4812c)] - **meta**: move mmarchini to emeritus (mary marchini) [#42750](https://github.com/nodejs/node/pull/42750) +* \[[`718d11fdb0`](https://github.com/nodejs/node/commit/718d11fdb0)] - **perf\_hooks**: return different functions in timerify (Himself65) [#42854](https://github.com/nodejs/node/pull/42854) +* \[[`e8083664e1`](https://github.com/nodejs/node/commit/e8083664e1)] - **src**: turn SSL\_CTX\_new CHECK/segfault into JS exception (Anna Henningsen) [#42799](https://github.com/nodejs/node/pull/42799) +* \[[`37ca1102c4`](https://github.com/nodejs/node/commit/37ca1102c4)] - **src**: make --no-node-snapshot a per-process option (Joyee Cheung) [#42864](https://github.com/nodejs/node/pull/42864) +* \[[`1976284a92`](https://github.com/nodejs/node/commit/1976284a92)] - **src**: define fs.constants.S\_IWUSR & S\_IRUSR for Win (Liviu Ionescu) [#42757](https://github.com/nodejs/node/pull/42757) +* \[[`b7e9dd0278`](https://github.com/nodejs/node/commit/b7e9dd0278)] - **src**: use `node:` prefix in example (Antoine du Hamel) [#42794](https://github.com/nodejs/node/pull/42794) +* \[[`1a7af6364d`](https://github.com/nodejs/node/commit/1a7af6364d)] - **src**: large page attributing an id on Linux (David CARLIER) [#42644](https://github.com/nodejs/node/pull/42644) +* \[[`494650c09f`](https://github.com/nodejs/node/commit/494650c09f)] - **src,crypto**: remove uses of AllocatedBuffer from crypto\_ec.cc (Darshan Sen) [#42766](https://github.com/nodejs/node/pull/42766) +* \[[`8e0e576669`](https://github.com/nodejs/node/commit/8e0e576669)] - **test**: add tests for extracting function name (Kohei Ueno) [#42399](https://github.com/nodejs/node/pull/42399) +* \[[`fbda87d966`](https://github.com/nodejs/node/commit/fbda87d966)] - **test**: simplify test-gc-{http-client,net}-\* (Luigi Pinca) [#42782](https://github.com/nodejs/node/pull/42782) +* \[[`3c796f8328`](https://github.com/nodejs/node/commit/3c796f8328)] - **test**: fix `parallel/test-dgram-udp6-link-local-address` (Antoine du Hamel) [#42795](https://github.com/nodejs/node/pull/42795) +* \[[`b85a11c28e`](https://github.com/nodejs/node/commit/b85a11c28e)] - **test**: improve lib/internal/test\_runner/test.js coverage (MURAKAMI Masahiko) [#42745](https://github.com/nodejs/node/pull/42745) +* \[[`59c07a99fb`](https://github.com/nodejs/node/commit/59c07a99fb)] - **test**: check ecdsa psychic signature (Filip Skokan) [#42863](https://github.com/nodejs/node/pull/42863) +* \[[`0725064695`](https://github.com/nodejs/node/commit/0725064695)] - **test**: fix port in net-perf\_hooks (Livia Medeiros) [#42761](https://github.com/nodejs/node/pull/42761) +* \[[`7b701442de`](https://github.com/nodejs/node/commit/7b701442de)] - **test**: skip test that cannot pass under --node-builtin-modules-path (Geoffrey Booth) [#42834](https://github.com/nodejs/node/pull/42834) +* \[[`37364abc58`](https://github.com/nodejs/node/commit/37364abc58)] - **test**: fix flaky HTTP server tests (Tobias Nießen) [#42846](https://github.com/nodejs/node/pull/42846) +* \[[`8476ffb85a`](https://github.com/nodejs/node/commit/8476ffb85a)] - **test**: use `assert.match()` instead of `assert(regex.test())` (Antoine du Hamel) [#42803](https://github.com/nodejs/node/pull/42803) +* \[[`d311916f37`](https://github.com/nodejs/node/commit/d311916f37)] - **test**: fix calculations in test-worker-resource-limits (Joyee Cheung) [#42702](https://github.com/nodejs/node/pull/42702) +* \[[`deb3cf49c7`](https://github.com/nodejs/node/commit/deb3cf49c7)] - **test**: remove the legacy url parser function (Kohei Ueno) [#42656](https://github.com/nodejs/node/pull/42656) +* \[[`be44b1ffcb`](https://github.com/nodejs/node/commit/be44b1ffcb)] - **test**: improve test coverage of internal/blob (Yoshiki Kurihara) [#41513](https://github.com/nodejs/node/pull/41513) +* \[[`78a860ae58`](https://github.com/nodejs/node/commit/78a860ae58)] - **(SEMVER-MINOR)** **test\_runner**: add initial CLI runner (Colin Ihrig) [#42658](https://github.com/nodejs/node/pull/42658) +* \[[`1e7479d34c`](https://github.com/nodejs/node/commit/1e7479d34c)] - **tools**: update lint-md-dependencies (Node.js GitHub Bot) [#42932](https://github.com/nodejs/node/pull/42932) +* \[[`c3c5fe78dc`](https://github.com/nodejs/node/commit/c3c5fe78dc)] - **tools**: bump jsdoccomment from 0.22.1 to 0.29.0 (Rich Trott) [#42857](https://github.com/nodejs/node/pull/42857) +* \[[`97fc00a06e`](https://github.com/nodejs/node/commit/97fc00a06e)] - **tools**: update eslint to 8.14.0 (Node.js GitHub Bot) [#42845](https://github.com/nodejs/node/pull/42845) +* \[[`93fd77a16f`](https://github.com/nodejs/node/commit/93fd77a16f)] - **tools**: update doc to highlight.js\@11.5.1 (Node.js GitHub Bot) [#42758](https://github.com/nodejs/node/pull/42758) +* \[[`47c04813f7`](https://github.com/nodejs/node/commit/47c04813f7)] - **tools**: update lint-md-dependencies (Node.js GitHub Bot) [#42759](https://github.com/nodejs/node/pull/42759) +* \[[`18ae2c39d5`](https://github.com/nodejs/node/commit/18ae2c39d5)] - **tools**: lint osx shell scripts (Livia Medeiros) [#42712](https://github.com/nodejs/node/pull/42712) +* \[[`4af0fbd41e`](https://github.com/nodejs/node/commit/4af0fbd41e)] - **v8**: export cpu\_profiler\_metadata\_size in getHeapCodeStatistics (theanarkh) [#42818](https://github.com/nodejs/node/pull/42818) +* \[[`a19fb609d8`](https://github.com/nodejs/node/commit/a19fb609d8)] - **v8**: export more fields in getHeapStatistics (theanarkh) [#42784](https://github.com/nodejs/node/pull/42784) +* \[[`1b5856a2a9`](https://github.com/nodejs/node/commit/1b5856a2a9)] - **wasi**: remove unecessary null check (Michael Dawson) [#42819](https://github.com/nodejs/node/pull/42819) +* \[[`bf9240ae8c`](https://github.com/nodejs/node/commit/bf9240ae8c)] - **(SEMVER-MINOR)** **worker**: add hasRef() to MessagePort (Darshan Sen) [#42849](https://github.com/nodejs/node/pull/42849) +* \[[`c3922afa1c`](https://github.com/nodejs/node/commit/c3922afa1c)] - **worker**: add hasRef() to the handle object (Darshan Sen) [#42756](https://github.com/nodejs/node/pull/42756) + + + +## 2022-04-19, Version 18.0.0 (Current), @BethGriggs + +Node.js 18 is here! Highlights include the update of the V8 JavaScript engine to 10.1, global fetch enabled by default, and a core test runner module. + +Initially, Node.js 18 will replace Node.js 17 as our ‘Current’ release line. As per the release schedule, Node.js 18 will be the ‘Current’ release for the next 6 months and then promoted to Long-term Support (LTS) in October 2022. Once promoted to long-term support the release will be designated the codename ‘Hydrogen’. Node.js 18 will be supported until April 2025. + +### Notable Changes + +#### Deprecations and Removals + +* **(SEMVER-MAJOR)** **fs**: runtime deprecate string coercion in `fs.write`, `fs.writeFileSync` (Livia Medeiros) [#42607](https://github.com/nodejs/node/pull/42607) +* **(SEMVER-MAJOR)** **dns**: remove `dns.lookup` and `dnsPromises.lookup` options type coercion (Antoine du Hamel) [#41431](https://github.com/nodejs/node/pull/41431) +* **(SEMVER-MAJOR)** **process**: runtime deprecate multipleResolves (Benjamin Gruenbaum) [#41896](https://github.com/nodejs/node/pull/41896) +* **(SEMVER-MAJOR)** **stream**: remove thenable support (Robert Nagy) [#40773](https://github.com/nodejs/node/pull/40773) +* **(SEMVER-MAJOR)** **tls**: move tls.parseCertString to end-of-life (Tobias Nießen) [#41479](https://github.com/nodejs/node/pull/41479) + +#### fetch (experimental) + +An experimental fetch API is available on the global scope by default. The implementation is based upon [undici](https://undici.nodejs.org/#/), an HTTP/1.1 client written for Node.js by contributors to the project. + +```mjs +const res = await fetch('https://nodejs.org/api/documentation.json'); +if (res.ok) { + const data = await res.json(); + console.log(data); +} +``` + +Through this addition, the following globals are made available: `fetch`, `FormData`, `Headers`, `Request`, `Response`. + +Disable this API with the `--no-experimental-fetch` command-line flag. + +Contributed by Michaël Zasso in [#41811](https://github.com/nodejs/node/pull/41811). + +#### HTTP Timeouts + +`server.headersTimeout` which limits the amount of time the parser will wait to receive the complete HTTP headers is now set to `60000` (60 seconds) by default. + +`server.requestTimeout` which sets the timeout value in milliseconds for receiving the entire request from the client is now set to `300000` (5 minutes) by default. + +If these timeouts expire, the server responds with status 408 without forwarding the request to the request listener and then closes the connection. + +Both timeouts must be set to a non-zero value to protect against potential Denial-of-Service attacks in case the server is deployed without a reverse proxy in front. + +Contributed by Paolo Insogna in [#41263](https://github.com/nodejs/node/pull/41263). + +#### Test Runner module (experimental) + +The `node:test` module facilitates the creation of JavaScript tests that report results in TAP format. To access it: + +`import test from 'node:test';` + +This module is only available under the `node:` scheme. + +The following is an example implementation of a parent test with two subtests: + +```js +test('top level test', async (t) => { + await t.test('subtest 1', (t) => { + assert.strictEqual(1, 1); + }); + + await t.test('subtest 2', (t) => { + assert.strictEqual(2, 2); + }); +}); +``` + +Read more in . + +Contributed by Colin Ihrig in [#42325](https://github.com/nodejs/node/pull/42325). + +#### Toolchain and Compiler Upgrades + +* Prebuilt binaries for Linux are now built on Red Hat Enterprise Linux (RHEL) 8 and are compatible with Linux distributions based on glibc 2.28 or later, for example, Debian 10, RHEL 8, Ubuntu 20.04. +* Prebuilt binaries for macOS now require macOS 10.15 or later. +* For AIX the minimum supported architecture has been raised from Power 7 to Power 8. + +Prebuilt binaries for 32-bit Windows will initially not be available due to issues building the V8 dependency in Node.js. We hope to restore 32-bit Windows binaries for Node.js 18 with a future V8 update. + +Node.js does not support running on operating systems that are no longer supported by their vendor. For operating systems where their vendor has planned to end support earlier than April 2025, such as Windows 8.1 (January 2023) and Windows Server 2012 R2 (October 2023), support for Node.js 18 will end at the earlier date. + +Full details about the supported toolchains and compilers are documented in the Node.js [BUILDING.md](https://github.com/nodejs/node/blob/v18.x/BUILDING.md#supported-platforms) file. + +Contributed by Richard Lau in [#42292](https://github.com/nodejs/node/pull/42292), [#42604](https://github.com/nodejs/node/pull/42604) and [#42659](https://github.com/nodejs/node/pull/42659),and Michaël Zasso in [#42105](https://github.com/nodejs/node/pull/42105) and [#42666](https://github.com/nodejs/node/pull/42666). + +#### V8 10.1 + +The V8 engine is updated to version 10.1, which is part of Chromium 101. Compared to the version included in Node.js 17.9.0, the following new features are included: + +* The [`findLast` and `findLastIndex` array methods](https://v8.dev/features/finding-in-arrays). +* Improvements to the [`Intl.Locale` API](https://v8.dev/blog/v8-release-99#intl.locale-extensions). +* The [`Intl.supportedValuesOf` function](https://v8.dev/blog/v8-release-99#intl-enumeration). +* Improved performance of [class fields](https://bugs.chromium.org/p/v8/issues/detail?id=9888) and [private class methods](https://bugs.chromium.org/p/v8/issues/detail?id=10793) (the initialization of them is now as fast as ordinary property stores). + +The data format returned by the serialization API (`v8.serialize(value)`) has changed, and cannot be deserialized by earlier versions of Node.js. On the other hand, it is still possible to deserialize the previous format, as the API is backwards-compatible. + +Contributed by Michaël Zasso in . + +#### Web Streams API (experimental) + +Node.js now exposes the experimental implementation of the [Web Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) on the global scope. This means the following APIs are now globally available: + +* `ReadableStream`, `ReadableStreamDefaultReader`, `ReadableStreamBYOBReader`, `ReadableStreamBYOBRequest`, `ReadableByteStreamController`, `ReadableStreamDefaultController`, `TransformStream`, `TransformStreamDefaultController`, `WritableStream`, `WritableStreamDefaultWriter`, `WritableStreamDefaultController`, `ByteLengthQueuingStrategy`, `CountQueuingStrategy`, `TextEncoderStream`, `TextDecoderStream`, `CompressionStream`, `DecompressionStream`. + +Contributed James Snell in , and Antoine du Hamel in . + +#### Other Notable Changes + +* **(SEMVER-MAJOR)** **buffer**: expose Blob as a global (James M Snell) [#41270](https://github.com/nodejs/node/pull/41270) +* **(SEMVER-MAJOR)** **child\_process**: improve argument validation (Rich Trott) [#41305](https://github.com/nodejs/node/pull/41305) +* **doc**: add RafaelGSS to collaborators (RafaelGSS) [#42718](https://github.com/nodejs/node/pull/42718) +* **(SEMVER-MAJOR)** **http**: make TCP noDelay enabled by default (Paolo Insogna) [#42163](https://github.com/nodejs/node/pull/42163) +* **(SEMVER-MAJOR)** **net**: make `server.address()` return an integer for `family` (Antoine du Hamel) [#41431](https://github.com/nodejs/node/pull/41431) +* **(SEMVER-MAJOR)** **worker**: expose BroadcastChannel as a global (James M Snell) [#41271](https://github.com/nodejs/node/pull/41271) +* **(SEMVER-MAJOR)** **worker**: graduate BroadcastChannel to supported (James M Snell) [#41271](https://github.com/nodejs/node/pull/41271) + +### Semver-Major Commits + +* \[[`dab8ab2837`](https://github.com/nodejs/node/commit/dab8ab2837)] - **(SEMVER-MAJOR)** **assert,util**: compare RegExp.lastIndex while using deep equal checks (Ruben Bridgewater) [#41020](https://github.com/nodejs/node/pull/41020) +* \[[`cff14bcaef`](https://github.com/nodejs/node/commit/cff14bcaef)] - **(SEMVER-MAJOR)** **buffer**: refactor `byteLength` to remove outdated optimizations (Rongjian Zhang) [#38545](https://github.com/nodejs/node/pull/38545) +* \[[`cea76dbf33`](https://github.com/nodejs/node/commit/cea76dbf33)] - **(SEMVER-MAJOR)** **buffer**: expose Blob as a global (James M Snell) [#41270](https://github.com/nodejs/node/pull/41270) +* \[[`99c18f4786`](https://github.com/nodejs/node/commit/99c18f4786)] - **(SEMVER-MAJOR)** **buffer**: graduate Blob from experimental (James M Snell) [#41270](https://github.com/nodejs/node/pull/41270) +* \[[`35d72bf4ec`](https://github.com/nodejs/node/commit/35d72bf4ec)] - **(SEMVER-MAJOR)** **build**: make x86 Windows support temporarily experimental (Michaël Zasso) [#42666](https://github.com/nodejs/node/pull/42666) +* \[[`1134d8faf8`](https://github.com/nodejs/node/commit/1134d8faf8)] - **(SEMVER-MAJOR)** **build**: bump macOS deployment target to 10.15 (Richard Lau) [#42292](https://github.com/nodejs/node/pull/42292) +* \[[`27eb91d378`](https://github.com/nodejs/node/commit/27eb91d378)] - **(SEMVER-MAJOR)** **build**: downgrade Windows 8.1 and server 2012 R2 to experimental (Michaël Zasso) [#42105](https://github.com/nodejs/node/pull/42105) +* \[[`26c973d4b3`](https://github.com/nodejs/node/commit/26c973d4b3)] - **(SEMVER-MAJOR)** **child\_process**: improve argument validation (Rich Trott) [#41305](https://github.com/nodejs/node/pull/41305) +* \[[`38007df999`](https://github.com/nodejs/node/commit/38007df999)] - **(SEMVER-MAJOR)** **cluster**: make `kill` to be just `process.kill` (Bar Admoni) [#34312](https://github.com/nodejs/node/pull/34312) +* \[[`aed18dfe59`](https://github.com/nodejs/node/commit/aed18dfe59)] - **(SEMVER-MAJOR)** **crypto**: cleanup validation (Mohammed Keyvanzadeh) [#39841](https://github.com/nodejs/node/pull/39841) +* \[[`e1fb6ae02f`](https://github.com/nodejs/node/commit/e1fb6ae02f)] - **(SEMVER-MAJOR)** **crypto**: prettify othername in PrintGeneralName (Tobias Nießen) [#42123](https://github.com/nodejs/node/pull/42123) +* \[[`36fb79030e`](https://github.com/nodejs/node/commit/36fb79030e)] - **(SEMVER-MAJOR)** **crypto**: fix X509Certificate toLegacyObject (Tobias Nießen) [#42124](https://github.com/nodejs/node/pull/42124) +* \[[`563b2ed000`](https://github.com/nodejs/node/commit/563b2ed000)] - **(SEMVER-MAJOR)** **crypto**: use RFC2253 format in PrintGeneralName (Tobias Nießen) [#42002](https://github.com/nodejs/node/pull/42002) +* \[[`18365d8ee6`](https://github.com/nodejs/node/commit/18365d8ee6)] - **(SEMVER-MAJOR)** **crypto**: change default check(Host|Email) behavior (Tobias Nießen) [#41600](https://github.com/nodejs/node/pull/41600) +* \[[`58f3fdcccd`](https://github.com/nodejs/node/commit/58f3fdcccd)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick semver-major commits from 10.2 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`fd4f80ce54`](https://github.com/nodejs/node/commit/fd4f80ce54)] - **(SEMVER-MAJOR)** **deps**: update V8 to 10.1.124.6 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`974ab4060f`](https://github.com/nodejs/node/commit/974ab4060f)] - **(SEMVER-MAJOR)** **deps**: update V8 to 9.8.177.9 (Michaël Zasso) [#41610](https://github.com/nodejs/node/pull/41610) +* \[[`270253c4e2`](https://github.com/nodejs/node/commit/270253c4e2)] - **(SEMVER-MAJOR)** **deps**: update V8 to 9.7.106.18 (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`08773e3c04`](https://github.com/nodejs/node/commit/08773e3c04)] - **(SEMVER-MAJOR)** **dns**: remove `dns.lookup` and `dnsPromises.lookup` options type coercion (Antoine du Hamel) [#41431](https://github.com/nodejs/node/pull/41431) +* \[[`3671cc0432`](https://github.com/nodejs/node/commit/3671cc0432)] - **(SEMVER-MAJOR)** **doc**: update minimum glibc requirements for Linux (Richard Lau) [#42659](https://github.com/nodejs/node/pull/42659) +* \[[`646e057680`](https://github.com/nodejs/node/commit/646e057680)] - **(SEMVER-MAJOR)** **doc**: update AIX minimum supported arch (Richard Lau) [#42604](https://github.com/nodejs/node/pull/42604) +* \[[`0bac5478eb`](https://github.com/nodejs/node/commit/0bac5478eb)] - **(SEMVER-MAJOR)** **fs**: runtime deprecate string coercion in `fs.write`, `fs.writeFileSync` (Livia Medeiros) [#42607](https://github.com/nodejs/node/pull/42607) +* \[[`3caa2c1a00`](https://github.com/nodejs/node/commit/3caa2c1a00)] - **(SEMVER-MAJOR)** **http**: refactor headersTimeout and requestTimeout logic (Paolo Insogna) [#41263](https://github.com/nodejs/node/pull/41263) +* \[[`eacd45656a`](https://github.com/nodejs/node/commit/eacd45656a)] - **(SEMVER-MAJOR)** **http**: make TCP noDelay enabled by default (Paolo Insogna) [#42163](https://github.com/nodejs/node/pull/42163) +* \[[`4944ad0b9e`](https://github.com/nodejs/node/commit/4944ad0b9e)] - **(SEMVER-MAJOR)** **lib**: enable fetch by default (Michaël Zasso) [#41811](https://github.com/nodejs/node/pull/41811) +* \[[`8c4b8b201a`](https://github.com/nodejs/node/commit/8c4b8b201a)] - **(SEMVER-MAJOR)** **lib**: replace validator and error (Mohammed Keyvanzadeh) [#41678](https://github.com/nodejs/node/pull/41678) +* \[[`3c4ee5267a`](https://github.com/nodejs/node/commit/3c4ee5267a)] - **(SEMVER-MAJOR)** **module,repl**: support 'node:'-only core modules (Colin Ihrig) [#42325](https://github.com/nodejs/node/pull/42325) +* \[[`3a26db9697`](https://github.com/nodejs/node/commit/3a26db9697)] - **(SEMVER-MAJOR)** **net**: make `server.address()` return an integer for `family` (Antoine du Hamel) [#41431](https://github.com/nodejs/node/pull/41431) +* \[[`e6a7300a10`](https://github.com/nodejs/node/commit/e6a7300a10)] - **(SEMVER-MAJOR)** **process**: disallow some uses of Object.defineProperty() on process.env (Himself65) [#28006](https://github.com/nodejs/node/pull/28006) +* \[[`60b8e79599`](https://github.com/nodejs/node/commit/60b8e79599)] - **(SEMVER-MAJOR)** **process**: runtime deprecate multipleResolves (Benjamin Gruenbaum) [#41896](https://github.com/nodejs/node/pull/41896) +* \[[`d36b60e69a`](https://github.com/nodejs/node/commit/d36b60e69a)] - **(SEMVER-MAJOR)** **readline**: fix question still called after closed (Xuguang Mei) [#42464](https://github.com/nodejs/node/pull/42464) +* \[[`58e645de63`](https://github.com/nodejs/node/commit/58e645de63)] - **(SEMVER-MAJOR)** **stream**: remove thenable support (Robert Nagy) [#40773](https://github.com/nodejs/node/pull/40773) +* \[[`560cbc5849`](https://github.com/nodejs/node/commit/560cbc5849)] - **(SEMVER-MAJOR)** **stream**: expose web streams globals, remove runtime experimental warning (Antoine du Hamel) [#42225](https://github.com/nodejs/node/pull/42225) +* \[[`9fb7ac3bbd`](https://github.com/nodejs/node/commit/9fb7ac3bbd)] - **(SEMVER-MAJOR)** **stream**: need to cleanup event listeners if last stream is readable (Xuguang Mei) [#41954](https://github.com/nodejs/node/pull/41954) +* \[[`ceaa299958`](https://github.com/nodejs/node/commit/ceaa299958)] - **(SEMVER-MAJOR)** **stream**: revert revert `map` spec compliance (Benjamin Gruenbaum) [#41933](https://github.com/nodejs/node/pull/41933) +* \[[`fe7ca085a7`](https://github.com/nodejs/node/commit/fe7ca085a7)] - **(SEMVER-MAJOR)** **stream**: throw invalid arg type from End Of Stream (Jithil P Ponnan) [#41766](https://github.com/nodejs/node/pull/41766) +* \[[`48e784043d`](https://github.com/nodejs/node/commit/48e784043d)] - **(SEMVER-MAJOR)** **stream**: don't emit finish after destroy (Robert Nagy) [#40852](https://github.com/nodejs/node/pull/40852) +* \[[`f2170253b6`](https://github.com/nodejs/node/commit/f2170253b6)] - **(SEMVER-MAJOR)** **stream**: add errored and closed props (Robert Nagy) [#40696](https://github.com/nodejs/node/pull/40696) +* \[[`432d1b50e0`](https://github.com/nodejs/node/commit/432d1b50e0)] - **(SEMVER-MAJOR)** **test**: add initial test module (Colin Ihrig) [#42325](https://github.com/nodejs/node/pull/42325) +* \[[`92567283f4`](https://github.com/nodejs/node/commit/92567283f4)] - **(SEMVER-MAJOR)** **timers**: refactor internal classes to ES2015 syntax (Rabbit) [#37408](https://github.com/nodejs/node/pull/37408) +* \[[`65910c0d6c`](https://github.com/nodejs/node/commit/65910c0d6c)] - **(SEMVER-MAJOR)** **tls**: represent registeredID numerically always (Tobias Nießen) [#41561](https://github.com/nodejs/node/pull/41561) +* \[[`807c7e14f4`](https://github.com/nodejs/node/commit/807c7e14f4)] - **(SEMVER-MAJOR)** **tls**: move tls.parseCertString to end-of-life (Tobias Nießen) [#41479](https://github.com/nodejs/node/pull/41479) +* \[[`f524306077`](https://github.com/nodejs/node/commit/f524306077)] - **(SEMVER-MAJOR)** **url**: throw on NULL in IPv6 hostname (Rich Trott) [#42313](https://github.com/nodejs/node/pull/42313) +* \[[`0187bc5cdc`](https://github.com/nodejs/node/commit/0187bc5cdc)] - **(SEMVER-MAJOR)** **v8**: make v8.writeHeapSnapshot() error codes consistent (Darshan Sen) [#42577](https://github.com/nodejs/node/pull/42577) +* \[[`74b9baa426`](https://github.com/nodejs/node/commit/74b9baa426)] - **(SEMVER-MAJOR)** **v8**: make writeHeapSnapshot throw if fopen fails (Antonio Román) [#41373](https://github.com/nodejs/node/pull/41373) +* \[[`ce4d3adf50`](https://github.com/nodejs/node/commit/ce4d3adf50)] - **(SEMVER-MAJOR)** **worker**: expose BroadcastChannel as a global (James M Snell) [#41271](https://github.com/nodejs/node/pull/41271) +* \[[`6486a304d3`](https://github.com/nodejs/node/commit/6486a304d3)] - **(SEMVER-MAJOR)** **worker**: graduate BroadcastChannel to supported (James M Snell) [#41271](https://github.com/nodejs/node/pull/41271) + +### Semver-Minor Commits + +* \[[`415726b8c4`](https://github.com/nodejs/node/commit/415726b8c4)] - **(SEMVER-MINOR)** **stream**: add writableAborted (Robert Nagy) [#40802](https://github.com/nodejs/node/pull/40802) +* \[[`54819f08e0`](https://github.com/nodejs/node/commit/54819f08e0)] - **(SEMVER-MINOR)** **test\_runner**: support 'only' tests (Colin Ihrig) [#42514](https://github.com/nodejs/node/pull/42514) + +### Semver-Patch Commits + +* \[[`7533d08b94`](https://github.com/nodejs/node/commit/7533d08b94)] - **buffer**: fix `atob` input validation (Austin Kelleher) [#42662](https://github.com/nodejs/node/pull/42662) +* \[[`96673bcb96`](https://github.com/nodejs/node/commit/96673bcb96)] - **build**: run clang-format on CI (Darshan Sen) [#42681](https://github.com/nodejs/node/pull/42681) +* \[[`d5462e4558`](https://github.com/nodejs/node/commit/d5462e4558)] - **build**: reset embedder string to "-node.0" (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`aa52873887`](https://github.com/nodejs/node/commit/aa52873887)] - **build**: add configure option --v8-enable-short-builtin-calls (daomingq) [#42109](https://github.com/nodejs/node/pull/42109) +* \[[`7ee8a7a463`](https://github.com/nodejs/node/commit/7ee8a7a463)] - **build**: reset embedder string to "-node.0" (Michaël Zasso) [#41610](https://github.com/nodejs/node/pull/41610) +* \[[`a189dee52a`](https://github.com/nodejs/node/commit/a189dee52a)] - **build**: reset embedder string to "-node.0" (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`e8697cfe38`](https://github.com/nodejs/node/commit/e8697cfe38)] - **crypto**: improve prime size argument validation (Tobias Nießen) [#42234](https://github.com/nodejs/node/pull/42234) +* \[[`a9c0689786`](https://github.com/nodejs/node/commit/a9c0689786)] - **crypto**: fix return type prob reported by coverity (Michael Dawson) [#42135](https://github.com/nodejs/node/pull/42135) +* \[[`e938515b41`](https://github.com/nodejs/node/commit/e938515b41)] - **deps**: patch V8 to 10.1.124.8 (Michaël Zasso) [#42730](https://github.com/nodejs/node/pull/42730) +* \[[`eba7d2db7f`](https://github.com/nodejs/node/commit/eba7d2db7f)] - **deps**: V8: cherry-pick ad21d212fc14 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`004137e269`](https://github.com/nodejs/node/commit/004137e269)] - **deps**: V8: cherry-pick 4c29cf1b7885 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`a052c03033`](https://github.com/nodejs/node/commit/a052c03033)] - **deps**: V8: cherry-pick ca2a787a0b49 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`01cea9a8d8`](https://github.com/nodejs/node/commit/01cea9a8d8)] - **deps**: V8: cherry-pick a2cae2180a7a (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`d9d26b08ef`](https://github.com/nodejs/node/commit/d9d26b08ef)] - **deps**: V8: cherry-pick 87ce4f5d98a5 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`64a6328505`](https://github.com/nodejs/node/commit/64a6328505)] - **deps**: make V8 compilable with older glibc (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`fde59217b9`](https://github.com/nodejs/node/commit/fde59217b9)] - **deps**: V8: fix v8-cppgc.h for MSVC (Jiawen Geng) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`cdcc82cced`](https://github.com/nodejs/node/commit/cdcc82cced)] - **deps**: silence V8's warning on CompileFunction (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`2f51e121da`](https://github.com/nodejs/node/commit/2f51e121da)] - **deps**: update Acorn to v8.7.0 (Michaël Zasso) [#42667](https://github.com/nodejs/node/pull/42667) +* \[[`6d4b01774b`](https://github.com/nodejs/node/commit/6d4b01774b)] - **deps**: update ICU to 71.1 (Michaël Zasso) [#42655](https://github.com/nodejs/node/pull/42655) +* \[[`2d84620f86`](https://github.com/nodejs/node/commit/2d84620f86)] - **deps**: upgrade npm to 8.6.0 (npm team) [#42550](https://github.com/nodejs/node/pull/42550) +* \[[`c7ac11fa25`](https://github.com/nodejs/node/commit/c7ac11fa25)] - **deps**: update undici to 5.0.0 (Node.js GitHub Bot) [#42583](https://github.com/nodejs/node/pull/42583) +* \[[`468fffdf66`](https://github.com/nodejs/node/commit/468fffdf66)] - **deps**: V8: cherry-pick 50d5fb7a457c (Michaël Zasso) [#41610](https://github.com/nodejs/node/pull/41610) +* \[[`48708be57b`](https://github.com/nodejs/node/commit/48708be57b)] - **deps**: V8: cherry-pick 79a9d2eb3477 (Michaël Zasso) [#41610](https://github.com/nodejs/node/pull/41610) +* \[[`3c8782f70e`](https://github.com/nodejs/node/commit/3c8782f70e)] - **deps**: silence V8's warning on CompileFunction (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`9318408c49`](https://github.com/nodejs/node/commit/9318408c49)] - **deps**: silence V8's warning on CompileFunction (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`e23e345b6c`](https://github.com/nodejs/node/commit/e23e345b6c)] - **deps**: V8: cherry-pick 80bbbb143c24 (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`696ce7df26`](https://github.com/nodejs/node/commit/696ce7df26)] - **deps**: V8: cherry-pick 1cc12b278e22 (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`aa88e5e4b9`](https://github.com/nodejs/node/commit/aa88e5e4b9)] - **doc**: revise data imports and node: imports sections (Rich Trott) [#42734](https://github.com/nodejs/node/pull/42734) +* \[[`a058cefe29`](https://github.com/nodejs/node/commit/a058cefe29)] - **doc**: fix ESM JSON/data URL import example (Rich Trott) [#42728](https://github.com/nodejs/node/pull/42728) +* \[[`e61b62b9d4`](https://github.com/nodejs/node/commit/e61b62b9d4)] - **doc**: improve doc for http.ServerResponse inheritance (Luigi Pinca) [#42693](https://github.com/nodejs/node/pull/42693) +* \[[`6669b3857f`](https://github.com/nodejs/node/commit/6669b3857f)] - **doc**: add RafaelGSS to collaborators (RafaelGSS) [#42718](https://github.com/nodejs/node/pull/42718) +* \[[`f825341bab`](https://github.com/nodejs/node/commit/f825341bab)] - **doc**: add NodeEdKeyGenParams to CryptoKey.algorithm (Tobias Nießen) [#42629](https://github.com/nodejs/node/pull/42629) +* \[[`d4d78361f2`](https://github.com/nodejs/node/commit/d4d78361f2)] - **doc**: fix the example for embedders (Momtchil Momtchev) [#42671](https://github.com/nodejs/node/pull/42671) +* \[[`6706be1cdb`](https://github.com/nodejs/node/commit/6706be1cdb)] - **doc**: change AES-GCM IV recommendation in WebCrypto (Tobias Nießen) [#42611](https://github.com/nodejs/node/pull/42611) +* \[[`4508c8caa4`](https://github.com/nodejs/node/commit/4508c8caa4)] - **doc**: fix `added:` info for some methods (Luigi Pinca) [#42661](https://github.com/nodejs/node/pull/42661) +* \[[`951dbc045a`](https://github.com/nodejs/node/commit/951dbc045a)] - **doc**: remove unneeded new in Buffer example (Niklas Mischkulnig) [#42682](https://github.com/nodejs/node/pull/42682) +* \[[`65e838071b`](https://github.com/nodejs/node/commit/65e838071b)] - **doc**: mark worker.id as integer in cluster docs (Tobias Nießen) [#42684](https://github.com/nodejs/node/pull/42684) +* \[[`a82713cbb6`](https://github.com/nodejs/node/commit/a82713cbb6)] - **doc**: recommend `fh.createWriteStream` for fsPromises methods (Antoine du Hamel) [#42653](https://github.com/nodejs/node/pull/42653) +* \[[`13ad8d4e09`](https://github.com/nodejs/node/commit/13ad8d4e09)] - **doc**: fix outgoingMessage.removeHeader() signature (Luigi Pinca) [#42652](https://github.com/nodejs/node/pull/42652) +* \[[`a0461255c0`](https://github.com/nodejs/node/commit/a0461255c0)] - **doc**: mark tlsSocket.authorized as boolean property (Tobias Nießen) [#42647](https://github.com/nodejs/node/pull/42647) +* \[[`3ac7f86c2b`](https://github.com/nodejs/node/commit/3ac7f86c2b)] - **doc**: add missing punctuation in Web Streams doc (Tobias Nießen) [#42672](https://github.com/nodejs/node/pull/42672) +* \[[`b98386c977`](https://github.com/nodejs/node/commit/b98386c977)] - **doc**: add missing article in session ticket section (Tobias Nießen) [#42632](https://github.com/nodejs/node/pull/42632) +* \[[`a113468383`](https://github.com/nodejs/node/commit/a113468383)] - **doc**: link to dynamic import function (Tobias Nießen) [#42634](https://github.com/nodejs/node/pull/42634) +* \[[`dfc2dc8b65`](https://github.com/nodejs/node/commit/dfc2dc8b65)] - **doc**: add note about header values encoding (Shogun) [#42624](https://github.com/nodejs/node/pull/42624) +* \[[`ec5a359ffd`](https://github.com/nodejs/node/commit/ec5a359ffd)] - **doc**: add missing word in rootCertificates section (Tobias Nießen) [#42633](https://github.com/nodejs/node/pull/42633) +* \[[`c08a361f70`](https://github.com/nodejs/node/commit/c08a361f70)] - **doc**: add history entries for DEP0162 on `fs.md` (Antoine du Hamel) [#42608](https://github.com/nodejs/node/pull/42608) +* \[[`4fade6acb4`](https://github.com/nodejs/node/commit/4fade6acb4)] - **doc**: fix brackets position (Livia Medeiros) [#42649](https://github.com/nodejs/node/pull/42649) +* \[[`8055c7ba5d`](https://github.com/nodejs/node/commit/8055c7ba5d)] - **doc**: copyedit corepack.md (Rich Trott) [#42620](https://github.com/nodejs/node/pull/42620) +* \[[`85a65c3260`](https://github.com/nodejs/node/commit/85a65c3260)] - **doc**: delete chakra tt from diagnostic tooling support tiers (Tony Gorez) [#42627](https://github.com/nodejs/node/pull/42627) +* \[[`63bb6dcf0f`](https://github.com/nodejs/node/commit/63bb6dcf0f)] - **doc**: align links in table to top (nikoladev) [#41396](https://github.com/nodejs/node/pull/41396) +* \[[`28d8614add`](https://github.com/nodejs/node/commit/28d8614add)] - **http**: document that ClientRequest inherits from OutgoingMessage (K.C.Ashish Kumar) [#42642](https://github.com/nodejs/node/pull/42642) +* \[[`c37fdacb34`](https://github.com/nodejs/node/commit/c37fdacb34)] - **lib**: use class fields in observe.js (Joyee Cheung) [#42361](https://github.com/nodejs/node/pull/42361) +* \[[`ea0668a27e`](https://github.com/nodejs/node/commit/ea0668a27e)] - **lib**: use class fields in Event and EventTarget (Joyee Cheung) [#42361](https://github.com/nodejs/node/pull/42361) +* \[[`eb7b89c829`](https://github.com/nodejs/node/commit/eb7b89c829)] - **lib**: update class fields TODO in abort\_controller.js (Joyee Cheung) [#42361](https://github.com/nodejs/node/pull/42361) +* \[[`d835b1f1c1`](https://github.com/nodejs/node/commit/d835b1f1c1)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#42677](https://github.com/nodejs/node/pull/42677) +* \[[`29492496e8`](https://github.com/nodejs/node/commit/29492496e8)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#42599](https://github.com/nodejs/node/pull/42599) +* \[[`93c4dc5e5a`](https://github.com/nodejs/node/commit/93c4dc5e5a)] - **module**: ensure 'node:'-only modules can access node\_modules (Colin Ihrig) [#42430](https://github.com/nodejs/node/pull/42430) +* \[[`3a26db9697`](https://github.com/nodejs/node/commit/3a26db9697)] - **net**: make `server.address()` return an integer for `family` (Antoine du Hamel) [#41431](https://github.com/nodejs/node/pull/41431) +* \[[`44fdf953ba`](https://github.com/nodejs/node/commit/44fdf953ba)] - **node-api,src**: fix module registration in MSVC C++ (Vladimir Morozov) [#42459](https://github.com/nodejs/node/pull/42459) +* \[[`3026ca0bf2`](https://github.com/nodejs/node/commit/3026ca0bf2)] - **src**: fix coverity report (Michael Dawson) [#42663](https://github.com/nodejs/node/pull/42663) +* \[[`01fd048c6e`](https://github.com/nodejs/node/commit/01fd048c6e)] - **src**: update NODE\_MODULE\_VERSION to 108 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`75a71dc7ae`](https://github.com/nodejs/node/commit/75a71dc7ae)] - **src**: fix alphabetically sorted binding list (Tobias Nießen) [#42687](https://github.com/nodejs/node/pull/42687) +* \[[`457567f72c`](https://github.com/nodejs/node/commit/457567f72c)] - **src**: include crypto in the bootstrap snapshot (Joyee Cheung) [#42203](https://github.com/nodejs/node/pull/42203) +* \[[`aa7dc808f5`](https://github.com/nodejs/node/commit/aa7dc808f5)] - **src**: update ImportModuleDynamically (Camillo Bruni) [#41610](https://github.com/nodejs/node/pull/41610) +* \[[`fa0439e66c`](https://github.com/nodejs/node/commit/fa0439e66c)] - **src**: update NODE\_MODULE\_VERSION to 105 (Michaël Zasso) [#41610](https://github.com/nodejs/node/pull/41610) +* \[[`6ec1664dc8`](https://github.com/nodejs/node/commit/6ec1664dc8)] - **src**: update NODE\_MODULE\_VERSION to 104 (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`a706342368`](https://github.com/nodejs/node/commit/a706342368)] - **src**: add kNoBrowserGlobals flag for Environment (Cheng Zhao) [#40532](https://github.com/nodejs/node/pull/40532) +* \[[`0c57a37dd0`](https://github.com/nodejs/node/commit/0c57a37dd0)] - **src,crypto**: remove uses of AllocatedBuffer from crypto\_tls.cc (Darshan Sen) [#42589](https://github.com/nodejs/node/pull/42589) +* \[[`be01185844`](https://github.com/nodejs/node/commit/be01185844)] - **src,inspector**: fix empty MaybeLocal crash (Darshan Sen) [#42409](https://github.com/nodejs/node/pull/42409) +* \[[`340b770d3f`](https://github.com/nodejs/node/commit/340b770d3f)] - **stream**: unify writableErrored and readableErrored (Robert Nagy) [#40799](https://github.com/nodejs/node/pull/40799) +* \[[`19064bec34`](https://github.com/nodejs/node/commit/19064bec34)] - **test**: delete test/pummel/test-repl-empty-maybelocal-crash.js (Darshan Sen) [#42720](https://github.com/nodejs/node/pull/42720) +* \[[`9d6af7d1fe`](https://github.com/nodejs/node/commit/9d6af7d1fe)] - **test**: improve `internal/url.js` coverage (Yoshiki Kurihara) [#42650](https://github.com/nodejs/node/pull/42650) +* \[[`d49df5ca8d`](https://github.com/nodejs/node/commit/d49df5ca8d)] - **test**: adapt message tests for V8 10.2 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`c6b4e9604f`](https://github.com/nodejs/node/commit/c6b4e9604f)] - **test**: adapt test-worker-debug for V8 10.0 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`0854fce8bc`](https://github.com/nodejs/node/commit/0854fce8bc)] - **test**: adapt test-v8-serdes for V8 9.9 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`73d53fe9f5`](https://github.com/nodejs/node/commit/73d53fe9f5)] - **test**: only skip slow tests on Raspberry Pi devices (Richard Lau) [#42645](https://github.com/nodejs/node/pull/42645) +* \[[`db7fa9f4b7`](https://github.com/nodejs/node/commit/db7fa9f4b7)] - **test**: allow numeric string for lookupService test (Daeyeon Jeong) [#42596](https://github.com/nodejs/node/pull/42596) +* \[[`0525a147b2`](https://github.com/nodejs/node/commit/0525a147b2)] - **test**: remove an unnecessary `undefined` in wpt (Khaidi Chu) [#41470](https://github.com/nodejs/node/pull/41470) +* \[[`bb762c5bd0`](https://github.com/nodejs/node/commit/bb762c5bd0)] - **test**: simplify test-http-write-callbacks.js (Tobias Nießen) [#42628](https://github.com/nodejs/node/pull/42628) +* \[[`1600869eb7`](https://github.com/nodejs/node/commit/1600869eb7)] - **test**: fix comments in test files (Daeyeon Jeong) [#42536](https://github.com/nodejs/node/pull/42536) +* \[[`82181bb9b8`](https://github.com/nodejs/node/commit/82181bb9b8)] - **test**: fix failure in test/sequential/test-heapdump.js (Darshan Sen) [#41772](https://github.com/nodejs/node/pull/41772) +* \[[`ba5b5acaf1`](https://github.com/nodejs/node/commit/ba5b5acaf1)] - **test**: improve `worker_threads ` coverage (Erick Wendel) [#41818](https://github.com/nodejs/node/pull/41818) +* \[[`f076c36335`](https://github.com/nodejs/node/commit/f076c36335)] - **tools**: update clang-format 1.6.0 to 1.7.0 (Rich Trott) [#42724](https://github.com/nodejs/node/pull/42724) +* \[[`45162bf9e7`](https://github.com/nodejs/node/commit/45162bf9e7)] - **tools**: update clang-format from 1.2.3 to 1.6.0 (Rich Trott) [#42685](https://github.com/nodejs/node/pull/42685) +* \[[`40bc08089d`](https://github.com/nodejs/node/commit/40bc08089d)] - **tools**: update V8 gypfiles for 10.1 (Michaël Zasso) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`09513cd1a3`](https://github.com/nodejs/node/commit/09513cd1a3)] - **tools**: update eslint to 8.13.0 (Node.js GitHub Bot) [#42678](https://github.com/nodejs/node/pull/42678) +* \[[`b99bb57416`](https://github.com/nodejs/node/commit/b99bb57416)] - **tools**: update gyp-next to v0.12.1 (Michaël Zasso) [#42625](https://github.com/nodejs/node/pull/42625) +* \[[`2468db1f53`](https://github.com/nodejs/node/commit/2468db1f53)] - **tools**: update lint-md-dependencies to @rollup/plugin-commonjs\@21.0.3 (Node.js GitHub Bot) [#42584](https://github.com/nodejs/node/pull/42584) +* \[[`8a3f28a05c`](https://github.com/nodejs/node/commit/8a3f28a05c)] - **tools**: add v8-embedder-state-scope.h to distributed headers (Michaël Zasso) [#41610](https://github.com/nodejs/node/pull/41610) +* \[[`30c4e1d952`](https://github.com/nodejs/node/commit/30c4e1d952)] - **tools**: update V8 gypfiles for 9.8 (Michaël Zasso) [#41610](https://github.com/nodejs/node/pull/41610) +* \[[`1ad44094a2`](https://github.com/nodejs/node/commit/1ad44094a2)] - **tools**: update V8 gypfiles for 9.7 (Michaël Zasso) [#40907](https://github.com/nodejs/node/pull/40907) +* \[[`86b77f7d0f`](https://github.com/nodejs/node/commit/86b77f7d0f)] - **tools,doc**: use V8::DisposePlatform (Michaël Zasso) [#41610](https://github.com/nodejs/node/pull/41610) +* \[[`62e62757b3`](https://github.com/nodejs/node/commit/62e62757b3)] - **tools,test**: fix V8 initialization order (Camillo Bruni) [#42657](https://github.com/nodejs/node/pull/42657) +* \[[`0187bc5cdc`](https://github.com/nodejs/node/commit/0187bc5cdc)] - **v8**: make v8.writeHeapSnapshot() error codes consistent (Darshan Sen) [#42577](https://github.com/nodejs/node/pull/42577) +* \[[`74b9baa426`](https://github.com/nodejs/node/commit/74b9baa426)] - **v8**: make writeHeapSnapshot throw if fopen fails (Antonio Román) [#41373](https://github.com/nodejs/node/pull/41373) diff --git a/doc/changelogs/CHANGELOG_V4.md b/doc/changelogs/CHANGELOG_V4.md index 8dac45fb1eee1f..947c9a9fdcb858 100644 --- a/doc/changelogs/CHANGELOG_V4.md +++ b/doc/changelogs/CHANGELOG_V4.md @@ -56,6 +56,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V5.md b/doc/changelogs/CHANGELOG_V5.md index b711a0624551df..a80a0ee7e5beae 100644 --- a/doc/changelogs/CHANGELOG_V5.md +++ b/doc/changelogs/CHANGELOG_V5.md @@ -32,6 +32,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V6.md b/doc/changelogs/CHANGELOG_V6.md index 0c5e1ee0d62b9b..d0372a3baa64ad 100644 --- a/doc/changelogs/CHANGELOG_V6.md +++ b/doc/changelogs/CHANGELOG_V6.md @@ -61,6 +61,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V7.md b/doc/changelogs/CHANGELOG_V7.md index 120179523a8883..b698044eb6b775 100644 --- a/doc/changelogs/CHANGELOG_V7.md +++ b/doc/changelogs/CHANGELOG_V7.md @@ -30,6 +30,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V8.md b/doc/changelogs/CHANGELOG_V8.md index 8c0b1c5479d3cb..611fcbf032dd1a 100644 --- a/doc/changelogs/CHANGELOG_V8.md +++ b/doc/changelogs/CHANGELOG_V8.md @@ -52,6 +52,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/changelogs/CHANGELOG_V9.md b/doc/changelogs/CHANGELOG_V9.md index 8373b13a524592..0407b28d5e0874 100644 --- a/doc/changelogs/CHANGELOG_V9.md +++ b/doc/changelogs/CHANGELOG_V9.md @@ -31,6 +31,7 @@ * Other Versions + * [18.x](CHANGELOG_V18.md) * [17.x](CHANGELOG_V17.md) * [16.x](CHANGELOG_V16.md) * [15.x](CHANGELOG_V15.md) diff --git a/doc/contributing/backporting-to-release-lines.md b/doc/contributing/backporting-to-release-lines.md index 389c979e2eea67..eebb5a85961f62 100644 --- a/doc/contributing/backporting-to-release-lines.md +++ b/doc/contributing/backporting-to-release-lines.md @@ -10,7 +10,7 @@ For the active staging branches see the [Release Schedule][]. ## What needs to be backported? -If a cherry-pick from master does not land cleanly on a staging branch, the +If a cherry-pick from `main` does not land cleanly on a staging branch, the releaser will mark the pull request with a particular label for that release line (e.g. `backport-requested-vN.x`), specifying to our tooling that this pull request should not be included. The releaser will then add a comment @@ -54,7 +54,7 @@ replace that with the staging branch for the targeted release line. ```bash # Assuming your fork of Node.js is checked out in $NODE_DIR, # the origin remote points to your fork, and the upstream remote points - # to git://github.com/nodejs/node + # to git@github.com:nodejs/node.git cd $NODE_DIR # If v10.x-staging is checked out `pull` should be used instead of `fetch` git fetch upstream v10.x-staging:v10.x-staging -f diff --git a/doc/contributing/building-node-with-ninja.md b/doc/contributing/building-node-with-ninja.md index 5231b73a8cdd6e..8aae340e227034 100644 --- a/doc/contributing/building-node-with-ninja.md +++ b/doc/contributing/building-node-with-ninja.md @@ -22,14 +22,14 @@ ninja: Entering directory `out/Release` The bottom line will change while building, showing the progress as `[finished/total]` build steps. This is useful output that `make` does not -produce and is one of the benefits of using Ninja. Also, Ninja will likely -compile much faster than even `make -j4` (or -`-j`). You can still pass the -number of processes to run for [Ninja][] using the environment variable `JOBS`. -This will be the equivalent to the `-j` parameter in the regular `make`: +produce and is one of the benefits of using Ninja. When using Ninja, builds +are always run in parallel, based by default on the number of CPUs your +system has. You can use the `-j` parameter to override this behavior, +which is equivalent to the `-j` parameter in the regular `make`: ```bash -JOBS=12 make +make -j4 # With this flag, Ninja will limit itself to 4 parallel jobs, + # regardless of the number of cores on the current machine. ``` ## Producing a debug build diff --git a/doc/contributing/collaborator-guide.md b/doc/contributing/collaborator-guide.md index 4550c2e7d1565c..31313b1e2adf4e 100644 --- a/doc/contributing/collaborator-guide.md +++ b/doc/contributing/collaborator-guide.md @@ -232,13 +232,13 @@ There are some other files that touch the build chain. Changes in the following files also qualify as affecting the `node` binary: * `tools/*.py` -* `tools/build-addons.js` +* `tools/build-addons.mjs` * `*.gyp` * `*.gypi` * `configure` * `configure.py` * `Makefile` -* `vcbuilt.bat` +* `vcbuild.bat` @@ -287,11 +287,11 @@ in the form: * `GIT_REMOTE_REF`: Change to the remote portion of git refspec. To specify the branch this way, `refs/heads/BRANCH` is used - (e.g. for `master` -> `refs/heads/master`). + (e.g. for `main` -> `refs/heads/main`). For pull requests, it will look like `refs/pull/PR_NUMBER/head` (e.g. for pull request #42 -> `refs/pull/42/head`). -* `REBASE_ONTO`: Change that to `origin/master` so the pull request gets rebased - onto master. This can especially be important for pull requests that have been +* `REBASE_ONTO`: Change that to `origin/main` so the pull request gets rebased + onto `main`. This can especially be important for pull requests that have been open a while. Look at the list of jobs on the left hand side under "Build History" and copy @@ -337,7 +337,7 @@ For undocumented APIs that are public, open a pull request documenting the API. ### Breaking changes At least two TSC members must approve backward-incompatible changes to the -master branch. +`main` branch. Examples of breaking changes include: @@ -373,7 +373,7 @@ providing a Public API in such cases. #### Unintended breaking changes Sometimes, a change intended to be non-breaking turns out to be a breaking -change. If such a change lands on the master branch, a collaborator can revert +change. If such a change lands on the `main` branch, a collaborator can revert it. As an alternative to reverting, the TSC can apply the semver-major label after-the-fact. @@ -462,7 +462,7 @@ duration. Communicate pending deprecations and associated mitigations with the ecosystem as soon as possible. If possible, do it before the pull request adding the -deprecation lands on the master branch. +deprecation lands on the `main` branch. Use the `notable-change` label on pull requests that add or change the deprecation level of an API. @@ -554,7 +554,7 @@ $ git rebase --abort Checkout proper target branch: ```text -$ git checkout master +$ git checkout main ``` Update the tree (assumes your repository is set up as detailed in @@ -562,7 +562,7 @@ Update the tree (assumes your repository is set up as detailed in ```text $ git fetch upstream -$ git merge --ff-only upstream/master +$ git merge --ff-only upstream/main ``` Apply external patches: @@ -588,19 +588,19 @@ has landed since the CI run. You will have to ask the author to rebase. Check and re-review the changes: ```text -$ git diff upstream/master +$ git diff upstream/main ``` Check the number of commits and commit messages: ```text -$ git log upstream/master...master +$ git log upstream/main...main ``` Squash commits and add metadata: ```text -$ git rebase -i upstream/master +$ git rebase -i upstream/main ``` This will open a screen like this (in the default shell editor): @@ -670,19 +670,19 @@ for that commit. This is an opportunity to fix commit messages. pull request. * Protects against the assumption that GitHub will be around forever. -Other changes might have landed on master since the successful CI run. As a +Other changes might have landed on `main` since the successful CI run. As a precaution, run tests (`make -j4 test` or `vcbuild test`). Confirm that the commit message format is correct using [core-validate-commit](https://github.com/nodejs/core-validate-commit). ```text -$ git rev-list upstream/master...HEAD | xargs core-validate-commit +$ git rev-list upstream/main...HEAD | xargs core-validate-commit ``` Optional: For your own commits, force push the amended commit to the pull request branch. If your branch name is `bugfix`, then: -`git push --force-with-lease origin master:bugfix`. Don't close the pull +`git push --force-with-lease origin main:bugfix`. Don't close the pull request. It will close after you push it upstream. It will have the purple merged status rather than the red closed status. If you close the pull request before GitHub adjusts its status, it will show up as a 0 commit pull @@ -693,7 +693,7 @@ the issue with the red closed status. Time to push it: ```text -$ git push upstream master +$ git push upstream main ``` Close the pull request with a "Landed in ``" comment. Even if @@ -705,12 +705,12 @@ more than one commit. ### Troubleshooting -Sometimes, when running `git push upstream master`, you might get an error +Sometimes, when running `git push upstream main`, you might get an error message like this: ```console To https://github.com/nodejs/node - ! [rejected] master -> master (fetch first) + ! [rejected] main -> main (fetch first) error: failed to push some refs to 'https://github.com/nodejs/node' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. @@ -718,14 +718,14 @@ hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. ``` -That means a commit has landed since your last rebase against `upstream/master`. +That means a commit has landed since your last rebase against `upstream/main`. To fix this, pull with rebase from upstream, run the tests again, and (if the tests pass) push again: ```bash -git pull upstream master --rebase +git pull upstream main --rebase make -j4 test -git push upstream master +git push upstream main ``` ### I made a mistake @@ -755,7 +755,7 @@ the branch. Each LTS release has a corresponding branch (v10.x, v8.x, etc.). Each also has a corresponding staging branch (v10.x-staging, v8.x-staging, etc.). -Commits that land on master are cherry-picked to each staging branch as +Commits that land on `main` are cherry-picked to each staging branch as appropriate. If a change applies only to the LTS branch, open the pull request against the _staging_ branch. Commits from the staging branch land on the LTS branch only when a release is being prepared. They might land on the LTS branch @@ -815,7 +815,7 @@ might impact an LTS release. | `lib/zlib` | @nodejs/zlib | | `src/async_wrap.*` | @nodejs/async\_hooks | | `src/node_api.*` | @nodejs/node-api | -| `src/node_crypto.*` | @nodejs/crypto | +| `src/node_crypto.*`, `src/crypto` | @nodejs/crypto | | `test/*` | @nodejs/testing | | `tools/node_modules/eslint`, `.eslintrc` | @nodejs/linting | | build | @nodejs/build | @@ -901,7 +901,7 @@ We use labels to keep track of which branches a commit should land on: * (for example semver-minor changes that need or should go into an LTS release) * `v?.x` - * Automatically applied to changes that do not target `master` but rather the + * Automatically applied to changes that do not target `main` but rather the `v?.x-staging` branch Once a release line enters maintenance mode, the corresponding labels do not diff --git a/doc/contributing/commit-queue.md b/doc/contributing/commit-queue.md index edb9c7ad4a877f..4730d0889e99aa 100644 --- a/doc/contributing/commit-queue.md +++ b/doc/contributing/commit-queue.md @@ -8,7 +8,7 @@ Commit Queue is an experimental feature for the project which simplifies the landing process by automating it via GitHub Actions. With it, collaborators can land pull requests by adding the `commit-queue` label to a PR. All checks will run via node-core-utils, and if the pull request is ready to land, -the Action will rebase it and push to master. +the Action will rebase it and push to `main`. This document gives an overview of how the Commit Queue works, as well as implementation details, reasoning for design choices, and current limitations. @@ -50,7 +50,7 @@ work for more complex pull requests. These are the currently known limitations of the commit queue: 1. All commits in a pull request must either be following commit message - guidelines or be a valid [`fixup!`](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupltcommitgt) + guidelines or be a valid [`fixup!`](https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---fixupamendrewordltcommitgt) commit that will be correctly handled by the [`--autosquash`](https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---autosquash) option 2. A CI must've ran and succeeded since the last change on the PR @@ -108,7 +108,7 @@ forwarding stdout and stderr to a file. If any errors happen, to the PR, as well as a comment with the output of `git node land`. If no errors happen during `git node land`, the script will use the -`GITHUB_TOKEN` to push the changes to `master`, and then will leave a +`GITHUB_TOKEN` to push the changes to `main`, and then will leave a `Landed in ...` comment in the PR, and then will close it. Iteration continues until all PRs have done the steps above. diff --git a/doc/contributing/cpp-style-guide.md b/doc/contributing/cpp-style-guide.md index 64d0efee911e9d..ea2a66d34e89b7 100644 --- a/doc/contributing/cpp-style-guide.md +++ b/doc/contributing/cpp-style-guide.md @@ -51,7 +51,7 @@ tools. ## Formatting -Unfortunately, the C++ linter (based on [Google’s `cpplint`][]), which can be +Unfortunately, the C++ linter (based on [Google's `cpplint`][]), which can be run explicitly via `make lint-cpp`, does not currently catch a lot of rules that are specific to the Node.js C++ code base. This document explains the most common of these rules: @@ -117,7 +117,7 @@ void FunctionWithAVeryLongName(int parameter_with_a_very_long_name, ...); ``` -If that doesn’t work, break after the `(` and use 4 spaces of indentation: +If that doesn't work, break after the `(` and use 4 spaces of indentation: ```cpp void FunctionWithAReallyReallyReallyLongNameSeriouslyStopIt( @@ -397,7 +397,7 @@ even `try` and `catch` **will** break. [ES.48]: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-casts [ES.49]: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Res-casts-named [Google C++ Style Guide]: https://google.github.io/styleguide/cppguide.html -[Google’s `cpplint`]: https://github.com/google/styleguide +[Google's `cpplint`]: https://github.com/google/styleguide [R.20]: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rr-owner [R.21]: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rr-unique [Run Time Type Information]: https://en.wikipedia.org/wiki/Run-time_type_information diff --git a/doc/contributing/diagnostic-tooling-support-tiers.md b/doc/contributing/diagnostic-tooling-support-tiers.md index 6560f9565380b4..597e46986f8803 100644 --- a/doc/contributing/diagnostic-tooling-support-tiers.md +++ b/doc/contributing/diagnostic-tooling-support-tiers.md @@ -14,7 +14,7 @@ the following tiers. suite for the tool/API is not green. To be considered for inclusion in this tier it must have a good test suite and that test suite and a job must exist in the Node.js CI so that it can be run as part of the release - process. Tests on master will be run nightly when possible to provide + process. Tests on `main` will be run nightly when possible to provide early warning of potential issues. No commit to the current and LTS release branches should break this tool/API if the next major release is within 1 month. In addition: @@ -113,6 +113,8 @@ The tools are currently assigned to Tiers as follows: | Profiling | V8 CodeEventHandler API | Partial (V8 Tests) | Yes | 2 | | Profiling | V8 --interpreted-frames-native-stack | Yes | Yes | 2 | | Profiling | Linux perf | Yes | Partial | 2 | +| Profiling | node-clinic | No | No | 3 | +| Debugger | Chrome Dev tools | No | No | 3 | ## Tier 4 @@ -125,24 +127,18 @@ The tools are currently assigned to Tiers as follows: | Tool Type | Tool/API Name | Regular Testing in Node.js CI | Integrated with Node.js | Target Tier | | --------- | ------------------------- | ----------------------------- | ----------------------- | ----------- | | FFDC | node-report | No | No | 1 | -| Memory | mdb\_V8 | No | No | 4 | -| Memory | node-heapdump | No | No | 2 | | Memory | V8 heap profiler | No | Yes | 1 | | Memory | V8 sampling heap profiler | No | Yes | 1 | | AsyncFlow | Async Hooks (API) | ? | Yes | 1 | | Debugger | V8 Debug protocol (API) | No | Yes | 1 | | Debugger | Command line Debug Client | ? | Yes | 1 | -| Debugger | llnode | ? | No | 2 | -| Debugger | Chrome Dev tools | ? | No | 3 | | Tracing | trace\_events (API) | No | Yes | 1 | | Tracing | trace\_gc | No | Yes | 1 | | Tracing | DTrace | No | Partial | 3 | | Tracing | LTTng | No | Removed? | N/A | -| Tracing | ETW | No | Partial | 3 | | Tracing | Systemtap | No | Partial | ? | | Profiling | DTrace | No | Partial | 3 | | Profiling | Windows Xperf | No | ? | ? | | Profiling | 0x | No | No | 4 | -| Profiling | node-clinic | No | No | too early | | F/P/T | appmetrics | No | No | ? | | M/T | eBPF tracing tool | No | No | ? | diff --git a/doc/contributing/investigating-native-memory-leaks.md b/doc/contributing/investigating-native-memory-leaks.md index f9345b092737fa..17389c6bc91a7e 100644 --- a/doc/contributing/investigating-native-memory-leaks.md +++ b/doc/contributing/investigating-native-memory-leaks.md @@ -101,7 +101,7 @@ Leaks can be introduced in native addons and the following is a simple example leak based on the "Hello world" addon from [node-addon-examples](https://github.com/nodejs/node-addon-examples). -In this example, a loop which allocates approximately 1 MB of memory and never +In this example, a loop which allocates approximately 1 MiB of memory and never frees it has been added: ```cpp diff --git a/doc/contributing/maintaining-V8.md b/doc/contributing/maintaining-V8.md index 339cda49488600..fde030b2e95712 100644 --- a/doc/contributing/maintaining-V8.md +++ b/doc/contributing/maintaining-V8.md @@ -326,12 +326,12 @@ The rough outline of the process is: ```bash # Assuming your fork of Node.js is checked out in $NODE_DIR -# and you want to update the Node.js master branch. +# and you want to update the Node.js main branch. # Find the current (OLD) version in # $NODE_DIR/deps/v8/include/v8-version.h cd $NODE_DIR -git checkout master -git merge --ff-only origin/master +git checkout main +git merge --ff-only origin/main git checkout -b V8_NEW_VERSION curl -L https://github.com/v8/v8/compare/${V8_OLD_VERSION}...${V8_NEW_VERSION}.patch | git apply --directory=deps/v8 # You may want to amend the commit message to describe the nature of the update @@ -345,13 +345,13 @@ to apply a minor update. ### Major updates -We upgrade the version of V8 in Node.js master whenever a V8 release goes stable +We upgrade the version of V8 in Node.js `main` whenever a V8 release goes stable upstream, that is, whenever a new release of Chrome comes out. Upgrading major versions would be much harder to do with the patch mechanism above. A better strategy is to -1. Audit the current master branch and look at the patches that have been +1. Audit the current `main` branch and look at the patches that have been floated since the last major V8 update. 2. Replace the copy of V8 in Node.js with a fresh checkout of the latest stable V8 branch. Special care must be taken to recursively update the DEPS that V8 @@ -394,7 +394,7 @@ branches. This has several benefits: * The history of the V8 branch in `nodejs/v8` becomes purer and it would make it easier to pull in the V8 team for help with reviewing. * It would make it simpler to setup an automated build that tracks Node.js - master + V8 lkgr integration build. + `main` + V8 lkgr integration build. This would require some tooling to: @@ -407,10 +407,8 @@ This would require some tooling to: [^1]: Node.js 0.12 and older are intentionally omitted from this document as their support has ended. -[^2]: The V8 tests still require Python 2. To run these tests locally, you can - run `PYTHON2 ./configure.py` before running `make test-v8`, in the root - of this repository. On macOS, this also requires a full Xcode install, - not just the "command line tools" for Xcode. +[^2]: On macOS, the V8 tests require a full Xcode install, not just the "command + line tools" for Xcode. [ChromiumReleaseCalendar]: https://www.chromium.org/developers/calendar [Node.js CI]: https://ci.nodejs.org/job/node-test-pull-request/ @@ -425,8 +423,8 @@ This would require some tooling to: [NodeJS-Backport-Review-V8]: https://bugs.chromium.org/p/v8/issues/list?can=1&q=label%3ANodeJS-Backport-Review [V8 CI]: https://ci.nodejs.org/job/node-test-commit-v8-linux/ [V8ActiveBranches]: https://build.chromium.org/p/client.v8.branches/console -[V8Contributing]: https://github.com/v8/v8/wiki/Contributing -[V8MergingPatching]: https://github.com/v8/v8/wiki/Merging%20&%20Patching +[V8Contributing]: https://v8.dev/docs/contribute +[V8MergingPatching]: https://v8.dev/docs/merge-patch [V8TemplateMergeRequest]: https://bugs.chromium.org/p/v8/issues/entry?template=Node.js%20merge%20request [V8TemplateUpstreamBug]: https://bugs.chromium.org/p/v8/issues/entry?template=Node.js%20upstream%20bug [`git-node`]: https://github.com/nodejs/node-core-utils/blob/HEAD/docs/git-node.md#git-node-v8 diff --git a/doc/contributing/maintaining-cjs-module-lexer.md b/doc/contributing/maintaining-cjs-module-lexer.md new file mode 100644 index 00000000000000..43dcfe0d2316d5 --- /dev/null +++ b/doc/contributing/maintaining-cjs-module-lexer.md @@ -0,0 +1,59 @@ +# Maintaining cjs-module-lexer + +The [cjs-module-lexer](https://github.com/nodejs/node/tree/HEAD/deps/cjs-module-lexer) +dependency is used within the Node.js ESM implementation to detect the +named exports of a CommonJS module. + +It is used within +[`node:internal/modules/esm/translators`](https://github.com/nodejs/node/blob/HEAD/lib/internal/modules/esm/translators.js) +in which both `internal/deps/cjs-module-lexer/lexer` and +`internal/deps/cjs-module-lexer/dist/lexer` are required and used. + +`internal/deps/cjs-module-lexer/lexer` +is a regular JavaScript implementation that is +used when WebAssembly is not available on a platform. +`internal/deps/cjs-module-lexer/dist/lexer` is a faster +implementation using WebAssembly which is generated from a +C based implementation. These two paths +resolve to the files in `deps/cjs-module-lexer` due to their +inclusion in the `deps_files` entry in +[node.gyp](https://github.com/nodejs/node/blob/main/node.gyp). + +The two different versions of lexer.js are maintained in the +[nodejs/cjs-module-lexer][] project. + +In order to update the Node.js dependencies to use to a newer verion +of cjs-module-lexer, complete the following steps: + +* Clone [nodejs/cjs-module-lexer][] + and check out the version that you want Node.js to use. +* Follow the WASM build steps outlined in + [wasm-build-steps](https://github.com/nodejs/cjs-module-lexer#wasm-build-steps). + This will generate the WASM based dist/lexer.js file. +* Preserving the same directory structure, copy the following files over + to `deps/cjs-module-lexer` directory where you have checked out Node.js. + +```text +├── CHANGELOG.md +├── dist +│   ├── lexer.js +│   └── lexer.mjs +├── lexer.js +├── LICENSE +├── package.json +└── README.md +``` + +* Update the link to the cjs-module-lexer in the list at the end of + [doc/api/esm.md](../api/esm.md) + to point to the updated version. + +* Create a PR, adding the files in the deps/cjs-module-lexer that + were modified. + +If updates are needed to cjs-module-lexer for Node.js, first PR +those updates into +[nodejs/cjs-module-lexer][], +request a release and then pull in the updated version once available. + +[nodejs/cjs-module-lexer]: https://github.com/nodejs/cjs-module-lexer diff --git a/doc/contributing/maintaining-http.md b/doc/contributing/maintaining-http.md index 0737b2f9880d66..2888367d861103 100644 --- a/doc/contributing/maintaining-http.md +++ b/doc/contributing/maintaining-http.md @@ -74,9 +74,35 @@ to align them with the APIs built for the client. The low-level implementation of the [HTTP](https://nodejs.org/docs/latest/api/http.html) and [HTTPS](https://nodejs.org/docs/latest/api/https.html) APIs -are maintained in the [llttp](https://github.com/nodejs/llhttp) +are maintained in the [llhttp](https://github.com/nodejs/llhttp) repository. Updates are pulled into Node.js under -[deps/llhttp](https://github.com/nodejs/node/tree/HEAD/deps/llhttp) +[deps/llhttp](https://github.com/nodejs/node/tree/HEAD/deps/llhttp). + +In order to update Node.js with a new version of llhttp: + +* check out the tagged release that you want to update to (a release + should be created in the llhttp repo before updating Node.js). +* run `npm install` in the directory that you checked out llhttp. +* run `make release` in the directory that you checked out llhttp. +* copy the contents of the `release` directory from the directory you + checked llhttp out to + [deps/llhttp](https://github.com/nodejs/node/tree/HEAD/deps/llhttp) + +It should look like the following: + +```console +├── CMakeLists.txt +├── common.gypi +├── include +│ └── llhttp.h +├── LICENSE-MIT +├── llhttp.gyp +├── README.md +└── src + ├── api.c + ├── http.c + └── llhttp.c +``` The low-level implementation is made available in the Node.js API through JavaScript code in the [lib](https://github.com/nodejs/node/tree/HEAD/lib) diff --git a/doc/contributing/maintaining-icu.md b/doc/contributing/maintaining-icu.md index 73801f60ffefc5..a8ce43d3a3b4aa 100644 --- a/doc/contributing/maintaining-icu.md +++ b/doc/contributing/maintaining-icu.md @@ -11,6 +11,12 @@ functionality. To quote from icu-project.org: > widely portable and gives applications the same results on all platforms > and between C/C++ and Java software. +If Node.js is configured to use its built-in ICU, +it uses a strict subset of ICU which is in +[deps/icu-small](https://github.com/nodejs/node/tree/HEAD/deps/icu-small). +A good description of the different ways Node.js can be built with ICU +support is in [api/intl.html](https://nodejs.org/api/intl.html). + ## Data dependencies ICU consumes and includes: @@ -51,7 +57,7 @@ files. #### Example: updating the ICU `.dat` file -* Decompress `deps/icu/source/data/in/icudt##l.dat.bz2`, where `##` is +* Decompress `deps/icu-small/source/data/in/icudt##l.dat.bz2`, where `##` is the ICU major version number. * Clone the icu/icu-data repository and copy the latest `tzdata` release `le` files into the `source/data/in` directory. @@ -193,9 +199,9 @@ Floating patches are applied at `configure` time. The "patch" files are used instead of the original source files. The patch files are complete `.cpp` files replacing the original contents. -Patches are tied to a specific ICU version. They won’t apply to a +Patches are tied to a specific ICU version. They won't apply to a future ICU version. We assume that you filed a bug against [ICU][] and -upstreamed the fix, so the patch won’t be needed in a later ICU +upstreamed the fix, so the patch won't be needed in a later ICU version. ### Example diff --git a/doc/contributing/maintaining-npm.md b/doc/contributing/maintaining-npm.md index 5536fd513f8552..a1b6e170dd1e97 100644 --- a/doc/contributing/maintaining-npm.md +++ b/doc/contributing/maintaining-npm.md @@ -41,7 +41,7 @@ Note: please ensure you are only making the updates that are changed by npm. ## Step 4: Apply whitespace fix ```console -$ git rebase --whitespace=fix master +$ git rebase --whitespace=fix main ``` ## Step 5: Test the build diff --git a/doc/contributing/maintaining-openssl.md b/doc/contributing/maintaining-openssl.md index 9228b9c6bb107c..feef99753b2452 100644 --- a/doc/contributing/maintaining-openssl.md +++ b/doc/contributing/maintaining-openssl.md @@ -5,7 +5,7 @@ This document describes how to update `deps/openssl/`. If you need to provide updates across all active release lines you will currently need to generate four PRs as follows: -* a PR for master which is generated following the instructions +* a PR for `main` which is generated following the instructions below for OpenSSL 3.x.x. * a PR for 16.x following the instructions in the v16.x-staging version of this guide. diff --git a/doc/contributing/maintaining-shared-library-support.md b/doc/contributing/maintaining-shared-library-support.md new file mode 100644 index 00000000000000..a2e0e4d4805d1f --- /dev/null +++ b/doc/contributing/maintaining-shared-library-support.md @@ -0,0 +1,117 @@ +# Maintaining shared library support + +Node.js unofficially supports a build option where Node.js is built as +a shared library. The shared library is called libnode with additional postfixes +as appropriate for the platform (for example libnode.dll on windows). +The shared library provides a way to embed Node.js into other +applications and to have multiple applications use a single copy of +Node.js instead of having to bundle in the full Node.js footprint +into each application. For workloads that require multiple Node.js +instances this can result in a significant footprint savings. + +This document provides an outline of the approach and things to look +out for when maintaining the shared library support. + +Currently, shared library support has only been tested on: + +* Linux +* macOS +* Windows +* AIX + +## Building with shared library option + +On non-Windows platforms, Node.js is built with the shared library +option by adding `--shared` to the configure step. On Windows +platforms Node.js is built with the shared library option by +adding `dll` to the vcbuild command line. + +Once built there are two key components: + +* executable - node +* library - libnode + +The node executable is a thin wrapper around libnode which is +generated so that we can run the standard Node.js test suite +against the shared library. + +The executable and library will have extensions as appropriate +for the platform on which they are built. For +example, node.exe on windows and node on other platforms for +the executable. + +libnode may have additional naming components, as an example +in a build on macOS `libnode.105.dylib`. For non-windows platforms +the additional naming components include the `NODE_MODULE_VERSION` and +the appropriate postfix used for shared libraries on the platform. + +In cases where an application links against the shared +library it is up to the application developer to add options +so that the shared library can be found by the application or +to set the LIBPATH (AIX), LD\_LIBRARY\_PATH (Linux/Unix), etc. +so that it is found at runtime. + +For the node wrapper, on linux and macOS it is built +so that it can find the shared library in one of +the following: + +* the same directory as the node executable +* ../lib with the expectation that the executable is + installed in a `bin` directory at the same level + as a `lib` directory in which the shared library is + installed. This is where the default package that + is build with the shared library option will + place the executable and library. + +For the node wrapper on windows it is built expecting +that both the executable and shared library will +be in the same directory as it common practice on +that platform. + +For the node wrapper on AIX, it is built with +the path to the shared library hardcoded as that +is the only option. + +## Exports + +On windows, functions that may be linked from native +addons or additional Node.js executables need to have +NODE\_EXTERN\_PRIVATE or NODE\_EXTERN otherwise they will +not be exported by the shared library. In the case of +functions used by additional Node.js executables +(ex: `mksnapshot`) a missing NODE\_EXTERN or +NODE\_EXTERN\_PRIVATE will cause the build to fail. +NODE\_EXTERN\_PRIVATE should be used in these cases +unless the intent is to add the function to the +public embedder API. + +## Native addons + +For regular Node.js builds, running native addons relies on symbols +exported by the node executable. As a result any +pre-built binaries expect symbols to be exported from the executable +instead of the shared library itself. + +The node executable and shared library are built and linked +so that the required symbols are exported from the node +executable. This requires some extra work on some platforms +and the process to build the node executable is a good example +of how this can be achieved. Applications that use the shared +library and want to support native addons should employ +a similar technique. + +## Testing + +There is currently no testing in the regular CI run for PRs. There +are some CI jobs that can be used to test the shared library support and +some are run as part of daily testing. These include: + +* [node-test-commit-linux-as-shared-lib](https://ci.nodejs.org/view/Node.js%20Daily/job/node-test-commit-linux-as-shared-lib/) +* +* [node-test-commit-aix-shared-lib](https://ci.nodejs.org/view/Node.js%20Daily/job/node-test-commit-aix-shared-lib/) + +TODO: add a Job for windows + +For code that modifies/affects shared library support these CI jobs should +run and it should be validated that there are no regressions in +the test suite. diff --git a/doc/contributing/maintaining-web-assembly.md b/doc/contributing/maintaining-web-assembly.md new file mode 100644 index 00000000000000..c5df8f7c058a75 --- /dev/null +++ b/doc/contributing/maintaining-web-assembly.md @@ -0,0 +1,97 @@ +# Maintaining WebAssembly + +Support for [WebAssembly](https://webassembly.org/) +has been identified as one of the +[top technical priorities](https://github.com/nodejs/node/blob/main/doc/contributing/technical-priorities.md#webassembly) +for the future success of Node.js. + +This document provides an overview of our high-level strategy for +supporting WebAssembly and information about our current implementation +as a starting point for contributors. + +## High-level approach + +The key elements of our WebAssembly strategy include: + +* Up-to-date core WebAssembly support +* Support for high-level APIs +* Making it easy to load WebAssembly +* Making sure the core Node.js APIs are compatible with WebAssembly + and can be called in an efficient manner from WebAssembly + +### Up-to-date core WebAssembly support + +Node.js gets its core WebAssembly support through V8. We don't need +to do anything specific to support this, all we have to do is keep +the version of V8 as up-to-date as possible. + +### Key API support + +As a runtime, Node.js must implement a number of APIs in addition +to the core WebAssembly support in order to be a good choice to run +WebAssembly. The project has currently identified these additional +APIs as important: + +* WebAssembly System Interface (WASI). This provides the ability for + WebAssembly to interact with the outside world. Node.js currently + has an implementation (see below for more details). +* [WebAssembly Web API](https://www.w3.org/TR/wasm-web-api-1/). Node.js + currently has an implementation of streaming module compilation and + instantiation. As this and other specifications evolve, keeping up with them + will be important. +* [WebAssembly Component Model](https://github.com/WebAssembly/component-model/). + This API is still in the definition stage but the project should + keep track of its development as a way to simplify native code + integration. + +### Making it as easy as possible to load WASM + +The most important thing we can do on this front is to either find and +reference resources or provide resources on how to: + +* Compile your WebAssembly code (outside of Node.js) and integrate that + into an npm workflow. +* Load and run WebAssembly code in your Node.js application. + +It is also important to support and track the ongoing work in ESM to enable +loading of WebAssembly with ESM. + +### Making sure the core Node.js APIs are compatible with WebAssembly + +Use cases for which Node.js will be a good runtime will include code +both in JavaScript and compiled into WebAssembly. It is important +that Node.js APIs are able to be called from WebAssembly in +an efficient manner without extra buffer copies. We need to: + +* Review APIs and identify those that can be called often from + WebAssembly. +* Where appropriate, make additions to identified APIs to allow + a pre-existing buffer to be passed in order to avoid copies. + +## Current implementation and assets + +### WebAssembly System Interface (WASI) + +The Node.js WASI implementation is maintained in the +[uvwasi](https://github.com/nodejs/uvwasi) repository in the +Node.js GitHub organization. As needed, an updated copy +is vendored into the Node.js deps in +[deps/uvwasi](https://github.com/nodejs/node/tree/main/deps/uvwasi). + +To update the copy of uvwasi in the Node.js deps: + +* Copy over the contents of `include` and `src` to the corresponding + directories. +* Check if any additional files have been added and need to be added + to the `sources` list in `deps/uvwasi/uvwasi.gyp`. + +In addition to the code from uvwasi, Node.js includes bindings and +APIs that allow WebAssembly to be run with WASI support from Node.js. +The documentation for this API is in +[WebAssembly System Interface (WASI)](https://nodejs.org/api/wasi.html). + +The implementation of the bindings and the public API is in: + +* [src/node\_wasi.h](https://github.com/nodejs/node/blob/main/src/node_wasi.h) +* [src/node\_wasi.cc](https://github.com/nodejs/node/blob/main/src/node_wasi.cc) +* [lib/wasi.js](https://github.com/nodejs/node/blob/main/lib/wasi.js) diff --git a/doc/contributing/primordials.md b/doc/contributing/primordials.md new file mode 100644 index 00000000000000..e93d224495a53f --- /dev/null +++ b/doc/contributing/primordials.md @@ -0,0 +1,731 @@ +# Usage of primordials in core + +The file `lib/internal/per_context/primordials.js` subclasses and stores the JS +built-ins that come from the VM so that Node.js built-in modules do not need to +later look these up from the global proxy, which can be mutated by users. + +Usage of primordials should be preferred for any new code, but replacing current +code with primordials should be +[done with care](#primordials-with-known-performance-issues). It is highly +recommended to ping the relevant team when reviewing a pull request that touches +one of the subsystems they "own". + +## Accessing primordials + +The primordials are meant for internal use only, and are only accessible for +internal core modules. User code cannot use or rely on primordials. It is +usually fine to rely on ECMAScript built-ins and assume that it will behave as +specified. + +If you would like to access the `primordials` object to help you with Node.js +core development or for tinkering, you can expose it on the global scope using +this combination of CLI flags: + +```bash +node --expose-internals -r internal/test/binding +``` + +## Contents of primordials + +### Properties of the global object + +Objects and functions on the global object can be deleted or replaced. Using +them from primordials makes the code more reliable: + +```js +globalThis.Array === primordials.Array; // true + +globalThis.Array = function() { + return [1, 2, 3]; +}; +globalThis.Array === primordials.Array; // false + +primordials.Array(0); // [] +globalThis.Array(0); // [1,2,3] +``` + +### Prototype methods + +ECMAScript provides a group of methods available on built-in objects that are +used to interact with JavaScript objects. + +```js +const array = [1, 2, 3]; +array.push(4); // Here `push` refers to %Array.prototype.push%. +console.log(JSON.stringify(array)); // [1,2,3,4] + +// %Array.prototype%.push is modified in userland. +Array.prototype.push = function push(val) { + return this.unshift(val); +}; + +array.push(5); // Now `push` refers to the modified method. +console.log(JSON.stringify(array)); // [5,1,2,3,4] +``` + +Primordials wrap the original prototype functions with new functions that take +the `this` value as the first argument: + +```js +const { + ArrayPrototypePush, +} = primordials; + +const array = [1, 2, 3]; +ArrayPrototypePush(array, 4); +console.log(JSON.stringify(array)); // [1,2,3,4] + +Array.prototype.push = function push(val) { + return this.unshift(val); +}; + +ArrayPrototypePush(array, 5); +console.log(JSON.stringify(array)); // [1,2,3,4,5] +``` + +### Safe classes + +Safe classes are classes that provide the same API as their equivalent class, +but whose implementation aims to avoid any reliance on user-mutable code. +Safe classes should not be exposed to user-land; use unsafe equivalent when +dealing with objects that are accessible from user-land. + +### Variadic functions + +There are some built-in functions that accept a variable number of arguments +(e.g.: `Math.max`, `%Array.prototype.push%`). It is sometimes useful to provide +the list of arguments as an array. You can use primordial function with the +suffix `Apply` (e.g.: `MathMaxApply`, `ArrayPrototypePushApply`) to do that. + +## Primordials with known performance issues + +One of the reasons why the current Node.js API is not completely tamper-proof is +performance: sometimes the use of primordials can cause performance regressions +with V8, which when in a hot code path, could significantly decrease the +performance of code in Node.js. + +* Methods that mutate the internal state of arrays: + * `ArrayPrototypePush` + * `ArrayPrototypePop` + * `ArrayPrototypeShift` + * `ArrayPrototypeUnshift` +* Methods of the function prototype: + * `FunctionPrototypeBind` + * `FunctionPrototypeCall`: creates performance issues when used to invoke + super constructors. + * `FunctionPrototype`: use `() => {}` instead when referencing a no-op + function. +* `SafeArrayIterator` +* `SafeStringIterator` +* `SafePromiseAll` +* `SafePromiseAllSettled` +* `SafePromiseAny` +* `SafePromiseRace` +* `SafePromisePrototypeFinally`: use `try {} finally {}` block instead. + +In general, when sending or reviewing a PR that makes changes in a hot code +path, use extra caution and run extensive benchmarks. + +## Implicit use of user-mutable methods + +### Unsafe array iteration + +There are many usual practices in JavaScript that rely on iteration. It's useful +to be aware of them when dealing with arrays (or `TypedArray`s) in core as array +iteration typically calls several user-mutable methods. This sections lists the +most common patterns in which ECMAScript code relies non-explicitly on array +iteration and how to avoid it. + +
    + +Avoid for-of loops on arrays + +```js +for (const item of array) { + console.log(item); +} +``` + +This code is internally expanded into something that looks like: + +```js +{ + // 1. Lookup @@iterator property on `array` (user-mutable if user-provided). + // 2. Lookup @@iterator property on %Array.prototype% (user-mutable). + // 3. Call that function. + const iterator = array[Symbol.iterator](); + // 1. Lookup `next` property on `iterator` (doesn't exist). + // 2. Lookup `next` property on %ArrayIteratorPrototype% (user-mutable). + // 3. Call that function. + let { done, value: item } = iterator.next(); + while (!done) { + console.log(item); + // Repeat. + ({ done, value: item } = iterator.next()); + } +} +``` + +Instead of utilizing iterators, you can use the more traditional but still very +performant `for` loop: + +```js +for (let i = 0; i < array.length; i++) { + console.log(array[i]); +} +``` + +The following code snippet illustrates how user-land code could impact the +behavior of internal modules: + +```js +// User-land +Array.prototype[Symbol.iterator] = () => ({ + next: () => ({ done: true }), +}); + +// Core +let forOfLoopBlockExecuted = false; +let forLoopBlockExecuted = false; +const array = [1, 2, 3]; +for (const item of array) { + forOfLoopBlockExecuted = true; +} +for (let i = 0; i < array.length; i++) { + forLoopBlockExecuted = true; +} +console.log(forOfLoopBlockExecuted); // false +console.log(forLoopBlockExecuted); // true +``` + +This only applies if you are working with a genuine array (or array-like +object). If you are instead expecting an iterator, a for-of loop may be a better +choice. + +
    + +
    + +Avoid array destructuring assignment on arrays + +```js +const [first, second] = array; +``` + +This is roughly equivalent to: + +```js +// 1. Lookup @@iterator property on `array` (user-mutable if user-provided). +// 2. Lookup @@iterator property on %Array.prototype% (user-mutable). +// 3. Call that function. +const iterator = array[Symbol.iterator](); +// 1. Lookup `next` property on `iterator` (doesn't exist). +// 2. Lookup `next` property on %ArrayIteratorPrototype% (user-mutable). +// 3. Call that function. +const first = iterator.next().value; +// Repeat. +const second = iterator.next().value; +``` + +Instead you can use object destructuring: + +```js +const { 0: first, 1: second } = array; +``` + +or + +```js +const first = array[0]; +const second = array[1]; +``` + +This only applies if you are working with a genuine array (or array-like +object). If you are instead expecting an iterator, array destructuring is the +best choice. + +
    + +
    + +Avoid spread operator on arrays + +```js +// 1. Lookup @@iterator property on `array` (user-mutable if user-provided). +// 2. Lookup @@iterator property on %Array.prototype% (user-mutable). +// 3. Lookup `next` property on %ArrayIteratorPrototype% (user-mutable). +const arrayCopy = [...array]; +func(...array); +``` + +Instead you can use other ECMAScript features to achieve the same result: + +```js +const arrayCopy = ArrayPrototypeSlice(array); +ReflectApply(func, null, array); +``` + +
    + +
    + +%Array.prototype.concat% looks up + @@isConcatSpreadable property of the passed + arguments and the this value. + +```js +{ + // Unsafe code example: + // 1. Lookup @@isConcatSpreadable property on `array` (user-mutable if + // user-provided). + // 2. Lookup @@isConcatSpreadable property on `%Array.prototype% + // (user-mutable). + // 2. Lookup @@isConcatSpreadable property on `%Object.prototype% + // (user-mutable). + const array = []; + ArrayPrototypeConcat(array); +} +``` + +```js +// User-land +Object.defineProperty(Object.prototype, Symbol.isConcatSpreadable, { + get() { + this.push(5); + return true; + }, +}); + +// Core +{ + // Using ArrayPrototypeConcat does not produce the expected result: + const a = [1, 2]; + const b = [3, 4]; + console.log(ArrayPrototypeConcat(a, b)); // [1, 2, 5, 3, 4, 5] +} +{ + // Concatenating two arrays can be achieved safely, e.g.: + const a = [1, 2]; + const b = [3, 4]; + // Using %Array.prototype.push% and `SafeArrayIterator` to get the expected + // outcome: + const concatArray = []; + ArrayPrototypePush(concatArray, ...new SafeArrayIterator(a), + ...new SafeArrayIterator(b)); + console.log(concatArray); // [1, 2, 3, 4] + + // Or using `ArrayPrototypePushApply` if it's OK to mutate the first array: + ArrayPrototypePushApply(a, b); + console.log(a); // [1, 2, 3, 4] +} +``` + +
    + +
    + +%Object.fromEntries% iterate over an array + +```js +{ + // Unsafe code example: + // 1. Lookup @@iterator property on `array` (user-mutable if user-provided). + // 2. Lookup @@iterator property on %Array.prototype% (user-mutable). + // 3. Lookup `next` property on %ArrayIteratorPrototype% (user-mutable). + const obj = ObjectFromEntries(array); +} + +{ + // Safe example using `SafeArrayIterator`: + const obj = ObjectFromEntries(new SafeArrayIterator(array)); +} + +{ + // Safe example without using `SafeArrayIterator`: + const obj = {}; + for (let i = 0; i < array.length; i++) { + obj[array[i][0]] = array[i][1]; + } + // In a hot code path, this would be the preferred method. +} +``` + +
    + +
    + +%Promise.all%, + %Promise.allSettled%, + %Promise.any%, and + %Promise.race% iterate over an array + +```js +// 1. Lookup @@iterator property on `array` (user-mutable if user-provided). +// 2. Lookup @@iterator property on %Array.prototype% (user-mutable). +// 3. Lookup `next` property on %ArrayIteratorPrototype% (user-mutable). +PromiseAll(array); // unsafe + +PromiseAll(new SafeArrayIterator(array)); +SafePromiseAll(array); // safe +``` + +
    + +
    + +%Map%, %Set%, %WeakMap%, and + %WeakSet% constructors iterate over an array + +```js +// User-land +Array.prototype[Symbol.iterator] = () => ({ + next: () => ({ done: true }), +}); + +// Core + +// 1. Lookup @@iterator property on %Array.prototype% (user-mutable). +// 2. Lookup `next` property on %ArrayIteratorPrototype% (user-mutable). +const set = new SafeSet([1, 2, 3]); + +console.log(set.size); // 0 +``` + +```js +// User-land +Array.prototype[Symbol.iterator] = () => ({ + next: () => ({ done: true }), +}); + +// Core +const set = new SafeSet(); +set.add(1).add(2).add(3); +console.log(set.size); // 3 +``` + +
    + +### Promise objects + +
    + +%Promise.prototype.finally% looks up then + property of the Promise instance + +```js +// User-land +Promise.prototype.then = function then(a, b) { + return Promise.resolve(); +}; + +// Core +let finallyBlockExecuted = false; +PromisePrototypeFinally(somePromiseThatEventuallySettles, + () => { finallyBlockExecuted = true; }); +process.on('exit', () => console.log(finallyBlockExecuted)); // false +``` + +```js +// User-land +Promise.prototype.then = function then(a, b) { + return Promise.resolve(); +}; + +// Core +let finallyBlockExecuted = false; +(async () => { + try { + return await somePromiseThatEventuallySettles; + } finally { + finallyBlockExecuted = true; + } +})(); +process.on('exit', () => console.log(finallyBlockExecuted)); // true +``` + +
    + +
    + +%Promise.all%, + %Promise.allSettled%, + %Promise.any%, and + %Promise.race% look up then + property of the Promise instances + +You can use safe alternatives from primordials that differ slightly from the +original methods: + +* It expects an array (or array-like object) instead of an iterable. +* It wraps each promise in `SafePromise` objects and wraps the result in a new + `Promise` instance – which may come with a performance penalty. +* Because it doesn't look up `then` property, it may not be the right tool to + handle user-provided promises (which may be instances of a subclass of + `Promise`). + +```js +// User-land +Promise.prototype.then = function then(a, b) { + return Promise.resolve(); +}; + +// Core +let thenBlockExecuted = false; +PromisePrototypeThen( + PromiseAll(new SafeArrayIterator([PromiseResolve()])), + () => { thenBlockExecuted = true; } +); +process.on('exit', () => console.log(thenBlockExecuted)); // false +``` + +```js +// User-land +Promise.prototype.then = function then(a, b) { + return Promise.resolve(); +}; + +// Core +let thenBlockExecuted = false; +PromisePrototypeThen( + SafePromiseAll([PromiseResolve()]), + () => { thenBlockExecuted = true; } +); +process.on('exit', () => console.log(thenBlockExecuted)); // true +``` + +
    + +### (Async) Generator functions + +Generators and async generators returned by generator functions and async +generator functions are relying on user-mutable methods; their use in core +should be avoided. + +
    + +%GeneratorFunction.prototype.prototype%.next is + user-mutable + +```js +// User-land +Object.getPrototypeOf(function* () {}).prototype.next = function next() { + return { done: true }; +}; + +// Core +function* someGenerator() { + yield 1; + yield 2; + yield 3; +} +let loopCodeExecuted = false; +for (const nb of someGenerator()) { + loopCodeExecuted = true; +} +console.log(loopCodeExecuted); // false +``` + +
    + +
    + +%AsyncGeneratorFunction.prototype.prototype%.next is + user-mutable + +```js +// User-land +Object.getPrototypeOf(async function* () {}).prototype.next = function next() { + return new Promise(() => {}); +}; + +// Core +async function* someGenerator() { + yield 1; + yield 2; + yield 3; +} +let finallyBlockExecuted = false; +async () => { + try { + for await (const nb of someGenerator()) { + // some code; + } + } finally { + finallyBlockExecuted = true; + } +}; +process.on('exit', () => console.log(finallyBlockExecuted)); // false +``` + +
    + +### Text processing + +#### Unsafe string methods + +| The string method | looks up the property | +| ----------------------------- | --------------------- | +| `String.prototype.match` | `Symbol.match` | +| `String.prototype.matchAll` | `Symbol.matchAll` | +| `String.prototype.replace` | `Symbol.replace` | +| `String.prototype.replaceAll` | `Symbol.replace` | +| `String.prototype.search` | `Symbol.search` | +| `String.prototype.split` | `Symbol.split` | + +```js +// User-land +RegExp.prototype[Symbol.replace] = () => 'foo'; +String.prototype[Symbol.replace] = () => 'baz'; + +// Core +console.log(StringPrototypeReplace('ber', /e/, 'a')); // 'foo' +console.log(StringPrototypeReplace('ber', 'e', 'a')); // 'baz' +console.log(RegExpPrototypeSymbolReplace(/e/, 'ber', 'a')); // 'bar' +``` + +#### Unsafe string iteration + +As with arrays, iterating over strings calls several user-mutable methods. Avoid +iterating over strings when possible, or use `SafeStringIterator`. + +#### Unsafe `RegExp` methods + +Functions that lookup the `exec` property on the prototype chain: + +* `RegExp.prototype[Symbol.match]` +* `RegExp.prototype[Symbol.matchAll]` +* `RegExp.prototype[Symbol.replace]` +* `RegExp.prototype[Symbol.search]` +* `RegExp.prototype[Symbol.split]` +* `RegExp.prototype.test` + +```js +// User-land +RegExp.prototype.exec = () => null; + +// Core +console.log(RegExpPrototypeTest(/o/, 'foo')); // false +console.log(RegExpPrototypeExec(/o/, 'foo') !== null); // true +``` + +#### Don't trust `RegExp` flags + +RegExp flags are not own properties of the regex instances, which means flags +can be reset from user-land. + +
    + +List of RegExp methods that look up properties from + mutable getters + +| `RegExp` method | looks up the following flag-related properties | +| ------------------------------ | ------------------------------------------------------------------ | +| `get RegExp.prototype.flags` | `global`, `ignoreCase`, `multiline`, `dotAll`, `unicode`, `sticky` | +| `RegExp.prototype[@@match]` | `global`, `unicode` | +| `RegExp.prototype[@@matchAll]` | `flags` | +| `RegExp.prototype[@@replace]` | `global`, `unicode` | +| `RegExp.prototype[@@split]` | `flags` | +| `RegExp.prototype.toString` | `flags` | + +
    + +```js +// User-land +Object.defineProperty(RegExp.prototype, 'global', { value: false }); + +// Core +console.log(RegExpPrototypeSymbolReplace(/o/g, 'foo', 'a')); // 'fao' + +const regex = /o/g; +ObjectDefineProperties(regex, { + dotAll: { value: false }, + exec: { value: undefined }, + flags: { value: 'g' }, + global: { value: true }, + ignoreCase: { value: false }, + multiline: { value: false }, + unicode: { value: false }, + sticky: { value: false }, +}); +console.log(RegExpPrototypeSymbolReplace(regex, 'foo', 'a')); // 'faa' +``` + +### Defining object own properties + +When defining property descriptor (to add or update an own property to a +JavaScript object), be sure to always use a null-prototype object to avoid +prototype pollution. + +```js +// User-land +Object.prototype.get = function get() {}; + +// Core +try { + ObjectDefineProperty({}, 'someProperty', { value: 0 }); +} catch (err) { + console.log(err); // TypeError: Invalid property descriptor. +} +``` + +```js +// User-land +Object.prototype.get = function get() {}; + +// Core +ObjectDefineProperty({}, 'someProperty', { __proto__: null, value: 0 }); +console.log('no errors'); // no errors. +``` + +Same applies when trying to modify an existing property, e.g. trying to make a +read-only property enumerable: + +```js +// User-land +Object.prototype.value = 'Unrelated user-provided data'; + +// Core +class SomeClass { + get readOnlyProperty() { return 'genuine data'; } +} +ObjectDefineProperty(SomeClass.prototype, 'readOnlyProperty', { enumerable: true }); +console.log(new SomeClass().readOnlyProperty); // Unrelated user-provided data +``` + +```js +// User-land +Object.prototype.value = 'Unrelated user-provided data'; + +// Core +const kEnumerableProperty = { __proto__: null, enumerable: true }; +// In core, use const {kEnumerableProperty} = require('internal/util'); +class SomeClass { + get readOnlyProperty() { return 'genuine data'; } +} +ObjectDefineProperty(SomeClass.prototype, 'readOnlyProperty', kEnumerableProperty); +console.log(new SomeClass().readOnlyProperty); // genuine data +``` + +### Defining a `Proxy` handler + +When defining a `Proxy`, the handler object could be at risk of prototype +pollution when using a plain object literal: + +```js +// User-land +Object.prototype.get = () => 'Unrelated user-provided data'; + +// Core +const objectToProxy = { someProperty: 'genuine value' }; + +const proxyWithPlainObjectLiteral = new Proxy(objectToProxy, { + has() { return false; }, +}); +console.log(proxyWithPlainObjectLiteral.someProperty); // Unrelated user-provided data + +const proxyWithNullPrototypeObject = new Proxy(objectToProxy, { + __proto__: null, + has() { return false; }, +}); +console.log(proxyWithNullPrototypeObject.someProperty); // genuine value +``` diff --git a/doc/contributing/pull-requests.md b/doc/contributing/pull-requests.md index 7a9e1a051e7b50..403c9aa7daf24f 100644 --- a/doc/contributing/pull-requests.md +++ b/doc/contributing/pull-requests.md @@ -46,7 +46,7 @@ Node.js has many channels on the [OpenJS Foundation Slack](https://slack-invite.openjsf.org/). Interesting channels are: [#nodejs](https://openjs-foundation.slack.com/archives/CK9Q4MB53) for general -help, questions and discussions. +help, questions, and discussions. [#nodejs-dev](https://openjs-foundation.slack.com/archives/C019Y2T6STH) for development of Node.js core specifically. @@ -190,7 +190,7 @@ A good commit message should describe what changed and why. 5. If your commit introduces a breaking change (`semver-major`), it should contain an explanation about the reason of the breaking change, which - situation would trigger the breaking change and what is the exact change. + situation would trigger the breaking change, and what is the exact change. Sample complete commit message: @@ -319,7 +319,7 @@ There are a number of more advanced mechanisms for managing commits using Feel free to post a comment in the pull request to ping reviewers if you are awaiting an answer on something. If you encounter words or acronyms that seem unfamiliar, refer to this -[glossary](https://sites.google.com/a/chromium.org/dev/glossary). +[glossary](https://github.com/nodejs/node/blob/HEAD/glossary.md). #### Approval and request changes workflow @@ -336,7 +336,7 @@ say so, or contact one of the other contributors in the project and seek their input. Often such comments are the result of the reviewer having only taken a short amount of time to review and are not ill-intended. Such issues can often be resolved with a bit of patience. That said, reviewers should be expected to -be helpful in their feedback, and feedback that is simply vague, dismissive and +be helpful in their feedback, and feedback that is simply vague, dismissive, and unhelpful is likely safe to ignore. ### Step 10: Landing @@ -393,7 +393,7 @@ Focus first on the most significant aspects of the change: When changes are necessary, _request_ them, do not _demand_ them, and do not assume that the submitter already knows how to add a test or run a benchmark. -Specific performance optimization techniques, coding styles and conventions +Specific performance optimization techniques, coding styles, and conventions change over time. The first impression you give to a new contributor never does. Nits (requests for small changes that are not essential) are fine, but try to diff --git a/doc/contributing/releases.md b/doc/contributing/releases.md index 44a2eba83f1394..cbe547a0fc8ac1 100644 --- a/doc/contributing/releases.md +++ b/doc/contributing/releases.md @@ -25,7 +25,7 @@ official release builds for Node.js, hosted on . * [10. Test the build](#10-test-the-build) * [11. Tag and sign the release commit](#11-tag-and-sign-the-release-commit) * [12. Set up for the next release](#12-set-up-for-the-next-release) - * [13. Cherry-pick the release commit to `master`](#13-cherry-pick-the-release-commit-to-master) + * [13. Cherry-pick the release commit to `main`](#13-cherry-pick-the-release-commit-to-main) * [14. Push the release tag](#14-push-the-release-tag) * [15. Promote and sign the release builds](#15-promote-and-sign-the-release-builds) * [16. Check the release](#16-check-the-release) @@ -132,7 +132,7 @@ tracker][]. When preparing a security release, contact Build at least two weekdays in advance of the expected release. To ensure that the security patch(es) can be -properly tested, run a `node-test-pull-request` job against the `master` branch +properly tested, run a `node-test-pull-request` job against the `main` branch of the `nodejs-private/node-private` repository a day or so before the [CI lockdown procedure][] begins. This is to confirm that Jenkins can properly access the private repository. @@ -147,7 +147,7 @@ $ git checkout v1.x-staging $ git reset --hard upstream/v1.x-staging ``` -If the staging branch is not up to date relative to `master`, bring the +If the staging branch is not up to date relative to `main`, bring the appropriate PRs and commits into it. Go through PRs with the label `vN.x`. e.g. [PRs with the `v8.x` label](https://github.com/nodejs/node/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc+label%3Av8.x). @@ -156,7 +156,7 @@ For each PR: * Run or check that there is a passing CI. * Check approvals (you can approve yourself). -* Check that the commit metadata was not changed from the `master` commit. +* Check that the commit metadata was not changed from the `main` commit. * If there are merge conflicts, ask the PR author to rebase. Simple conflicts can be resolved when landing. @@ -175,7 +175,7 @@ duplicate or not. For a list of commits that could be landed in a patch release on v1.x: ```console -$ branch-diff v1.x-staging master --exclude-label=semver-major,semver-minor,dont-land-on-v1.x,backport-requested-v1.x,backport-blocked-v1.x,backport-open-v1.x,backported-to-v1.x --filter-release --format=simple +$ branch-diff v1.x-staging main --exclude-label=semver-major,semver-minor,dont-land-on-v1.x,backport-requested-v1.x,backport-blocked-v1.x,backport-open-v1.x,backported-to-v1.x --filter-release --format=simple ``` Previously released commits and version bumps do not need to be @@ -195,7 +195,7 @@ command. (For semver-minor releases, make sure to remove the `semver-minor` tag from `exclude-label`.) ```console -$ branch-diff v1.x-staging master --exclude-label=semver-major,semver-minor,dont-land-on-v1.x,backport-requested-v1.x,backport-blocked-v1.x,backport-open-v1.x,backported-to-v1.x --filter-release --format=sha --reverse | xargs git cherry-pick +$ branch-diff v1.x-staging main --exclude-label=semver-major,semver-minor,dont-land-on-v1.x,backport-requested-v1.x,backport-blocked-v1.x,backport-open-v1.x,backported-to-v1.x --filter-release --format=sha --reverse | xargs git cherry-pick ``` When cherry-picking commits, if there are simple conflicts you can resolve @@ -359,6 +359,8 @@ YYYY-MM-DD, Version x.y.z (Release Type) Notable changes: * Copy the notable changes list here, reformatted for plain-text + +PR-URL: TBD ``` For security releases, begin the commit message with the phrase @@ -374,6 +376,8 @@ This is a security release. Notable changes: * Copy the notable changes list here, reformatted for plain-text + +PR-URL: TBD ``` ### 6. Propose release on GitHub @@ -383,7 +387,7 @@ release branches to more easily be passed between members of the release team if necessary. Create a pull request targeting the correct release line. For example, a -`v5.3.0-proposal` PR should target `v5.x`, not master. Paste the CHANGELOG +`v5.3.0-proposal` PR should target `v5.x`, not `main`. Paste the CHANGELOG modifications into the body of the PR so that collaborators can see what is changing. These PRs should be left open for at least 24 hours, and can be updated as new commits land. If the CHANGELOG pasted into the pull request @@ -536,10 +540,10 @@ $ git rebase v1.x $ git push upstream v1.x-staging ``` -### 13. Cherry-pick the release commit to `master` +### 13. Cherry-pick the release commit to `main` ```console -$ git checkout master +$ git checkout main $ git cherry-pick v1.x^ ``` @@ -561,10 +565,10 @@ Then finish cherry-picking and push the commit upstream: $ git add src/node_version.h doc $ git cherry-pick --continue $ make lint -$ git push upstream master +$ git push upstream main ``` -**Do not** cherry-pick the "Working on vx.y.z" commit to `master`. +**Do not** cherry-pick the "Working on vx.y.z" commit to `main`. ### 14. Push the release tag @@ -794,8 +798,8 @@ announced immediately following the release of 12.0.0). Approximately two months before a major release, new `vN.x` and `vN.x-staging` branches (where `N` indicates the major release) should be -created as forks of the `master` branch. Up until one week before the release -date, these must be kept in sync with `master`. +created as forks of the `main` branch. Up until one week before the release +date, these must be kept in sync with `main`. The `vN.x` and `vN.x-staging` branches must be kept in sync with one another up until the date of the release. diff --git a/doc/contributing/security-model-strategy.md b/doc/contributing/security-model-strategy.md new file mode 100644 index 00000000000000..42caadc8deb856 --- /dev/null +++ b/doc/contributing/security-model-strategy.md @@ -0,0 +1,77 @@ +# Security Model Strategy + +A clear security model, with features like permissions and policy enforcement, +is a +[top technical priority](https://github.com/nodejs/node/blob/HEAD/doc/contributing/technical-priorities.md#permissionspoliciessecurity-model) +of Node.js. + +## High-level approach + +* Document the security model +* Document threat models and current state of the art +* Support experimentation on features like permissions and policies +* Add a security component in Node.js certification covering + the Node.js security model + +### Document the security model + +The current security model for Node.js is not yet well documented. +At a high level it is: + +* Node.js does not provide a sandbox, both the JavaScript and + native code which is run is trusted to not be malicious. +* The project works to help code running on top of Node.js to avoid + making mistakes, but not doing so is not considered a + vulnerability in Node.js. Just because you can build something + vulnerable with the APIs does not mean there is a vulnerability + in Node.js itself. + +The project has a goal to better document the security model +and this section will be expanded when that happens. + +Once the security model is documented the project will work +to add a security component in Node.js certification covering +the Node.js security model. + +### Document threat models and current state of the art + +Node.js is used in several different use cases and the +threats may be different in each use case. The project +should document the threat models and use that to +help define the security model in the context of each +of these use cases. + +This section will be expanded as the use case/threat +models are defined. The initial list includes: + +* Server +* Desktop application +* Cli +* Single executable application +* CI/CD pipeline components + +### Support experimentation on features like permissions and policies + +The project is not currently planning to provide supported +sandbox functionality, but wants to support experimentation on +related features like policies and permission enforcement. + +Features in this category should: + +* be opt-in, and additional overhead when not enabled must be low +* limit change in core to just what is needed to enable experimentation + +## Current implementation and assets + +Node.js has an experimental implementation of +[policies](https://nodejs.org/docs/latest/api/policy.html#policies). + +The core implementation is in: + +* [`lib/internal/process/policy.js`](https://github.com/nodejs/node/blob/HEAD/lib/internal/process/policy.js) +* [`lib/internal/policy`](https://github.com/nodejs/node/blob/HEAD/lib/internal/policy) + +along with integration into the CJS and ESM loaders in: + +* [`lib/internal/modules/esm`](https://github.com/nodejs/node/blob/HEAD/lib/internal/modules/esm) +* [`lib/internal/modules/cjs`](https://github.com/nodejs/node/blob/HEAD/lib/internal/modules/cjs) diff --git a/doc/contributing/security-release-process.md b/doc/contributing/security-release-process.md index 1fe257181b6fb8..74daa87ee8081c 100644 --- a/doc/contributing/security-release-process.md +++ b/doc/contributing/security-release-process.md @@ -19,14 +19,14 @@ steps listed in the process as outlined in The current security stewards are documented in the main Node.js [README.md](https://github.com/nodejs/node#security-release-stewards). -| Company | Person | Release Date | -| ---------- | -------- | ------------ | -| NearForm | Matteo | 2021-Oct-12 | -| Datadog | Bryan | 2022-Jan-10 | -| RH and IBM | Joe | | -| NearForm | Matteo | | -| Datadog | Vladimir | | -| RH and IBM | Michael | | +| Company | Person | Release Date | +| ---------- | --------------- | ------------ | +| NearForm | Matteo | 2021-Oct-12 | +| Datadog | Bryan | 2022-Jan-10 | +| RH and IBM | Joe | 2022-Mar-18 | +| NearForm | Matteo / Rafael | | +| Datadog | Vladimir | | +| RH and IBM | Michael | | ## Planning @@ -183,6 +183,10 @@ out a better way, forward the email you receive to * [ ] Make sure the PRs for the vulnerabilities are closed. +* [ ] PR in that you stewarded the release in + [Security release stewards](https://github.com/nodejs/node/blob/HEAD/doc/contributing/security-release-process.md#security-release-stewards). + If necessary add the next rotation of the steward rotation. + [H1 CVE requests]: https://hackerone.com/nodejs/cve_requests [docker-node]: https://github.com/nodejs/docker-node/issues [email]: https://groups.google.com/forum/#!forum/nodejs-sec diff --git a/doc/contributing/strategic-initiatives.md b/doc/contributing/strategic-initiatives.md index ce9fe28bef8804..5e9cf20786782c 100644 --- a/doc/contributing/strategic-initiatives.md +++ b/doc/contributing/strategic-initiatives.md @@ -6,14 +6,14 @@ agenda to ensure they are active and have the support they need. ## Current initiatives -| Initiative | Champion | Links | -| ------------------------- | --------------------------- | -------------------------------------------------------------------------------------------- | -| Core Promise APIs | [Antoine du Hamel][aduh95] | | -| Future of Build Toolchain | [Mary Marchini][mmarchini] | , | -| QUIC / HTTP3 | [James M Snell][jasnell] | | -| Startup performance | [Joyee Cheung][joyeecheung] | | -| V8 Currency | [Michaël Zasso][targos] | | -| Next-10 | [Michael Dawson][mhdawson] | | +| Initiative | Champion | Links | +| ------------------- | --------------------------- | --------------------------------------------- | +| Core Promise APIs | [Antoine du Hamel][aduh95] | | +| QUIC / HTTP3 | [James M Snell][jasnell] | | +| Shadow Realm | [Chengzhong Wu][legendecas] | | +| Startup performance | [Joyee Cheung][joyeecheung] | | +| V8 Currency | [Michaël Zasso][targos] | | +| Next-10 | [Michael Dawson][mhdawson] | |
    List of completed initiatives @@ -39,6 +39,6 @@ agenda to ensure they are active and have the support they need. [aduh95]: https://github.com/aduh95 [jasnell]: https://github.com/jasnell [joyeecheung]: https://github.com/joyeecheung +[legendecas]: https://github.com/legendecas [mhdawson]: https://github.com/mhdawson -[mmarchini]: https://github.com/mmarchini [targos]: https://github.com/targos diff --git a/doc/contributing/using-symbols.md b/doc/contributing/using-symbols.md index 2bc32862b7169e..dbdd3aff725a46 100644 --- a/doc/contributing/using-symbols.md +++ b/doc/contributing/using-symbols.md @@ -61,7 +61,7 @@ for different reasons. ```js const s = Symbol.for('hello'); -console.log(s === Symbol.for('hello')); +console.log(s === Symbol.for('hello')); // true ``` In the Node.js runtime we prefix all our global symbols with `nodejs.`, diff --git a/doc/contributing/writing-and-running-benchmarks.md b/doc/contributing/writing-and-running-benchmarks.md index a5c52eafb8a3d7..99325d876928b3 100644 --- a/doc/contributing/writing-and-running-benchmarks.md +++ b/doc/contributing/writing-and-running-benchmarks.md @@ -254,19 +254,19 @@ run `node benchmark/compare.js`. As an example on how to check for a possible performance improvement, the [#5134](https://github.com/nodejs/node/pull/5134) pull request will be used as an example. This pull request _claims_ to improve the performance of the -`string_decoder` module. +`node:string_decoder` module. -First build two versions of Node.js, one from the master branch (here called -`./node-master`) and another with the pull request applied (here called +First build two versions of Node.js, one from the `main` branch (here called +`./node-main`) and another with the pull request applied (here called `./node-pr-5134`). To run multiple compiled versions in parallel you need to copy the output of the -build: `cp ./out/Release/node ./node-master`. Check out the following example: +build: `cp ./out/Release/node ./node-main`. Check out the following example: ```console -$ git checkout master +$ git checkout main $ ./configure && make -j4 -$ cp ./out/Release/node ./node-master +$ cp ./out/Release/node ./node-main $ git checkout pr-5134 $ ./configure && make -j4 @@ -276,7 +276,7 @@ $ cp ./out/Release/node ./node-pr-5134 The `compare.js` tool will then produce a csv file with the benchmark results. ```console -$ node benchmark/compare.js --old ./node-master --new ./node-pr-5134 string_decoder > compare-pr-5134.csv +$ node benchmark/compare.js --old ./node-main --new ./node-pr-5134 string_decoder > compare-pr-5134.csv ``` _Tips: there are some useful options of `benchmark/compare.js`. For example, @@ -479,7 +479,7 @@ the code inside the `main` function if it's more than just declaration. ```js 'use strict'; const common = require('../common.js'); -const { SlowBuffer } = require('buffer'); +const { SlowBuffer } = require('node:buffer'); const configs = { // Number of operations, specified here so they show up in the report. @@ -539,7 +539,7 @@ const bench = common.createBenchmark(main, { }); function main(conf) { - const http = require('http'); + const http = require('node:http'); const len = conf.kb * 1024; const chunk = Buffer.alloc(len, 'x'); const server = http.createServer((req, res) => { @@ -570,5 +570,5 @@ Supported options keys are: [git-for-windows]: https://git-scm.com/download/win [nghttp2.org]: https://nghttp2.org [node-benchmark-compare]: https://github.com/targos/node-benchmark-compare -[t-test]: https://en.wikipedia.org/wiki/Student%27s_t-test#Equal_or_unequal_sample_sizes.2C_unequal_variances +[t-test]: https://en.wikipedia.org/wiki/Student%27s_t-test#Equal_or_unequal_sample_sizes%2C_unequal_variances_%28sX1_%3E_2sX2_or_sX2_%3E_2sX1%29 [wrk]: https://github.com/wg/wrk diff --git a/doc/contributing/writing-tests.md b/doc/contributing/writing-tests.md index 9884408af8553a..cc75191d32027e 100644 --- a/doc/contributing/writing-tests.md +++ b/doc/contributing/writing-tests.md @@ -37,8 +37,8 @@ const fixtures = require('../common/fixtures'); // 3 // This test ensures that the http-parser can handle UTF-8 characters // 5 // in the http header. // 6 -const assert = require('assert'); // 8 -const http = require('http'); // 9 +const assert = require('node:assert'); // 8 +const http = require('node:http'); // 9 const server = http.createServer(common.mustCall((req, res) => { // 11 res.end('ok'); // 12 @@ -95,13 +95,13 @@ designed to test. ### **Lines 8-9** ```js -const assert = require('assert'); -const http = require('http'); +const assert = require('node:assert'); +const http = require('node:http'); ``` -The test checks functionality in the `http` module. +The test checks functionality in the `node:http` module. -Most tests use the `assert` module to confirm expectations of the test. +Most tests use the `node:assert` module to confirm expectations of the test. The require statements are sorted in [ASCII][] order (digits, upper @@ -173,8 +173,8 @@ explain this with a real test from the test suite. ```js 'use strict'; require('../common'); -const assert = require('assert'); -const http = require('http'); +const assert = require('node:assert'); +const http = require('node:http'); let request = 0; let listening = 0; @@ -207,7 +207,7 @@ This test could be greatly simplified by using `common.mustCall` like this: ```js 'use strict'; const common = require('../common'); -const http = require('http'); +const http = require('node:http'); const server = http.createServer(common.mustCall((req, res) => { res.end(); @@ -256,8 +256,8 @@ Node.js automatically crashes - and hence, the test fails - in the case of an ```js const common = require('../common'); -const assert = require('assert'); -const fs = require('fs').promises; +const assert = require('node:assert'); +const fs = require('node:fs').promises; // Wrap the `onFulfilled` handler in `common.mustCall()`. fs.readFile('test-file').then( @@ -280,8 +280,8 @@ A test that would require `internal/freelist` could start like this: // Flags: --expose-internals require('../common'); -const assert = require('assert'); -const freelist = require('internal/freelist'); +const assert = require('node:assert'); +const freelist = require('node:internal/freelist'); ``` In specific scenarios it may be useful to get a hold of `primordials` or @@ -291,7 +291,8 @@ In specific scenarios it may be useful to get a hold of `primordials` or node --expose-internals -r internal/test/binding lib/fs.js ``` -This only works if you preload `internal/test/binding` by command line flag. +This only works if you preload `node:internal/test/binding` by command line +flag. ### Assertions @@ -311,6 +312,18 @@ assert.throws( ); ``` +In the case of internal errors, prefer checking only the `code` property: + +```js +assert.throws( + () => { + throw new ERR_FS_FILE_TOO_LARGE(`${sizeKiB} Kb`); + }, + { code: 'ERR_FS_FILE_TOO_LARGE' } + // Do not include message: /^File size ([0-9]+ Kb) is greater than 2 GiB$/ +); +``` + ### Console output Output written by tests to stdout or stderr, such as with `console.log()` or @@ -456,7 +469,7 @@ will depend on what is being tested if this is required or not. To generate a test coverage report, see the [Test Coverage section of the Building guide][]. -Nightly coverage reports for the Node.js master branch are available at +Nightly coverage reports for the Node.js `main` branch are available at . [ASCII]: https://man7.org/linux/man-pages/man7/ascii.7.html diff --git a/doc/node.1 b/doc/node.1 index bd3550625a7464..6ac0d6758342fb 100644 --- a/doc/node.1 +++ b/doc/node.1 @@ -156,6 +156,9 @@ Enable experimental support for loading modules using `import` over `https:`. .It Fl -experimental-policy Use the specified file as a security policy. . +.It Fl -experimental-shadow-realm +Use this flag to enable ShadowRealm support. +. .It Fl -no-experimental-fetch Disable experimental support for the Fetch API. . @@ -270,7 +273,7 @@ This flag is inherited from V8 and is subject to change upstream. It may disappear in a non-semver-major release. . .It Fl -max-http-header-size Ns = Ns Ar size -Specify the maximum size of HTTP headers in bytes. Defaults to 16 KB. +Specify the maximum size of HTTP headers in bytes. Defaults to 16 KiB. . .It Fl -napi-modules This option is a no-op. @@ -381,6 +384,9 @@ the secure heap. The default is 0. The value must be a power of two. .It Fl -secure-heap-min Ns = Ns Ar n Specify the minimum allocation from the OpenSSL secure heap. The default is 2. The value must be a power of two. . +.It Fl -test +Starts the Node.js command line test runner. +. .It Fl -test-only Configures the test runner to only execute top level tests that have the `only` option set. diff --git a/glossary.md b/glossary.md index ccc1e495dfffe6..12c0ca177eab38 100644 --- a/glossary.md +++ b/glossary.md @@ -1,5 +1,9 @@ You may also need to check . +* CITGM: "The Canary in the Goldmine". CITGM is a simple tool for pulling down + an arbitrary module from npm and testing it using a specific version of the + node runtime. The Node.js project uses CITGM to smoke test our releases and + controversial changes. See more details on the [CITGM repository](https://github.com/nodejs/citgm). * LGTM: "Looks good to me", commonly used to approve a code review. * PTAL: Please take a look. * RSLGTM: "Rubber-stamp looks good to me". The reviewer approving without doing @@ -14,3 +18,5 @@ You may also need to check { - debug = fn; -}); - const kIncomingMessage = Symbol('IncomingMessage'); -const kRequestTimeout = Symbol('RequestTimeout'); const kOnMessageBegin = HTTPParser.kOnMessageBegin | 0; const kOnHeaders = HTTPParser.kOnHeaders | 0; const kOnHeadersComplete = HTTPParser.kOnHeadersComplete | 0; @@ -102,12 +97,6 @@ function parserOnHeadersComplete(versionMajor, versionMinor, headers, method, incoming.url = url; incoming.upgrade = upgrade; - if (socket) { - debug('requestTimeout timer moved to req'); - incoming[kRequestTimeout] = incoming.socket[kRequestTimeout]; - incoming.socket[kRequestTimeout] = undefined; - } - let n = headers.length; // If parser.maxHeaderPairs <= 0 assume that there's no limit. @@ -273,7 +262,6 @@ module.exports = { methods, parsers, kIncomingMessage, - kRequestTimeout, HTTPParser, isLenient, prepareError, diff --git a/lib/_http_incoming.js b/lib/_http_incoming.js index 34de1c559c1a9f..950c8c6e08bbc9 100644 --- a/lib/_http_incoming.js +++ b/lib/_http_incoming.js @@ -33,8 +33,10 @@ const { const { Readable, finished } = require('stream'); const kHeaders = Symbol('kHeaders'); +const kHeadersDistinct = Symbol('kHeadersDistinct'); const kHeadersCount = Symbol('kHeadersCount'); const kTrailers = Symbol('kTrailers'); +const kTrailersDistinct = Symbol('kTrailersDistinct'); const kTrailersCount = Symbol('kTrailersCount'); function readStart(socket) { @@ -96,6 +98,7 @@ ObjectSetPrototypeOf(IncomingMessage.prototype, Readable.prototype); ObjectSetPrototypeOf(IncomingMessage, Readable); ObjectDefineProperty(IncomingMessage.prototype, 'connection', { + __proto__: null, get: function() { return this.socket; }, @@ -105,6 +108,7 @@ ObjectDefineProperty(IncomingMessage.prototype, 'connection', { }); ObjectDefineProperty(IncomingMessage.prototype, 'headers', { + __proto__: null, get: function() { if (!this[kHeaders]) { this[kHeaders] = {}; @@ -123,7 +127,28 @@ ObjectDefineProperty(IncomingMessage.prototype, 'headers', { } }); +ObjectDefineProperty(IncomingMessage.prototype, 'headersDistinct', { + __proto__: null, + get: function() { + if (!this[kHeadersDistinct]) { + this[kHeadersDistinct] = {}; + + const src = this.rawHeaders; + const dst = this[kHeadersDistinct]; + + for (let n = 0; n < this[kHeadersCount]; n += 2) { + this._addHeaderLineDistinct(src[n + 0], src[n + 1], dst); + } + } + return this[kHeadersDistinct]; + }, + set: function(val) { + this[kHeadersDistinct] = val; + } +}); + ObjectDefineProperty(IncomingMessage.prototype, 'trailers', { + __proto__: null, get: function() { if (!this[kTrailers]) { this[kTrailers] = {}; @@ -142,6 +167,26 @@ ObjectDefineProperty(IncomingMessage.prototype, 'trailers', { } }); +ObjectDefineProperty(IncomingMessage.prototype, 'trailersDistinct', { + __proto__: null, + get: function() { + if (!this[kTrailersDistinct]) { + this[kTrailersDistinct] = {}; + + const src = this.rawTrailers; + const dst = this[kTrailersDistinct]; + + for (let n = 0; n < this[kTrailersCount]; n += 2) { + this._addHeaderLineDistinct(src[n + 0], src[n + 1], dst); + } + } + return this[kTrailersDistinct]; + }, + set: function(val) { + this[kTrailersDistinct] = val; + } +}); + IncomingMessage.prototype.setTimeout = function setTimeout(msecs, callback) { if (callback) this.on('timeout', callback); @@ -361,6 +406,16 @@ function _addHeaderLine(field, value, dest) { } } +IncomingMessage.prototype._addHeaderLineDistinct = _addHeaderLineDistinct; +function _addHeaderLineDistinct(field, value, dest) { + field = StringPrototypeToLowerCase(field); + if (!dest[field]) { + dest[field] = [value]; + } else { + dest[field].push(value); + } +} + // Call this instead of resume() if we want to just // dump all the data to /dev/null diff --git a/lib/_http_outgoing.js b/lib/_http_outgoing.js index 71f6e3e72376a5..e02b86e8a84929 100644 --- a/lib/_http_outgoing.js +++ b/lib/_http_outgoing.js @@ -34,6 +34,7 @@ const { ObjectPrototypeHasOwnProperty, ObjectSetPrototypeOf, RegExpPrototypeTest, + SafeSet, StringPrototypeToLowerCase, Symbol, } = primordials; @@ -82,6 +83,7 @@ let debug = require('internal/util/debuglog').debuglog('http', (fn) => { const HIGH_WATER_MARK = getDefaultHighWaterMark(); const kCorked = Symbol('corked'); +const kUniqueHeaders = Symbol('kUniqueHeaders'); const nop = () => {}; @@ -143,6 +145,7 @@ ObjectSetPrototypeOf(OutgoingMessage.prototype, Stream.prototype); ObjectSetPrototypeOf(OutgoingMessage, Stream); ObjectDefineProperty(OutgoingMessage.prototype, 'writableFinished', { + __proto__: null, get() { return ( this.finished && @@ -153,24 +156,28 @@ ObjectDefineProperty(OutgoingMessage.prototype, 'writableFinished', { }); ObjectDefineProperty(OutgoingMessage.prototype, 'writableObjectMode', { + __proto__: null, get() { return false; } }); ObjectDefineProperty(OutgoingMessage.prototype, 'writableLength', { + __proto__: null, get() { return this.outputSize + (this.socket ? this.socket.writableLength : 0); } }); ObjectDefineProperty(OutgoingMessage.prototype, 'writableHighWaterMark', { + __proto__: null, get() { return this.socket ? this.socket.writableHighWaterMark : HIGH_WATER_MARK; } }); ObjectDefineProperty(OutgoingMessage.prototype, 'writableCorked', { + __proto__: null, get() { const corked = this.socket ? this.socket.writableCorked : 0; return corked + this[kCorked]; @@ -178,6 +185,7 @@ ObjectDefineProperty(OutgoingMessage.prototype, 'writableCorked', { }); ObjectDefineProperty(OutgoingMessage.prototype, '_headers', { + __proto__: null, get: internalUtil.deprecate(function() { return this.getHeaders(); }, 'OutgoingMessage.prototype._headers is deprecated', 'DEP0066'), @@ -198,6 +206,7 @@ ObjectDefineProperty(OutgoingMessage.prototype, '_headers', { }); ObjectDefineProperty(OutgoingMessage.prototype, 'connection', { + __proto__: null, get: function() { return this.socket; }, @@ -207,6 +216,7 @@ ObjectDefineProperty(OutgoingMessage.prototype, 'connection', { }); ObjectDefineProperty(OutgoingMessage.prototype, '_headerNames', { + __proto__: null, get: internalUtil.deprecate(function() { const headers = this[kOutHeaders]; if (headers !== null) { @@ -502,7 +512,10 @@ function processHeader(self, state, key, value, validate) { if (validate) validateHeaderName(key); if (ArrayIsArray(value)) { - if (value.length < 2 || !isCookieField(key)) { + if ( + (value.length < 2 || !isCookieField(key)) && + (!self[kUniqueHeaders] || !self[kUniqueHeaders].has(StringPrototypeToLowerCase(key))) + ) { // Retain for(;;) loop for performance reasons // Refs: https://github.com/nodejs/node/pull/30958 for (let i = 0; i < value.length; i++) @@ -571,6 +584,20 @@ const validateHeaderValue = hideStackFrames((name, value) => { } }); +function parseUniqueHeadersOption(headers) { + if (!ArrayIsArray(headers)) { + return null; + } + + const unique = new SafeSet(); + const l = headers.length; + for (let i = 0; i < l; i++) { + unique.add(StringPrototypeToLowerCase(headers[i])); + } + + return unique; +} + OutgoingMessage.prototype.setHeader = function setHeader(name, value) { if (this._header) { throw new ERR_HTTP_HEADERS_SENT('set'); @@ -586,6 +613,36 @@ OutgoingMessage.prototype.setHeader = function setHeader(name, value) { return this; }; +OutgoingMessage.prototype.appendHeader = function appendHeader(name, value) { + if (this._header) { + throw new ERR_HTTP_HEADERS_SENT('append'); + } + validateHeaderName(name); + validateHeaderValue(name, value); + + const field = StringPrototypeToLowerCase(name); + const headers = this[kOutHeaders]; + if (headers === null || !headers[field]) { + return this.setHeader(name, value); + } + + // Prepare the field for appending, if required + if (!ArrayIsArray(headers[field][1])) { + headers[field][1] = [headers[field][1]]; + } + + const existingValues = headers[field][1]; + if (ArrayIsArray(value)) { + for (let i = 0, length = value.length; i < length; i++) { + existingValues.push(value[i]); + } + } else { + existingValues.push(value); + } + + return this; +}; + OutgoingMessage.prototype.getHeader = function getHeader(name) { validateString(name, 'name'); @@ -682,16 +739,19 @@ OutgoingMessage.prototype._implicitHeader = function _implicitHeader() { }; ObjectDefineProperty(OutgoingMessage.prototype, 'headersSent', { + __proto__: null, configurable: true, enumerable: true, get: function() { return !!this._header; } }); ObjectDefineProperty(OutgoingMessage.prototype, 'writableEnded', { + __proto__: null, get: function() { return this.finished; } }); ObjectDefineProperty(OutgoingMessage.prototype, 'writableNeedDrain', { + __proto__: null, get: function() { return !this.destroyed && !this.finished && this[kNeedDrain]; } @@ -797,7 +857,6 @@ function connectionCorkNT(conn) { conn.uncork(); } - OutgoingMessage.prototype.addTrailers = function addTrailers(headers) { this._trailer = ''; const keys = ObjectKeys(headers); @@ -817,11 +876,31 @@ OutgoingMessage.prototype.addTrailers = function addTrailers(headers) { if (typeof field !== 'string' || !field || !checkIsHttpToken(field)) { throw new ERR_INVALID_HTTP_TOKEN('Trailer name', field); } - if (checkInvalidHeaderChar(value)) { - debug('Trailer "%s" contains invalid characters', field); - throw new ERR_INVALID_CHAR('trailer content', field); + + // Check if the field must be sent several times + const isArrayValue = ArrayIsArray(value); + if ( + isArrayValue && value.length > 1 && + (!this[kUniqueHeaders] || !this[kUniqueHeaders].has(StringPrototypeToLowerCase(field))) + ) { + for (let j = 0, l = value.length; j < l; j++) { + if (checkInvalidHeaderChar(value[j])) { + debug('Trailer "%s"[%d] contains invalid characters', field, j); + throw new ERR_INVALID_CHAR('trailer content', field); + } + this._trailer += field + ': ' + value[j] + '\r\n'; + } + } else { + if (isArrayValue) { + value = ArrayPrototypeJoin(value, '; '); + } + + if (checkInvalidHeaderChar(value)) { + debug('Trailer "%s" contains invalid characters', field); + throw new ERR_INVALID_CHAR('trailer content', field); + } + this._trailer += field + ': ' + value + '\r\n'; } - this._trailer += field + ': ' + value + '\r\n'; } }; @@ -997,6 +1076,8 @@ function(err, event) { }; module.exports = { + kUniqueHeaders, + parseUniqueHeadersOption, validateHeaderName, validateHeaderValue, OutgoingMessage diff --git a/lib/_http_server.js b/lib/_http_server.js index 00c810e51dfddc..48f825f15cb51d 100644 --- a/lib/_http_server.js +++ b/lib/_http_server.js @@ -27,6 +27,7 @@ const { ObjectKeys, ObjectSetPrototypeOf, RegExpPrototypeTest, + ReflectApply, Symbol, SymbolFor, } = primordials; @@ -40,13 +41,17 @@ const { continueExpression, chunkExpression, kIncomingMessage, - kRequestTimeout, HTTPParser, isLenient, _checkInvalidHeaderChar: checkInvalidHeaderChar, prepareError, } = require('_http_common'); -const { OutgoingMessage } = require('_http_outgoing'); +const { ConnectionsList } = internalBinding('http_parser'); +const { + kUniqueHeaders, + parseUniqueHeadersOption, + OutgoingMessage +} = require('_http_outgoing'); const { kOutHeaders, kNeedDrain, @@ -79,8 +84,7 @@ const { DTRACE_HTTP_SERVER_REQUEST, DTRACE_HTTP_SERVER_RESPONSE } = require('internal/dtrace'); -const { setTimeout, clearTimeout } = require('timers'); - +const { setInterval, clearInterval } = require('timers'); let debug = require('internal/util/debuglog').debuglog('http', (fn) => { debug = fn; }); @@ -96,6 +100,8 @@ const { hasObserver, } = require('internal/perf/observe'); +const { now } = require('internal/perf/utils'); + const STATUS_CODES = { 100: 'Continue', // RFC 7231 6.2.1 101: 'Switching Protocols', // RFC 7231 6.2.2 @@ -162,11 +168,12 @@ const STATUS_CODES = { 511: 'Network Authentication Required' // RFC 6585 6 }; -const kOnMessageBegin = HTTPParser.kOnMessageBegin | 0; const kOnExecute = HTTPParser.kOnExecute | 0; const kOnTimeout = HTTPParser.kOnTimeout | 0; const kLenientAll = HTTPParser.kLenientAll | 0; const kLenientNone = HTTPParser.kLenientNone | 0; +const kConnections = Symbol('http.server.connections'); +const kConnectionsCheckingInterval = Symbol('http.server.connectionsCheckingInterval'); class HTTPServerAsyncResource { constructor(type, socket) { @@ -193,7 +200,7 @@ function ServerResponse(req) { if (hasObserver('http')) { this[kServerResponseStatistics] = { - startTime: process.hrtime(), + startTime: now(), type: 'HttpRequest', }; } @@ -367,6 +374,52 @@ function storeHTTPOptions(options) { if (options.noDelay === undefined) options.noDelay = true; + + const requestTimeout = options.requestTimeout; + if (requestTimeout !== undefined) { + validateInteger(requestTimeout, 'requestTimeout', 0); + this.requestTimeout = requestTimeout; + } else { + this.requestTimeout = 300_000; // 5 minutes + } + + const headersTimeout = options.headersTimeout; + if (headersTimeout !== undefined) { + validateInteger(headersTimeout, 'headersTimeout', 0); + this.headersTimeout = headersTimeout; + } else { + this.headersTimeout = 60_000; // 60 seconds + } + + if (this.requestTimeout > 0 && this.headersTimeout > 0 && this.headersTimeout >= this.requestTimeout) { + throw new codes.ERR_OUT_OF_RANGE('headersTimeout', '>= requestTimeout', headersTimeout); + } + + const keepAliveTimeout = options.keepAliveTimeout; + if (keepAliveTimeout !== undefined) { + validateInteger(keepAliveTimeout, 'keepAliveTimeout', 0); + this.keepAliveTimeout = keepAliveTimeout; + } else { + this.keepAliveTimeout = 5_000; // 5 seconds; + } + + const connectionsCheckingInterval = options.connectionsCheckingInterval; + if (connectionsCheckingInterval !== undefined) { + validateInteger(connectionsCheckingInterval, 'connectionsCheckingInterval', 0); + this.connectionsCheckingInterval = connectionsCheckingInterval; + } else { + this.connectionsCheckingInterval = 30_000; // 30 seconds + } +} + +function setupConnectionsTracking(server) { + // Start connection handling + server[kConnections] = new ConnectionsList(); + + // This checker is started without checking whether any headersTimeout or requestTimeout is non zero + // otherwise it would not be started if such timeouts are modified after createServer. + server[kConnectionsCheckingInterval] = + setInterval(checkConnections.bind(server), server.connectionsCheckingInterval).unref(); } function Server(options, requestListener) { @@ -400,15 +453,34 @@ function Server(options, requestListener) { this.on('connection', connectionListener); this.timeout = 0; - this.keepAliveTimeout = 5000; this.maxHeadersCount = null; this.maxRequestsPerSocket = 0; - this.headersTimeout = 60 * 1000; // 60 seconds - this.requestTimeout = 0; + setupConnectionsTracking(this); + this[kUniqueHeaders] = parseUniqueHeadersOption(options.uniqueHeaders); } ObjectSetPrototypeOf(Server.prototype, net.Server.prototype); ObjectSetPrototypeOf(Server, net.Server); +Server.prototype.close = function() { + clearInterval(this[kConnectionsCheckingInterval]); + ReflectApply(net.Server.prototype.close, this, arguments); +}; + +Server.prototype.closeAllConnections = function() { + const connections = this[kConnections].all(); + + for (let i = 0, l = connections.length; i < l; i++) { + connections[i].socket.destroy(); + } +}; + +Server.prototype.closeIdleConnections = function() { + const connections = this[kConnections].idle(); + + for (let i = 0, l = connections.length; i < l; i++) { + connections[i].socket.destroy(); + } +}; Server.prototype.setTimeout = function setTimeout(msecs, callback) { this.timeout = msecs; @@ -440,6 +512,22 @@ Server.prototype[EE.captureRejectionSymbol] = function(err, event, ...args) { } }; +function checkConnections() { + if (this.headersTimeout === 0 && this.requestTimeout === 0) { + return; + } + + const expired = this[kConnections].expired(this.headersTimeout, this.requestTimeout); + + for (let i = 0; i < expired.length; i++) { + const socket = expired[i].socket; + + if (socket) { + onRequestTimeout(socket); + } + } +} + function connectionListener(socket) { defaultTriggerAsyncIdScope( getOrSetAsyncId(socket), connectionListenerInternal, this, socket @@ -473,7 +561,7 @@ function connectionListenerInternal(server, socket) { new HTTPServerAsyncResource('HTTPINCOMINGMESSAGE', socket), server.maxHeaderSize || 0, lenient ? kLenientAll : kLenientNone, - server.headersTimeout || 0, + server[kConnections], ); parser.socket = socket; socket.parser = parser; @@ -539,17 +627,6 @@ function connectionListenerInternal(server, socket) { onParserTimeout.bind(undefined, server, socket); - // When receiving new requests on the same socket (pipelining or keep alive) - // make sure the requestTimeout is active. - parser[kOnMessageBegin] = - setRequestTimeout.bind(undefined, - server, socket); - - // This protects from DOS attack where an attacker establish the connection - // without sending any data on applications where server.timeout is left to - // the default value of zero. - setRequestTimeout(server, socket); - socket._paused = false; } @@ -632,7 +709,6 @@ function socketOnData(server, socket, parser, state, d) { } function onRequestTimeout(socket) { - socket[kRequestTimeout] = undefined; // socketOnError has additional logic and will call socket.destroy(err). socketOnError.call(socket, new ERR_HTTP_REQUEST_TIMEOUT()); } @@ -727,9 +803,6 @@ function onParserExecuteCommon(server, socket, parser, state, ret, d) { socket.readableFlowing = null; - // Clear the requestTimeout after upgrading the connection. - clearRequestTimeout(req); - server.emit(eventName, req, socket, bodyHead); } else { // Got CONNECT method, but have no handler. @@ -738,11 +811,6 @@ function onParserExecuteCommon(server, socket, parser, state, ret, d) { } else if (parser.incoming && parser.incoming.method === 'PRI') { debug('SERVER got PRI request'); socket.destroy(); - } else { - // When receiving new requests on the same socket (pipelining or keep alive) - // make sure the requestTimeout is active. - parser[kOnMessageBegin] = - setRequestTimeout.bind(undefined, server, socket); } if (socket._paused && socket.parser) { @@ -765,32 +833,6 @@ function clearIncoming(req) { } } -function setRequestTimeout(server, socket) { - // Set the request timeout handler. - if ( - !socket[kRequestTimeout] && - server.requestTimeout && server.requestTimeout > 0 - ) { - debug('requestTimeout timer set'); - socket[kRequestTimeout] = - setTimeout(onRequestTimeout, server.requestTimeout, socket).unref(); - } -} - -function clearRequestTimeout(req) { - if (!req) { - req = this; - } - - if (!req[kRequestTimeout]) { - return; - } - - debug('requestTimeout timer cleared'); - clearTimeout(req[kRequestTimeout]); - req[kRequestTimeout] = undefined; -} - function resOnFinish(req, res, socket, state, server) { if (onResponseFinishChannel.hasSubscribers) { onResponseFinishChannel.publish({ @@ -814,14 +856,6 @@ function resOnFinish(req, res, socket, state, server) { if (!req._consuming && !req._readableState.resumeScheduled) req._dump(); - // Make sure the requestTimeout is cleared before finishing. - // This might occur if the application has sent a response - // without consuming the request body, which would have already - // cleared the timer. - // clearRequestTimeout can be executed even if the timer is not active, - // so this is safe. - clearRequestTimeout(req); - res.detachSocket(socket); clearIncoming(req); process.nextTick(emitCloseNT, res); @@ -889,6 +923,7 @@ function parserOnIncoming(server, socket, state, req, keepAlive) { socket, state); res.shouldKeepAlive = keepAlive; + res[kUniqueHeaders] = server[kUniqueHeaders]; DTRACE_HTTP_SERVER_REQUEST(req, socket); if (onRequestStartChannel.hasSubscribers) { @@ -955,7 +990,6 @@ function parserOnIncoming(server, socket, state, req, keepAlive) { } if (!handled) { - req.on('end', clearRequestTimeout); server.emit('request', req, res); } @@ -1027,6 +1061,7 @@ module.exports = { STATUS_CODES, Server, ServerResponse, + setupConnectionsTracking, storeHTTPOptions, _connectionListener: connectionListener, kServerResponse diff --git a/lib/_tls_common.js b/lib/_tls_common.js index 79d3ac1136ec99..373286fe6742b6 100644 --- a/lib/_tls_common.js +++ b/lib/_tls_common.js @@ -27,7 +27,7 @@ const { ArrayPrototypePush, JSONParse, ObjectCreate, - StringPrototypeReplace, + RegExpPrototypeSymbolReplace, } = primordials; const { @@ -47,6 +47,10 @@ const { }, } = internalBinding('constants'); +const { + kEmptyObject, +} = require('internal/util'); + const { validateInteger, } = require('internal/validators'); @@ -93,7 +97,7 @@ function SecureContext(secureProtocol, secureOptions, minVersion, maxVersion) { } function createSecureContext(options) { - if (!options) options = {}; + if (!options) options = kEmptyObject; const { honorCipherOrder, @@ -130,21 +134,21 @@ function translatePeerCertificate(c) { c.infoAccess = ObjectCreate(null); // XXX: More key validation? - StringPrototypeReplace(info, /([^\n:]*):([^\n]*)(?:\n|$)/g, - (all, key, val) => { - if (val.charCodeAt(0) === 0x22) { - // The translatePeerCertificate function is only - // used on internally created legacy certificate - // objects, and any value that contains a quote - // will always be a valid JSON string literal, - // so this should never throw. - val = JSONParse(val); - } - if (key in c.infoAccess) - ArrayPrototypePush(c.infoAccess[key], val); - else - c.infoAccess[key] = [val]; - }); + RegExpPrototypeSymbolReplace(/([^\n:]*):([^\n]*)(?:\n|$)/g, info, + (all, key, val) => { + if (val.charCodeAt(0) === 0x22) { + // The translatePeerCertificate function is only + // used on internally created legacy certificate + // objects, and any value that contains a quote + // will always be a valid JSON string literal, + // so this should never throw. + val = JSONParse(val); + } + if (key in c.infoAccess) + ArrayPrototypePush(c.infoAccess[key], val); + else + c.infoAccess[key] = [val]; + }); } return c; } diff --git a/lib/_tls_wrap.js b/lib/_tls_wrap.js index 168df8e585423e..55c60c34e0a702 100644 --- a/lib/_tls_wrap.js +++ b/lib/_tls_wrap.js @@ -40,7 +40,8 @@ const { const { assertCrypto, - deprecate + deprecate, + kEmptyObject, } = require('internal/util'); assertCrypto(); @@ -631,6 +632,7 @@ TLSSocket.prototype._wrapHandle = function(wrap) { // Ref: https://github.com/nodejs/node/commit/f7620fb96d339f704932f9bb9a0dceb9952df2d4 function defineHandleReading(socket, handle) { ObjectDefineProperty(handle, 'reading', { + __proto__: null, get: () => { return socket[kRes].reading; }, @@ -1181,9 +1183,9 @@ function Server(options, listener) { if (typeof options === 'function') { listener = options; - options = {}; + options = kEmptyObject; } else if (options == null || typeof options === 'object') { - options = options || {}; + options = options ?? kEmptyObject; } else { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } diff --git a/lib/assert.js b/lib/assert.js index bbd3c283c5f0e9..2c7cf369a87af2 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -213,7 +213,7 @@ function getCode(fd, line, column) { let lines = 0; // Prevent blocking the event loop by limiting the maximum amount of // data that may be read. - let maxReads = 32; // bytesPerRead * maxReads = 512 kb + let maxReads = 32; // bytesPerRead * maxReads = 512 KiB const bytesPerRead = 16384; // Use a single buffer up front that is reused until the call site is found. let buffer = Buffer.allocUnsafe(bytesPerRead); diff --git a/lib/async_hooks.js b/lib/async_hooks.js index 6cc2052474d9c2..8638bb4d7b3497 100644 --- a/lib/async_hooks.js +++ b/lib/async_hooks.js @@ -20,6 +20,7 @@ const { ERR_ASYNC_TYPE, ERR_INVALID_ASYNC_ID } = require('internal/errors').codes; +const { kEmptyObject } = require('internal/util'); const { validateFunction, validateString, @@ -156,7 +157,7 @@ function createHook(fns) { const destroyedSymbol = Symbol('destroyed'); class AsyncResource { - constructor(type, opts = {}) { + constructor(type, opts = kEmptyObject) { validateString(type, 'type'); let triggerAsyncId = opts; @@ -238,12 +239,14 @@ class AsyncResource { } ObjectDefineProperties(bound, { 'length': { + __proto__: null, configurable: true, enumerable: false, value: fn.length, writable: false, }, 'asyncResource': { + __proto__: null, configurable: true, enumerable: true, value: this, diff --git a/lib/buffer.js b/lib/buffer.js index 773d56572aa2a4..109e5c45c724dc 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -26,7 +26,7 @@ const { ArrayFrom, ArrayIsArray, ArrayPrototypeForEach, - ArrayPrototypeIncludes, + ArrayPrototypeIndexOf, MathFloor, MathMin, MathTrunc, @@ -282,6 +282,7 @@ function Buffer(arg, encodingOrOffset, length) { } ObjectDefineProperty(Buffer, SymbolSpecies, { + __proto__: null, enumerable: false, configurable: true, get() { return FastBuffer; } @@ -756,6 +757,7 @@ Buffer.byteLength = byteLength; // For backwards compatibility. ObjectDefineProperty(Buffer.prototype, 'parent', { + __proto__: null, enumerable: true, get() { if (!(this instanceof Buffer)) @@ -764,6 +766,7 @@ ObjectDefineProperty(Buffer.prototype, 'parent', { } }); ObjectDefineProperty(Buffer.prototype, 'offset', { + __proto__: null, enumerable: true, get() { if (!(this instanceof Buffer)) @@ -1259,12 +1262,31 @@ function atob(input) { if (arguments.length === 0) { throw new ERR_MISSING_ARGS('input'); } + input = `${input}`; + let nonAsciiWhitespaceCharCount = 0; + for (let n = 0; n < input.length; n++) { - if (!ArrayPrototypeIncludes(kForgivingBase64AllowedChars, - StringPrototypeCharCodeAt(input, n))) + const index = ArrayPrototypeIndexOf( + kForgivingBase64AllowedChars, + StringPrototypeCharCodeAt(input, n)); + + if (index > 4) { + // The first 5 elements of `kForgivingBase64AllowedChars` are + // ASCII whitespace char codes. + nonAsciiWhitespaceCharCount++; + } else if (index === -1) { throw lazyDOMException('Invalid character', 'InvalidCharacterError'); + } } + + // See #3 - https://infra.spec.whatwg.org/#forgiving-base64 + if (nonAsciiWhitespaceCharCount % 4 === 1) { + throw lazyDOMException( + 'The string to be decoded is not correctly encoded.', + 'InvalidCharacterError'); + } + return Buffer.from(input, 'base64').toString('latin1'); } @@ -1283,11 +1305,13 @@ module.exports = { ObjectDefineProperties(module.exports, { constants: { + __proto__: null, configurable: false, enumerable: true, value: constants }, INSPECT_MAX_BYTES: { + __proto__: null, configurable: true, enumerable: true, get() { return INSPECT_MAX_BYTES; }, diff --git a/lib/child_process.js b/lib/child_process.js index 4b5da300b6295d..d89e2f66fa0a7b 100644 --- a/lib/child_process.js +++ b/lib/child_process.js @@ -43,10 +43,11 @@ const { } = primordials; const { - promisify, convertToValidSignal, createDeferredPromise, - getSystemErrorName + getSystemErrorName, + kEmptyObject, + promisify, } = require('internal/util'); const { isArrayBufferView } = require('internal/util/types'); let debug = require('internal/util/debuglog').debuglog( @@ -243,6 +244,7 @@ const customPromiseExecFunction = (orig) => { }; ObjectDefineProperty(exec, promisify.custom, { + __proto__: null, enumerable: false, value: customPromiseExecFunction(exec) }); @@ -486,6 +488,7 @@ function execFile(file, args = [], options, callback) { } ObjectDefineProperty(execFile, promisify.custom, { + __proto__: null, enumerable: false, value: customPromiseExecFunction(execFile) }); @@ -508,7 +511,7 @@ function normalizeSpawnArguments(file, args, options) { } if (options === undefined) - options = {}; + options = kEmptyObject; else validateObject(options, 'options'); diff --git a/lib/crypto.js b/lib/crypto.js index 77de7cda9d08a2..77debb9471f03c 100644 --- a/lib/crypto.js +++ b/lib/crypto.js @@ -259,9 +259,11 @@ function getRandomValues(array) { } ObjectDefineProperty(constants, 'defaultCipherList', { + __proto__: null, get() { const value = getOptionValue('--tls-cipher-list'); ObjectDefineProperty(this, 'defaultCipherList', { + __proto__: null, writable: true, configurable: true, enumerable: true, @@ -271,6 +273,7 @@ ObjectDefineProperty(constants, 'defaultCipherList', { }, set(val) { ObjectDefineProperty(this, 'defaultCipherList', { + __proto__: null, writable: true, configurable: true, enumerable: true, @@ -299,6 +302,7 @@ function getRandomBytesAlias(key) { this, key, { + __proto__: null, enumerable: false, configurable: true, writable: true, @@ -312,6 +316,7 @@ function getRandomBytesAlias(key) { this, key, { + __proto__: null, enumerable: true, configurable: true, writable: true, @@ -324,21 +329,25 @@ function getRandomBytesAlias(key) { ObjectDefineProperties(module.exports, { createCipher: { + __proto__: null, enumerable: false, value: deprecate(createCipher, 'crypto.createCipher is deprecated.', 'DEP0106') }, createDecipher: { + __proto__: null, enumerable: false, value: deprecate(createDecipher, 'crypto.createDecipher is deprecated.', 'DEP0106') }, // crypto.fips is deprecated. DEP0093. Use crypto.getFips()/crypto.setFips() fips: { + __proto__: null, get: getFips, set: setFips, }, DEFAULT_ENCODING: { + __proto__: null, enumerable: false, configurable: true, get: deprecate(getDefaultEncoding, @@ -347,12 +356,14 @@ ObjectDefineProperties(module.exports, { 'crypto.DEFAULT_ENCODING is deprecated.', 'DEP0091') }, constants: { + __proto__: null, configurable: false, enumerable: true, value: constants }, webcrypto: { + __proto__: null, configurable: false, enumerable: true, get() { return lazyWebCrypto().crypto; }, @@ -360,6 +371,7 @@ ObjectDefineProperties(module.exports, { }, subtle: { + __proto__: null, configurable: false, enumerable: true, get() { return lazyWebCrypto().crypto.subtle; }, @@ -367,6 +379,7 @@ ObjectDefineProperties(module.exports, { }, getRandomValues: { + __proto__: null, configurable: false, enumerable: true, get: () => getRandomValues, diff --git a/lib/dgram.js b/lib/dgram.js index 5dbc2f22dab658..5f644d2a6c30e3 100644 --- a/lib/dgram.js +++ b/lib/dgram.js @@ -971,6 +971,7 @@ Socket.prototype.getSendBufferSize = function() { // Deprecated private APIs. ObjectDefineProperty(Socket.prototype, '_handle', { + __proto__: null, get: deprecate(function() { return this[kStateSymbol].handle; }, 'Socket.prototype._handle is deprecated', 'DEP0112'), @@ -981,6 +982,7 @@ ObjectDefineProperty(Socket.prototype, '_handle', { ObjectDefineProperty(Socket.prototype, '_receiving', { + __proto__: null, get: deprecate(function() { return this[kStateSymbol].receiving; }, 'Socket.prototype._receiving is deprecated', 'DEP0112'), @@ -991,6 +993,7 @@ ObjectDefineProperty(Socket.prototype, '_receiving', { ObjectDefineProperty(Socket.prototype, '_bindState', { + __proto__: null, get: deprecate(function() { return this[kStateSymbol].bindState; }, 'Socket.prototype._bindState is deprecated', 'DEP0112'), @@ -1001,6 +1004,7 @@ ObjectDefineProperty(Socket.prototype, '_bindState', { ObjectDefineProperty(Socket.prototype, '_queue', { + __proto__: null, get: deprecate(function() { return this[kStateSymbol].queue; }, 'Socket.prototype._queue is deprecated', 'DEP0112'), @@ -1011,6 +1015,7 @@ ObjectDefineProperty(Socket.prototype, '_queue', { ObjectDefineProperty(Socket.prototype, '_reuseAddr', { + __proto__: null, get: deprecate(function() { return this[kStateSymbol].reuseAddr; }, 'Socket.prototype._reuseAddr is deprecated', 'DEP0112'), @@ -1033,6 +1038,7 @@ Socket.prototype._stopReceiving = deprecate(function() { // Legacy alias on the C++ wrapper object. This is not public API, so we may // want to runtime-deprecate it at some point. There's no hurry, though. ObjectDefineProperty(UDP.prototype, 'owner', { + __proto__: null, get() { return this[owner_symbol]; }, set(v) { return this[owner_symbol] = v; } }); diff --git a/lib/dns.js b/lib/dns.js index 14937769d1d4d9..97793eb12aaf3a 100644 --- a/lib/dns.js +++ b/lib/dns.js @@ -42,20 +42,48 @@ const { Resolver, validateHints, emitInvalidHostnameWarning, - emitTypeCoercionDeprecationWarning, getDefaultVerbatim, setDefaultResultOrder, + errorCodes: dnsErrorCodes, } = require('internal/dns/utils'); +const { + NODATA, + FORMERR, + SERVFAIL, + NOTFOUND, + NOTIMP, + REFUSED, + BADQUERY, + BADNAME, + BADFAMILY, + BADRESP, + CONNREFUSED, + TIMEOUT, + EOF, + FILE, + NOMEM, + DESTRUCTION, + BADSTR, + BADFLAGS, + NONAME, + BADHINTS, + NOTINITIALIZED, + LOADIPHLPAPI, + ADDRGETNETWORKPARAMS, + CANCELLED, +} = dnsErrorCodes; const { ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS, } = errors.codes; const { + validateBoolean, validateFunction, + validateNumber, + validateOneOf, validatePort, validateString, - validateOneOf, } = require('internal/validators'); const { @@ -69,6 +97,7 @@ const kPerfHooksDnsLookupServiceContext = Symbol('kPerfHooksDnsLookupServiceCont const kPerfHooksDnsLookupResolveContext = Symbol('kPerfHooksDnsLookupResolveContext'); const { + hasObserver, startPerf, stopPerf, } = require('internal/perf/observe'); @@ -82,7 +111,9 @@ function onlookup(err, addresses) { return this.callback(dnsException(err, 'getaddrinfo', this.hostname)); } this.callback(null, addresses[0], this.family || isIP(addresses[0])); - stopPerf(this, kPerfHooksDnsLookupContext); + if (this[kPerfHooksDnsLookupContext] && hasObserver('dns')) { + stopPerf(this, kPerfHooksDnsLookupContext); + } } @@ -101,15 +132,18 @@ function onlookupall(err, addresses) { } this.callback(null, addresses); - stopPerf(this, kPerfHooksDnsLookupContext); + if (this[kPerfHooksDnsLookupContext] && hasObserver('dns')) { + stopPerf(this, kPerfHooksDnsLookupContext); + } } // Easy DNS A/AAAA look up // lookup(hostname, [options,] callback) +const validFamilies = [0, 4, 6]; function lookup(hostname, options, callback) { let hints = 0; - let family = -1; + let family = 0; let all = false; let verbatim = getDefaultVerbatim(); @@ -121,39 +155,46 @@ function lookup(hostname, options, callback) { if (typeof options === 'function') { callback = options; family = 0; + } else if (typeof options === 'number') { + validateFunction(callback, 'callback'); + + validateOneOf(options, 'family', validFamilies, true); + family = options; + } else if (options !== undefined && typeof options !== 'object') { + validateFunction(arguments.length === 2 ? options : callback, 'callback'); + throw new ERR_INVALID_ARG_TYPE('options', ['integer', 'object'], options); } else { validateFunction(callback, 'callback'); - if (options !== null && typeof options === 'object') { - if (options.hints != null && typeof options.hints !== 'number') { - emitTypeCoercionDeprecationWarning(); - } + if (options?.hints != null) { + validateNumber(options.hints, 'options.hints'); hints = options.hints >>> 0; - if (options.family != null && typeof options.family !== 'number') { - emitTypeCoercionDeprecationWarning(); - } - family = options.family >>> 0; - if (options.all != null && typeof options.all !== 'boolean') { - emitTypeCoercionDeprecationWarning(); - } - all = options.all === true; - if (typeof options.verbatim === 'boolean') { - verbatim = options.verbatim === true; - } else if (options.verbatim != null) { - emitTypeCoercionDeprecationWarning(); - } - validateHints(hints); - } else { - if (options != null && typeof options !== 'number') { - emitTypeCoercionDeprecationWarning(); + } + if (options?.family != null) { + switch (options.family) { + case 'IPv4': + family = 4; + break; + case 'IPv6': + family = 6; + break; + default: + validateOneOf(options.family, 'options.family', validFamilies, true); + family = options.family; + break; } - family = options >>> 0; + } + if (options?.all != null) { + validateBoolean(options.all, 'options.all'); + all = options.all; + } + if (options?.verbatim != null) { + validateBoolean(options.verbatim, 'options.verbatim'); + verbatim = options.verbatim; } } - validateOneOf(family, 'family', [0, 4, 6]); - if (!hostname) { emitInvalidHostnameWarning(hostname); if (all) { @@ -188,18 +229,20 @@ function lookup(hostname, options, callback) { process.nextTick(callback, dnsException(err, 'getaddrinfo', hostname)); return {}; } - const detail = { - hostname, - family, - hints, - verbatim, - }; - startPerf(req, kPerfHooksDnsLookupContext, { type: 'dns', name: 'lookup', detail }); + if (hasObserver('dns')) { + const detail = { + hostname, + family, + hints, + verbatim, + }; + startPerf(req, kPerfHooksDnsLookupContext, { type: 'dns', name: 'lookup', detail }); + } return req; } ObjectDefineProperty(lookup, customPromisifyArgs, - { value: ['address', 'family'], enumerable: false }); + { __proto__: null, value: ['address', 'family'], enumerable: false }); function onlookupservice(err, hostname, service) { @@ -207,7 +250,9 @@ function onlookupservice(err, hostname, service) { return this.callback(dnsException(err, 'getnameinfo', this.hostname)); this.callback(null, hostname, service); - stopPerf(this, kPerfHooksDnsLookupServiceContext); + if (this[kPerfHooksDnsLookupServiceContext] && hasObserver('dns')) { + stopPerf(this, kPerfHooksDnsLookupServiceContext); + } } @@ -232,19 +277,21 @@ function lookupService(address, port, callback) { const err = cares.getnameinfo(req, address, port); if (err) throw dnsException(err, 'getnameinfo', address); - startPerf(req, kPerfHooksDnsLookupServiceContext, { - type: 'dns', - name: 'lookupService', - detail: { - host: address, - port - } - }); + if (hasObserver('dns')) { + startPerf(req, kPerfHooksDnsLookupServiceContext, { + type: 'dns', + name: 'lookupService', + detail: { + host: address, + port, + }, + }); + } return req; } ObjectDefineProperty(lookupService, customPromisifyArgs, - { value: ['hostname', 'service'], enumerable: false }); + { __proto__: null, value: ['hostname', 'service'], enumerable: false }); function onresolve(err, result, ttls) { @@ -256,7 +303,9 @@ function onresolve(err, result, ttls) { this.callback(dnsException(err, this.bindingName, this.hostname)); else { this.callback(null, result); - stopPerf(this, kPerfHooksDnsLookupResolveContext); + if (this[kPerfHooksDnsLookupResolveContext] && hasObserver('dns')) { + stopPerf(this, kPerfHooksDnsLookupResolveContext); + } } } @@ -279,17 +328,19 @@ function resolver(bindingName) { req.ttl = !!(options && options.ttl); const err = this._handle[bindingName](req, toASCII(name)); if (err) throw dnsException(err, bindingName, name); - startPerf(req, kPerfHooksDnsLookupResolveContext, { - type: 'dns', - name: bindingName, - detail: { - host: name, - ttl: req.ttl - } - }); + if (hasObserver('dns')) { + startPerf(req, kPerfHooksDnsLookupResolveContext, { + type: 'dns', + name: bindingName, + detail: { + host: name, + ttl: req.ttl, + }, + }); + } return req; } - ObjectDefineProperty(query, 'name', { value: bindingName }); + ObjectDefineProperty(query, 'name', { __proto__: null, value: bindingName }); return query; } @@ -352,43 +403,42 @@ module.exports = { V4MAPPED: cares.AI_V4MAPPED, // ERROR CODES - NODATA: 'ENODATA', - FORMERR: 'EFORMERR', - SERVFAIL: 'ESERVFAIL', - NOTFOUND: 'ENOTFOUND', - NOTIMP: 'ENOTIMP', - REFUSED: 'EREFUSED', - BADQUERY: 'EBADQUERY', - BADNAME: 'EBADNAME', - BADFAMILY: 'EBADFAMILY', - BADRESP: 'EBADRESP', - CONNREFUSED: 'ECONNREFUSED', - TIMEOUT: 'ETIMEOUT', - EOF: 'EOF', - FILE: 'EFILE', - NOMEM: 'ENOMEM', - DESTRUCTION: 'EDESTRUCTION', - BADSTR: 'EBADSTR', - BADFLAGS: 'EBADFLAGS', - NONAME: 'ENONAME', - BADHINTS: 'EBADHINTS', - NOTINITIALIZED: 'ENOTINITIALIZED', - LOADIPHLPAPI: 'ELOADIPHLPAPI', - ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS', - CANCELLED: 'ECANCELLED' + NODATA, + FORMERR, + SERVFAIL, + NOTFOUND, + NOTIMP, + REFUSED, + BADQUERY, + BADNAME, + BADFAMILY, + BADRESP, + CONNREFUSED, + TIMEOUT, + EOF, + FILE, + NOMEM, + DESTRUCTION, + BADSTR, + BADFLAGS, + NONAME, + BADHINTS, + NOTINITIALIZED, + LOADIPHLPAPI, + ADDRGETNETWORKPARAMS, + CANCELLED, }; bindDefaultResolver(module.exports, getDefaultResolver()); ObjectDefineProperties(module.exports, { promises: { + __proto__: null, configurable: true, enumerable: true, get() { if (promises === null) { promises = require('internal/dns/promises'); - promises.setServers = defaultResolverSetServers; - promises.setDefaultResultOrder = setDefaultResultOrder; } return promises; } diff --git a/lib/dns/promises.js b/lib/dns/promises.js index ad8a2561ef51e4..35881e5bb47374 100644 --- a/lib/dns/promises.js +++ b/lib/dns/promises.js @@ -1,5 +1,3 @@ 'use strict'; -const dnsPromises = require('internal/dns/promises'); -dnsPromises.setServers = require('dns').setServers; -module.exports = dnsPromises; +module.exports = require('internal/dns/promises'); diff --git a/lib/domain.js b/lib/domain.js index fbce94bad5fe28..20cdd4090d9c1f 100644 --- a/lib/domain.js +++ b/lib/domain.js @@ -59,6 +59,7 @@ const { WeakReference } = internalBinding('util'); // effective optimizations const _domain = [null]; ObjectDefineProperty(process, 'domain', { + __proto__: null, enumerable: true, get: function() { return _domain[0]; @@ -78,6 +79,7 @@ const asyncHook = createHook({ // have a domain property as it can be used to escape the sandbox. if (type !== 'PROMISE' || resource instanceof Promise) { ObjectDefineProperty(resource, 'domain', { + __proto__: null, configurable: true, enumerable: false, value: process.domain, @@ -231,6 +233,7 @@ Domain.prototype._errorHandler = function(er) { if ((typeof er === 'object' && er !== null) || typeof er === 'function') { ObjectDefineProperty(er, 'domain', { + __proto__: null, configurable: true, enumerable: false, value: this, @@ -356,6 +359,7 @@ Domain.prototype.add = function(ee) { } ObjectDefineProperty(ee, 'domain', { + __proto__: null, configurable: true, enumerable: false, value: this, @@ -388,6 +392,7 @@ function intercepted(_this, self, cb, fnargs) { er.domainBound = cb; er.domainThrown = false; ObjectDefineProperty(er, 'domain', { + __proto__: null, configurable: true, enumerable: false, value: self, @@ -433,6 +438,7 @@ Domain.prototype.bind = function(cb) { } ObjectDefineProperty(runBound, 'domain', { + __proto__: null, configurable: true, enumerable: false, value: this, @@ -448,6 +454,7 @@ EventEmitter.usingDomains = true; const eventInit = EventEmitter.init; EventEmitter.init = function(opts) { ObjectDefineProperty(this, 'domain', { + __proto__: null, configurable: true, enumerable: false, value: null, @@ -482,6 +489,7 @@ EventEmitter.prototype.emit = function emit(...args) { if (typeof er === 'object') { er.domainEmitter = this; ObjectDefineProperty(er, 'domain', { + __proto__: null, configurable: true, enumerable: false, value: domain, diff --git a/lib/events.js b/lib/events.js index 7b5de246b9cf99..422231deea40e1 100644 --- a/lib/events.js +++ b/lib/events.js @@ -52,6 +52,9 @@ const { SymbolAsyncIterator, } = primordials; const kRejection = SymbolFor('nodejs.rejection'); + +const { kEmptyObject } = require('internal/util'); + const { inspect } = require('internal/util/inspect'); let spliceOne; @@ -219,6 +222,7 @@ EventEmitter.usingDomains = false; EventEmitter.captureRejectionSymbol = kRejection; ObjectDefineProperty(EventEmitter, 'captureRejections', { + __proto__: null, get() { return EventEmitter.prototype[kCapture]; }, @@ -231,6 +235,7 @@ ObjectDefineProperty(EventEmitter, 'captureRejections', { }); ObjectDefineProperty(EventEmitter, 'EventEmitterAsyncResource', { + __proto__: null, enumerable: true, get: lazyEventEmitterAsyncResource, set: undefined, @@ -241,6 +246,7 @@ EventEmitter.errorMonitor = kErrorMonitor; // The default for captureRejections is false ObjectDefineProperty(EventEmitter.prototype, kCapture, { + __proto__: null, value: false, writable: true, enumerable: false @@ -260,6 +266,7 @@ function checkListener(listener) { } ObjectDefineProperty(EventEmitter, 'defaultMaxListeners', { + __proto__: null, enumerable: true, get: function() { return defaultMaxListeners; @@ -276,12 +283,14 @@ ObjectDefineProperty(EventEmitter, 'defaultMaxListeners', { ObjectDefineProperties(EventEmitter, { kMaxEventTargetListeners: { + __proto__: null, value: kMaxEventTargetListeners, enumerable: false, configurable: false, writable: false, }, kMaxEventTargetListenersWarned: { + __proto__: null, value: kMaxEventTargetListenersWarned, enumerable: false, configurable: false, @@ -493,6 +502,7 @@ EventEmitter.prototype.emit = function emit(type, ...args) { const capture = {}; ErrorCaptureStackTrace(capture, EventEmitter.prototype.emit); ObjectDefineProperty(er, kEnhanceStackBeforeInspector, { + __proto__: null, value: FunctionPrototypeBind(enhanceStackTrace, this, er, capture), configurable: true }); @@ -938,7 +948,7 @@ function getEventListeners(emitterOrTarget, type) { * @param {{ signal: AbortSignal; }} [options] * @returns {Promise} */ -async function once(emitter, name, options = {}) { +async function once(emitter, name, options = kEmptyObject) { const signal = options?.signal; validateAbortSignal(signal, 'options.signal'); if (signal?.aborted) @@ -962,6 +972,8 @@ async function once(emitter, name, options = {}) { }; eventTargetAgnosticAddListener(emitter, name, resolver, { once: true }); if (name !== 'error' && typeof emitter.once === 'function') { + // EventTarget does not have `error` event semantics like Node + // EventEmitters, we listen to `error` events only on EventEmitters. emitter.once('error', errorListener); } function abortListener() { @@ -1001,9 +1013,7 @@ function eventTargetAgnosticAddListener(emitter, name, listener, flags) { emitter.on(name, listener); } } else if (typeof emitter.addEventListener === 'function') { - // EventTarget does not have `error` event semantics like Node - // EventEmitters, we do not listen to `error` events here. - emitter.addEventListener(name, (arg) => { listener(arg); }, flags); + emitter.addEventListener(name, listener, flags); } else { throw new ERR_INVALID_ARG_TYPE('emitter', 'EventEmitter', emitter); } diff --git a/lib/fs.js b/lib/fs.js index 405c206d56685c..ba1b3597bda479 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -83,7 +83,14 @@ const { const { FSReqCallback } = binding; const { toPathIfFileURL } = require('internal/url'); -const internalUtil = require('internal/util'); +const { + customPromisifyArgs: kCustomPromisifyArgsSymbol, + deprecate, + kEmptyObject, + promisify: { + custom: kCustomPromisifiedSymbol, + }, +} = require('internal/util'); const { constants: { kIoMaxLength, @@ -136,6 +143,7 @@ const { validateEncoding, validateFunction, validateInteger, + validateObject, validateString, } = require('internal/validators'); @@ -163,7 +171,7 @@ const isWindows = process.platform === 'win32'; const isOSX = process.platform === 'darwin'; -const showStringCoercionDeprecation = internalUtil.deprecate( +const showStringCoercionDeprecation = deprecate( () => {}, 'Implicit coercion of objects with own toString property is deprecated.', 'DEP0162' @@ -275,10 +283,11 @@ function exists(path, callback) { } } -ObjectDefineProperty(exists, internalUtil.promisify.custom, { - value: (path) => { +ObjectDefineProperty(exists, kCustomPromisifiedSymbol, { + __proto__: null, + value: function exists(path) { // eslint-disable-line func-name-matching return new Promise((resolve) => fs.exists(path, resolve)); - } + }, }); // fs.existsSync never throws, it only returns true or false. @@ -595,9 +604,9 @@ function openSync(path, flags, mode) { * Reads file from the specified `fd` (file descriptor). * @param {number} fd * @param {Buffer | TypedArray | DataView} buffer - * @param {number} offset + * @param {number} offsetOrOptions * @param {number} length - * @param {number | bigint} position + * @param {number | bigint | null} position * @param {( * err?: Error, * bytesRead?: number, @@ -605,30 +614,36 @@ function openSync(path, flags, mode) { * ) => any} callback * @returns {void} */ -function read(fd, buffer, offset, length, position, callback) { +function read(fd, buffer, offsetOrOptions, length, position, callback) { fd = getValidatedFd(fd); - if (arguments.length <= 3) { - // Assume fs.read(fd, options, callback) - let options = ObjectCreate(null); - if (arguments.length < 3) { + let offset = offsetOrOptions; + let params = null; + if (arguments.length <= 4) { + if (arguments.length === 4) { + // This is fs.read(fd, buffer, options, callback) + validateObject(offsetOrOptions, 'options', { nullable: true }); + callback = length; + params = offsetOrOptions; + } else if (arguments.length === 3) { + // This is fs.read(fd, bufferOrParams, callback) + if (!isArrayBufferView(buffer)) { + // This is fs.read(fd, params, callback) + params = buffer; + ({ buffer = Buffer.alloc(16384) } = params ?? kEmptyObject); + } + callback = offsetOrOptions; + } else { // This is fs.read(fd, callback) - // buffer will be the callback callback = buffer; - } else { - // This is fs.read(fd, {}, callback) - // buffer will be the options object - // offset is the callback - options = buffer; - callback = offset; + buffer = Buffer.alloc(16384); } ({ - buffer = Buffer.alloc(16384), offset = 0, length = buffer.byteLength - offset, - position = null - } = options); + position = null, + } = params ?? kEmptyObject); } validateBuffer(buffer); @@ -671,8 +686,8 @@ function read(fd, buffer, offset, length, position, callback) { binding.read(fd, buffer, offset, length, position, req); } -ObjectDefineProperty(read, internalUtil.customPromisifyArgs, - { value: ['bytesRead', 'buffer'], enumerable: false }); +ObjectDefineProperty(read, kCustomPromisifyArgsSymbol, + { __proto__: null, value: ['bytesRead', 'buffer'], enumerable: false }); /** * Synchronously reads the file from the @@ -682,7 +697,7 @@ ObjectDefineProperty(read, internalUtil.customPromisifyArgs, * @param {{ * offset?: number; * length?: number; - * position?: number | bigint; + * position?: number | bigint | null; * }} [offset] * @returns {number} */ @@ -693,12 +708,12 @@ function readSync(fd, buffer, offset, length, position) { if (arguments.length <= 3) { // Assume fs.readSync(fd, buffer, options) - const options = offset || ObjectCreate(null); + const options = offset || kEmptyObject; ({ offset = 0, length = buffer.byteLength - offset, - position = null + position = null, } = options); } @@ -738,7 +753,7 @@ function readSync(fd, buffer, offset, length, position) { * and writes to an array of `ArrayBufferView`s. * @param {number} fd * @param {ArrayBufferView[]} buffers - * @param {number} [position] + * @param {number | null} [position] * @param {( * err?: Error, * bytesRead?: number, @@ -764,8 +779,8 @@ function readv(fd, buffers, position, callback) { return binding.readBuffers(fd, buffers, position, req); } -ObjectDefineProperty(readv, internalUtil.customPromisifyArgs, - { value: ['bytesRead', 'buffers'], enumerable: false }); +ObjectDefineProperty(readv, kCustomPromisifyArgsSymbol, + { __proto__: null, value: ['bytesRead', 'buffers'], enumerable: false }); /** * Synchronously reads file from the @@ -773,7 +788,7 @@ ObjectDefineProperty(readv, internalUtil.customPromisifyArgs, * of `ArrayBufferView`s. * @param {number} fd * @param {ArrayBufferView[]} buffers - * @param {number} [position] + * @param {number | null} [position] * @returns {number} */ function readvSync(fd, buffers, position) { @@ -794,9 +809,9 @@ function readvSync(fd, buffers, position) { * Writes `buffer` to the specified `fd` (file descriptor). * @param {number} fd * @param {Buffer | TypedArray | DataView | string | object} buffer - * @param {number} [offset] + * @param {number | object} [offsetOrOptions] * @param {number} [length] - * @param {number} [position] + * @param {number | null} [position] * @param {( * err?: Error, * bytesWritten?: number; @@ -804,7 +819,7 @@ function readvSync(fd, buffers, position) { * ) => any} callback * @returns {void} */ -function write(fd, buffer, offset, length, position, callback) { +function write(fd, buffer, offsetOrOptions, length, position, callback) { function wrapper(err, written) { // Retain a reference to buffer so that it can't be GC'ed too soon. callback(err, written || 0, buffer); @@ -812,8 +827,18 @@ function write(fd, buffer, offset, length, position, callback) { fd = getValidatedFd(fd); + let offset = offsetOrOptions; if (isArrayBufferView(buffer)) { callback = maybeCallback(callback || position || length || offset); + + if (typeof offset === 'object') { + ({ + offset = 0, + length = buffer.byteLength - offset, + position = null, + } = offsetOrOptions ?? kEmptyObject); + } + if (offset == null || typeof offset === 'function') { offset = 0; } else { @@ -854,24 +879,35 @@ function write(fd, buffer, offset, length, position, callback) { return binding.writeString(fd, str, offset, length, req); } -ObjectDefineProperty(write, internalUtil.customPromisifyArgs, - { value: ['bytesWritten', 'buffer'], enumerable: false }); +ObjectDefineProperty(write, kCustomPromisifyArgsSymbol, + { __proto__: null, value: ['bytesWritten', 'buffer'], enumerable: false }); /** * Synchronously writes `buffer` to the * specified `fd` (file descriptor). * @param {number} fd * @param {Buffer | TypedArray | DataView | string} buffer - * @param {number} [offset] - * @param {number} [length] - * @param {number} [position] + * @param {{ + * offset?: number; + * length?: number; + * position?: number | null; + * }} [offsetOrOptions] * @returns {number} */ -function writeSync(fd, buffer, offset, length, position) { +function writeSync(fd, buffer, offsetOrOptions, length, position) { fd = getValidatedFd(fd); const ctx = {}; let result; + + let offset = offsetOrOptions; if (isArrayBufferView(buffer)) { + if (typeof offset === 'object') { + ({ + offset = 0, + length = buffer.byteLength - offset, + position = null, + } = offsetOrOptions ?? kEmptyObject); + } if (position === undefined) position = null; if (offset == null) { @@ -902,7 +938,7 @@ function writeSync(fd, buffer, offset, length, position) { * specified `fd` (file descriptor). * @param {number} fd * @param {ArrayBufferView[]} buffers - * @param {number} [position] + * @param {number | null} [position] * @param {( * err?: Error, * bytesWritten?: number, @@ -933,7 +969,8 @@ function writev(fd, buffers, position, callback) { return binding.writeBuffers(fd, buffers, position, req); } -ObjectDefineProperty(writev, internalUtil.customPromisifyArgs, { +ObjectDefineProperty(writev, kCustomPromisifyArgsSymbol, { + __proto__: null, value: ['bytesWritten', 'buffer'], enumerable: false }); @@ -943,7 +980,7 @@ ObjectDefineProperty(writev, internalUtil.customPromisifyArgs, { * to the specified `fd` (file descriptor). * @param {number} fd * @param {ArrayBufferView[]} buffers - * @param {number} [position] + * @param {number | null} [position] * @returns {number} */ function writevSync(fd, buffers, position) { @@ -1375,7 +1412,7 @@ function mkdirSync(path, options) { */ function readdir(path, options, callback) { callback = makeCallback(typeof options === 'function' ? options : callback); - options = getOptions(options, {}); + options = getOptions(options); path = getValidatedPath(path); const req = new FSReqCallback(); @@ -1404,7 +1441,7 @@ function readdir(path, options, callback) { * @returns {string | Buffer[] | Dirent[]} */ function readdirSync(path, options) { - options = getOptions(options, {}); + options = getOptions(options); path = getValidatedPath(path); const ctx = { path }; const result = binding.readdir(pathModule.toNamespacedPath(path), @@ -1428,7 +1465,7 @@ function readdirSync(path, options) { function fstat(fd, options = { bigint: false }, callback) { if (typeof options === 'function') { callback = options; - options = {}; + options = kEmptyObject; } fd = getValidatedFd(fd); callback = makeStatsCallback(callback); @@ -1452,7 +1489,7 @@ function fstat(fd, options = { bigint: false }, callback) { function lstat(path, options = { bigint: false }, callback) { if (typeof options === 'function') { callback = options; - options = {}; + options = kEmptyObject; } callback = makeStatsCallback(callback); path = getValidatedPath(path); @@ -1475,7 +1512,7 @@ function lstat(path, options = { bigint: false }, callback) { function stat(path, options = { bigint: false }, callback) { if (typeof options === 'function') { callback = options; - options = {}; + options = kEmptyObject; } callback = makeStatsCallback(callback); path = getValidatedPath(path); @@ -1573,7 +1610,7 @@ function statSync(path, options = { bigint: false, throwIfNoEntry: true }) { */ function readlink(path, options, callback) { callback = makeCallback(typeof options === 'function' ? options : callback); - options = getOptions(options, {}); + options = getOptions(options); path = getValidatedPath(path, 'oldPath'); const req = new FSReqCallback(); req.oncomplete = callback; @@ -1588,7 +1625,7 @@ function readlink(path, options, callback) { * @returns {string | Buffer} */ function readlinkSync(path, options) { - options = getOptions(options, {}); + options = getOptions(options); path = getValidatedPath(path, 'oldPath'); const ctx = { path }; const result = binding.readlink(pathModule.toNamespacedPath(path), @@ -1601,7 +1638,7 @@ function readlinkSync(path, options) { * Creates the link called `path` pointing to `target`. * @param {string | Buffer | URL} target * @param {string | Buffer | URL} path - * @param {string} [type_] + * @param {string | null} [type_] * @param {(err?: Error) => any} callback_ * @returns {void} */ @@ -1654,7 +1691,7 @@ function symlink(target, path, type_, callback_) { * pointing to `target`. * @param {string | Buffer | URL} target * @param {string | Buffer | URL} path - * @param {string} [type] + * @param {string | null} [type] * @returns {void} */ function symlinkSync(target, path, type) { @@ -2265,7 +2302,7 @@ function watch(filename, options, listener) { if (typeof options === 'function') { listener = options; } - options = getOptions(options, {}); + options = getOptions(options); // Don't make changes directly on options object options = copyObject(options); @@ -2428,8 +2465,6 @@ if (isWindows) { }; } -const emptyObj = ObjectCreate(null); - /** * Returns the resolved pathname. * @param {string | Buffer | URL} p @@ -2437,7 +2472,7 @@ const emptyObj = ObjectCreate(null); * @returns {string | Buffer} */ function realpathSync(p, options) { - options = getOptions(options, emptyObj); + options = getOptions(options); p = toPathIfFileURL(p); if (typeof p !== 'string') { p += ''; @@ -2574,7 +2609,7 @@ function realpathSync(p, options) { * @returns {string | Buffer} */ realpathSync.native = (path, options) => { - options = getOptions(options, {}); + options = getOptions(options); path = getValidatedPath(path); const ctx = { path }; const result = binding.realpath(path, options.encoding, undefined, ctx); @@ -2595,7 +2630,7 @@ realpathSync.native = (path, options) => { */ function realpath(p, options, callback) { callback = typeof options === 'function' ? options : maybeCallback(callback); - options = getOptions(options, {}); + options = getOptions(options); p = toPathIfFileURL(p); if (typeof p !== 'string') { @@ -2733,7 +2768,7 @@ function realpath(p, options, callback) { */ realpath.native = (path, options, callback) => { callback = makeCallback(callback || options); - options = getOptions(options, {}); + options = getOptions(options); path = getValidatedPath(path); const req = new FSReqCallback(); req.oncomplete = callback; @@ -2752,7 +2787,7 @@ realpath.native = (path, options, callback) => { */ function mkdtemp(prefix, options, callback) { callback = makeCallback(typeof options === 'function' ? options : callback); - options = getOptions(options, {}); + options = getOptions(options); validateString(prefix, 'prefix'); nullCheck(prefix, 'prefix'); @@ -2769,7 +2804,7 @@ function mkdtemp(prefix, options, callback) { * @returns {string} */ function mkdtempSync(prefix, options) { - options = getOptions(options, {}); + options = getOptions(options); validateString(prefix, 'prefix'); nullCheck(prefix, 'prefix'); @@ -2879,7 +2914,7 @@ function lazyLoadStreams() { /** * Creates a readable stream with a default `highWaterMark` - * of 64 kb. + * of 64 KiB. * @param {string | Buffer | URL} path * @param {string | { * flags?: string; @@ -3055,16 +3090,18 @@ module.exports = fs = { }; ObjectDefineProperties(fs, { - F_OK: { enumerable: true, value: F_OK || 0 }, - R_OK: { enumerable: true, value: R_OK || 0 }, - W_OK: { enumerable: true, value: W_OK || 0 }, - X_OK: { enumerable: true, value: X_OK || 0 }, + F_OK: { __proto__: null, enumerable: true, value: F_OK || 0 }, + R_OK: { __proto__: null, enumerable: true, value: R_OK || 0 }, + W_OK: { __proto__: null, enumerable: true, value: W_OK || 0 }, + X_OK: { __proto__: null, enumerable: true, value: X_OK || 0 }, constants: { + __proto__: null, configurable: false, enumerable: true, value: constants }, promises: { + __proto__: null, configurable: true, enumerable: true, get() { diff --git a/lib/http.js b/lib/http.js index 5120ec65e3f25b..1366656e42eb94 100644 --- a/lib/http.js +++ b/lib/http.js @@ -127,6 +127,7 @@ module.exports = { }; ObjectDefineProperty(module.exports, 'maxHeaderSize', { + __proto__: null, configurable: true, enumerable: true, get() { @@ -140,6 +141,7 @@ ObjectDefineProperty(module.exports, 'maxHeaderSize', { }); ObjectDefineProperty(module.exports, 'globalAgent', { + __proto__: null, configurable: true, enumerable: true, get() { diff --git a/lib/https.js b/lib/https.js index 3834a881775349..7ae8ab2987538b 100644 --- a/lib/https.js +++ b/lib/https.js @@ -34,12 +34,17 @@ const { ReflectConstruct, } = primordials; -require('internal/util').assertCrypto(); +const { + assertCrypto, + kEmptyObject, +} = require('internal/util'); +assertCrypto(); const tls = require('tls'); const { Agent: HttpAgent } = require('_http_agent'); const { Server: HttpServer, + setupConnectionsTracking, storeHTTPOptions, _connectionListener, } = require('_http_server'); @@ -80,14 +85,16 @@ function Server(opts, requestListener) { }); this.timeout = 0; - this.keepAliveTimeout = 5000; this.maxHeadersCount = null; - this.headersTimeout = 60 * 1000; // 60 seconds - this.requestTimeout = 0; + setupConnectionsTracking(this); } ObjectSetPrototypeOf(Server.prototype, tls.Server.prototype); ObjectSetPrototypeOf(Server, tls.Server); +Server.prototype.closeAllConnections = HttpServer.prototype.closeAllConnections; + +Server.prototype.closeIdleConnections = HttpServer.prototype.closeIdleConnections; + Server.prototype.setTimeout = HttpServer.prototype.setTimeout; /** @@ -203,7 +210,7 @@ Agent.prototype.createConnection = createConnection; * }} [options] * @returns {string} */ -Agent.prototype.getName = function getName(options = {}) { +Agent.prototype.getName = function getName(options = kEmptyObject) { let name = FunctionPrototypeCall(HttpAgent.prototype.getName, this, options); name += ':'; diff --git a/lib/inspector.js b/lib/inspector.js index 58d8dbe45c7213..5ffb2d9d6658e0 100644 --- a/lib/inspector.js +++ b/lib/inspector.js @@ -37,7 +37,8 @@ const { open, url, isEnabled, - waitForDebugger + waitForDebugger, + console, } = internalBinding('inspector'); const connectionSymbol = Symbol('connectionProperty'); @@ -188,8 +189,6 @@ module.exports = { close: process._debugEnd, url, waitForDebugger: inspectorWaitForDebugger, - // This is dynamically added during bootstrap, - // where the console from the VM is still available - console: require('internal/util/inspector').consoleFromVM, + console, Session }; diff --git a/lib/internal/abort_controller.js b/lib/internal/abort_controller.js index 7e89e43cc7cead..e4f5f14f1e4cbe 100644 --- a/lib/internal/abort_controller.js +++ b/lib/internal/abort_controller.js @@ -265,6 +265,7 @@ ObjectDefineProperties(AbortSignal.prototype, { }); ObjectDefineProperty(AbortSignal.prototype, SymbolToStringTag, { + __proto__: null, writable: false, enumerable: false, configurable: true, @@ -334,6 +335,7 @@ ObjectDefineProperties(AbortController.prototype, { }); ObjectDefineProperty(AbortController.prototype, SymbolToStringTag, { + __proto__: null, writable: false, enumerable: false, configurable: true, diff --git a/lib/internal/assert/assertion_error.js b/lib/internal/assert/assertion_error.js index 837c37b1221540..3deb8185229d7f 100644 --- a/lib/internal/assert/assertion_error.js +++ b/lib/internal/assert/assertion_error.js @@ -55,7 +55,7 @@ function copyError(source) { for (const key of keys) { target[key] = source[key]; } - ObjectDefineProperty(target, 'message', { value: source.message }); + ObjectDefineProperty(target, 'message', { __proto__: null, value: source.message }); return target; } @@ -441,6 +441,7 @@ class AssertionError extends Error { this.generatedMessage = !message; ObjectDefineProperty(this, 'name', { + __proto__: null, value: 'AssertionError [ERR_ASSERTION]', enumerable: false, writable: true, diff --git a/lib/internal/assert/calltracker.js b/lib/internal/assert/calltracker.js index 0fbdf70e5d825c..f00f2e33271980 100644 --- a/lib/internal/assert/calltracker.js +++ b/lib/internal/assert/calltracker.js @@ -4,6 +4,7 @@ const { ArrayPrototypePush, Error, FunctionPrototype, + Proxy, ReflectApply, SafeSet, } = primordials; @@ -46,20 +47,23 @@ class CallTracker { const callChecks = this.#callChecks; callChecks.add(context); - return function() { - context.actual++; - if (context.actual === context.exact) { - // Once function has reached its call count remove it from - // callChecks set to prevent memory leaks. - callChecks.delete(context); - } - // If function has been called more than expected times, add back into - // callchecks. - if (context.actual === context.exact + 1) { - callChecks.add(context); - } - return ReflectApply(fn, this, arguments); - }; + return new Proxy(fn, { + __proto__: null, + apply(fn, thisArg, argList) { + context.actual++; + if (context.actual === context.exact) { + // Once function has reached its call count remove it from + // callChecks set to prevent memory leaks. + callChecks.delete(context); + } + // If function has been called more than expected times, add back into + // callchecks. + if (context.actual === context.exact + 1) { + callChecks.add(context); + } + return ReflectApply(fn, thisArg, argList); + }, + }); } report() { diff --git a/lib/internal/async_hooks.js b/lib/internal/async_hooks.js index 107aab227e4637..25f0075bf45a07 100644 --- a/lib/internal/async_hooks.js +++ b/lib/internal/async_hooks.js @@ -255,6 +255,7 @@ function emitHookFactory(symbol, name) { // Set the name property of the function as it looks good in the stack trace. ObjectDefineProperty(fn, 'name', { + __proto__: null, value: name }); return fn; diff --git a/lib/internal/blob.js b/lib/internal/blob.js index 8fee1d91f79448..836baac7ed2452 100644 --- a/lib/internal/blob.js +++ b/lib/internal/blob.js @@ -44,6 +44,7 @@ const { const { createDeferredPromise, customInspectSymbol: kInspect, + kEmptyObject, } = require('internal/util'); const { inspect } = require('internal/util/inspect'); @@ -134,7 +135,7 @@ class Blob { * }} [options] * @constructs {Blob} */ - constructor(sources = [], options = {}) { + constructor(sources = [], options = kEmptyObject) { if (sources === null || typeof sources[SymbolIterator] !== 'function' || typeof sources === 'string') { @@ -356,6 +357,7 @@ function createBlob(handle, length, type = '') { } ObjectDefineProperty(Blob.prototype, SymbolToStringTag, { + __proto__: null, configurable: true, value: 'Blob', }); diff --git a/lib/internal/bootstrap/browser.js b/lib/internal/bootstrap/browser.js index 49d69b939687ca..4df2fa0a495749 100644 --- a/lib/internal/bootstrap/browser.js +++ b/lib/internal/bootstrap/browser.js @@ -12,11 +12,9 @@ const { } = require('internal/util'); const config = internalBinding('config'); -// Override global console from the one provided by the VM -// to the one implemented by Node.js // https://console.spec.whatwg.org/#console-namespace exposeNamespace(globalThis, 'console', - createGlobalConsole(globalThis.console)); + createGlobalConsole()); const { URL, URLSearchParams } = require('internal/url'); // https://url.spec.whatwg.org/#url @@ -67,20 +65,25 @@ defineOperation(globalThis, 'clearTimeout', timers.clearTimeout); defineOperation(globalThis, 'setInterval', timers.setInterval); defineOperation(globalThis, 'setTimeout', timers.setTimeout); +const buffer = require('buffer'); +defineOperation(globalThis, 'atob', buffer.atob); +defineOperation(globalThis, 'btoa', buffer.btoa); + +// https://www.w3.org/TR/FileAPI/#dfn-Blob +exposeInterface(globalThis, 'Blob', buffer.Blob); + // https://www.w3.org/TR/hr-time-2/#the-performance-attribute defineReplacableAttribute(globalThis, 'performance', require('perf_hooks').performance); -function createGlobalConsole(consoleFromVM) { +function createGlobalConsole() { const consoleFromNode = require('internal/console/global'); if (config.hasInspector) { const inspector = require('internal/util/inspector'); - // This will be exposed by `require('inspector').console` later. - inspector.consoleFromVM = consoleFromVM; // TODO(joyeecheung): postpone this until the first time inspector // is activated. - inspector.wrapConsole(consoleFromNode, consoleFromVM); + inspector.wrapConsole(consoleFromNode); const { setConsoleExtensionInstaller } = internalBinding('inspector'); // Setup inspector command line API. setConsoleExtensionInstaller(inspector.installConsoleExtensions); @@ -91,6 +94,7 @@ function createGlobalConsole(consoleFromVM) { // https://heycam.github.io/webidl/#es-namespaces function exposeNamespace(target, name, namespaceObject) { ObjectDefineProperty(target, name, { + __proto__: null, writable: true, enumerable: false, configurable: true, @@ -100,6 +104,7 @@ function exposeNamespace(target, name, namespaceObject) { function exposeGetterAndSetter(target, name, getter, setter = undefined) { ObjectDefineProperty(target, name, { + __proto__: null, enumerable: false, configurable: true, get: getter, @@ -110,6 +115,7 @@ function exposeGetterAndSetter(target, name, getter, setter = undefined) { // https://heycam.github.io/webidl/#Replaceable function defineReplacableAttribute(target, name, value) { ObjectDefineProperty(target, name, { + __proto__: null, writable: true, enumerable: true, configurable: true, diff --git a/lib/internal/bootstrap/loaders.js b/lib/internal/bootstrap/loaders.js index bc2a83034256d6..41162fabcbc589 100644 --- a/lib/internal/bootstrap/loaders.js +++ b/lib/internal/bootstrap/loaders.js @@ -64,6 +64,7 @@ const { // Set up process.moduleLoadList. const moduleLoadList = []; ObjectDefineProperty(process, 'moduleLoadList', { + __proto__: null, value: moduleLoadList, configurable: true, enumerable: true, diff --git a/lib/internal/bootstrap/node.js b/lib/internal/bootstrap/node.js index 1fc59fdeffd510..0f72e3e67af306 100644 --- a/lib/internal/bootstrap/node.js +++ b/lib/internal/bootstrap/node.js @@ -45,7 +45,6 @@ const { FunctionPrototypeCall, JSONParse, ObjectDefineProperty, - ObjectDefineProperties, ObjectGetPrototypeOf, ObjectPreventExtensions, ObjectSetPrototypeOf, @@ -134,6 +133,7 @@ let processConfig = new Proxy( deprecationHandler); ObjectDefineProperty(process, 'config', { + __proto__: null, enumerable: true, configurable: true, get() { return processConfig; }, @@ -233,6 +233,7 @@ setTraceCategoryStateUpdateHandler(perThreadSetup.toggleTraceCategoryState); // process.allowedNodeEnvironmentFlags ObjectDefineProperty(process, 'allowedNodeEnvironmentFlags', { + __proto__: null, get() { const flags = perThreadSetup.buildAllowedFlags(); process.allowedNodeEnvironmentFlags = flags; @@ -242,6 +243,7 @@ ObjectDefineProperty(process, 'allowedNodeEnvironmentFlags', { // this completely to that value. set(value) { ObjectDefineProperty(this, 'allowedNodeEnvironmentFlags', { + __proto__: null, value, configurable: true, enumerable: true, @@ -270,15 +272,15 @@ const features = { tls_sni: hasOpenSSL, tls_ocsp: hasOpenSSL, tls: hasOpenSSL, - // This needs to be dynamic because snapshot is built without code cache. - // TODO(joyeecheung): https://github.com/nodejs/node/issues/31074 - // Make it possible to build snapshot with code cache + // This needs to be dynamic because --no-node-snapshot disables the + // code cache even if the binary is built with embedded code cache. get cached_builtins() { return nativeModule.hasCachedBuiltins(); } }; ObjectDefineProperty(process, 'features', { + __proto__: null, enumerable: true, writable: false, configurable: false, @@ -368,22 +370,33 @@ function setupProcessObject() { ObjectSetPrototypeOf(origProcProto, EventEmitter.prototype); FunctionPrototypeCall(EventEmitter, process); ObjectDefineProperty(process, SymbolToStringTag, { + __proto__: null, enumerable: false, writable: true, configurable: false, value: 'process' }); - // Make process globally available to users by putting it on the global proxy + + // Create global.process as getters so that we have a + // deprecation path for these in ES Modules. + // See https://github.com/nodejs/node/pull/26334. + let _process = process; ObjectDefineProperty(globalThis, 'process', { - value: process, + __proto__: null, + get() { + return _process; + }, + set(value) { + _process = value; + }, enumerable: false, - writable: true, - configurable: true + configurable: true, }); } function setupGlobalProxy() { ObjectDefineProperty(globalThis, SymbolToStringTag, { + __proto__: null, value: 'global', writable: false, enumerable: false, @@ -393,10 +406,7 @@ function setupGlobalProxy() { function setupBuffer() { const { - Blob, Buffer, - atob, - btoa, } = require('buffer'); const bufferBinding = internalBinding('buffer'); @@ -405,30 +415,19 @@ function setupBuffer() { delete bufferBinding.setBufferPrototype; delete bufferBinding.zeroFill; - ObjectDefineProperties(globalThis, { - 'Blob': { - value: Blob, - enumerable: false, - writable: true, - configurable: true, + // Create global.Buffer as getters so that we have a + // deprecation path for these in ES Modules. + // See https://github.com/nodejs/node/pull/26334. + let _Buffer = Buffer; + ObjectDefineProperty(globalThis, 'Buffer', { + __proto__: null, + get() { + return _Buffer; }, - 'Buffer': { - value: Buffer, - enumerable: false, - writable: true, - configurable: true, - }, - 'atob': { - value: atob, - enumerable: false, - writable: true, - configurable: true, - }, - 'btoa': { - value: btoa, - enumerable: false, - writable: true, - configurable: true, + set(value) { + _Buffer = value; }, + enumerable: false, + configurable: true, }); } diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js index b64dfaf980fd92..80092bf74e1676 100644 --- a/lib/internal/bootstrap/pre_execution.js +++ b/lib/internal/bootstrap/pre_execution.js @@ -23,8 +23,9 @@ const { exposeInterface, } = require('internal/util'); -const { Buffer } = require('buffer'); -const { ERR_MANIFEST_ASSERT_INTEGRITY } = require('internal/errors').codes; +const { + ERR_MANIFEST_ASSERT_INTEGRITY, +} = require('internal/errors').codes; const assert = require('internal/assert'); function prepareMainThreadExecution(expandArgv1 = false, @@ -52,7 +53,6 @@ function prepareMainThreadExecution(expandArgv1 = false, setupCoverageHooks(process.env.NODE_V8_COVERAGE); } - setupDebugEnv(); // Print stack trace on `SIGINT` if option `--trace-sigint` presents. @@ -83,6 +83,8 @@ function prepareMainThreadExecution(expandArgv1 = false, initializeDeprecations(); initializeWASI(); + require('internal/v8/startup_snapshot').runDeserializeCallbacks(); + if (!initialzeModules) { return; } @@ -106,6 +108,7 @@ function patchProcessObject(expandArgv1) { require('internal/process/per_thread').refreshHrtimeBuffer(); ObjectDefineProperty(process, 'argv0', { + __proto__: null, enumerable: true, // Only set it to true during snapshot building. configurable: getOptionValue('--build-snapshot'), @@ -154,6 +157,7 @@ function addReadOnlyProcessAlias(name, option, enumerable = true) { const value = getOptionValue(option); if (value) { ObjectDefineProperty(process, name, { + __proto__: null, writable: false, configurable: true, enumerable, @@ -185,12 +189,12 @@ function setupFetch() { return undici; } - emitExperimentalWarning('The Fetch API'); undici = require('internal/deps/undici/undici'); return undici; } async function fetch(input, init = undefined) { + emitExperimentalWarning('The Fetch API'); return lazyUndici().fetch(input, init); } @@ -215,6 +219,10 @@ function setupFetch() { Request: lazyInterface('Request'), Response: lazyInterface('Response'), }); + + // The WebAssembly Web API: https://webassembly.github.io/spec/web-api + const { wasmStreamingCallback } = require('internal/wasm_web_api'); + internalBinding('wasm_web_api').setImplementation(wasmStreamingCallback); } // TODO(aduh95): move this to internal/bootstrap/browser when the CLI flag is @@ -227,12 +235,12 @@ function setupWebCrypto() { let webcrypto; ObjectDefineProperty(globalThis, 'crypto', - ObjectGetOwnPropertyDescriptor({ + { __proto__: null, ...ObjectGetOwnPropertyDescriptor({ get crypto() { webcrypto ??= require('internal/crypto/webcrypto'); return webcrypto.crypto; } - }, 'crypto')); + }, 'crypto') }); if (internalBinding('config').hasOpenSSL) { webcrypto ??= require('internal/crypto/webcrypto'); exposeInterface(globalThis, 'Crypto', webcrypto.Crypto); @@ -275,6 +283,7 @@ function setupStacktracePrinterOnSigint() { function initializeReport() { const { report } = require('internal/process/report'); ObjectDefineProperty(process, 'report', { + __proto__: null, enumerable: true, configurable: true, get() { @@ -382,6 +391,7 @@ function initializeDeprecations() { const { noBrowserGlobals } = internalBinding('config'); if (noBrowserGlobals) { ObjectDefineProperty(process, '_noBrowserGlobals', { + __proto__: null, writable: false, enumerable: true, configurable: true, @@ -398,33 +408,6 @@ function initializeDeprecations() { 'process._tickCallback() is deprecated', 'DEP0134'); } - - // Create global.process and global.Buffer as getters so that we have a - // deprecation path for these in ES Modules. - // See https://github.com/nodejs/node/pull/26334. - let _process = process; - ObjectDefineProperty(globalThis, 'process', { - get() { - return _process; - }, - set(value) { - _process = value; - }, - enumerable: false, - configurable: true - }); - - let _Buffer = Buffer; - ObjectDefineProperty(globalThis, 'Buffer', { - get() { - return _Buffer; - }, - set(value) { - _Buffer = value; - }, - enumerable: false, - configurable: true - }); } function setupChildProcessIpcChannel() { diff --git a/lib/internal/bootstrap/switches/is_main_thread.js b/lib/internal/bootstrap/switches/is_main_thread.js index b7bd79e09c4acf..e4042ebe88212b 100644 --- a/lib/internal/bootstrap/switches/is_main_thread.js +++ b/lib/internal/bootstrap/switches/is_main_thread.js @@ -2,7 +2,10 @@ const { ObjectDefineProperty } = primordials; const rawMethods = internalBinding('process_methods'); - +const { + addSerializeCallback, + isBuildingSnapshot +} = require('v8').startupSnapshot; // TODO(joyeecheung): deprecate and remove these underscore methods process._debugProcess = rawMethods._debugProcess; process._debugEnd = rawMethods._debugEnd; @@ -15,6 +18,7 @@ process._stopProfilerIdleNotifier = () => {}; function defineStream(name, getter) { ObjectDefineProperty(process, name, { + __proto__: null, configurable: true, enumerable: true, get: getter @@ -133,6 +137,12 @@ function refreshStderrOnSigWinch() { stderr._refreshSize(); } +function addCleanup(fn) { + if (isBuildingSnapshot()) { + addSerializeCallback(fn); + } +} + function getStdout() { if (stdout) return stdout; stdout = createWritableStdioStream(1); @@ -144,12 +154,14 @@ function getStdout() { process.on('SIGWINCH', refreshStdoutOnSigWinch); } - internalBinding('mksnapshot').cleanups.push(function cleanupStdout() { + addCleanup(function cleanupStdout() { stdout._destroy = stdoutDestroy; stdout.destroy(); process.removeListener('SIGWINCH', refreshStdoutOnSigWinch); stdout = undefined; }); + // No need to add deserialize callback because stdout = undefined above + // causes the stream to be lazily initialized again later. return stdout; } @@ -163,12 +175,14 @@ function getStderr() { if (stderr.isTTY) { process.on('SIGWINCH', refreshStderrOnSigWinch); } - internalBinding('mksnapshot').cleanups.push(function cleanupStderr() { + addCleanup(function cleanupStderr() { stderr._destroy = stderrDestroy; stderr.destroy(); process.removeListener('SIGWINCH', refreshStderrOnSigWinch); stderr = undefined; }); + // No need to add deserialize callback because stderr = undefined above + // causes the stream to be lazily initialized again later. return stderr; } @@ -255,10 +269,12 @@ function getStdin() { } } - internalBinding('mksnapshot').cleanups.push(function cleanupStdin() { + addCleanup(function cleanupStdin() { stdin.destroy(); stdin = undefined; }); + // No need to add deserialize callback because stdin = undefined above + // causes the stream to be lazily initialized again later. return stdin; } diff --git a/lib/internal/bootstrap/switches/is_not_main_thread.js b/lib/internal/bootstrap/switches/is_not_main_thread.js index 379ad0a587a22a..cb129189b200a3 100644 --- a/lib/internal/bootstrap/switches/is_not_main_thread.js +++ b/lib/internal/bootstrap/switches/is_not_main_thread.js @@ -7,6 +7,7 @@ delete process._debugEnd; function defineStream(name, getter) { ObjectDefineProperty(process, name, { + __proto__: null, configurable: true, enumerable: true, get: getter diff --git a/lib/internal/child_process.js b/lib/internal/child_process.js index 0e4cfc2ead2bf4..9ad7bf8fd8593c 100644 --- a/lib/internal/child_process.js +++ b/lib/internal/child_process.js @@ -572,6 +572,7 @@ function setupChannel(target, channel, serializationMode) { target[kChannelHandle] = channel; ObjectDefineProperty(target, '_channel', { + __proto__: null, get: deprecate(() => { return target.channel; }, channelDeprecationMsg, 'DEP0129'), diff --git a/lib/internal/child_process/serialization.js b/lib/internal/child_process/serialization.js index ec858f401bea9e..497bf233d77897 100644 --- a/lib/internal/child_process/serialization.js +++ b/lib/internal/child_process/serialization.js @@ -4,6 +4,7 @@ const { JSONParse, JSONStringify, StringPrototypeSplit, + ArrayPrototypePush, Symbol, TypedArrayPrototypeSubarray, } = primordials; @@ -15,6 +16,7 @@ const assert = require('internal/assert'); const { streamBaseState, kLastWriteWasAsync } = internalBinding('stream_wrap'); const kMessageBuffer = Symbol('kMessageBuffer'); +const kMessageBufferSize = Symbol('kMessageBufferSize'); const kJSONBuffer = Symbol('kJSONBuffer'); const kStringDecoder = Symbol('kStringDecoder'); @@ -51,47 +53,77 @@ class ChildProcessDeserializer extends v8.DefaultDeserializer { // (aka 'advanced') const advanced = { initMessageChannel(channel) { - channel[kMessageBuffer] = Buffer.alloc(0); + channel[kMessageBuffer] = []; + channel[kMessageBufferSize] = 0; channel.buffering = false; }, *parseChannelMessages(channel, readData) { if (readData.length === 0) return; - let messageBuffer = Buffer.concat([channel[kMessageBuffer], readData]); - while (messageBuffer.length > 4) { - const size = messageBuffer.readUInt32BE(); - if (messageBuffer.length < 4 + size) { - break; - } + ArrayPrototypePush(channel[kMessageBuffer], readData); + channel[kMessageBufferSize] += readData.length; + + // Index 0 should always be present because we just pushed data into it. + let messageBufferHead = channel[kMessageBuffer][0]; + while (messageBufferHead.length >= 4) { + // We call `readUInt32BE` manually here, because this is faster than first converting + // it to a buffer and using `readUInt32BE` on that. + const fullMessageSize = ( + messageBufferHead[0] << 24 | + messageBufferHead[1] << 16 | + messageBufferHead[2] << 8 | + messageBufferHead[3] + ) + 4; + + if (channel[kMessageBufferSize] < fullMessageSize) break; + + const concatenatedBuffer = channel[kMessageBuffer].length === 1 ? + channel[kMessageBuffer][0] : + Buffer.concat( + channel[kMessageBuffer], + channel[kMessageBufferSize] + ); const deserializer = new ChildProcessDeserializer( - TypedArrayPrototypeSubarray(messageBuffer, 4, 4 + size)); - messageBuffer = TypedArrayPrototypeSubarray(messageBuffer, 4 + size); + TypedArrayPrototypeSubarray(concatenatedBuffer, 4, fullMessageSize) + ); + + messageBufferHead = TypedArrayPrototypeSubarray(concatenatedBuffer, fullMessageSize); + channel[kMessageBufferSize] = messageBufferHead.length; + channel[kMessageBuffer] = + channel[kMessageBufferSize] !== 0 ? [messageBufferHead] : []; deserializer.readHeader(); yield deserializer.readValue(); } - channel[kMessageBuffer] = messageBuffer; - channel.buffering = messageBuffer.length > 0; + + channel.buffering = channel[kMessageBufferSize] > 0; }, writeChannelMessage(channel, req, message, handle) { const ser = new ChildProcessSerializer(); + // Add 4 bytes, to later populate with message length + ser.writeRawBytes(Buffer.allocUnsafe(4)); ser.writeHeader(); ser.writeValue(message); + const serializedMessage = ser.releaseBuffer(); - const sizeBuffer = Buffer.allocUnsafe(4); - sizeBuffer.writeUInt32BE(serializedMessage.length); - - const buffer = Buffer.concat([ - sizeBuffer, - serializedMessage, - ]); - const result = channel.writeBuffer(req, buffer, handle); + const serializedMessageLength = serializedMessage.length - 4; + + serializedMessage.set([ + serializedMessageLength >> 24 & 0xFF, + serializedMessageLength >> 16 & 0xFF, + serializedMessageLength >> 8 & 0xFF, + serializedMessageLength & 0xFF, + ], 0); + + const result = channel.writeBuffer(req, serializedMessage, handle); + // Mirror what stream_base_commons.js does for Buffer retention. if (streamBaseState[kLastWriteWasAsync]) - req.buffer = buffer; + req.buffer = serializedMessage; + return result; }, }; diff --git a/lib/internal/cluster/worker.js b/lib/internal/cluster/worker.js index 53285413530230..d5dfef4387175f 100644 --- a/lib/internal/cluster/worker.js +++ b/lib/internal/cluster/worker.js @@ -7,6 +7,8 @@ const { const EventEmitter = require('events'); +const { kEmptyObject } = require('internal/util'); + module.exports = Worker; // Common Worker implementation shared between the cluster primary and workers. @@ -17,7 +19,7 @@ function Worker(options) { ReflectApply(EventEmitter, this, []); if (options === null || typeof options !== 'object') - options = {}; + options = kEmptyObject; this.exitedAfterDisconnect = undefined; diff --git a/lib/internal/console/constructor.js b/lib/internal/console/constructor.js index 5ad57be3bed6a8..bba2784bb92d44 100644 --- a/lib/internal/console/constructor.js +++ b/lib/internal/console/constructor.js @@ -100,7 +100,7 @@ function Console(options /* or: stdout, stderr, ignoreErrors = true */) { // We have to test new.target here to see if this function is called // with new, because we need to define a custom instanceof to accommodate // the global console. - if (!new.target) { + if (new.target === undefined) { return ReflectConstruct(Console, arguments); } @@ -154,6 +154,7 @@ function Console(options /* or: stdout, stderr, ignoreErrors = true */) { // from the prototype chain of the subclass. this[key] = FunctionPrototypeBind(this[key], this); ObjectDefineProperty(this[key], 'name', { + __proto__: null, value: key }); }); @@ -170,6 +171,7 @@ const consolePropAttributes = { // Fixup global.console instanceof global.console.Console ObjectDefineProperty(Console, SymbolHasInstance, { + __proto__: null, value(instance) { return instance[kIsConsole]; } @@ -180,16 +182,18 @@ const kNoColorInspectOptions = {}; ObjectDefineProperties(Console.prototype, { [kBindStreamsEager]: { + __proto__: null, ...consolePropAttributes, // Eager version for the Console constructor value: function(stdout, stderr) { ObjectDefineProperties(this, { - '_stdout': { ...consolePropAttributes, value: stdout }, - '_stderr': { ...consolePropAttributes, value: stderr } + '_stdout': { __proto__: null, ...consolePropAttributes, value: stdout }, + '_stderr': { __proto__: null, ...consolePropAttributes, value: stderr }, }); } }, [kBindStreamsLazy]: { + __proto__: null, ...consolePropAttributes, // Lazily load the stdout and stderr from an object so we don't // create the stdio streams when they are not even accessed @@ -198,6 +202,7 @@ ObjectDefineProperties(Console.prototype, { let stderr; ObjectDefineProperties(this, { '_stdout': { + __proto__: null, enumerable: false, configurable: true, get() { @@ -207,6 +212,7 @@ ObjectDefineProperties(Console.prototype, { set(value) { stdout = value; } }, '_stderr': { + __proto__: null, enumerable: false, configurable: true, get() { @@ -219,32 +225,38 @@ ObjectDefineProperties(Console.prototype, { } }, [kBindProperties]: { + __proto__: null, ...consolePropAttributes, value: function(ignoreErrors, colorMode, groupIndentation = 2) { ObjectDefineProperties(this, { '_stdoutErrorHandler': { + __proto__: null, ...consolePropAttributes, value: createWriteErrorHandler(this, kUseStdout) }, '_stderrErrorHandler': { ...consolePropAttributes, + __proto__: null, value: createWriteErrorHandler(this, kUseStderr) }, '_ignoreErrors': { + __proto__: null, ...consolePropAttributes, value: Boolean(ignoreErrors) }, - '_times': { ...consolePropAttributes, value: new SafeMap() }, + '_times': { __proto__: null, ...consolePropAttributes, value: new SafeMap() }, // Corresponds to https://console.spec.whatwg.org/#count-map - [kCounts]: { ...consolePropAttributes, value: new SafeMap() }, - [kColorMode]: { ...consolePropAttributes, value: colorMode }, - [kIsConsole]: { ...consolePropAttributes, value: true }, - [kGroupIndent]: { ...consolePropAttributes, value: '' }, + [kCounts]: { __proto__: null, ...consolePropAttributes, value: new SafeMap() }, + [kColorMode]: { __proto__: null, ...consolePropAttributes, value: colorMode }, + [kIsConsole]: { __proto__: null, ...consolePropAttributes, value: true }, + [kGroupIndent]: { __proto__: null, ...consolePropAttributes, value: '' }, [kGroupIndentationWidth]: { + __proto__: null, ...consolePropAttributes, value: groupIndentation }, [SymbolToStringTag]: { + __proto__: null, writable: false, enumerable: false, configurable: true, @@ -254,6 +266,7 @@ ObjectDefineProperties(Console.prototype, { } }, [kWriteToConsole]: { + __proto__: null, ...consolePropAttributes, value: function(streamSymbol, string) { const ignoreErrors = this._ignoreErrors; @@ -296,6 +309,7 @@ ObjectDefineProperties(Console.prototype, { } }, [kGetInspectOptions]: { + __proto__: null, ...consolePropAttributes, value: function(stream) { let color = this[kColorMode]; @@ -317,6 +331,7 @@ ObjectDefineProperties(Console.prototype, { } }, [kFormatForStdout]: { + __proto__: null, ...consolePropAttributes, value: function(args) { const opts = this[kGetInspectOptions](this._stdout); @@ -325,6 +340,7 @@ ObjectDefineProperties(Console.prototype, { } }, [kFormatForStderr]: { + __proto__: null, ...consolePropAttributes, value: function(args) { const opts = this[kGetInspectOptions](this._stderr); @@ -486,7 +502,7 @@ const consoleMethods = { if (tabularData === null || typeof tabularData !== 'object') return this.log(tabularData); - if (cliTable === undefined) cliTable = require('internal/cli_table'); + cliTable ??= require('internal/cli_table'); const final = (k, v) => this.log(cliTable(k, v)); const _inspect = (v) => { @@ -570,8 +586,7 @@ const consoleMethods = { } else { const keys = properties || ObjectKeys(item); for (const key of keys) { - if (map[key] === undefined) - map[key] = []; + map[key] ??= []; if ((primitive && properties) || !ObjectPrototypeHasOwnProperty(item, key)) map[key][i] = ''; diff --git a/lib/internal/console/global.js b/lib/internal/console/global.js index 782a585957f746..dd293b9f195fe9 100644 --- a/lib/internal/console/global.js +++ b/lib/internal/console/global.js @@ -37,7 +37,7 @@ for (const prop of ReflectOwnKeys(Console.prototype)) { if (typeof desc.value === 'function') { // fix the receiver const name = desc.value.name; desc.value = FunctionPrototypeBind(desc.value, globalConsole); - ReflectDefineProperty(desc.value, 'name', { value: name }); + ReflectDefineProperty(desc.value, 'name', { __proto__: null, value: name }); } ReflectDefineProperty(globalConsole, prop, desc); } diff --git a/lib/internal/crypto/aes.js b/lib/internal/crypto/aes.js index 9136913b7b9d14..324662e1f8b1b4 100644 --- a/lib/internal/crypto/aes.js +++ b/lib/internal/crypto/aes.js @@ -50,17 +50,10 @@ const { const { PromiseReject } = primordials; -const { - codes: { - ERR_INVALID_ARG_TYPE, - } -} = require('internal/errors'); - const { InternalCryptoKey, SecretKeyObject, createSecretKey, - isKeyObject, } = require('internal/crypto/keys'); const { @@ -237,13 +230,17 @@ async function aesGenerateKey(algorithm, extractable, keyUsages) { validateInteger(length, 'algorithm.length'); validateOneOf(length, 'algorithm.length', kAesKeyLengths); - const usageSet = new SafeSet(keyUsages); + const checkUsages = ['wrapKey', 'unwrapKey']; + if (name !== 'AES-KW') + ArrayPrototypePush(checkUsages, 'encrypt', 'decrypt'); - if (hasAnyNotIn(usageSet, ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey'])) { + const usagesSet = new SafeSet(keyUsages); + if (hasAnyNotIn(usagesSet, checkUsages)) { throw lazyDOMException( 'Unsupported key usage for an AES key', 'SyntaxError'); } + return new Promise((resolve, reject) => { generateKey('aes', { length }, (err, key) => { if (err) { @@ -256,7 +253,7 @@ async function aesGenerateKey(algorithm, extractable, keyUsages) { resolve(new InternalCryptoKey( key, { name, length }, - ArrayFrom(usageSet), + ArrayFrom(usagesSet), extractable)); }); }); @@ -283,19 +280,6 @@ async function aesImportKey( let keyObject; let length; switch (format) { - case 'node.keyObject': { - if (!isKeyObject(keyData)) - throw new ERR_INVALID_ARG_TYPE('keyData', 'KeyObject', keyData); - - if (keyData.type !== 'secret') { - throw lazyDOMException( - `Unable to import AES key with format ${format}`, - 'NotSupportedError'); - } - - keyObject = keyData; - break; - } case 'raw': { validateKeyLength(keyData.byteLength * 8); keyObject = createSecretKey(keyData); diff --git a/lib/internal/crypto/cfrg.js b/lib/internal/crypto/cfrg.js new file mode 100644 index 00000000000000..6910aa84134a57 --- /dev/null +++ b/lib/internal/crypto/cfrg.js @@ -0,0 +1,348 @@ +'use strict'; + +const { + Promise, + SafeSet, +} = primordials; + +const { Buffer } = require('buffer'); + +const { + ECKeyExportJob, + KeyObjectHandle, + SignJob, + kCryptoJobAsync, + kKeyTypePrivate, + kKeyTypePublic, + kSignJobModeSign, + kSignJobModeVerify, +} = internalBinding('crypto'); + +const { + getArrayBufferOrView, + getUsagesUnion, + hasAnyNotIn, + jobPromise, + validateKeyOps, + kHandle, + kKeyObject, +} = require('internal/crypto/util'); + +const { + emitExperimentalWarning, + lazyDOMException, +} = require('internal/util'); + +const { + generateKeyPair, +} = require('internal/crypto/keygen'); + +const { + InternalCryptoKey, + PrivateKeyObject, + PublicKeyObject, + createPrivateKey, + createPublicKey, +} = require('internal/crypto/keys'); + +function verifyAcceptableCfrgKeyUse(name, type, usages) { + let checkSet; + switch (name) { + case 'X25519': + // Fall through + case 'X448': + checkSet = ['deriveKey', 'deriveBits']; + break; + case 'Ed25519': + // Fall through + case 'Ed448': + switch (type) { + case 'private': + checkSet = ['sign']; + break; + case 'public': + checkSet = ['verify']; + break; + } + } + if (hasAnyNotIn(usages, checkSet)) { + throw lazyDOMException( + `Unsupported key usage for a ${name} key`, + 'SyntaxError'); + } +} + +function createCFRGRawKey(name, keyData, isPublic) { + const handle = new KeyObjectHandle(); + keyData = getArrayBufferOrView(keyData, 'keyData'); + + switch (name) { + case 'Ed25519': + case 'X25519': + if (keyData.byteLength !== 32) { + throw lazyDOMException( + `${name} raw keys must be exactly 32-bytes`); + } + break; + case 'Ed448': + if (keyData.byteLength !== 57) { + throw lazyDOMException( + `${name} raw keys must be exactly 57-bytes`); + } + break; + case 'X448': + if (keyData.byteLength !== 56) { + throw lazyDOMException( + `${name} raw keys must be exactly 56-bytes`); + } + break; + } + + const keyType = isPublic ? kKeyTypePublic : kKeyTypePrivate; + if (!handle.initEDRaw(name, keyData, keyType)) { + throw lazyDOMException('Failure to generate key object'); + } + + return isPublic ? new PublicKeyObject(handle) : new PrivateKeyObject(handle); +} + +async function cfrgGenerateKey(algorithm, extractable, keyUsages) { + const { name } = algorithm; + emitExperimentalWarning(`The ${name} Web Crypto API algorithm`); + + const usageSet = new SafeSet(keyUsages); + switch (name) { + case 'Ed25519': + // Fall through + case 'Ed448': + if (hasAnyNotIn(usageSet, ['sign', 'verify'])) { + throw lazyDOMException( + `Unsupported key usage for an ${name} key`, + 'SyntaxError'); + } + break; + case 'X25519': + // Fall through + case 'X448': + if (hasAnyNotIn(usageSet, ['deriveKey', 'deriveBits'])) { + throw lazyDOMException( + `Unsupported key usage for an ${name} key`, + 'SyntaxError'); + } + break; + } + return new Promise((resolve, reject) => { + let genKeyType; + switch (name) { + case 'Ed25519': + genKeyType = 'ed25519'; + break; + case 'Ed448': + genKeyType = 'ed448'; + break; + case 'X25519': + genKeyType = 'x25519'; + break; + case 'X448': + genKeyType = 'x448'; + break; + } + generateKeyPair(genKeyType, undefined, (err, pubKey, privKey) => { + if (err) { + return reject(lazyDOMException( + 'The operation failed for an operation-specific reason', + 'OperationError')); + } + + const algorithm = { name }; + + let publicUsages; + let privateUsages; + switch (name) { + case 'Ed25519': + // Fall through + case 'Ed448': + publicUsages = getUsagesUnion(usageSet, 'verify'); + privateUsages = getUsagesUnion(usageSet, 'sign'); + break; + case 'X25519': + // Fall through + case 'X448': + publicUsages = []; + privateUsages = getUsagesUnion(usageSet, 'deriveKey', 'deriveBits'); + break; + } + + const publicKey = + new InternalCryptoKey( + pubKey, + algorithm, + publicUsages, + true); + + const privateKey = + new InternalCryptoKey( + privKey, + algorithm, + privateUsages, + extractable); + + resolve({ publicKey, privateKey }); + }); + }); +} + +function cfrgExportKey(key, format) { + emitExperimentalWarning(`The ${key.algorithm.name} Web Crypto API algorithm`); + return jobPromise(new ECKeyExportJob( + kCryptoJobAsync, + format, + key[kKeyObject][kHandle])); +} + +async function cfrgImportKey( + format, + keyData, + algorithm, + extractable, + keyUsages) { + + const { name } = algorithm; + emitExperimentalWarning(`The ${name} Web Crypto API algorithm`); + let keyObject; + const usagesSet = new SafeSet(keyUsages); + switch (format) { + case 'spki': { + verifyAcceptableCfrgKeyUse(name, 'public', usagesSet); + keyObject = createPublicKey({ + key: keyData, + format: 'der', + type: 'spki' + }); + break; + } + case 'pkcs8': { + verifyAcceptableCfrgKeyUse(name, 'private', usagesSet); + keyObject = createPrivateKey({ + key: keyData, + format: 'der', + type: 'pkcs8' + }); + break; + } + case 'jwk': { + if (keyData == null || typeof keyData !== 'object') + throw lazyDOMException('Invalid JWK keyData', 'DataError'); + if (keyData.kty !== 'OKP') + throw lazyDOMException('Invalid key type', 'DataError'); + if (keyData.crv !== name) + throw lazyDOMException('Subtype mismatch', 'DataError'); + const isPublic = keyData.d === undefined; + + if (usagesSet.size > 0 && keyData.use !== undefined) { + let checkUse; + switch (name) { + case 'Ed25519': + // Fall through + case 'Ed448': + checkUse = 'sig'; + break; + case 'X25519': + // Fall through + case 'X448': + checkUse = 'enc'; + break; + } + if (keyData.use !== checkUse) + throw lazyDOMException('Invalid use type', 'DataError'); + } + + validateKeyOps(keyData.key_ops, usagesSet); + + if (keyData.ext !== undefined && + keyData.ext === false && + extractable === true) { + throw lazyDOMException('JWK is not extractable', 'DataError'); + } + + if (keyData.alg !== undefined) { + if (typeof keyData.alg !== 'string') + throw lazyDOMException('Invalid alg', 'DataError'); + if ( + (name === 'Ed25519' || name === 'Ed448') && + keyData.alg !== 'EdDSA' + ) { + throw lazyDOMException('Invalid alg', 'DataError'); + } + } + + verifyAcceptableCfrgKeyUse( + name, + isPublic ? 'public' : 'private', + usagesSet); + keyObject = createCFRGRawKey( + name, + Buffer.from( + isPublic ? keyData.x : keyData.d, + 'base64'), + isPublic); + break; + } + case 'raw': { + verifyAcceptableCfrgKeyUse(name, 'public', usagesSet); + keyObject = createCFRGRawKey(name, keyData, true); + if (keyObject === undefined) + throw lazyDOMException('Unable to import CFRG key', 'OperationError'); + break; + } + } + + if (keyObject.asymmetricKeyType !== name.toLowerCase()) { + throw lazyDOMException('Invalid key type', 'DataError'); + } + + return new InternalCryptoKey( + keyObject, + { name }, + keyUsages, + extractable); +} + +function eddsaSignVerify(key, data, { name, context }, signature) { + emitExperimentalWarning(`The ${name} Web Crypto API algorithm`); + const mode = signature === undefined ? kSignJobModeSign : kSignJobModeVerify; + const type = mode === kSignJobModeSign ? 'private' : 'public'; + + if (key.type !== type) + throw lazyDOMException(`Key must be a ${type} key`, 'InvalidAccessError'); + + if (name === 'Ed448' && context !== undefined) { + context = + getArrayBufferOrView(context, 'algorithm.context'); + if (context.byteLength !== 0) { + throw lazyDOMException( + 'Non zero-length context is not yet supported.', 'NotSupportedError'); + } + } + + return jobPromise(new SignJob( + kCryptoJobAsync, + mode, + key[kKeyObject][kHandle], + undefined, + undefined, + undefined, + data, + undefined, + undefined, + undefined, + undefined, + signature)); +} + +module.exports = { + cfrgExportKey, + cfrgImportKey, + cfrgGenerateKey, + eddsaSignVerify, +}; diff --git a/lib/internal/crypto/diffiehellman.js b/lib/internal/crypto/diffiehellman.js index 598db4052b976c..036f661fad6be2 100644 --- a/lib/internal/crypto/diffiehellman.js +++ b/lib/internal/crypto/diffiehellman.js @@ -3,7 +3,7 @@ const { ArrayBufferPrototypeSlice, FunctionPrototypeCall, - MathFloor, + MathCeil, ObjectDefineProperty, Promise, SafeSet, @@ -12,8 +12,6 @@ const { const { Buffer } = require('buffer'); const { - DHBitsJob, - DHKeyExportJob, DiffieHellman: _DiffieHellman, DiffieHellmanGroup: _DiffieHellmanGroup, ECDH: _ECDH, @@ -53,23 +51,12 @@ const { const { KeyObject, - InternalCryptoKey, - createPrivateKey, - createPublicKey, isCryptoKey, - isKeyObject, } = require('internal/crypto/keys'); -const { - generateKeyPair, -} = require('internal/crypto/keygen'); - const { getArrayBufferOrView, getDefaultEncoding, - getUsagesUnion, - hasAnyNotIn, - jobPromise, toBuf, kHandle, kKeyObject, @@ -138,6 +125,7 @@ function DiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding) { this[kHandle] = new _DiffieHellman(sizeOrKey, generator); ObjectDefineProperty(this, 'verifyError', { + __proto__: null, enumerable: true, value: this[kHandle].verifyError, writable: false @@ -150,6 +138,7 @@ function DiffieHellmanGroup(name) { return new DiffieHellmanGroup(name); this[kHandle] = new _DiffieHellmanGroup(name); ObjectDefineProperty(this, 'verifyError', { + __proto__: null, enumerable: true, value: this[kHandle].verifyError, writable: false @@ -343,89 +332,6 @@ function deriveBitsECDH(name, publicKey, privateKey, callback) { job.run(); } -// The deriveBitsDH function is part of the Web Crypto API and serves both -// deriveKeys and deriveBits functions. -function deriveBitsDH(publicKey, privateKey, callback) { - validateObject(publicKey, 'publicKey'); - validateObject(privateKey, 'privateKey'); - validateFunction(callback, 'callback'); - const job = new DHBitsJob(kCryptoJobAsync, publicKey, privateKey); - job.ondone = (error, bits) => { - if (error) return FunctionPrototypeCall(callback, job, error); - FunctionPrototypeCall(callback, job, null, bits); - }; - job.run(); -} - -function verifyAcceptableDhKeyUse(name, type, usages) { - let checkSet; - switch (type) { - case 'private': - checkSet = ['deriveBits', 'deriveKey']; - break; - case 'public': - checkSet = []; - break; - } - if (hasAnyNotIn(usages, checkSet)) { - throw lazyDOMException( - `Unsupported key usage for an ${name} key`, - 'SyntaxError'); - } -} - -async function dhGenerateKey( - algorithm, - extractable, - keyUsages) { - const usageSet = new SafeSet(keyUsages); - - if (hasAnyNotIn(usageSet, ['deriveKey', 'deriveBits'])) { - throw lazyDOMException( - 'Unsupported key usage for a DH key', - 'SyntaxError'); - } - - const { - name, - primeLength, - generator, - group - } = algorithm; - let { prime } = algorithm; - - if (prime !== undefined) - prime = getArrayBufferOrView(prime); - - return new Promise((resolve, reject) => { - generateKeyPair('dh', { - prime, - primeLength, - generator, - group, - }, (err, pubKey, privKey) => { - if (err) { - return reject(lazyDOMException( - 'The operation failed for an operation-specific reason', - 'OperationError')); - } - - const algorithm = { name, prime, primeLength, generator, group }; - - const publicKey = new InternalCryptoKey(pubKey, algorithm, [], true); - - const privateKey = - new InternalCryptoKey( - privKey, - algorithm, - getUsagesUnion(usageSet, 'deriveBits', 'deriveKey'), - extractable); - - resolve({ publicKey, privateKey }); - }); - }); -} - async function asyncDeriveBitsECDH(algorithm, baseKey, length) { const { 'public': key } = algorithm; @@ -445,8 +351,12 @@ async function asyncDeriveBitsECDH(algorithm, baseKey, length) { 'baseKey must be a private key', 'InvalidAccessError'); } - if (key.algorithm.name !== 'ECDH') { - throw lazyDOMException('Keys must be ECDH keys', 'InvalidAccessError'); + if ( + key.algorithm.name !== 'ECDH' && + key.algorithm.name !== 'X25519' && + key.algorithm.name !== 'X448' + ) { + throw lazyDOMException('Keys must be ECDH, X25519, or X448 keys', 'InvalidAccessError'); } if (key.algorithm.name !== baseKey.algorithm.name) { @@ -455,67 +365,16 @@ async function asyncDeriveBitsECDH(algorithm, baseKey, length) { 'InvalidAccessError'); } - if (key.algorithm.namedCurve !== baseKey.algorithm.namedCurve) + if ( + key.algorithm.name === 'ECDH' && + key.algorithm.namedCurve !== baseKey.algorithm.namedCurve + ) { throw lazyDOMException('Named curve mismatch', 'InvalidAccessError'); - - const bits = await new Promise((resolve, reject) => { - deriveBitsECDH( - baseKey.algorithm.namedCurve, - key[kKeyObject][kHandle], - baseKey[kKeyObject][kHandle], (err, bits) => { - if (err) return reject(err); - resolve(bits); - }); - }); - - // If a length is not specified, return the full derived secret - if (length === null) - return bits; - - // If the length is not a multiple of 8, it will be truncated - // down to the nearest multiple of 8. - length = MathFloor(length / 8); - const { byteLength } = bits; - - // If the length is larger than the derived secret, throw. - // Otherwise, we either return the secret or a truncated - // slice. - if (byteLength < length) - throw lazyDOMException('derived bit length is too small', 'OperationError'); - - return length === byteLength ? - bits : - ArrayBufferPrototypeSlice(bits, 0, length); -} - -async function asyncDeriveBitsDH(algorithm, baseKey, length) { - const { 'public': key } = algorithm; - // Null has a specific meaning for DH - if (length !== null) - validateUint32(length, 'length'); - if (!isCryptoKey(key)) - throw new ERR_INVALID_ARG_TYPE('algorithm.public', 'CryptoKey', key); - - if (key.type !== 'public') { - throw lazyDOMException( - 'algorithm.public must be a public key', 'InvalidAccessError'); - } - if (baseKey.type !== 'private') { - throw lazyDOMException( - 'baseKey must be a private key', 'InvalidAccessError'); - } - - if (key.algorithm.name !== 'NODE-DH') - throw lazyDOMException('Keys must be DH keys', 'InvalidAccessError'); - - if (key.algorithm.name !== baseKey.algorithm.name) { - throw lazyDOMException( - 'The public and private keys must be of the same type', - 'InvalidAccessError'); } const bits = await new Promise((resolve, reject) => { - deriveBitsDH( + deriveBitsECDH( + key.algorithm.name === 'ECDH' ? baseKey.algorithm.namedCurve : baseKey.algorithm.name, key[kKeyObject][kHandle], baseKey[kKeyObject][kHandle], (err, bits) => { if (err) return reject(err); @@ -527,9 +386,9 @@ async function asyncDeriveBitsDH(algorithm, baseKey, length) { if (length === null) return bits; - // If the length is not a multiple of 8, it will be truncated - // down to the nearest multiple of 8. - length = MathFloor(length / 8); + // If the length is not a multiple of 8 the nearest ceiled + // multiple of 8 is sliced. + length = MathCeil(length / 8); const { byteLength } = bits; // If the length is larger than the derived secret, throw. @@ -543,81 +402,11 @@ async function asyncDeriveBitsDH(algorithm, baseKey, length) { ArrayBufferPrototypeSlice(bits, 0, length); } -function dhExportKey(key, format) { - return jobPromise(new DHKeyExportJob( - kCryptoJobAsync, - format, - key[kKeyObject][kHandle])); -} - -async function dhImportKey( - format, - keyData, - algorithm, - extractable, - keyUsages) { - const usagesSet = new SafeSet(keyUsages); - let keyObject; - switch (format) { - case 'node.keyObject': { - if (!isKeyObject(keyData)) - throw new ERR_INVALID_ARG_TYPE('keyData', 'KeyObject', keyData); - if (keyData.type === 'secret') - throw lazyDOMException('Invalid key type', 'InvalidAccessException'); - verifyAcceptableDhKeyUse(algorithm.name, keyData.type, usagesSet); - keyObject = keyData; - break; - } - case 'spki': { - verifyAcceptableDhKeyUse(algorithm.name, 'public', usagesSet); - keyObject = createPublicKey({ - key: keyData, - format: 'der', - type: 'spki' - }); - break; - } - case 'pkcs8': { - verifyAcceptableDhKeyUse(algorithm.name, 'private', usagesSet); - keyObject = createPrivateKey({ - key: keyData, - format: 'der', - type: 'pkcs8' - }); - break; - } - default: - throw lazyDOMException( - `Unable to import DH key with format ${format}`, - 'NotSupportedError'); - } - - const { - prime, - primeLength, - generator, - group, - } = keyObject[kHandle].keyDetail({}); - - return new InternalCryptoKey(keyObject, { - name: algorithm.name, - prime, - primeLength, - generator, - group, - }, keyUsages, extractable); -} - module.exports = { DiffieHellman, DiffieHellmanGroup, ECDH, diffieHellman, deriveBitsECDH, - deriveBitsDH, - dhGenerateKey, asyncDeriveBitsECDH, - asyncDeriveBitsDH, - dhExportKey, - dhImportKey, }; diff --git a/lib/internal/crypto/dsa.js b/lib/internal/crypto/dsa.js deleted file mode 100644 index faaf7d6b889c07..00000000000000 --- a/lib/internal/crypto/dsa.js +++ /dev/null @@ -1,225 +0,0 @@ -'use strict'; - -const { - Promise, - SafeSet, -} = primordials; - -const { - DSAKeyExportJob, - SignJob, - kCryptoJobAsync, - kSigEncDER, - kSignJobModeSign, - kSignJobModeVerify, -} = internalBinding('crypto'); - -const { - codes: { - ERR_INVALID_ARG_TYPE, - ERR_MISSING_OPTION, - } -} = require('internal/errors'); - -const { - validateUint32, -} = require('internal/validators'); - -const { - InternalCryptoKey, - createPrivateKey, - createPublicKey, - isKeyObject, -} = require('internal/crypto/keys'); - -const { - generateKeyPair, -} = require('internal/crypto/keygen'); - -const { - getUsagesUnion, - hasAnyNotIn, - jobPromise, - normalizeHashName, - kKeyObject, - kHandle, -} = require('internal/crypto/util'); - -const { - lazyDOMException, -} = require('internal/util'); - -function verifyAcceptableDsaKeyUse(name, type, usages) { - let checkSet; - switch (type) { - case 'private': - checkSet = ['sign']; - break; - case 'public': - checkSet = ['verify']; - break; - } - if (hasAnyNotIn(usages, checkSet)) { - throw lazyDOMException( - `Unsupported key usage for an ${name} key`, - 'SyntaxError'); - } -} - -async function dsaGenerateKey( - algorithm, - extractable, - keyUsages) { - const { - name, - modulusLength, - divisorLength, - hash - } = algorithm; - - if (hash === undefined) - throw new ERR_MISSING_OPTION('algorithm.hash'); - validateUint32(modulusLength, 'algorithm.modulusLength'); - - const usageSet = new SafeSet(keyUsages); - - if (hasAnyNotIn(usageSet, ['sign', 'verify'])) { - throw lazyDOMException( - 'Unsupported key usage for a DSA key', - 'SyntaxError'); - } - - return new Promise((resolve, reject) => { - generateKeyPair('dsa', { - modulusLength, - divisorLength, - }, (err, pubKey, privKey) => { - if (err) { - return reject(lazyDOMException( - 'The operation failed for an operation-specific reason', - 'OperationError')); - } - - const algorithm = { - name, - modulusLength, - divisorLength, - hash: { name: hash.name } - }; - - const publicKey = - new InternalCryptoKey( - pubKey, - algorithm, - getUsagesUnion(usageSet, 'verify'), - true); - - const privateKey = - new InternalCryptoKey( - privKey, - algorithm, - getUsagesUnion(usageSet, 'sign'), - extractable); - - resolve({ publicKey, privateKey }); - }); - }); -} - -function dsaExportKey(key, format) { - return jobPromise(new DSAKeyExportJob( - kCryptoJobAsync, - format, - key[kKeyObject][kHandle])); -} - -async function dsaImportKey( - format, - keyData, - algorithm, - extractable, - keyUsages) { - const { hash } = algorithm; - if (hash === undefined) - throw new ERR_MISSING_OPTION('algorithm.hash'); - - const usagesSet = new SafeSet(keyUsages); - let keyObject; - switch (format) { - case 'node.keyObject': { - if (!isKeyObject(keyData)) - throw new ERR_INVALID_ARG_TYPE('keyData', 'KeyObject', keyData); - if (keyData.type === 'secret') - throw lazyDOMException('Invalid key type', 'InvalidAccessException'); - verifyAcceptableDsaKeyUse(algorithm.name, keyData.type, usagesSet); - keyObject = keyData; - break; - } - case 'spki': { - verifyAcceptableDsaKeyUse(algorithm.name, 'public', usagesSet); - keyObject = createPublicKey({ - key: keyData, - format: 'der', - type: 'spki' - }); - break; - } - case 'pkcs8': { - verifyAcceptableDsaKeyUse(algorithm.name, 'private', usagesSet); - keyObject = createPrivateKey({ - key: keyData, - format: 'der', - type: 'pkcs8' - }); - break; - } - default: - throw lazyDOMException( - `Unable to import DSA key with format ${format}`, - 'NotSupportedError'); - } - - if (keyObject.asymmetricKeyType !== 'dsa') - throw lazyDOMException('Invalid key type', 'DataError'); - - const { - modulusLength, - divisorLength, - } = keyObject[kHandle].keyDetail({}); - - return new InternalCryptoKey(keyObject, { - name: algorithm.name, - modulusLength, - divisorLength, - hash: algorithm.hash - }, keyUsages, extractable); -} - -function dsaSignVerify(key, data, algorithm, signature) { - const mode = signature === undefined ? kSignJobModeSign : kSignJobModeVerify; - const type = mode === kSignJobModeSign ? 'private' : 'public'; - - if (key.type !== type) - throw lazyDOMException(`Key must be a ${type} key`, 'InvalidAccessError'); - - return jobPromise(new SignJob( - kCryptoJobAsync, - signature === undefined ? kSignJobModeSign : kSignJobModeVerify, - key[kKeyObject][kHandle], - undefined, - undefined, - undefined, - data, - normalizeHashName(key.algorithm.hash.name), - undefined, // Salt-length is not used in DSA - undefined, // Padding is not used in DSA - kSigEncDER, - signature)); -} - -module.exports = { - dsaExportKey, - dsaGenerateKey, - dsaImportKey, - dsaSignVerify, -}; diff --git a/lib/internal/crypto/ec.js b/lib/internal/crypto/ec.js index b64922bcdc883f..809f531069bf8b 100644 --- a/lib/internal/crypto/ec.js +++ b/lib/internal/crypto/ec.js @@ -6,29 +6,24 @@ const { SafeSet, } = primordials; -const { Buffer } = require('buffer'); - const { ECKeyExportJob, KeyObjectHandle, SignJob, kCryptoJobAsync, kKeyTypePrivate, - kKeyTypePublic, kSignJobModeSign, kSignJobModeVerify, kSigEncP1363, } = internalBinding('crypto'); const { - validateBoolean, validateOneOf, validateString, } = require('internal/validators'); const { codes: { - ERR_INVALID_ARG_TYPE, ERR_MISSING_OPTION, } } = require('internal/errors'); @@ -59,7 +54,6 @@ const { PublicKeyObject, createPrivateKey, createPublicKey, - isKeyObject, } = require('internal/crypto/keys'); function verifyAcceptableEcKeyUse(name, type, usages) { @@ -68,10 +62,6 @@ function verifyAcceptableEcKeyUse(name, type, usages) { case 'ECDH': checkSet = ['deriveKey', 'deriveBits']; break; - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - // Fall through case 'ECDSA': switch (type) { case 'private': @@ -96,40 +86,6 @@ function createECPublicKeyRaw(namedCurve, keyData) { return new PublicKeyObject(handle); } -function createECRawKey(namedCurve, keyData, isPublic) { - const handle = new KeyObjectHandle(); - keyData = getArrayBufferOrView(keyData, 'keyData'); - - switch (namedCurve) { - case 'NODE-ED25519': - case 'NODE-X25519': - if (keyData.byteLength !== 32) { - throw lazyDOMException( - `${namedCurve} raw keys must be exactly 32-bytes`); - } - break; - case 'NODE-ED448': - if (keyData.byteLength !== 57) { - throw lazyDOMException( - `${namedCurve} raw keys must be exactly 57-bytes`); - } - break; - case 'NODE-X448': - if (keyData.byteLength !== 56) { - throw lazyDOMException( - `${namedCurve} raw keys must be exactly 56-bytes`); - } - break; - } - - const keyType = isPublic ? kKeyTypePublic : kKeyTypePrivate; - if (!handle.initEDRaw(namedCurve, keyData, keyType)) { - throw lazyDOMException('Failure to generate key object'); - } - - return isPublic ? new PublicKeyObject(handle) : new PrivateKeyObject(handle); -} - async function ecGenerateKey(algorithm, extractable, keyUsages) { const { name, namedCurve } = algorithm; validateString(namedCurve, 'algorithm.namedCurve'); @@ -141,16 +97,6 @@ async function ecGenerateKey(algorithm, extractable, keyUsages) { const usageSet = new SafeSet(keyUsages); switch (name) { case 'ECDSA': - if (namedCurve === 'NODE-ED25519' || - namedCurve === 'NODE-ED448' || - namedCurve === 'NODE-X25519' || - namedCurve === 'NODE-X448') { - throw lazyDOMException('Unsupported named curves for ECDSA'); - } - // Fall through - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': if (hasAnyNotIn(usageSet, ['sign', 'verify'])) { throw lazyDOMException( 'Unsupported key usage for an ECDSA key', @@ -163,33 +109,10 @@ async function ecGenerateKey(algorithm, extractable, keyUsages) { 'Unsupported key usage for an ECDH key', 'SyntaxError'); } - if (namedCurve === 'NODE-ED25519' || namedCurve === 'NODE-ED448') { - throw lazyDOMException('Unsupported named curves for ECDH'); - } // Fall through } return new Promise((resolve, reject) => { - let genKeyType; - let genOpts; - switch (namedCurve) { - case 'NODE-ED25519': - genKeyType = 'ed25519'; - break; - case 'NODE-ED448': - genKeyType = 'ed448'; - break; - case 'NODE-X25519': - genKeyType = 'x25519'; - break; - case 'NODE-X448': - genKeyType = 'x448'; - break; - default: - genKeyType = 'ec'; - genOpts = { namedCurve }; - break; - } - generateKeyPair(genKeyType, genOpts, (err, pubKey, privKey) => { + generateKeyPair('ec', { namedCurve }, (err, pubKey, privKey) => { if (err) { return reject(lazyDOMException( 'The operation failed for an operation-specific reason', @@ -201,10 +124,6 @@ async function ecGenerateKey(algorithm, extractable, keyUsages) { let publicUsages; let privateUsages; switch (name) { - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - // Fall through case 'ECDSA': publicUsages = getUsagesUnion(usageSet, 'verify'); privateUsages = getUsagesUnion(usageSet, 'sign'); @@ -256,33 +175,7 @@ async function ecImportKey( ObjectKeys(kNamedCurveAliases)); let keyObject; const usagesSet = new SafeSet(keyUsages); - let checkNamedCurve = true; switch (format) { - case 'node.keyObject': { - if (!isKeyObject(keyData)) - throw new ERR_INVALID_ARG_TYPE('keyData', 'KeyObject', keyData); - if (keyData.type === 'secret') - throw lazyDOMException('Invalid key type', 'InvalidAccessException'); - - switch (namedCurve) { - case 'NODE-X25519': - // Fall through - case 'NODE-X448': - if (algorithm.name !== 'ECDH') - throw lazyDOMException('Invalid algorithm name.', 'DataError'); - break; - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - if (algorithm.name !== namedCurve) - throw lazyDOMException('Invalid algorithm name.', 'DataError'); - break; - } - - verifyAcceptableEcKeyUse(name, keyData.type, usagesSet); - keyObject = keyData; - break; - } case 'spki': { verifyAcceptableEcKeyUse(name, 'public', usagesSet); keyObject = createPublicKey({ @@ -302,122 +195,59 @@ async function ecImportKey( break; } case 'jwk': { - let curve; if (keyData == null || typeof keyData !== 'object') throw lazyDOMException('Invalid JWK keyData', 'DataError'); - switch (keyData.kty) { - case 'OKP': { - const isPublic = keyData.d === undefined; - - let type; - switch (namedCurve) { - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - type = `NODE-${keyData.crv.toUpperCase()}`; - break; - case 'NODE-X25519': - // Fall through - case 'NODE-X448': - type = 'ECDH'; - break; - } - - if (algorithm.name !== type) - throw lazyDOMException('Invalid algorithm name.', 'DataError'); - - verifyAcceptableEcKeyUse( - type, - isPublic ? 'public' : 'private', - usagesSet); - keyObject = createECRawKey( - namedCurve, - Buffer.from( - isPublic ? keyData.x : keyData.d, - 'base64'), - isPublic); - break; - } - default: { - if (keyData.kty !== 'EC') - throw lazyDOMException('Invalid key type', 'DataError'); - - if (keyData.d !== undefined) { - verifyAcceptableEcKeyUse(name, 'private', usagesSet); - } else { - verifyAcceptableEcKeyUse(name, 'public', usagesSet); - } - - if (usagesSet.size > 0 && keyData.use !== undefined) { - if (algorithm.name === 'ECDSA' && keyData.use !== 'sig') - throw lazyDOMException('Invalid use type', 'DataError'); - if (algorithm.name === 'ECDH' && keyData.use !== 'enc') - throw lazyDOMException('Invalid use type', 'DataError'); - } - - validateKeyOps(keyData.key_ops, usagesSet); - - if (keyData.ext !== undefined && - keyData.ext === false && - extractable === true) { - throw lazyDOMException('JWK is not extractable', 'DataError'); - } - - if (algorithm.name === 'ECDSA' && keyData.alg !== undefined) { - if (typeof keyData.alg !== 'string') - throw lazyDOMException('Invalid alg', 'DataError'); - switch (keyData.alg) { - case 'ES256': curve = 'P-256'; break; - case 'ES384': curve = 'P-384'; break; - case 'ES512': curve = 'P-521'; break; - } - if (curve !== namedCurve) - throw lazyDOMException('Named curve mismatch', 'DataError'); - } - - const handle = new KeyObjectHandle(); - const type = handle.initJwk(keyData, namedCurve); - if (type === undefined) - throw lazyDOMException('Invalid JWK keyData', 'DataError'); - keyObject = type === kKeyTypePrivate ? - new PrivateKeyObject(handle) : - new PublicKeyObject(handle); + if (keyData.kty !== 'EC') + throw lazyDOMException('Invalid key type', 'DataError'); + if (keyData.crv !== namedCurve) + throw lazyDOMException('Named curve mismatch', 'DataError'); + + if (keyData.d !== undefined) { + verifyAcceptableEcKeyUse(name, 'private', usagesSet); + } else { + verifyAcceptableEcKeyUse(name, 'public', usagesSet); + } + + if (usagesSet.size > 0 && keyData.use !== undefined) { + if (algorithm.name === 'ECDSA' && keyData.use !== 'sig') + throw lazyDOMException('Invalid use type', 'DataError'); + if (algorithm.name === 'ECDH' && keyData.use !== 'enc') + throw lazyDOMException('Invalid use type', 'DataError'); + } + + validateKeyOps(keyData.key_ops, usagesSet); + + if (keyData.ext !== undefined && + keyData.ext === false && + extractable === true) { + throw lazyDOMException('JWK is not extractable', 'DataError'); + } + + if (algorithm.name === 'ECDSA' && keyData.alg !== undefined) { + if (typeof keyData.alg !== 'string') + throw lazyDOMException('Invalid alg', 'DataError'); + let algNamedCurve; + switch (keyData.alg) { + case 'ES256': algNamedCurve = 'P-256'; break; + case 'ES384': algNamedCurve = 'P-384'; break; + case 'ES512': algNamedCurve = 'P-521'; break; } + if (algNamedCurve !== namedCurve) + throw lazyDOMException('Named curve mismatch', 'DataError'); } + + const handle = new KeyObjectHandle(); + const type = handle.initJwk(keyData, namedCurve); + if (type === undefined) + throw lazyDOMException('Invalid JWK keyData', 'DataError'); + keyObject = type === kKeyTypePrivate ? + new PrivateKeyObject(handle) : + new PublicKeyObject(handle); break; } case 'raw': { - switch (namedCurve) { - case 'NODE-X25519': - // Fall through - case 'NODE-X448': - if (algorithm.public !== undefined) - validateBoolean(algorithm.public, 'algorithm.public'); - if (algorithm.name !== 'ECDH') - throw lazyDOMException('Invalid algorithm name.', 'DataError'); - verifyAcceptableEcKeyUse( - algorithm.name, - algorithm.public === true ? 'public' : 'private', - usagesSet); - keyObject = createECRawKey(namedCurve, keyData, algorithm.public); - break; - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - if (algorithm.public !== undefined) - validateBoolean(algorithm.public, 'algorithm.public'); - if (algorithm.name !== namedCurve) - throw lazyDOMException('Invalid algorithm name.', 'DataError'); - verifyAcceptableEcKeyUse( - algorithm.name, - algorithm.public === true ? 'public' : 'private', - usagesSet); - keyObject = createECRawKey(namedCurve, keyData, algorithm.public); - break; - default: - verifyAcceptableEcKeyUse(name, 'public', usagesSet); - keyObject = createECPublicKeyRaw(namedCurve, keyData); - } + verifyAcceptableEcKeyUse(name, 'public', usagesSet); + keyObject = createECPublicKeyRaw(namedCurve, keyData); if (keyObject === undefined) throw lazyDOMException('Unable to import EC key', 'OperationError'); break; @@ -426,41 +256,18 @@ async function ecImportKey( switch (algorithm.name) { case 'ECDSA': - if (keyObject.asymmetricKeyType !== 'ec') - throw lazyDOMException('Invalid key type', 'DataError'); - break; + // Fall through case 'ECDH': - if (algorithm.namedCurve === 'NODE-X25519') { - if (keyObject.asymmetricKeyType !== 'x25519') - throw lazyDOMException('Invalid key type', 'DataError'); - checkNamedCurve = false; - } else if (algorithm.namedCurve === 'NODE-X448') { - if (keyObject.asymmetricKeyType !== 'x448') - throw lazyDOMException('Invalid key type', 'DataError'); - checkNamedCurve = false; - } else if (keyObject.asymmetricKeyType !== 'ec') { - throw lazyDOMException('Invalid key type', 'DataError'); - } - break; - case 'NODE-ED25519': - if (keyObject.asymmetricKeyType !== 'ed25519') - throw lazyDOMException('Invalid key type', 'DataError'); - checkNamedCurve = false; - break; - case 'NODE-ED448': - if (keyObject.asymmetricKeyType !== 'ed448') + if (keyObject.asymmetricKeyType !== 'ec') throw lazyDOMException('Invalid key type', 'DataError'); - checkNamedCurve = false; break; } - if (checkNamedCurve) { - const { - namedCurve: checkNamedCurve - } = keyObject[kHandle].keyDetail({}); - if (kNamedCurveAliases[namedCurve] !== checkNamedCurve) - throw lazyDOMException('Named curve mismatch', 'DataError'); - } + const { + namedCurve: checkNamedCurve + } = keyObject[kHandle].keyDetail({}); + if (kNamedCurveAliases[namedCurve] !== checkNamedCurve) + throw lazyDOMException('Named curve mismatch', 'DataError'); return new InternalCryptoKey( keyObject, @@ -476,19 +283,9 @@ function ecdsaSignVerify(key, data, { name, hash }, signature) { if (key.type !== type) throw lazyDOMException(`Key must be a ${type} key`, 'InvalidAccessError'); - let hashname; - switch (name) { - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - if (hash !== undefined) - throw lazyDOMException(`Hash is not permitted for ${name}`); - break; - default: - if (hash === undefined) - throw new ERR_MISSING_OPTION('algorithm.hash'); - hashname = normalizeHashName(hash.name); - } + if (hash === undefined) + throw new ERR_MISSING_OPTION('algorithm.hash'); + const hashname = normalizeHashName(hash.name); return jobPromise(new SignJob( kCryptoJobAsync, diff --git a/lib/internal/crypto/hash.js b/lib/internal/crypto/hash.js index 6c502f52b66503..956053af0a8c2c 100644 --- a/lib/internal/crypto/hash.js +++ b/lib/internal/crypto/hash.js @@ -28,6 +28,10 @@ const { prepareSecretKey, } = require('internal/crypto/keys'); +const { + lazyDOMException, +} = require('internal/util'); + const { Buffer, } = require('buffer'); @@ -171,11 +175,22 @@ async function asyncDigest(algorithm, data) { if (algorithm.length !== undefined) validateUint32(algorithm.length, 'algorithm.length'); - return jobPromise(new HashJob( - kCryptoJobAsync, - normalizeHashName(algorithm.name), - data, - algorithm.length)); + switch (algorithm.name) { + case 'SHA-1': + // Fall through + case 'SHA-256': + // Fall through + case 'SHA-384': + // Fall through + case 'SHA-512': + return jobPromise(new HashJob( + kCryptoJobAsync, + normalizeHashName(algorithm.name), + data, + algorithm.length)); + } + + throw lazyDOMException('Unrecognized name.', 'NotSupportedError'); } module.exports = { diff --git a/lib/internal/crypto/hashnames.js b/lib/internal/crypto/hashnames.js index be5064532c86c9..5c0051e0a8f563 100644 --- a/lib/internal/crypto/hashnames.js +++ b/lib/internal/crypto/hashnames.js @@ -11,7 +11,6 @@ const kHashContextJwkRsa = 3; const kHashContextJwkRsaPss = 4; const kHashContextJwkRsaOaep = 5; const kHashContextJwkHmac = 6; -const kHashContextJwkDsa = 7; // WebCrypto and JWK use a bunch of different names for the // standard set of SHA-* digest algorithms... which is ... fun. @@ -26,7 +25,6 @@ const kHashNames = { [kHashContextJwkRsaPss]: 'PS1', [kHashContextJwkRsaOaep]: 'RSA-OAEP', [kHashContextJwkHmac]: 'HS1', - [kHashContextJwkDsa]: 'NODE-DSA-SHA-1', }, sha256: { [kHashContextNode]: 'sha256', @@ -35,7 +33,6 @@ const kHashNames = { [kHashContextJwkRsaPss]: 'PS256', [kHashContextJwkRsaOaep]: 'RSA-OAEP-256', [kHashContextJwkHmac]: 'HS256', - [kHashContextJwkDsa]: 'NODE-DSA-SHA-256', }, sha384: { [kHashContextNode]: 'sha384', @@ -44,7 +41,6 @@ const kHashNames = { [kHashContextJwkRsaPss]: 'PS384', [kHashContextJwkRsaOaep]: 'RSA-OAEP-384', [kHashContextJwkHmac]: 'HS384', - [kHashContextJwkDsa]: 'NODE-DSA-SHA-384', }, sha512: { [kHashContextNode]: 'sha512', @@ -53,7 +49,6 @@ const kHashNames = { [kHashContextJwkRsaPss]: 'PS512', [kHashContextJwkRsaOaep]: 'RSA-OAEP-512', [kHashContextJwkHmac]: 'HS512', - [kHashContextJwkDsa]: 'NODE-DSA-SHA-512', } }; @@ -85,6 +80,5 @@ normalizeHashName.kContextJwkRsa = kHashContextJwkRsa; normalizeHashName.kContextJwkRsaPss = kHashContextJwkRsaPss; normalizeHashName.kContextJwkRsaOaep = kHashContextJwkRsaOaep; normalizeHashName.kContextJwkHmac = kHashContextJwkHmac; -normalizeHashName.kContextJwkDsa = kHashContextJwkDsa; module.exports = normalizeHashName; diff --git a/lib/internal/crypto/hkdf.js b/lib/internal/crypto/hkdf.js index fd274caf0b80ce..724217c08eb2f4 100644 --- a/lib/internal/crypto/hkdf.js +++ b/lib/internal/crypto/hkdf.js @@ -53,13 +53,10 @@ const { } = require('internal/errors'); const validateParameters = hideStackFrames((hash, key, salt, info, length) => { - key = prepareKey(key); - salt = toBuf(salt); - info = toBuf(info); - validateString(hash, 'digest'); - validateByteSource(salt, 'salt'); - validateByteSource(info, 'info'); + key = prepareKey(key); + salt = validateByteSource(salt, 'salt'); + info = validateByteSource(info, 'info'); validateInteger(length, 'length', 0, kMaxLength); diff --git a/lib/internal/crypto/keygen.js b/lib/internal/crypto/keygen.js index c6909b227d0c15..8f8fbfb1c0893d 100644 --- a/lib/internal/crypto/keygen.js +++ b/lib/internal/crypto/keygen.js @@ -38,7 +38,10 @@ const { kAesKeyLengths, } = require('internal/crypto/util'); -const { customPromisifyArgs } = require('internal/util'); +const { + customPromisifyArgs, + kEmptyObject, +} = require('internal/util'); const { validateFunction, @@ -93,6 +96,7 @@ function generateKeyPair(type, options, callback) { } ObjectDefineProperty(generateKeyPair, customPromisifyArgs, { + __proto__: null, value: ['publicKey', 'privateKey'], enumerable: false }); @@ -118,7 +122,7 @@ function handleError(ret) { }; } -function parseKeyEncoding(keyType, options = {}) { +function parseKeyEncoding(keyType, options = kEmptyObject) { const { publicKeyEncoding, privateKeyEncoding } = options; let publicFormat, publicType; @@ -349,7 +353,7 @@ function generateKeyJob(mode, keyType, options) { const { length } = options; switch (keyType) { case 'hmac': - validateInteger(length, 'options.length', 1, 2 ** 31 - 1); + validateInteger(length, 'options.length', 8, 2 ** 31 - 1); break; case 'aes': validateOneOf(length, 'options.length', kAesKeyLengths); diff --git a/lib/internal/crypto/keys.js b/lib/internal/crypto/keys.js index 5c9f1fd0926506..5d00727813250a 100644 --- a/lib/internal/crypto/keys.js +++ b/lib/internal/crypto/keys.js @@ -108,6 +108,7 @@ const { this[kKeyType] = type; ObjectDefineProperty(this, kHandle, { + __proto__: null, value: handle, enumerable: false, configurable: false, @@ -447,7 +448,7 @@ function getKeyObjectHandleFromJwk(key, ctx) { const handle = new KeyObjectHandle(); const keyType = isPublic ? kKeyTypePublic : kKeyTypePrivate; - if (!handle.initEDRaw(`NODE-${key.crv.toUpperCase()}`, keyData, keyType)) { + if (!handle.initEDRaw(key.crv, keyData, keyType)) { throw new ERR_CRYPTO_INVALID_JWK(); } diff --git a/lib/internal/crypto/mac.js b/lib/internal/crypto/mac.js index 61fcc88a923dad..3054f66b27d4f2 100644 --- a/lib/internal/crypto/mac.js +++ b/lib/internal/crypto/mac.js @@ -32,7 +32,6 @@ const { const { codes: { ERR_MISSING_OPTION, - ERR_INVALID_ARG_TYPE, } } = require('internal/errors'); @@ -44,7 +43,6 @@ const { InternalCryptoKey, SecretKeyObject, createSecretKey, - isKeyObject, } = require('internal/crypto/keys'); async function hmacGenerateKey(algorithm, extractable, keyUsages) { @@ -99,18 +97,6 @@ async function hmacImportKey( } let keyObject; switch (format) { - case 'node.keyObject': { - if (!isKeyObject(keyData)) - throw new ERR_INVALID_ARG_TYPE('keyData', 'KeyObject', keyData); - - if (keyData.type !== 'secret') { - throw lazyDOMException( - `Unable to import HMAC key with format ${format}`); - } - - keyObject = keyData; - break; - } case 'raw': { const checkLength = keyData.byteLength * 8; diff --git a/lib/internal/crypto/random.js b/lib/internal/crypto/random.js index 0a889cbebf6a7d..6705bcd2e7d592 100644 --- a/lib/internal/crypto/random.js +++ b/lib/internal/crypto/random.js @@ -26,6 +26,7 @@ const { } = internalBinding('crypto'); const { + kEmptyObject, lazyDOMException, } = require('internal/util'); @@ -399,7 +400,7 @@ function randomUUID(options) { validateObject(options, 'options'); const { disableEntropyCache = false, - } = options || {}; + } = options || kEmptyObject; validateBoolean(disableEntropyCache, 'options.disableEntropyCache'); @@ -464,7 +465,7 @@ function generatePrime(size, options, callback) { validateInt32(size, 'size', 1); if (typeof options === 'function') { callback = options; - options = {}; + options = kEmptyObject; } validateFunction(callback, 'callback'); @@ -482,7 +483,7 @@ function generatePrime(size, options, callback) { job.run(); } -function generatePrimeSync(size, options = {}) { +function generatePrimeSync(size, options = kEmptyObject) { validateInt32(size, 'size', 1); const job = createRandomPrimeJob(kCryptoJobSync, size, options); @@ -506,7 +507,7 @@ function unsignedBigIntToBuffer(bigint, name) { return Buffer.from(padded, 'hex'); } -function checkPrime(candidate, options = {}, callback) { +function checkPrime(candidate, options = kEmptyObject, callback) { if (typeof candidate === 'bigint') candidate = unsignedBigIntToBuffer(candidate, 'candidate'); if (!isAnyArrayBuffer(candidate) && !isArrayBufferView(candidate)) { @@ -524,7 +525,7 @@ function checkPrime(candidate, options = {}, callback) { } if (typeof options === 'function') { callback = options; - options = {}; + options = kEmptyObject; } validateFunction(callback, 'callback'); validateObject(options, 'options'); @@ -539,7 +540,7 @@ function checkPrime(candidate, options = {}, callback) { job.run(); } -function checkPrimeSync(candidate, options = {}) { +function checkPrimeSync(candidate, options = kEmptyObject) { if (typeof candidate === 'bigint') candidate = unsignedBigIntToBuffer(candidate, 'candidate'); if (!isAnyArrayBuffer(candidate) && !isArrayBufferView(candidate)) { diff --git a/lib/internal/crypto/rsa.js b/lib/internal/crypto/rsa.js index 8e4b6af571dda3..728e4bd951cdc5 100644 --- a/lib/internal/crypto/rsa.js +++ b/lib/internal/crypto/rsa.js @@ -61,7 +61,6 @@ const { PublicKeyObject, createPublicKey, createPrivateKey, - isKeyObject, } = require('internal/crypto/keys'); const { @@ -177,7 +176,7 @@ async function rsaKeyGenerate( return new Promise((resolve, reject) => { generateKeyPair('rsa', { modulusLength, - publicExponentConverted, + publicExponent: publicExponentConverted, }, (err, pubKey, privKey) => { if (err) { return reject(lazyDOMException( @@ -247,15 +246,6 @@ async function rsaImportKey( const usagesSet = new SafeSet(keyUsages); let keyObject; switch (format) { - case 'node.keyObject': { - if (!isKeyObject(keyData)) - throw new ERR_INVALID_ARG_TYPE('keyData', 'KeyObject', keyData); - if (keyData.type === 'secret') - throw lazyDOMException('Invalid key type', 'InvalidAccessException'); - verifyAcceptableRsaKeyUse(algorithm.name, keyData.type, usagesSet); - keyObject = keyData; - break; - } case 'spki': { verifyAcceptableRsaKeyUse(algorithm.name, 'public', usagesSet); keyObject = createPublicKey({ @@ -326,14 +316,7 @@ async function rsaImportKey( 'NotSupportedError'); } - if (algorithm.name === 'RSA-PSS') { - if ( - keyObject.asymmetricKeyType !== 'rsa' && - keyObject.asymmetricKeyType !== 'rsa-pss' - ) { - throw lazyDOMException('Invalid key type', 'DataError'); - } - } else if (keyObject.asymmetricKeyType !== 'rsa') { + if (keyObject.asymmetricKeyType !== 'rsa') { throw lazyDOMException('Invalid key type', 'DataError'); } diff --git a/lib/internal/crypto/scrypt.js b/lib/internal/crypto/scrypt.js index 0d0ac1f7261e63..3e6565b85d36f0 100644 --- a/lib/internal/crypto/scrypt.js +++ b/lib/internal/crypto/scrypt.js @@ -2,7 +2,6 @@ const { FunctionPrototypeCall, - Promise, } = primordials; const { Buffer } = require('buffer'); @@ -30,18 +29,13 @@ const { const { getArrayBufferOrView, getDefaultEncoding, - kKeyObject, } = require('internal/crypto/util'); -const { - lazyDOMException, -} = require('internal/util'); - const defaults = { N: 16384, r: 8, p: 1, - maxmem: 32 << 20, // 32 MB, matches SCRYPT_MAX_MEM. + maxmem: 32 << 20, // 32 MiB, matches SCRYPT_MAX_MEM. }; function scrypt(password, salt, keylen, options, callback = defaults) { @@ -141,45 +135,7 @@ function check(password, salt, keylen, options) { return { password, salt, keylen, N, r, p, maxmem }; } -async function scryptDeriveBits(algorithm, baseKey, length) { - validateUint32(length, 'length'); - const { - N = 16384, - r = 8, - p = 1, - maxmem = 32 * 1024 * 1024, - encoding, - } = algorithm; - validateUint32(N, 'algorithm.N'); - validateUint32(r, 'algorithm.r'); - validateUint32(p, 'algorithm.p'); - validateUint32(maxmem, 'algorithm.maxmem'); - const salt = getArrayBufferOrView(algorithm.salt, 'algorithm.salt', encoding); - - const raw = baseKey[kKeyObject].export(); - - let byteLength = 64; // the default - if (length !== undefined) { - if (length === 0) - throw lazyDOMException('length cannot be zero', 'OperationError'); - if (length % 8) { - throw lazyDOMException( - 'length must be a multiple of 8', - 'OperationError'); - } - byteLength = length / 8; - } - - return new Promise((resolve, reject) => { - scrypt(raw, salt, byteLength, { N, r, p, maxmem }, (err, result) => { - if (err) return reject(err); - resolve(result.buffer); - }); - }); -} - module.exports = { scrypt, scryptSync, - scryptDeriveBits, }; diff --git a/lib/internal/crypto/util.js b/lib/internal/crypto/util.js index 854994277e5d30..40a677606bf3f0 100644 --- a/lib/internal/crypto/util.js +++ b/lib/internal/crypto/util.js @@ -143,10 +143,6 @@ const kNamedCurveAliases = { 'P-256': 'prime256v1', 'P-384': 'secp384r1', 'P-521': 'secp521r1', - 'NODE-ED25519': 'ed25519', - 'NODE-ED448': 'ed448', - 'NODE-X25519': 'x25519', - 'NODE-X448': 'x448', }; const kAesKeyLengths = [128, 192, 256]; @@ -170,13 +166,10 @@ const kAlgorithms = { 'sha-512': 'SHA-512', 'hkdf': 'HKDF', 'pbkdf2': 'PBKDF2', - // Following here are Node.js specific extensions. All - // should be prefixed with 'node-' - 'node-dsa': 'NODE-DSA', - 'node-dh': 'NODE-DH', - 'node-scrypt': 'NODE-SCRYPT', - 'node-ed25519': 'NODE-ED25519', - 'node-ed448': 'NODE-ED448', + 'ed25519': 'Ed25519', + 'ed448': 'Ed448', + 'x25519': 'X25519', + 'x448': 'X448', }; const kAlgorithmsKeys = ObjectKeys(kAlgorithms); @@ -186,8 +179,7 @@ const kExportFormats = [ 'raw', 'pkcs8', 'spki', - 'jwk', - 'node.keyObject']; + 'jwk']; // These are the only hash algorithms we currently support via // the Web Crypto API. @@ -271,7 +263,7 @@ const validateByteSource = hideStackFrames((val, name) => { val = toBuf(val); if (isAnyArrayBuffer(val) || isArrayBufferView(val)) - return; + return val; throw new ERR_INVALID_ARG_TYPE( name, diff --git a/lib/internal/crypto/webcrypto.js b/lib/internal/crypto/webcrypto.js index cf440ebf8ff39d..dc2e94aae7770e 100644 --- a/lib/internal/crypto/webcrypto.js +++ b/lib/internal/crypto/webcrypto.js @@ -6,6 +6,7 @@ const { JSONStringify, ObjectDefineProperties, ReflectApply, + ReflectConstruct, SafeSet, SymbolToStringTag, StringPrototypeRepeat, @@ -31,6 +32,7 @@ const { TextDecoder, TextEncoder } = require('internal/encoding'); const { codes: { + ERR_ILLEGAL_CONSTRUCTOR, ERR_INVALID_ARG_TYPE, ERR_INVALID_THIS, } @@ -41,7 +43,6 @@ const { InternalCryptoKey, createSecretKey, isCryptoKey, - isKeyObject, } = require('internal/crypto/keys'); const { @@ -70,15 +71,29 @@ const { randomUUID: _randomUUID, } = require('internal/crypto/random'); -const randomUUID = () => _randomUUID(); +async function digest(algorithm, data) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); + return ReflectApply(asyncDigest, this, arguments); +} + +function randomUUID() { + if (this !== crypto) throw new ERR_INVALID_THIS('Crypto'); + return _randomUUID(); +} async function generateKey( algorithm, extractable, keyUsages) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); algorithm = normalizeAlgorithm(algorithm); validateBoolean(extractable, 'extractable'); validateArray(keyUsages, 'keyUsages'); + if (keyUsages.length === 0) { + throw lazyDOMException( + 'Usages cannot be empty when creating a key', + 'SyntaxError'); + } switch (algorithm.name) { case 'RSASSA-PKCS1-v1_5': // Fall through @@ -87,10 +102,15 @@ async function generateKey( case 'RSA-OAEP': return lazyRequire('internal/crypto/rsa') .rsaKeyGenerate(algorithm, extractable, keyUsages); - case 'NODE-ED25519': + case 'Ed25519': + // Fall through + case 'Ed448': // Fall through - case 'NODE-ED448': + case 'X25519': // Fall through + case 'X448': + return lazyRequire('internal/crypto/cfrg') + .cfrgGenerateKey(algorithm, extractable, keyUsages); case 'ECDSA': // Fall through case 'ECDH': @@ -108,21 +128,13 @@ async function generateKey( case 'AES-KW': return lazyRequire('internal/crypto/aes') .aesGenerateKey(algorithm, extractable, keyUsages); - - // Following are Node.js specific extensions. Names must be prefixed - // with the `NODE-` - case 'NODE-DSA': - return lazyRequire('internal/crypto/dsa') - .dsaGenerateKey(algorithm, extractable, keyUsages); - case 'NODE-DH': - return lazyRequire('internal/crypto/diffiehellman') - .dhGenerateKey(algorithm, extractable, keyUsages); default: throw lazyDOMException('Unrecognized name.'); } } async function deriveBits(algorithm, baseKey, length) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); algorithm = normalizeAlgorithm(algorithm); if (!isCryptoKey(baseKey)) throw new ERR_INVALID_ARG_TYPE('baseKey', 'CryptoKey', baseKey); @@ -134,6 +146,10 @@ async function deriveBits(algorithm, baseKey, length) { if (baseKey.algorithm.name !== algorithm.name) throw lazyDOMException('Key algorithm mismatch', 'InvalidAccessError'); switch (algorithm.name) { + case 'X25519': + // Fall through + case 'X448': + // Fall through case 'ECDH': return lazyRequire('internal/crypto/diffiehellman') .asyncDeriveBitsECDH(algorithm, baseKey, length); @@ -143,12 +159,6 @@ async function deriveBits(algorithm, baseKey, length) { case 'PBKDF2': return lazyRequire('internal/crypto/pbkdf2') .pbkdf2DeriveBits(algorithm, baseKey, length); - case 'NODE-SCRYPT': - return lazyRequire('internal/crypto/scrypt') - .scryptDeriveBits(algorithm, baseKey, length); - case 'NODE-DH': - return lazyRequire('internal/crypto/diffiehellman') - .asyncDeriveBitsDH(algorithm, baseKey, length); } throw lazyDOMException('Unrecognized name.'); } @@ -194,6 +204,7 @@ async function deriveKey( derivedKeyAlgorithm, extractable, keyUsages) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); algorithm = normalizeAlgorithm(algorithm); derivedKeyAlgorithm = normalizeAlgorithm(derivedKeyAlgorithm); if (!isCryptoKey(baseKey)) @@ -214,6 +225,10 @@ async function deriveKey( const length = getKeyLength(derivedKeyAlgorithm); let bits; switch (algorithm.name) { + case 'X25519': + // Fall through + case 'X448': + // Fall through case 'ECDH': bits = await lazyRequire('internal/crypto/diffiehellman') .asyncDeriveBitsECDH(algorithm, baseKey, length); @@ -226,19 +241,15 @@ async function deriveKey( bits = await lazyRequire('internal/crypto/pbkdf2') .pbkdf2DeriveBits(algorithm, baseKey, length); break; - case 'NODE-SCRYPT': - bits = await lazyRequire('internal/crypto/scrypt') - .scryptDeriveBits(algorithm, baseKey, length); - break; - case 'NODE-DH': - bits = await lazyRequire('internal/crypto/diffiehellman') - .asyncDeriveBitsDH(algorithm, baseKey, length); - break; default: throw lazyDOMException('Unrecognized name.'); } - return importKey('raw', bits, derivedKeyAlgorithm, extractable, keyUsages); + return ReflectApply( + importKey, + this, + ['raw', bits, derivedKeyAlgorithm, extractable, keyUsages], + ); } async function exportKeySpki(key) { @@ -253,10 +264,6 @@ async function exportKeySpki(key) { .rsaExportKey(key, kWebCryptoKeyFormatSPKI); } break; - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - // Fall through case 'ECDSA': // Fall through case 'ECDH': @@ -265,16 +272,16 @@ async function exportKeySpki(key) { .ecExportKey(key, kWebCryptoKeyFormatSPKI); } break; - case 'NODE-DSA': - if (key.type === 'public') { - return lazyRequire('internal/crypto/dsa') - .dsaExportKey(key, kWebCryptoKeyFormatSPKI); - } - break; - case 'NODE-DH': + case 'Ed25519': + // Fall through + case 'Ed448': + // Fall through + case 'X25519': + // Fall through + case 'X448': if (key.type === 'public') { - return lazyRequire('internal/crypto/diffiehellman') - .dhExportKey(key, kWebCryptoKeyFormatSPKI); + return lazyRequire('internal/crypto/cfrg') + .cfrgExportKey(key, kWebCryptoKeyFormatSPKI); } break; } @@ -296,10 +303,6 @@ async function exportKeyPkcs8(key) { .rsaExportKey(key, kWebCryptoKeyFormatPKCS8); } break; - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - // Fall through case 'ECDSA': // Fall through case 'ECDH': @@ -308,16 +311,16 @@ async function exportKeyPkcs8(key) { .ecExportKey(key, kWebCryptoKeyFormatPKCS8); } break; - case 'NODE-DSA': - if (key.type === 'private') { - return lazyRequire('internal/crypto/dsa') - .dsaExportKey(key, kWebCryptoKeyFormatPKCS8); - } - break; - case 'NODE-DH': + case 'Ed25519': + // Fall through + case 'Ed448': + // Fall through + case 'X25519': + // Fall through + case 'X448': if (key.type === 'private') { - return lazyRequire('internal/crypto/diffiehellman') - .dhExportKey(key, kWebCryptoKeyFormatPKCS8); + return lazyRequire('internal/crypto/cfrg') + .cfrgExportKey(key, kWebCryptoKeyFormatPKCS8); } break; } @@ -329,20 +332,24 @@ async function exportKeyPkcs8(key) { async function exportKeyRaw(key) { switch (key.algorithm.name) { - case 'NODE-ED25519': + case 'ECDSA': // Fall through - case 'NODE-ED448': + case 'ECDH': if (key.type === 'public') { return lazyRequire('internal/crypto/ec') .ecExportKey(key, kWebCryptoKeyFormatRaw); } break; - case 'ECDSA': + case 'Ed25519': // Fall through - case 'ECDH': + case 'Ed448': + // Fall through + case 'X25519': + // Fall through + case 'X448': if (key.type === 'public') { - return lazyRequire('internal/crypto/ec') - .ecExportKey(key, kWebCryptoKeyFormatRaw); + return lazyRequire('internal/crypto/cfrg') + .cfrgExportKey(key, kWebCryptoKeyFormatRaw); } break; case 'AES-CTR': @@ -388,6 +395,17 @@ async function exportKeyJWK(key) { case 'ECDH': jwk.crv ||= key.algorithm.namedCurve; return jwk; + case 'X25519': + // Fall through + case 'X448': + jwk.crv ||= key.algorithm.name; + return jwk; + case 'Ed25519': + // Fall through + case 'Ed448': + jwk.crv ||= key.algorithm.name; + jwk.alg = 'EdDSA'; + return jwk; case 'AES-CTR': // Fall through case 'AES-CBC': @@ -403,10 +421,6 @@ async function exportKeyJWK(key) { key.algorithm.hash.name, normalizeHashName.kContextJwkHmac); return jwk; - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - return jwk; default: // Fall through } @@ -415,6 +429,7 @@ async function exportKeyJWK(key) { } async function exportKey(format, key) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); validateString(format, 'format'); validateOneOf(format, 'format', kExportFormats); if (!isCryptoKey(key)) @@ -424,7 +439,6 @@ async function exportKey(format, key) { throw lazyDOMException('key is not extractable', 'InvalidAccessException'); switch (format) { - case 'node.keyObject': return key[kKeyObject]; case 'spki': return exportKeySpki(key); case 'pkcs8': return exportKeyPkcs8(key); case 'jwk': return exportKeyJWK(key); @@ -451,15 +465,6 @@ async function importGenericSecretKey( } switch (format) { - case 'node.keyObject': { - if (!isKeyObject(keyData)) - throw new ERR_INVALID_ARG_TYPE('keyData', 'KeyObject', keyData); - - if (keyData.type === 'secret') - return new InternalCryptoKey(keyData, { name }, keyUsages, extractable); - - break; - } case 'raw': { if (hasAnyNotIn(usagesSet, ['deriveKey', 'deriveBits'])) { throw lazyDOMException( @@ -496,9 +501,10 @@ async function importKey( algorithm, extractable, keyUsages) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); validateString(format, 'format'); validateOneOf(format, 'format', kExportFormats); - if (format !== 'node.keyObject' && format !== 'jwk') + if (format !== 'jwk') keyData = getArrayBufferOrView(keyData, 'keyData'); algorithm = normalizeAlgorithm(algorithm); validateBoolean(extractable, 'extractable'); @@ -511,15 +517,20 @@ async function importKey( case 'RSA-OAEP': return lazyRequire('internal/crypto/rsa') .rsaImportKey(format, keyData, algorithm, extractable, keyUsages); - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - // Fall through case 'ECDSA': // Fall through case 'ECDH': return lazyRequire('internal/crypto/ec') .ecImportKey(format, keyData, algorithm, extractable, keyUsages); + case 'Ed25519': + // Fall through + case 'Ed448': + // Fall through + case 'X25519': + // Fall through + case 'X448': + return lazyRequire('internal/crypto/cfrg') + .cfrgImportKey(format, keyData, algorithm, extractable, keyUsages); case 'HMAC': return lazyRequire('internal/crypto/mac') .hmacImportKey(format, keyData, algorithm, extractable, keyUsages); @@ -534,8 +545,6 @@ async function importKey( .aesImportKey(algorithm, format, keyData, extractable, keyUsages); case 'HKDF': // Fall through - case 'NODE-SCRYPT': - // Fall through case 'PBKDF2': return importGenericSecretKey( algorithm, @@ -543,12 +552,6 @@ async function importKey( keyData, extractable, keyUsages); - case 'NODE-DSA': - return lazyRequire('internal/crypto/dsa') - .dsaImportKey(format, keyData, algorithm, extractable, keyUsages); - case 'NODE-DH': - return lazyRequire('internal/crypto/diffiehellman') - .dhImportKey(format, keyData, algorithm, extractable, keyUsages); } throw lazyDOMException('Unrecognized name.', 'NotSupportedError'); @@ -557,8 +560,9 @@ async function importKey( // subtle.wrapKey() is essentially a subtle.exportKey() followed // by a subtle.encrypt(). async function wrapKey(format, key, wrappingKey, algorithm) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); algorithm = normalizeAlgorithm(algorithm); - let keyData = await exportKey(format, key); + let keyData = await ReflectApply(exportKey, this, [format, key]); if (format === 'jwk') { if (keyData == null || typeof keyData !== 'object') @@ -586,6 +590,7 @@ async function unwrapKey( unwrappedKeyAlgo, extractable, keyUsages) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); wrappedKey = getArrayBufferOrView(wrappedKey, 'wrappedKey'); unwrapAlgo = normalizeAlgorithm(unwrapAlgo); let keyData = await cipherOrWrap( @@ -607,7 +612,11 @@ async function unwrapKey( } } - return importKey(format, keyData, unwrappedKeyAlgo, extractable, keyUsages); + return ReflectApply( + importKey, + this, + [format, keyData, unwrappedKeyAlgo, extractable, keyUsages], + ); } function signVerify(algorithm, key, data, signature) { @@ -634,30 +643,29 @@ function signVerify(algorithm, key, data, signature) { case 'RSASSA-PKCS1-v1_5': return lazyRequire('internal/crypto/rsa') .rsaSignVerify(key, data, algorithm, signature); - case 'NODE-ED25519': - // Fall through - case 'NODE-ED448': - // Fall through case 'ECDSA': return lazyRequire('internal/crypto/ec') .ecdsaSignVerify(key, data, algorithm, signature); + case 'Ed25519': + // Fall through + case 'Ed448': + // Fall through + return lazyRequire('internal/crypto/cfrg') + .eddsaSignVerify(key, data, algorithm, signature); case 'HMAC': return lazyRequire('internal/crypto/mac') .hmacSignVerify(key, data, algorithm, signature); - // The following are Node.js specific extensions. They must begin with - // the `NODE-` prefix - case 'NODE-DSA': - return lazyRequire('internal/crypto/dsa') - .dsaSignVerify(key, data, algorithm, signature); } throw lazyDOMException('Unrecognized named.', 'NotSupportedError'); } async function sign(algorithm, key, data) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); return signVerify(algorithm, key, data); } async function verify(algorithm, key, signature, data) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); return signVerify(algorithm, key, data, signature); } @@ -707,36 +715,46 @@ async function cipherOrWrap(mode, algorithm, key, data, op) { } async function encrypt(algorithm, key, data) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); return cipherOrWrap(kWebCryptoCipherEncrypt, algorithm, key, data, 'encrypt'); } async function decrypt(algorithm, key, data) { + if (this !== subtle) throw new ERR_INVALID_THIS('SubtleCrypto'); return cipherOrWrap(kWebCryptoCipherDecrypt, algorithm, key, data, 'decrypt'); } // The SubtleCrypto and Crypto classes are defined as part of the // Web Crypto API standard: https://www.w3.org/TR/WebCryptoAPI/ -class SubtleCrypto {} -const subtle = new SubtleCrypto(); +class SubtleCrypto { + constructor() { + throw new ERR_ILLEGAL_CONSTRUCTOR(); + } +} +const subtle = ReflectConstruct(function() {}, [], SubtleCrypto); class Crypto { + constructor() { + throw new ERR_ILLEGAL_CONSTRUCTOR(); + } + get subtle() { + if (this !== crypto) throw new ERR_INVALID_THIS('Crypto'); return subtle; } } -const crypto = new Crypto(); +const crypto = ReflectConstruct(function() {}, [], Crypto); function getRandomValues(array) { - if (!(this instanceof Crypto)) { - throw new ERR_INVALID_THIS('Crypto'); - } + if (this !== crypto) throw new ERR_INVALID_THIS('Crypto'); return ReflectApply(_getRandomValues, this, arguments); } ObjectDefineProperties( Crypto.prototype, { [SymbolToStringTag]: { + __proto__: null, enumerable: false, configurable: true, writable: false, @@ -744,18 +762,21 @@ ObjectDefineProperties( }, subtle: kEnumerableProperty, getRandomValues: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: getRandomValues, }, randomUUID: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: randomUUID, }, CryptoKey: { + __proto__: null, enumerable: true, configurable: true, writable: true, @@ -766,78 +787,91 @@ ObjectDefineProperties( ObjectDefineProperties( SubtleCrypto.prototype, { [SymbolToStringTag]: { + __proto__: null, enumerable: false, configurable: true, writable: false, value: 'SubtleCrypto', }, encrypt: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: encrypt, }, decrypt: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: decrypt, }, sign: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: sign, }, verify: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: verify, }, digest: { + __proto__: null, enumerable: true, configurable: true, writable: true, - value: asyncDigest, + value: digest, }, generateKey: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: generateKey, }, deriveKey: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: deriveKey, }, deriveBits: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: deriveBits, }, importKey: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: importKey, }, exportKey: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: exportKey, }, wrapKey: { + __proto__: null, enumerable: true, configurable: true, writable: true, value: wrapKey, }, unwrapKey: { + __proto__: null, enumerable: true, configurable: true, writable: true, diff --git a/lib/internal/crypto/x509.js b/lib/internal/crypto/x509.js index 386b41f3e4a42f..d08893d959f73a 100644 --- a/lib/internal/crypto/x509.js +++ b/lib/internal/crypto/x509.js @@ -23,6 +23,7 @@ const { const { customInspectSymbol: kInspect, + kEmptyObject, } = require('internal/util'); const { @@ -64,7 +65,7 @@ function isX509Certificate(value) { return value[kInternalState] !== undefined; } -function getFlags(options = {}) { +function getFlags(options = kEmptyObject) { validateObject(options, 'options'); const { subject = 'default', // Can be 'default', 'always', or 'never' diff --git a/lib/internal/debugger/inspect.js b/lib/internal/debugger/inspect.js index 7f1017886f6d6e..cb5ffa8cef5720 100644 --- a/lib/internal/debugger/inspect.js +++ b/lib/internal/debugger/inspect.js @@ -117,6 +117,7 @@ function createAgentProxy(domain, client) { }; return new Proxy(agent, { + __proto__: null, get(target, name) { if (name in target) return target[name]; return function callVirtualMethod(params) { diff --git a/lib/internal/debugger/inspect_repl.js b/lib/internal/debugger/inspect_repl.js index 4b11023554e268..49b41ef2af311f 100644 --- a/lib/internal/debugger/inspect_repl.js +++ b/lib/internal/debugger/inspect_repl.js @@ -179,96 +179,142 @@ function convertResultToError(result) { const { className, description } = result; const err = new ERR_DEBUGGER_ERROR(extractErrorMessage(description)); err.stack = description; - ObjectDefineProperty(err, 'name', { value: className }); + ObjectDefineProperty(err, 'name', { __proto__: null, value: className }); return err; } -class RemoteObject { +class PropertyPreview { constructor(attributes) { ObjectAssign(this, attributes); - if (this.type === 'number') { - this.value = - this.unserializableValue ? +this.unserializableValue : +this.value; + } + + [customInspectSymbol](depth, opts) { + switch (this.type) { + case 'string': + case 'undefined': + return utilInspect(this.value, opts); + case 'number': + case 'boolean': + return opts.stylize(this.value, this.type); + case 'object': + case 'symbol': + if (this.subtype === 'date') { + return utilInspect(new Date(this.value), opts); + } + if (this.subtype === 'array') { + return opts.stylize(this.value, 'special'); + } + return opts.stylize(this.value, this.subtype || 'special'); + default: + return this.value; } } +} + +class ObjectPreview { + constructor(attributes) { + ObjectAssign(this, attributes); + } [customInspectSymbol](depth, opts) { - function formatProperty(prop) { - switch (prop.type) { - case 'string': - case 'undefined': - return utilInspect(prop.value, opts); - - case 'number': - case 'boolean': - return opts.stylize(prop.value, prop.type); - - case 'object': - case 'symbol': - if (prop.subtype === 'date') { - return utilInspect(new Date(prop.value), opts); + switch (this.type) { + case 'object': { + switch (this.subtype) { + case 'date': + return utilInspect(new Date(this.description), opts); + case 'null': + return utilInspect(null, opts); + case 'regexp': + return opts.stylize(this.description, 'regexp'); + case 'set': { + if (!this.entries) { + return `${this.description} ${this.overflow ? '{ ... }' : '{}'}`; + } + const values = ArrayPrototypeMap(this.entries, (entry) => + utilInspect(new ObjectPreview(entry.value), opts)); + return `${this.description} { ${ArrayPrototypeJoin(values, ', ')} }`; } - if (prop.subtype === 'array') { - return opts.stylize(prop.value, 'special'); + case 'map': { + if (!this.entries) { + return `${this.description} ${this.overflow ? '{ ... }' : '{}'}`; + } + const mappings = ArrayPrototypeMap(this.entries, (entry) => { + const key = utilInspect(new ObjectPreview(entry.key), opts); + const value = utilInspect(new ObjectPreview(entry.value), opts); + return `${key} => ${value}`; + }); + return `${this.description} { ${ArrayPrototypeJoin(mappings, ', ')} }`; } - return opts.stylize(prop.value, prop.subtype || 'special'); - - default: - return prop.value; + case 'array': + case undefined: { + if (this.properties.length === 0) { + return this.subtype === 'array' ? '[]' : '{}'; + } + const props = ArrayPrototypeMap(this.properties, (prop, idx) => { + const value = utilInspect(new PropertyPreview(prop)); + if (prop.name === `${idx}`) return value; + return `${prop.name}: ${value}`; + }); + if (this.overflow) { + ArrayPrototypePush(props, '...'); + } + const singleLine = ArrayPrototypeJoin(props, ', '); + const propString = singleLine.length > 60 ? ArrayPrototypeJoin(props, ',\n ') : singleLine; + return this.subtype === 'array' ? `[ ${propString} ]` : `{ ${propString} }`; + } + default: + return this.description; + } } + default: + return this.description; + } + } +} + +class RemoteObject { + constructor(attributes) { + ObjectAssign(this, attributes); + if (this.type === 'number') { + this.value = + this.unserializableValue ? +this.unserializableValue : +this.value; } + } + + [customInspectSymbol](depth, opts) { switch (this.type) { case 'boolean': case 'number': case 'string': case 'undefined': return utilInspect(this.value, opts); - case 'symbol': return opts.stylize(this.description, 'special'); - case 'function': { const fnName = extractFunctionName(this.description); const formatted = `[${this.className}${fnName}]`; return opts.stylize(formatted, 'special'); } - case 'object': switch (this.subtype) { case 'date': return utilInspect(new Date(this.description), opts); - case 'null': return utilInspect(null, opts); - case 'regexp': return opts.stylize(this.description, 'regexp'); - + case 'map': + case 'set': { + const preview = utilInspect(new ObjectPreview(this.preview), opts); + return `${this.description} ${preview}`; + } default: break; } if (this.preview) { - const props = ArrayPrototypeMap( - this.preview.properties, - (prop, idx) => { - const value = formatProperty(prop); - if (prop.name === `${idx}`) return value; - return `${prop.name}: ${value}`; - }); - if (this.preview.overflow) { - ArrayPrototypePush(props, '...'); - } - const singleLine = ArrayPrototypeJoin(props, ', '); - const propString = - singleLine.length > 60 ? - ArrayPrototypeJoin(props, ',\n ') : - singleLine; - - return this.subtype === 'array' ? - `[ ${propString} ]` : `{ ${propString} }`; + return utilInspect(new ObjectPreview(this.preview), opts); } return this.description; - default: return this.description; } @@ -635,6 +681,9 @@ function createRepl(inspector) { // List source code function list(delta = 5) { + if (!selectedFrame) { + throw new ERR_DEBUGGER_ERROR('Requires execution to be paused'); + } return selectedFrame.list(delta).then(null, (error) => { print("You can't list source code right now"); throw error; @@ -890,6 +939,7 @@ function createRepl(inspector) { function initializeContext(context) { ArrayPrototypeForEach(inspector.domainNames, (domain) => { ObjectDefineProperty(context, domain, { + __proto__: null, value: inspector[domain], enumerable: true, configurable: true, diff --git a/lib/internal/dns/promises.js b/lib/internal/dns/promises.js index 68fcb29745e92d..334260923faa7b 100644 --- a/lib/internal/dns/promises.js +++ b/lib/internal/dns/promises.js @@ -15,9 +15,37 @@ const { validateTimeout, validateTries, emitInvalidHostnameWarning, - emitTypeCoercionDeprecationWarning, getDefaultVerbatim, + errorCodes: dnsErrorCodes, + setDefaultResultOrder, + setDefaultResolver, } = require('internal/dns/utils'); +const { + NODATA, + FORMERR, + SERVFAIL, + NOTFOUND, + NOTIMP, + REFUSED, + BADQUERY, + BADNAME, + BADFAMILY, + BADRESP, + CONNREFUSED, + TIMEOUT, + EOF, + FILE, + NOMEM, + DESTRUCTION, + BADSTR, + BADFLAGS, + NONAME, + BADHINTS, + NOTINITIALIZED, + LOADIPHLPAPI, + ADDRGETNETWORKPARAMS, + CANCELLED, +} = dnsErrorCodes; const { codes, dnsException } = require('internal/errors'); const { toASCII } = require('internal/idna'); const { isIP } = require('internal/net'); @@ -30,13 +58,16 @@ const { QueryReqWrap } = internalBinding('cares_wrap'); const { + ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS, } = codes; const { + validateBoolean, + validateNumber, + validateOneOf, validatePort, validateString, - validateOneOf, } = require('internal/validators'); const kPerfHooksDnsLookupContext = Symbol('kPerfHooksDnsLookupContext'); @@ -44,6 +75,7 @@ const kPerfHooksDnsLookupServiceContext = Symbol('kPerfHooksDnsLookupServiceCont const kPerfHooksDnsLookupResolveContext = Symbol('kPerfHooksDnsLookupResolveContext'); const { + hasObserver, startPerf, stopPerf, } = require('internal/perf/observe'); @@ -56,7 +88,9 @@ function onlookup(err, addresses) { const family = this.family || isIP(addresses[0]); this.resolve({ address: addresses[0], family }); - stopPerf(this, kPerfHooksDnsLookupContext); + if (this[kPerfHooksDnsLookupContext] && hasObserver('dns')) { + stopPerf(this, kPerfHooksDnsLookupContext); + } } function onlookupall(err, addresses) { @@ -77,7 +111,9 @@ function onlookupall(err, addresses) { } this.resolve(addresses); - stopPerf(this, kPerfHooksDnsLookupContext); + if (this[kPerfHooksDnsLookupContext] && hasObserver('dns')) { + stopPerf(this, kPerfHooksDnsLookupContext); + } } function createLookupPromise(family, hostname, all, hints, verbatim) { @@ -108,7 +144,7 @@ function createLookupPromise(family, hostname, all, hints, verbatim) { if (err) { reject(dnsException(err, 'getaddrinfo', hostname)); - } else { + } else if (hasObserver('dns')) { const detail = { hostname, family, @@ -120,9 +156,10 @@ function createLookupPromise(family, hostname, all, hints, verbatim) { }); } +const validFamilies = [0, 4, 6]; function lookup(hostname, options) { let hints = 0; - let family = -1; + let family = 0; let all = false; let verbatim = getDefaultVerbatim(); @@ -131,35 +168,31 @@ function lookup(hostname, options) { validateString(hostname, 'hostname'); } - if (options !== null && typeof options === 'object') { - if (options.hints != null && typeof options.hints !== 'number') { - emitTypeCoercionDeprecationWarning(); - } - hints = options.hints >>> 0; - if (options.family != null && typeof options.family !== 'number') { - emitTypeCoercionDeprecationWarning(); + if (typeof options === 'number') { + validateOneOf(options, 'family', validFamilies, true); + family = options; + } else if (options !== undefined && typeof options !== 'object') { + throw new ERR_INVALID_ARG_TYPE('options', ['integer', 'object'], options); + } else { + if (options?.hints != null) { + validateNumber(options.hints, 'options.hints'); + hints = options.hints >>> 0; + validateHints(hints); } - family = options.family >>> 0; - if (options.all != null && typeof options.all !== 'boolean') { - emitTypeCoercionDeprecationWarning(); + if (options?.family != null) { + validateOneOf(options.family, 'options.family', validFamilies, true); + family = options.family; } - all = options.all === true; - if (typeof options.verbatim === 'boolean') { - verbatim = options.verbatim === true; - } else if (options.verbatim != null) { - emitTypeCoercionDeprecationWarning(); + if (options?.all != null) { + validateBoolean(options.all, 'options.all'); + all = options.all; } - - validateHints(hints); - } else { - if (options != null && typeof options !== 'number') { - emitTypeCoercionDeprecationWarning(); + if (options?.verbatim != null) { + validateBoolean(options.verbatim, 'options.verbatim'); + verbatim = options.verbatim; } - family = options >>> 0; } - validateOneOf(family, 'family', [0, 4, 6], true); - return createLookupPromise(family, hostname, all, hints, verbatim); } @@ -171,7 +204,9 @@ function onlookupservice(err, hostname, service) { } this.resolve({ hostname, service }); - stopPerf(this, kPerfHooksDnsLookupServiceContext); + if (this[kPerfHooksDnsLookupServiceContext] && hasObserver('dns')) { + stopPerf(this, kPerfHooksDnsLookupServiceContext); + } } function createLookupServicePromise(hostname, port) { @@ -188,7 +223,7 @@ function createLookupServicePromise(hostname, port) { if (err) reject(dnsException(err, 'getnameinfo', hostname)); - else + else if (hasObserver('dns')) { startPerf(req, kPerfHooksDnsLookupServiceContext, { type: 'dns', name: 'lookupService', @@ -197,6 +232,7 @@ function createLookupServicePromise(hostname, port) { port } }); + } }); } @@ -224,7 +260,9 @@ function onresolve(err, result, ttls) { result, (address, index) => ({ address, ttl: ttls[index] })); this.resolve(result); - stopPerf(this, kPerfHooksDnsLookupResolveContext); + if (this[kPerfHooksDnsLookupResolveContext] && hasObserver('dns')) { + stopPerf(this, kPerfHooksDnsLookupResolveContext); + } } function createResolverPromise(resolver, bindingName, hostname, ttl) { @@ -242,7 +280,7 @@ function createResolverPromise(resolver, bindingName, hostname, ttl) { if (err) reject(dnsException(err, bindingName, hostname)); - else { + else if (hasObserver('dns')) { startPerf(req, kPerfHooksDnsLookupResolveContext, { type: 'dns', name: bindingName, @@ -263,7 +301,7 @@ function resolver(bindingName) { return createResolverPromise(this, bindingName, name, ttl); } - ObjectDefineProperty(query, 'name', { value: bindingName }); + ObjectDefineProperty(query, 'name', { __proto__: null, value: bindingName }); return query; } @@ -313,6 +351,45 @@ Resolver.prototype.resolve = function resolve(hostname, rrtype) { return ReflectApply(resolver, this, [hostname]); }; +function defaultResolverSetServers(servers) { + const resolver = new Resolver(); + + resolver.setServers(servers); + setDefaultResolver(resolver); + bindDefaultResolver(module.exports, Resolver.prototype); +} -module.exports = { lookup, lookupService, Resolver }; +module.exports = { + lookup, + lookupService, + Resolver, + setDefaultResultOrder, + setServers: defaultResolverSetServers, + + // ERROR CODES + NODATA, + FORMERR, + SERVFAIL, + NOTFOUND, + NOTIMP, + REFUSED, + BADQUERY, + BADNAME, + BADFAMILY, + BADRESP, + CONNREFUSED, + TIMEOUT, + EOF, + FILE, + NOMEM, + DESTRUCTION, + BADSTR, + BADFLAGS, + NONAME, + BADHINTS, + NOTINITIALIZED, + LOADIPHLPAPI, + ADDRGETNETWORKPARAMS, + CANCELLED, +}; bindDefaultResolver(module.exports, Resolver.prototype); diff --git a/lib/internal/dns/utils.js b/lib/internal/dns/utils.js index 58d3eaafcaa6c9..3a18db94ce30e8 100644 --- a/lib/internal/dns/utils.js +++ b/lib/internal/dns/utils.js @@ -38,13 +38,13 @@ const { function validateTimeout(options) { const { timeout = -1 } = { ...options }; - validateInt32(timeout, 'options.timeout', -1, 2 ** 31 - 1); + validateInt32(timeout, 'options.timeout', -1); return timeout; } function validateTries(options) { const { tries = 4 } = { ...options }; - validateInt32(tries, 'options.tries', 1, 2 ** 31 - 1); + validateInt32(tries, 'options.tries', 1); return tries; } @@ -190,18 +190,6 @@ function emitInvalidHostnameWarning(hostname) { } } -let typeCoercionWarningEmitted = false; -function emitTypeCoercionDeprecationWarning() { - if (!typeCoercionWarningEmitted) { - process.emitWarning( - 'Type coercion of dns.lookup options is deprecated', - 'DeprecationWarning', - 'DEP0153' - ); - typeCoercionWarningEmitted = true; - } -} - let dnsOrder = getOptionValue('--dns-result-order') || 'verbatim'; function getDefaultVerbatim() { @@ -213,6 +201,34 @@ function setDefaultResultOrder(value) { dnsOrder = value; } +// ERROR CODES +const errorCodes = { + NODATA: 'ENODATA', + FORMERR: 'EFORMERR', + SERVFAIL: 'ESERVFAIL', + NOTFOUND: 'ENOTFOUND', + NOTIMP: 'ENOTIMP', + REFUSED: 'EREFUSED', + BADQUERY: 'EBADQUERY', + BADNAME: 'EBADNAME', + BADFAMILY: 'EBADFAMILY', + BADRESP: 'EBADRESP', + CONNREFUSED: 'ECONNREFUSED', + TIMEOUT: 'ETIMEOUT', + EOF: 'EOF', + FILE: 'EFILE', + NOMEM: 'ENOMEM', + DESTRUCTION: 'EDESTRUCTION', + BADSTR: 'EBADSTR', + BADFLAGS: 'EBADFLAGS', + NONAME: 'ENONAME', + BADHINTS: 'EBADHINTS', + NOTINITIALIZED: 'ENOTINITIALIZED', + LOADIPHLPAPI: 'ELOADIPHLPAPI', + ADDRGETNETWORKPARAMS: 'EADDRGETNETWORKPARAMS', + CANCELLED: 'ECANCELLED', +}; + module.exports = { bindDefaultResolver, getDefaultResolver, @@ -222,7 +238,7 @@ module.exports = { validateTries, Resolver, emitInvalidHostnameWarning, - emitTypeCoercionDeprecationWarning, getDefaultVerbatim, setDefaultResultOrder, + errorCodes, }; diff --git a/lib/internal/encoding.js b/lib/internal/encoding.js index def0e9223b84c7..f9fa43228d5f57 100644 --- a/lib/internal/encoding.js +++ b/lib/internal/encoding.js @@ -7,6 +7,8 @@ const { ObjectCreate, ObjectDefineProperties, ObjectGetOwnPropertyDescriptors, + ObjectSetPrototypeOf, + ObjectValues, SafeMap, StringPrototypeSlice, Symbol, @@ -31,6 +33,7 @@ const kEncoder = Symbol('encoder'); const { getConstructorOf, customInspectSymbol: inspect, + kEmptyObject, kEnumerableProperty, } = require('internal/util'); @@ -362,7 +365,7 @@ ObjectDefineProperties( 'encode': kEnumerableProperty, 'encodeInto': kEnumerableProperty, 'encoding': kEnumerableProperty, - [SymbolToStringTag]: { configurable: true, value: 'TextEncoder' }, + [SymbolToStringTag]: { __proto__: null, configurable: true, value: 'TextEncoder' }, }); const TextDecoder = @@ -377,7 +380,7 @@ function makeTextDecoderICU() { } = internalBinding('icu'); class TextDecoder { - constructor(encoding = 'utf-8', options = {}) { + constructor(encoding = 'utf-8', options = kEmptyObject) { encoding = `${encoding}`; validateObject(options, 'options', { nullable: true, @@ -406,7 +409,7 @@ function makeTextDecoderICU() { } - decode(input = empty, options = {}) { + decode(input = empty, options = kEmptyObject) { validateDecoder(this); if (isAnyArrayBuffer(input)) { input = lazyBuffer().from(input); @@ -451,7 +454,7 @@ function makeTextDecoderJS() { } class TextDecoder { - constructor(encoding = 'utf-8', options = {}) { + constructor(encoding = 'utf-8', options = kEmptyObject) { encoding = `${encoding}`; validateObject(options, 'options', { nullable: true, @@ -479,7 +482,7 @@ function makeTextDecoderJS() { this[kBOMSeen] = false; } - decode(input = empty, options = {}) { + decode(input = empty, options = kEmptyObject) { validateDecoder(this); if (isAnyArrayBuffer(input)) { input = lazyBuffer().from(input); @@ -530,49 +533,54 @@ function makeTextDecoderJS() { } // Mix in some shared properties. -ObjectDefineProperties( - TextDecoder.prototype, - ObjectGetOwnPropertyDescriptors({ - get encoding() { - validateDecoder(this); - return this[kEncoding]; - }, - - get fatal() { - validateDecoder(this); - return (this[kFlags] & CONVERTER_FLAGS_FATAL) === CONVERTER_FLAGS_FATAL; - }, - - get ignoreBOM() { - validateDecoder(this); - return (this[kFlags] & CONVERTER_FLAGS_IGNORE_BOM) === +const sharedProperties = ObjectGetOwnPropertyDescriptors({ + get encoding() { + validateDecoder(this); + return this[kEncoding]; + }, + + get fatal() { + validateDecoder(this); + return (this[kFlags] & CONVERTER_FLAGS_FATAL) === CONVERTER_FLAGS_FATAL; + }, + + get ignoreBOM() { + validateDecoder(this); + return (this[kFlags] & CONVERTER_FLAGS_IGNORE_BOM) === CONVERTER_FLAGS_IGNORE_BOM; - }, + }, - [inspect](depth, opts) { - validateDecoder(this); - if (typeof depth === 'number' && depth < 0) - return this; - const constructor = getConstructorOf(this) || TextDecoder; - const obj = ObjectCreate({ constructor }); - obj.encoding = this.encoding; - obj.fatal = this.fatal; - obj.ignoreBOM = this.ignoreBOM; - if (opts.showHidden) { - obj[kFlags] = this[kFlags]; - obj[kHandle] = this[kHandle]; - } - // Lazy to avoid circular dependency - const { inspect } = require('internal/util/inspect'); - return `${constructor.name} ${inspect(obj)}`; + [inspect](depth, opts) { + validateDecoder(this); + if (typeof depth === 'number' && depth < 0) + return this; + const constructor = getConstructorOf(this) || TextDecoder; + const obj = ObjectCreate({ constructor }); + obj.encoding = this.encoding; + obj.fatal = this.fatal; + obj.ignoreBOM = this.ignoreBOM; + if (opts.showHidden) { + obj[kFlags] = this[kFlags]; + obj[kHandle] = this[kHandle]; } - }) -); + // Lazy to avoid circular dependency + const { inspect } = require('internal/util/inspect'); + return `${constructor.name} ${inspect(obj)}`; + } +}); +const propertiesValues = ObjectValues(sharedProperties); +for (let i = 0; i < propertiesValues.length; i++) { + // We want to use null-prototype objects to not rely on globally mutable + // %Object.prototype%. + ObjectSetPrototypeOf(propertiesValues[i], null); +} +sharedProperties[inspect].enumerable = false; ObjectDefineProperties(TextDecoder.prototype, { decode: kEnumerableProperty, - [inspect]: { enumerable: false }, + ...sharedProperties, [SymbolToStringTag]: { + __proto__: null, configurable: true, value: 'TextDecoder' } diff --git a/lib/internal/error_serdes.js b/lib/internal/error_serdes.js index c364820f60b1aa..68576c1c24d7a7 100644 --- a/lib/internal/error_serdes.js +++ b/lib/internal/error_serdes.js @@ -70,6 +70,7 @@ function GetConstructors(object) { const desc = ObjectGetOwnPropertyDescriptor(current, 'constructor'); if (desc && desc.value) { ObjectDefineProperty(constructors, constructors.length, { + __proto__: null, value: desc.value, enumerable: true }); } @@ -130,6 +131,7 @@ function deserializeError(error) { const { constructor, properties } = deserialize(error.subarray(1)); const ctor = errors[constructor]; ObjectDefineProperty(properties, SymbolToStringTag, { + __proto__: null, value: { value: 'Error', configurable: true }, enumerable: true }); diff --git a/lib/internal/errors.js b/lib/internal/errors.js index a5c64080a59aae..7570315abe54d6 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -175,24 +175,19 @@ let assert; let internalUtil = null; function lazyInternalUtil() { - if (!internalUtil) { - internalUtil = require('internal/util'); - } + internalUtil ??= require('internal/util'); return internalUtil; } let internalUtilInspect = null; function lazyInternalUtilInspect() { - if (!internalUtilInspect) { - internalUtilInspect = require('internal/util/inspect'); - } + internalUtilInspect ??= require('internal/util/inspect'); return internalUtilInspect; } let buffer; function lazyBuffer() { - if (buffer === undefined) - buffer = require('buffer').Buffer; + buffer ??= require('buffer').Buffer; return buffer; } @@ -207,6 +202,16 @@ function isErrorStackTraceLimitWritable() { desc.set !== undefined; } +function inspectWithNoCustomRetry(obj, options) { + const utilInspect = lazyInternalUtilInspect(); + + try { + return utilInspect.inspect(obj, options); + } catch { + return utilInspect.inspect(obj, { ...options, customInspect: false }); + } +} + // A specialized Error that includes an additional info property with // additional information about the error condition. // It has the properties present in a UVException but with a custom error @@ -237,30 +242,35 @@ class SystemError extends Error { ObjectDefineProperties(this, { [kIsNodeError]: { + __proto__: null, value: true, enumerable: false, writable: false, configurable: true, }, name: { + __proto__: null, value: 'SystemError', enumerable: false, writable: true, configurable: true, }, message: { + __proto__: null, value: message, enumerable: false, writable: true, configurable: true, }, info: { + __proto__: null, value: context, enumerable: true, configurable: true, writable: false, }, errno: { + __proto__: null, get() { return context.errno; }, @@ -271,6 +281,7 @@ class SystemError extends Error { configurable: true, }, syscall: { + __proto__: null, get() { return context.syscall; }, @@ -289,6 +300,7 @@ class SystemError extends Error { // `.toString()` and `Buffer.from()` operations and set the value on the // context as the user did. ObjectDefineProperty(this, 'path', { + __proto__: null, get() { return context.path != null ? context.path.toString() : context.path; @@ -304,6 +316,7 @@ class SystemError extends Error { if (context.dest !== undefined) { ObjectDefineProperty(this, 'dest', { + __proto__: null, get() { return context.dest != null ? context.dest.toString() : context.dest; @@ -349,18 +362,21 @@ function makeNodeErrorWithCode(Base, key) { const message = getMessage(key, args, error); ObjectDefineProperties(error, { [kIsNodeError]: { + __proto__: null, value: true, enumerable: false, writable: false, configurable: true, }, message: { + __proto__: null, value: message, enumerable: false, writable: true, configurable: true, }, toString: { + __proto__: null, value() { return `${this.name} [${key}]: ${this.message}`; }, @@ -384,7 +400,7 @@ function hideStackFrames(fn) { // We rename the functions that will be hidden to cut off the stacktrace // at the outermost one const hidden = nodeInternalPrefix + fn.name; - ObjectDefineProperty(fn, 'name', { value: hidden }); + ObjectDefineProperty(fn, 'name', { __proto__: null, value: hidden }); return fn; } @@ -411,7 +427,7 @@ function E(sym, val, def, ...otherClasses) { function getMessage(key, args, self) { const msg = messages.get(key); - if (assert === undefined) assert = require('internal/assert'); + assert ??= require('internal/assert'); if (typeof msg === 'function') { assert( @@ -439,9 +455,7 @@ function getMessage(key, args, self) { let uvBinding; function lazyUv() { - if (!uvBinding) { - uvBinding = internalBinding('uv'); - } + uvBinding ??= internalBinding('uv'); return uvBinding; } @@ -449,9 +463,7 @@ const uvUnmappedError = ['UNKNOWN', 'unknown error']; function uvErrmapGet(name) { uvBinding = lazyUv(); - if (!uvBinding.errmap) { - uvBinding.errmap = uvBinding.getErrorMap(); - } + uvBinding.errmap ??= uvBinding.getErrorMap(); return MapPrototypeGet(uvBinding.errmap, name); } @@ -578,7 +590,7 @@ const errnoException = hideStackFrames( // getSystemErrorName(err) to guard against invalid arguments from users. // This can be replaced with [ code ] = errmap.get(err) when this method // is no longer exposed to user land. - if (util === undefined) util = require('util'); + util ??= require('util'); const code = util.getSystemErrorName(err); const message = original ? `${syscall} ${code} ${original}` : `${syscall} ${code}`; @@ -612,7 +624,7 @@ const exceptionWithHostPort = hideStackFrames( // getSystemErrorName(err) to guard against invalid arguments from users. // This can be replaced with [ code ] = errmap.get(err) when this method // is no longer exposed to user land. - if (util === undefined) util = require('util'); + util ??= require('util'); const code = util.getSystemErrorName(err); let details = ''; if (port && port > 0) { @@ -862,6 +874,7 @@ module.exports = { getMessage, hideInternalStackFrames, hideStackFrames, + inspectWithNoCustomRetry, isErrorStackTraceLimitWritable, isStackOverflowError, kEnhanceStackBeforeInspector, @@ -965,6 +978,8 @@ E('ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE', 'The `domain` module is in use, which is mutually exclusive with calling ' + 'process.setUncaughtExceptionCaptureCallback()', Error); +E('ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION', + 'Deserialize main function is already configured.', Error); E('ERR_ENCODING_INVALID_ENCODED_DATA', function(encoding, ret) { this.errno = ret; return `The encoded data was not valid for encoding ${encoding}`; @@ -993,7 +1008,7 @@ E('ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY', 'Cannot overwrite symlink in subdirectory of self', SystemError); E('ERR_FS_CP_UNKNOWN', 'Cannot copy an unknown file type', SystemError); E('ERR_FS_EISDIR', 'Path is a directory', SystemError); -E('ERR_FS_FILE_TOO_LARGE', 'File size (%s) is greater than 2 GB', RangeError); +E('ERR_FS_FILE_TOO_LARGE', 'File size (%s) is greater than 2 GiB', RangeError); E('ERR_FS_INVALID_SYMLINK_TYPE', 'Symlink type must be one of "dir", "file", or "junction". Received "%s"', Error); // Switch to TypeError. The current implementation does not seem right @@ -1227,7 +1242,7 @@ E('ERR_INVALID_ARG_TYPE', } else if (typeof actual === 'function' && actual.name) { msg += `. Received function ${actual.name}`; } else if (typeof actual === 'object') { - if (actual.constructor && actual.constructor.name) { + if (actual.constructor?.name) { msg += `. Received an instance of ${actual.constructor.name}`; } else { const inspected = lazyInternalUtilInspect() @@ -1321,7 +1336,7 @@ E('ERR_INVALID_RETURN_PROPERTY_VALUE', (input, name, prop, value) => { }, TypeError); E('ERR_INVALID_RETURN_VALUE', (input, name, value) => { let type; - if (value && value.constructor && value.constructor.name) { + if (value?.constructor?.name) { type = `instance of ${value.constructor.name}`; } else { type = `type ${typeof value}`; @@ -1357,6 +1372,13 @@ E('ERR_IPC_CHANNEL_CLOSED', 'Channel closed', Error); E('ERR_IPC_DISCONNECTED', 'IPC channel is already disconnected', Error); E('ERR_IPC_ONE_PIPE', 'Child process can have only one IPC pipe', Error); E('ERR_IPC_SYNC_FORK', 'IPC cannot be used with synchronous forks', Error); +E( + 'ERR_LOADER_CHAIN_INCOMPLETE', + '"%s" did not call the next hook in its chain and did not' + + ' explicitly signal a short circuit. If this is intentional, include' + + ' `shortCircuit: true` in the hook\'s return.', + Error +); E('ERR_MANIFEST_ASSERT_INTEGRITY', (moduleURL, realIntegrities) => { let msg = `The content of "${ @@ -1436,6 +1458,8 @@ E('ERR_NETWORK_IMPORT_BAD_RESPONSE', "import '%s' received a bad response: %s", Error); E('ERR_NETWORK_IMPORT_DISALLOWED', "import of '%s' by %s is not supported: %s", Error); +E('ERR_NOT_BUILDING_SNAPSHOT', + 'Operation cannot be invoked when not building startup snapshot', Error); E('ERR_NO_CRYPTO', 'Node.js is not compiled with OpenSSL crypto support', Error); E('ERR_NO_ICU', @@ -1472,6 +1496,15 @@ E('ERR_PACKAGE_PATH_NOT_EXPORTED', (pkgPath, subpath, base = undefined) => { return `Package subpath '${subpath}' is not defined by "exports" in ${ pkgPath}package.json${base ? ` imported from ${base}` : ''}`; }, Error); +E('ERR_PARSE_ARGS_INVALID_OPTION_VALUE', '%s', TypeError); +E('ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL', "Unexpected argument '%s'. This " + + 'command does not take positional arguments', TypeError); +E('ERR_PARSE_ARGS_UNKNOWN_OPTION', (option, allowPositionals) => { + const suggestDashDash = allowPositionals ? '. To specify a positional ' + + "argument starting with a '-', place it at the end of the command after " + + `'--', as in '-- ${JSONStringify(option)}` : ''; + return `Unknown option '${option}'${suggestDashDash}`; +}, TypeError); E('ERR_PERFORMANCE_INVALID_TIMESTAMP', '%d is not a valid timestamp', TypeError); E('ERR_PERFORMANCE_MEASURE_INVALID_OPTIONS', '%s', TypeError); @@ -1549,11 +1582,14 @@ E('ERR_TEST_FAILURE', function(error, failureType) { assert(typeof failureType === 'string', "The 'failureType' argument must be of type string."); - const msg = error?.message ?? lazyInternalUtilInspect().inspect(error); + let msg = error?.message ?? error; - this.failureType = error?.failureType ?? failureType; - this.cause = error; + if (typeof msg !== 'string') { + msg = inspectWithNoCustomRetry(msg); + } + this.failureType = failureType; + this.cause = error; return msg; }, Error); E('ERR_TLS_CERT_ALTNAME_FORMAT', 'Invalid subject alternative name string', @@ -1639,12 +1675,15 @@ E('ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA', 'Cached data cannot be created for a module which has been evaluated', Error); E('ERR_VM_MODULE_DIFFERENT_CONTEXT', 'Linked modules must use the same context', Error); -E('ERR_VM_MODULE_LINKING_ERRORED', - 'Linking has already failed for the provided module', Error); +E('ERR_VM_MODULE_LINK_FAILURE', function(message, cause) { + this.cause = cause; + return message; +}, Error); E('ERR_VM_MODULE_NOT_MODULE', 'Provided module is not an instance of Module', Error); E('ERR_VM_MODULE_STATUS', 'Module status %s', Error); E('ERR_WASI_ALREADY_STARTED', 'WASI instance has already started', Error); +E('ERR_WEBASSEMBLY_RESPONSE', 'WebAssembly response %s', TypeError); E('ERR_WORKER_INIT_FAILED', 'Worker initialization failure: %s', Error); E('ERR_WORKER_INVALID_EXEC_ARGV', (errors, msg = 'invalid execArgv flags') => `Initiated Worker with ${msg}: ${ArrayPrototypeJoin(errors, ', ')}`, diff --git a/lib/internal/event_target.js b/lib/internal/event_target.js index 0f9a896396f79c..651cf55d5f3f8e 100644 --- a/lib/internal/event_target.js +++ b/lib/internal/event_target.js @@ -35,7 +35,11 @@ const { } = require('internal/errors'); const { validateObject, validateString } = require('internal/validators'); -const { customInspectSymbol, kEnumerableProperty } = require('internal/util'); +const { + customInspectSymbol, + kEmptyObject, + kEnumerableProperty, +} = require('internal/util'); const { inspect } = require('util'); const kIsEventTarget = SymbolFor('nodejs.event_target'); @@ -110,6 +114,7 @@ class Event { // isTrusted is special (LegacyUnforgeable) ObjectDefineProperty(this, 'isTrusted', { + __proto__: null, get: isTrusted, enumerable: true, configurable: false @@ -296,6 +301,7 @@ class Event { ObjectDefineProperties( Event.prototype, { [SymbolToStringTag]: { + __proto__: null, writable: false, enumerable: false, configurable: true, @@ -451,7 +457,7 @@ class EventTarget { * signal?: AbortSignal * }} [options] */ - addEventListener(type, listener, options = {}) { + addEventListener(type, listener, options = kEmptyObject) { if (!isEventTarget(this)) throw new ERR_INVALID_THIS('EventTarget'); if (arguments.length < 2) @@ -538,7 +544,7 @@ class EventTarget { * capture?: boolean, * }} [options] */ - removeEventListener(type, listener, options = {}) { + removeEventListener(type, listener, options = kEmptyObject) { if (!isEventTarget(this)) throw new ERR_INVALID_THIS('EventTarget'); if (!shouldAddListener(listener)) @@ -677,6 +683,7 @@ ObjectDefineProperties(EventTarget.prototype, { removeEventListener: kEnumerableProperty, dispatchEvent: kEnumerableProperty, [SymbolToStringTag]: { + __proto__: null, writable: false, enumerable: false, configurable: true, @@ -866,7 +873,7 @@ function validateEventListenerOptions(options) { return { capture: options }; if (options === null) - return {}; + return kEmptyObject; validateObject(options, 'options', { allowArray: true, allowFunction: true, }); @@ -924,6 +931,7 @@ function makeEventHandler(handler) { function defineEventHandler(emitter, name) { // 8.1.5.1 Event handlers - basically `on[eventName]` attributes ObjectDefineProperty(emitter, `on${name}`, { + __proto__: null, get() { return this[kHandlers]?.get(name)?.handler ?? null; }, diff --git a/lib/internal/freeze_intrinsics.js b/lib/internal/freeze_intrinsics.js index 0dcfea1ef2ec28..cb1d28f4b0feb4 100644 --- a/lib/internal/freeze_intrinsics.js +++ b/lib/internal/freeze_intrinsics.js @@ -372,6 +372,7 @@ module.exports = function() { // 19.1 Value Properties of the Global Object ObjectDefineProperty(globalThis, 'globalThis', { + __proto__: null, configurable: false, writable: false, value: globalThis, @@ -510,6 +511,7 @@ module.exports = function() { this[prop] = newValue; } else { ObjectDefineProperty(this, prop, { + __proto__: null, value: newValue, writable: true, enumerable: true, @@ -519,6 +521,7 @@ module.exports = function() { } ObjectDefineProperty(obj, prop, { + __proto__: null, get: getter, set: setter, enumerable: desc.enumerable, diff --git a/lib/internal/fs/dir.js b/lib/internal/fs/dir.js index 5fda9d8a7f3ef4..f2bf2485e11b1c 100644 --- a/lib/internal/fs/dir.js +++ b/lib/internal/fs/dir.js @@ -226,6 +226,7 @@ class Dir { } ObjectDefineProperty(Dir.prototype, SymbolAsyncIterator, { + __proto__: null, value: Dir.prototype.entries, enumerable: false, writable: true, diff --git a/lib/internal/fs/promises.js b/lib/internal/fs/promises.js index 73c159550740b0..34fd0f586766dd 100644 --- a/lib/internal/fs/promises.js +++ b/lib/internal/fs/promises.js @@ -5,7 +5,6 @@ const { Error, MathMax, MathMin, - ObjectCreate, NumberIsSafeInteger, Promise, PromisePrototypeThen, @@ -17,13 +16,15 @@ const { Uint8Array, } = primordials; +const { fs: constants } = internalBinding('constants'); const { F_OK, O_SYMLINK, O_WRONLY, S_IFMT, S_IFREG -} = internalBinding('constants').fs; +} = constants; + const binding = internalBinding('fs'); const { Buffer } = require('buffer'); @@ -79,7 +80,11 @@ const { validateString, } = require('internal/validators'); const pathModule = require('path'); -const { lazyDOMException, promisify } = require('internal/util'); +const { + kEmptyObject, + lazyDOMException, + promisify, +} = require('internal/util'); const { EventEmitterMixin } = require('internal/event_target'); const { watch } = require('internal/fs/watchers'); const { isIterable } = require('internal/streams/utils'); @@ -508,20 +513,29 @@ async function open(path, flags, mode) { flagsNumber, mode, kUsePromises)); } -async function read(handle, bufferOrOptions, offset, length, position) { - let buffer = bufferOrOptions; +async function read(handle, bufferOrParams, offset, length, position) { + let buffer = bufferOrParams; if (!isArrayBufferView(buffer)) { - bufferOrOptions ??= ObjectCreate(null); + // This is fh.read(params) ({ buffer = Buffer.alloc(16384), offset = 0, length = buffer.byteLength - offset, - position = null - } = bufferOrOptions); + position = null, + } = bufferOrParams ?? kEmptyObject); validateBuffer(buffer); } + if (offset !== null && typeof offset === 'object') { + // This is fh.read(buffer, options) + ({ + offset = 0, + length = buffer.byteLength - offset, + position = null, + } = offset); + } + if (offset == null) { offset = 0; } else { @@ -560,11 +574,20 @@ async function readv(handle, buffers, position) { return { bytesRead, buffers }; } -async function write(handle, buffer, offset, length, position) { +async function write(handle, buffer, offsetOrOptions, length, position) { if (buffer?.byteLength === 0) return { bytesWritten: 0, buffer }; + let offset = offsetOrOptions; if (isArrayBufferView(buffer)) { + if (typeof offset === 'object') { + ({ + offset = 0, + length = buffer.byteLength - offset, + position = null, + } = offsetOrOptions ?? kEmptyObject); + } + if (offset == null) { offset = 0; } else { @@ -658,7 +681,7 @@ async function mkdir(path, options) { const { recursive = false, mode = 0o777 - } = options || {}; + } = options || kEmptyObject; path = getValidatedPath(path); validateBoolean(recursive, 'options.recursive'); @@ -668,7 +691,7 @@ async function mkdir(path, options) { } async function readdir(path, options) { - options = getOptions(options, {}); + options = getOptions(options); path = getValidatedPath(path); const result = await binding.readdir(pathModule.toNamespacedPath(path), options.encoding, @@ -680,7 +703,7 @@ async function readdir(path, options) { } async function readlink(path, options) { - options = getOptions(options, {}); + options = getOptions(options); path = getValidatedPath(path, 'oldPath'); return binding.readlink(pathModule.toNamespacedPath(path), options.encoding, kUsePromises); @@ -792,13 +815,13 @@ async function lutimes(path, atime, mtime) { } async function realpath(path, options) { - options = getOptions(options, {}); + options = getOptions(options); path = getValidatedPath(path); return binding.realpath(path, options.encoding, kUsePromises); } async function mkdtemp(prefix, options) { - options = getOptions(options, {}); + options = getOptions(options); validateString(prefix, 'prefix'); nullCheck(prefix); @@ -881,6 +904,7 @@ module.exports = { appendFile, readFile, watch, + constants, }, FileHandle, diff --git a/lib/internal/fs/streams.js b/lib/internal/fs/streams.js index c7ecbff76cefd6..c5bc567a8409bf 100644 --- a/lib/internal/fs/streams.js +++ b/lib/internal/fs/streams.js @@ -16,7 +16,10 @@ const { ERR_OUT_OF_RANGE, ERR_METHOD_NOT_IMPLEMENTED, } = require('internal/errors').codes; -const { deprecate } = require('internal/util'); +const { + deprecate, + kEmptyObject, +} = require('internal/util'); const { validateFunction, validateInteger, @@ -147,7 +150,7 @@ function ReadStream(path, options) { return new ReadStream(path, options); // A little bit bigger buffer and water marks by default - options = copyObject(getOptions(options, {})); + options = copyObject(getOptions(options, kEmptyObject)); if (options.highWaterMark === undefined) options.highWaterMark = 64 * 1024; @@ -212,6 +215,7 @@ ObjectSetPrototypeOf(ReadStream.prototype, Readable.prototype); ObjectSetPrototypeOf(ReadStream, Readable); ObjectDefineProperty(ReadStream.prototype, 'autoClose', { + __proto__: null, get() { return this._readableState.autoDestroy; }, @@ -295,6 +299,7 @@ ReadStream.prototype.close = function(cb) { }; ObjectDefineProperty(ReadStream.prototype, 'pending', { + __proto__: null, get() { return this.fd === null; }, configurable: true }); @@ -303,7 +308,7 @@ function WriteStream(path, options) { if (!(this instanceof WriteStream)) return new WriteStream(path, options); - options = copyObject(getOptions(options, {})); + options = copyObject(getOptions(options, kEmptyObject)); // Only buffers are supported. options.decodeStrings = true; @@ -371,6 +376,7 @@ ObjectSetPrototypeOf(WriteStream.prototype, Writable.prototype); ObjectSetPrototypeOf(WriteStream, Writable); ObjectDefineProperty(WriteStream.prototype, 'autoClose', { + __proto__: null, get() { return this._writableState.autoDestroy; }, @@ -479,6 +485,7 @@ WriteStream.prototype.close = function(cb) { WriteStream.prototype.destroySoon = WriteStream.prototype.end; ObjectDefineProperty(WriteStream.prototype, 'pending', { + __proto__: null, get() { return this.fd === null; }, configurable: true }); diff --git a/lib/internal/fs/sync_write_stream.js b/lib/internal/fs/sync_write_stream.js index df366edce4716b..8fa5c56aaffc62 100644 --- a/lib/internal/fs/sync_write_stream.js +++ b/lib/internal/fs/sync_write_stream.js @@ -4,6 +4,7 @@ const { ObjectSetPrototypeOf, ReflectApply, } = primordials; +const { kEmptyObject } = require('internal/util'); const { Writable } = require('stream'); const { closeSync, writeSync } = require('fs'); @@ -11,7 +12,7 @@ const { closeSync, writeSync } = require('fs'); function SyncWriteStream(fd, options) { ReflectApply(Writable, this, [{ autoDestroy: true }]); - options = options || {}; + options = options || kEmptyObject; this.fd = fd; this.readable = false; diff --git a/lib/internal/fs/utils.js b/lib/internal/fs/utils.js index 61670011372bb7..9280fcfef7018e 100644 --- a/lib/internal/fs/utils.js +++ b/lib/internal/fs/utils.js @@ -43,7 +43,10 @@ const { isDate, isBigUint64Array } = require('internal/util/types'); -const { once } = require('internal/util'); +const { + kEmptyObject, + once, +} = require('internal/util'); const { toPathIfFileURL } = require('internal/url'); const { validateAbortSignal, @@ -122,7 +125,7 @@ const kMaximumCopyMode = COPYFILE_EXCL | COPYFILE_FICLONE | COPYFILE_FICLONE_FORCE; -// Most platforms don't allow reads or writes >= 2 GB. +// Most platforms don't allow reads or writes >= 2 GiB. // See https://github.com/libuv/libuv/pull/1501. const kIoMaxLength = 2 ** 31 - 1; @@ -312,9 +315,8 @@ function getDirent(path, name, type, callback) { } } -function getOptions(options, defaultOptions) { - if (options === null || options === undefined || - typeof options === 'function') { +function getOptions(options, defaultOptions = kEmptyObject) { + if (options == null || typeof options === 'function') { return defaultOptions; } diff --git a/lib/internal/fs/watchers.js b/lib/internal/fs/watchers.js index f86860f8fc0aed..7b820e70df1613 100644 --- a/lib/internal/fs/watchers.js +++ b/lib/internal/fs/watchers.js @@ -291,6 +291,7 @@ function emitCloseNT(self) { // Legacy alias on the C++ wrapper object. This is not public API, so we may // want to runtime-deprecate it at some point. There's no hurry, though. ObjectDefineProperty(FSEvent.prototype, 'owner', { + __proto__: null, get() { return this[owner_symbol]; }, set(v) { return this[owner_symbol] = v; } }); diff --git a/lib/internal/histogram.js b/lib/internal/histogram.js index 4237e716dc07e4..ca540e555e0160 100644 --- a/lib/internal/histogram.js +++ b/lib/internal/histogram.js @@ -17,6 +17,7 @@ const { const { customInspectSymbol: kInspect, + kEmptyObject, } = require('internal/util'); const { inspect } = require('util'); @@ -352,7 +353,7 @@ internalRecordableHistogram.prototype[kDeserialize] = () => {}; * }} [options] * @returns {RecordableHistogram} */ -function createHistogram(options = {}) { +function createHistogram(options = kEmptyObject) { validateObject(options, 'options'); const { lowest = 1, diff --git a/lib/internal/http.js b/lib/internal/http.js index 375118da49f59b..a92a985ffacccc 100644 --- a/lib/internal/http.js +++ b/lib/internal/http.js @@ -16,6 +16,8 @@ const { hasObserver, } = require('internal/perf/observe'); +const { now } = require('internal/perf/utils'); + let utcCache; function utcDate() { @@ -36,12 +38,11 @@ function resetCache() { function emitStatistics(statistics) { if (!hasObserver('http') || statistics == null) return; const startTime = statistics.startTime; - const diff = process.hrtime(startTime); const entry = new InternalPerformanceEntry( statistics.type, 'http', - startTime[0] * 1000 + startTime[1] / 1e6, - diff[0] * 1000 + diff[1] / 1e6, + startTime, + now() - startTime, undefined, ); enqueue(entry); diff --git a/lib/internal/http2/compat.js b/lib/internal/http2/compat.js index 596167990cd022..0bda29233d5bca 100644 --- a/lib/internal/http2/compat.js +++ b/lib/internal/http2/compat.js @@ -682,9 +682,19 @@ class Http2ServerResponse extends Stream { let i; if (ArrayIsArray(headers)) { - for (i = 0; i < headers.length; i++) { - const header = headers[i]; - this[kSetHeader](header[0], header[1]); + if (headers.length && ArrayIsArray(headers[0])) { + for (i = 0; i < headers.length; i++) { + const header = headers[i]; + this[kSetHeader](header[0], header[1]); + } + } else { + if (headers.length % 2 !== 0) { + throw new ERR_INVALID_ARG_VALUE('headers', headers); + } + + for (i = 0; i < headers.length; i += 2) { + this[kSetHeader](headers[i], headers[i + 1]); + } } } else if (typeof headers === 'object') { const keys = ObjectKeys(headers); diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js index 9d8d6bc2c860fa..22d9f0f6c0d870 100644 --- a/lib/internal/http2/core.js +++ b/lib/internal/http2/core.js @@ -37,7 +37,8 @@ const { const { assertCrypto, customInspectSymbol: kInspect, - promisify + kEmptyObject, + promisify, } = require('internal/util'); assertCrypto(); @@ -986,6 +987,7 @@ function trackAssignmentsTypedArray(typedArray) { } return new Proxy(typedArray, { + __proto__: null, get(obj, prop, receiver) { if (prop === 'copyAssigned') { return copyAssigned; @@ -3119,7 +3121,7 @@ function initializeTLSOptions(options, servername) { options.ALPNProtocols = ['h2']; if (options.allowHTTP1 === true) ArrayPrototypePush(options.ALPNProtocols, 'http/1.1'); - if (servername !== undefined && options.servername === undefined) + if (servername !== undefined && !options.servername) options.servername = servername; return options; } @@ -3302,6 +3304,7 @@ function connect(authority, options, listener) { // Support util.promisify ObjectDefineProperty(connect, promisify.custom, { + __proto__: null, value: (authority, options) => { return new Promise((resolve) => { const server = connect(authority, options, () => resolve(server)); @@ -3331,7 +3334,7 @@ function getPackedSettings(settings) { return binding.packSettings(); } -function getUnpackedSettings(buf, options = {}) { +function getUnpackedSettings(buf, options = kEmptyObject) { if (!isArrayBufferView(buf) || buf.length === undefined) { throw new ERR_INVALID_ARG_TYPE('buf', ['Buffer', 'TypedArray'], buf); @@ -3401,6 +3404,7 @@ module.exports = { sensitiveHeaders: kSensitiveHeaders, Http2Session, Http2Stream, + ServerHttp2Session, Http2ServerRequest, Http2ServerResponse }; diff --git a/lib/internal/http2/util.js b/lib/internal/http2/util.js index 962bdd753c2717..ecb943c9b8e37d 100644 --- a/lib/internal/http2/util.js +++ b/lib/internal/http2/util.js @@ -555,6 +555,7 @@ class NghttpError extends Error { this.errno = integerCode; captureLargerStackTrace(this); ObjectDefineProperty(this, kIsNodeError, { + __proto__: null, value: true, enumerable: false, writable: false, diff --git a/lib/internal/main/mksnapshot.js b/lib/internal/main/mksnapshot.js index 3e1515a2d2e05e..616a436e0a9483 100644 --- a/lib/internal/main/mksnapshot.js +++ b/lib/internal/main/mksnapshot.js @@ -9,7 +9,7 @@ const { const binding = internalBinding('mksnapshot'); const { NativeModule } = require('internal/bootstrap/loaders'); const { - compileSnapshotMain, + compileSerializeMain, } = binding; const { @@ -83,7 +83,7 @@ const supportedModules = new SafeSet(new SafeArrayIterator([ 'v8', // 'vm', // 'worker_threads', - // 'zlib', + 'zlib', ])); const warnedModules = new SafeSet(); @@ -117,25 +117,22 @@ function main() { } = require('internal/bootstrap/pre_execution'); prepareMainThreadExecution(true, false); - process.once('beforeExit', function runCleanups() { - for (const cleanup of binding.cleanups) { - cleanup(); - } - }); const file = process.argv[1]; const path = require('path'); const filename = path.resolve(file); const dirname = path.dirname(filename); const source = readFileSync(file, 'utf-8'); - const snapshotMainFunction = compileSnapshotMain(filename, source); + const serializeMainFunction = compileSerializeMain(filename, source); + + require('internal/v8/startup_snapshot').initializeCallbacks(); if (getOptionValue('--inspect-brk')) { internalBinding('inspector').callAndPauseOnStart( - snapshotMainFunction, undefined, + serializeMainFunction, undefined, requireForUserSnapshot, filename, dirname); } else { - snapshotMainFunction(requireForUserSnapshot, filename, dirname); + serializeMainFunction(requireForUserSnapshot, filename, dirname); } } diff --git a/lib/internal/main/test_runner.js b/lib/internal/main/test_runner.js new file mode 100644 index 00000000000000..71bf21782f39f3 --- /dev/null +++ b/lib/internal/main/test_runner.js @@ -0,0 +1,157 @@ +'use strict'; +const { + ArrayFrom, + ArrayPrototypeFilter, + ArrayPrototypeIncludes, + ArrayPrototypePush, + ArrayPrototypeSlice, + ArrayPrototypeSort, + Promise, + SafeSet, +} = primordials; +const { + prepareMainThreadExecution, +} = require('internal/bootstrap/pre_execution'); +const { spawn } = require('child_process'); +const { readdirSync, statSync } = require('fs'); +const console = require('internal/console/global'); +const { + codes: { + ERR_TEST_FAILURE, + }, +} = require('internal/errors'); +const test = require('internal/test_runner/harness'); +const { kSubtestsFailed } = require('internal/test_runner/test'); +const { + isSupportedFileType, + doesPathMatchFilter, +} = require('internal/test_runner/utils'); +const { basename, join, resolve } = require('path'); +const kFilterArgs = ['--test']; + +prepareMainThreadExecution(false); +markBootstrapComplete(); + +// TODO(cjihrig): Replace this with recursive readdir once it lands. +function processPath(path, testFiles, options) { + const stats = statSync(path); + + if (stats.isFile()) { + if (options.userSupplied || + (options.underTestDir && isSupportedFileType(path)) || + doesPathMatchFilter(path)) { + testFiles.add(path); + } + } else if (stats.isDirectory()) { + const name = basename(path); + + if (!options.userSupplied && name === 'node_modules') { + return; + } + + // 'test' directories get special treatment. Recursively add all .js, + // .cjs, and .mjs files in the 'test' directory. + const isTestDir = name === 'test'; + const { underTestDir } = options; + const entries = readdirSync(path); + + if (isTestDir) { + options.underTestDir = true; + } + + options.userSupplied = false; + + for (let i = 0; i < entries.length; i++) { + processPath(join(path, entries[i]), testFiles, options); + } + + options.underTestDir = underTestDir; + } +} + +function createTestFileList() { + const cwd = process.cwd(); + const hasUserSuppliedPaths = process.argv.length > 1; + const testPaths = hasUserSuppliedPaths ? + ArrayPrototypeSlice(process.argv, 1) : [cwd]; + const testFiles = new SafeSet(); + + try { + for (let i = 0; i < testPaths.length; i++) { + const absolutePath = resolve(testPaths[i]); + + processPath(absolutePath, testFiles, { userSupplied: true }); + } + } catch (err) { + if (err?.code === 'ENOENT') { + console.error(`Could not find '${err.path}'`); + process.exit(1); + } + + throw err; + } + + return ArrayPrototypeSort(ArrayFrom(testFiles)); +} + +function filterExecArgv(arg) { + return !ArrayPrototypeIncludes(kFilterArgs, arg); +} + +function runTestFile(path) { + return test(path, () => { + return new Promise((resolve, reject) => { + const args = ArrayPrototypeFilter(process.execArgv, filterExecArgv); + ArrayPrototypePush(args, path); + + const child = spawn(process.execPath, args); + // TODO(cjihrig): Implement a TAP parser to read the child's stdout + // instead of just displaying it all if the child fails. + let stdout = ''; + let stderr = ''; + let err; + + child.on('error', (error) => { + err = error; + }); + + child.stdout.setEncoding('utf8'); + child.stderr.setEncoding('utf8'); + + child.stdout.on('data', (chunk) => { + stdout += chunk; + }); + + child.stderr.on('data', (chunk) => { + stderr += chunk; + }); + + child.once('exit', (code, signal) => { + if (code !== 0 || signal !== null) { + if (!err) { + err = new ERR_TEST_FAILURE('test failed', kSubtestsFailed); + err.exitCode = code; + err.signal = signal; + err.stdout = stdout; + err.stderr = stderr; + // The stack will not be useful since the failures came from tests + // in a child process. + err.stack = undefined; + } + + return reject(err); + } + + resolve(); + }); + }); + }); +} + +(async function main() { + const testFiles = createTestFileList(); + + for (let i = 0; i < testFiles.length; i++) { + runTestFile(testFiles[i]); + } +})(); diff --git a/lib/internal/main/worker_thread.js b/lib/internal/main/worker_thread.js index a8167b86ca2e5a..91ca93e6e10062 100644 --- a/lib/internal/main/worker_thread.js +++ b/lib/internal/main/worker_thread.js @@ -90,11 +90,13 @@ const port = getEnvMessagePort(); if (process.env.NODE_CHANNEL_FD) { const workerThreadSetup = require('internal/process/worker_thread_only'); ObjectDefineProperty(process, 'channel', { + __proto__: null, enumerable: false, get: workerThreadSetup.unavailable('process.channel') }); ObjectDefineProperty(process, 'connected', { + __proto__: null, enumerable: false, get: workerThreadSetup.unavailable('process.connected') }); @@ -172,6 +174,7 @@ port.on('message', (message) => { // This is necessary for CJS module compilation. // TODO: pass this with something really internal. ObjectDefineProperty(process, '_eval', { + __proto__: null, configurable: true, enumerable: true, value: filename, diff --git a/lib/internal/modules/cjs/helpers.js b/lib/internal/modules/cjs/helpers.js index 3ae63b46195f75..ef4544ca0aaa52 100644 --- a/lib/internal/modules/cjs/helpers.js +++ b/lib/internal/modules/cjs/helpers.js @@ -171,6 +171,7 @@ function addBuiltinLibsToObject(object, dummyModuleName) { }; ObjectDefineProperty(object, name, { + __proto__: null, get: () => { const lib = dummyModule.require(name); @@ -178,6 +179,7 @@ function addBuiltinLibsToObject(object, dummyModuleName) { // non-enumerable property. delete object[name]; ObjectDefineProperty(object, name, { + __proto__: null, get: () => lib, set: setReal, configurable: true, diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 3fd1aa3404f884..11e029b258aa9a 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -210,6 +210,8 @@ const wrapper = [ ]; let wrapperProxy = new Proxy(wrapper, { + __proto__: null, + set(target, property, value, receiver) { patched = true; return ReflectSet(target, property, value, receiver); @@ -222,6 +224,7 @@ let wrapperProxy = new Proxy(wrapper, { }); ObjectDefineProperty(Module, 'wrap', { + __proto__: null, get() { return wrap; }, @@ -233,6 +236,7 @@ ObjectDefineProperty(Module, 'wrap', { }); ObjectDefineProperty(Module, 'wrapper', { + __proto__: null, get() { return wrapperProxy; }, @@ -256,6 +260,7 @@ function setModuleParent(value) { } ObjectDefineProperty(Module.prototype, 'parent', { + __proto__: null, get: pendingDeprecation ? deprecate( getModuleParent, 'module.parent is deprecated due to accuracy issues. Please use ' + @@ -666,7 +671,8 @@ if (isWindows) { } Module._resolveLookupPaths = function(request, parent) { - if (NativeModule.canBeRequiredByUsers(request)) { + if (NativeModule.canBeRequiredByUsers(request) && + NativeModule.canBeRequiredWithoutScheme(request)) { debug('looking for %j in []', request); return null; } @@ -714,6 +720,8 @@ function emitCircularRequireWarning(prop) { // A Proxy that can be used as the prototype of a module.exports object and // warns when non-existent properties are accessed. const CircularRequirePrototypeWarningProxy = new Proxy({}, { + __proto__: null, + get(target, prop) { // Allow __esModule access in any case because it is used in the output // of transpiled code to determine whether something comes from an @@ -776,19 +784,19 @@ Module._load = function(request, parent, isMain) { } } - const filename = Module._resolveFilename(request, parent, isMain); - if (StringPrototypeStartsWith(filename, 'node:')) { + if (StringPrototypeStartsWith(request, 'node:')) { // Slice 'node:' prefix - const id = StringPrototypeSlice(filename, 5); + const id = StringPrototypeSlice(request, 5); const module = loadNativeModule(id, request); if (!module?.canBeRequiredByUsers) { - throw new ERR_UNKNOWN_BUILTIN_MODULE(filename); + throw new ERR_UNKNOWN_BUILTIN_MODULE(request); } return module.exports; } + const filename = Module._resolveFilename(request, parent, isMain); const cachedModule = Module._cache[filename]; if (cachedModule !== undefined) { updateChildren(parent, cachedModule, true); @@ -803,11 +811,8 @@ Module._load = function(request, parent, isMain) { } const mod = loadNativeModule(filename, request); - if (mod?.canBeRequiredByUsers) { - if (!NativeModule.canBeRequiredWithoutScheme(filename)) { - throw new ERR_UNKNOWN_BUILTIN_MODULE(filename); - } - + if (mod?.canBeRequiredByUsers && + NativeModule.canBeRequiredWithoutScheme(filename)) { return mod.exports; } @@ -853,8 +858,15 @@ Module._load = function(request, parent, isMain) { }; Module._resolveFilename = function(request, parent, isMain, options) { - if (StringPrototypeStartsWith(request, 'node:') || - NativeModule.canBeRequiredByUsers(request)) { + if ( + ( + StringPrototypeStartsWith(request, 'node:') && + NativeModule.canBeRequiredByUsers(StringPrototypeSlice(request, 5)) + ) || ( + NativeModule.canBeRequiredByUsers(request) && + NativeModule.canBeRequiredWithoutScheme(request) + ) + ) { return request; } @@ -1024,8 +1036,7 @@ function wrapSafe(filename, content, cjsModuleInstance) { displayErrors: true, importModuleDynamically: async (specifier, _, importAssertions) => { const loader = asyncESM.esmLoader; - return loader.import(specifier, - loader.getBaseURL(normalizeReferrerURL(filename)), + return loader.import(specifier, normalizeReferrerURL(filename), importAssertions); }, }); @@ -1041,8 +1052,7 @@ function wrapSafe(filename, content, cjsModuleInstance) { filename, importModuleDynamically(specifier, _, importAssertions) { const loader = asyncESM.esmLoader; - return loader.import(specifier, - loader.getBaseURL(normalizeReferrerURL(filename)), + return loader.import(specifier, normalizeReferrerURL(filename), importAssertions); }, }); @@ -1286,7 +1296,8 @@ Module._preloadModules = function(requests) { Module.syncBuiltinESMExports = function syncBuiltinESMExports() { for (const mod of NativeModule.map.values()) { - if (mod.canBeRequiredByUsers) { + if (mod.canBeRequiredByUsers && + NativeModule.canBeRequiredWithoutScheme(mod.id)) { mod.syncExports(); } } diff --git a/lib/internal/modules/esm/fetch_module.js b/lib/internal/modules/esm/fetch_module.js index f6c2fc8827aa73..c65587e34c488f 100644 --- a/lib/internal/modules/esm/fetch_module.js +++ b/lib/internal/modules/esm/fetch_module.js @@ -239,5 +239,5 @@ function fetchModule(parsed, { parentURL }) { } module.exports = { - fetchModule: fetchModule, + fetchModule, }; diff --git a/lib/internal/modules/esm/get_source.js b/lib/internal/modules/esm/get_source.js deleted file mode 100644 index ab2a9888f76fe7..00000000000000 --- a/lib/internal/modules/esm/get_source.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -const { - ArrayPrototypeConcat, - RegExpPrototypeExec, - decodeURIComponent, -} = primordials; -const { getOptionValue } = require('internal/options'); -const { fetchModule } = require('internal/modules/esm/fetch_module'); - -// Do not eagerly grab .manifest, it may be in TDZ -const policy = getOptionValue('--experimental-policy') ? - require('internal/process/policy') : - null; -const experimentalNetworkImports = - getOptionValue('--experimental-network-imports'); - -const { Buffer: { from: BufferFrom } } = require('buffer'); - -const fs = require('internal/fs/promises').exports; -const { URL } = require('internal/url'); -const { - ERR_INVALID_URL, - ERR_UNSUPPORTED_ESM_URL_SCHEME, -} = require('internal/errors').codes; -const readFileAsync = fs.readFile; - -const DATA_URL_PATTERN = /^[^/]+\/[^,;]+(?:[^,]*?)(;base64)?,([\s\S]*)$/; - -async function defaultGetSource(url, context, defaultGetSource) { - const parsed = new URL(url); - let source; - if (parsed.protocol === 'file:') { - source = await readFileAsync(parsed); - } else if (parsed.protocol === 'data:') { - const match = RegExpPrototypeExec(DATA_URL_PATTERN, parsed.pathname); - if (!match) { - throw new ERR_INVALID_URL(url); - } - const { 1: base64, 2: body } = match; - source = BufferFrom(decodeURIComponent(body), base64 ? 'base64' : 'utf8'); - } else if (experimentalNetworkImports && ( - parsed.protocol === 'https:' || - parsed.protocol === 'http:' - )) { - const res = await fetchModule(parsed, context); - source = await res.body; - } else { - throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, ArrayPrototypeConcat([ - 'file', - 'data', - experimentalNetworkImports ? ['https', 'http'] : [], - ])); - } - if (policy?.manifest) { - policy.manifest.assertIntegrity(parsed, source); - } - return source; -} -exports.defaultGetSource = defaultGetSource; diff --git a/lib/internal/modules/esm/initialize_import_meta.js b/lib/internal/modules/esm/initialize_import_meta.js index f1daabbb6425aa..d8e8fe587c413e 100644 --- a/lib/internal/modules/esm/initialize_import_meta.js +++ b/lib/internal/modules/esm/initialize_import_meta.js @@ -3,21 +3,23 @@ const { getOptionValue } = require('internal/options'); const experimentalImportMetaResolve = getOptionValue('--experimental-import-meta-resolve'); -const { - PromisePrototypeThen, - PromiseReject, -} = primordials; const asyncESM = require('internal/process/esm_loader'); function createImportMetaResolve(defaultParentUrl) { - return async function resolve(specifier, parentUrl = defaultParentUrl) { - return PromisePrototypeThen( - asyncESM.esmLoader.resolve(specifier, parentUrl), - ({ url }) => url, - (error) => ( - error.code === 'ERR_UNSUPPORTED_DIR_IMPORT' ? - error.url : PromiseReject(error)) - ); + return function resolve(specifier, parentUrl = defaultParentUrl) { + let url; + + try { + ({ url } = asyncESM.esmLoader.resolve(specifier, parentUrl)); + } catch (error) { + if (error.code === 'ERR_UNSUPPORTED_DIR_IMPORT') { + ({ url } = error); + } else { + throw error; + } + } + + return url; }; } @@ -26,15 +28,13 @@ function createImportMetaResolve(defaultParentUrl) { * @param {{url: string}} context */ function initializeImportMeta(meta, context) { - let url = context.url; + const { url } = context; // Alphabetical if (experimentalImportMetaResolve) { meta.resolve = createImportMetaResolve(url); } - url = asyncESM.esmLoader.getBaseURL(url); - meta.url = url; } diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js index 6defb598a2abf7..86b31830457240 100644 --- a/lib/internal/modules/esm/load.js +++ b/lib/internal/modules/esm/load.js @@ -1,8 +1,67 @@ 'use strict'; +const { + ArrayPrototypePush, + RegExpPrototypeExec, + decodeURIComponent, +} = primordials; + const { defaultGetFormat } = require('internal/modules/esm/get_format'); -const { defaultGetSource } = require('internal/modules/esm/get_source'); const { validateAssertions } = require('internal/modules/esm/assert'); +const { getOptionValue } = require('internal/options'); +const { fetchModule } = require('internal/modules/esm/fetch_module'); + +// Do not eagerly grab .manifest, it may be in TDZ +const policy = getOptionValue('--experimental-policy') ? + require('internal/process/policy') : + null; +const experimentalNetworkImports = + getOptionValue('--experimental-network-imports'); + +const { Buffer: { from: BufferFrom } } = require('buffer'); + +const { readFile: readFileAsync } = require('internal/fs/promises').exports; +const { URL } = require('internal/url'); +const { + ERR_INVALID_URL, + ERR_UNSUPPORTED_ESM_URL_SCHEME, +} = require('internal/errors').codes; + +const DATA_URL_PATTERN = /^[^/]+\/[^,;]+(?:[^,]*?)(;base64)?,([\s\S]*)$/; + +async function getSource(url, context) { + const parsed = new URL(url); + let responseURL = url; + let source; + if (parsed.protocol === 'file:') { + source = await readFileAsync(parsed); + } else if (parsed.protocol === 'data:') { + const match = RegExpPrototypeExec(DATA_URL_PATTERN, parsed.pathname); + if (!match) { + throw new ERR_INVALID_URL(url); + } + const { 1: base64, 2: body } = match; + source = BufferFrom(decodeURIComponent(body), base64 ? 'base64' : 'utf8'); + } else if (experimentalNetworkImports && ( + parsed.protocol === 'https:' || + parsed.protocol === 'http:' + )) { + const res = await fetchModule(parsed, context); + source = await res.body; + responseURL = res.resolvedHREF; + } else { + const supportedSchemes = ['file', 'data']; + if (experimentalNetworkImports) { + ArrayPrototypePush(supportedSchemes, 'http', 'https'); + } + throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, supportedSchemes); + } + if (policy?.manifest) { + policy.manifest.assertIntegrity(parsed, source); + } + return { responseURL, source }; +} + /** * Node.js default load hook. @@ -11,6 +70,7 @@ const { validateAssertions } = require('internal/modules/esm/assert'); * @returns {object} */ async function defaultLoad(url, context) { + let responseURL = url; const { importAssertions } = context; let { format, @@ -29,11 +89,12 @@ async function defaultLoad(url, context) { ) { source = null; } else if (source == null) { - source = await defaultGetSource(url, context); + ({ responseURL, source } = await getSource(url, context)); } return { format, + responseURL, source, }; } diff --git a/lib/internal/modules/esm/loader.js b/lib/internal/modules/esm/loader.js index 0dccfebbd4f37f..ef9b32f4deb8ed 100644 --- a/lib/internal/modules/esm/loader.js +++ b/lib/internal/modules/esm/loader.js @@ -12,23 +12,29 @@ const { FunctionPrototypeCall, ObjectAssign, ObjectCreate, + ObjectDefineProperty, ObjectSetPrototypeOf, PromiseAll, + PromiseResolve, + PromisePrototypeThen, + ReflectApply, RegExpPrototypeExec, SafeArrayIterator, SafeWeakMap, - StringPrototypeStartsWith, + StringPrototypeSlice, + StringPrototypeToUpperCase, globalThis, } = primordials; const { MessageChannel } = require('internal/worker/io'); const { + ERR_LOADER_CHAIN_INCOMPLETE, ERR_INTERNAL_ASSERTION, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_INVALID_RETURN_PROPERTY_VALUE, ERR_INVALID_RETURN_VALUE, - ERR_UNKNOWN_MODULE_FORMAT + ERR_UNKNOWN_MODULE_FORMAT, } = require('internal/errors').codes; const { pathToFileURL, isURLInstance, URL } = require('internal/url'); const { emitExperimentalWarning } = require('internal/util'); @@ -36,6 +42,10 @@ const { isAnyArrayBuffer, isArrayBufferView, } = require('internal/util/types'); +const { + validateObject, + validateString, +} = require('internal/validators'); const ModuleMap = require('internal/modules/esm/module_map'); const ModuleJob = require('internal/modules/esm/module_job'); @@ -50,16 +60,133 @@ const { defaultLoad } = require('internal/modules/esm/load'); const { translators } = require( 'internal/modules/esm/translators'); const { getOptionValue } = require('internal/options'); -const { - fetchModule, -} = require('internal/modules/esm/fetch_module'); +/** + * @typedef {object} ExportedHooks + * @property {Function} globalPreload + * @property {Function} resolve + * @property {Function} load + */ + +/** + * @typedef {Record} ModuleExports + */ + +/** + * @typedef {object} KeyedExports + * @property {ModuleExports} exports + * @property {URL['href']} url + */ /** - * Prevent the specifier resolution warning from being printed twice + * @typedef {object} KeyedHook + * @property {Function} fn + * @property {URL['href']} url */ + +/** + * @typedef {'builtin'|'commonjs'|'json'|'module'|'wasm'} ModuleFormat + */ + +/** + * @typedef {ArrayBuffer|TypedArray|string} ModuleSource + */ + +// [2] `validate...()`s throw the wrong error + let emittedSpecifierResolutionWarning = false; +/** + * A utility function to iterate through a hook chain, track advancement in the + * chain, and generate and supply the `next` argument to the custom + * hook. + * @param {KeyedHook[]} chain The whole hook chain. + * @param {object} meta Properties that change as the current hook advances + * along the chain. + * @param {boolean} meta.chainFinished Whether the end of the chain has been + * reached AND invoked. + * @param {string} meta.hookErrIdentifier A user-facing identifier to help + * pinpoint where an error occurred. Ex "file:///foo.mjs 'resolve'". + * @param {number} meta.hookIndex A non-negative integer tracking the current + * position in the hook chain. + * @param {string} meta.hookName The kind of hook the chain is (ex 'resolve') + * @param {boolean} meta.shortCircuited Whether a hook signaled a short-circuit. + * @param {object} validators A wrapper function + * containing all validation of a custom loader hook's intermediary output. Any + * validation within MUST throw. + * @param {(hookErrIdentifier, hookArgs) => void} validators.validateArgs + * @param {(hookErrIdentifier, output) => void} validators.validateOutput + * @returns {function next(...hookArgs)} The next hook in the chain. + */ +function nextHookFactory(chain, meta, { validateArgs, validateOutput }) { + // First, prepare the current + const { hookName } = meta; + const { + fn: hook, + url: hookFilePath, + } = chain[meta.hookIndex]; + + // ex 'nextResolve' + const nextHookName = `next${ + StringPrototypeToUpperCase(hookName[0]) + + StringPrototypeSlice(hookName, 1) + }`; + + // When hookIndex is 0, it's reached the default, which does not call next() + // so feed it a noop that blows up if called, so the problem is obvious. + const generatedHookIndex = meta.hookIndex; + let nextNextHook; + if (meta.hookIndex > 0) { + // Now, prepare the next: decrement the pointer so the next call to the + // factory generates the next link in the chain. + meta.hookIndex--; + + nextNextHook = nextHookFactory(chain, meta, { validateArgs, validateOutput }); + } else { + // eslint-disable-next-line func-name-matching + nextNextHook = function chainAdvancedTooFar() { + throw new ERR_INTERNAL_ASSERTION( + `ESM custom loader '${hookName}' advanced beyond the end of the chain.` + ); + }; + } + + return ObjectDefineProperty( + (...args) => { + // Update only when hook is invoked to avoid fingering the wrong filePath + meta.hookErrIdentifier = `${hookFilePath} '${hookName}'`; + + validateArgs(`${meta.hookErrIdentifier} hook's ${nextHookName}()`, args); + + const outputErrIdentifier = `${chain[generatedHookIndex].url} '${hookName}' hook's ${nextHookName}()`; + + // Set when next is actually called, not just generated. + if (generatedHookIndex === 0) { meta.chainFinished = true; } + + ArrayPrototypePush(args, nextNextHook); + const output = ReflectApply(hook, undefined, args); + + validateOutput(outputErrIdentifier, output); + + function checkShortCircuited(output) { + if (output?.shortCircuit === true) { meta.shortCircuited = true; } + + return output; + } + + if (meta.isChainAsync) { + return PromisePrototypeThen( + PromiseResolve(output), + checkShortCircuited, + ); + } + + return checkShortCircuited(output); + }, + 'name', + { __proto__: null, value: nextHookName }, + ); +} /** * An ESMLoader instance is used as the main entry point for loading ES modules. @@ -70,27 +197,35 @@ class ESMLoader { /** * Prior to ESM loading. These are called once before any modules are started. * @private - * @property {Function[]} globalPreloaders First-in-first-out list of - * preload hooks. + * @property {KeyedHook[]} globalPreloaders Last-in-first-out + * list of preload hooks. */ #globalPreloaders = []; /** * Phase 2 of 2 in ESM loading. * @private - * @property {Function[]} loaders First-in-first-out list of loader hooks. + * @property {KeyedHook[]} loaders Last-in-first-out + * collection of loader hooks. */ #loaders = [ - defaultLoad, + { + fn: defaultLoad, + url: 'node:internal/modules/esm/load', + }, ]; /** * Phase 1 of 2 in ESM loading. * @private - * @property {Function[]} resolvers First-in-first-out list of resolver hooks + * @property {KeyedHook[]} resolvers Last-in-first-out + * collection of resolver hooks. */ #resolvers = [ - defaultResolve, + { + fn: defaultResolve, + url: 'node:internal/modules/esm/resolve', + }, ]; #importMetaInitializer = initializeImportMeta; @@ -116,13 +251,16 @@ class ESMLoader { translators = translators; constructor() { - if (getOptionValue('--experimental-loader')) { + if (getOptionValue('--experimental-loader').length > 0) { emitExperimentalWarning('Custom ESM Loaders'); } if (getOptionValue('--experimental-network-imports')) { emitExperimentalWarning('Network Imports'); } - if (getOptionValue('--experimental-specifier-resolution') === 'node' && !emittedSpecifierResolutionWarning) { + if ( + !emittedSpecifierResolutionWarning && + getOptionValue('--experimental-specifier-resolution') === 'node' + ) { process.emitWarning( 'The Node.js specifier resolution flag is experimental. It could change or be removed at any time.', 'ExperimentalWarning' @@ -131,6 +269,11 @@ class ESMLoader { } } + /** + * + * @param {ModuleExports} exports + * @returns {ExportedHooks} + */ static pluckHooks({ globalPreload, resolve, @@ -194,34 +337,51 @@ class ESMLoader { /** * Collect custom/user-defined hook(s). After all hooks have been collected, * calls global preload hook(s). - * @param {object | object[]} customLoaders A list of exports from - * user-defined loaders (as returned by ESMLoader.import()). + * @param {KeyedExports} customLoaders + * A list of exports from user-defined loaders (as returned by + * ESMLoader.import()). */ async addCustomLoaders( customLoaders = [], ) { - if (!ArrayIsArray(customLoaders)) customLoaders = [customLoaders]; - for (let i = 0; i < customLoaders.length; i++) { - const exports = customLoaders[i]; + const { + exports, + url, + } = customLoaders[i]; const { globalPreloader, resolver, loader, } = ESMLoader.pluckHooks(exports); - if (globalPreloader) ArrayPrototypePush( - this.#globalPreloaders, - FunctionPrototypeBind(globalPreloader, null), // [1] - ); - if (resolver) ArrayPrototypePush( - this.#resolvers, - FunctionPrototypeBind(resolver, null), // [1] - ); - if (loader) ArrayPrototypePush( - this.#loaders, - FunctionPrototypeBind(loader, null), // [1] - ); + if (globalPreloader) { + ArrayPrototypePush( + this.#globalPreloaders, + { + fn: FunctionPrototypeBind(globalPreloader), // [1] + url, + }, + ); + } + if (resolver) { + ArrayPrototypePush( + this.#resolvers, + { + fn: FunctionPrototypeBind(resolver), // [1] + url, + }, + ); + } + if (loader) { + ArrayPrototypePush( + this.#loaders, + { + fn: FunctionPrototypeBind(loader), // [1] + url, + }, + ); + } } // [1] ensure hook function is not bound to ESMLoader instance @@ -238,9 +398,7 @@ class ESMLoader { const module = new ModuleWrap(url, undefined, source, 0, 0); callbackMap.set(module, { importModuleDynamically: (specifier, { url }, importAssertions) => { - return this.import(specifier, - this.getBaseURL(url), - importAssertions); + return this.import(specifier, url, importAssertions); } }); @@ -256,43 +414,6 @@ class ESMLoader { }; } - /** - * Returns the url to use for the resolution of a given cache key url - * These are not guaranteed to be the same. - * - * In WHATWG HTTP spec for ESM the cache key is the non-I/O bound - * synchronous resolution using only string operations - * ~= resolveImportMap(new URL(specifier, importerHREF)) - * - * The url used for subsequent resolution is the response URL after - * all redirects have been resolved. - * - * https://example.com/foo redirecting to https://example.com/bar - * would have a cache key of https://example.com/foo and baseURL - * of https://example.com/bar - * - * MUST BE SYNCHRONOUS for import.meta initialization - * MUST BE CALLED AFTER receiving the url body due to I/O - * @param {string} url - * @returns {string} - */ - getBaseURL(url) { - if ( - StringPrototypeStartsWith(url, 'http:') || - StringPrototypeStartsWith(url, 'https:') - ) { - // The request & response have already settled, so they are in - // fetchModule's cache, in which case, fetchModule returns - // immediately and synchronously - url = fetchModule(new URL(url), { parentURL: url }).resolvedHREF; - // This should only occur if the module hasn't been fetched yet - if (typeof url !== 'string') { - throw new ERR_INTERNAL_ASSERTION(`Base url for module ${url} not loaded.`); - } - } - return url; - } - /** * Get a (possibly still pending) module job from the cache, * or create one and return its Promise. @@ -308,14 +429,22 @@ class ESMLoader { */ async getModuleJob(specifier, parentURL, importAssertions) { let importAssertionsForResolve; + + // By default, `this.#loaders` contains just the Node default load hook if (this.#loaders.length !== 1) { - // We can skip cloning if there are no user provided loaders because + // We can skip cloning if there are no user-provided loaders because // the Node.js default resolve hook does not use import assertions. - importAssertionsForResolve = - ObjectAssign(ObjectCreate(null), importAssertions); + importAssertionsForResolve = ObjectAssign( + ObjectCreate(null), + importAssertions, + ); } - const { format, url } = - await this.resolve(specifier, parentURL, importAssertionsForResolve); + + const { format, url } = this.resolve( + specifier, + parentURL, + importAssertionsForResolve, + ); let job = this.moduleMap.get(url, importAssertions.type); @@ -346,6 +475,7 @@ class ESMLoader { const moduleProvider = async (url, isMain) => { const { format: finalFormat, + responseURL, source, } = await this.load(url, { format, @@ -355,10 +485,10 @@ class ESMLoader { const translator = translators.get(finalFormat); if (!translator) { - throw new ERR_UNKNOWN_MODULE_FORMAT(finalFormat, url); + throw new ERR_UNKNOWN_MODULE_FORMAT(finalFormat, responseURL); } - return FunctionPrototypeCall(translator, this, url, source, isMain); + return FunctionPrototypeCall(translator, this, responseURL, source, isMain); }; const inspectBrk = ( @@ -391,11 +521,21 @@ class ESMLoader { * @param {string} parentURL Path of the parent importing the module. * @param {Record} importAssertions Validations for the * module import. - * @returns {Promise} A list of module export(s). + * @returns {Promise} + * A collection of module export(s) or a list of collections of module + * export(s). */ async import(specifiers, parentURL, importAssertions) { + // For loaders, `import` is passed multiple things to process, it returns a + // list pairing the url and exports collected. This is especially useful for + // error messaging, to identity from where an export came. But, in most + // cases, only a single url is being "imported" (ex `import()`), so there is + // only 1 possible url from which the exports were collected and it is + // already known to the caller. Nesting that in a list would only ever + // create redundant work for the caller, so it is later popped off the + // internal list. const wasArr = ArrayIsArray(specifiers); - if (!wasArr) specifiers = [specifiers]; + if (!wasArr) { specifiers = [specifiers]; } const count = specifiers.length; const jobs = new Array(count); @@ -408,40 +548,117 @@ class ESMLoader { const namespaces = await PromiseAll(new SafeArrayIterator(jobs)); - return wasArr ? - namespaces : - namespaces[0]; + if (!wasArr) { return namespaces[0]; } // We can skip the pairing below + + for (let i = 0; i < count; i++) { + const namespace = ObjectCreate(null); + namespace.url = specifiers[i]; + namespace.exports = namespaces[i]; + + namespaces[i] = namespace; + } + + return namespaces; } /** * Provide source that is understood by one of Node's translators. * - * The internals of this WILL change when chaining is implemented, - * depending on the resolution/consensus from #36954 - * @param {string} url The URL/path of the module to be loaded + * Internally, this behaves like a backwards iterator, wherein the stack of + * hooks starts at the top and each call to `nextLoad()` moves down 1 step + * until it reaches the bottom or short-circuits. + * + * @param {URL['href']} url The URL/path of the module to be loaded * @param {object} context Metadata about the module - * @returns {object} + * @returns {{ format: ModuleFormat, source: ModuleSource }} */ async load(url, context = {}) { - const defaultLoader = this.#loaders[0]; - - const loader = this.#loaders.length === 1 ? - defaultLoader : - this.#loaders[1]; - const loaded = await loader(url, context, defaultLoader); - - if (typeof loaded !== 'object') { - throw new ERR_INVALID_RETURN_VALUE( - 'object', - 'loader load', - loaded, - ); + const chain = this.#loaders; + const meta = { + chainFinished: null, + hookErrIdentifier: '', + hookIndex: chain.length - 1, + hookName: 'load', + isChainAsync: true, + shortCircuited: false, + }; + + const validateArgs = (hookErrIdentifier, { 0: nextUrl, 1: ctx }) => { + if (typeof nextUrl !== 'string') { + // non-strings can be coerced to a url string + // validateString() throws a less-specific error + throw new ERR_INVALID_ARG_TYPE( + `${hookErrIdentifier} url`, + 'a url string', + nextUrl, + ); + } + + // Try to avoid expensive URL instantiation for known-good urls + if (!this.moduleMap.has(nextUrl)) { + try { + new URL(nextUrl); + } catch { + throw new ERR_INVALID_ARG_VALUE( + `${hookErrIdentifier} url`, + nextUrl, + 'should be a url string', + ); + } + } + + validateObject(ctx, `${hookErrIdentifier} context`); + }; + const validateOutput = (hookErrIdentifier, output) => { + if (typeof output !== 'object') { // [2] + throw new ERR_INVALID_RETURN_VALUE( + 'an object', + hookErrIdentifier, + output, + ); + } + }; + + const nextLoad = nextHookFactory(chain, meta, { validateArgs, validateOutput }); + + const loaded = await nextLoad(url, context); + const { hookErrIdentifier } = meta; // Retrieve the value after all settled + + validateOutput(hookErrIdentifier, loaded); + + if (loaded?.shortCircuit === true) { meta.shortCircuited = true; } + + if (!meta.chainFinished && !meta.shortCircuited) { + throw new ERR_LOADER_CHAIN_INCOMPLETE(hookErrIdentifier); } const { format, source, } = loaded; + let responseURL = loaded.responseURL; + + if (responseURL === undefined) { + responseURL = url; + } + + let responseURLObj; + if (typeof responseURL === 'string') { + try { + responseURLObj = new URL(responseURL); + } catch { + // responseURLObj not defined will throw in next branch. + } + } + + if (responseURLObj?.href !== responseURL) { + throw new ERR_INVALID_RETURN_PROPERTY_VALUE( + 'undefined or a fully resolved URL string', + hookErrIdentifier, + 'responseURL', + responseURL, + ); + } if (format == null) { const dataUrl = RegExpPrototypeExec( @@ -454,10 +671,10 @@ class ESMLoader { url); } - if (typeof format !== 'string') { + if (typeof format !== 'string') { // [2] throw new ERR_INVALID_RETURN_PROPERTY_VALUE( - 'string', - 'loader resolve', + 'a string', + hookErrIdentifier, 'format', format, ); @@ -468,24 +685,24 @@ class ESMLoader { typeof source !== 'string' && !isAnyArrayBuffer(source) && !isArrayBufferView(source) - ) throw ERR_INVALID_RETURN_PROPERTY_VALUE( - 'string, an ArrayBuffer, or a TypedArray', - 'loader load', - 'source', - source - ); + ) { + throw ERR_INVALID_RETURN_PROPERTY_VALUE( + 'a string, an ArrayBuffer, or a TypedArray', + hookErrIdentifier, + 'source', + source + ); + } return { format, + responseURL, source, }; } preload() { - const count = this.#globalPreloaders.length; - if (!count) return; - - for (let i = 0; i < count; i++) { + for (let i = this.#globalPreloaders.length - 1; i >= 0; i--) { const channel = new MessageChannel(); const { port1: insidePreload, @@ -495,16 +712,23 @@ class ESMLoader { insidePreload.unref(); insideLoader.unref(); - const preload = this.#globalPreloaders[i]({ - port: insideLoader + const { + fn: preloader, + url: specifier, + } = this.#globalPreloaders[i]; + + const preload = preloader({ + port: insideLoader, }); - if (preload == null) return; + if (preload == null) { return; } - if (typeof preload !== 'string') { + const hookErrIdentifier = `${specifier} globalPreload`; + + if (typeof preload !== 'string') { // [2] throw new ERR_INVALID_RETURN_VALUE( - 'string', - 'loader globalPreloadCode', + 'a string', + hookErrIdentifier, preload, ); } @@ -534,7 +758,8 @@ class ESMLoader { globalThis, // Param getBuiltin (builtinName) => { - if (NativeModule.canBeRequiredByUsers(builtinName)) { + if (NativeModule.canBeRequiredByUsers(builtinName) && + NativeModule.canBeRequiredWithoutScheme(builtinName)) { return require(builtinName); } throw new ERR_INVALID_ARG_VALUE('builtinName', builtinName); @@ -568,16 +793,18 @@ class ESMLoader { /** * Resolve the location of the module. * - * The internals of this WILL change when chaining is implemented, - * depending on the resolution/consensus from #36954. + * Internally, this behaves like a backwards iterator, wherein the stack of + * hooks starts at the top and each call to `nextResolve()` moves down 1 step + * until it reaches the bottom or short-circuits. + * * @param {string} originalSpecifier The specified URL path of the module to * be resolved. * @param {string} [parentURL] The URL path of the module's parent. * @param {ImportAssertions} [importAssertions] Assertions from the import * statement or expression. - * @returns {{ url: string }} + * @returns {{ format: string, url: URL['href'] }} */ - async resolve( + resolve( originalSpecifier, parentURL, importAssertions = ObjectCreate(null) @@ -588,61 +815,104 @@ class ESMLoader { !isMain && typeof parentURL !== 'string' && !isURLInstance(parentURL) - ) throw new ERR_INVALID_ARG_TYPE( - 'parentURL', - ['string', 'URL'], + ) { + throw new ERR_INVALID_ARG_TYPE( + 'parentURL', + ['string', 'URL'], + parentURL, + ); + } + const chain = this.#resolvers; + const meta = { + chainFinished: null, + hookErrIdentifier: '', + hookIndex: chain.length - 1, + hookName: 'resolve', + isChainAsync: false, + shortCircuited: false, + }; + const context = { + conditions: DEFAULT_CONDITIONS, + importAssertions, parentURL, - ); + }; + + const validateArgs = (hookErrIdentifier, { 0: suppliedSpecifier, 1: ctx }) => { + validateString( + suppliedSpecifier, + `${hookErrIdentifier} specifier`, + ); // non-strings can be coerced to a url string - const conditions = DEFAULT_CONDITIONS; + validateObject(ctx, `${hookErrIdentifier} context`); + }; + const validateOutput = (hookErrIdentifier, output) => { + if ( + typeof output !== 'object' || // [2] + output === null || + (output.url == null && typeof output.then === 'function') + ) { + throw new ERR_INVALID_RETURN_VALUE( + 'an object', + hookErrIdentifier, + output, + ); + } + }; - const defaultResolver = this.#resolvers[0]; + const nextResolve = nextHookFactory(chain, meta, { validateArgs, validateOutput }); - const resolver = this.#resolvers.length === 1 ? - defaultResolver : - this.#resolvers[1]; - const resolution = await resolver( - originalSpecifier, - { - conditions, - importAssertions, - parentURL, - }, - defaultResolver, - ); + const resolution = nextResolve(originalSpecifier, context); + const { hookErrIdentifier } = meta; // Retrieve the value after all settled - if (typeof resolution !== 'object') { - throw new ERR_INVALID_RETURN_VALUE( - 'object', - 'loader resolve', - resolution, - ); + validateOutput(hookErrIdentifier, resolution); + + if (resolution?.shortCircuit === true) { meta.shortCircuited = true; } + + if (!meta.chainFinished && !meta.shortCircuited) { + throw new ERR_LOADER_CHAIN_INCOMPLETE(hookErrIdentifier); } - const { format, url } = resolution; + const { + format, + url, + } = resolution; if ( format != null && - typeof format !== 'string' + typeof format !== 'string' // [2] ) { throw new ERR_INVALID_RETURN_PROPERTY_VALUE( - 'string', - 'loader resolve', + 'a string', + hookErrIdentifier, 'format', format, ); } - if (typeof url !== 'string') { // non-strings can be coerced to a url string + if (typeof url !== 'string') { + // non-strings can be coerced to a url string + // validateString() throws a less-specific error throw new ERR_INVALID_RETURN_PROPERTY_VALUE( - 'string', - 'loader resolve', + 'a url string', + hookErrIdentifier, 'url', url, ); } - new URL(url); // Intentionally trigger error if `url` is invalid + // Try to avoid expensive URL instantiation for known-good urls + if (!this.moduleMap.has(url)) { + try { + new URL(url); + } catch { + throw new ERR_INVALID_RETURN_PROPERTY_VALUE( + 'a url string', + hookErrIdentifier, + 'url', + url, + ); + } + } return { format, diff --git a/lib/internal/modules/esm/module_job.js b/lib/internal/modules/esm/module_job.js index e012eebc4ac971..fd1c6166330e76 100644 --- a/lib/internal/modules/esm/module_job.js +++ b/lib/internal/modules/esm/module_job.js @@ -76,8 +76,7 @@ class ModuleJob { // these `link` callbacks depending on each other. const dependencyJobs = []; const promises = this.module.link(async (specifier, assertions) => { - const baseURL = this.loader.getBaseURL(url); - const jobPromise = this.loader.getModuleJob(specifier, baseURL, assertions); + const jobPromise = this.loader.getModuleJob(specifier, url, assertions); ArrayPrototypePush(dependencyJobs, jobPromise); const job = await jobPromise; return job.modulePromise; diff --git a/lib/internal/modules/esm/resolve.js b/lib/internal/modules/esm/resolve.js index e640947450c973..1aacfb60753258 100644 --- a/lib/internal/modules/esm/resolve.js +++ b/lib/internal/modules/esm/resolve.js @@ -57,7 +57,6 @@ const { ERR_PACKAGE_PATH_NOT_EXPORTED, ERR_UNSUPPORTED_DIR_IMPORT, ERR_NETWORK_IMPORT_DISALLOWED, - ERR_UNKNOWN_BUILTIN_MODULE, ERR_UNSUPPORTED_ESM_URL_SCHEME, } = require('internal/errors').codes; const { Module: CJSModule } = require('internal/modules/cjs/loader'); @@ -853,11 +852,8 @@ function parsePackageName(specifier, base) { * @returns {resolved: URL, format? : string} */ function packageResolve(specifier, base, conditions) { - if (NativeModule.canBeRequiredByUsers(specifier)) { - if (!NativeModule.canBeRequiredWithoutScheme(specifier)) { - throw new ERR_UNKNOWN_BUILTIN_MODULE(specifier); - } - + if (NativeModule.canBeRequiredByUsers(specifier) && + NativeModule.canBeRequiredWithoutScheme(specifier)) { return new URL('node:' + specifier); } @@ -1019,8 +1015,6 @@ function resolveAsCommonJS(specifier, parentURL) { // TODO(@JakobJingleheimer): de-dupe `specifier` & `parsed` function checkIfDisallowedImport(specifier, parsed, parsedParentURL) { if (parsedParentURL) { - const parentURL = fileURLToPath(parsedParentURL?.href); - if ( parsedParentURL.protocol === 'http:' || parsedParentURL.protocol === 'https:' @@ -1034,24 +1028,25 @@ function checkIfDisallowedImport(specifier, parsed, parsedParentURL) { ) { throw new ERR_NETWORK_IMPORT_DISALLOWED( specifier, - parentURL, + parsedParentURL, 'remote imports cannot import from a local location.' ); } return { url: parsed.href }; } - if (NativeModule.canBeRequiredByUsers(specifier)) { + if (NativeModule.canBeRequiredByUsers(specifier) && + NativeModule.canBeRequiredWithoutScheme(specifier)) { throw new ERR_NETWORK_IMPORT_DISALLOWED( specifier, - parentURL, + parsedParentURL, 'remote imports cannot import from a local location.' ); } throw new ERR_NETWORK_IMPORT_DISALLOWED( specifier, - parentURL, + parsedParentURL, 'only relative and absolute specifiers are supported.' ); } @@ -1086,7 +1081,7 @@ function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) { } } -async function defaultResolve(specifier, context = {}, defaultResolveUnused) { +function defaultResolve(specifier, context = {}) { let { parentURL, conditions } = context; if (parentURL && policy?.manifest) { const redirects = policy.manifest.getDependencyMapper(parentURL); @@ -1232,11 +1227,11 @@ const { if (policy) { const $defaultResolve = defaultResolve; - module.exports.defaultResolve = async function defaultResolve( + module.exports.defaultResolve = function defaultResolve( specifier, context ) { - const ret = await $defaultResolve(specifier, context, $defaultResolve); + const ret = $defaultResolve(specifier, context); // This is a preflight check to avoid data exfiltration by query params etc. policy.manifest.mightAllow(ret.url, () => new ERR_MANIFEST_DEPENDENCY_MISSING( diff --git a/lib/internal/modules/esm/translators.js b/lib/internal/modules/esm/translators.js index d7f4c7edec63d3..bcd1775bac898e 100644 --- a/lib/internal/modules/esm/translators.js +++ b/lib/internal/modules/esm/translators.js @@ -103,9 +103,7 @@ function errPath(url) { } async function importModuleDynamically(specifier, { url }, assertions) { - return asyncESM.esmLoader.import(specifier, - asyncESM.esmLoader.getBaseURL(url), - assertions); + return asyncESM.esmLoader.import(specifier, url, assertions); } // Strategy for loading a standard JavaScript module. @@ -116,9 +114,7 @@ translators.set('module', async function moduleStrategy(url, source, isMain) { debug(`Translating StandardModule ${url}`); const module = new ModuleWrap(url, undefined, source, 0, 0); moduleWrap.callbackMap.set(module, { - initializeImportMeta: (meta, wrap) => this.importMetaInitialize(meta, { - url: wrap.url - }), + initializeImportMeta: (meta, wrap) => this.importMetaInitialize(meta, { url }), importModuleDynamically, }); return module; diff --git a/lib/internal/modules/run_main.js b/lib/internal/modules/run_main.js index 924c4836bb2aa2..5a50d5d6afab6e 100644 --- a/lib/internal/modules/run_main.js +++ b/lib/internal/modules/run_main.js @@ -28,8 +28,12 @@ function resolveMainPath(main) { } function shouldUseESMLoader(mainPath) { - const userLoader = getOptionValue('--experimental-loader'); - if (userLoader) + /** + * @type {string[]} userLoaders A list of custom loaders registered by the user + * (or an empty list when none have been registered). + */ + const userLoaders = getOptionValue('--experimental-loader'); + if (userLoaders.length > 0) return true; const esModuleSpecifierResolution = getOptionValue('--experimental-specifier-resolution'); diff --git a/lib/internal/per_context/domexception.js b/lib/internal/per_context/domexception.js index 5296e54193e497..917e2c00bccda9 100644 --- a/lib/internal/per_context/domexception.js +++ b/lib/internal/per_context/domexception.js @@ -18,12 +18,14 @@ function throwInvalidThisError(Base, type) { const key = 'ERR_INVALID_THIS'; ObjectDefineProperties(err, { message: { + __proto__: null, value: `Value of "this" must be of ${type}`, enumerable: false, writable: true, configurable: true, }, toString: { + __proto__: null, value() { return `${this.name} [${key}]: ${this.message}`; }, @@ -36,37 +38,18 @@ function throwInvalidThisError(Base, type) { throw err; } -let disusedNamesSet; -let internalsMap; -let nameToCodeMap; -let isInitialized = false; +const internalsMap = new SafeWeakMap(); +const nameToCodeMap = new SafeMap(); -// We need to instantiate the maps lazily because they render -// the snapshot non-rehashable. -// https://bugs.chromium.org/p/v8/issues/detail?id=6593 -function ensureInitialized() { - if (isInitialized) { - return; - } - internalsMap = new SafeWeakMap(); - nameToCodeMap = new SafeMap(); - forEachCode((name, codeName, value) => { - nameToCodeMap.set(name, value); - }); - - // These were removed from the error names table. - // See https://github.com/heycam/webidl/pull/946. - disusedNamesSet = new SafeSet() - .add('DOMStringSizeError') - .add('NoDataAllowedError') - .add('ValidationError'); - - isInitialized = true; -} +// These were removed from the error names table. +// See https://github.com/heycam/webidl/pull/946. +const disusedNamesSet = new SafeSet() + .add('DOMStringSizeError') + .add('NoDataAllowedError') + .add('ValidationError'); class DOMException { constructor(message = '', name = 'Error') { - ensureInitialized(); ErrorCaptureStackTrace(this); internalsMap.set(this, { message: `${message}`, @@ -75,7 +58,6 @@ class DOMException { } get name() { - ensureInitialized(); const internals = internalsMap.get(this); if (internals === undefined) { throwInvalidThisError(TypeError, 'DOMException'); @@ -84,7 +66,6 @@ class DOMException { } get message() { - ensureInitialized(); const internals = internalsMap.get(this); if (internals === undefined) { throwInvalidThisError(TypeError, 'DOMException'); @@ -93,7 +74,6 @@ class DOMException { } get code() { - ensureInitialized(); const internals = internalsMap.get(this); if (internals === undefined) { throwInvalidThisError(TypeError, 'DOMException'); @@ -110,46 +90,45 @@ class DOMException { ObjectSetPrototypeOf(DOMException.prototype, ErrorPrototype); ObjectDefineProperties(DOMException.prototype, { - [SymbolToStringTag]: { configurable: true, value: 'DOMException' }, - name: { enumerable: true, configurable: true }, - message: { enumerable: true, configurable: true }, - code: { enumerable: true, configurable: true } + [SymbolToStringTag]: { __proto__: null, configurable: true, value: 'DOMException' }, + name: { __proto__: null, enumerable: true, configurable: true }, + message: { __proto__: null, enumerable: true, configurable: true }, + code: { __proto__: null, enumerable: true, configurable: true } }); -function forEachCode(fn) { - fn('IndexSizeError', 'INDEX_SIZE_ERR', 1); - fn('DOMStringSizeError', 'DOMSTRING_SIZE_ERR', 2); - fn('HierarchyRequestError', 'HIERARCHY_REQUEST_ERR', 3); - fn('WrongDocumentError', 'WRONG_DOCUMENT_ERR', 4); - fn('InvalidCharacterError', 'INVALID_CHARACTER_ERR', 5); - fn('NoDataAllowedError', 'NO_DATA_ALLOWED_ERR', 6); - fn('NoModificationAllowedError', 'NO_MODIFICATION_ALLOWED_ERR', 7); - fn('NotFoundError', 'NOT_FOUND_ERR', 8); - fn('NotSupportedError', 'NOT_SUPPORTED_ERR', 9); - fn('InUseAttributeError', 'INUSE_ATTRIBUTE_ERR', 10); - fn('InvalidStateError', 'INVALID_STATE_ERR', 11); - fn('SyntaxError', 'SYNTAX_ERR', 12); - fn('InvalidModificationError', 'INVALID_MODIFICATION_ERR', 13); - fn('NamespaceError', 'NAMESPACE_ERR', 14); - fn('InvalidAccessError', 'INVALID_ACCESS_ERR', 15); - fn('ValidationError', 'VALIDATION_ERR', 16); - fn('TypeMismatchError', 'TYPE_MISMATCH_ERR', 17); - fn('SecurityError', 'SECURITY_ERR', 18); - fn('NetworkError', 'NETWORK_ERR', 19); - fn('AbortError', 'ABORT_ERR', 20); - fn('URLMismatchError', 'URL_MISMATCH_ERR', 21); - fn('QuotaExceededError', 'QUOTA_EXCEEDED_ERR', 22); - fn('TimeoutError', 'TIMEOUT_ERR', 23); - fn('InvalidNodeTypeError', 'INVALID_NODE_TYPE_ERR', 24); - fn('DataCloneError', 'DATA_CLONE_ERR', 25); +for (const { 0: name, 1: codeName, 2: value } of [ + ['IndexSizeError', 'INDEX_SIZE_ERR', 1], + ['DOMStringSizeError', 'DOMSTRING_SIZE_ERR', 2], + ['HierarchyRequestError', 'HIERARCHY_REQUEST_ERR', 3], + ['WrongDocumentError', 'WRONG_DOCUMENT_ERR', 4], + ['InvalidCharacterError', 'INVALID_CHARACTER_ERR', 5], + ['NoDataAllowedError', 'NO_DATA_ALLOWED_ERR', 6], + ['NoModificationAllowedError', 'NO_MODIFICATION_ALLOWED_ERR', 7], + ['NotFoundError', 'NOT_FOUND_ERR', 8], + ['NotSupportedError', 'NOT_SUPPORTED_ERR', 9], + ['InUseAttributeError', 'INUSE_ATTRIBUTE_ERR', 10], + ['InvalidStateError', 'INVALID_STATE_ERR', 11], + ['SyntaxError', 'SYNTAX_ERR', 12], + ['InvalidModificationError', 'INVALID_MODIFICATION_ERR', 13], + ['NamespaceError', 'NAMESPACE_ERR', 14], + ['InvalidAccessError', 'INVALID_ACCESS_ERR', 15], + ['ValidationError', 'VALIDATION_ERR', 16], + ['TypeMismatchError', 'TYPE_MISMATCH_ERR', 17], + ['SecurityError', 'SECURITY_ERR', 18], + ['NetworkError', 'NETWORK_ERR', 19], + ['AbortError', 'ABORT_ERR', 20], + ['URLMismatchError', 'URL_MISMATCH_ERR', 21], + ['QuotaExceededError', 'QUOTA_EXCEEDED_ERR', 22], + ['TimeoutError', 'TIMEOUT_ERR', 23], + ['InvalidNodeTypeError', 'INVALID_NODE_TYPE_ERR', 24], + ['DataCloneError', 'DATA_CLONE_ERR', 25], // There are some more error names, but since they don't have codes assigned, // we don't need to care about them. -} - -forEachCode((name, codeName, value) => { +]) { const desc = { enumerable: true, value }; ObjectDefineProperty(DOMException, codeName, desc); ObjectDefineProperty(DOMException.prototype, codeName, desc); -}); + nameToCodeMap.set(name, value); +} exports.DOMException = DOMException; diff --git a/lib/internal/per_context/primordials.js b/lib/internal/per_context/primordials.js index 7d9368e678cc96..bbaad4ea760767 100644 --- a/lib/internal/per_context/primordials.js +++ b/lib/internal/per_context/primordials.js @@ -57,11 +57,13 @@ function getNewKey(key) { function copyAccessor(dest, prefix, key, { enumerable, get, set }) { ReflectDefineProperty(dest, `${prefix}Get${key}`, { + __proto__: null, value: uncurryThis(get), enumerable }); if (set !== undefined) { ReflectDefineProperty(dest, `${prefix}Set${key}`, { + __proto__: null, value: uncurryThis(set), enumerable }); @@ -76,9 +78,10 @@ function copyPropsRenamed(src, dest, prefix) { copyAccessor(dest, prefix, newKey, desc); } else { const name = `${prefix}${newKey}`; - ReflectDefineProperty(dest, name, desc); + ReflectDefineProperty(dest, name, { __proto__: null, ...desc }); if (varargsMethods.includes(name)) { ReflectDefineProperty(dest, `${name}Apply`, { + __proto__: null, // `src` is bound as the `this` so that the static `this` points // to the object it was defined on, // e.g.: `ArrayOfApply` gets a `this` of `Array`: @@ -102,9 +105,10 @@ function copyPropsRenamedBound(src, dest, prefix) { } const name = `${prefix}${newKey}`; - ReflectDefineProperty(dest, name, desc); + ReflectDefineProperty(dest, name, { __proto__: null, ...desc }); if (varargsMethods.includes(name)) { ReflectDefineProperty(dest, `${name}Apply`, { + __proto__: null, value: applyBind(value, src), }); } @@ -125,9 +129,10 @@ function copyPrototype(src, dest, prefix) { } const name = `${prefix}${newKey}`; - ReflectDefineProperty(dest, name, desc); + ReflectDefineProperty(dest, name, { __proto__: null, ...desc }); if (varargsMethods.includes(name)) { ReflectDefineProperty(dest, `${name}Apply`, { + __proto__: null, value: applyBind(value), }); } @@ -307,7 +312,7 @@ const copyProps = (src, dest) => { ReflectDefineProperty( dest, key, - ReflectGetOwnPropertyDescriptor(src, key)); + { __proto__: null, ...ReflectGetOwnPropertyDescriptor(src, key) }); } }); }; @@ -335,7 +340,7 @@ const makeSafe = (unsafe, safe) => { return new SafeIterator(this); }; } - ReflectDefineProperty(safe.prototype, key, desc); + ReflectDefineProperty(safe.prototype, key, { __proto__: null, ...desc }); } }); } else { diff --git a/lib/internal/perf/event_loop_delay.js b/lib/internal/perf/event_loop_delay.js index efd45f4ed77349..18d7967477e0e4 100644 --- a/lib/internal/perf/event_loop_delay.js +++ b/lib/internal/perf/event_loop_delay.js @@ -27,6 +27,10 @@ const { kMap, } = require('internal/histogram'); +const { + kEmptyObject, +} = require('internal/util'); + const { makeTransferable, } = require('internal/worker/js_transferable'); @@ -69,7 +73,7 @@ class ELDHistogram extends Histogram { * }} [options] * @returns {ELDHistogram} */ -function monitorEventLoopDelay(options = {}) { +function monitorEventLoopDelay(options = kEmptyObject) { validateObject(options, 'options'); const { resolution = 10 } = options; diff --git a/lib/internal/perf/nodetiming.js b/lib/internal/perf/nodetiming.js index fcbd7efff49099..b0ab9df4473d63 100644 --- a/lib/internal/perf/nodetiming.js +++ b/lib/internal/perf/nodetiming.js @@ -34,30 +34,35 @@ class PerformanceNodeTiming { constructor() { ObjectDefineProperties(this, { name: { + __proto__: null, enumerable: true, configurable: true, value: 'node' }, entryType: { + __proto__: null, enumerable: true, configurable: true, value: 'node' }, startTime: { + __proto__: null, enumerable: true, configurable: true, value: 0 }, duration: { + __proto__: null, enumerable: true, configurable: true, get: now }, nodeStart: { + __proto__: null, enumerable: true, configurable: true, get() { @@ -66,6 +71,7 @@ class PerformanceNodeTiming { }, v8Start: { + __proto__: null, enumerable: true, configurable: true, get() { @@ -74,6 +80,7 @@ class PerformanceNodeTiming { }, environment: { + __proto__: null, enumerable: true, configurable: true, get() { @@ -82,6 +89,7 @@ class PerformanceNodeTiming { }, loopStart: { + __proto__: null, enumerable: true, configurable: true, get() { @@ -90,6 +98,7 @@ class PerformanceNodeTiming { }, loopExit: { + __proto__: null, enumerable: true, configurable: true, get() { @@ -98,6 +107,7 @@ class PerformanceNodeTiming { }, bootstrapComplete: { + __proto__: null, enumerable: true, configurable: true, get() { @@ -107,6 +117,7 @@ class PerformanceNodeTiming { }, idleTime: { + __proto__: null, enumerable: true, configurable: true, get: loopIdleTime, diff --git a/lib/internal/perf/observe.js b/lib/internal/perf/observe.js index 18fc10eb789e01..656015f8410888 100644 --- a/lib/internal/perf/observe.js +++ b/lib/internal/perf/observe.js @@ -55,6 +55,7 @@ const { customInspectSymbol: kInspect, deprecate, lazyDOMException, + kEmptyObject, } = require('internal/util'); const { @@ -63,6 +64,8 @@ const { const { inspect } = require('util'); +const { now } = require('internal/perf/utils'); + const kDispatch = Symbol('kDispatch'); const kMaybeBuffer = Symbol('kMaybeBuffer'); const kDeprecatedFields = Symbol('kDeprecatedFields'); @@ -85,15 +88,18 @@ const kSupportedEntryTypes = ObjectFreeze([ 'mark', 'measure', 'net', + 'resource', ]); // Performance timeline entry Buffers let markEntryBuffer = []; let measureEntryBuffer = []; +let resourceTimingBuffer = []; const kMaxPerformanceEntryBuffers = 1e6; const kClearPerformanceEntryBuffers = ObjectFreeze({ 'mark': 'performance.clearMarks', 'measure': 'performance.clearMeasures', + 'resource': 'performance.clearResourceTimings', }); const kWarnedEntryTypes = new SafeMap(); @@ -207,7 +213,7 @@ class PerformanceObserver { this.#callback = callback; } - observe(options = {}) { + observe(options = kEmptyObject) { validateObject(options, 'options'); const { entryTypes, @@ -340,6 +346,8 @@ function enqueue(entry) { buffer = markEntryBuffer; } else if (entryType === 'measure') { buffer = measureEntryBuffer; + } else if (entryType === 'resource') { + buffer = resourceTimingBuffer; } else { return; } @@ -365,16 +373,19 @@ function enqueue(entry) { } function clearEntriesFromBuffer(type, name) { - if (type !== 'mark' && type !== 'measure') { + if (type !== 'mark' && type !== 'measure' && type !== 'resource') { return; } if (type === 'mark') { markEntryBuffer = name === undefined ? [] : ArrayPrototypeFilter(markEntryBuffer, (entry) => entry.name !== name); - } else { + } else if (type === 'measure') { measureEntryBuffer = name === undefined ? [] : ArrayPrototypeFilter(measureEntryBuffer, (entry) => entry.name !== name); + } else { + resourceTimingBuffer = name === undefined ? + [] : ArrayPrototypeFilter(resourceTimingBuffer, (entry) => entry.name !== name); } } @@ -384,11 +395,13 @@ function filterBufferMapByNameAndType(name, type) { bufferList = markEntryBuffer; } else if (type === 'measure') { bufferList = measureEntryBuffer; + } else if (type === 'resource') { + bufferList = resourceTimingBuffer; } else if (type !== undefined) { // Unrecognized type; return []; } else { - bufferList = ArrayPrototypeConcat(markEntryBuffer, measureEntryBuffer); + bufferList = ArrayPrototypeConcat(markEntryBuffer, measureEntryBuffer, resourceTimingBuffer); } if (name !== undefined) { bufferList = ArrayPrototypeFilter(bufferList, (buffer) => buffer.name === name); @@ -448,28 +461,26 @@ function hasObserver(type) { function startPerf(target, key, context = {}) { - if (hasObserver(context.type)) { - target[key] = { - ...context, - startTime: process.hrtime(), - }; - } + target[key] = { + ...context, + startTime: now(), + }; } function stopPerf(target, key, context = {}) { const ctx = target[key]; - if (ctx && hasObserver(ctx.type)) { - const startTime = ctx.startTime; - const diff = process.hrtime(startTime); - const entry = new InternalPerformanceEntry( - ctx.name, - ctx.type, - startTime[0] * 1000 + startTime[1] / 1e6, - diff[0] * 1000 + diff[1] / 1e6, - { ...ctx.detail, ...context.detail }, - ); - enqueue(entry); + if (!ctx) { + return; } + const startTime = ctx.startTime; + const entry = new InternalPerformanceEntry( + ctx.name, + ctx.type, + startTime, + now() - startTime, + { ...ctx.detail, ...context.detail }, + ); + enqueue(entry); } module.exports = { diff --git a/lib/internal/perf/performance.js b/lib/internal/perf/performance.js index 20603fa382e702..26a80f51cf66c4 100644 --- a/lib/internal/perf/performance.js +++ b/lib/internal/perf/performance.js @@ -19,6 +19,8 @@ const { const { now } = require('internal/perf/utils'); +const { markResourceTiming } = require('internal/perf/resource_timing'); + const { mark, measure, @@ -82,6 +84,13 @@ function clearMeasures(name) { clearEntriesFromBuffer('measure', name); } +function clearResourceTimings(name) { + if (name !== undefined) { + name = `${name}`; + } + clearEntriesFromBuffer('resource', name); +} + function getEntries() { return filterBufferMapByNameAndType(); } @@ -108,56 +117,81 @@ ObjectSetPrototypeOf(InternalPerformance.prototype, Performance.prototype); ObjectDefineProperties(Performance.prototype, { clearMarks: { + __proto__: null, configurable: true, enumerable: false, value: clearMarks, }, clearMeasures: { + __proto__: null, configurable: true, enumerable: false, value: clearMeasures, }, + clearResourceTimings: { + __proto__: null, + configurable: true, + enumerable: false, + value: clearResourceTimings, + }, eventLoopUtilization: { + __proto__: null, configurable: true, enumerable: false, value: eventLoopUtilization, }, getEntries: { + __proto__: null, configurable: true, enumerable: false, value: getEntries, }, getEntriesByName: { + __proto__: null, configurable: true, enumerable: false, value: getEntriesByName, }, getEntriesByType: { + __proto__: null, configurable: true, enumerable: false, value: getEntriesByType, }, mark: { + __proto__: null, configurable: true, enumerable: false, value: mark, }, measure: { + __proto__: null, configurable: true, enumerable: false, value: measure, }, nodeTiming: { + __proto__: null, configurable: true, enumerable: false, value: nodeTiming, }, + // In the browser, this function is not public. However, it must be used inside fetch + // which is a Node.js dependency, not a internal module + markResourceTiming: { + __proto__: null, + configurable: true, + enumerable: false, + value: markResourceTiming, + }, now: { + __proto__: null, configurable: true, enumerable: false, value: now, }, timerify: { + __proto__: null, configurable: true, enumerable: false, value: timerify, @@ -167,11 +201,13 @@ ObjectDefineProperties(Performance.prototype, { // TODO(joyeecheung): we may want to warn about access to // this during snapshot building. timeOrigin: { + __proto__: null, configurable: true, enumerable: true, value: getTimeOriginTimestamp(), }, toJSON: { + __proto__: null, configurable: true, enumerable: true, value: toJSON, @@ -180,6 +216,7 @@ ObjectDefineProperties(Performance.prototype, { function refreshTimeOrigin() { ObjectDefineProperty(Performance.prototype, 'timeOrigin', { + __proto__: null, configurable: true, enumerable: true, value: getTimeOriginTimestamp(), diff --git a/lib/internal/perf/resource_timing.js b/lib/internal/perf/resource_timing.js new file mode 100644 index 00000000000000..ff0728c9f0ffff --- /dev/null +++ b/lib/internal/perf/resource_timing.js @@ -0,0 +1,179 @@ +'use strict'; +// https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming + +const { InternalPerformanceEntry } = require('internal/perf/performance_entry'); +const { SymbolToStringTag } = primordials; +const assert = require('internal/assert'); +const { enqueue } = require('internal/perf/observe'); +const { Symbol, ObjectSetPrototypeOf } = primordials; + +const kCacheMode = Symbol('kCacheMode'); +const kRequestedUrl = Symbol('kRequestedUrl'); +const kTimingInfo = Symbol('kTimingInfo'); +const kInitiatorType = Symbol('kInitiatorType'); + +const { + codes: { + ERR_ILLEGAL_CONSTRUCTOR, + } +} = require('internal/errors'); + +class InternalPerformanceResourceTiming extends InternalPerformanceEntry { + constructor(requestedUrl, initiatorType, timingInfo, cacheMode = '') { + super(requestedUrl, 'resource'); + this[kInitiatorType] = initiatorType; + this[kRequestedUrl] = requestedUrl; + // https://fetch.spec.whatwg.org/#fetch-timing-info + // This class is using timingInfo assuming it's already validated. + // The spec doesn't say to validate it in the class construction. + this[kTimingInfo] = timingInfo; + this[kCacheMode] = cacheMode; + } + + get [SymbolToStringTag]() { + return 'PerformanceResourceTiming'; + } + + get name() { + return this[kRequestedUrl]; + } + + get startTime() { + return this[kTimingInfo].startTime; + } + + get duration() { + return this[kTimingInfo].endTime - this[kTimingInfo].startTime; + } + + get workerStart() { + return this[kTimingInfo].finalServiceWorkerStartTime; + } + + get redirectStart() { + return this[kTimingInfo].redirectStartTime; + } + + get redirectEnd() { + return this[kTimingInfo].redirectEndTime; + } + + get fetchStart() { + return this[kTimingInfo].postRedirectStartTime; + } + + get domainLookupStart() { + return this[kTimingInfo].finalConnectionTimingInfo?.domainLookupStartTime; + } + + get domainLookupEnd() { + return this[kTimingInfo].finalConnectionTimingInfo?.domainLookupEndTime; + } + + get connectStart() { + return this[kTimingInfo].finalConnectionTimingInfo?.connectionStartTime; + } + + get connectEnd() { + return this[kTimingInfo].finalConnectionTimingInfo?.connectionEndTime; + } + + get secureConnectionStart() { + return this[kTimingInfo] + .finalConnectionTimingInfo?.secureConnectionStartTime; + } + + get nextHopProtocol() { + return this[kTimingInfo] + .finalConnectionTimingInfo?.ALPNNegotiatedProtocol; + } + + get requestStart() { + return this[kTimingInfo].finalNetworkRequestStartTime; + } + + get responseStart() { + return this[kTimingInfo].finalNetworkResponseStartTime; + } + + get responseEnd() { + return this[kTimingInfo].endTime; + } + + get encodedBodySize() { + return this[kTimingInfo].encodedBodySize; + } + + get decodedBodySize() { + return this[kTimingInfo].decodedBodySize; + } + + get transferSize() { + if (this[kCacheMode] === 'local') return 0; + if (this[kCacheMode] === 'validated') return 300; + + return this[kTimingInfo].encodedBodySize + 300; + } + + toJSON() { + return { + name: this.name, + entryType: this.entryType, + startTime: this.startTime, + duration: this.duration, + initiatorType: this[kInitiatorType], + nextHopProtocol: this.nextHopProtocol, + workerStart: this.workerStart, + redirectStart: this.redirectStart, + redirectEnd: this.redirectEnd, + fetchStart: this.fetchStart, + domainLookupStart: this.domainLookupStart, + domainLookupEnd: this.domainLookupEnd, + connectStart: this.connectStart, + connectEnd: this.connectEnd, + secureConnectionStart: this.secureConnectionStart, + requestStart: this.requestStart, + responseStart: this.responseStart, + responseEnd: this.responseEnd, + transferSize: this.transferSize, + encodedBodySize: this.encodedBodySize, + decodedBodySize: this.decodedBodySize, + }; + } +} + +class PerformanceResourceTiming extends InternalPerformanceResourceTiming { + constructor() { + throw new ERR_ILLEGAL_CONSTRUCTOR(); + } +} + +// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing +function markResourceTiming( + timingInfo, + requestedUrl, + initiatorType, + global, + cacheMode, +) { + // https://w3c.github.io/resource-timing/#dfn-setup-the-resource-timing-entry + assert( + cacheMode === '' || cacheMode === 'local', + 'cache must be an empty string or \'local\'', + ); + const resource = new InternalPerformanceResourceTiming( + requestedUrl, + initiatorType, + timingInfo, + cacheMode, + ); + + ObjectSetPrototypeOf(resource, PerformanceResourceTiming.prototype); + enqueue(resource); + return resource; +} + +module.exports = { + PerformanceResourceTiming, + markResourceTiming, +}; diff --git a/lib/internal/perf/timerify.js b/lib/internal/perf/timerify.js index dae0b06bf80c8a..e4c97e70353977 100644 --- a/lib/internal/perf/timerify.js +++ b/lib/internal/perf/timerify.js @@ -6,7 +6,6 @@ const { MathCeil, ReflectApply, ReflectConstruct, - Symbol, } = primordials; const { InternalPerformanceEntry } = require('internal/perf/performance_entry'); @@ -21,10 +20,6 @@ const { isHistogram } = require('internal/histogram'); -const { - isConstructor, -} = internalBinding('util'); - const { codes: { ERR_INVALID_ARG_TYPE, @@ -35,7 +30,9 @@ const { enqueue, } = require('internal/perf/observe'); -const kTimerified = Symbol('kTimerified'); +const { + kEmptyObject, +} = require('internal/util'); function processComplete(name, start, args, histogram) { const duration = now() - start; @@ -55,7 +52,7 @@ function processComplete(name, start, args, histogram) { enqueue(entry); } -function timerify(fn, options = {}) { +function timerify(fn, options = kEmptyObject) { validateFunction(fn, 'fn'); validateObject(options, 'options'); @@ -71,16 +68,13 @@ function timerify(fn, options = {}) { histogram); } - if (fn[kTimerified]) return fn[kTimerified]; - - const constructor = isConstructor(fn); - function timerified(...args) { + const isConstructorCall = new.target !== undefined; const start = now(); - const result = constructor ? + const result = isConstructorCall ? ReflectConstruct(fn, args, fn) : ReflectApply(fn, this, args); - if (!constructor && typeof result?.finally === 'function') { + if (!isConstructorCall && typeof result?.finally === 'function') { return result.finally( FunctionPrototypeBind( processComplete, @@ -95,31 +89,20 @@ function timerify(fn, options = {}) { } ObjectDefineProperties(timerified, { - [kTimerified]: { - configurable: false, - enumerable: false, - value: timerified, - }, length: { + __proto__: null, configurable: false, enumerable: true, value: fn.length, }, name: { + __proto__: null, configurable: false, enumerable: true, value: `timerified ${fn.name}` } }); - ObjectDefineProperties(fn, { - [kTimerified]: { - configurable: false, - enumerable: false, - value: timerified, - } - }); - return timerified; } diff --git a/lib/internal/perf/usertiming.js b/lib/internal/perf/usertiming.js index 7266b14ef40b2e..51625ee08d5467 100644 --- a/lib/internal/perf/usertiming.js +++ b/lib/internal/perf/usertiming.js @@ -27,7 +27,10 @@ const { } = require('internal/errors'); const { structuredClone } = require('internal/structured_clone'); -const { lazyDOMException } = require('internal/util'); +const { + kEmptyObject, + lazyDOMException, +} = require('internal/util'); const markTimings = new SafeMap(); @@ -61,7 +64,7 @@ class PerformanceMark extends InternalPerformanceEntry { name = `${name}`; if (nodeTimingReadOnlyAttributes.has(name)) throw new ERR_INVALID_ARG_VALUE('name', name); - options ??= {}; + options ??= kEmptyObject; validateObject(options, 'options'); const startTime = options.startTime ?? now(); validateNumber(startTime, 'startTime'); @@ -91,7 +94,7 @@ class PerformanceMeasure extends InternalPerformanceEntry { } } -function mark(name, options = {}) { +function mark(name, options = kEmptyObject) { const mark = new PerformanceMark(name, options); enqueue(mark); return mark; diff --git a/lib/internal/policy/sri.js b/lib/internal/policy/sri.js index 22704704a310bc..0d8c24e89ae8aa 100644 --- a/lib/internal/policy/sri.js +++ b/lib/internal/policy/sri.js @@ -48,6 +48,7 @@ const parse = (str) => { // Avoid setters being fired ObjectDefineProperty(entries, entries.length, { + __proto__: null, enumerable: true, configurable: true, value: ObjectFreeze({ diff --git a/lib/internal/process/esm_loader.js b/lib/internal/process/esm_loader.js index 20021134ce40f3..4634ff5a9f5101 100644 --- a/lib/internal/process/esm_loader.js +++ b/lib/internal/process/esm_loader.js @@ -49,11 +49,9 @@ exports.esmLoader = esmLoader; */ async function initializeLoader() { const { getOptionValue } = require('internal/options'); - // customLoaders CURRENTLY can be only 1 (a string) - // Once chaining is implemented, it will be string[] const customLoaders = getOptionValue('--experimental-loader'); - if (!customLoaders.length) return; + if (customLoaders.length === 0) return; let cwd; try { @@ -68,7 +66,7 @@ async function initializeLoader() { const internalEsmLoader = new ESMLoader(); // Importation must be handled by internal loader to avoid poluting userland - const exports = await internalEsmLoader.import( + const keyedExportsList = await internalEsmLoader.import( customLoaders, pathToFileURL(cwd).href, ObjectCreate(null), @@ -76,7 +74,7 @@ async function initializeLoader() { // Hooks must then be added to external/public loader // (so they're triggered in userland) - await esmLoader.addCustomLoaders(exports); + await esmLoader.addCustomLoaders(keyedExportsList); } exports.loadESM = async function loadESM(callback) { diff --git a/lib/internal/process/promises.js b/lib/internal/process/promises.js index 8f0899039b114e..421538373e0399 100644 --- a/lib/internal/process/promises.js +++ b/lib/internal/process/promises.js @@ -320,6 +320,7 @@ function getErrorWithoutStack(name, message) { const err = new Error(message); if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = tmp; ObjectDefineProperty(err, 'name', { + __proto__: null, value: name, enumerable: false, writable: true, diff --git a/lib/internal/promise_hooks.js b/lib/internal/promise_hooks.js index be70879cbcbb93..0938a86d06407b 100644 --- a/lib/internal/promise_hooks.js +++ b/lib/internal/promise_hooks.js @@ -11,6 +11,7 @@ const { const { setPromiseHooks } = internalBinding('async_wrap'); const { triggerUncaughtException } = internalBinding('errors'); +const { kEmptyObject } = require('internal/util'); const { validatePlainFunction } = require('internal/validators'); const hooks = { @@ -101,7 +102,7 @@ const onBefore = makeUseHook('before'); const onAfter = makeUseHook('after'); const onSettled = makeUseHook('settled'); -function createHook({ init, before, after, settled } = {}) { +function createHook({ init, before, after, settled } = kEmptyObject) { const hooks = []; if (init) ArrayPrototypePush(hooks, onInit(init)); diff --git a/lib/internal/readline/interface.js b/lib/internal/readline/interface.js index 47e5ca580ab317..457b67716c460f 100644 --- a/lib/internal/readline/interface.js +++ b/lib/internal/readline/interface.js @@ -48,6 +48,7 @@ const { validateString, validateUint32, } = require('internal/validators'); +const { kEmptyObject } = require('internal/util'); const { inspect, getStringWidth, @@ -1053,7 +1054,7 @@ class Interface extends InterfaceConstructor { // Handle a write from the tty [kTtyWrite](s, key) { const previousKey = this[kPreviousKey]; - key = key || {}; + key = key || kEmptyObject; this[kPreviousKey] = key; if (!key.meta || key.name !== 'y') { diff --git a/lib/internal/streams/duplex.js b/lib/internal/streams/duplex.js index 79f91fa0866e25..4b9ca227ed5aa9 100644 --- a/lib/internal/streams/duplex.js +++ b/lib/internal/streams/duplex.js @@ -80,25 +80,26 @@ function Duplex(options) { ObjectDefineProperties(Duplex.prototype, { writable: - ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable'), + { __proto__: null, ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable') }, writableHighWaterMark: - ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark'), + { __proto__: null, ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark') }, writableObjectMode: - ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode'), + { __proto__: null, ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode') }, writableBuffer: - ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer'), + { __proto__: null, ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer') }, writableLength: - ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength'), + { __proto__: null, ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength') }, writableFinished: - ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished'), + { __proto__: null, ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished') }, writableCorked: - ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked'), + { __proto__: null, ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked') }, writableEnded: - ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded'), + { __proto__: null, ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded') }, writableNeedDrain: - ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain'), + { __proto__: null, ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain') }, destroyed: { + __proto__: null, get() { if (this._readableState === undefined || this._writableState === undefined) { diff --git a/lib/internal/streams/end-of-stream.js b/lib/internal/streams/end-of-stream.js index 0b2044d53e735b..806280ebc1f1d2 100644 --- a/lib/internal/streams/end-of-stream.js +++ b/lib/internal/streams/end-of-stream.js @@ -11,7 +11,10 @@ const { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes; -const { once } = require('internal/util'); +const { + kEmptyObject, + once, +} = require('internal/util'); const { validateAbortSignal, validateFunction, @@ -43,9 +46,9 @@ const nop = () => {}; function eos(stream, options, callback) { if (arguments.length === 2) { callback = options; - options = {}; + options = kEmptyObject; } else if (options == null) { - options = {}; + options = kEmptyObject; } else { validateObject(options, 'options'); } diff --git a/lib/internal/streams/lazy_transform.js b/lib/internal/streams/lazy_transform.js index 555e6430e33588..fc3e9815a37648 100644 --- a/lib/internal/streams/lazy_transform.js +++ b/lib/internal/streams/lazy_transform.js @@ -39,6 +39,7 @@ function makeGetter(name) { function makeSetter(name) { return function(val) { ObjectDefineProperty(this, name, { + __proto__: null, value: val, enumerable: true, configurable: true, @@ -49,12 +50,14 @@ function makeSetter(name) { ObjectDefineProperties(LazyTransform.prototype, { _readableState: { + __proto__: null, get: makeGetter('_readableState'), set: makeSetter('_readableState'), configurable: true, enumerable: true }, _writableState: { + __proto__: null, get: makeGetter('_writableState'), set: makeSetter('_writableState'), configurable: true, diff --git a/lib/internal/streams/operators.js b/lib/internal/streams/operators.js index 3d792e3b495dc1..a450aa78e759ab 100644 --- a/lib/internal/streams/operators.js +++ b/lib/internal/streams/operators.js @@ -187,7 +187,6 @@ function asIndexedPairs(options = undefined) { } async function some(fn, options = undefined) { - // eslint-disable-next-line no-unused-vars for await (const unused of filter.call(this, fn, options)) { return true; } diff --git a/lib/internal/streams/readable.js b/lib/internal/streams/readable.js index 8081e8fde13e0c..4164f7b27d56b2 100644 --- a/lib/internal/streams/readable.js +++ b/lib/internal/streams/readable.js @@ -1151,6 +1151,7 @@ async function* createAsyncIterator(stream, options) { // userland will fail. ObjectDefineProperties(Readable.prototype, { readable: { + __proto__: null, get() { const r = this._readableState; // r.readable === false means that this is part of a Duplex stream @@ -1169,6 +1170,7 @@ ObjectDefineProperties(Readable.prototype, { }, readableDidRead: { + __proto__: null, enumerable: false, get: function() { return this._readableState.dataEmitted; @@ -1176,6 +1178,7 @@ ObjectDefineProperties(Readable.prototype, { }, readableAborted: { + __proto__: null, enumerable: false, get: function() { return !!( @@ -1187,6 +1190,7 @@ ObjectDefineProperties(Readable.prototype, { }, readableHighWaterMark: { + __proto__: null, enumerable: false, get: function() { return this._readableState.highWaterMark; @@ -1194,6 +1198,7 @@ ObjectDefineProperties(Readable.prototype, { }, readableBuffer: { + __proto__: null, enumerable: false, get: function() { return this._readableState && this._readableState.buffer; @@ -1201,6 +1206,7 @@ ObjectDefineProperties(Readable.prototype, { }, readableFlowing: { + __proto__: null, enumerable: false, get: function() { return this._readableState.flowing; @@ -1213,6 +1219,7 @@ ObjectDefineProperties(Readable.prototype, { }, readableLength: { + __proto__: null, enumerable: false, get() { return this._readableState.length; @@ -1220,6 +1227,7 @@ ObjectDefineProperties(Readable.prototype, { }, readableObjectMode: { + __proto__: null, enumerable: false, get() { return this._readableState ? this._readableState.objectMode : false; @@ -1227,6 +1235,7 @@ ObjectDefineProperties(Readable.prototype, { }, readableEncoding: { + __proto__: null, enumerable: false, get() { return this._readableState ? this._readableState.encoding : null; @@ -1234,6 +1243,7 @@ ObjectDefineProperties(Readable.prototype, { }, errored: { + __proto__: null, enumerable: false, get() { return this._readableState ? this._readableState.errored : null; @@ -1241,12 +1251,14 @@ ObjectDefineProperties(Readable.prototype, { }, closed: { + __proto__: null, get() { return this._readableState ? this._readableState.closed : false; } }, destroyed: { + __proto__: null, enumerable: false, get() { return this._readableState ? this._readableState.destroyed : false; @@ -1265,6 +1277,7 @@ ObjectDefineProperties(Readable.prototype, { }, readableEnded: { + __proto__: null, enumerable: false, get() { return this._readableState ? this._readableState.endEmitted : false; @@ -1276,6 +1289,7 @@ ObjectDefineProperties(Readable.prototype, { ObjectDefineProperties(ReadableState.prototype, { // Legacy getter for `pipesCount`. pipesCount: { + __proto__: null, get() { return this.pipes.length; } @@ -1283,6 +1297,7 @@ ObjectDefineProperties(ReadableState.prototype, { // Legacy property for `paused`. paused: { + __proto__: null, get() { return this[kPaused] !== false; }, diff --git a/lib/internal/streams/writable.js b/lib/internal/streams/writable.js index 5ee0cbc969f2ad..1054631ddfee1a 100644 --- a/lib/internal/streams/writable.js +++ b/lib/internal/streams/writable.js @@ -211,6 +211,7 @@ WritableState.prototype.getBuffer = function getBuffer() { }; ObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', { + __proto__: null, get() { return this.buffered.length - this.bufferedIndex; } @@ -268,6 +269,7 @@ function Writable(options) { } ObjectDefineProperty(Writable, SymbolHasInstance, { + __proto__: null, value: function(object) { if (FunctionPrototypeSymbolHasInstance(this, object)) return true; if (this !== Writable) return false; @@ -764,12 +766,14 @@ function finish(stream, state) { ObjectDefineProperties(Writable.prototype, { closed: { + __proto__: null, get() { return this._writableState ? this._writableState.closed : false; } }, destroyed: { + __proto__: null, get() { return this._writableState ? this._writableState.destroyed : false; }, @@ -782,6 +786,7 @@ ObjectDefineProperties(Writable.prototype, { }, writable: { + __proto__: null, get() { const w = this._writableState; // w.writable === false means that this is part of a Duplex stream @@ -800,30 +805,35 @@ ObjectDefineProperties(Writable.prototype, { }, writableFinished: { + __proto__: null, get() { return this._writableState ? this._writableState.finished : false; } }, writableObjectMode: { + __proto__: null, get() { return this._writableState ? this._writableState.objectMode : false; } }, writableBuffer: { + __proto__: null, get() { return this._writableState && this._writableState.getBuffer(); } }, writableEnded: { + __proto__: null, get() { return this._writableState ? this._writableState.ending : false; } }, writableNeedDrain: { + __proto__: null, get() { const wState = this._writableState; if (!wState) return false; @@ -832,24 +842,28 @@ ObjectDefineProperties(Writable.prototype, { }, writableHighWaterMark: { + __proto__: null, get() { return this._writableState && this._writableState.highWaterMark; } }, writableCorked: { + __proto__: null, get() { return this._writableState ? this._writableState.corked : 0; } }, writableLength: { + __proto__: null, get() { return this._writableState && this._writableState.length; } }, errored: { + __proto__: null, enumerable: false, get() { return this._writableState ? this._writableState.errored : null; @@ -857,6 +871,7 @@ ObjectDefineProperties(Writable.prototype, { }, writableAborted: { + __proto__: null, enumerable: false, get: function() { return !!( diff --git a/lib/internal/test_runner/tap_stream.js b/lib/internal/test_runner/tap_stream.js index d5e095991c7009..ca0c101aa9260c 100644 --- a/lib/internal/test_runner/tap_stream.js +++ b/lib/internal/test_runner/tap_stream.js @@ -5,13 +5,13 @@ const { ArrayPrototypePush, ArrayPrototypeShift, ObjectEntries, - StringPrototypeReplace, StringPrototypeReplaceAll, StringPrototypeSplit, + RegExpPrototypeSymbolReplace, } = primordials; +const { inspectWithNoCustomRetry } = require('internal/errors'); const Readable = require('internal/streams/readable'); const { isError } = require('internal/util'); -const { inspect } = require('internal/util/inspect'); const kFrameStartRegExp = /^ {4}at /; const kLineBreakRegExp = /\n|\r\n/; const inspectOptions = { colors: false, breakLength: Infinity }; @@ -71,80 +71,15 @@ class TapStream extends Readable { return `TODO${reason ? ` ${tapEscape(reason)}` : ''}`; } + subtest(indent, name) { + this.#tryPush(`${indent}# Subtest: ${tapEscape(name)}\n`); + } + details(indent, duration, error) { let details = `${indent} ---\n`; - details += `${indent} duration_ms: ${duration}\n`; - - if (error !== null && typeof error === 'object') { - const entries = ObjectEntries(error); - const isErrorObj = isError(error); - - for (let i = 0; i < entries.length; i++) { - const { 0: key, 1: value } = entries[i]; - - if (isError && (key === 'cause' || key === 'code')) { - continue; - } - - details += `${indent} ${key}: ${inspect(value, inspectOptions)}\n`; - } - - if (isErrorObj) { - const { kTestCodeFailure } = lazyLoadTest(); - const { - cause, - code, - failureType, - message, - stack, - } = error; - let errMsg = message ?? ''; - let errStack = stack; - let errCode = code; - - // If the ERR_TEST_FAILURE came from an error provided by user code, - // then try to unwrap the original error message and stack. - if (code === 'ERR_TEST_FAILURE' && failureType === kTestCodeFailure) { - errMsg = cause?.message ?? errMsg; - errStack = cause?.stack ?? errStack; - errCode = cause?.code ?? errCode; - } - - details += `${indent} error: ${inspect(errMsg, inspectOptions)}\n`; - - if (errCode) { - details += `${indent} code: ${errCode}\n`; - } - - if (typeof errStack === 'string') { - const frames = []; - - ArrayPrototypeForEach( - StringPrototypeSplit(errStack, kLineBreakRegExp), - (frame) => { - const processed = StringPrototypeReplace( - frame, kFrameStartRegExp, '' - ); - - if (processed.length > 0 && processed.length !== frame.length) { - ArrayPrototypePush(frames, processed); - } - } - ); - - if (frames.length > 0) { - const frameDelimiter = `\n${indent} `; - - details += `${indent} stack: |-${frameDelimiter}`; - details += `${ArrayPrototypeJoin(frames, `${frameDelimiter}`)}\n`; - } - } - } - } else if (error !== null && error !== undefined) { - details += `${indent} error: ${inspect(error, inspectOptions)}\n`; - } - + details += jsToYaml(indent, 'duration_ms', duration); + details += jsToYaml(indent, null, error); details += `${indent} ...\n`; this.#tryPush(details); } @@ -190,4 +125,100 @@ function tapEscape(input) { ); } +function jsToYaml(indent, name, value) { + if (value === null || value === undefined) { + return ''; + } + + if (typeof value !== 'object') { + const prefix = `${indent} ${name}: `; + + if (typeof value !== 'string') { + return `${prefix}${inspectWithNoCustomRetry(value, inspectOptions)}\n`; + } + + const lines = StringPrototypeSplit(value, kLineBreakRegExp); + + if (lines.length === 1) { + return `${prefix}${inspectWithNoCustomRetry(value, inspectOptions)}\n`; + } + + let str = `${prefix}|-\n`; + + for (let i = 0; i < lines.length; i++) { + str += `${indent} ${lines[i]}\n`; + } + + return str; + } + + const entries = ObjectEntries(value); + const isErrorObj = isError(value); + let result = ''; + + for (let i = 0; i < entries.length; i++) { + const { 0: key, 1: value } = entries[i]; + + if (isErrorObj && (key === 'cause' || key === 'code')) { + continue; + } + + result += jsToYaml(indent, key, value); + } + + if (isErrorObj) { + const { kTestCodeFailure } = lazyLoadTest(); + const { + cause, + code, + failureType, + message, + stack, + } = value; + let errMsg = message ?? ''; + let errStack = stack; + let errCode = code; + + // If the ERR_TEST_FAILURE came from an error provided by user code, + // then try to unwrap the original error message and stack. + if (code === 'ERR_TEST_FAILURE' && failureType === kTestCodeFailure) { + errMsg = cause?.message ?? errMsg; + errStack = cause?.stack ?? errStack; + errCode = cause?.code ?? errCode; + } + + result += jsToYaml(indent, 'error', errMsg); + + if (errCode) { + result += jsToYaml(indent, 'code', errCode); + } + + if (typeof errStack === 'string') { + const frames = []; + + ArrayPrototypeForEach( + StringPrototypeSplit(errStack, kLineBreakRegExp), + (frame) => { + const processed = RegExpPrototypeSymbolReplace( + kFrameStartRegExp, frame, '' + ); + + if (processed.length > 0 && processed.length !== frame.length) { + ArrayPrototypePush(frames, processed); + } + } + ); + + if (frames.length > 0) { + const frameDelimiter = `\n${indent} `; + + result += `${indent} stack: |-${frameDelimiter}`; + result += `${ArrayPrototypeJoin(frames, `${frameDelimiter}`)}\n`; + } + } + } + + return result; +} + module.exports = { TapStream }; diff --git a/lib/internal/test_runner/test.js b/lib/internal/test_runner/test.js index 3e632cc1c5236c..2876b3d66640cd 100644 --- a/lib/internal/test_runner/test.js +++ b/lib/internal/test_runner/test.js @@ -4,7 +4,6 @@ const { ArrayPrototypeShift, FunctionPrototype, Number, - ObjectCreate, SafeMap, } = primordials; const { AsyncResource } = require('async_hooks'); @@ -12,12 +11,17 @@ const { codes: { ERR_TEST_FAILURE, }, + kIsNodeError, } = require('internal/errors'); const { getOptionValue } = require('internal/options'); const { TapStream } = require('internal/test_runner/tap_stream'); -const { createDeferredPromise } = require('internal/util'); +const { + createDeferredPromise, + kEmptyObject, +} = require('internal/util'); const { isPromise } = require('internal/util/types'); const { isUint32 } = require('internal/validators'); +const { cpus } = require('os'); const { bigint: hrtime } = process.hrtime; const kCallbackAndPromisePresent = 'callbackAndPromisePresent'; const kCancelledByParent = 'cancelledByParent'; @@ -27,7 +31,10 @@ const kSubtestsFailed = 'subtestsFailed'; const kTestCodeFailure = 'testCodeFailure'; const kDefaultIndent = ' '; const noop = FunctionPrototype; -const testOnlyFlag = getOptionValue('--test-only'); +const isTestRunner = getOptionValue('--test'); +const testOnlyFlag = !isTestRunner && getOptionValue('--test-only'); +// TODO(cjihrig): Use uv_available_parallelism() once it lands. +const rootConcurrency = isTestRunner ? cpus().length : 1; class TestContext { #test; @@ -79,7 +86,7 @@ class Test extends AsyncResource { } if (parent === null) { - this.concurrency = 1; + this.concurrency = rootConcurrency; this.indent = ''; this.indentString = kDefaultIndent; this.only = testOnlyFlag; @@ -176,6 +183,10 @@ class Test extends AsyncResource { return; } + if (i === 1 && this.parent !== null) { + this.reporter.subtest(this.indent, this.name); + } + // Report the subtest's results and remove it from the ready map. subtest.finalize(); this.readySubtests.delete(i); @@ -193,7 +204,7 @@ class Test extends AsyncResource { } if (options === null || typeof options !== 'object') { - options = ObjectCreate(null); + options = kEmptyObject; } let parent = this; @@ -303,12 +314,14 @@ class Test extends AsyncResource { // If the callback is called a second time, let the user know, but // don't let them know more than once. - if (calledCount === 2) { - throw new ERR_TEST_FAILURE( - 'callback invoked multiple times', - kMultipleCallbackInvocations - ); - } else if (calledCount > 2) { + if (calledCount > 1) { + if (calledCount === 2) { + throw new ERR_TEST_FAILURE( + 'callback invoked multiple times', + kMultipleCallbackInvocations + ); + } + return; } @@ -335,7 +348,11 @@ class Test extends AsyncResource { this.pass(); } catch (err) { - this.fail(new ERR_TEST_FAILURE(err, kTestCodeFailure)); + if (err?.code === 'ERR_TEST_FAILURE' && kIsNodeError in err) { + this.fail(err); + } else { + this.fail(new ERR_TEST_FAILURE(err, kTestCodeFailure)); + } } // Clean up the test. Then, try to report the results and execute any @@ -403,6 +420,8 @@ class Test extends AsyncResource { // Output this test's results and update the parent's waiting counter. if (this.subtests.length > 0) { this.reporter.plan(this.subtests[0].indent, this.subtests.length); + } else { + this.reporter.subtest(this.indent, this.name); } this.report(); @@ -436,4 +455,4 @@ class Test extends AsyncResource { } } -module.exports = { kDefaultIndent, kTestCodeFailure, Test }; +module.exports = { kDefaultIndent, kSubtestsFailed, kTestCodeFailure, Test }; diff --git a/lib/internal/test_runner/utils.js b/lib/internal/test_runner/utils.js new file mode 100644 index 00000000000000..09803d33aeb508 --- /dev/null +++ b/lib/internal/test_runner/utils.js @@ -0,0 +1,15 @@ +'use strict'; +const { RegExpPrototypeExec } = primordials; +const { basename } = require('path'); +const kSupportedFileExtensions = /\.[cm]?js$/; +const kTestFilePattern = /((^test(-.+)?)|(.+[.\-_]test))\.[cm]?js$/; + +function doesPathMatchFilter(p) { + return RegExpPrototypeExec(kTestFilePattern, basename(p)) !== null; +} + +function isSupportedFileType(p) { + return RegExpPrototypeExec(kSupportedFileExtensions, p) !== null; +} + +module.exports = { isSupportedFileType, doesPathMatchFilter }; diff --git a/lib/internal/tls/secure-context.js b/lib/internal/tls/secure-context.js index 8cb3ae06d2e2e1..152627b420a612 100644 --- a/lib/internal/tls/secure-context.js +++ b/lib/internal/tls/secure-context.js @@ -17,6 +17,10 @@ const { }, } = require('internal/errors'); +const { + kEmptyObject, +} = require('internal/util'); + const { isArrayBufferView, } = require('internal/util/types'); @@ -117,7 +121,7 @@ function processCiphers(ciphers, name) { return { cipherList, cipherSuites }; } -function configSecureContext(context, options = {}, name = 'options') { +function configSecureContext(context, options = kEmptyObject, name = 'options') { validateObject(options, name); const { diff --git a/lib/internal/tls/secure-pair.js b/lib/internal/tls/secure-pair.js index b3f0930a3c7118..db999d90ccffd9 100644 --- a/lib/internal/tls/secure-pair.js +++ b/lib/internal/tls/secure-pair.js @@ -1,6 +1,7 @@ 'use strict'; const EventEmitter = require('events'); +const { kEmptyObject } = require('internal/util'); const { Duplex } = require('stream'); const _tls_wrap = require('_tls_wrap'); const _tls_common = require('_tls_common'); @@ -57,7 +58,7 @@ class SecurePair extends EventEmitter { isServer = false, requestCert = !isServer, rejectUnauthorized = false, - options = {}) { + options = kEmptyObject) { super(); const { socket1, socket2 } = new DuplexPair(); diff --git a/lib/internal/url.js b/lib/internal/url.js index 1b85660e07c73a..b483b4440ebf23 100644 --- a/lib/internal/url.js +++ b/lib/internal/url.js @@ -530,10 +530,11 @@ ObjectDefineProperties(URLSearchParams.prototype, { keys: kEnumerableProperty, values: kEnumerableProperty, toString: kEnumerableProperty, - [SymbolToStringTag]: { configurable: true, value: 'URLSearchParams' }, + [SymbolToStringTag]: { __proto__: null, configurable: true, value: 'URLSearchParams' }, // https://heycam.github.io/webidl/#es-iterable-entries [SymbolIterator]: { + __proto__: null, configurable: true, writable: true, value: URLSearchParams.prototype.entries, @@ -1045,8 +1046,8 @@ class URL { } ObjectDefineProperties(URL.prototype, { - [kFormat]: { configurable: false, writable: false }, - [SymbolToStringTag]: { configurable: true, value: 'URL' }, + [kFormat]: { __proto__: null, configurable: false, writable: false }, + [SymbolToStringTag]: { __proto__: null, configurable: true, value: 'URL' }, toString: kEnumerableProperty, href: kEnumerableProperty, origin: kEnumerableProperty, @@ -1229,6 +1230,7 @@ function serializeParams(array) { function defineIDLClass(proto, classStr, obj) { // https://heycam.github.io/webidl/#dfn-class-string ObjectDefineProperty(proto, SymbolToStringTag, { + __proto__: null, writable: false, enumerable: false, configurable: true, @@ -1238,6 +1240,7 @@ function defineIDLClass(proto, classStr, obj) { // https://heycam.github.io/webidl/#es-operations for (const key of ObjectKeys(obj)) { ObjectDefineProperty(proto, key, { + __proto__: null, writable: true, enumerable: true, configurable: true, @@ -1246,6 +1249,7 @@ function defineIDLClass(proto, classStr, obj) { } for (const key of ObjectGetOwnPropertySymbols(obj)) { ObjectDefineProperty(proto, key, { + __proto__: null, writable: true, enumerable: false, configurable: true, diff --git a/lib/internal/util.js b/lib/internal/util.js index 52039d0595c629..36736da36d5313 100644 --- a/lib/internal/util.js +++ b/lib/internal/util.js @@ -13,6 +13,7 @@ const { ObjectGetOwnPropertyDescriptor, ObjectGetOwnPropertyDescriptors, ObjectGetPrototypeOf, + ObjectFreeze, ObjectSetPrototypeOf, Promise, ReflectApply, @@ -259,8 +260,8 @@ function createClassWrapper(type) { } // Mask the wrapper function name and length values ObjectDefineProperties(fn, { - name: { value: type.name }, - length: { value: type.length } + name: { __proto__: null, value: type.name }, + length: { __proto__: null, value: type.length }, }); ObjectSetPrototypeOf(fn, type); fn.prototype = type.prototype; @@ -334,6 +335,7 @@ function promisify(original) { validateFunction(fn, 'util.promisify.custom'); return ObjectDefineProperty(fn, kCustomPromisifiedSymbol, { + __proto__: null, value: fn, enumerable: false, writable: false, configurable: true }); } @@ -364,6 +366,7 @@ function promisify(original) { ObjectSetPrototypeOf(fn, ObjectGetPrototypeOf(original)); ObjectDefineProperty(fn, kCustomPromisifiedSymbol, { + __proto__: null, value: fn, enumerable: false, writable: false, configurable: true }); return ObjectDefineProperties( @@ -469,6 +472,7 @@ function createDeferredPromise() { // https://heycam.github.io/webidl/#define-the-operations function defineOperation(target, name, method) { ObjectDefineProperty(target, name, { + __proto__: null, writable: true, enumerable: true, configurable: true, @@ -479,6 +483,7 @@ function defineOperation(target, name, method) { // https://heycam.github.io/webidl/#es-interfaces function exposeInterface(target, name, interfaceObject) { ObjectDefineProperty(target, name, { + __proto__: null, writable: true, enumerable: false, configurable: true, @@ -499,6 +504,9 @@ const lazyDOMException = hideStackFrames((message, name) => { const kEnumerableProperty = ObjectCreate(null); kEnumerableProperty.enumerable = true; +ObjectFreeze(kEnumerableProperty); + +const kEmptyObject = ObjectFreeze(ObjectCreate(null)); module.exports = { assertCrypto, @@ -540,5 +548,6 @@ module.exports = { kIsEncodingSymbol: Symbol('kIsEncodingSymbol'), kVmBreakFirstLineSymbol: Symbol('kVmBreakFirstLineSymbol'), + kEmptyObject, kEnumerableProperty, }; diff --git a/lib/internal/util/debuglog.js b/lib/internal/util/debuglog.js index 4b5c7cab44ad77..de39457db2b47b 100644 --- a/lib/internal/util/debuglog.js +++ b/lib/internal/util/debuglog.js @@ -100,6 +100,7 @@ function debuglog(set, cb) { } }; ObjectDefineProperty(logger, 'enabled', { + __proto__: null, get() { return test(); }, diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index d78a4e97d218a6..948e2f354ac96d 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -349,6 +349,7 @@ function inspect(value, opts) { inspect.custom = customInspectSymbol; ObjectDefineProperty(inspect, 'defaultOptions', { + __proto__: null, get() { return inspectDefaultOptions; }, @@ -413,6 +414,7 @@ inspect.colors = ObjectAssign(ObjectCreate(null), { function defineColorAlias(target, alias) { ObjectDefineProperty(inspect.colors, alias, { + __proto__: null, get() { return this[target]; }, @@ -579,7 +581,7 @@ function getConstructorName(obj, ctx, recurseTimes, protoProps) { addPrototypeProperties( ctx, tmp, firstProto || tmp, recurseTimes, protoProps); } - return descriptor.value.name; + return String(descriptor.value.name); } obj = ObjectGetPrototypeOf(obj); @@ -759,6 +761,9 @@ function formatValue(ctx, value, recurseTimes, typedArray) { // any proxy handlers. const proxy = getProxyDetails(value, !!ctx.showProxy); if (proxy !== undefined) { + if (proxy === null || proxy[0] === null) { + return ctx.stylize('', 'special'); + } if (ctx.showProxy) { return formatProxy(ctx, proxy, recurseTimes); } @@ -1967,6 +1972,9 @@ function hasBuiltInToString(value) { const getFullProxy = false; const proxyTarget = getProxyDetails(value, getFullProxy); if (proxyTarget !== undefined) { + if (proxyTarget === null) { + return true; + } value = proxyTarget; } diff --git a/lib/internal/util/inspector.js b/lib/internal/util/inspector.js index a94289b17d012e..d78467136c4918 100644 --- a/lib/internal/util/inspector.js +++ b/lib/internal/util/inspector.js @@ -38,8 +38,8 @@ function installConsoleExtensions(commandLineApi) { } // Wrap a console implemented by Node.js with features from the VM inspector -function wrapConsole(consoleFromNode, consoleFromVM) { - const { consoleCall } = internalBinding('inspector'); +function wrapConsole(consoleFromNode) { + const { consoleCall, console: consoleFromVM } = internalBinding('inspector'); for (const key of ObjectKeys(consoleFromVM)) { // If global console has the same method as inspector console, // then wrap these two methods into one. Native wrapper will preserve @@ -52,6 +52,7 @@ function wrapConsole(consoleFromNode, consoleFromVM) { consoleFromNode[key] ); ObjectDefineProperty(consoleFromNode[key], 'name', { + __proto__: null, value: key }); } else { @@ -61,16 +62,8 @@ function wrapConsole(consoleFromNode, consoleFromVM) { } } -// Stores the console from VM, should be set during bootstrap. -let consoleFromVM; module.exports = { installConsoleExtensions, sendInspectorCommand, wrapConsole, - get consoleFromVM() { - return consoleFromVM; - }, - set consoleFromVM(val) { - consoleFromVM = val; - } }; diff --git a/lib/internal/util/parse_args/parse_args.js b/lib/internal/util/parse_args/parse_args.js new file mode 100644 index 00000000000000..f27cd0d74d12d2 --- /dev/null +++ b/lib/internal/util/parse_args/parse_args.js @@ -0,0 +1,297 @@ +'use strict'; + +const { + ArrayPrototypeForEach, + ArrayPrototypeIncludes, + ArrayPrototypePushApply, + ArrayPrototypeShift, + ArrayPrototypeSlice, + ArrayPrototypePush, + ArrayPrototypeUnshiftApply, + ObjectPrototypeHasOwnProperty: ObjectHasOwn, + ObjectEntries, + StringPrototypeCharAt, + StringPrototypeIndexOf, + StringPrototypeSlice, +} = primordials; + +const { + validateArray, + validateBoolean, + validateObject, + validateString, + validateUnion, +} = require('internal/validators'); + +const { + findLongOptionForShort, + isLoneLongOption, + isLoneShortOption, + isLongOptionAndValue, + isOptionValue, + isOptionLikeValue, + isShortOptionAndValue, + isShortOptionGroup, + objectGetOwn, + optionsGetOwn, +} = require('internal/util/parse_args/utils'); + +const { + codes: { + ERR_INVALID_ARG_VALUE, + ERR_PARSE_ARGS_INVALID_OPTION_VALUE, + ERR_PARSE_ARGS_UNKNOWN_OPTION, + ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL, + }, +} = require('internal/errors'); + +function getMainArgs() { + // Work out where to slice process.argv for user supplied arguments. + + // Check node options for scenarios where user CLI args follow executable. + const execArgv = process.execArgv; + if (ArrayPrototypeIncludes(execArgv, '-e') || + ArrayPrototypeIncludes(execArgv, '--eval') || + ArrayPrototypeIncludes(execArgv, '-p') || + ArrayPrototypeIncludes(execArgv, '--print')) { + return ArrayPrototypeSlice(process.argv, 1); + } + + // Normally first two arguments are executable and script, then CLI arguments + return ArrayPrototypeSlice(process.argv, 2); +} + +/** + * In strict mode, throw for possible usage errors like --foo --bar + * + * @param {string} longOption - long option name e.g. 'foo' + * @param {string|undefined} optionValue - value from user args + * @param {string} shortOrLong - option used, with dashes e.g. `-l` or `--long` + * @param {boolean} strict - show errors, from parseArgs({ strict }) + */ +function checkOptionLikeValue(longOption, optionValue, shortOrLong, strict) { + if (strict && isOptionLikeValue(optionValue)) { + // Only show short example if user used short option. + const example = (shortOrLong.length === 2) ? + `'--${longOption}=-XYZ' or '${shortOrLong}-XYZ'` : + `'--${longOption}=-XYZ'`; + const errorMessage = `Option '${shortOrLong}' argument is ambiguous. +Did you forget to specify the option argument for '${shortOrLong}'? +To specify an option argument starting with a dash use ${example}.`; + throw new ERR_PARSE_ARGS_INVALID_OPTION_VALUE(errorMessage); + } +} + +/** + * In strict mode, throw for usage errors. + * + * @param {string} longOption - long option name e.g. 'foo' + * @param {string|undefined} optionValue - value from user args + * @param {object} options - option configs, from parseArgs({ options }) + * @param {string} shortOrLong - option used, with dashes e.g. `-l` or `--long` + * @param {boolean} strict - show errors, from parseArgs({ strict }) + * @param {boolean} allowPositionals - from parseArgs({ allowPositionals }) + */ +function checkOptionUsage(longOption, optionValue, options, + shortOrLong, strict, allowPositionals) { + // Strict and options are used from local context. + if (!strict) return; + + if (!ObjectHasOwn(options, longOption)) { + throw new ERR_PARSE_ARGS_UNKNOWN_OPTION(shortOrLong, allowPositionals); + } + + const short = optionsGetOwn(options, longOption, 'short'); + const shortAndLong = short ? `-${short}, --${longOption}` : `--${longOption}`; + const type = optionsGetOwn(options, longOption, 'type'); + if (type === 'string' && typeof optionValue !== 'string') { + throw new ERR_PARSE_ARGS_INVALID_OPTION_VALUE(`Option '${shortAndLong} ' argument missing`); + } + // (Idiomatic test for undefined||null, expecting undefined.) + if (type === 'boolean' && optionValue != null) { + throw new ERR_PARSE_ARGS_INVALID_OPTION_VALUE(`Option '${shortAndLong}' does not take an argument`); + } +} + +/** + * Store the option value in `values`. + * + * @param {string} longOption - long option name e.g. 'foo' + * @param {string|undefined} optionValue - value from user args + * @param {object} options - option configs, from parseArgs({ options }) + * @param {object} values - option values returned in `values` by parseArgs + */ +function storeOption(longOption, optionValue, options, values) { + if (longOption === '__proto__') { + return; // No. Just no. + } + + // We store based on the option value rather than option type, + // preserving the users intent for author to deal with. + const newValue = optionValue ?? true; + if (optionsGetOwn(options, longOption, 'multiple')) { + // Always store value in array, including for boolean. + // values[longOption] starts out not present, + // first value is added as new array [newValue], + // subsequent values are pushed to existing array. + // (note: values has null prototype, so simpler usage) + if (values[longOption]) { + ArrayPrototypePush(values[longOption], newValue); + } else { + values[longOption] = [newValue]; + } + } else { + values[longOption] = newValue; + } +} + +const parseArgs = (config = { __proto__: null }) => { + const args = objectGetOwn(config, 'args') ?? getMainArgs(); + const strict = objectGetOwn(config, 'strict') ?? true; + const allowPositionals = objectGetOwn(config, 'allowPositionals') ?? !strict; + const options = objectGetOwn(config, 'options') ?? { __proto__: null }; + + // Validate input configuration. + validateArray(args, 'args'); + validateBoolean(strict, 'strict'); + validateBoolean(allowPositionals, 'allowPositionals'); + validateObject(options, 'options'); + ArrayPrototypeForEach( + ObjectEntries(options), + ({ 0: longOption, 1: optionConfig }) => { + validateObject(optionConfig, `options.${longOption}`); + + // type is required + validateUnion(objectGetOwn(optionConfig, 'type'), `options.${longOption}.type`, ['string', 'boolean']); + + if (ObjectHasOwn(optionConfig, 'short')) { + const shortOption = optionConfig.short; + validateString(shortOption, `options.${longOption}.short`); + if (shortOption.length !== 1) { + throw new ERR_INVALID_ARG_VALUE( + `options.${longOption}.short`, + shortOption, + 'must be a single character' + ); + } + } + + if (ObjectHasOwn(optionConfig, 'multiple')) { + validateBoolean(optionConfig.multiple, `options.${longOption}.multiple`); + } + } + ); + + const result = { + values: { __proto__: null }, + positionals: [] + }; + + const remainingArgs = ArrayPrototypeSlice(args); + while (remainingArgs.length > 0) { + const arg = ArrayPrototypeShift(remainingArgs); + const nextArg = remainingArgs[0]; + + // Check if `arg` is an options terminator. + // Guideline 10 in https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html + if (arg === '--') { + if (!allowPositionals && remainingArgs.length > 0) { + throw new ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL(nextArg); + } + + // Everything after a bare '--' is considered a positional argument. + ArrayPrototypePushApply( + result.positionals, + remainingArgs + ); + break; // Finished processing args, leave while loop. + } + + if (isLoneShortOption(arg)) { + // e.g. '-f' + const shortOption = StringPrototypeCharAt(arg, 1); + const longOption = findLongOptionForShort(shortOption, options); + let optionValue; + if (optionsGetOwn(options, longOption, 'type') === 'string' && + isOptionValue(nextArg)) { + // e.g. '-f', 'bar' + optionValue = ArrayPrototypeShift(remainingArgs); + checkOptionLikeValue(longOption, optionValue, arg, strict); + } + checkOptionUsage(longOption, optionValue, options, + arg, strict, allowPositionals); + storeOption(longOption, optionValue, options, result.values); + continue; + } + + if (isShortOptionGroup(arg, options)) { + // Expand -fXzy to -f -X -z -y + const expanded = []; + for (let index = 1; index < arg.length; index++) { + const shortOption = StringPrototypeCharAt(arg, index); + const longOption = findLongOptionForShort(shortOption, options); + if (optionsGetOwn(options, longOption, 'type') !== 'string' || + index === arg.length - 1) { + // Boolean option, or last short in group. Well formed. + ArrayPrototypePush(expanded, `-${shortOption}`); + } else { + // String option in middle. Yuck. + // Expand -abfFILE to -a -b -fFILE + ArrayPrototypePush(expanded, `-${StringPrototypeSlice(arg, index)}`); + break; // finished short group + } + } + ArrayPrototypeUnshiftApply(remainingArgs, expanded); + continue; + } + + if (isShortOptionAndValue(arg, options)) { + // e.g. -fFILE + const shortOption = StringPrototypeCharAt(arg, 1); + const longOption = findLongOptionForShort(shortOption, options); + const optionValue = StringPrototypeSlice(arg, 2); + checkOptionUsage(longOption, optionValue, options, `-${shortOption}`, strict, allowPositionals); + storeOption(longOption, optionValue, options, result.values); + continue; + } + + if (isLoneLongOption(arg)) { + // e.g. '--foo' + const longOption = StringPrototypeSlice(arg, 2); + let optionValue; + if (optionsGetOwn(options, longOption, 'type') === 'string' && + isOptionValue(nextArg)) { + // e.g. '--foo', 'bar' + optionValue = ArrayPrototypeShift(remainingArgs); + checkOptionLikeValue(longOption, optionValue, arg, strict); + } + checkOptionUsage(longOption, optionValue, options, + arg, strict, allowPositionals); + storeOption(longOption, optionValue, options, result.values); + continue; + } + + if (isLongOptionAndValue(arg)) { + // e.g. --foo=bar + const index = StringPrototypeIndexOf(arg, '='); + const longOption = StringPrototypeSlice(arg, 2, index); + const optionValue = StringPrototypeSlice(arg, index + 1); + checkOptionUsage(longOption, optionValue, options, `--${longOption}`, strict, allowPositionals); + storeOption(longOption, optionValue, options, result.values); + continue; + } + + // Anything left is a positional + if (!allowPositionals) { + throw new ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL(arg); + } + + ArrayPrototypePush(result.positionals, arg); + } + + return result; +}; + +module.exports = { + parseArgs, +}; diff --git a/lib/internal/util/parse_args/utils.js b/lib/internal/util/parse_args/utils.js new file mode 100644 index 00000000000000..906aa1b21a7a95 --- /dev/null +++ b/lib/internal/util/parse_args/utils.js @@ -0,0 +1,184 @@ +'use strict'; + +const { + ArrayPrototypeFind, + ObjectEntries, + ObjectPrototypeHasOwnProperty: ObjectHasOwn, + StringPrototypeCharAt, + StringPrototypeIncludes, + StringPrototypeStartsWith, +} = primordials; + +const { + validateObject, +} = require('internal/validators'); + +// These are internal utilities to make the parsing logic easier to read, and +// add lots of detail for the curious. They are in a separate file to allow +// unit testing, although that is not essential (this could be rolled into +// main file and just tested implicitly via API). +// +// These routines are for internal use, not for export to client. + +/** + * Return the named property, but only if it is an own property. + */ +function objectGetOwn(obj, prop) { + if (ObjectHasOwn(obj, prop)) + return obj[prop]; +} + +/** + * Return the named options property, but only if it is an own property. + */ +function optionsGetOwn(options, longOption, prop) { + if (ObjectHasOwn(options, longOption)) + return objectGetOwn(options[longOption], prop); +} + +/** + * Determines if the argument may be used as an option value. + * @example + * isOptionValue('V') // returns true + * isOptionValue('-v') // returns true (greedy) + * isOptionValue('--foo') // returns true (greedy) + * isOptionValue(undefined) // returns false + */ +function isOptionValue(value) { + if (value == null) return false; + + // Open Group Utility Conventions are that an option-argument + // is the argument after the option, and may start with a dash. + return true; // greedy! +} + +/** + * Detect whether there is possible confusion and user may have omitted + * the option argument, like `--port --verbose` when `port` of type:string. + * In strict mode we throw errors if value is option-like. + */ +function isOptionLikeValue(value) { + if (value == null) return false; + + return value.length > 1 && StringPrototypeCharAt(value, 0) === '-'; +} + +/** + * Determines if `arg` is just a short option. + * @example '-f' + */ +function isLoneShortOption(arg) { + return arg.length === 2 && + StringPrototypeCharAt(arg, 0) === '-' && + StringPrototypeCharAt(arg, 1) !== '-'; +} + +/** + * Determines if `arg` is a lone long option. + * @example + * isLoneLongOption('a') // returns false + * isLoneLongOption('-a') // returns false + * isLoneLongOption('--foo') // returns true + * isLoneLongOption('--foo=bar') // returns false + */ +function isLoneLongOption(arg) { + return arg.length > 2 && + StringPrototypeStartsWith(arg, '--') && + !StringPrototypeIncludes(arg, '=', 3); +} + +/** + * Determines if `arg` is a long option and value in the same argument. + * @example + * isLongOptionAndValue('--foo') // returns false + * isLongOptionAndValue('--foo=bar') // returns true + */ +function isLongOptionAndValue(arg) { + return arg.length > 2 && + StringPrototypeStartsWith(arg, '--') && + StringPrototypeIncludes(arg, '=', 3); +} + +/** + * Determines if `arg` is a short option group. + * + * See Guideline 5 of the [Open Group Utility Conventions](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html). + * One or more options without option-arguments, followed by at most one + * option that takes an option-argument, should be accepted when grouped + * behind one '-' delimiter. + * @example + * isShortOptionGroup('-a', {}) // returns false + * isShortOptionGroup('-ab', {}) // returns true + * // -fb is an option and a value, not a short option group + * isShortOptionGroup('-fb', { + * options: { f: { type: 'string' } } + * }) // returns false + * isShortOptionGroup('-bf', { + * options: { f: { type: 'string' } } + * }) // returns true + * // -bfb is an edge case, return true and caller sorts it out + * isShortOptionGroup('-bfb', { + * options: { f: { type: 'string' } } + * }) // returns true + */ +function isShortOptionGroup(arg, options) { + if (arg.length <= 2) return false; + if (StringPrototypeCharAt(arg, 0) !== '-') return false; + if (StringPrototypeCharAt(arg, 1) === '-') return false; + + const firstShort = StringPrototypeCharAt(arg, 1); + const longOption = findLongOptionForShort(firstShort, options); + return optionsGetOwn(options, longOption, 'type') !== 'string'; +} + +/** + * Determine if arg is a short string option followed by its value. + * @example + * isShortOptionAndValue('-a', {}); // returns false + * isShortOptionAndValue('-ab', {}); // returns false + * isShortOptionAndValue('-fFILE', { + * options: { foo: { short: 'f', type: 'string' }} + * }) // returns true + */ +function isShortOptionAndValue(arg, options) { + validateObject(options, 'options'); + + if (arg.length <= 2) return false; + if (StringPrototypeCharAt(arg, 0) !== '-') return false; + if (StringPrototypeCharAt(arg, 1) === '-') return false; + + const shortOption = StringPrototypeCharAt(arg, 1); + const longOption = findLongOptionForShort(shortOption, options); + return optionsGetOwn(options, longOption, 'type') === 'string'; +} + +/** + * Find the long option associated with a short option. Looks for a configured + * `short` and returns the short option itself if a long option is not found. + * @example + * findLongOptionForShort('a', {}) // returns 'a' + * findLongOptionForShort('b', { + * options: { bar: { short: 'b' } } + * }) // returns 'bar' + */ +function findLongOptionForShort(shortOption, options) { + validateObject(options, 'options'); + const longOptionEntry = ArrayPrototypeFind( + ObjectEntries(options), + ({ 1: optionConfig }) => objectGetOwn(optionConfig, 'short') === shortOption + ); + return longOptionEntry?.[0] ?? shortOption; +} + +module.exports = { + findLongOptionForShort, + isLoneLongOption, + isLoneShortOption, + isLongOptionAndValue, + isOptionValue, + isOptionLikeValue, + isShortOptionAndValue, + isShortOptionGroup, + objectGetOwn, + optionsGetOwn, +}; diff --git a/lib/internal/util/types.js b/lib/internal/util/types.js index aca7dbc4b2f2b6..544f4c3da49c72 100644 --- a/lib/internal/util/types.js +++ b/lib/internal/util/types.js @@ -68,7 +68,7 @@ module.exports = { isFloat32Array, isFloat64Array, isBigInt64Array, - isBigUint64Array + isBigUint64Array, }; let isCryptoKey; @@ -76,6 +76,7 @@ let isKeyObject; ObjectDefineProperties(module.exports, { isKeyObject: { + __proto__: null, configurable: false, enumerable: true, value(obj) { @@ -91,6 +92,7 @@ ObjectDefineProperties(module.exports, { } }, isCryptoKey: { + __proto__: null, configurable: false, enumerable: true, value(obj) { diff --git a/lib/internal/v8/startup_snapshot.js b/lib/internal/v8/startup_snapshot.js new file mode 100644 index 00000000000000..6a6a6c47e85708 --- /dev/null +++ b/lib/internal/v8/startup_snapshot.js @@ -0,0 +1,111 @@ +'use strict'; + +const { + validateFunction, +} = require('internal/validators'); +const { + ERR_NOT_BUILDING_SNAPSHOT, + ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION +} = require('internal/errors'); + +const { + setSerializeCallback, + setDeserializeCallback, + setDeserializeMainFunction: _setDeserializeMainFunction, + markBootstrapComplete +} = internalBinding('mksnapshot'); + +function isBuildingSnapshot() { + // For now this is the only way to build a snapshot. + return require('internal/options').getOptionValue('--build-snapshot'); +} + +function throwIfNotBuildingSnapshot() { + if (!isBuildingSnapshot()) { + throw new ERR_NOT_BUILDING_SNAPSHOT(); + } +} + +const deserializeCallbacks = []; +let deserializeCallbackIsSet = false; +function runDeserializeCallbacks() { + while (deserializeCallbacks.length > 0) { + const { 0: callback, 1: data } = deserializeCallbacks.shift(); + callback(data); + } +} + +function addDeserializeCallback(callback, data) { + throwIfNotBuildingSnapshot(); + validateFunction(callback, 'callback'); + if (!deserializeCallbackIsSet) { + // TODO(joyeecheung): when the main function handling is done in JS, + // the deserialize callbacks can always be invoked. For now only + // store it in C++ when it's actually used to avoid unnecessary + // C++ -> JS costs. + setDeserializeCallback(runDeserializeCallbacks); + deserializeCallbackIsSet = true; + } + deserializeCallbacks.push([callback, data]); +} + +const serializeCallbacks = []; +function runSerializeCallbacks() { + while (serializeCallbacks.length > 0) { + const { 0: callback, 1: data } = serializeCallbacks.shift(); + callback(data); + } + // Remove the hooks from the snapshot. + require('v8').startupSnapshot = undefined; +} + +function addSerializeCallback(callback, data) { + throwIfNotBuildingSnapshot(); + validateFunction(callback, 'callback'); + serializeCallbacks.push([callback, data]); +} + +function initializeCallbacks() { + // Only run the serialize callbacks in snapshot building mode, otherwise + // they throw. + if (isBuildingSnapshot()) { + setSerializeCallback(runSerializeCallbacks); + } +} + +let deserializeMainIsSet = false; +function setDeserializeMainFunction(callback, data) { + throwIfNotBuildingSnapshot(); + // TODO(joyeecheung): In lib/internal/bootstrap/node.js, create a default + // main function to run the lib/internal/main scripts and make sure that + // the main function set in the snapshot building process takes precedence. + validateFunction(callback, 'callback'); + if (deserializeMainIsSet) { + throw new ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION(); + } + deserializeMainIsSet = true; + + _setDeserializeMainFunction(function deserializeMain() { + const { + prepareMainThreadExecution + } = require('internal/bootstrap/pre_execution'); + + // This should be in sync with run_main_module.js until we make that + // a built-in main function. + prepareMainThreadExecution(true); + markBootstrapComplete(); + callback(data); + }); +} + +module.exports = { + initializeCallbacks, + runDeserializeCallbacks, + // Exposed to require('v8').startupSnapshot + namespace: { + addDeserializeCallback, + addSerializeCallback, + setDeserializeMainFunction, + isBuildingSnapshot + } +}; diff --git a/lib/internal/validators.js b/lib/internal/validators.js index e3584aaf2e13f7..cda6b6bea0aa76 100644 --- a/lib/internal/validators.js +++ b/lib/internal/validators.js @@ -64,7 +64,7 @@ function parseFileMode(value, name, def) { value = NumberParseInt(value, 8); } - validateInt32(value, name, 0, 2 ** 32 - 1); + validateUint32(value, name); return value; } @@ -85,11 +85,8 @@ const validateInt32 = hideStackFrames( if (typeof value !== 'number') { throw new ERR_INVALID_ARG_TYPE(name, 'number', value); } - if (!isInt32(value)) { - if (!NumberIsInteger(value)) { - throw new ERR_OUT_OF_RANGE(name, 'an integer', value); - } - throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); + if (!NumberIsInteger(value)) { + throw new ERR_OUT_OF_RANGE(name, 'an integer', value); } if (value < min || value > max) { throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); @@ -101,16 +98,14 @@ const validateUint32 = hideStackFrames((value, name, positive) => { if (typeof value !== 'number') { throw new ERR_INVALID_ARG_TYPE(name, 'number', value); } - if (!isUint32(value)) { - if (!NumberIsInteger(value)) { - throw new ERR_OUT_OF_RANGE(name, 'an integer', value); - } - const min = positive ? 1 : 0; - // 2 ** 32 === 4294967296 - throw new ERR_OUT_OF_RANGE(name, `>= ${min} && < 4294967296`, value); + if (!NumberIsInteger(value)) { + throw new ERR_OUT_OF_RANGE(name, 'an integer', value); } - if (positive && value === 0) { - throw new ERR_OUT_OF_RANGE(name, '>= 1 && < 4294967296', value); + const min = positive ? 1 : 0; + // 2 ** 32 === 4294967296 + const max = 4_294_967_295; + if (value < min || value > max) { + throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); } }); @@ -242,6 +237,12 @@ const validateUndefined = hideStackFrames((value, name) => { throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value); }); +function validateUnion(value, name, union) { + if (!ArrayPrototypeIncludes(union, value)) { + throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value); + } +} + module.exports = { isInt32, isUint32, @@ -262,5 +263,6 @@ module.exports = { validateString, validateUint32, validateUndefined, + validateUnion, validateAbortSignal, }; diff --git a/lib/internal/vm/module.js b/lib/internal/vm/module.js index 911b8f4426e586..d3818e6fd6c27c 100644 --- a/lib/internal/vm/module.js +++ b/lib/internal/vm/module.js @@ -24,9 +24,10 @@ const { isArrayBufferView, } = require('internal/util/types'); const { - getConstructorOf, customInspectSymbol, emitExperimentalWarning, + getConstructorOf, + kEmptyObject, } = require('internal/util'); const { ERR_INVALID_ARG_TYPE, @@ -34,7 +35,7 @@ const { ERR_VM_MODULE_ALREADY_LINKED, ERR_VM_MODULE_DIFFERENT_CONTEXT, ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA, - ERR_VM_MODULE_LINKING_ERRORED, + ERR_VM_MODULE_LINK_FAILURE, ERR_VM_MODULE_NOT_MODULE, ERR_VM_MODULE_STATUS, } = require('internal/errors').codes; @@ -112,6 +113,7 @@ class Module { } else { identifier = `${defaultModuleName}(0)`; ObjectDefineProperty(context, kPerContextModuleId, { + __proto__: null, value: 1, writable: true, enumerable: false, @@ -198,7 +200,7 @@ class Module { this[kWrap].instantiate(); } - async evaluate(options = {}) { + async evaluate(options = kEmptyObject) { if (this[kWrap] === undefined) { throw new ERR_VM_MODULE_NOT_MODULE(); } @@ -239,6 +241,7 @@ class Module { ObjectSetPrototypeOf(o, ObjectGetPrototypeOf(this)); ObjectDefineProperty(o, SymbolToStringTag, { + __proto__: null, value: constructor.name, configurable: true }); @@ -256,7 +259,7 @@ class SourceTextModule extends Module { #error = kNoError; #statusOverride; - constructor(sourceText, options = {}) { + constructor(sourceText, options = kEmptyObject) { validateString(sourceText, 'sourceText'); validateObject(options, 'options'); @@ -317,9 +320,7 @@ class SourceTextModule extends Module { throw new ERR_VM_MODULE_DIFFERENT_CONTEXT(); } if (module.status === 'errored') { - // TODO(devsnek): replace with ERR_VM_MODULE_LINK_FAILURE - // and error cause proposal. - throw new ERR_VM_MODULE_LINKING_ERRORED(); + throw new ERR_VM_MODULE_LINK_FAILURE(`request for '${identifier}' resolved to an errored module`, module.error); } if (module.status === 'unlinked') { await module[kLink](linker); @@ -387,7 +388,7 @@ class SourceTextModule extends Module { } class SyntheticModule extends Module { - constructor(exportNames, evaluateCallback, options = {}) { + constructor(exportNames, evaluateCallback, options = kEmptyObject) { if (!ArrayIsArray(exportNames) || ArrayPrototypeSome(exportNames, (e) => typeof e !== 'string')) { throw new ERR_INVALID_ARG_TYPE('exportNames', diff --git a/lib/internal/wasm_web_api.js b/lib/internal/wasm_web_api.js new file mode 100644 index 00000000000000..084a223806334f --- /dev/null +++ b/lib/internal/wasm_web_api.js @@ -0,0 +1,66 @@ +'use strict'; + +const { + PromiseResolve, +} = primordials; +const { + ERR_INVALID_ARG_TYPE, + ERR_WEBASSEMBLY_RESPONSE, +} = require('internal/errors').codes; + +let undici; +function lazyUndici() { + return undici ??= require('internal/deps/undici/undici'); +} + +// This is essentially an implementation of a v8::WasmStreamingCallback, except +// that it is implemented in JavaScript because the fetch() implementation is +// difficult to use from C++. See lib/internal/bootstrap/pre_execution.js and +// src/node_wasm_web_api.cc that interact with this function. +function wasmStreamingCallback(streamState, source) { + (async () => { + const response = await PromiseResolve(source); + if (!(response instanceof lazyUndici().Response)) { + throw new ERR_INVALID_ARG_TYPE( + 'source', ['Response', 'Promise resolving to Response'], response); + } + + const contentType = response.headers.get('Content-Type'); + if (contentType !== 'application/wasm') { + throw new ERR_WEBASSEMBLY_RESPONSE( + `has unsupported MIME type '${contentType}'`); + } + + if (!response.ok) { + throw new ERR_WEBASSEMBLY_RESPONSE( + `has status code ${response.status}`); + } + + if (response.bodyUsed !== false) { + throw new ERR_WEBASSEMBLY_RESPONSE('body has already been used'); + } + + if (response.url) { + streamState.setURL(response.url); + } + + // Pass all data from the response body to the WebAssembly compiler. + const { body } = response; + if (body != null) { + for await (const chunk of body) { + streamState.push(chunk); + } + } + })().then(() => { + // No error occurred. Tell the implementation that the stream has ended. + streamState.finish(); + }, (err) => { + // An error occurred, either because the given object was not a valid + // and usable Response or because a network error occurred. + streamState.abort(err); + }); +} + +module.exports = { + wasmStreamingCallback +}; diff --git a/lib/internal/webstreams/adapters.js b/lib/internal/webstreams/adapters.js index 1058c1c0356ead..0fd571bfe11d19 100644 --- a/lib/internal/webstreams/adapters.js +++ b/lib/internal/webstreams/adapters.js @@ -55,6 +55,7 @@ const { const { createDeferredPromise, + kEmptyObject, } = require('internal/util'); const { @@ -198,7 +199,7 @@ function newWritableStreamFromStreamWritable(streamWritable) { * }} [options] * @returns {Writable} */ -function newStreamWritableFromWritableStream(writableStream, options = {}) { +function newStreamWritableFromWritableStream(writableStream, options = kEmptyObject) { if (!isWritableStream(writableStream)) { throw new ERR_INVALID_ARG_TYPE( 'writableStream', @@ -441,7 +442,7 @@ function newReadableStreamFromStreamReadable(streamReadable) { * }} [options] * @returns {Readable} */ -function newStreamReadableFromReadableStream(readableStream, options = {}) { +function newStreamReadableFromReadableStream(readableStream, options = kEmptyObject) { if (!isReadableStream(readableStream)) { throw new ERR_INVALID_ARG_TYPE( 'readableStream', @@ -585,7 +586,7 @@ function newReadableWritablePairFromDuplex(duplex) { * }} [options] * @returns {Duplex} */ -function newStreamDuplexFromReadableWritablePair(pair = {}, options = {}) { +function newStreamDuplexFromReadableWritablePair(pair = kEmptyObject, options = kEmptyObject) { validateObject(pair, 'pair'); const { readable: readableStream, @@ -876,7 +877,7 @@ function newWritableStreamFromStreamBase(streamBase, strategy) { * @param {QueuingStrategy} strategy * @returns {ReadableStream} */ -function newReadableStreamFromStreamBase(streamBase, strategy, options = {}) { +function newReadableStreamFromStreamBase(streamBase, strategy, options = kEmptyObject) { validateObject(streamBase, 'streamBase'); validateObject(options, 'options'); diff --git a/lib/internal/webstreams/encoding.js b/lib/internal/webstreams/encoding.js index 9cc76fae2ce10d..233a09a216d72d 100644 --- a/lib/internal/webstreams/encoding.js +++ b/lib/internal/webstreams/encoding.js @@ -24,6 +24,7 @@ const { const { customInspectSymbol: kInspect, + kEmptyObject, kEnumerableProperty, } = require('internal/util'); @@ -114,7 +115,7 @@ class TextDecoderStream { * ignoreBOM? : boolean, * }} [options] */ - constructor(encoding = 'utf-8', options = {}) { + constructor(encoding = 'utf-8', options = kEmptyObject) { this[kType] = 'TextDecoderStream'; this[kHandle] = new TextDecoder(encoding, options); this[kTransform] = new TransformStream({ diff --git a/lib/internal/webstreams/readablestream.js b/lib/internal/webstreams/readablestream.js index bea1084bdd72ad..b44df2ff77896d 100644 --- a/lib/internal/webstreams/readablestream.js +++ b/lib/internal/webstreams/readablestream.js @@ -50,6 +50,7 @@ const { const { createDeferredPromise, customInspectSymbol: kInspect, + kEmptyObject, kEnumerableProperty, } = require('internal/util'); @@ -206,7 +207,7 @@ class ReadableStream { * @param {UnderlyingSource} [source] * @param {QueuingStrategy} [strategy] */ - constructor(source = {}, strategy = {}) { + constructor(source = {}, strategy = kEmptyObject) { if (source === null) throw new ERR_INVALID_ARG_VALUE('source', 'Object', source); this[kState] = { @@ -296,7 +297,7 @@ class ReadableStream { * }} [options] * @returns {ReadableStreamReader} */ - getReader(options = {}) { + getReader(options = kEmptyObject) { if (!isReadableStream(this)) throw new ERR_INVALID_THIS('ReadableStream'); validateObject(options, 'options', { nullable: true, allowFunction: true }); @@ -315,7 +316,7 @@ class ReadableStream { * @param {StreamPipeOptions} [options] * @returns {ReadableStream} */ - pipeThrough(transform, options = {}) { + pipeThrough(transform, options = kEmptyObject) { if (!isReadableStream(this)) throw new ERR_INVALID_THIS('ReadableStream'); const readable = transform?.readable; @@ -365,7 +366,7 @@ class ReadableStream { * @param {StreamPipeOptions} [options] * @returns {Promise} */ - pipeTo(destination, options = {}) { + pipeTo(destination, options = kEmptyObject) { try { if (!isReadableStream(this)) throw new ERR_INVALID_THIS('ReadableStream'); @@ -416,7 +417,7 @@ class ReadableStream { * }} [options] * @returns {AsyncIterable} */ - values(options = {}) { + values(options = kEmptyObject) { if (!isReadableStream(this)) throw new ERR_INVALID_THIS('ReadableStream'); validateObject(options, 'options'); @@ -585,6 +586,7 @@ class ReadableStream { ObjectDefineProperties(ReadableStream.prototype, { [SymbolAsyncIterator]: { + __proto__: null, configurable: true, enumerable: false, writable: true, diff --git a/lib/internal/webstreams/transfer.js b/lib/internal/webstreams/transfer.js index 985d7e86738f35..4467d90bb5a90f 100644 --- a/lib/internal/webstreams/transfer.js +++ b/lib/internal/webstreams/transfer.js @@ -73,16 +73,19 @@ class CloneableDOMException extends DOMException { [kDeserialize]({ message, name, code }) { ObjectDefineProperties(this, { message: { + __proto__: null, configurable: true, enumerable: true, get() { return message; }, }, name: { + __proto__: null, configurable: true, enumerable: true, get() { return name; }, }, code: { + __proto__: null, configurable: true, enumerable: true, get() { return code; }, diff --git a/lib/internal/worker.js b/lib/internal/worker.js index 1d2cd8cefd2996..0cede10ca4bf9b 100644 --- a/lib/internal/worker.js +++ b/lib/internal/worker.js @@ -55,6 +55,7 @@ const { } = workerIo; const { deserializeError } = require('internal/error_serdes'); const { fileURLToPath, isURLInstance, pathToFileURL } = require('internal/url'); +const { kEmptyObject } = require('internal/util'); const { validateArray } = require('internal/validators'); const { @@ -118,7 +119,7 @@ function assignEnvironmentData(data) { } class Worker extends EventEmitter { - constructor(filename, options = {}) { + constructor(filename, options = kEmptyObject) { super(); debug(`[${threadId}] create new worker`, filename, options); if (options.execArgv) diff --git a/lib/internal/worker/io.js b/lib/internal/worker/io.js index 822b8672525da3..9e2bbbdb33fd3e 100644 --- a/lib/internal/worker/io.js +++ b/lib/internal/worker/io.js @@ -18,7 +18,10 @@ const { SymbolFor, } = primordials; -const { kEnumerableProperty } = require('internal/util'); +const { + kEmptyObject, + kEnumerableProperty, +} = require('internal/util'); const { handle_onclose: handleOnCloseSymbol, @@ -91,7 +94,7 @@ const messageTypes = { // We have to mess with the MessagePort prototype a bit, so that a) we can make // it inherit from NodeEventTarget, even though it is a C++ class, and b) we do // not provide methods that are not present in the Browser and not documented -// on our side (e.g. hasRef). +// on our side (e.g. stopMessagePort). // Save a copy of the original set of methods as a shallow clone. const MessagePortPrototype = ObjectCreate( ObjectGetPrototypeOf(MessagePort.prototype), @@ -103,6 +106,9 @@ ObjectSetPrototypeOf(MessagePort.prototype, NodeEventTarget.prototype); // changing the prototype of MessagePort.prototype implicitly removed them. MessagePort.prototype.ref = MessagePortPrototype.ref; MessagePort.prototype.unref = MessagePortPrototype.unref; +MessagePort.prototype.hasRef = function() { + return !!FunctionPrototypeCall(MessagePortPrototype.hasRef, this); +}; function validateMessagePort(port, name) { if (!checkMessagePort(port)) @@ -120,7 +126,7 @@ class MessageEvent extends Event { lastEventId = '', source = null, ports = [], - } = {}) { + } = kEmptyObject) { super(type); this[kData] = data; this[kOrigin] = `${origin}`; @@ -137,6 +143,7 @@ class MessageEvent extends Event { ObjectDefineProperties(MessageEvent.prototype, { data: { + __proto__: null, get() { if (!isMessageEvent(this)) throw new ERR_INVALID_THIS('MessageEvent'); @@ -147,6 +154,7 @@ ObjectDefineProperties(MessageEvent.prototype, { set: undefined, }, origin: { + __proto__: null, get() { if (!isMessageEvent(this)) throw new ERR_INVALID_THIS('MessageEvent'); @@ -157,6 +165,7 @@ ObjectDefineProperties(MessageEvent.prototype, { set: undefined, }, lastEventId: { + __proto__: null, get() { if (!isMessageEvent(this)) throw new ERR_INVALID_THIS('MessageEvent'); @@ -167,6 +176,7 @@ ObjectDefineProperties(MessageEvent.prototype, { set: undefined, }, source: { + __proto__: null, get() { if (!isMessageEvent(this)) throw new ERR_INVALID_THIS('MessageEvent'); @@ -177,6 +187,7 @@ ObjectDefineProperties(MessageEvent.prototype, { set: undefined, }, ports: { + __proto__: null, get() { if (!isMessageEvent(this)) throw new ERR_INVALID_THIS('MessageEvent'); @@ -193,6 +204,7 @@ ObjectDefineProperty( MessagePort.prototype, kCreateEvent, { + __proto__: null, value: function(data, type) { if (type !== 'message' && type !== 'messageerror') { return ReflectApply(originalCreateEvent, this, arguments); @@ -217,6 +229,7 @@ defineEventHandler(MessagePort.prototype, 'message'); defineEventHandler(MessagePort.prototype, 'messageerror'); ObjectDefineProperty(MessagePort.prototype, onInitSymbol, { + __proto__: null, enumerable: true, writable: false, value: oninit @@ -234,6 +247,7 @@ function onclose() { } ObjectDefineProperty(MessagePort.prototype, handleOnCloseSymbol, { + __proto__: null, enumerable: false, writable: false, value: onclose @@ -246,6 +260,7 @@ MessagePort.prototype.close = function(cb) { }; ObjectDefineProperty(MessagePort.prototype, inspect.custom, { + __proto__: null, enumerable: false, writable: false, value: function inspect() { // eslint-disable-line func-name-matching diff --git a/lib/internal/worker/js_transferable.js b/lib/internal/worker/js_transferable.js index 7bd6c8cafc32e2..337413f0258a7e 100644 --- a/lib/internal/worker/js_transferable.js +++ b/lib/internal/worker/js_transferable.js @@ -5,6 +5,7 @@ const { ObjectGetOwnPropertyDescriptors, ObjectGetPrototypeOf, ObjectSetPrototypeOf, + ObjectValues, ReflectConstruct, StringPrototypeSplit, } = primordials; @@ -40,7 +41,14 @@ function setup() { function makeTransferable(obj) { const inst = ReflectConstruct(JSTransferable, [], obj.constructor); - ObjectDefineProperties(inst, ObjectGetOwnPropertyDescriptors(obj)); + const properties = ObjectGetOwnPropertyDescriptors(obj); + const propertiesValues = ObjectValues(properties); + for (let i = 0; i < propertiesValues.length; i++) { + // We want to use null-prototype objects to not rely on globally mutable + // %Object.prototype%. + ObjectSetPrototypeOf(propertiesValues[i], null); + } + ObjectDefineProperties(inst, properties); ObjectSetPrototypeOf(inst, ObjectGetPrototypeOf(obj)); return inst; } diff --git a/lib/net.js b/lib/net.js index d05fa64e78aa76..2e0b26a19585c2 100644 --- a/lib/net.js +++ b/lib/net.js @@ -89,6 +89,7 @@ const { ERR_INVALID_ARG_VALUE, ERR_INVALID_FD_TYPE, ERR_INVALID_IP_ADDRESS, + ERR_INVALID_HANDLE_TYPE, ERR_SERVER_ALREADY_LISTEN, ERR_SERVER_NOT_RUNNING, ERR_SOCKET_CLOSED, @@ -132,6 +133,7 @@ const noop = () => {}; const kPerfHooksNetConnectContext = Symbol('kPerfHooksNetConnectContext'); const { + hasObserver, startPerf, stopPerf, } = require('internal/perf/observe'); @@ -379,6 +381,7 @@ function Socket(options) { // we need to let it do that by turning it into a writable, own // property. ObjectDefineProperty(this._handle, 'bytesWritten', { + __proto__: null, value: 0, writable: true }); } @@ -567,12 +570,14 @@ Socket.prototype.address = function() { ObjectDefineProperty(Socket.prototype, '_connecting', { + __proto__: null, get: function() { return this.connecting; } }); ObjectDefineProperty(Socket.prototype, 'pending', { + __proto__: null, get() { return !this._handle || this.connecting; }, @@ -581,6 +586,7 @@ ObjectDefineProperty(Socket.prototype, 'pending', { ObjectDefineProperty(Socket.prototype, 'readyState', { + __proto__: null, get: function() { if (this.connecting) { return 'opening'; @@ -597,6 +603,7 @@ ObjectDefineProperty(Socket.prototype, 'readyState', { ObjectDefineProperty(Socket.prototype, 'bufferSize', { + __proto__: null, get: function() { if (this._handle) { return this.writableLength; @@ -605,6 +612,7 @@ ObjectDefineProperty(Socket.prototype, 'bufferSize', { }); ObjectDefineProperty(Socket.prototype, kUpdateTimer, { + __proto__: null, get: function() { return this._unrefTimer; } @@ -640,6 +648,21 @@ Socket.prototype.end = function(data, encoding, callback) { return this; }; +Socket.prototype.resetAndDestroy = function() { + if (this._handle) { + if (!(this._handle instanceof TCP)) + throw new ERR_INVALID_HANDLE_TYPE(); + if (this.connecting) { + debug('reset wait for connection'); + this.once('connect', () => this._reset()); + } else { + this._reset(); + } + } else { + this.destroy(new ERR_SOCKET_CLOSED()); + } + return this; +}; Socket.prototype.pause = function() { if (this[kBuffer] && !this.connecting && this._handle && @@ -710,10 +733,20 @@ Socket.prototype._destroy = function(exception, cb) { this[kBytesRead] = this._handle.bytesRead; this[kBytesWritten] = this._handle.bytesWritten; - this._handle.close(() => { - debug('emit close'); - this.emit('close', isException); - }); + if (this.resetAndClosing) { + this.resetAndClosing = false; + const err = this._handle.reset(() => { + debug('emit close'); + this.emit('close', isException); + }); + if (err) + this.emit('error', errnoException(err, 'reset')); + } else { + this._handle.close(() => { + debug('emit close'); + this.emit('close', isException); + }); + } this._handle.onread = noop; this._handle = null; this._sockname = null; @@ -732,8 +765,14 @@ Socket.prototype._destroy = function(exception, cb) { } }; +Socket.prototype._reset = function() { + debug('reset connection'); + this.resetAndClosing = true; + return this.destroy(); +}; + Socket.prototype._getpeername = function() { - if (!this._handle || !this._handle.getpeername) { + if (!this._handle || !this._handle.getpeername || this.connecting) { return this._peername || {}; } else if (!this._peername) { this._peername = {}; @@ -745,6 +784,7 @@ Socket.prototype._getpeername = function() { function protoGetter(name, callback) { ObjectDefineProperty(Socket.prototype, name, { + __proto__: null, configurable: false, enumerable: true, get: callback @@ -958,7 +998,7 @@ function internalConnect( const ex = exceptionWithHostPort(err, 'connect', address, port, details); self.destroy(ex); - } else if (addressType === 6 || addressType === 4) { + } else if ((addressType === 6 || addressType === 4) && hasObserver('net')) { startPerf(self, kPerfHooksNetConnectContext, { type: 'net', name: 'connect', detail: { host: address, port } }); } } @@ -1185,7 +1225,9 @@ function afterConnect(status, handle, req, readable, writable) { // this doesn't actually consume any bytes, because len=0. if (readable && !self.isPaused()) self.read(0); - stopPerf(self, kPerfHooksNetConnectContext); + if (self[kPerfHooksNetConnectContext] && hasObserver('net')) { + stopPerf(self, kPerfHooksNetConnectContext); + } } else { self.connecting = false; let details; @@ -1571,6 +1613,7 @@ function lookupAndListen(self, port, address, backlog, exclusive, flags) { } ObjectDefineProperty(Server.prototype, 'listening', { + __proto__: null, get: function() { return !!this._handle; }, @@ -1753,11 +1796,13 @@ Server.prototype[EventEmitter.captureRejectionSymbol] = function( // Legacy alias on the C++ wrapper object. This is not public API, so we may // want to runtime-deprecate it at some point. There's no hurry, though. ObjectDefineProperty(TCP.prototype, 'owner', { + __proto__: null, get() { return this[owner_symbol]; }, set(v) { return this[owner_symbol] = v; } }); ObjectDefineProperty(Socket.prototype, '_handle', { + __proto__: null, get() { return this[kHandle]; }, set(v) { return this[kHandle] = v; } }); diff --git a/lib/os.js b/lib/os.js index c1c4bfa694a06b..81bbe15a9d2a42 100644 --- a/lib/os.js +++ b/lib/os.js @@ -119,15 +119,15 @@ function loadavg() { * logical CPU core. * * @returns {Array<{ - * model: string - * speed: number + * model: string, + * speed: number, * times: { - * user: number - * nice: number - * sys: number - * idle: number - * irq: number - * } + * user: number, + * nice: number, + * sys: number, + * idle: number, + * irq: number, + * }, * }>} */ function cpus() { @@ -246,13 +246,13 @@ function getCIDR(address, netmask, family) { /** * @returns {Record>} */ function networkInterfaces() { @@ -329,11 +329,11 @@ function getPriority(pid) { * `'buffer'`, the `username`, `shell`, and `homedir` values will * be `Buffer` instances. * @returns {{ - * uid: number - * gid: number - * username: string - * homedir: string - * shell: string | null + * uid: number, + * gid: number, + * username: string, + * homedir: string, + * shell: string | null, * }} */ function userInfo(options) { @@ -372,12 +372,14 @@ module.exports = { ObjectDefineProperties(module.exports, { constants: { + __proto__: null, configurable: false, enumerable: true, value: constants }, EOL: { + __proto__: null, configurable: true, enumerable: true, writable: false, @@ -385,6 +387,7 @@ ObjectDefineProperties(module.exports, { }, devNull: { + __proto__: null, configurable: true, enumerable: true, writable: false, diff --git a/lib/perf_hooks.js b/lib/perf_hooks.js index 74ba890f537bc2..e84c8948f3c609 100644 --- a/lib/perf_hooks.js +++ b/lib/perf_hooks.js @@ -9,6 +9,7 @@ const { } = internalBinding('performance'); const { PerformanceEntry } = require('internal/perf/performance_entry'); +const { PerformanceResourceTiming } = require('internal/perf/resource_timing'); const { PerformanceObserver, PerformanceObserverEntryList, @@ -31,12 +32,14 @@ module.exports = { PerformanceMeasure, PerformanceObserver, PerformanceObserverEntryList, + PerformanceResourceTiming, monitorEventLoopDelay, createHistogram, performance: new InternalPerformance(), }; ObjectDefineProperty(module.exports, 'constants', { + __proto__: null, configurable: false, enumerable: true, value: constants diff --git a/lib/readline.js b/lib/readline.js index 11514614c33ab9..51ba11577bf813 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -47,7 +47,10 @@ const { const { inspect, } = require('internal/util/inspect'); -const { promisify } = require('internal/util'); +const { + kEmptyObject, + promisify, +} = require('internal/util'); const { validateAbortSignal } = require('internal/validators'); /** @@ -128,7 +131,9 @@ const superQuestion = _Interface.prototype.question; */ Interface.prototype.question = function(query, options, cb) { cb = typeof options === 'function' ? options : cb; - options = typeof options === 'object' && options !== null ? options : {}; + if (options === null || typeof options !== 'object') { + options = kEmptyObject; + } if (options.signal) { validateAbortSignal(options.signal, 'options.signal'); @@ -143,9 +148,10 @@ Interface.prototype.question = function(query, options, cb) { const cleanup = () => { options.signal.removeEventListener(onAbort); }; + const originalCb = cb; cb = typeof cb === 'function' ? (answer) => { cleanup(); - return cb(answer); + return originalCb(answer); } : cleanup; } @@ -153,8 +159,10 @@ Interface.prototype.question = function(query, options, cb) { FunctionPrototypeCall(superQuestion, this, query, cb); } }; -Interface.prototype.question[promisify.custom] = function(query, options) { - options = typeof options === 'object' && options !== null ? options : {}; +Interface.prototype.question[promisify.custom] = function question(query, options) { + if (options === null || typeof options !== 'object') { + options = kEmptyObject; + } if (options.signal && options.signal.aborted) { return PromiseReject( @@ -208,111 +216,133 @@ ObjectDefineProperties(Interface.prototype, { // Redirect internal prototype methods to the underscore notation for backward // compatibility. [kSetRawMode]: { + __proto__: null, get() { return this._setRawMode; } }, [kOnLine]: { + __proto__: null, get() { return this._onLine; } }, [kWriteToOutput]: { + __proto__: null, get() { return this._writeToOutput; } }, [kAddHistory]: { + __proto__: null, get() { return this._addHistory; } }, [kRefreshLine]: { + __proto__: null, get() { return this._refreshLine; } }, [kNormalWrite]: { + __proto__: null, get() { return this._normalWrite; } }, [kInsertString]: { + __proto__: null, get() { return this._insertString; } }, [kTabComplete]: { + __proto__: null, get() { return this._tabComplete; } }, [kWordLeft]: { + __proto__: null, get() { return this._wordLeft; } }, [kWordRight]: { + __proto__: null, get() { return this._wordRight; } }, [kDeleteLeft]: { + __proto__: null, get() { return this._deleteLeft; } }, [kDeleteRight]: { + __proto__: null, get() { return this._deleteRight; } }, [kDeleteWordLeft]: { + __proto__: null, get() { return this._deleteWordLeft; } }, [kDeleteWordRight]: { + __proto__: null, get() { return this._deleteWordRight; } }, [kDeleteLineLeft]: { + __proto__: null, get() { return this._deleteLineLeft; } }, [kDeleteLineRight]: { + __proto__: null, get() { return this._deleteLineRight; } }, [kLine]: { + __proto__: null, get() { return this._line; } }, [kHistoryNext]: { + __proto__: null, get() { return this._historyNext; } }, [kHistoryPrev]: { + __proto__: null, get() { return this._historyPrev; } }, [kGetDisplayPos]: { + __proto__: null, get() { return this._getDisplayPos; } }, [kMoveCursor]: { + __proto__: null, get() { return this._moveCursor; } }, [kTtyWrite]: { + __proto__: null, get() { return this._ttyWrite; } @@ -321,6 +351,7 @@ ObjectDefineProperties(Interface.prototype, { // Defining proxies for the internal instance properties for backward // compatibility. _decoder: { + __proto__: null, get() { return this[kDecoder]; }, @@ -329,6 +360,7 @@ ObjectDefineProperties(Interface.prototype, { }, }, _line_buffer: { + __proto__: null, get() { return this[kLine_buffer]; }, @@ -337,6 +369,7 @@ ObjectDefineProperties(Interface.prototype, { }, }, _oldPrompt: { + __proto__: null, get() { return this[kOldPrompt]; }, @@ -345,6 +378,7 @@ ObjectDefineProperties(Interface.prototype, { }, }, _previousKey: { + __proto__: null, get() { return this[kPreviousKey]; }, @@ -353,6 +387,7 @@ ObjectDefineProperties(Interface.prototype, { }, }, _prompt: { + __proto__: null, get() { return this[kPrompt]; }, @@ -361,6 +396,7 @@ ObjectDefineProperties(Interface.prototype, { }, }, _questionCallback: { + __proto__: null, get() { return this[kQuestionCallback]; }, @@ -369,6 +405,7 @@ ObjectDefineProperties(Interface.prototype, { }, }, _sawKeyPress: { + __proto__: null, get() { return this[kSawKeyPress]; }, @@ -377,6 +414,7 @@ ObjectDefineProperties(Interface.prototype, { }, }, _sawReturnAt: { + __proto__: null, get() { return this[kSawReturnAt]; }, @@ -427,7 +465,7 @@ Interface.prototype._moveCursor = _Interface.prototype[kMoveCursor]; Interface.prototype._ttyWrite = _Interface.prototype[kTtyWrite]; function _ttyWriteDumb(s, key) { - key = key || {}; + key = key || kEmptyObject; if (key.name === 'escape') return; diff --git a/lib/readline/promises.js b/lib/readline/promises.js index 534558ec31ffdc..728a6253fd5e67 100644 --- a/lib/readline/promises.js +++ b/lib/readline/promises.js @@ -18,12 +18,16 @@ const { } = require('internal/errors'); const { validateAbortSignal } = require('internal/validators'); +const { + kEmptyObject, +} = require('internal/util'); + class Interface extends _Interface { // eslint-disable-next-line no-useless-constructor constructor(input, output, completer, terminal) { super(input, output, completer, terminal); } - question(query, options = {}) { + question(query, options = kEmptyObject) { return new Promise((resolve, reject) => { let cb = resolve; diff --git a/lib/repl.js b/lib/repl.js index af9b607b022372..dd274a3bab1881 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -94,6 +94,7 @@ const { StringPrototypeStartsWith, StringPrototypeTrim, StringPrototypeTrimLeft, + StringPrototypeToLocaleLowerCase, Symbol, SyntaxError, SyntaxErrorPrototype, @@ -285,6 +286,7 @@ function REPLServer(prompt, (options.preview !== undefined ? !!options.preview : !eval_); ObjectDefineProperty(this, 'inputStream', { + __proto__: null, get: pendingDeprecation ? deprecate(() => this.input, 'repl.inputStream and repl.outputStream are deprecated. ' + @@ -301,6 +303,7 @@ function REPLServer(prompt, configurable: true }); ObjectDefineProperty(this, 'outputStream', { + __proto__: null, get: pendingDeprecation ? deprecate(() => this.output, 'repl.inputStream and repl.outputStream are deprecated. ' + @@ -532,7 +535,7 @@ function REPLServer(prompt, // This will set the values from `savedRegExMatches` to corresponding // predefined RegExp properties `RegExp.$1`, `RegExp.$2` ... `RegExp.$9` - RegExpPrototypeTest(regExMatcher, + RegExpPrototypeExec(regExMatcher, ArrayPrototypeJoin(savedRegExMatches, sep)); let finished = false; @@ -783,6 +786,7 @@ function REPLServer(prompt, if (options[kStandaloneREPL]) { ObjectDefineProperty(inspect, 'replDefaults', { + __proto__: null, get() { return writer.options; }, @@ -1083,12 +1087,16 @@ REPLServer.prototype.createContext = function() { // Only set properties that do not already exist as a global builtin. if (!globalBuiltins.has(name)) { ObjectDefineProperty(context, name, - ObjectGetOwnPropertyDescriptor(globalThis, name)); + { + __proto__: null, + ...ObjectGetOwnPropertyDescriptor(globalThis, name), + }); } }); context.global = context; const _console = new Console(this.output); ObjectDefineProperty(context, 'console', { + __proto__: null, configurable: true, writable: true, value: _console @@ -1099,11 +1107,13 @@ REPLServer.prototype.createContext = function() { replModule.paths = CJSModule._resolveLookupPaths('', parentModule); ObjectDefineProperty(context, 'module', { + __proto__: null, configurable: true, writable: true, value: replModule }); ObjectDefineProperty(context, 'require', { + __proto__: null, configurable: true, writable: true, value: makeRequireFunction(replModule) @@ -1123,6 +1133,7 @@ REPLServer.prototype.resetContext = function() { this.lines.level = []; ObjectDefineProperty(this.context, '_', { + __proto__: null, configurable: true, get: () => this.last, set: (value) => { @@ -1135,6 +1146,7 @@ REPLServer.prototype.resetContext = function() { }); ObjectDefineProperty(this.context, '_error', { + __proto__: null, configurable: true, get: () => this.lastError, set: (value) => { @@ -1290,8 +1302,8 @@ function complete(line, callback) { // Ignore right whitespace. It could change the outcome. line = StringPrototypeTrimLeft(line); - // REPL commands (e.g. ".break"). let filter = ''; + // REPL commands (e.g. ".break"). if (RegExpPrototypeTest(/^\s*\.(\w*)$/, line)) { ArrayPrototypePush(completionGroups, ObjectKeys(this.commands)); completeOn = StringPrototypeMatch(line, /^\s*\.(\w*)$/)[1]; @@ -1534,11 +1546,16 @@ function complete(line, callback) { // Filter, sort (within each group), uniq and merge the completion groups. if (completionGroups.length && filter) { const newCompletionGroups = []; + const lowerCaseFilter = StringPrototypeToLocaleLowerCase(filter); ArrayPrototypeForEach(completionGroups, (group) => { - const filteredGroup = ArrayPrototypeFilter( - group, - (str) => StringPrototypeStartsWith(str, filter) - ); + const filteredGroup = ArrayPrototypeFilter(group, (str) => { + // Filter is always case-insensitive following chromium autocomplete + // behavior. + return StringPrototypeStartsWith( + StringPrototypeToLocaleLowerCase(str), + lowerCaseFilter + ); + }); if (filteredGroup.length) { ArrayPrototypePush(newCompletionGroups, filteredGroup); } @@ -1805,6 +1822,7 @@ module.exports = { }; ObjectDefineProperty(module.exports, 'builtinModules', { + __proto__: null, get: () => _builtinLibs, set: (val) => _builtinLibs = val, enumerable: true, @@ -1812,6 +1830,7 @@ ObjectDefineProperty(module.exports, 'builtinModules', { }); ObjectDefineProperty(module.exports, '_builtinLibs', { + __proto__: null, get: pendingDeprecation ? deprecate( () => _builtinLibs, 'repl._builtinLibs is deprecated. Check module.builtinModules instead', diff --git a/lib/stream.js b/lib/stream.js index 55f903f295fecf..e8a38120cb2ceb 100644 --- a/lib/stream.js +++ b/lib/stream.js @@ -63,9 +63,10 @@ for (const key of ObjectKeys(streamReturningOperators)) { } return Stream.Readable.from(ReflectApply(op, this, args)); } - ObjectDefineProperty(fn, 'name', { value: op.name }); - ObjectDefineProperty(fn, 'length', { value: op.length }); + ObjectDefineProperty(fn, 'name', { __proto__: null, value: op.name }); + ObjectDefineProperty(fn, 'length', { __proto__: null, value: op.length }); ObjectDefineProperty(Stream.Readable.prototype, key, { + __proto__: null, value: fn, enumerable: false, configurable: true, @@ -80,9 +81,10 @@ for (const key of ObjectKeys(promiseReturningOperators)) { } return ReflectApply(op, this, args); } - ObjectDefineProperty(fn, 'name', { value: op.name }); - ObjectDefineProperty(fn, 'length', { value: op.length }); + ObjectDefineProperty(fn, 'name', { __proto__: null, value: op.name }); + ObjectDefineProperty(fn, 'length', { __proto__: null, value: op.length }); ObjectDefineProperty(Stream.Readable.prototype, key, { + __proto__: null, value: fn, enumerable: false, configurable: true, @@ -101,6 +103,7 @@ Stream.destroy = destroyer; Stream.compose = compose; ObjectDefineProperty(Stream, 'promises', { + __proto__: null, configurable: true, enumerable: true, get() { @@ -109,6 +112,7 @@ ObjectDefineProperty(Stream, 'promises', { }); ObjectDefineProperty(pipeline, customPromisify, { + __proto__: null, enumerable: true, get() { return promises.pipeline; @@ -116,6 +120,7 @@ ObjectDefineProperty(pipeline, customPromisify, { }); ObjectDefineProperty(eos, customPromisify, { + __proto__: null, enumerable: true, get() { return promises.finished; diff --git a/lib/string_decoder.js b/lib/string_decoder.js index 9eae594aaa27ea..a22da17f505efb 100644 --- a/lib/string_decoder.js +++ b/lib/string_decoder.js @@ -140,6 +140,7 @@ StringDecoder.prototype.text = function text(buf, offset) { ObjectDefineProperties(StringDecoder.prototype, { lastChar: { + __proto__: null, configurable: true, enumerable: true, get() { @@ -149,6 +150,7 @@ ObjectDefineProperties(StringDecoder.prototype, { } }, lastNeed: { + __proto__: null, configurable: true, enumerable: true, get() { @@ -156,6 +158,7 @@ ObjectDefineProperties(StringDecoder.prototype, { } }, lastTotal: { + __proto__: null, configurable: true, enumerable: true, get() { diff --git a/lib/timers.js b/lib/timers.js index cd721ad4550164..b2126d9711fc8e 100644 --- a/lib/timers.js +++ b/lib/timers.js @@ -168,6 +168,7 @@ function setTimeout(callback, after, arg1, arg2, arg3) { } ObjectDefineProperty(setTimeout, customPromisify, { + __proto__: null, enumerable: true, get() { if (!timersPromises) @@ -302,6 +303,7 @@ function setImmediate(callback, arg1, arg2, arg3) { } ObjectDefineProperty(setImmediate, customPromisify, { + __proto__: null, enumerable: true, get() { if (!timersPromises) diff --git a/lib/timers/promises.js b/lib/timers/promises.js index 47a78de32efa3b..7c8d364b1dde4f 100644 --- a/lib/timers/promises.js +++ b/lib/timers/promises.js @@ -35,6 +35,10 @@ const { validateObject, } = require('internal/validators'); +const { + kEmptyObject, +} = require('internal/util'); + const kScheduler = Symbol('kScheduler'); function cancelListenerHandler(clear, reject, signal) { @@ -44,7 +48,7 @@ function cancelListenerHandler(clear, reject, signal) { } } -function setTimeout(after, value, options = {}) { +function setTimeout(after, value, options = kEmptyObject) { const args = value !== undefined ? [value] : value; if (options == null || typeof options !== 'object') { return PromiseReject( @@ -88,7 +92,7 @@ function setTimeout(after, value, options = {}) { () => signal.removeEventListener('abort', oncancel)) : ret; } -function setImmediate(value, options = {}) { +function setImmediate(value, options = kEmptyObject) { if (options == null || typeof options !== 'object') { return PromiseReject( new ERR_INVALID_ARG_TYPE( @@ -132,7 +136,7 @@ function setImmediate(value, options = {}) { () => signal.removeEventListener('abort', oncancel)) : ret; } -async function* setInterval(after, value, options = {}) { +async function* setInterval(after, value, options = kEmptyObject) { validateObject(options, 'options'); const { signal, ref = true } = options; validateAbortSignal(signal, 'options.signal'); diff --git a/lib/tls.js b/lib/tls.js index de20505fde242b..5a248c7d60ccf1 100644 --- a/lib/tls.js +++ b/lib/tls.js @@ -54,7 +54,10 @@ const { } = require('internal/errors').codes; const internalUtil = require('internal/util'); internalUtil.assertCrypto(); -const { isArrayBufferView } = require('internal/util/types'); +const { + isArrayBufferView, + isUint8Array, +} = require('internal/util/types'); const net = require('net'); const { getOptionValue } = require('internal/options'); @@ -106,6 +109,7 @@ function cacheRootCertificates() { } ObjectDefineProperty(exports, 'rootCertificates', { + __proto__: null, configurable: false, enumerable: true, get: () => { @@ -143,9 +147,14 @@ exports.convertALPNProtocols = function convertALPNProtocols(protocols, out) { // If protocols is Array - translate it into buffer if (ArrayIsArray(protocols)) { out.ALPNProtocols = convertProtocols(protocols); - } else if (isArrayBufferView(protocols)) { + } else if (isUint8Array(protocols)) { // Copy new buffer not to be modified by user. out.ALPNProtocols = Buffer.from(protocols); + } else if (isArrayBufferView(protocols)) { + out.ALPNProtocols = Buffer.from(protocols.buffer.slice( + protocols.byteOffset, + protocols.byteOffset + protocols.byteLength + )); } }; diff --git a/lib/util.js b/lib/util.js index fbd8c550318650..78e6b807ee5ef6 100644 --- a/lib/util.js +++ b/lib/util.js @@ -61,6 +61,7 @@ const { stripVTControlCharacters, } = require('internal/util/inspect'); const { debuglog } = require('internal/util/debuglog'); +const { parseArgs } = require('internal/util/parse_args/parse_args'); const { validateFunction, validateNumber, @@ -243,6 +244,7 @@ function inherits(ctor, superCtor) { 'Object', superCtor.prototype); } ObjectDefineProperty(ctor, 'super_', { + __proto__: null, value: superCtor, writable: true, configurable: true @@ -369,6 +371,7 @@ module.exports = { isFunction, isPrimitive, log, + parseArgs, promisify, stripVTControlCharacters, toUSVString, diff --git a/lib/v8.js b/lib/v8.js index 75981152851216..1a8b4bce2fccd6 100644 --- a/lib/v8.js +++ b/lib/v8.js @@ -40,6 +40,9 @@ const { Serializer, Deserializer } = internalBinding('serdes'); +const { + namespace: startupSnapshot +} = require('internal/v8/startup_snapshot'); let profiler = {}; if (internalBinding('config').hasInspector) { @@ -107,6 +110,9 @@ const { kPeakMallocedMemoryIndex, kNumberOfNativeContextsIndex, kNumberOfDetachedContextsIndex, + kTotalGlobalHandlesSizeIndex, + kUsedGlobalHandlesSizeIndex, + kExternalMemoryIndex, // Properties for heap spaces statistics buffer extraction. kHeapSpaces, @@ -118,7 +124,8 @@ const { // Properties for heap code statistics buffer extraction. kCodeAndMetadataSizeIndex, kBytecodeAndMetadataSizeIndex, - kExternalScriptSourceSizeIndex + kExternalScriptSourceSizeIndex, + kCPUProfilerMetaDataSizeIndex, } = binding; const kNumberOfHeapSpaces = kHeapSpaces.length; @@ -165,7 +172,10 @@ function getHeapStatistics() { peak_malloced_memory: buffer[kPeakMallocedMemoryIndex], does_zap_garbage: buffer[kDoesZapGarbageIndex], number_of_native_contexts: buffer[kNumberOfNativeContextsIndex], - number_of_detached_contexts: buffer[kNumberOfDetachedContextsIndex] + number_of_detached_contexts: buffer[kNumberOfDetachedContextsIndex], + total_global_handles_size: buffer[kTotalGlobalHandlesSizeIndex], + used_global_handles_size: buffer[kUsedGlobalHandlesSizeIndex], + external_memory: buffer[kExternalMemoryIndex] }; } @@ -203,6 +213,7 @@ function getHeapSpaceStatistics() { * code_and_metadata_size: number; * bytecode_and_metadata_size: number; * external_script_source_size: number; + * cpu_profiler_metadata_size: number; * }} */ function getHeapCodeStatistics() { @@ -212,7 +223,8 @@ function getHeapCodeStatistics() { return { code_and_metadata_size: buffer[kCodeAndMetadataSizeIndex], bytecode_and_metadata_size: buffer[kBytecodeAndMetadataSizeIndex], - external_script_source_size: buffer[kExternalScriptSourceSizeIndex] + external_script_source_size: buffer[kExternalScriptSourceSizeIndex], + cpu_profiler_metadata_size: buffer[kCPUProfilerMetaDataSizeIndex], }; } @@ -363,4 +375,5 @@ module.exports = { serialize, writeHeapSnapshot, promiseHooks, + startupSnapshot }; diff --git a/lib/vm.js b/lib/vm.js index 92afa9f6964acf..7bcef6e5f4ff9a 100644 --- a/lib/vm.js +++ b/lib/vm.js @@ -57,13 +57,14 @@ const { validateUint32, } = require('internal/validators'); const { - kVmBreakFirstLineSymbol, emitExperimentalWarning, + kEmptyObject, + kVmBreakFirstLineSymbol, } = require('internal/util'); const kParsingContext = Symbol('script parsing context'); class Script extends ContextifyScript { - constructor(code, options = {}) { + constructor(code, options = kEmptyObject) { code = `${code}`; if (typeof options === 'string') { options = { filename: options }; @@ -152,7 +153,7 @@ function validateContext(contextifiedObject) { } } -function getRunInContextArgs(options = {}) { +function getRunInContextArgs(options = kEmptyObject) { validateObject(options, 'options'); let timeout = options.timeout; @@ -212,7 +213,7 @@ function isContext(object) { } let defaultContextNameIndex = 1; -function createContext(contextObject = {}, options = {}) { +function createContext(contextObject = {}, options = kEmptyObject) { if (isContext(contextObject)) { return contextObject; } @@ -305,7 +306,7 @@ function runInThisContext(code, options) { return createScript(code, options).runInThisContext(options); } -function compileFunction(code, params, options = {}) { +function compileFunction(code, params, options = kEmptyObject) { validateString(code, 'code'); if (params !== undefined) { validateArray(params, 'params'); @@ -395,7 +396,7 @@ const measureMemoryExecutions = { eager: constants.measureMemory.execution.EAGER, }; -function measureMemory(options = {}) { +function measureMemory(options = kEmptyObject) { emitExperimentalWarning('vm.measureMemory'); validateObject(options, 'options'); const { mode = 'summary', execution = 'default' } = options; diff --git a/lib/wasi.js b/lib/wasi.js index 43ecf94b4cb050..7093953a00739a 100644 --- a/lib/wasi.js +++ b/lib/wasi.js @@ -13,7 +13,10 @@ const { ERR_INVALID_ARG_TYPE, ERR_WASI_ALREADY_STARTED } = require('internal/errors').codes; -const { emitExperimentalWarning } = require('internal/util'); +const { + emitExperimentalWarning, + kEmptyObject, +} = require('internal/util'); const { isArrayBuffer } = require('internal/util/types'); const { validateArray, @@ -55,7 +58,7 @@ function setupInstance(self, instance) { } class WASI { - constructor(options = {}) { + constructor(options = kEmptyObject) { validateObject(options, 'options'); if (options.args !== undefined) diff --git a/lib/zlib.js b/lib/zlib.js index 718f72af67650e..9bde1997d95720 100644 --- a/lib/zlib.js +++ b/lib/zlib.js @@ -308,6 +308,7 @@ ObjectSetPrototypeOf(ZlibBase.prototype, Transform.prototype); ObjectSetPrototypeOf(ZlibBase, Transform); ObjectDefineProperty(ZlibBase.prototype, '_closed', { + __proto__: null, configurable: true, enumerable: true, get() { @@ -320,6 +321,7 @@ ObjectDefineProperty(ZlibBase.prototype, '_closed', { // that have this concept, where it stands for the number of bytes read // *from* the stream (that is, net.Socket/tls.Socket & file system streams). ObjectDefineProperty(ZlibBase.prototype, 'bytesRead', { + __proto__: null, configurable: true, enumerable: true, get: deprecate(function() { @@ -871,6 +873,7 @@ ObjectSetPrototypeOf(BrotliDecompress, Brotli); function createProperty(ctor) { return { + __proto__: null, configurable: true, enumerable: true, value: function(options) { @@ -882,6 +885,7 @@ function createProperty(ctor) { // Legacy alias on the C++ wrapper object. This is not public API, so we may // want to runtime-deprecate it at some point. There's no hurry, though. ObjectDefineProperty(binding.Zlib.prototype, 'jsref', { + __proto__: null, get() { return this[owner_symbol]; }, set(v) { return this[owner_symbol] = v; } }); @@ -930,11 +934,13 @@ ObjectDefineProperties(module.exports, { createBrotliCompress: createProperty(BrotliCompress), createBrotliDecompress: createProperty(BrotliDecompress), constants: { + __proto__: null, configurable: false, enumerable: true, value: constants }, codes: { + __proto__: null, enumerable: true, writable: false, value: ObjectFreeze(codes) @@ -946,6 +952,7 @@ ObjectDefineProperties(module.exports, { for (const bkey of ObjectKeys(constants)) { if (StringPrototypeStartsWith(bkey, 'BROTLI')) continue; ObjectDefineProperty(module.exports, bkey, { + __proto__: null, enumerable: false, value: constants[bkey], writable: false }); } diff --git a/node.gyp b/node.gyp index 0a6eca012daad1..d063a6408072ac 100644 --- a/node.gyp +++ b/node.gyp @@ -55,7 +55,6 @@ 'deps/undici/undici.js', ], 'node_mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)node_mksnapshot<(EXECUTABLE_SUFFIX)', - 'mkcodecache_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mkcodecache<(EXECUTABLE_SUFFIX)', 'conditions': [ ['GENERATOR == "ninja"', { 'node_text_start_object_path': 'src/large_pages/node_text_start.node_text_start.o' @@ -196,6 +195,16 @@ 'dependencies': [ 'node_aix_shared' ], }, { 'dependencies': [ '<(node_lib_target_name)' ], + 'conditions': [ + ['OS=="win" and node_shared=="true"', { + 'dependencies': ['generate_node_def'], + 'msvs_settings': { + 'VCLinkerTool': { + 'ModuleDefinitionFile': '<(PRODUCT_DIR)/<(node_core_target_name).def', + }, + }, + }], + ], }], [ 'node_intermediate_lib_type=="static_library" and node_shared=="false"', { 'xcode_settings': { @@ -235,8 +244,15 @@ }], [ 'node_shared=="true"', { 'xcode_settings': { - 'OTHER_LDFLAGS': [ '-Wl,-rpath,@loader_path', ], + 'OTHER_LDFLAGS': [ '-Wl,-rpath,@loader_path', '-Wl,-rpath,@loader_path/../lib'], }, + 'conditions': [ + ['OS=="linux"', { + 'ldflags': [ + '-Wl,-rpath,\\$$ORIGIN/../lib' + ], + }], + ], }], [ 'enable_lto=="true"', { 'xcode_settings': { @@ -287,32 +303,7 @@ }, }, }], - ['node_use_node_code_cache=="true"', { - 'dependencies': [ - 'mkcodecache', - ], - 'actions': [ - { - 'action_name': 'run_mkcodecache', - 'process_outputs_as_sources': 1, - 'inputs': [ - '<(mkcodecache_exec)', - ], - 'outputs': [ - '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc', - ], - 'action': [ - '<@(_inputs)', - '<@(_outputs)', - ], - }, - ], - }, { - 'sources': [ - 'src/node_code_cache_stub.cc' - ], - }], - ['node_use_node_snapshot=="true"', { + ['node_use_node_snapshot=="true"', { 'dependencies': [ 'node_mksnapshot', ], @@ -373,7 +364,7 @@ 'variables': { 'openssl-cli': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)openssl-cli<(EXECUTABLE_SUFFIX)', 'provider_name': 'libopenssl-fipsmodule', - 'opensslconfig': './deps/openssl/openssl/apps/openssl.cnf', + 'opensslconfig': './deps/openssl/nodejs-openssl.cnf', 'conditions': [ ['GENERATOR == "ninja"', { 'fipsmodule_internal': '<(PRODUCT_DIR)/lib/<(provider_name).so', @@ -383,7 +374,7 @@ }, { 'fipsmodule_internal': '<(PRODUCT_DIR)/obj.target/deps/openssl/<(provider_name).so', 'fipsmodule': '<(PRODUCT_DIR)/obj.target/deps/openssl/lib/openssl-modules/fips.so', - 'fipsconfig': '<(PRODUCT_DIR)/obj/deps/openssl/fipsmodule.cnf', + 'fipsconfig': '<(PRODUCT_DIR)/obj.target/deps/openssl/fipsmodule.cnf', 'opensslconfig_internal': '<(PRODUCT_DIR)/obj.target/deps/openssl/openssl.cnf', }], ], @@ -435,7 +426,7 @@ }, { 'variables': { 'opensslconfig_internal': '<(obj_dir)/deps/openssl/openssl.cnf', - 'opensslconfig': './deps/openssl/openssl/apps/openssl.cnf', + 'opensslconfig': './deps/openssl/nodejs-openssl.cnf', }, 'actions': [ { @@ -444,8 +435,8 @@ 'outputs': [ '<(opensslconfig_internal)', ], 'action': [ 'python', 'tools/copyfile.py', - './deps/openssl/openssl/apps/openssl.cnf', - '<(obj_dir)/deps/openssl/openssl.cnf', + '<(opensslconfig)', + '<(opensslconfig_internal)', ], }, ], @@ -531,6 +522,7 @@ 'src/node_report_module.cc', 'src/node_report_utils.cc', 'src/node_serdes.cc', + 'src/node_shadow_realm.cc', 'src/node_snapshotable.cc', 'src/node_sockaddr.cc', 'src/node_stat_watcher.cc', @@ -543,6 +535,7 @@ 'src/node_util.cc', 'src/node_v8.cc', 'src/node_wasi.cc', + 'src/node_wasm_web_api.cc', 'src/node_watchdog.cc', 'src/node_worker.cc', 'src/node_zlib.cc', @@ -571,8 +564,6 @@ 'src/aliased_buffer.h', 'src/aliased_struct.h', 'src/aliased_struct-inl.h', - 'src/allocated_buffer.h', - 'src/allocated_buffer-inl.h', 'src/async_wrap.h', 'src/async_wrap-inl.h', 'src/base_object.h', @@ -636,7 +627,9 @@ 'src/node_report.h', 'src/node_revert.h', 'src/node_root_certs.h', + 'src/node_shadow_realm.h', 'src/node_snapshotable.h', + 'src/node_snapshot_builder.h', 'src/node_sockaddr.h', 'src/node_sockaddr-inl.h', 'src/node_stat_watcher.h', @@ -718,7 +711,6 @@ [ 'node_shared=="true"', { 'sources': [ 'src/node_snapshot_stub.cc', - 'src/node_code_cache_stub.cc', ] }], [ 'node_shared=="true" and node_module_version!="" and OS!="win"', { @@ -728,6 +720,11 @@ '@rpath/lib<(node_core_target_name).<(shlib_suffix)' }, }], + [ 'node_use_node_code_cache=="true"', { + 'defines': [ + 'NODE_USE_NODE_CODE_CACHE=1', + ], + }], ['node_shared=="true" and OS=="aix"', { 'product_name': 'node_base', }], @@ -747,6 +744,7 @@ 'libraries': [ 'Dbghelp', 'Psapi', + 'Winmm', 'Ws2_32', ], }], @@ -1127,7 +1125,6 @@ ], 'sources': [ 'src/node_snapshot_stub.cc', - 'src/node_code_cache_stub.cc', 'test/fuzzers/fuzz_url.cc', ], 'conditions': [ @@ -1170,7 +1167,6 @@ ], 'sources': [ 'src/node_snapshot_stub.cc', - 'src/node_code_cache_stub.cc', 'test/fuzzers/fuzz_env.cc', ], 'conditions': [ @@ -1220,7 +1216,6 @@ 'sources': [ 'src/node_snapshot_stub.cc', - 'src/node_code_cache_stub.cc', 'test/cctest/node_test_fixture.cc', 'test/cctest/node_test_fixture.h', 'test/cctest/test_aliased_buffer.cc', @@ -1313,7 +1308,6 @@ 'sources': [ 'src/node_snapshot_stub.cc', - 'src/node_code_cache_stub.cc', 'test/embedding/embedtest.cc', ], @@ -1357,68 +1351,6 @@ }], ] }, # overlapped-checker - - # TODO(joyeecheung): do not depend on node_lib, - # instead create a smaller static library node_lib_base that does - # just enough for node_native_module.cc and the cache builder to - # compile without compiling the generated code cache C++ file. - # So generate_code_cache -> mkcodecache -> node_lib_base, - # node_lib -> node_lib_base & generate_code_cache - { - 'target_name': 'mkcodecache', - 'type': 'executable', - - 'dependencies': [ - '<(node_lib_target_name)', - 'deps/histogram/histogram.gyp:histogram', - 'deps/uvwasi/uvwasi.gyp:uvwasi', - ], - - 'includes': [ - 'node.gypi' - ], - - 'include_dirs': [ - 'src', - 'tools/msvs/genfiles', - 'deps/v8/include', - 'deps/cares/include', - 'deps/uv/include', - 'deps/uvwasi/include', - ], - - 'defines': [ - 'NODE_WANT_INTERNALS=1' - ], - 'sources': [ - 'src/node_snapshot_stub.cc', - 'src/node_code_cache_stub.cc', - 'tools/code_cache/mkcodecache.cc', - 'tools/code_cache/cache_builder.cc', - 'tools/code_cache/cache_builder.h', - ], - - 'conditions': [ - [ 'node_use_openssl=="true"', { - 'defines': [ - 'HAVE_OPENSSL=1', - ], - }], - ['v8_enable_inspector==1', { - 'defines': [ - 'HAVE_INSPECTOR=1', - ], - }], - ['OS=="win"', { - 'libraries': [ - 'dbghelp.lib', - 'PsApi.lib', - 'winmm.lib', - 'Ws2_32.lib', - ], - }], - ], - }, # mkcodecache { 'target_name': 'node_mksnapshot', 'type': 'executable', @@ -1446,7 +1378,6 @@ 'sources': [ 'src/node_snapshot_stub.cc', - 'src/node_code_cache_stub.cc', 'tools/snapshot/node_mksnapshot.cc', ], @@ -1456,6 +1387,11 @@ 'HAVE_OPENSSL=1', ], }], + [ 'node_use_node_code_cache=="true"', { + 'defines': [ + 'NODE_USE_NODE_CODE_CACHE=1', + ], + }], ['v8_enable_inspector==1', { 'defines': [ 'HAVE_INSPECTOR=1', @@ -1500,5 +1436,40 @@ }, ] }], # end aix section + ['OS=="win" and node_shared=="true"', { + 'targets': [ + { + 'target_name': 'gen_node_def', + 'type': 'executable', + 'sources': [ + 'tools/gen_node_def.cc' + ], + }, + { + 'target_name': 'generate_node_def', + 'dependencies': [ + 'gen_node_def', + '<(node_lib_target_name)', + ], + 'type': 'none', + 'actions': [ + { + 'action_name': 'generate_node_def_action', + 'inputs': [ + '<(PRODUCT_DIR)/<(node_lib_target_name).dll' + ], + 'outputs': [ + '<(PRODUCT_DIR)/<(node_core_target_name).def', + ], + 'action': [ + '<(PRODUCT_DIR)/gen_node_def.exe', + '<@(_inputs)', + '<@(_outputs)', + ], + }, + ], + }, + ], + }], # end win section ], # end conditions block } diff --git a/node.gypi b/node.gypi index e8aa664468ac1e..d24928df8b29c9 100644 --- a/node.gypi +++ b/node.gypi @@ -29,7 +29,7 @@ [ 'clang==1', { 'cflags': [ '-Werror=undefined-inline', ] }], - [ 'node_shared=="false" and "<(_type)"=="executable"', { + [ '"<(_type)"=="executable"', { 'msvs_settings': { 'VCManifestTool': { 'EmbedManifest': 'true', @@ -41,6 +41,19 @@ 'defines': [ 'NODE_SHARED_MODE', ], + 'conditions': [ + ['"<(_type)"=="executable"', { + 'defines': [ + 'USING_UV_SHARED', + 'USING_V8_SHARED', + 'BUILDING_NODE_EXTENSION' + ], + 'defines!': [ + 'BUILDING_V8_SHARED=1', + 'BUILDING_UV_SHARED=1' + ] + }], + ], }], [ 'OS=="win"', { 'defines!': [ diff --git a/onboarding.md b/onboarding.md index f17b24c50f15ba..861aebe7096b97 100644 --- a/onboarding.md +++ b/onboarding.md @@ -39,11 +39,11 @@ onboarding session. * Always create a branch in your own GitHub fork for pull requests * Branches in the `nodejs/node` repository are only for release lines * Add the canonical nodejs repository as `upstream` remote: - * `git remote add upstream git://github.com/nodejs/node.git` + * `git remote add upstream git@github.com:nodejs/node.git` * To update from `upstream`: - * `git checkout master` - * `git remote update -p` OR `git fetch --all` - * `git merge --ff-only upstream/master` (or `REMOTENAME/BRANCH`) + * `git checkout main` + * `git fetch upstream HEAD` + * `git reset --hard FETCH_HEAD` * Make a new branch for each pull request you submit. * Membership: Consider making your membership in the Node.js GitHub organization public. This makes it easier to identify collaborators. @@ -144,12 +144,12 @@ The project has a venue for real-time discussion: * Approving a change * Collaborators indicate that they have reviewed and approve of the changes in - a pull request using GitHub’s approval interface + a pull request using GitHub's approval interface * Some people like to comment `LGTM` (“Looks Good To Me”) - * You have the authority to approve any other collaborator’s work. + * You have the authority to approve any other collaborator's work. * You cannot approve your own pull requests. * When explicitly using `Changes requested`, show empathy – comments will - usually be addressed even if you don’t use it. + usually be addressed even if you don't use it. * If you do, it is nice if you are available later to check whether your comments have been addressed * If you see that the requested changes have been made, you can clear @@ -158,7 +158,7 @@ The project has a venue for real-time discussion: comments to block the pull request from landing. * What belongs in Node.js: - * Opinions vary – it’s good to have a broad collaborator base for that reason! + * Opinions vary – it's good to have a broad collaborator base for that reason! * If Node.js itself needs it (due to historical reasons), then it belongs in Node.js. * That is to say, `url` is there because of `http`, `freelist` is there @@ -203,9 +203,9 @@ needs to be pointed out separately during the onboarding. ## Exercise: Make a pull request adding yourself to the README * Example: - + * For raw commit message: - `git show --format=%B b58fe52692659c0bc25ddbe6afa7f4ae2c7f14a8` + `git show --format=%B 6669b3857f0f43ee0296eb7ac45086cd907b9e94` * Collaborators are in alphabetical order by GitHub username. * Optionally, include your personal pronouns. * Add the `Fixes: ` to the commit message diff --git a/src/README.md b/src/README.md index 623c3774971b6e..774614395afd40 100644 --- a/src/README.md +++ b/src/README.md @@ -1,6 +1,6 @@ # Node.js C++ codebase -Hi! 👋 You’ve found the C++ code backing Node.js. This README aims to help you +Hi! 👋 You've found the C++ code backing Node.js. This README aims to help you get started working on it and document some idioms you may encounter while doing so. @@ -20,9 +20,9 @@ V8 does not provide much public API documentation beyond what is available in its C++ header files, most importantly `v8.h`, which can be accessed online in the following locations: -* On GitHub: [`v8.h` in Node.js master][] -* On GitHub: [`v8.h` in V8 master][] -* On the Chromium project’s Code Search application: [`v8.h` in Code Search][] +* On GitHub: [`v8.h` in Node.js][] +* On GitHub: [`v8.h` in V8][] +* On the Chromium project's Code Search application: [`v8.h` in Code Search][] V8 also provides an [introduction for V8 embedders][], which can be useful for understanding some of the concepts it uses in its @@ -42,7 +42,7 @@ There is a [reference documentation for the libuv API][]. The Node.js C++ files follow this structure: -The `.h` header files contain declarations, and sometimes definitions that don’t +The `.h` header files contain declarations, and sometimes definitions that don't require including other headers (e.g. getters, setters, etc.). They should only include other `.h` header files and nothing else. @@ -272,7 +272,7 @@ Often, the `Context` is passed around for [exception handling][]. Typical ways of accessing the current `Context` in the Node.js code are: * Given an [`Isolate`][], using `isolate->GetCurrentContext()`. -* Given an [`Environment`][], using `env->context()` to get the `Environment`’s +* Given an [`Environment`][], using `env->context()` to get the `Environment`'s main context. @@ -288,7 +288,7 @@ The current event loop can be accessed using `env->event_loop()` given an [`Environment`][] instance. The restriction of using a single event loop is not inherent to the design of Node.js, and a sufficiently committed person could restructure Node.js to provide e.g. the ability to run parts of Node.js -inside an event loop separate from the active thread’s event loop. +inside an event loop separate from the active thread's event loop. @@ -351,7 +351,7 @@ The platform can be accessed through `isolate_data->platform()` given an * The current Node.js instance was not started by an embedder; or * The current Node.js instance was started by an embedder whose `v8::Platform` - implementation also implement’s the `node::MultiIsolatePlatform` interface + implementation also implement's the `node::MultiIsolatePlatform` interface and who passed this to Node.js. @@ -419,7 +419,7 @@ void Initialize(Local target, } // Run the `Initialize` function when loading this module through -// `internalBinding('cares_wrap')` in Node.js’s built-in JavaScript code: +// `internalBinding('cares_wrap')` in Node.js's built-in JavaScript code: NODE_MODULE_CONTEXT_AWARE_INTERNAL(cares_wrap, Initialize) ``` @@ -484,7 +484,7 @@ That object is always a [`BaseObject`][]. Its class needs to have a static `type_name` field based on a constant string, in order to disambiguate it from other classes of this type, -and which could e.g. match the binding’s name (in the example above, that would +and which could e.g. match the binding's name (in the example above, that would be `cares_wrap`). ```cpp @@ -556,7 +556,7 @@ the process otherwise. `maybe.FromJust()` (aka `maybe.ToChecked()`) can be used to access the value and crash the process if it is not set. This should only be performed if it is actually sure that the operation has -not failed. A lot of Node.js’s source code does **not** follow this rule, and +not failed. A lot of the Node.js source code does **not** follow this rule, and can be brought to crash through this. In particular, it is often not safe to assume that an operation does not throw @@ -621,18 +621,18 @@ v8::Maybe SumNumbers(v8::Local context, v8::Local entry; if (array_of_integers->Get(context, i).ToLocal(&entry)) { // Oops, we might have hit a getter that throws an exception! - // It’s better to not continue return an empty (“nothing”) Maybe. + // It's better to not continue return an empty (“nothing”) Maybe. return v8::Nothing(); } if (!entry->IsNumber()) { - // Let’s just skip any non-numbers. It would also be reasonable to throw + // Let's just skip any non-numbers. It would also be reasonable to throw // an exception here, e.g. using the error system in src/node_errors.h, // and then to return an empty Maybe again. continue; } - // This cast is valid, because we’ve made sure it’s really a number. + // This cast is valid, because we've made sure it's really a number. v8::Local entry_as_number = entry.As(); sum += entry_as_number->Value(); @@ -643,7 +643,7 @@ v8::Maybe SumNumbers(v8::Local context, // Function that is exposed to JS: void SumNumbers(const v8::FunctionCallbackInfo& args) { - // This will crash if the first argument is not an array. Let’s assume we + // This will crash if the first argument is not an array. Let's assume we // have performed type checking in a JavaScript wrapper function. CHECK(args[0]->IsArray()); @@ -859,7 +859,7 @@ this information is provided to async tracking tools. The `AsyncWrap` class has a set of methods called `MakeCallback()`, with the intention of the naming being that it is used to “make calls back into JavaScript” from the event loop, rather than making callbacks in some way. -(As the naming has made its way into Node.js’s public API, it’s not worth +(As the naming has made its way into the Node.js public API, it's not worth the breakage of fixing it). `MakeCallback()` generally calls a method on the JavaScript object associated @@ -936,7 +936,7 @@ classes provide the same facilities as [`MakeCallback()`][], namely: Usually, using `AsyncWrap::MakeCallback()` or using the constructor taking an `AsyncWrap*` argument (i.e. used as -`InternalCallbackScope callback_scope(this);`) suffices inside of Node.js’s +`InternalCallbackScope callback_scope(this);`) suffices inside of the Node.js C++ codebase. ## C++ utilities @@ -1047,8 +1047,8 @@ static void GetUserInfo(const FunctionCallbackInfo& args) { [`req_wrap.h`]: req_wrap.h [`util.h`]: util.h [`v8.h` in Code Search]: https://cs.chromium.org/chromium/src/v8/include/v8.h -[`v8.h` in Node.js master]: https://github.com/nodejs/node/blob/master/deps/v8/include/v8.h -[`v8.h` in V8 master]: https://github.com/v8/v8/blob/master/include/v8.h +[`v8.h` in Node.js]: https://github.com/nodejs/node/blob/HEAD/deps/v8/include/v8.h +[`v8.h` in V8]: https://github.com/v8/v8/blob/HEAD/include/v8.h [`vm` module]: https://nodejs.org/api/vm.html [binding function]: #binding-functions [cleanup hooks]: #cleanup-hooks diff --git a/src/allocated_buffer-inl.h b/src/allocated_buffer-inl.h deleted file mode 100644 index 2dee6f09a3e9d4..00000000000000 --- a/src/allocated_buffer-inl.h +++ /dev/null @@ -1,110 +0,0 @@ -#ifndef SRC_ALLOCATED_BUFFER_INL_H_ -#define SRC_ALLOCATED_BUFFER_INL_H_ - -#include "allocated_buffer.h" -#include "base_object-inl.h" -#include "node_buffer.h" -#include "env-inl.h" -#include "uv.h" -#include "v8.h" -#include "util-inl.h" -#include "node_internals.h" - -namespace node { - -// It's a bit awkward to define this Buffer::New() overload here, but it -// avoids a circular dependency with node_internals.h. -namespace Buffer { -v8::MaybeLocal New(Environment* env, - v8::Local ab, - size_t byte_offset, - size_t length); -} - -NoArrayBufferZeroFillScope::NoArrayBufferZeroFillScope( - IsolateData* isolate_data) - : node_allocator_(isolate_data->node_allocator()) { - if (node_allocator_ != nullptr) node_allocator_->zero_fill_field()[0] = 0; -} - -NoArrayBufferZeroFillScope::~NoArrayBufferZeroFillScope() { - if (node_allocator_ != nullptr) node_allocator_->zero_fill_field()[0] = 1; -} - -AllocatedBuffer AllocatedBuffer::AllocateManaged( - Environment* env, - size_t size) { - NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data()); - std::unique_ptr bs = - v8::ArrayBuffer::NewBackingStore(env->isolate(), size); - return AllocatedBuffer(env, std::move(bs)); -} - -AllocatedBuffer::AllocatedBuffer( - Environment* env, std::unique_ptr bs) - : env_(env), backing_store_(std::move(bs)) {} - -AllocatedBuffer::AllocatedBuffer( - Environment* env, uv_buf_t buffer) - : env_(env) { - if (buffer.base == nullptr) return; - auto map = env->released_allocated_buffers(); - auto it = map->find(buffer.base); - CHECK_NE(it, map->end()); - backing_store_ = std::move(it->second); - map->erase(it); -} - -void AllocatedBuffer::Resize(size_t len) { - if (len == 0) { - backing_store_ = v8::ArrayBuffer::NewBackingStore(env_->isolate(), 0); - return; - } - NoArrayBufferZeroFillScope no_zero_fill_scope(env_->isolate_data()); - backing_store_ = v8::BackingStore::Reallocate( - env_->isolate(), std::move(backing_store_), len); -} - -uv_buf_t AllocatedBuffer::release() { - if (data() == nullptr) return uv_buf_init(nullptr, 0); - - CHECK_NOT_NULL(env_); - uv_buf_t ret = uv_buf_init(data(), size()); - env_->released_allocated_buffers()->emplace( - ret.base, std::move(backing_store_)); - return ret; -} - -char* AllocatedBuffer::data() { - if (!backing_store_) return nullptr; - return static_cast(backing_store_->Data()); -} - -const char* AllocatedBuffer::data() const { - if (!backing_store_) return nullptr; - return static_cast(backing_store_->Data()); -} - - -size_t AllocatedBuffer::size() const { - if (!backing_store_) return 0; - return backing_store_->ByteLength(); -} - -void AllocatedBuffer::clear() { - backing_store_.reset(); -} - -v8::MaybeLocal AllocatedBuffer::ToBuffer() { - v8::Local ab = ToArrayBuffer(); - return Buffer::New(env_, ab, 0, ab->ByteLength()) - .FromMaybe(v8::Local()); -} - -v8::Local AllocatedBuffer::ToArrayBuffer() { - return v8::ArrayBuffer::New(env_->isolate(), std::move(backing_store_)); -} - -} // namespace node - -#endif // SRC_ALLOCATED_BUFFER_INL_H_ diff --git a/src/allocated_buffer.h b/src/allocated_buffer.h deleted file mode 100644 index 9cf41bffdc19dc..00000000000000 --- a/src/allocated_buffer.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef SRC_ALLOCATED_BUFFER_H_ -#define SRC_ALLOCATED_BUFFER_H_ - -#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS - -#include "base_object.h" -#include "uv.h" -#include "v8.h" -#include "env.h" - -namespace node { - -class Environment; - -// Disables zero-filling for ArrayBuffer allocations in this scope. This is -// similar to how we implement Buffer.allocUnsafe() in JS land. -class NoArrayBufferZeroFillScope{ - public: - inline explicit NoArrayBufferZeroFillScope(IsolateData* isolate_data); - inline ~NoArrayBufferZeroFillScope(); - - private: - NodeArrayBufferAllocator* node_allocator_; - - friend class Environment; -}; - -// A unique-pointer-ish object that is compatible with the JS engine's -// ArrayBuffer::Allocator. -// TODO(addaleax): We may want to start phasing this out as it's only a -// thin wrapper around v8::BackingStore at this point -struct AllocatedBuffer { - public: - // Utilities that allocate memory using the Isolate's ArrayBuffer::Allocator. - // In particular, using AllocateManaged() will provide a RAII-style object - // with easy conversion to `Buffer` and `ArrayBuffer` objects. - inline static AllocatedBuffer AllocateManaged(Environment* env, size_t size); - - AllocatedBuffer() = default; - inline AllocatedBuffer( - Environment* env, std::unique_ptr bs); - // For this constructor variant, `buffer` *must* come from an earlier call - // to .release - inline AllocatedBuffer(Environment* env, uv_buf_t buffer); - - inline void Resize(size_t len); - - inline uv_buf_t release(); - inline char* data(); - inline const char* data() const; - inline size_t size() const; - inline void clear(); - - inline v8::MaybeLocal ToBuffer(); - inline v8::Local ToArrayBuffer(); - - AllocatedBuffer(AllocatedBuffer&& other) = default; - AllocatedBuffer& operator=(AllocatedBuffer&& other) = default; - AllocatedBuffer(const AllocatedBuffer& other) = delete; - AllocatedBuffer& operator=(const AllocatedBuffer& other) = delete; - - private: - Environment* env_ = nullptr; - std::unique_ptr backing_store_; - - friend class Environment; -}; - -} // namespace node - -#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS - -#endif // SRC_ALLOCATED_BUFFER_H_ diff --git a/src/api/embed_helpers.cc b/src/api/embed_helpers.cc index 8e2fc67695b875..bd0459f20b1b3e 100644 --- a/src/api/embed_helpers.cc +++ b/src/api/embed_helpers.cc @@ -3,6 +3,7 @@ #include "debug_utils-inl.h" using v8::Context; +using v8::Function; using v8::Global; using v8::HandleScope; using v8::Isolate; @@ -44,6 +45,13 @@ Maybe SpinEventLoop(Environment* env) { if (EmitProcessBeforeExit(env).IsNothing()) break; + { + HandleScope handle_scope(isolate); + if (env->RunSnapshotSerializeCallback().IsEmpty()) { + break; + } + } + // Emit `beforeExit` if the loop became alive either after emitting // event, or after running some callbacks. more = uv_loop_alive(env->event_loop()); @@ -54,6 +62,11 @@ Maybe SpinEventLoop(Environment* env) { if (env->is_stopping()) return Nothing(); env->set_trace_sync_io(false); + // Clear the serialize callback even though the JS-land queue should + // be empty this point so that the deserialized instance won't + // attempt to call into JS again. + env->set_snapshot_serialize_callback(Local()); + env->PrintInfoForSnapshotIfDebug(); env->VerifyNoStrongBaseObjects(); return EmitProcessExit(env); diff --git a/src/api/environment.cc b/src/api/environment.cc index 97261256858403..ccdcdefb20fe84 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -3,8 +3,11 @@ #include "node_errors.h" #include "node_internals.h" #include "node_native_module_env.h" +#include "node_options-inl.h" #include "node_platform.h" +#include "node_shadow_realm.h" #include "node_v8_platform-inl.h" +#include "node_wasm_web_api.h" #include "uv.h" #if HAVE_INSPECTOR @@ -252,6 +255,19 @@ void SetIsolateMiscHandlers(v8::Isolate* isolate, const IsolateSettings& s) { s.allow_wasm_code_generation_callback : AllowWasmCodeGenerationCallback; isolate->SetAllowWasmCodeGenerationCallback(allow_wasm_codegen_cb); + Mutex::ScopedLock lock(node::per_process::cli_options_mutex); + if (per_process::cli_options->get_per_isolate_options() + ->get_per_env_options() + ->experimental_fetch) { + isolate->SetWasmStreamingCallback(wasm_web_api::StartStreamingCompilation); + } + + if (per_process::cli_options->get_per_isolate_options() + ->experimental_shadow_realm) { + isolate->SetHostCreateShadowRealmContextCallback( + shadow_realm::HostCreateShadowRealmContextCallback); + } + if ((s.flags & SHOULD_NOT_SET_PROMISE_REJECTION_CALLBACK) == 0) { auto* promise_reject_cb = s.promise_reject_callback ? s.promise_reject_callback : PromiseRejectCallback; diff --git a/src/api/hooks.cc b/src/api/hooks.cc index 4076a5523e0f34..bd26e6d150d53e 100644 --- a/src/api/hooks.cc +++ b/src/api/hooks.cc @@ -32,8 +32,7 @@ void EmitBeforeExit(Environment* env) { } Maybe EmitProcessBeforeExit(Environment* env) { - TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), - "BeforeExit", env); + TRACE_EVENT0(TRACING_CATEGORY_NODE1(environment), "BeforeExit"); if (!env->destroy_async_id_list()->empty()) AsyncWrap::DestroyAsyncIdsCallback(env); diff --git a/src/crypto/README.md b/src/crypto/README.md index 8ebc3003da3150..22d4954b464ff0 100644 --- a/src/crypto/README.md +++ b/src/crypto/README.md @@ -112,17 +112,6 @@ their underlying data pointers. It is used extensively through `src/crypto` to make it easier to deal with inputs that allow any `ArrayBuffer`-backed object. -### `AllocatedBuffer` - -The `AllocatedBuffer` utility is defined in `allocated_buffer.h` and is not -specific to `src/crypto`. It is used extensively within `src/crypto` to hold -allocated data that is intended to be output in response to various -crypto functions (generated hash values, or ciphertext, for instance). - -_Currently, we are working to transition away from using `AllocatedBuffer` -to directly using the `v8::BackingStore` API. This will take some time. -New uses of `AllocatedBuffer` should be avoided if possible._ - ### Key objects Most crypto operations involve the use of keys -- cryptographic inputs @@ -312,12 +301,12 @@ crypto.randomFill(buf, (err, buf) => { For the legacy Node.js crypto API, asynchronous single-call operations use the traditional Node.js callback pattern, as illustrated in the previous `randomFill()` example. In the -Web Crypto API (accessible via `require('crypto').webcrypto`), +Web Crypto API (accessible via `require('node:crypto').webcrypto`), all asynchronous single-call operations are Promise-based. ```js // Example Web Crypto API asynchronous single-call operation -const { subtle } = require('crypto').webcrypto; +const { subtle } = require('node:crypto').webcrypto; subtle.generateKeys({ name: 'HMAC', length: 256 }, true, ['sign']) .then((key) => { diff --git a/src/crypto/crypto_aes.cc b/src/crypto/crypto_aes.cc index e6a6c77cba2771..5f84e21fc23763 100644 --- a/src/crypto/crypto_aes.cc +++ b/src/crypto/crypto_aes.cc @@ -1,10 +1,9 @@ #include "crypto/crypto_aes.h" +#include "async_wrap-inl.h" +#include "base_object-inl.h" #include "crypto/crypto_cipher.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_util.h" -#include "allocated_buffer-inl.h" -#include "async_wrap-inl.h" -#include "base_object-inl.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "threadpoolwork-inl.h" @@ -30,7 +29,7 @@ namespace crypto { namespace { // Implements general AES encryption and decryption for CBC // The key_data must be a secret key. -// On success, this function sets out to a new AllocatedBuffer +// On success, this function sets out to a new ByteSource // instance containing the results and returns WebCryptoCipherStatus::OK. WebCryptoCipherStatus AES_Cipher( Environment* env, @@ -90,11 +89,10 @@ WebCryptoCipherStatus AES_Cipher( case kWebCryptoCipherDecrypt: // If in decrypt mode, the auth tag must be set in the params.tag. CHECK(params.tag); - if (!EVP_CIPHER_CTX_ctrl( - ctx.get(), - EVP_CTRL_AEAD_SET_TAG, - params.tag.size(), - const_cast(params.tag.get()))) { + if (!EVP_CIPHER_CTX_ctrl(ctx.get(), + EVP_CTRL_AEAD_SET_TAG, + params.tag.size(), + const_cast(params.tag.data()))) { return WebCryptoCipherStatus::FAILED; } break; @@ -126,9 +124,7 @@ WebCryptoCipherStatus AES_Cipher( return WebCryptoCipherStatus::FAILED; } - char* data = MallocOpenSSL(buf_len); - ByteSource buf = ByteSource::Allocated(data, buf_len); - unsigned char* ptr = reinterpret_cast(data); + ByteSource::Builder buf(buf_len); // In some outdated version of OpenSSL (e.g. // ubi81_sharedlibs_openssl111fips_x64) may be used in sharedlib mode, the @@ -140,20 +136,19 @@ WebCryptoCipherStatus AES_Cipher( // Refs: https://github.com/nodejs/node/pull/38913#issuecomment-866505244 if (in.size() == 0) { out_len = 0; - } else if (!EVP_CipherUpdate( - ctx.get(), - ptr, - &out_len, - in.data(), - in.size())) { + } else if (!EVP_CipherUpdate(ctx.get(), + buf.data(), + &out_len, + in.data(), + in.size())) { return WebCryptoCipherStatus::FAILED; } total += out_len; CHECK_LE(out_len, buf_len); - ptr += out_len; out_len = EVP_CIPHER_CTX_block_size(ctx.get()); - if (!EVP_CipherFinal_ex(ctx.get(), ptr, &out_len)) { + if (!EVP_CipherFinal_ex( + ctx.get(), buf.data() + total, &out_len)) { return WebCryptoCipherStatus::FAILED; } total += out_len; @@ -161,15 +156,16 @@ WebCryptoCipherStatus AES_Cipher( // If using AES_GCM, grab the generated auth tag and append // it to the end of the ciphertext. if (cipher_mode == kWebCryptoCipherEncrypt && mode == EVP_CIPH_GCM_MODE) { - data += out_len; - if (!EVP_CIPHER_CTX_ctrl(ctx.get(), EVP_CTRL_AEAD_GET_TAG, tag_len, ptr)) + if (!EVP_CIPHER_CTX_ctrl(ctx.get(), + EVP_CTRL_AEAD_GET_TAG, + tag_len, + buf.data() + total)) return WebCryptoCipherStatus::FAILED; total += tag_len; } // It's possible that we haven't used the full allocated space. Size down. - buf.Resize(total); - *out = std::move(buf); + *out = std::move(buf).release(total); return WebCryptoCipherStatus::OK; } @@ -296,24 +292,20 @@ WebCryptoCipherStatus AES_CTR_Cipher( return WebCryptoCipherStatus::FAILED; } - // Output size is identical to the input size - char* data = MallocOpenSSL(in.size()); - ByteSource buf = ByteSource::Allocated(data, in.size()); - unsigned char* ptr = reinterpret_cast(data); + // Output size is identical to the input size. + ByteSource::Builder buf(in.size()); // Also just like in chromium's implementation, if we can process // the input without wrapping the counter, we'll do it as a single // call here. If we can't, we'll fallback to the a two-step approach if (BN_cmp(remaining_until_reset.get(), num_output.get()) >= 0) { - auto status = AES_CTR_Cipher2( - key_data, - cipher_mode, - params, - in, - params.iv.data(), - ptr); - if (status == WebCryptoCipherStatus::OK) - *out = std::move(buf); + auto status = AES_CTR_Cipher2(key_data, + cipher_mode, + params, + in, + params.iv.data(), + buf.data()); + if (status == WebCryptoCipherStatus::OK) *out = std::move(buf).release(); return status; } @@ -321,13 +313,13 @@ WebCryptoCipherStatus AES_CTR_Cipher( BN_ULONG input_size_part1 = blocks_part1 * kAesBlockSize; // Encrypt the first part... - auto status = AES_CTR_Cipher2( - key_data, - cipher_mode, - params, - ByteSource::Foreign(in.get(), input_size_part1), - params.iv.data(), - ptr); + auto status = + AES_CTR_Cipher2(key_data, + cipher_mode, + params, + ByteSource::Foreign(in.data(), input_size_part1), + params.iv.data(), + buf.data()); if (status != WebCryptoCipherStatus::OK) return status; @@ -336,18 +328,16 @@ WebCryptoCipherStatus AES_CTR_Cipher( std::vector new_counter_block = BlockWithZeroedCounter(params); // Encrypt the second part... - status = AES_CTR_Cipher2( - key_data, - cipher_mode, - params, - ByteSource::Foreign( - in.get() + input_size_part1, - in.size() - input_size_part1), - new_counter_block.data(), - ptr + input_size_part1); - - if (status == WebCryptoCipherStatus::OK) - *out = std::move(buf); + status = + AES_CTR_Cipher2(key_data, + cipher_mode, + params, + ByteSource::Foreign(in.data() + input_size_part1, + in.size() - input_size_part1), + new_counter_block.data(), + buf.data() + input_size_part1); + + if (status == WebCryptoCipherStatus::OK) *out = std::move(buf).release(); return status; } diff --git a/src/crypto/crypto_aes.h b/src/crypto/crypto_aes.h index 3ffe04766cc339..9dfa5edc6544e7 100644 --- a/src/crypto/crypto_aes.h +++ b/src/crypto/crypto_aes.h @@ -6,7 +6,6 @@ #include "crypto/crypto_cipher.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_util.h" -#include "allocated_buffer.h" #include "env.h" #include "v8.h" diff --git a/src/crypto/crypto_bio.cc b/src/crypto/crypto_bio.cc index 13793aa7f2ed65..25ea640ad83077 100644 --- a/src/crypto/crypto_bio.cc +++ b/src/crypto/crypto_bio.cc @@ -22,7 +22,6 @@ #include "crypto/crypto_bio.h" #include "base_object-inl.h" #include "memory_tracker-inl.h" -#include "allocated_buffer-inl.h" #include "util-inl.h" #include diff --git a/src/crypto/crypto_cipher.cc b/src/crypto/crypto_cipher.cc index f65b7c41bd996d..6c663a2b21d0a2 100644 --- a/src/crypto/crypto_cipher.cc +++ b/src/crypto/crypto_cipher.cc @@ -1,7 +1,6 @@ #include "crypto/crypto_cipher.h" -#include "crypto/crypto_util.h" -#include "allocated_buffer-inl.h" #include "base_object-inl.h" +#include "crypto/crypto_util.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "node_buffer.h" @@ -197,10 +196,14 @@ void CipherBase::GetSSLCiphers(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); SSLCtxPointer ctx(SSL_CTX_new(TLS_method())); - CHECK(ctx); + if (!ctx) { + return ThrowCryptoError(env, ERR_get_error(), "SSL_CTX_new"); + } SSLPointer ssl(SSL_new(ctx.get())); - CHECK(ssl); + if (!ssl) { + return ThrowCryptoError(env, ERR_get_error(), "SSL_new"); + } STACK_OF(SSL_CIPHER)* ciphers = SSL_get_ciphers(ssl.get()); diff --git a/src/crypto/crypto_common.cc b/src/crypto/crypto_common.cc index 0d59bac387e839..3341859e04c890 100644 --- a/src/crypto/crypto_common.cc +++ b/src/crypto/crypto_common.cc @@ -1,4 +1,3 @@ -#include "allocated_buffer-inl.h" #include "base_object-inl.h" #include "env-inl.h" #include "node_buffer.h" @@ -53,13 +52,18 @@ static constexpr int kX509NameFlagsRFC2253WithinUtf8JSON = ~ASN1_STRFLGS_ESC_MSB & ~ASN1_STRFLGS_ESC_CTRL; -bool SSL_CTX_get_issuer(SSL_CTX* ctx, X509* cert, X509** issuer) { +X509Pointer SSL_CTX_get_issuer(SSL_CTX* ctx, X509* cert) { X509_STORE* store = SSL_CTX_get_cert_store(ctx); DeleteFnPtr store_ctx( X509_STORE_CTX_new()); - return store_ctx.get() != nullptr && - X509_STORE_CTX_init(store_ctx.get(), store, nullptr, nullptr) == 1 && - X509_STORE_CTX_get1_issuer(issuer, store_ctx.get(), cert) == 1; + X509Pointer result; + X509* issuer; + if (store_ctx.get() != nullptr && + X509_STORE_CTX_init(store_ctx.get(), store, nullptr, nullptr) == 1 && + X509_STORE_CTX_get1_issuer(&issuer, store_ctx.get(), cert) == 1) { + result.reset(issuer); + } + return result; } void LogSecret( @@ -150,7 +154,7 @@ long VerifyPeerCertificate( // NOLINT(runtime/int) bool UseSNIContext( const SSLPointer& ssl, BaseObjectPtr context) { - SSL_CTX* ctx = context->ctx_.get(); + SSL_CTX* ctx = context->ctx().get(); X509* x509 = SSL_CTX_get0_certificate(ctx); EVP_PKEY* pkey = SSL_CTX_get0_privatekey(ctx); STACK_OF(X509)* chain; @@ -214,7 +218,7 @@ const char* GetServerName(SSL* ssl) { } bool SetGroups(SecureContext* sc, const char* groups) { - return SSL_CTX_set1_groups_list(**sc, groups) == 1; + return SSL_CTX_set1_groups_list(sc->ctx().get(), groups) == 1; } const char* X509ErrorCode(long err) { // NOLINT(runtime/int) @@ -310,28 +314,17 @@ bool Set( return !target->Set(context, name, value).IsNothing(); } -MaybeLocal GetCipherValue(Environment* env, - const SSL_CIPHER* cipher, - const char* (*getstr)(const SSL_CIPHER* cipher)) { +template +MaybeLocal GetCipherValue(Environment* env, const SSL_CIPHER* cipher) { if (cipher == nullptr) return Undefined(env->isolate()); return OneByteString(env->isolate(), getstr(cipher)); } -MaybeLocal GetCipherName(Environment* env, const SSL_CIPHER* cipher) { - return GetCipherValue(env, cipher, SSL_CIPHER_get_name); -} - -MaybeLocal GetCipherStandardName( - Environment* env, - const SSL_CIPHER* cipher) { - return GetCipherValue(env, cipher, SSL_CIPHER_standard_name); -} - -MaybeLocal GetCipherVersion(Environment* env, const SSL_CIPHER* cipher) { - return GetCipherValue(env, cipher, SSL_CIPHER_get_version); -} +constexpr auto GetCipherName = GetCipherValue; +constexpr auto GetCipherStandardName = GetCipherValue; +constexpr auto GetCipherVersion = GetCipherValue; StackOfX509 CloneSSLCerts(X509Pointer&& cert, const STACK_OF(X509)* const ssl_certs) { @@ -391,12 +384,12 @@ MaybeLocal GetLastIssuedCert( Environment* const env) { Local context = env->isolate()->GetCurrentContext(); while (X509_check_issued(cert->get(), cert->get()) != X509_V_OK) { - X509* ca; - if (SSL_CTX_get_issuer(SSL_get_SSL_CTX(ssl.get()), cert->get(), &ca) <= 0) + X509Pointer ca; + if (!(ca = SSL_CTX_get_issuer(SSL_get_SSL_CTX(ssl.get()), cert->get()))) break; Local ca_info; - MaybeLocal maybe_ca_info = X509ToObject(env, ca); + MaybeLocal maybe_ca_info = X509ToObject(env, ca.get()); if (!maybe_ca_info.ToLocal(&ca_info)) return MaybeLocal(); @@ -404,16 +397,14 @@ MaybeLocal GetLastIssuedCert( return MaybeLocal(); issuer_chain = ca_info; - // Take the value of cert->get() before the call to cert->reset() - // in order to compare it to ca after and provide a way to exit this loop - // in case it gets stuck. - X509* value_before_reset = cert->get(); + // For self-signed certificates whose keyUsage field does not include + // keyCertSign, X509_check_issued() will return false. Avoid going into an + // infinite loop by checking if SSL_CTX_get_issuer() returned the same + // certificate. + if (cert->get() == ca.get()) break; // Delete previous cert and continue aggregating issuers. - cert->reset(ca); - - if (value_before_reset == ca) - break; + *cert = std::move(ca); } return MaybeLocal(issuer_chain); } @@ -534,8 +525,7 @@ MaybeLocal GetSerialNumber(Environment* env, X509* cert) { if (bn) { char* data = BN_bn2hex(bn.get()); ByteSource buf = ByteSource::Allocated(data, strlen(data)); - if (buf) - return OneByteString(env->isolate(), buf.get()); + if (buf) return OneByteString(env->isolate(), buf.data()); } } @@ -1050,18 +1040,10 @@ static MaybeLocal GetX509NameObject(Environment* env, X509* cert) { return result; } -MaybeLocal GetCipherName(Environment* env, const SSLPointer& ssl) { - return GetCipherName(env, SSL_get_current_cipher(ssl.get())); -} - -MaybeLocal GetCipherStandardName( - Environment* env, - const SSLPointer& ssl) { - return GetCipherStandardName(env, SSL_get_current_cipher(ssl.get())); -} - -MaybeLocal GetCipherVersion(Environment* env, const SSLPointer& ssl) { - return GetCipherVersion(env, SSL_get_current_cipher(ssl.get())); +template (*Get)(Environment* env, const SSL_CIPHER* cipher)> +MaybeLocal GetCurrentCipherValue(Environment* env, + const SSLPointer& ssl) { + return Get(env, SSL_get_current_cipher(ssl.get())); } MaybeLocal GetClientHelloCiphers( @@ -1107,15 +1089,15 @@ MaybeLocal GetCipherInfo(Environment* env, const SSLPointer& ssl) { if (!Set(env->context(), info, env->name_string(), - GetCipherName(env, ssl)) || + GetCurrentCipherValue(env, ssl)) || !Set(env->context(), info, env->standard_name_string(), - GetCipherStandardName(env, ssl)) || + GetCurrentCipherValue(env, ssl)) || !Set(env->context(), info, env->version_string(), - GetCipherVersion(env, ssl))) { + GetCurrentCipherValue(env, ssl))) { return MaybeLocal(); } diff --git a/src/crypto/crypto_common.h b/src/crypto/crypto_common.h index 5a6869c6ca8845..792760e9707328 100644 --- a/src/crypto/crypto_common.h +++ b/src/crypto/crypto_common.h @@ -25,7 +25,7 @@ struct StackOfXASN1Deleter { }; using StackOfASN1 = std::unique_ptr; -bool SSL_CTX_get_issuer(SSL_CTX* ctx, X509* cert, X509** issuer); +X509Pointer SSL_CTX_get_issuer(SSL_CTX* ctx, X509* cert); void LogSecret( const SSLPointer& ssl, @@ -74,18 +74,6 @@ v8::MaybeLocal GetValidationErrorCode(Environment* env, int err); v8::MaybeLocal GetCert(Environment* env, const SSLPointer& ssl); -v8::MaybeLocal GetCipherName( - Environment* env, - const SSLPointer& ssl); - -v8::MaybeLocal GetCipherStandardName( - Environment* env, - const SSLPointer& ssl); - -v8::MaybeLocal GetCipherVersion( - Environment* env, - const SSLPointer& ssl); - v8::MaybeLocal GetCipherInfo( Environment* env, const SSLPointer& ssl); diff --git a/src/crypto/crypto_context.cc b/src/crypto/crypto_context.cc index 739b559c3b7b22..e2291f72b6622f 100644 --- a/src/crypto/crypto_context.cc +++ b/src/crypto/crypto_context.cc @@ -110,21 +110,21 @@ int SSL_CTX_use_certificate_chain(SSL_CTX* ctx, // Try getting issuer from a cert store if (ret) { if (issuer == nullptr) { - ret = SSL_CTX_get_issuer(ctx, x.get(), &issuer); - ret = ret < 0 ? 0 : 1; + // TODO(tniessen): SSL_CTX_get_issuer does not allow the caller to + // distinguish between a failed operation and an empty result. Fix that + // and then handle the potential error properly here (set ret to 0). + *issuer_ = SSL_CTX_get_issuer(ctx, x.get()); // NOTE: get_cert_store doesn't increment reference count, // no need to free `store` } else { // Increment issuer reference count - issuer = X509_dup(issuer); - if (issuer == nullptr) { + issuer_->reset(X509_dup(issuer)); + if (!*issuer_) { ret = 0; } } } - issuer_->reset(issuer); - if (ret && x != nullptr) { cert->reset(X509_dup(x.get())); if (!*cert) @@ -508,6 +508,9 @@ void SecureContext::Init(const FunctionCallbackInfo& args) { } sc->ctx_.reset(SSL_CTX_new(method)); + if (!sc->ctx_) { + return ThrowCryptoError(env, ERR_get_error(), "SSL_CTX_new"); + } SSL_CTX_set_app_data(sc->ctx_.get(), sc); // Disable SSLv2 in the case when method == TLS_method() and the diff --git a/src/crypto/crypto_context.h b/src/crypto/crypto_context.h index d9b33a4736f13a..ee2df97ac21411 100644 --- a/src/crypto/crypto_context.h +++ b/src/crypto/crypto_context.h @@ -41,9 +41,7 @@ class SecureContext final : public BaseObject { static void RegisterExternalReferences(ExternalReferenceRegistry* registry); static SecureContext* Create(Environment* env); - SSL_CTX* operator*() const { return ctx_.get(); } - - SSL_CTX* ssl_ctx() const { return ctx_.get(); } + const SSLCtxPointer& ctx() const { return ctx_; } SSLPointer CreateSSL(); @@ -57,14 +55,6 @@ class SecureContext final : public BaseObject { SET_MEMORY_INFO_NAME(SecureContext) SET_SELF_SIZE(SecureContext) - SSLCtxPointer ctx_; - X509Pointer cert_; - X509Pointer issuer_; -#ifndef OPENSSL_NO_ENGINE - bool client_cert_engine_provided_ = false; - EnginePointer private_key_engine_; -#endif // !OPENSSL_NO_ENGINE - static const int kMaxSessionSize = 10 * 1024; // See TicketKeyCallback @@ -74,10 +64,6 @@ class SecureContext final : public BaseObject { static const int kTicketKeyNameIndex = 3; static const int kTicketKeyIVIndex = 4; - unsigned char ticket_key_name_[16]; - unsigned char ticket_key_aes_[16]; - unsigned char ticket_key_hmac_[16]; - protected: // OpenSSL structures are opaque. This is sizeof(SSL_CTX) for OpenSSL 1.1.1b: static const int64_t kExternalSize = 1024; @@ -139,6 +125,19 @@ class SecureContext final : public BaseObject { SecureContext(Environment* env, v8::Local wrap); void Reset(); + + private: + SSLCtxPointer ctx_; + X509Pointer cert_; + X509Pointer issuer_; +#ifndef OPENSSL_NO_ENGINE + bool client_cert_engine_provided_ = false; + EnginePointer private_key_engine_; +#endif // !OPENSSL_NO_ENGINE + + unsigned char ticket_key_name_[16]; + unsigned char ticket_key_aes_[16]; + unsigned char ticket_key_hmac_[16]; }; } // namespace crypto diff --git a/src/crypto/crypto_dh.cc b/src/crypto/crypto_dh.cc index 702c5e083f8f80..faadb97fa4cc85 100644 --- a/src/crypto/crypto_dh.cc +++ b/src/crypto/crypto_dh.cc @@ -1,9 +1,8 @@ #include "crypto/crypto_dh.h" -#include "crypto/crypto_keys.h" -#include "crypto/crypto_groups.h" -#include "allocated_buffer-inl.h" #include "async_wrap-inl.h" #include "base_object-inl.h" +#include "crypto/crypto_groups.h" +#include "crypto/crypto_keys.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "threadpoolwork-inl.h" @@ -607,18 +606,13 @@ ByteSource StatelessDiffieHellmanThreadsafe( EVP_PKEY_derive(ctx.get(), nullptr, &out_size) <= 0) return ByteSource(); - char* buf = MallocOpenSSL(out_size); - ByteSource out = ByteSource::Allocated(buf, out_size); - - if (EVP_PKEY_derive( - ctx.get(), - reinterpret_cast(buf), - &out_size) <= 0) { + ByteSource::Builder out(out_size); + if (EVP_PKEY_derive(ctx.get(), out.data(), &out_size) <= 0) { return ByteSource(); } - ZeroPadDiffieHellmanSecret(out_size, buf, out.size()); - return out; + ZeroPadDiffieHellmanSecret(out_size, out.data(), out.size()); + return std::move(out).release(); } } // namespace diff --git a/src/crypto/crypto_ec.cc b/src/crypto/crypto_ec.cc index 2d738bb9b62e11..e6a90200a43483 100644 --- a/src/crypto/crypto_ec.cc +++ b/src/crypto/crypto_ec.cc @@ -1,9 +1,8 @@ #include "crypto/crypto_ec.h" -#include "crypto/crypto_common.h" -#include "crypto/crypto_util.h" -#include "allocated_buffer-inl.h" #include "async_wrap-inl.h" #include "base_object-inl.h" +#include "crypto/crypto_common.h" +#include "crypto/crypto_util.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "node_buffer.h" @@ -20,6 +19,8 @@ namespace node { using v8::Array; +using v8::ArrayBuffer; +using v8::BackingStore; using v8::FunctionCallbackInfo; using v8::FunctionTemplate; using v8::Int32; @@ -44,13 +45,13 @@ int GetCurveFromName(const char* name) { int GetOKPCurveFromName(const char* name) { int nid; - if (strcmp(name, "NODE-ED25519") == 0) { + if (strcmp(name, "Ed25519") == 0) { nid = EVP_PKEY_ED25519; - } else if (strcmp(name, "NODE-ED448") == 0) { + } else if (strcmp(name, "Ed448") == 0) { nid = EVP_PKEY_ED448; - } else if (strcmp(name, "NODE-X25519") == 0) { + } else if (strcmp(name, "X25519") == 0) { nid = EVP_PKEY_X25519; - } else if (strcmp(name, "NODE-X448") == 0) { + } else if (strcmp(name, "X448") == 0) { nid = EVP_PKEY_X448; } else { nid = NID_undef; @@ -220,17 +221,23 @@ void ECDH::ComputeSecret(const FunctionCallbackInfo& args) { return; } - // NOTE: field_size is in bits - int field_size = EC_GROUP_get_degree(ecdh->group_); - size_t out_len = (field_size + 7) / 8; - AllocatedBuffer out = AllocatedBuffer::AllocateManaged(env, out_len); + std::unique_ptr bs; + { + NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data()); + // NOTE: field_size is in bits + int field_size = EC_GROUP_get_degree(ecdh->group_); + size_t out_len = (field_size + 7) / 8; + bs = ArrayBuffer::NewBackingStore(env->isolate(), out_len); + } - int r = ECDH_compute_key( - out.data(), out_len, pub.get(), ecdh->key_.get(), nullptr); - if (!r) + if (!ECDH_compute_key( + bs->Data(), bs->ByteLength(), pub.get(), ecdh->key_.get(), nullptr)) return THROW_ERR_CRYPTO_OPERATION_FAILED(env, "Failed to compute ECDH key"); - args.GetReturnValue().Set(out.ToBuffer().FromMaybe(Local())); + Local ab = ArrayBuffer::New(env->isolate(), std::move(bs)); + Local buffer; + if (!Buffer::New(env, ab, 0, ab->ByteLength()).ToLocal(&buffer)) return; + args.GetReturnValue().Set(buffer); } void ECDH::GetPublicKey(const FunctionCallbackInfo& args) { @@ -270,13 +277,19 @@ void ECDH::GetPrivateKey(const FunctionCallbackInfo& args) { return THROW_ERR_CRYPTO_OPERATION_FAILED(env, "Failed to get ECDH private key"); - const int size = BN_num_bytes(b); - AllocatedBuffer out = AllocatedBuffer::AllocateManaged(env, size); - CHECK_EQ(size, BN_bn2binpad(b, - reinterpret_cast(out.data()), - size)); + std::unique_ptr bs; + { + NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data()); + bs = ArrayBuffer::NewBackingStore(env->isolate(), BN_num_bytes(b)); + } + CHECK_EQ(static_cast(bs->ByteLength()), + BN_bn2binpad( + b, static_cast(bs->Data()), bs->ByteLength())); - args.GetReturnValue().Set(out.ToBuffer().FromMaybe(Local())); + Local ab = ArrayBuffer::New(env->isolate(), std::move(bs)); + Local buffer; + if (!Buffer::New(env, ab, 0, ab->ByteLength()).ToLocal(&buffer)) return; + args.GetReturnValue().Set(buffer); } void ECDH::SetPrivateKey(const FunctionCallbackInfo& args) { @@ -473,12 +486,9 @@ Maybe ECDHBitsTraits::AdditionalConfig( return Just(true); } -bool ECDHBitsTraits::DeriveBits( - Environment* env, - const ECDHBitsConfig& params, - ByteSource* out) { - - char* data = nullptr; +bool ECDHBitsTraits::DeriveBits(Environment* env, + const ECDHBitsConfig& params, + ByteSource* out) { size_t len = 0; ManagedEVPPKey m_privkey = params.private_->GetAsymmetricKey(); ManagedEVPPKey m_pubkey = params.public_->GetAsymmetricKey(); @@ -500,15 +510,14 @@ bool ECDHBitsTraits::DeriveBits( return false; } - data = MallocOpenSSL(len); + ByteSource::Builder buf(len); - if (EVP_PKEY_derive( - ctx.get(), - reinterpret_cast(data), - &len) <= 0) { + if (EVP_PKEY_derive(ctx.get(), buf.data(), &len) <= 0) { return false; } + *out = std::move(buf).release(len); + break; } default: { @@ -530,22 +539,18 @@ bool ECDHBitsTraits::DeriveBits( const EC_POINT* pub = EC_KEY_get0_public_key(public_key); int field_size = EC_GROUP_get_degree(group); len = (field_size + 7) / 8; - data = MallocOpenSSL(len); - CHECK_NOT_NULL(data); + ByteSource::Builder buf(len); CHECK_NOT_NULL(pub); CHECK_NOT_NULL(private_key); - if (ECDH_compute_key( - data, - len, - pub, - private_key, - nullptr) <= 0) { + if (ECDH_compute_key(buf.data(), len, pub, private_key, nullptr) <= + 0) { return false; } + + *out = std::move(buf).release(); } } - ByteSource buf = ByteSource::Allocated(data, len); - *out = std::move(buf); + return true; } @@ -633,7 +638,6 @@ WebCryptoKeyExportStatus EC_Raw_Export( const EC_KEY* ec_key = EVP_PKEY_get0_EC_KEY(m_pkey.get()); - unsigned char* data; size_t len = 0; if (ec_key == nullptr) { @@ -653,9 +657,10 @@ WebCryptoKeyExportStatus EC_Raw_Export( // Get the size of the raw key data if (fn(m_pkey.get(), nullptr, &len) == 0) return WebCryptoKeyExportStatus::INVALID_KEY_TYPE; - data = MallocOpenSSL(len); - if (fn(m_pkey.get(), data, &len) == 0) + ByteSource::Builder data(len); + if (fn(m_pkey.get(), data.data(), &len) == 0) return WebCryptoKeyExportStatus::INVALID_KEY_TYPE; + *out = std::move(data).release(len); } else { if (key_data->GetKeyType() != kKeyTypePublic) return WebCryptoKeyExportStatus::INVALID_KEY_TYPE; @@ -667,17 +672,16 @@ WebCryptoKeyExportStatus EC_Raw_Export( len = EC_POINT_point2oct(group, point, form, nullptr, 0, nullptr); if (len == 0) return WebCryptoKeyExportStatus::FAILED; - data = MallocOpenSSL(len); - size_t check_len = - EC_POINT_point2oct(group, point, form, data, len, nullptr); + ByteSource::Builder data(len); + size_t check_len = EC_POINT_point2oct( + group, point, form, data.data(), len, nullptr); if (check_len == 0) return WebCryptoKeyExportStatus::FAILED; CHECK_EQ(len, check_len); + *out = std::move(data).release(); } - *out = ByteSource::Allocated(reinterpret_cast(data), len); - return WebCryptoKeyExportStatus::OK; } } // namespace @@ -840,38 +844,27 @@ Maybe ExportJWKEdKey( if (!EVP_PKEY_get_raw_public_key(pkey.get(), nullptr, &len)) return Nothing(); - unsigned char* data = MallocOpenSSL(len); - ByteSource out = ByteSource::Allocated(reinterpret_cast(data), len); + ByteSource::Builder out(len); if (key->GetKeyType() == kKeyTypePrivate) { - if (!EVP_PKEY_get_raw_private_key(pkey.get(), data, &len) || + if (!EVP_PKEY_get_raw_private_key( + pkey.get(), out.data(), &len) || !StringBytes::Encode( - env->isolate(), - reinterpret_cast(data), - len, - BASE64URL, - &error).ToLocal(&encoded) || - !target->Set( - env->context(), - env->jwk_d_string(), - encoded).IsJust()) { + env->isolate(), out.data(), len, BASE64URL, &error) + .ToLocal(&encoded) || + !target->Set(env->context(), env->jwk_d_string(), encoded).IsJust()) { if (!error.IsEmpty()) env->isolate()->ThrowException(error); return Nothing(); } } - if (!EVP_PKEY_get_raw_public_key(pkey.get(), data, &len) || + if (!EVP_PKEY_get_raw_public_key( + pkey.get(), out.data(), &len) || !StringBytes::Encode( - env->isolate(), - reinterpret_cast(data), - len, - BASE64URL, - &error).ToLocal(&encoded) || - !target->Set( - env->context(), - env->jwk_x_string(), - encoded).IsJust()) { + env->isolate(), out.data(), len, BASE64URL, &error) + .ToLocal(&encoded) || + !target->Set(env->context(), env->jwk_x_string(), encoded).IsJust()) { if (!error.IsEmpty()) env->isolate()->ThrowException(error); return Nothing(); diff --git a/src/crypto/crypto_ec.h b/src/crypto/crypto_ec.h index bc4160fc8bee01..9782ce0bf35a66 100644 --- a/src/crypto/crypto_ec.h +++ b/src/crypto/crypto_ec.h @@ -3,12 +3,11 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS -#include "crypto/crypto_keys.h" -#include "crypto/crypto_keygen.h" -#include "crypto/crypto_util.h" -#include "allocated_buffer.h" #include "async_wrap.h" #include "base_object.h" +#include "crypto/crypto_keygen.h" +#include "crypto/crypto_keys.h" +#include "crypto/crypto_util.h" #include "env.h" #include "memory_tracker.h" #include "node_internals.h" diff --git a/src/crypto/crypto_hash.cc b/src/crypto/crypto_hash.cc index ceea9e595708ba..24dc436d24855e 100644 --- a/src/crypto/crypto_hash.cc +++ b/src/crypto/crypto_hash.cc @@ -1,5 +1,4 @@ #include "crypto/crypto_hash.h" -#include "allocated_buffer-inl.h" #include "async_wrap-inl.h" #include "base_object-inl.h" #include "env-inl.h" @@ -172,38 +171,29 @@ void Hash::HashDigest(const FunctionCallbackInfo& args) { // so we need to cache it. // See https://github.com/nodejs/node/issues/28245. - char* md_value = MallocOpenSSL(len); - ByteSource digest = ByteSource::Allocated(md_value, len); + ByteSource::Builder digest(len); size_t default_len = EVP_MD_CTX_size(hash->mdctx_.get()); int ret; if (len == default_len) { ret = EVP_DigestFinal_ex( - hash->mdctx_.get(), - reinterpret_cast(md_value), - &len); + hash->mdctx_.get(), digest.data(), &len); // The output length should always equal hash->md_len_ CHECK_EQ(len, hash->md_len_); } else { ret = EVP_DigestFinalXOF( - hash->mdctx_.get(), - reinterpret_cast(md_value), - len); + hash->mdctx_.get(), digest.data(), len); } if (ret != 1) return ThrowCryptoError(env, ERR_get_error()); - hash->digest_ = std::move(digest); + hash->digest_ = std::move(digest).release(); } Local error; - MaybeLocal rc = - StringBytes::Encode(env->isolate(), - hash->digest_.get(), - len, - encoding, - &error); + MaybeLocal rc = StringBytes::Encode( + env->isolate(), hash->digest_.data(), len, encoding, &error); if (rc.IsEmpty()) { CHECK(!error.IsEmpty()); env->isolate()->ThrowException(error); @@ -292,28 +282,25 @@ bool HashTraits::DeriveBits( if (UNLIKELY(!ctx || EVP_DigestInit_ex(ctx.get(), params.digest, nullptr) <= 0 || EVP_DigestUpdate( - ctx.get(), - params.in.get(), - params.in.size()) <= 0)) { + ctx.get(), params.in.data(), params.in.size()) <= 0)) { return false; } if (LIKELY(params.length > 0)) { unsigned int length = params.length; - char* data = MallocOpenSSL(length); - ByteSource buf = ByteSource::Allocated(data, length); - unsigned char* ptr = reinterpret_cast(data); + ByteSource::Builder buf(length); size_t expected = EVP_MD_CTX_size(ctx.get()); - int ret = (length == expected) - ? EVP_DigestFinal_ex(ctx.get(), ptr, &length) - : EVP_DigestFinalXOF(ctx.get(), ptr, length); + int ret = + (length == expected) + ? EVP_DigestFinal_ex(ctx.get(), buf.data(), &length) + : EVP_DigestFinalXOF(ctx.get(), buf.data(), length); if (UNLIKELY(ret != 1)) return false; - *out = std::move(buf); + *out = std::move(buf).release(); } return true; diff --git a/src/crypto/crypto_hash.h b/src/crypto/crypto_hash.h index cfc09334ce0195..96a9804420db63 100644 --- a/src/crypto/crypto_hash.h +++ b/src/crypto/crypto_hash.h @@ -3,10 +3,9 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS +#include "base_object.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_util.h" -#include "allocated_buffer.h" -#include "base_object.h" #include "env.h" #include "memory_tracker.h" #include "v8.h" diff --git a/src/crypto/crypto_hkdf.cc b/src/crypto/crypto_hkdf.cc index 0aa96ada47abe4..79a84c12f55853 100644 --- a/src/crypto/crypto_hkdf.cc +++ b/src/crypto/crypto_hkdf.cc @@ -1,8 +1,7 @@ #include "crypto/crypto_hkdf.h" -#include "crypto/crypto_keys.h" -#include "allocated_buffer-inl.h" #include "async_wrap-inl.h" #include "base_object-inl.h" +#include "crypto/crypto_keys.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "threadpoolwork-inl.h" @@ -103,34 +102,27 @@ bool HKDFTraits::DeriveBits( ByteSource* out) { EVPKeyCtxPointer ctx = EVPKeyCtxPointer(EVP_PKEY_CTX_new_id(EVP_PKEY_HKDF, nullptr)); - if (!ctx || - !EVP_PKEY_derive_init(ctx.get()) || - !EVP_PKEY_CTX_hkdf_mode( - ctx.get(), EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND) || + if (!ctx || !EVP_PKEY_derive_init(ctx.get()) || + !EVP_PKEY_CTX_hkdf_mode(ctx.get(), + EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND) || !EVP_PKEY_CTX_set_hkdf_md(ctx.get(), params.digest) || !EVP_PKEY_CTX_set1_hkdf_salt( - ctx.get(), - reinterpret_cast(params.salt.get()), - params.salt.size()) || + ctx.get(), params.salt.data(), params.salt.size()) || !EVP_PKEY_CTX_set1_hkdf_key( - ctx.get(), - reinterpret_cast(params.key->GetSymmetricKey()), - params.key->GetSymmetricKeySize()) || + ctx.get(), + reinterpret_cast(params.key->GetSymmetricKey()), + params.key->GetSymmetricKeySize()) || !EVP_PKEY_CTX_add1_hkdf_info( - ctx.get(), - reinterpret_cast(params.info.get()), - params.info.size())) { + ctx.get(), params.info.data(), params.info.size())) { return false; } size_t length = params.length; - char* data = MallocOpenSSL(length); - ByteSource buf = ByteSource::Allocated(data, length); - unsigned char* ptr = reinterpret_cast(data); - if (EVP_PKEY_derive(ctx.get(), ptr, &length) <= 0) + ByteSource::Builder buf(length); + if (EVP_PKEY_derive(ctx.get(), buf.data(), &length) <= 0) return false; - *out = std::move(buf); + *out = std::move(buf).release(); return true; } diff --git a/src/crypto/crypto_hkdf.h b/src/crypto/crypto_hkdf.h index 666aad65474a2e..ef2d03c2091595 100644 --- a/src/crypto/crypto_hkdf.h +++ b/src/crypto/crypto_hkdf.h @@ -3,11 +3,10 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS -#include "crypto/crypto_keys.h" -#include "crypto/crypto_util.h" -#include "allocated_buffer.h" #include "async_wrap.h" #include "base_object.h" +#include "crypto/crypto_keys.h" +#include "crypto/crypto_util.h" #include "v8.h" namespace node { diff --git a/src/crypto/crypto_hmac.cc b/src/crypto/crypto_hmac.cc index d6a652ff8f5ee0..afda92265e8dca 100644 --- a/src/crypto/crypto_hmac.cc +++ b/src/crypto/crypto_hmac.cc @@ -1,10 +1,9 @@ #include "crypto/crypto_hmac.h" +#include "async_wrap-inl.h" +#include "base_object-inl.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_sig.h" #include "crypto/crypto_util.h" -#include "allocated_buffer-inl.h" -#include "async_wrap-inl.h" -#include "base_object-inl.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "node_buffer.h" @@ -89,7 +88,7 @@ void Hmac::HmacInit(const FunctionCallbackInfo& args) { const node::Utf8Value hash_type(env->isolate(), args[0]); ByteSource key = ByteSource::FromSecretKeyBytes(env, args[1]); - hmac->HmacInit(*hash_type, key.get(), key.size()); + hmac->HmacInit(*hash_type, key.data(), key.size()); } bool Hmac::HmacUpdate(const char* data, size_t len) { @@ -242,17 +241,14 @@ bool HmacTraits::DeriveBits( return false; } - char* data = MallocOpenSSL(EVP_MAX_MD_SIZE); - ByteSource buf = ByteSource::Allocated(data, EVP_MAX_MD_SIZE); - unsigned char* ptr = reinterpret_cast(data); + ByteSource::Builder buf(EVP_MAX_MD_SIZE); unsigned int len; - if (!HMAC_Final(ctx.get(), ptr, &len)) { + if (!HMAC_Final(ctx.get(), buf.data(), &len)) { return false; } - buf.Resize(len); - *out = std::move(buf); + *out = std::move(buf).release(len); return true; } @@ -268,9 +264,8 @@ Maybe HmacTraits::EncodeOutput( break; case SignConfiguration::kVerify: *result = - out->size() > 0 && - out->size() == params.signature.size() && - memcmp(out->get(), params.signature.get(), out->size()) == 0 + out->size() > 0 && out->size() == params.signature.size() && + memcmp(out->data(), params.signature.data(), out->size()) == 0 ? v8::True(env->isolate()) : v8::False(env->isolate()); break; diff --git a/src/crypto/crypto_hmac.h b/src/crypto/crypto_hmac.h index c37fc4a82c6e95..c80cc36f11dddc 100644 --- a/src/crypto/crypto_hmac.h +++ b/src/crypto/crypto_hmac.h @@ -3,11 +3,10 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS +#include "base_object.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_sig.h" #include "crypto/crypto_util.h" -#include "allocated_buffer.h" -#include "base_object.h" #include "env.h" #include "memory_tracker.h" #include "v8.h" diff --git a/src/crypto/crypto_keygen.cc b/src/crypto/crypto_keygen.cc index 24943883b7ba0a..e4e9c227458397 100644 --- a/src/crypto/crypto_keygen.cc +++ b/src/crypto/crypto_keygen.cc @@ -1,5 +1,4 @@ #include "crypto/crypto_keygen.h" -#include "allocated_buffer-inl.h" #include "async_wrap-inl.h" #include "base_object-inl.h" #include "debug_utils-inl.h" diff --git a/src/crypto/crypto_keygen.h b/src/crypto/crypto_keygen.h index f8d863a2d93990..01407de83c7b14 100644 --- a/src/crypto/crypto_keygen.h +++ b/src/crypto/crypto_keygen.h @@ -3,11 +3,10 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS -#include "crypto/crypto_keys.h" -#include "crypto/crypto_util.h" -#include "allocated_buffer.h" #include "async_wrap.h" #include "base_object.h" +#include "crypto/crypto_keys.h" +#include "crypto/crypto_util.h" #include "env.h" #include "memory_tracker.h" #include "v8.h" diff --git a/src/crypto/crypto_keys.cc b/src/crypto/crypto_keys.cc index 5dd04edfbfa1cf..ba37f24c48dad5 100644 --- a/src/crypto/crypto_keys.cc +++ b/src/crypto/crypto_keys.cc @@ -305,7 +305,7 @@ MaybeLocal WritePrivateKey( char* pass = nullptr; size_t pass_len = 0; if (!config.passphrase_.IsEmpty()) { - pass = const_cast(config.passphrase_->get()); + pass = const_cast(config.passphrase_->data()); pass_len = config.passphrase_->size(); if (pass == nullptr) { // OpenSSL will not actually dereference this pointer, so it can be any @@ -744,7 +744,7 @@ ManagedEVPPKey ManagedEVPPKey::GetPrivateKeyFromJs( EVPKeyPointer pkey; ParseKeyResult ret = - ParsePrivateKey(&pkey, config.Release(), key.get(), key.size()); + ParsePrivateKey(&pkey, config.Release(), key.data(), key.size()); return GetParsedKey(env, std::move(pkey), ret, "Failed to read private key"); } else { @@ -893,7 +893,7 @@ ManagedEVPPKey KeyObjectData::GetAsymmetricKey() const { const char* KeyObjectData::GetSymmetricKey() const { CHECK_EQ(key_type_, kKeyTypeSecret); - return symmetric_key_.get(); + return symmetric_key_.data(); } size_t KeyObjectData::GetSymmetricKeySize() const { diff --git a/src/crypto/crypto_pbkdf2.cc b/src/crypto/crypto_pbkdf2.cc index 495722927ab5be..963d0db6c62a45 100644 --- a/src/crypto/crypto_pbkdf2.cc +++ b/src/crypto/crypto_pbkdf2.cc @@ -1,7 +1,6 @@ #include "crypto/crypto_pbkdf2.h" -#include "crypto/crypto_util.h" -#include "allocated_buffer-inl.h" #include "async_wrap-inl.h" +#include "crypto/crypto_util.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "node_buffer.h" @@ -116,26 +115,23 @@ bool PBKDF2Traits::DeriveBits( Environment* env, const PBKDF2Config& params, ByteSource* out) { - char* data = MallocOpenSSL(params.length); - ByteSource buf = ByteSource::Allocated(data, params.length); - unsigned char* ptr = reinterpret_cast(data); + ByteSource::Builder buf(params.length); // Both pass and salt may be zero length here. // The generated bytes are stored in buf, which is // assigned to out on success. - if (PKCS5_PBKDF2_HMAC( - params.pass.get(), - params.pass.size(), - params.salt.data(), - params.salt.size(), - params.iterations, - params.digest, - params.length, - ptr) <= 0) { + if (PKCS5_PBKDF2_HMAC(params.pass.data(), + params.pass.size(), + params.salt.data(), + params.salt.size(), + params.iterations, + params.digest, + params.length, + buf.data()) <= 0) { return false; } - *out = std::move(buf); + *out = std::move(buf).release(); return true; } diff --git a/src/crypto/crypto_random.cc b/src/crypto/crypto_random.cc index 7a05dcc16b7389..d0736a9cf1277a 100644 --- a/src/crypto/crypto_random.cc +++ b/src/crypto/crypto_random.cc @@ -1,7 +1,6 @@ #include "crypto/crypto_random.h" -#include "crypto/crypto_util.h" -#include "allocated_buffer-inl.h" #include "async_wrap-inl.h" +#include "crypto/crypto_util.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "threadpoolwork-inl.h" @@ -223,9 +222,9 @@ bool CheckPrimeTraits::DeriveBits( ctx.get(), nullptr); if (ret < 0) return false; - char* data = MallocOpenSSL(1); - data[0] = ret; - *out = ByteSource::Allocated(data, 1); + ByteSource::Builder buf(1); + buf.data()[0] = ret; + *out = std::move(buf).release(); return true; } @@ -234,7 +233,7 @@ Maybe CheckPrimeTraits::EncodeOutput( const CheckPrimeConfig& params, ByteSource* out, v8::Local* result) { - *result = out->get()[0] ? True(env->isolate()) : False(env->isolate()); + *result = out->data()[0] ? True(env->isolate()) : False(env->isolate()); return Just(true); } diff --git a/src/crypto/crypto_random.h b/src/crypto/crypto_random.h index 970306c30cd8e3..a2807ed6ec8743 100644 --- a/src/crypto/crypto_random.h +++ b/src/crypto/crypto_random.h @@ -3,9 +3,8 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS -#include "crypto/crypto_util.h" #include "base_object.h" -#include "allocated_buffer.h" +#include "crypto/crypto_util.h" #include "env.h" #include "memory_tracker.h" #include "node_internals.h" diff --git a/src/crypto/crypto_rsa.cc b/src/crypto/crypto_rsa.cc index ae4550e9fde812..57cec1a8fd2b51 100644 --- a/src/crypto/crypto_rsa.cc +++ b/src/crypto/crypto_rsa.cc @@ -1,10 +1,9 @@ #include "crypto/crypto_rsa.h" +#include "async_wrap-inl.h" +#include "base_object-inl.h" #include "crypto/crypto_bio.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_util.h" -#include "allocated_buffer-inl.h" -#include "async_wrap-inl.h" -#include "base_object-inl.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "threadpoolwork-inl.h" @@ -15,6 +14,8 @@ namespace node { +using v8::ArrayBuffer; +using v8::BackingStore; using v8::FunctionCallbackInfo; using v8::Int32; using v8::Just; @@ -222,7 +223,7 @@ WebCryptoCipherStatus RSA_Cipher( size_t label_len = params.label.size(); if (label_len > 0) { - void* label = OPENSSL_memdup(params.label.get(), label_len); + void* label = OPENSSL_memdup(params.label.data(), label_len); CHECK_NOT_NULL(label); if (EVP_PKEY_CTX_set0_rsa_oaep_label( ctx.get(), @@ -243,22 +244,17 @@ WebCryptoCipherStatus RSA_Cipher( return WebCryptoCipherStatus::FAILED; } - char* data = MallocOpenSSL(out_len); - ByteSource buf = ByteSource::Allocated(data, out_len); - unsigned char* ptr = reinterpret_cast(data); + ByteSource::Builder buf(out_len); - if (cipher( - ctx.get(), - ptr, - &out_len, - in.data(), - in.size()) <= 0) { + if (cipher(ctx.get(), + buf.data(), + &out_len, + in.data(), + in.size()) <= 0) { return WebCryptoCipherStatus::FAILED; } - buf.Resize(out_len); - - *out = std::move(buf); + *out = std::move(buf).release(out_len); return WebCryptoCipherStatus::OK; } } // namespace @@ -555,17 +551,21 @@ Maybe GetRsaKeyDetail( return Nothing(); } - int len = BN_num_bytes(e); - AllocatedBuffer public_exponent = AllocatedBuffer::AllocateManaged(env, len); - unsigned char* data = - reinterpret_cast(public_exponent.data()); - CHECK_EQ(BN_bn2binpad(e, data, len), len); + std::unique_ptr public_exponent; + { + NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data()); + public_exponent = + ArrayBuffer::NewBackingStore(env->isolate(), BN_num_bytes(e)); + } + CHECK_EQ(BN_bn2binpad(e, + static_cast(public_exponent->Data()), + public_exponent->ByteLength()), + static_cast(public_exponent->ByteLength())); if (target - ->Set( - env->context(), - env->public_exponent_string(), - public_exponent.ToArrayBuffer()) + ->Set(env->context(), + env->public_exponent_string(), + ArrayBuffer::New(env->isolate(), std::move(public_exponent))) .IsNothing()) { return Nothing(); } diff --git a/src/crypto/crypto_rsa.h b/src/crypto/crypto_rsa.h index 4f6fbad4f6e6b0..bd00320ca8a5be 100644 --- a/src/crypto/crypto_rsa.h +++ b/src/crypto/crypto_rsa.h @@ -7,7 +7,6 @@ #include "crypto/crypto_keygen.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_util.h" -#include "allocated_buffer.h" #include "env.h" #include "memory_tracker.h" #include "v8.h" diff --git a/src/crypto/crypto_scrypt.cc b/src/crypto/crypto_scrypt.cc index 077c26554b2f1f..88d355446c0984 100644 --- a/src/crypto/crypto_scrypt.cc +++ b/src/crypto/crypto_scrypt.cc @@ -1,7 +1,6 @@ #include "crypto/crypto_scrypt.h" -#include "crypto/crypto_util.h" -#include "allocated_buffer-inl.h" #include "async_wrap-inl.h" +#include "crypto/crypto_util.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "node_buffer.h" @@ -122,26 +121,23 @@ bool ScryptTraits::DeriveBits( Environment* env, const ScryptConfig& params, ByteSource* out) { - char* data = MallocOpenSSL(params.length); - ByteSource buf = ByteSource::Allocated(data, params.length); - unsigned char* ptr = reinterpret_cast(data); + ByteSource::Builder buf(params.length); // Both the pass and salt may be zero-length at this point - if (!EVP_PBE_scrypt( - params.pass.get(), - params.pass.size(), - params.salt.data(), - params.salt.size(), - params.N, - params.r, - params.p, - params.maxmem, - ptr, - params.length)) { + if (!EVP_PBE_scrypt(params.pass.data(), + params.pass.size(), + params.salt.data(), + params.salt.size(), + params.N, + params.r, + params.p, + params.maxmem, + buf.data(), + params.length)) { return false; } - *out = std::move(buf); + *out = std::move(buf).release(); return true; } diff --git a/src/crypto/crypto_sig.cc b/src/crypto/crypto_sig.cc index 90031b0ac4257f..a72649ab8ec16f 100644 --- a/src/crypto/crypto_sig.cc +++ b/src/crypto/crypto_sig.cc @@ -1,10 +1,9 @@ #include "crypto/crypto_sig.h" +#include "async_wrap-inl.h" +#include "base_object-inl.h" #include "crypto/crypto_ec.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_util.h" -#include "allocated_buffer-inl.h" -#include "async_wrap-inl.h" -#include "base_object-inl.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "threadpoolwork-inl.h" @@ -175,18 +174,15 @@ ByteSource ConvertSignatureToP1363( if (n == kNoDsaSignature) return ByteSource(); - const unsigned char* sig_data = - reinterpret_cast(signature.get()); + const unsigned char* sig_data = signature.data(); - char* outdata = MallocOpenSSL(n * 2); - memset(outdata, 0, n * 2); - ByteSource out = ByteSource::Allocated(outdata, n * 2); - unsigned char* ptr = reinterpret_cast(outdata); + ByteSource::Builder out(n * 2); + memset(out.data(), 0, n * 2); - if (!ExtractP1363(sig_data, ptr, signature.size(), n)) + if (!ExtractP1363(sig_data, out.data(), signature.size(), n)) return ByteSource(); - return out; + return std::move(out).release(); } ByteSource ConvertSignatureToDER( @@ -196,8 +192,7 @@ ByteSource ConvertSignatureToDER( if (n == kNoDsaSignature) return std::move(out); - const unsigned char* sig_data = - reinterpret_cast(out.get()); + const unsigned char* sig_data = out.data(); if (out.size() != 2 * n) return ByteSource(); @@ -527,7 +522,7 @@ SignBase::Error Verify::VerifyFinal(const ManagedEVPPKey& pkey, ApplyRSAOptions(pkey, pkctx.get(), padding, saltlen) && EVP_PKEY_CTX_set_signature_md(pkctx.get(), EVP_MD_CTX_md(mdctx.get())) > 0) { - const unsigned char* s = reinterpret_cast(sig.get()); + const unsigned char* s = sig.data(); const int r = EVP_PKEY_verify(pkctx.get(), s, sig.size(), m, m_len); *verify_result = r == 1; } @@ -571,7 +566,7 @@ void Verify::VerifyFinal(const FunctionCallbackInfo& args) { ByteSource signature = hbuf.ToByteSource(); if (dsa_sig_enc == kSigEncP1363) { signature = ConvertSignatureToDER(pkey, hbuf.ToByteSource()); - if (signature.get() == nullptr) + if (signature.data() == nullptr) return crypto::CheckThrow(env, Error::kSignMalformedSignature); } @@ -747,9 +742,8 @@ bool SignTraits::DeriveBits( switch (params.mode) { case SignConfiguration::kSign: { - size_t len; - unsigned char* data = nullptr; if (IsOneShot(params.key)) { + size_t len; if (!EVP_DigestSign( context.get(), nullptr, @@ -759,20 +753,18 @@ bool SignTraits::DeriveBits( crypto::CheckThrow(env, SignBase::Error::kSignPrivateKey); return false; } - data = MallocOpenSSL(len); - if (!EVP_DigestSign( - context.get(), - data, - &len, - params.data.data(), - params.data.size())) { - crypto::CheckThrow(env, SignBase::Error::kSignPrivateKey); - return false; - } - ByteSource buf = - ByteSource::Allocated(reinterpret_cast(data), len); - *out = std::move(buf); + ByteSource::Builder buf(len); + if (!EVP_DigestSign(context.get(), + buf.data(), + &len, + params.data.data(), + params.data.size())) { + crypto::CheckThrow(env, SignBase::Error::kSignPrivateKey); + return false; + } + *out = std::move(buf).release(len); } else { + size_t len; if (!EVP_DigestSignUpdate( context.get(), params.data.data(), @@ -781,35 +773,34 @@ bool SignTraits::DeriveBits( crypto::CheckThrow(env, SignBase::Error::kSignPrivateKey); return false; } - data = MallocOpenSSL(len); - ByteSource buf = - ByteSource::Allocated(reinterpret_cast(data), len); - if (!EVP_DigestSignFinal(context.get(), data, &len)) { + ByteSource::Builder buf(len); + if (!EVP_DigestSignFinal( + context.get(), buf.data(), &len)) { crypto::CheckThrow(env, SignBase::Error::kSignPrivateKey); return false; } if (UseP1363Encoding(params.key, params.dsa_encoding)) { - *out = ConvertSignatureToP1363(env, params.key, buf); + *out = ConvertSignatureToP1363( + env, params.key, std::move(buf).release()); } else { - buf.Resize(len); - *out = std::move(buf); + *out = std::move(buf).release(len); } } break; } case SignConfiguration::kVerify: { - char* data = MallocOpenSSL(1); - data[0] = 0; - *out = ByteSource::Allocated(data, 1); + ByteSource::Builder buf(1); + buf.data()[0] = 0; if (EVP_DigestVerify( context.get(), params.signature.data(), params.signature.size(), params.data.data(), params.data.size()) == 1) { - data[0] = 1; + buf.data()[0] = 1; } + *out = std::move(buf).release(); } } @@ -826,9 +817,8 @@ Maybe SignTraits::EncodeOutput( *result = out->ToArrayBuffer(env); break; case SignConfiguration::kVerify: - *result = out->get()[0] == 1 - ? v8::True(env->isolate()) - : v8::False(env->isolate()); + *result = out->data()[0] == 1 ? v8::True(env->isolate()) + : v8::False(env->isolate()); break; default: UNREACHABLE(); diff --git a/src/crypto/crypto_sig.h b/src/crypto/crypto_sig.h index eba18be7c7d019..b6502ba4296f0b 100644 --- a/src/crypto/crypto_sig.h +++ b/src/crypto/crypto_sig.h @@ -3,10 +3,9 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS +#include "base_object.h" #include "crypto/crypto_keys.h" #include "crypto/crypto_util.h" -#include "allocated_buffer.h" -#include "base_object.h" #include "env.h" #include "memory_tracker.h" diff --git a/src/crypto/crypto_spkac.cc b/src/crypto/crypto_spkac.cc index c29d94edc0f9f9..7cda346907e421 100644 --- a/src/crypto/crypto_spkac.cc +++ b/src/crypto/crypto_spkac.cc @@ -122,7 +122,7 @@ void ExportChallenge(const FunctionCallbackInfo& args) { return args.GetReturnValue().SetEmptyString(); Local outString = - Encode(env->isolate(), cert.get(), cert.size(), BUFFER); + Encode(env->isolate(), cert.data(), cert.size(), BUFFER); args.GetReturnValue().Set(outString); } diff --git a/src/crypto/crypto_tls.cc b/src/crypto/crypto_tls.cc index 72b49e05f0cb0d..a192956f0f7cfe 100644 --- a/src/crypto/crypto_tls.cc +++ b/src/crypto/crypto_tls.cc @@ -25,7 +25,6 @@ #include "crypto/crypto_util.h" #include "crypto/crypto_bio.h" #include "crypto/crypto_clienthello-inl.h" -#include "allocated_buffer-inl.h" #include "async_wrap-inl.h" #include "debug_utils-inl.h" #include "memory_tracker-inl.h" @@ -296,8 +295,8 @@ int TLSExtStatusCallback(SSL* s, void* arg) { void ConfigureSecureContext(SecureContext* sc) { // OCSP stapling - SSL_CTX_set_tlsext_status_cb(sc->ctx_.get(), TLSExtStatusCallback); - SSL_CTX_set_tlsext_status_arg(sc->ctx_.get(), nullptr); + SSL_CTX_set_tlsext_status_cb(sc->ctx().get(), TLSExtStatusCallback); + SSL_CTX_set_tlsext_status_arg(sc->ctx().get(), nullptr); } inline bool Set( @@ -1251,8 +1250,7 @@ void TLSWrap::GetServername(const FunctionCallbackInfo& args) { CHECK_NOT_NULL(wrap->ssl_); - const char* servername = SSL_get_servername(wrap->ssl_.get(), - TLSEXT_NAMETYPE_host_name); + const char* servername = GetServerName(wrap->ssl_.get()); if (servername != nullptr) { args.GetReturnValue().Set(OneByteString(env->isolate(), servername)); } else { @@ -1283,7 +1281,7 @@ int TLSWrap::SelectSNIContextCallback(SSL* s, int* ad, void* arg) { HandleScope handle_scope(env->isolate()); Context::Scope context_scope(env->context()); - const char* servername = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name); + const char* servername = GetServerName(s); if (!Set(env, p->GetOwner(), env->servername_string(), servername)) return SSL_TLSEXT_ERR_NOACK; @@ -1305,20 +1303,20 @@ int TLSWrap::SelectSNIContextCallback(SSL* s, int* ad, void* arg) { p->sni_context_ = BaseObjectPtr(sc); ConfigureSecureContext(sc); - CHECK_EQ(SSL_set_SSL_CTX(p->ssl_.get(), sc->ctx_.get()), sc->ctx_.get()); + CHECK_EQ(SSL_set_SSL_CTX(p->ssl_.get(), sc->ctx().get()), sc->ctx().get()); p->SetCACerts(sc); return SSL_TLSEXT_ERR_OK; } int TLSWrap::SetCACerts(SecureContext* sc) { - int err = SSL_set1_verify_cert_store( - ssl_.get(), SSL_CTX_get_cert_store(sc->ctx_.get())); + int err = SSL_set1_verify_cert_store(ssl_.get(), + SSL_CTX_get_cert_store(sc->ctx().get())); if (err != 1) return err; STACK_OF(X509_NAME)* list = - SSL_dup_CA_list(SSL_CTX_get_client_CA_list(sc->ctx_.get())); + SSL_dup_CA_list(SSL_CTX_get_client_CA_list(sc->ctx().get())); // NOTE: `SSL_set_client_CA_list` takes the ownership of `list` SSL_set_client_CA_list(ssl_.get(), list); @@ -1611,9 +1609,19 @@ void TLSWrap::GetFinished(const FunctionCallbackInfo& args) { if (len == 0) return; - AllocatedBuffer buf = AllocatedBuffer::AllocateManaged(env, len); - CHECK_EQ(len, SSL_get_finished(w->ssl_.get(), buf.data(), len)); - args.GetReturnValue().Set(buf.ToBuffer().FromMaybe(Local())); + std::unique_ptr bs; + { + NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data()); + bs = ArrayBuffer::NewBackingStore(env->isolate(), len); + } + + CHECK_EQ(bs->ByteLength(), + SSL_get_finished(w->ssl_.get(), bs->Data(), bs->ByteLength())); + + Local ab = ArrayBuffer::New(env->isolate(), std::move(bs)); + Local buffer; + if (!Buffer::New(env, ab, 0, ab->ByteLength()).ToLocal(&buffer)) return; + args.GetReturnValue().Set(buffer); } void TLSWrap::GetPeerFinished(const FunctionCallbackInfo& args) { @@ -1632,9 +1640,19 @@ void TLSWrap::GetPeerFinished(const FunctionCallbackInfo& args) { if (len == 0) return; - AllocatedBuffer buf = AllocatedBuffer::AllocateManaged(env, len); - CHECK_EQ(len, SSL_get_peer_finished(w->ssl_.get(), buf.data(), len)); - args.GetReturnValue().Set(buf.ToBuffer().FromMaybe(Local())); + std::unique_ptr bs; + { + NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data()); + bs = ArrayBuffer::NewBackingStore(env->isolate(), len); + } + + CHECK_EQ(bs->ByteLength(), + SSL_get_peer_finished(w->ssl_.get(), bs->Data(), bs->ByteLength())); + + Local ab = ArrayBuffer::New(env->isolate(), std::move(bs)); + Local buffer; + if (!Buffer::New(env, ab, 0, ab->ByteLength()).ToLocal(&buffer)) return; + args.GetReturnValue().Set(buffer); } void TLSWrap::GetSession(const FunctionCallbackInfo& args) { @@ -1651,10 +1669,19 @@ void TLSWrap::GetSession(const FunctionCallbackInfo& args) { if (slen <= 0) return; // Invalid or malformed session. - AllocatedBuffer sbuf = AllocatedBuffer::AllocateManaged(env, slen); - unsigned char* p = reinterpret_cast(sbuf.data()); + std::unique_ptr bs; + { + NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data()); + bs = ArrayBuffer::NewBackingStore(env->isolate(), slen); + } + + unsigned char* p = static_cast(bs->Data()); CHECK_LT(0, i2d_SSL_SESSION(sess, &p)); - args.GetReturnValue().Set(sbuf.ToBuffer().FromMaybe(Local())); + + Local ab = ArrayBuffer::New(env->isolate(), std::move(bs)); + Local buffer; + if (!Buffer::New(env, ab, 0, ab->ByteLength()).ToLocal(&buffer)) return; + args.GetReturnValue().Set(buffer); } void TLSWrap::SetSession(const FunctionCallbackInfo& args) { @@ -1825,7 +1852,11 @@ void TLSWrap::ExportKeyingMaterial(const FunctionCallbackInfo& args) { uint32_t olen = args[0].As()->Value(); Utf8Value label(env->isolate(), args[1]); - AllocatedBuffer out = AllocatedBuffer::AllocateManaged(env, olen); + std::unique_ptr bs; + { + NoArrayBufferZeroFillScope no_zero_fill_scope(env->isolate_data()); + bs = ArrayBuffer::NewBackingStore(env->isolate(), olen); + } ByteSource context; bool use_context = !args[2]->IsUndefined(); @@ -1834,11 +1865,11 @@ void TLSWrap::ExportKeyingMaterial(const FunctionCallbackInfo& args) { if (SSL_export_keying_material( w->ssl_.get(), - reinterpret_cast(out.data()), + static_cast(bs->Data()), olen, *label, label.length(), - reinterpret_cast(context.get()), + context.data(), context.size(), use_context) != 1) { return ThrowCryptoError( @@ -1847,7 +1878,10 @@ void TLSWrap::ExportKeyingMaterial(const FunctionCallbackInfo& args) { "SSL_export_keying_material"); } - args.GetReturnValue().Set(out.ToBuffer().FromMaybe(Local())); + Local ab = ArrayBuffer::New(env->isolate(), std::move(bs)); + Local buffer; + if (!Buffer::New(env, ab, 0, ab->ByteLength()).ToLocal(&buffer)) return; + args.GetReturnValue().Set(buffer); } void TLSWrap::EndParser(const FunctionCallbackInfo& args) { diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc index bbc86e6d88986f..5d8f0bbe8e3cb4 100644 --- a/src/crypto/crypto_util.cc +++ b/src/crypto/crypto_util.cc @@ -1,8 +1,7 @@ #include "crypto/crypto_util.h" +#include "async_wrap-inl.h" #include "crypto/crypto_bio.h" #include "crypto/crypto_keys.h" -#include "allocated_buffer-inl.h" -#include "async_wrap-inl.h" #include "env-inl.h" #include "memory_tracker-inl.h" #include "node_buffer.h" @@ -90,7 +89,7 @@ int PasswordCallback(char* buf, int size, int rwflag, void* u) { size_t len = passphrase->size(); if (buflen < len) return -1; - memcpy(buf, passphrase->get(), len); + memcpy(buf, passphrase->data(), len); return len; } @@ -328,12 +327,6 @@ ByteSource::~ByteSource() { OPENSSL_clear_free(allocated_data_, size_); } -void ByteSource::reset() { - OPENSSL_clear_free(allocated_data_, size_); - data_ = nullptr; - size_ = 0; -} - ByteSource& ByteSource::operator=(ByteSource&& other) noexcept { if (&other != this) { OPENSSL_clear_free(allocated_data_, size_); @@ -372,45 +365,29 @@ MaybeLocal ByteSource::ToBuffer(Environment* env) { return Buffer::New(env, ab, 0, ab->ByteLength()); } -const char* ByteSource::get() const { - return data_; -} - -size_t ByteSource::size() const { - return size_; -} - ByteSource ByteSource::FromBIO(const BIOPointer& bio) { CHECK(bio); BUF_MEM* bptr; BIO_get_mem_ptr(bio.get(), &bptr); - char* data = MallocOpenSSL(bptr->length); - memcpy(data, bptr->data, bptr->length); - return Allocated(data, bptr->length); + ByteSource::Builder out(bptr->length); + memcpy(out.data(), bptr->data, bptr->length); + return std::move(out).release(); } ByteSource ByteSource::FromEncodedString(Environment* env, Local key, enum encoding enc) { size_t length = 0; - size_t actual = 0; - char* data = nullptr; + ByteSource out; if (StringBytes::Size(env->isolate(), key, enc).To(&length) && length > 0) { - data = MallocOpenSSL(length); - actual = StringBytes::Write(env->isolate(), data, length, key, enc); - - CHECK(actual <= length); - - if (actual == 0) { - OPENSSL_clear_free(data, length); - data = nullptr; - } else if (actual < length) { - data = reinterpret_cast(OPENSSL_realloc(data, actual)); - } + ByteSource::Builder buf(length); + size_t actual = + StringBytes::Write(env->isolate(), buf.data(), length, key, enc); + out = std::move(buf).release(actual); } - return Allocated(data, actual); + return out; } ByteSource ByteSource::FromStringOrBuffer(Environment* env, @@ -424,11 +401,11 @@ ByteSource ByteSource::FromString(Environment* env, Local str, CHECK(str->IsString()); size_t size = str->Utf8Length(env->isolate()); size_t alloc_size = ntc ? size + 1 : size; - char* data = MallocOpenSSL(alloc_size); + ByteSource::Builder out(alloc_size); int opts = String::NO_OPTIONS; if (!ntc) opts |= String::NO_NULL_TERMINATION; - str->WriteUtf8(env->isolate(), data, alloc_size, nullptr, opts); - return Allocated(data, size); + str->WriteUtf8(env->isolate(), out.data(), alloc_size, nullptr, opts); + return std::move(out).release(); } ByteSource ByteSource::FromBuffer(Local buffer, bool ntc) { @@ -461,16 +438,11 @@ ByteSource ByteSource::FromSymmetricKeyObjectHandle(Local handle) { key->Data()->GetSymmetricKeySize()); } -ByteSource::ByteSource(const char* data, char* allocated_data, size_t size) - : data_(data), - allocated_data_(allocated_data), - size_(size) {} - -ByteSource ByteSource::Allocated(char* data, size_t size) { +ByteSource ByteSource::Allocated(void* data, size_t size) { return ByteSource(data, data, size); } -ByteSource ByteSource::Foreign(const char* data, size_t size) { +ByteSource ByteSource::Foreign(const void* data, size_t size) { return ByteSource(data, nullptr, size); } diff --git a/src/crypto/crypto_util.h b/src/crypto/crypto_util.h index c431159e6f77f8..c0b10583ce0978 100644 --- a/src/crypto/crypto_util.h +++ b/src/crypto/crypto_util.h @@ -3,15 +3,14 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS -#include "env.h" #include "async_wrap.h" -#include "allocated_buffer.h" +#include "env.h" #include "node_errors.h" #include "node_external_reference.h" #include "node_internals.h" +#include "string_bytes.h" #include "util.h" #include "v8.h" -#include "string_bytes.h" #include #include @@ -30,11 +29,12 @@ #endif // OPENSSL_FIPS #include +#include +#include #include +#include #include #include -#include -#include namespace node { namespace crypto { @@ -219,37 +219,74 @@ T* MallocOpenSSL(size_t count) { return static_cast(mem); } -template -T* ReallocOpenSSL(T* buf, size_t count) { - void* mem = OPENSSL_realloc(buf, MultiplyWithOverflowCheck(count, sizeof(T))); - CHECK_IMPLIES(mem == nullptr, count == 0); - return static_cast(mem); -} - // A helper class representing a read-only byte array. When deallocated, its // contents are zeroed. class ByteSource { public: + class Builder { + public: + // Allocates memory using OpenSSL's memory allocator. + explicit Builder(size_t size) + : data_(MallocOpenSSL(size)), size_(size) {} + + Builder(Builder&& other) = delete; + Builder& operator=(Builder&& other) = delete; + Builder(const Builder&) = delete; + Builder& operator=(const Builder&) = delete; + + ~Builder() { OPENSSL_clear_free(data_, size_); } + + // Returns the underlying non-const pointer. + template + T* data() { + return reinterpret_cast(data_); + } + + // Returns the (allocated) size in bytes. + size_t size() const { return size_; } + + // Finalizes the Builder and returns a read-only view that is optionally + // truncated. + ByteSource release(std::optional resize = std::nullopt) && { + if (resize) { + CHECK_LE(*resize, size_); + if (*resize == 0) { + OPENSSL_clear_free(data_, size_); + data_ = nullptr; + } + size_ = *resize; + } + ByteSource out = ByteSource::Allocated(data_, size_); + data_ = nullptr; + size_ = 0; + return out; + } + + private: + void* data_; + size_t size_; + }; + ByteSource() = default; ByteSource(ByteSource&& other) noexcept; ~ByteSource(); ByteSource& operator=(ByteSource&& other) noexcept; - const char* get() const; + ByteSource(const ByteSource&) = delete; + ByteSource& operator=(const ByteSource&) = delete; - template - const T* data() const { return reinterpret_cast(get()); } + template + const T* data() const { + return reinterpret_cast(data_); + } - size_t size() const; + size_t size() const { return size_; } operator bool() const { return data_ != nullptr; } BignumPointer ToBN() const { - return BignumPointer(BN_bin2bn( - reinterpret_cast(get()), - size(), - nullptr)); + return BignumPointer(BN_bin2bn(data(), size(), nullptr)); } // Creates a v8::BackingStore that takes over responsibility for @@ -261,19 +298,8 @@ class ByteSource { v8::MaybeLocal ToBuffer(Environment* env); - void reset(); - - // Allows an Allocated ByteSource to be truncated. - void Resize(size_t newsize) { - CHECK_LE(newsize, size_); - CHECK_NOT_NULL(allocated_data_); - char* new_data_ = ReallocOpenSSL(allocated_data_, newsize); - data_ = allocated_data_ = new_data_; - size_ = newsize; - } - - static ByteSource Allocated(char* data, size_t size); - static ByteSource Foreign(const char* data, size_t size); + static ByteSource Allocated(void* data, size_t size); + static ByteSource Foreign(const void* data, size_t size); static ByteSource FromEncodedString(Environment* env, v8::Local value, @@ -296,18 +322,16 @@ class ByteSource { static ByteSource FromSymmetricKeyObjectHandle(v8::Local handle); - ByteSource(const ByteSource&) = delete; - ByteSource& operator=(const ByteSource&) = delete; - static ByteSource FromSecretKeyBytes( Environment* env, v8::Local value); private: - const char* data_ = nullptr; - char* allocated_data_ = nullptr; + const void* data_ = nullptr; + void* allocated_data_ = nullptr; size_t size_ = 0; - ByteSource(const char* data, char* allocated_data, size_t size); + ByteSource(const void* data, void* allocated_data, size_t size) + : data_(data), allocated_data_(allocated_data), size_(size) {} }; enum CryptoJobMode { @@ -753,20 +777,6 @@ class ArrayBufferOrViewContents { std::shared_ptr store_; }; -template -std::vector CopyBuffer(const ArrayBufferOrViewContents& buf) { - std::vector vec; - vec->resize(buf.size()); - if (vec->size() > 0 && buf.data() != nullptr) - memcpy(vec->data(), buf.data(), vec->size()); - return vec; -} - -template -std::vector CopyBuffer(v8::Local buf) { - return CopyBuffer(ArrayBufferOrViewContents(buf)); -} - v8::MaybeLocal EncodeBignum( Environment* env, const BIGNUM* bn, diff --git a/src/debug_utils.h b/src/debug_utils.h index 377493359e91e1..bd1fa5207f9520 100644 --- a/src/debug_utils.h +++ b/src/debug_utils.h @@ -35,7 +35,7 @@ template inline std::string SPrintF(const char* format, Args&&... args); template inline void FPrintF(FILE* file, const char* format, Args&&... args); -void FWrite(FILE* file, const std::string& str); +void NODE_EXTERN_PRIVATE FWrite(FILE* file, const std::string& str); // Listing the AsyncWrap provider types first enables us to cast directly // from a provider type to a debug category. @@ -57,7 +57,7 @@ enum class DebugCategory { CATEGORY_COUNT }; -class EnabledDebugList { +class NODE_EXTERN_PRIVATE EnabledDebugList { public: bool enabled(DebugCategory category) const { DCHECK_GE(static_cast(category), 0); @@ -168,7 +168,7 @@ void CheckedUvLoopClose(uv_loop_t* loop); void PrintLibuvHandleInformation(uv_loop_t* loop, FILE* stream); namespace per_process { -extern EnabledDebugList enabled_debug_list; +extern NODE_EXTERN_PRIVATE EnabledDebugList enabled_debug_list; template inline void FORCE_INLINE Debug(DebugCategory cat, diff --git a/src/env-inl.h b/src/env-inl.h index 21d365c04ba3c3..96dd6c30ad57bf 100644 --- a/src/env-inl.h +++ b/src/env-inl.h @@ -25,11 +25,11 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS #include "aliased_buffer.h" -#include "allocated_buffer-inl.h" #include "callback_queue-inl.h" #include "env.h" #include "node.h" #include "node_context_data.h" +#include "node_internals.h" #include "node_perf_common.h" #include "util-inl.h" #include "uv.h" @@ -43,6 +43,16 @@ namespace node { +NoArrayBufferZeroFillScope::NoArrayBufferZeroFillScope( + IsolateData* isolate_data) + : node_allocator_(isolate_data->node_allocator()) { + if (node_allocator_ != nullptr) node_allocator_->zero_fill_field()[0] = 0; +} + +NoArrayBufferZeroFillScope::~NoArrayBufferZeroFillScope() { + if (node_allocator_ != nullptr) node_allocator_->zero_fill_field()[0] = 1; +} + inline v8::Isolate* IsolateData::isolate() const { return isolate_; } @@ -107,8 +117,7 @@ inline void AsyncHooks::SetJSPromiseHooks(v8::Local init, js_promise_hooks_[3].Reset(env()->isolate(), resolve); for (auto it = contexts_.begin(); it != contexts_.end(); it++) { if (it->IsEmpty()) { - it = contexts_.erase(it); - it--; + contexts_.erase(it--); continue; } PersistentToLocal::Weak(env()->isolate(), *it) @@ -251,12 +260,11 @@ inline void AsyncHooks::AddContext(v8::Local ctx) { inline void AsyncHooks::RemoveContext(v8::Local ctx) { v8::Isolate* isolate = env()->isolate(); v8::HandleScope handle_scope(isolate); + contexts_.erase(std::remove_if(contexts_.begin(), + contexts_.end(), + [&](auto&& el) { return el.IsEmpty(); }), + contexts_.end()); for (auto it = contexts_.begin(); it != contexts_.end(); it++) { - if (it->IsEmpty()) { - it = contexts_.erase(it); - it--; - continue; - } v8::Local saved_context = PersistentToLocal::Weak(isolate, *it); if (saved_context == ctx) { @@ -981,7 +989,7 @@ inline uv_buf_t Environment::allocate_managed_buffer( std::unique_ptr bs = v8::ArrayBuffer::NewBackingStore(isolate(), suggested_size); uv_buf_t buf = uv_buf_init(static_cast(bs->Data()), bs->ByteLength()); - released_allocated_buffers()->emplace(buf.base, std::move(bs)); + released_allocated_buffers_.emplace(buf.base, std::move(bs)); return buf; } @@ -989,20 +997,14 @@ inline std::unique_ptr Environment::release_managed_buffer( const uv_buf_t& buf) { std::unique_ptr bs; if (buf.base != nullptr) { - auto map = released_allocated_buffers(); - auto it = map->find(buf.base); - CHECK_NE(it, map->end()); + auto it = released_allocated_buffers_.find(buf.base); + CHECK_NE(it, released_allocated_buffers_.end()); bs = std::move(it->second); - map->erase(it); + released_allocated_buffers_.erase(it); } return bs; } -std::unordered_map>* - Environment::released_allocated_buffers() { - return &released_allocated_buffers_; -} - inline void Environment::ThrowError(const char* errmsg) { ThrowError(v8::Exception::Error, errmsg); } diff --git a/src/env.cc b/src/env.cc index 3c07e9342fd338..65467587ffcdd8 100644 --- a/src/env.cc +++ b/src/env.cc @@ -1,5 +1,4 @@ #include "env.h" -#include "allocated_buffer-inl.h" #include "async_wrap.h" #include "base_object-inl.h" #include "debug_utils-inl.h" @@ -35,6 +34,7 @@ using v8::Array; using v8::Boolean; using v8::Context; using v8::EmbedderGraph; +using v8::EscapableHandleScope; using v8::Function; using v8::FunctionTemplate; using v8::HandleScope; @@ -672,10 +672,29 @@ void Environment::PrintSyncTrace() const { isolate(), stack_trace_limit(), StackTrace::kDetailed)); } +MaybeLocal Environment::RunSnapshotSerializeCallback() const { + EscapableHandleScope handle_scope(isolate()); + if (!snapshot_serialize_callback().IsEmpty()) { + Context::Scope context_scope(context()); + return handle_scope.EscapeMaybe(snapshot_serialize_callback()->Call( + context(), v8::Undefined(isolate()), 0, nullptr)); + } + return handle_scope.Escape(Undefined(isolate())); +} + +MaybeLocal Environment::RunSnapshotDeserializeMain() const { + EscapableHandleScope handle_scope(isolate()); + if (!snapshot_deserialize_main().IsEmpty()) { + Context::Scope context_scope(context()); + return handle_scope.EscapeMaybe(snapshot_deserialize_main()->Call( + context(), v8::Undefined(isolate()), 0, nullptr)); + } + return handle_scope.Escape(Undefined(isolate())); +} + void Environment::RunCleanup() { started_cleanup_ = true; - TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), - "RunCleanup", this); + TRACE_EVENT0(TRACING_CATEGORY_NODE1(environment), "RunCleanup"); bindings_.clear(); CleanupHandles(); @@ -717,8 +736,7 @@ void Environment::RunCleanup() { } void Environment::RunAtExitCallbacks() { - TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), - "AtExit", this); + TRACE_EVENT0(TRACING_CATEGORY_NODE1(environment), "AtExit"); for (ExitCallback at_exit : at_exit_functions_) { at_exit.cb_(at_exit.arg_); } @@ -744,8 +762,8 @@ void Environment::RunAndClearInterrupts() { } void Environment::RunAndClearNativeImmediates(bool only_refed) { - TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), - "RunAndClearNativeImmediates", this); + TRACE_EVENT0(TRACING_CATEGORY_NODE1(environment), + "RunAndClearNativeImmediates"); HandleScope handle_scope(isolate_); InternalCallbackScope cb_scope(this, Object::New(isolate_), { 0, 0 }); @@ -849,8 +867,7 @@ void Environment::ToggleTimerRef(bool ref) { void Environment::RunTimers(uv_timer_t* handle) { Environment* env = Environment::from_timer_handle(handle); - TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), - "RunTimers", env); + TRACE_EVENT0(TRACING_CATEGORY_NODE1(environment), "RunTimers"); if (!env->can_call_into_js()) return; @@ -911,8 +928,7 @@ void Environment::RunTimers(uv_timer_t* handle) { void Environment::CheckImmediate(uv_check_t* handle) { Environment* env = Environment::from_immediate_check_handle(handle); - TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), - "CheckImmediate", env); + TRACE_EVENT0(TRACING_CATEGORY_NODE1(environment), "CheckImmediate"); HandleScope scope(env->isolate()); Context::Scope context_scope(env->context()); diff --git a/src/env.h b/src/env.h index efaeb53fbc7599..921b6758ac5b6c 100644 --- a/src/env.h +++ b/src/env.h @@ -34,7 +34,6 @@ #include "handle_wrap.h" #include "node.h" #include "node_binding.h" -#include "node_external_reference.h" #include "node_main_instance.h" #include "node_native_module.h" #include "node_options.h" @@ -138,6 +137,19 @@ enum class FsStatsOffset { constexpr size_t kFsStatsBufferLength = static_cast(FsStatsOffset::kFsStatsFieldsNumber) * 2; +// Disables zero-filling for ArrayBuffer allocations in this scope. This is +// similar to how we implement Buffer.allocUnsafe() in JS land. +class NoArrayBufferZeroFillScope { + public: + inline explicit NoArrayBufferZeroFillScope(IsolateData* isolate_data); + inline ~NoArrayBufferZeroFillScope(); + + private: + NodeArrayBufferAllocator* node_allocator_; + + friend class Environment; +}; + // PER_ISOLATE_* macros: We have a lot of per-isolate properties // and adding and maintaining their getters and setters by hand would be // difficult so let's make the preprocessor generate them for us. @@ -546,19 +558,23 @@ constexpr size_t kFsStatsBufferLength = V(promise_hook_handler, v8::Function) \ V(promise_reject_callback, v8::Function) \ V(script_data_constructor_function, v8::Function) \ + V(snapshot_serialize_callback, v8::Function) \ + V(snapshot_deserialize_callback, v8::Function) \ + V(snapshot_deserialize_main, v8::Function) \ V(source_map_cache_getter, v8::Function) \ V(tick_callback_function, v8::Function) \ V(timers_callback_function, v8::Function) \ V(tls_wrap_constructor_function, v8::Function) \ V(trace_category_state_function, v8::Function) \ V(udp_constructor_function, v8::Function) \ - V(url_constructor_function, v8::Function) + V(url_constructor_function, v8::Function) \ + V(wasm_streaming_compilation_impl, v8::Function) \ + V(wasm_streaming_object_constructor, v8::Function) class Environment; -struct AllocatedBuffer; typedef size_t SnapshotIndex; -class IsolateData : public MemoryRetainer { +class NODE_EXTERN_PRIVATE IsolateData : public MemoryRetainer { public: IsolateData(v8::Isolate* isolate, uv_loop_t* event_loop, @@ -973,9 +989,22 @@ struct EnvSerializeInfo { }; struct SnapshotData { - v8::StartupData blob; + // The result of v8::SnapshotCreator::CreateBlob() during the snapshot + // building process. + v8::StartupData v8_snapshot_blob_data; + + static const size_t kNodeBaseContextIndex = 0; + static const size_t kNodeMainContextIndex = kNodeBaseContextIndex + 1; + std::vector isolate_data_indices; + // TODO(joyeecheung): there should be a vector of env_info once we snapshot + // the worker environments. EnvSerializeInfo env_info; + // A vector of built-in ids and v8::ScriptCompiler::CachedData, this can be + // shared across Node.js instances because they are supposed to share the + // read only space. We use native_module::CodeCacheInfo because + // v8::ScriptCompiler::CachedData is not copyable. + std::vector code_cache; }; class Environment : public MemoryRetainer { @@ -1307,6 +1336,10 @@ class Environment : public MemoryRetainer { void RunWeakRefCleanup(); + v8::MaybeLocal RunSnapshotSerializeCallback() const; + v8::MaybeLocal RunSnapshotDeserializeCallback() const; + v8::MaybeLocal RunSnapshotDeserializeMain() const; + // Strings and private symbols are shared across shared contexts // The getters simply proxy to the per-isolate primitive. #define VP(PropertyName, StringValue) V(v8::Private, PropertyName) @@ -1457,8 +1490,6 @@ class Environment : public MemoryRetainer { inline uv_buf_t allocate_managed_buffer(const size_t suggested_size); inline std::unique_ptr release_managed_buffer( const uv_buf_t& buf); - inline std::unordered_map>* - released_allocated_buffers(); void AddUnmanagedFd(int fd); void RemoveUnmanagedFd(int fd); @@ -1632,8 +1663,8 @@ class Environment : public MemoryRetainer { // the source passed to LoadEnvironment() directly instead. std::unique_ptr main_utf16_; - // Used by AllocatedBuffer::release() to keep track of the BackingStore for - // a given pointer. + // Used by allocate_managed_buffer() and release_managed_buffer() to keep + // track of the BackingStore for a given pointer. std::unordered_map> released_allocated_buffers_; }; diff --git a/src/handle_wrap.h b/src/handle_wrap.h index 2e06829b7bd885..a86f8b41c44a72 100644 --- a/src/handle_wrap.h +++ b/src/handle_wrap.h @@ -97,6 +97,7 @@ class HandleWrap : public AsyncWrap { } static void OnClose(uv_handle_t* handle); + enum { kInitialized, kClosing, kClosed } state_; private: friend class Environment; @@ -109,7 +110,6 @@ class HandleWrap : public AsyncWrap { // refer to `doc/contributing/node-postmortem-support.md` friend int GenDebugSymbols(); ListNode handle_wrap_queue_; - enum { kInitialized, kClosing, kClosed } state_; uv_handle_t* const handle_; }; diff --git a/src/inspector/tracing_agent.h b/src/inspector/tracing_agent.h index e23d2fadae9354..b8274de2be9bc6 100644 --- a/src/inspector/tracing_agent.h +++ b/src/inspector/tracing_agent.h @@ -31,7 +31,7 @@ class TracingAgent : public NodeTracing::Backend { Environment* env_; std::shared_ptr main_thread_; tracing::AgentWriterHandle trace_writer_; - int frontend_object_id_; + int frontend_object_id_ = 0; std::shared_ptr frontend_; }; diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index 5fc533741d7c8d..34bb11e7d7122c 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -97,11 +97,11 @@ static int StartDebugSignalHandler() { pthread_attr_t attr; CHECK_EQ(0, pthread_attr_init(&attr)); #if defined(PTHREAD_STACK_MIN) && !defined(__FreeBSD__) - // PTHREAD_STACK_MIN is 2 KB with musl libc, which is too small to safely - // receive signals. PTHREAD_STACK_MIN + MINSIGSTKSZ is 8 KB on arm64, which + // PTHREAD_STACK_MIN is 2 KiB with musl libc, which is too small to safely + // receive signals. PTHREAD_STACK_MIN + MINSIGSTKSZ is 8 KiB on arm64, which // is the musl architecture with the biggest MINSIGSTKSZ so let's use that // as a lower bound and let's quadruple it just in case. The goal is to avoid - // creating a big 2 or 4 MB address space gap (problematic on 32 bits + // creating a big 2 or 4 MiB address space gap (problematic on 32 bits // because of fragmentation), not squeeze out every last byte. // Omitted on FreeBSD because it doesn't seem to like small stacks. const size_t stack_size = std::max(static_cast(4 * 8192), diff --git a/src/inspector_js_api.cc b/src/inspector_js_api.cc index 4ebb8acd689d58..298066dfc759ba 100644 --- a/src/inspector_js_api.cc +++ b/src/inspector_js_api.cc @@ -343,6 +343,18 @@ void Initialize(Local target, Local unused, env->SetMethod(target, "registerAsyncHook", RegisterAsyncHookWrapper); env->SetMethodNoSideEffect(target, "isEnabled", IsEnabled); + Local console_string = + FIXED_ONE_BYTE_STRING(env->isolate(), "console"); + + // Grab the console from the binding object and expose those to our binding + // layer. + Local binding = context->GetExtrasBindingObject(); + target + ->Set(context, + console_string, + binding->Get(context, console_string).ToLocalChecked()) + .Check(); + JSBindingsConnection::Bind(env, target); JSBindingsConnection::Bind(env, target); } diff --git a/src/js_native_api.h b/src/js_native_api.h index 364d3672d1c344..220d140d4bfe9a 100644 --- a/src/js_native_api.h +++ b/src/js_native_api.h @@ -49,227 +49,228 @@ EXTERN_C_START -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_get_last_error_info(napi_env env, const napi_extended_error_info** result); // Getters for defined singletons -NAPI_EXTERN napi_status napi_get_undefined(napi_env env, napi_value* result); -NAPI_EXTERN napi_status napi_get_null(napi_env env, napi_value* result); -NAPI_EXTERN napi_status napi_get_global(napi_env env, napi_value* result); -NAPI_EXTERN napi_status napi_get_boolean(napi_env env, - bool value, - napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_undefined(napi_env env, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_null(napi_env env, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_global(napi_env env, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_boolean(napi_env env, + bool value, + napi_value* result); // Methods to create Primitive types/Objects -NAPI_EXTERN napi_status napi_create_object(napi_env env, napi_value* result); -NAPI_EXTERN napi_status napi_create_array(napi_env env, napi_value* result); -NAPI_EXTERN napi_status napi_create_array_with_length(napi_env env, - size_t length, +NAPI_EXTERN napi_status NAPI_CDECL napi_create_object(napi_env env, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_array(napi_env env, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_array_with_length(napi_env env, size_t length, napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_double(napi_env env, + double value, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_int32(napi_env env, + int32_t value, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_uint32(napi_env env, + uint32_t value, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_int64(napi_env env, + int64_t value, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_string_latin1( + napi_env env, const char* str, size_t length, napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_string_utf8(napi_env env, + const char* str, + size_t length, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_string_utf16(napi_env env, + const char16_t* str, + size_t length, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_symbol(napi_env env, + napi_value description, napi_value* result); -NAPI_EXTERN napi_status napi_create_double(napi_env env, - double value, - napi_value* result); -NAPI_EXTERN napi_status napi_create_int32(napi_env env, - int32_t value, - napi_value* result); -NAPI_EXTERN napi_status napi_create_uint32(napi_env env, - uint32_t value, - napi_value* result); -NAPI_EXTERN napi_status napi_create_int64(napi_env env, - int64_t value, - napi_value* result); -NAPI_EXTERN napi_status napi_create_string_latin1(napi_env env, - const char* str, - size_t length, - napi_value* result); -NAPI_EXTERN napi_status napi_create_string_utf8(napi_env env, - const char* str, - size_t length, - napi_value* result); -NAPI_EXTERN napi_status napi_create_string_utf16(napi_env env, - const char16_t* str, - size_t length, - napi_value* result); -NAPI_EXTERN napi_status napi_create_symbol(napi_env env, - napi_value description, - napi_value* result); #ifdef NAPI_EXPERIMENTAL -NAPI_EXTERN napi_status node_api_symbol_for(napi_env env, - const char* utf8description, - size_t length, - napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL +node_api_symbol_for(napi_env env, + const char* utf8description, + size_t length, + napi_value* result); #endif // NAPI_EXPERIMENTAL -NAPI_EXTERN napi_status napi_create_function(napi_env env, - const char* utf8name, - size_t length, - napi_callback cb, - void* data, - napi_value* result); -NAPI_EXTERN napi_status napi_create_error(napi_env env, - napi_value code, - napi_value msg, - napi_value* result); -NAPI_EXTERN napi_status napi_create_type_error(napi_env env, - napi_value code, - napi_value msg, - napi_value* result); -NAPI_EXTERN napi_status napi_create_range_error(napi_env env, - napi_value code, - napi_value msg, - napi_value* result); -#ifdef NAPI_EXPERIMENTAL -NAPI_EXTERN napi_status node_api_create_syntax_error(napi_env env, +NAPI_EXTERN napi_status NAPI_CDECL napi_create_function(napi_env env, + const char* utf8name, + size_t length, + napi_callback cb, + void* data, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_error(napi_env env, napi_value code, napi_value msg, napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_type_error(napi_env env, + napi_value code, + napi_value msg, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_range_error(napi_env env, + napi_value code, + napi_value msg, + napi_value* result); +#ifdef NAPI_EXPERIMENTAL +NAPI_EXTERN napi_status NAPI_CDECL node_api_create_syntax_error( + napi_env env, napi_value code, napi_value msg, napi_value* result); #endif // NAPI_EXPERIMENTAL // Methods to get the native napi_value from Primitive type -NAPI_EXTERN napi_status napi_typeof(napi_env env, - napi_value value, - napi_valuetype* result); -NAPI_EXTERN napi_status napi_get_value_double(napi_env env, - napi_value value, - double* result); -NAPI_EXTERN napi_status napi_get_value_int32(napi_env env, - napi_value value, - int32_t* result); -NAPI_EXTERN napi_status napi_get_value_uint32(napi_env env, - napi_value value, - uint32_t* result); -NAPI_EXTERN napi_status napi_get_value_int64(napi_env env, - napi_value value, - int64_t* result); -NAPI_EXTERN napi_status napi_get_value_bool(napi_env env, - napi_value value, - bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_typeof(napi_env env, + napi_value value, + napi_valuetype* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_double(napi_env env, + napi_value value, + double* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_int32(napi_env env, + napi_value value, + int32_t* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_uint32(napi_env env, + napi_value value, + uint32_t* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_int64(napi_env env, + napi_value value, + int64_t* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_bool(napi_env env, + napi_value value, + bool* result); // Copies LATIN-1 encoded bytes from a string into a buffer. -NAPI_EXTERN napi_status napi_get_value_string_latin1( +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_string_latin1( napi_env env, napi_value value, char* buf, size_t bufsize, size_t* result); // Copies UTF-8 encoded bytes from a string into a buffer. -NAPI_EXTERN napi_status napi_get_value_string_utf8( +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_string_utf8( napi_env env, napi_value value, char* buf, size_t bufsize, size_t* result); // Copies UTF-16 encoded bytes from a string into a buffer. -NAPI_EXTERN napi_status napi_get_value_string_utf16(napi_env env, - napi_value value, - char16_t* buf, - size_t bufsize, - size_t* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_string_utf16(napi_env env, + napi_value value, + char16_t* buf, + size_t bufsize, + size_t* result); // Methods to coerce values // These APIs may execute user scripts -NAPI_EXTERN napi_status napi_coerce_to_bool(napi_env env, - napi_value value, - napi_value* result); -NAPI_EXTERN napi_status napi_coerce_to_number(napi_env env, - napi_value value, - napi_value* result); -NAPI_EXTERN napi_status napi_coerce_to_object(napi_env env, - napi_value value, - napi_value* result); -NAPI_EXTERN napi_status napi_coerce_to_string(napi_env env, - napi_value value, - napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_coerce_to_bool(napi_env env, + napi_value value, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_coerce_to_number(napi_env env, + napi_value value, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_coerce_to_object(napi_env env, + napi_value value, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_coerce_to_string(napi_env env, + napi_value value, + napi_value* result); // Methods to work with Objects -NAPI_EXTERN napi_status napi_get_prototype(napi_env env, - napi_value object, - napi_value* result); -NAPI_EXTERN napi_status napi_get_property_names(napi_env env, - napi_value object, - napi_value* result); -NAPI_EXTERN napi_status napi_set_property(napi_env env, - napi_value object, - napi_value key, - napi_value value); -NAPI_EXTERN napi_status napi_has_property(napi_env env, - napi_value object, - napi_value key, - bool* result); -NAPI_EXTERN napi_status napi_get_property(napi_env env, - napi_value object, - napi_value key, - napi_value* result); -NAPI_EXTERN napi_status napi_delete_property(napi_env env, - napi_value object, - napi_value key, - bool* result); -NAPI_EXTERN napi_status napi_has_own_property(napi_env env, - napi_value object, - napi_value key, - bool* result); -NAPI_EXTERN napi_status napi_set_named_property(napi_env env, - napi_value object, - const char* utf8name, - napi_value value); -NAPI_EXTERN napi_status napi_has_named_property(napi_env env, - napi_value object, - const char* utf8name, - bool* result); -NAPI_EXTERN napi_status napi_get_named_property(napi_env env, - napi_value object, - const char* utf8name, - napi_value* result); -NAPI_EXTERN napi_status napi_set_element(napi_env env, - napi_value object, - uint32_t index, - napi_value value); -NAPI_EXTERN napi_status napi_has_element(napi_env env, - napi_value object, - uint32_t index, - bool* result); -NAPI_EXTERN napi_status napi_get_element(napi_env env, - napi_value object, - uint32_t index, - napi_value* result); -NAPI_EXTERN napi_status napi_delete_element(napi_env env, - napi_value object, - uint32_t index, - bool* result); -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_get_prototype(napi_env env, + napi_value object, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_property_names(napi_env env, + napi_value object, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_set_property(napi_env env, + napi_value object, + napi_value key, + napi_value value); +NAPI_EXTERN napi_status NAPI_CDECL napi_has_property(napi_env env, + napi_value object, + napi_value key, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_property(napi_env env, + napi_value object, + napi_value key, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_delete_property(napi_env env, + napi_value object, + napi_value key, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_has_own_property(napi_env env, + napi_value object, + napi_value key, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_set_named_property(napi_env env, + napi_value object, + const char* utf8name, + napi_value value); +NAPI_EXTERN napi_status NAPI_CDECL napi_has_named_property(napi_env env, + napi_value object, + const char* utf8name, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_named_property(napi_env env, + napi_value object, + const char* utf8name, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_set_element(napi_env env, + napi_value object, + uint32_t index, + napi_value value); +NAPI_EXTERN napi_status NAPI_CDECL napi_has_element(napi_env env, + napi_value object, + uint32_t index, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_element(napi_env env, + napi_value object, + uint32_t index, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_delete_element(napi_env env, + napi_value object, + uint32_t index, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_define_properties(napi_env env, napi_value object, size_t property_count, const napi_property_descriptor* properties); // Methods to work with Arrays -NAPI_EXTERN napi_status napi_is_array(napi_env env, - napi_value value, - bool* result); -NAPI_EXTERN napi_status napi_get_array_length(napi_env env, - napi_value value, - uint32_t* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_is_array(napi_env env, + napi_value value, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_array_length(napi_env env, + napi_value value, + uint32_t* result); // Methods to compare values -NAPI_EXTERN napi_status napi_strict_equals(napi_env env, - napi_value lhs, - napi_value rhs, - bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_strict_equals(napi_env env, + napi_value lhs, + napi_value rhs, + bool* result); // Methods to work with Functions -NAPI_EXTERN napi_status napi_call_function(napi_env env, - napi_value recv, - napi_value func, - size_t argc, - const napi_value* argv, - napi_value* result); -NAPI_EXTERN napi_status napi_new_instance(napi_env env, - napi_value constructor, - size_t argc, - const napi_value* argv, - napi_value* result); -NAPI_EXTERN napi_status napi_instanceof(napi_env env, - napi_value object, - napi_value constructor, - bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_call_function(napi_env env, + napi_value recv, + napi_value func, + size_t argc, + const napi_value* argv, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_new_instance(napi_env env, + napi_value constructor, + size_t argc, + const napi_value* argv, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_instanceof(napi_env env, + napi_value object, + napi_value constructor, + bool* result); // Methods to work with napi_callbacks // Gets all callback info in a single call. (Ugly, but faster.) -NAPI_EXTERN napi_status napi_get_cb_info( +NAPI_EXTERN napi_status NAPI_CDECL napi_get_cb_info( napi_env env, // [in] NAPI environment handle napi_callback_info cbinfo, // [in] Opaque callback-info handle size_t* argc, // [in-out] Specifies the size of the provided argv array @@ -278,10 +279,9 @@ NAPI_EXTERN napi_status napi_get_cb_info( napi_value* this_arg, // [out] Receives the JS 'this' arg for the call void** data); // [out] Receives the data pointer for the callback. -NAPI_EXTERN napi_status napi_get_new_target(napi_env env, - napi_callback_info cbinfo, - napi_value* result); -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_get_new_target( + napi_env env, napi_callback_info cbinfo, napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_define_class(napi_env env, const char* utf8name, size_t length, @@ -292,235 +292,240 @@ napi_define_class(napi_env env, napi_value* result); // Methods to work with external data objects -NAPI_EXTERN napi_status napi_wrap(napi_env env, - napi_value js_object, - void* native_object, - napi_finalize finalize_cb, - void* finalize_hint, - napi_ref* result); -NAPI_EXTERN napi_status napi_unwrap(napi_env env, - napi_value js_object, - void** result); -NAPI_EXTERN napi_status napi_remove_wrap(napi_env env, - napi_value js_object, - void** result); -NAPI_EXTERN napi_status napi_create_external(napi_env env, - void* data, +NAPI_EXTERN napi_status NAPI_CDECL napi_wrap(napi_env env, + napi_value js_object, + void* native_object, napi_finalize finalize_cb, void* finalize_hint, - napi_value* result); -NAPI_EXTERN napi_status napi_get_value_external(napi_env env, - napi_value value, - void** result); + napi_ref* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_unwrap(napi_env env, + napi_value js_object, + void** result); +NAPI_EXTERN napi_status NAPI_CDECL napi_remove_wrap(napi_env env, + napi_value js_object, + void** result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_external(napi_env env, + void* data, + napi_finalize finalize_cb, + void* finalize_hint, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_external(napi_env env, + napi_value value, + void** result); // Methods to control object lifespan // Set initial_refcount to 0 for a weak reference, >0 for a strong reference. -NAPI_EXTERN napi_status napi_create_reference(napi_env env, - napi_value value, - uint32_t initial_refcount, - napi_ref* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_reference(napi_env env, + napi_value value, + uint32_t initial_refcount, + napi_ref* result); // Deletes a reference. The referenced value is released, and may // be GC'd unless there are other references to it. -NAPI_EXTERN napi_status napi_delete_reference(napi_env env, napi_ref ref); +NAPI_EXTERN napi_status NAPI_CDECL napi_delete_reference(napi_env env, + napi_ref ref); // Increments the reference count, optionally returning the resulting count. // After this call the reference will be a strong reference because its // refcount is >0, and the referenced object is effectively "pinned". // Calling this when the refcount is 0 and the object is unavailable // results in an error. -NAPI_EXTERN napi_status napi_reference_ref(napi_env env, - napi_ref ref, - uint32_t* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_reference_ref(napi_env env, + napi_ref ref, + uint32_t* result); // Decrements the reference count, optionally returning the resulting count. // If the result is 0 the reference is now weak and the object may be GC'd // at any time if there are no other references. Calling this when the // refcount is already 0 results in an error. -NAPI_EXTERN napi_status napi_reference_unref(napi_env env, - napi_ref ref, - uint32_t* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_reference_unref(napi_env env, + napi_ref ref, + uint32_t* result); // Attempts to get a referenced value. If the reference is weak, // the value might no longer be available, in that case the call // is still successful but the result is NULL. -NAPI_EXTERN napi_status napi_get_reference_value(napi_env env, - napi_ref ref, - napi_value* result); - -NAPI_EXTERN napi_status napi_open_handle_scope(napi_env env, - napi_handle_scope* result); -NAPI_EXTERN napi_status napi_close_handle_scope(napi_env env, - napi_handle_scope scope); -NAPI_EXTERN napi_status napi_open_escapable_handle_scope( +NAPI_EXTERN napi_status NAPI_CDECL napi_get_reference_value(napi_env env, + napi_ref ref, + napi_value* result); + +NAPI_EXTERN napi_status NAPI_CDECL +napi_open_handle_scope(napi_env env, napi_handle_scope* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_close_handle_scope(napi_env env, napi_handle_scope scope); +NAPI_EXTERN napi_status NAPI_CDECL napi_open_escapable_handle_scope( napi_env env, napi_escapable_handle_scope* result); -NAPI_EXTERN napi_status napi_close_escapable_handle_scope( +NAPI_EXTERN napi_status NAPI_CDECL napi_close_escapable_handle_scope( napi_env env, napi_escapable_handle_scope scope); -NAPI_EXTERN napi_status napi_escape_handle(napi_env env, - napi_escapable_handle_scope scope, - napi_value escapee, - napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_escape_handle(napi_env env, + napi_escapable_handle_scope scope, + napi_value escapee, + napi_value* result); // Methods to support error handling -NAPI_EXTERN napi_status napi_throw(napi_env env, napi_value error); -NAPI_EXTERN napi_status napi_throw_error(napi_env env, - const char* code, - const char* msg); -NAPI_EXTERN napi_status napi_throw_type_error(napi_env env, - const char* code, - const char* msg); -NAPI_EXTERN napi_status napi_throw_range_error(napi_env env, - const char* code, - const char* msg); -#ifdef NAPI_EXPERIMENTAL -NAPI_EXTERN napi_status node_api_throw_syntax_error(napi_env env, +NAPI_EXTERN napi_status NAPI_CDECL napi_throw(napi_env env, napi_value error); +NAPI_EXTERN napi_status NAPI_CDECL napi_throw_error(napi_env env, const char* code, const char* msg); +NAPI_EXTERN napi_status NAPI_CDECL napi_throw_type_error(napi_env env, + const char* code, + const char* msg); +NAPI_EXTERN napi_status NAPI_CDECL napi_throw_range_error(napi_env env, + const char* code, + const char* msg); +#ifdef NAPI_EXPERIMENTAL +NAPI_EXTERN napi_status NAPI_CDECL node_api_throw_syntax_error(napi_env env, + const char* code, + const char* msg); #endif // NAPI_EXPERIMENTAL -NAPI_EXTERN napi_status napi_is_error(napi_env env, - napi_value value, - bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_is_error(napi_env env, + napi_value value, + bool* result); // Methods to support catching exceptions -NAPI_EXTERN napi_status napi_is_exception_pending(napi_env env, bool* result); -NAPI_EXTERN napi_status napi_get_and_clear_last_exception(napi_env env, - napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_is_exception_pending(napi_env env, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_get_and_clear_last_exception(napi_env env, napi_value* result); // Methods to work with array buffers and typed arrays -NAPI_EXTERN napi_status napi_is_arraybuffer(napi_env env, - napi_value value, - bool* result); -NAPI_EXTERN napi_status napi_create_arraybuffer(napi_env env, - size_t byte_length, - void** data, - napi_value* result); -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_is_arraybuffer(napi_env env, + napi_value value, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_arraybuffer(napi_env env, + size_t byte_length, + void** data, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_external_arraybuffer(napi_env env, void* external_data, size_t byte_length, napi_finalize finalize_cb, void* finalize_hint, napi_value* result); -NAPI_EXTERN napi_status napi_get_arraybuffer_info(napi_env env, - napi_value arraybuffer, - void** data, - size_t* byte_length); -NAPI_EXTERN napi_status napi_is_typedarray(napi_env env, - napi_value value, - bool* result); -NAPI_EXTERN napi_status napi_create_typedarray(napi_env env, - napi_typedarray_type type, - size_t length, - napi_value arraybuffer, - size_t byte_offset, - napi_value* result); -NAPI_EXTERN napi_status napi_get_typedarray_info(napi_env env, - napi_value typedarray, - napi_typedarray_type* type, - size_t* length, - void** data, - napi_value* arraybuffer, - size_t* byte_offset); - -NAPI_EXTERN napi_status napi_create_dataview(napi_env env, - size_t length, - napi_value arraybuffer, - size_t byte_offset, - napi_value* result); -NAPI_EXTERN napi_status napi_is_dataview(napi_env env, - napi_value value, - bool* result); -NAPI_EXTERN napi_status napi_get_dataview_info(napi_env env, - napi_value dataview, - size_t* bytelength, - void** data, - napi_value* arraybuffer, - size_t* byte_offset); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_arraybuffer_info( + napi_env env, napi_value arraybuffer, void** data, size_t* byte_length); +NAPI_EXTERN napi_status NAPI_CDECL napi_is_typedarray(napi_env env, + napi_value value, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_typedarray(napi_env env, + napi_typedarray_type type, + size_t length, + napi_value arraybuffer, + size_t byte_offset, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_get_typedarray_info(napi_env env, + napi_value typedarray, + napi_typedarray_type* type, + size_t* length, + void** data, + napi_value* arraybuffer, + size_t* byte_offset); + +NAPI_EXTERN napi_status NAPI_CDECL napi_create_dataview(napi_env env, + size_t length, + napi_value arraybuffer, + size_t byte_offset, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_is_dataview(napi_env env, + napi_value value, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_get_dataview_info(napi_env env, + napi_value dataview, + size_t* bytelength, + void** data, + napi_value* arraybuffer, + size_t* byte_offset); // version management -NAPI_EXTERN napi_status napi_get_version(napi_env env, uint32_t* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_version(napi_env env, + uint32_t* result); // Promises -NAPI_EXTERN napi_status napi_create_promise(napi_env env, - napi_deferred* deferred, - napi_value* promise); -NAPI_EXTERN napi_status napi_resolve_deferred(napi_env env, - napi_deferred deferred, - napi_value resolution); -NAPI_EXTERN napi_status napi_reject_deferred(napi_env env, - napi_deferred deferred, - napi_value rejection); -NAPI_EXTERN napi_status napi_is_promise(napi_env env, - napi_value value, - bool* is_promise); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_promise(napi_env env, + napi_deferred* deferred, + napi_value* promise); +NAPI_EXTERN napi_status NAPI_CDECL napi_resolve_deferred(napi_env env, + napi_deferred deferred, + napi_value resolution); +NAPI_EXTERN napi_status NAPI_CDECL napi_reject_deferred(napi_env env, + napi_deferred deferred, + napi_value rejection); +NAPI_EXTERN napi_status NAPI_CDECL napi_is_promise(napi_env env, + napi_value value, + bool* is_promise); // Running a script -NAPI_EXTERN napi_status napi_run_script(napi_env env, - napi_value script, - napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_run_script(napi_env env, + napi_value script, + napi_value* result); // Memory management -NAPI_EXTERN napi_status napi_adjust_external_memory(napi_env env, - int64_t change_in_bytes, - int64_t* adjusted_value); +NAPI_EXTERN napi_status NAPI_CDECL napi_adjust_external_memory( + napi_env env, int64_t change_in_bytes, int64_t* adjusted_value); #if NAPI_VERSION >= 5 // Dates -NAPI_EXTERN napi_status napi_create_date(napi_env env, - double time, - napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_date(napi_env env, + double time, + napi_value* result); -NAPI_EXTERN napi_status napi_is_date(napi_env env, - napi_value value, - bool* is_date); +NAPI_EXTERN napi_status NAPI_CDECL napi_is_date(napi_env env, + napi_value value, + bool* is_date); -NAPI_EXTERN napi_status napi_get_date_value(napi_env env, - napi_value value, - double* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_date_value(napi_env env, + napi_value value, + double* result); // Add finalizer for pointer -NAPI_EXTERN napi_status napi_add_finalizer(napi_env env, - napi_value js_object, - void* native_object, - napi_finalize finalize_cb, - void* finalize_hint, - napi_ref* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_add_finalizer(napi_env env, + napi_value js_object, + void* native_object, + napi_finalize finalize_cb, + void* finalize_hint, + napi_ref* result); #endif // NAPI_VERSION >= 5 #if NAPI_VERSION >= 6 // BigInt -NAPI_EXTERN napi_status napi_create_bigint_int64(napi_env env, - int64_t value, - napi_value* result); -NAPI_EXTERN napi_status napi_create_bigint_uint64(napi_env env, - uint64_t value, - napi_value* result); -NAPI_EXTERN napi_status napi_create_bigint_words(napi_env env, - int sign_bit, - size_t word_count, - const uint64_t* words, - napi_value* result); -NAPI_EXTERN napi_status napi_get_value_bigint_int64(napi_env env, - napi_value value, - int64_t* result, - bool* lossless); -NAPI_EXTERN napi_status napi_get_value_bigint_uint64(napi_env env, - napi_value value, - uint64_t* result, - bool* lossless); -NAPI_EXTERN napi_status napi_get_value_bigint_words(napi_env env, - napi_value value, - int* sign_bit, - size_t* word_count, - uint64_t* words); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_bigint_int64(napi_env env, + int64_t value, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_bigint_uint64(napi_env env, uint64_t value, napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_bigint_words(napi_env env, + int sign_bit, + size_t word_count, + const uint64_t* words, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_bigint_int64(napi_env env, + napi_value value, + int64_t* result, + bool* lossless); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_bigint_uint64( + napi_env env, napi_value value, uint64_t* result, bool* lossless); +NAPI_EXTERN napi_status NAPI_CDECL +napi_get_value_bigint_words(napi_env env, + napi_value value, + int* sign_bit, + size_t* word_count, + uint64_t* words); // Object -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_get_all_property_names(napi_env env, napi_value object, napi_key_collection_mode key_mode, @@ -529,37 +534,36 @@ napi_get_all_property_names(napi_env env, napi_value* result); // Instance data -NAPI_EXTERN napi_status napi_set_instance_data(napi_env env, - void* data, - napi_finalize finalize_cb, - void* finalize_hint); +NAPI_EXTERN napi_status NAPI_CDECL napi_set_instance_data( + napi_env env, void* data, napi_finalize finalize_cb, void* finalize_hint); -NAPI_EXTERN napi_status napi_get_instance_data(napi_env env, void** data); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_instance_data(napi_env env, + void** data); #endif // NAPI_VERSION >= 6 #if NAPI_VERSION >= 7 // ArrayBuffer detaching -NAPI_EXTERN napi_status napi_detach_arraybuffer(napi_env env, - napi_value arraybuffer); +NAPI_EXTERN napi_status NAPI_CDECL +napi_detach_arraybuffer(napi_env env, napi_value arraybuffer); -NAPI_EXTERN napi_status napi_is_detached_arraybuffer(napi_env env, - napi_value value, - bool* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_is_detached_arraybuffer(napi_env env, napi_value value, bool* result); #endif // NAPI_VERSION >= 7 #if NAPI_VERSION >= 8 // Type tagging -NAPI_EXTERN napi_status napi_type_tag_object(napi_env env, - napi_value value, - const napi_type_tag* type_tag); +NAPI_EXTERN napi_status NAPI_CDECL napi_type_tag_object( + napi_env env, napi_value value, const napi_type_tag* type_tag); -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_check_object_type_tag(napi_env env, napi_value value, const napi_type_tag* type_tag, bool* result); -NAPI_EXTERN napi_status napi_object_freeze(napi_env env, napi_value object); -NAPI_EXTERN napi_status napi_object_seal(napi_env env, napi_value object); +NAPI_EXTERN napi_status NAPI_CDECL napi_object_freeze(napi_env env, + napi_value object); +NAPI_EXTERN napi_status NAPI_CDECL napi_object_seal(napi_env env, + napi_value object); #endif // NAPI_VERSION >= 8 EXTERN_C_END diff --git a/src/js_native_api_types.h b/src/js_native_api_types.h index da4bff19d38044..376930ba4a3220 100644 --- a/src/js_native_api_types.h +++ b/src/js_native_api_types.h @@ -11,6 +11,14 @@ typedef uint16_t char16_t; #endif +#ifndef NAPI_CDECL +#ifdef _WIN32 +#define NAPI_CDECL __cdecl +#else +#define NAPI_CDECL +#endif +#endif + // JSVM API types are all opaque pointers for ABI stability // typedef undefined structs instead of void* for compile time type safety typedef struct napi_env__* napi_env; @@ -100,10 +108,11 @@ typedef enum { // * the definition of `napi_status` in doc/api/n-api.md to reflect the newly // added value(s). -typedef napi_value (*napi_callback)(napi_env env, napi_callback_info info); -typedef void (*napi_finalize)(napi_env env, - void* finalize_data, - void* finalize_hint); +typedef napi_value(NAPI_CDECL* napi_callback)(napi_env env, + napi_callback_info info); +typedef void(NAPI_CDECL* napi_finalize)(napi_env env, + void* finalize_data, + void* finalize_hint); typedef struct { // One of utf8name or name should be NULL. diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc index 611a0521fceab8..0ddbc87e45393e 100644 --- a/src/js_native_api_v8.cc +++ b/src/js_native_api_v8.cc @@ -750,8 +750,8 @@ static const char* error_messages[] = { "Main thread would deadlock", }; -napi_status napi_get_last_error_info(napi_env env, - const napi_extended_error_info** result) { +napi_status NAPI_CDECL napi_get_last_error_info( + napi_env env, const napi_extended_error_info** result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -775,12 +775,12 @@ napi_status napi_get_last_error_info(napi_env env, return napi_ok; } -napi_status napi_create_function(napi_env env, - const char* utf8name, - size_t length, - napi_callback cb, - void* callback_data, - napi_value* result) { +napi_status NAPI_CDECL napi_create_function(napi_env env, + const char* utf8name, + size_t length, + napi_callback cb, + void* callback_data, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); CHECK_ARG(env, cb); @@ -803,14 +803,15 @@ napi_status napi_create_function(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_define_class(napi_env env, - const char* utf8name, - size_t length, - napi_callback constructor, - void* callback_data, - size_t property_count, - const napi_property_descriptor* properties, - napi_value* result) { +napi_status NAPI_CDECL +napi_define_class(napi_env env, + const char* utf8name, + size_t length, + napi_callback constructor, + void* callback_data, + size_t property_count, + const napi_property_descriptor* properties, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); CHECK_ARG(env, constructor); @@ -901,9 +902,9 @@ napi_status napi_define_class(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_get_property_names(napi_env env, - napi_value object, - napi_value* result) { +napi_status NAPI_CDECL napi_get_property_names(napi_env env, + napi_value object, + napi_value* result) { return napi_get_all_property_names( env, object, @@ -913,12 +914,13 @@ napi_status napi_get_property_names(napi_env env, result); } -napi_status napi_get_all_property_names(napi_env env, - napi_value object, - napi_key_collection_mode key_mode, - napi_key_filter key_filter, - napi_key_conversion key_conversion, - napi_value* result) { +napi_status NAPI_CDECL +napi_get_all_property_names(napi_env env, + napi_value object, + napi_key_collection_mode key_mode, + napi_key_filter key_filter, + napi_key_conversion key_conversion, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -936,8 +938,8 @@ napi_status napi_get_all_property_names(napi_env env, filter | v8::PropertyFilter::ONLY_ENUMERABLE); } if (key_filter & napi_key_configurable) { - filter = static_cast(filter | - v8::PropertyFilter::ONLY_WRITABLE); + filter = static_cast( + filter | v8::PropertyFilter::ONLY_CONFIGURABLE); } if (key_filter & napi_key_skip_strings) { filter = static_cast(filter | @@ -987,10 +989,10 @@ napi_status napi_get_all_property_names(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_set_property(napi_env env, - napi_value object, - napi_value key, - napi_value value) { +napi_status NAPI_CDECL napi_set_property(napi_env env, + napi_value object, + napi_value key, + napi_value value) { NAPI_PREAMBLE(env); CHECK_ARG(env, key); CHECK_ARG(env, value); @@ -1009,10 +1011,10 @@ napi_status napi_set_property(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_has_property(napi_env env, - napi_value object, - napi_value key, - bool* result) { +napi_status NAPI_CDECL napi_has_property(napi_env env, + napi_value object, + napi_value key, + bool* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); CHECK_ARG(env, key); @@ -1031,10 +1033,10 @@ napi_status napi_has_property(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_get_property(napi_env env, - napi_value object, - napi_value key, - napi_value* result) { +napi_status NAPI_CDECL napi_get_property(napi_env env, + napi_value object, + napi_value key, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, key); CHECK_ARG(env, result); @@ -1054,10 +1056,10 @@ napi_status napi_get_property(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_delete_property(napi_env env, - napi_value object, - napi_value key, - bool* result) { +napi_status NAPI_CDECL napi_delete_property(napi_env env, + napi_value object, + napi_value key, + bool* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, key); @@ -1074,10 +1076,10 @@ napi_status napi_delete_property(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_has_own_property(napi_env env, - napi_value object, - napi_value key, - bool* result) { +napi_status NAPI_CDECL napi_has_own_property(napi_env env, + napi_value object, + napi_value key, + bool* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, key); CHECK_ARG(env, result); @@ -1095,10 +1097,10 @@ napi_status napi_has_own_property(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_set_named_property(napi_env env, - napi_value object, - const char* utf8name, - napi_value value) { +napi_status NAPI_CDECL napi_set_named_property(napi_env env, + napi_value object, + const char* utf8name, + napi_value value) { NAPI_PREAMBLE(env); CHECK_ARG(env, value); @@ -1118,10 +1120,10 @@ napi_status napi_set_named_property(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_has_named_property(napi_env env, - napi_value object, - const char* utf8name, - bool* result) { +napi_status NAPI_CDECL napi_has_named_property(napi_env env, + napi_value object, + const char* utf8name, + bool* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -1141,10 +1143,10 @@ napi_status napi_has_named_property(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_get_named_property(napi_env env, - napi_value object, - const char* utf8name, - napi_value* result) { +napi_status NAPI_CDECL napi_get_named_property(napi_env env, + napi_value object, + const char* utf8name, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -1166,10 +1168,10 @@ napi_status napi_get_named_property(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_set_element(napi_env env, - napi_value object, - uint32_t index, - napi_value value) { +napi_status NAPI_CDECL napi_set_element(napi_env env, + napi_value object, + uint32_t index, + napi_value value) { NAPI_PREAMBLE(env); CHECK_ARG(env, value); @@ -1186,10 +1188,10 @@ napi_status napi_set_element(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_has_element(napi_env env, - napi_value object, - uint32_t index, - bool* result) { +napi_status NAPI_CDECL napi_has_element(napi_env env, + napi_value object, + uint32_t index, + bool* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -1206,10 +1208,10 @@ napi_status napi_has_element(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_get_element(napi_env env, - napi_value object, - uint32_t index, - napi_value* result) { +napi_status NAPI_CDECL napi_get_element(napi_env env, + napi_value object, + uint32_t index, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -1226,10 +1228,10 @@ napi_status napi_get_element(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_delete_element(napi_env env, - napi_value object, - uint32_t index, - bool* result) { +napi_status NAPI_CDECL napi_delete_element(napi_env env, + napi_value object, + uint32_t index, + bool* result) { NAPI_PREAMBLE(env); v8::Local context = env->context(); @@ -1244,10 +1246,11 @@ napi_status napi_delete_element(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_define_properties(napi_env env, - napi_value object, - size_t property_count, - const napi_property_descriptor* properties) { +napi_status NAPI_CDECL +napi_define_properties(napi_env env, + napi_value object, + size_t property_count, + const napi_property_descriptor* properties) { NAPI_PREAMBLE(env); if (property_count > 0) { CHECK_ARG(env, properties); @@ -1322,7 +1325,7 @@ napi_status napi_define_properties(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_object_freeze(napi_env env, napi_value object) { +napi_status NAPI_CDECL napi_object_freeze(napi_env env, napi_value object) { NAPI_PREAMBLE(env); v8::Local context = env->context(); @@ -1339,7 +1342,7 @@ napi_status napi_object_freeze(napi_env env, napi_value object) { return GET_RETURN_STATUS(env); } -napi_status napi_object_seal(napi_env env, napi_value object) { +napi_status NAPI_CDECL napi_object_seal(napi_env env, napi_value object) { NAPI_PREAMBLE(env); v8::Local context = env->context(); @@ -1356,7 +1359,9 @@ napi_status napi_object_seal(napi_env env, napi_value object) { return GET_RETURN_STATUS(env); } -napi_status napi_is_array(napi_env env, napi_value value, bool* result) { +napi_status NAPI_CDECL napi_is_array(napi_env env, + napi_value value, + bool* result) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -1367,9 +1372,9 @@ napi_status napi_is_array(napi_env env, napi_value value, bool* result) { return napi_clear_last_error(env); } -napi_status napi_get_array_length(napi_env env, - napi_value value, - uint32_t* result) { +napi_status NAPI_CDECL napi_get_array_length(napi_env env, + napi_value value, + uint32_t* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -1383,10 +1388,10 @@ napi_status napi_get_array_length(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_strict_equals(napi_env env, - napi_value lhs, - napi_value rhs, - bool* result) { +napi_status NAPI_CDECL napi_strict_equals(napi_env env, + napi_value lhs, + napi_value rhs, + bool* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, lhs); CHECK_ARG(env, rhs); @@ -1399,9 +1404,9 @@ napi_status napi_strict_equals(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_get_prototype(napi_env env, - napi_value object, - napi_value* result) { +napi_status NAPI_CDECL napi_get_prototype(napi_env env, + napi_value object, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -1415,7 +1420,7 @@ napi_status napi_get_prototype(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_create_object(napi_env env, napi_value* result) { +napi_status NAPI_CDECL napi_create_object(napi_env env, napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1424,7 +1429,7 @@ napi_status napi_create_object(napi_env env, napi_value* result) { return napi_clear_last_error(env); } -napi_status napi_create_array(napi_env env, napi_value* result) { +napi_status NAPI_CDECL napi_create_array(napi_env env, napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1433,9 +1438,9 @@ napi_status napi_create_array(napi_env env, napi_value* result) { return napi_clear_last_error(env); } -napi_status napi_create_array_with_length(napi_env env, - size_t length, - napi_value* result) { +napi_status NAPI_CDECL napi_create_array_with_length(napi_env env, + size_t length, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1445,10 +1450,10 @@ napi_status napi_create_array_with_length(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_string_latin1(napi_env env, - const char* str, - size_t length, - napi_value* result) { +napi_status NAPI_CDECL napi_create_string_latin1(napi_env env, + const char* str, + size_t length, + napi_value* result) { CHECK_ENV(env); if (length > 0) CHECK_ARG(env, str); CHECK_ARG(env, result); @@ -1467,10 +1472,10 @@ napi_status napi_create_string_latin1(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_string_utf8(napi_env env, - const char* str, - size_t length, - napi_value* result) { +napi_status NAPI_CDECL napi_create_string_utf8(napi_env env, + const char* str, + size_t length, + napi_value* result) { CHECK_ENV(env); if (length > 0) CHECK_ARG(env, str); CHECK_ARG(env, result); @@ -1485,10 +1490,10 @@ napi_status napi_create_string_utf8(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_string_utf16(napi_env env, - const char16_t* str, - size_t length, - napi_value* result) { +napi_status NAPI_CDECL napi_create_string_utf16(napi_env env, + const char16_t* str, + size_t length, + napi_value* result) { CHECK_ENV(env); if (length > 0) CHECK_ARG(env, str); CHECK_ARG(env, result); @@ -1507,7 +1512,9 @@ napi_status napi_create_string_utf16(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_double(napi_env env, double value, napi_value* result) { +napi_status NAPI_CDECL napi_create_double(napi_env env, + double value, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1517,7 +1524,9 @@ napi_status napi_create_double(napi_env env, double value, napi_value* result) { return napi_clear_last_error(env); } -napi_status napi_create_int32(napi_env env, int32_t value, napi_value* result) { +napi_status NAPI_CDECL napi_create_int32(napi_env env, + int32_t value, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1527,9 +1536,9 @@ napi_status napi_create_int32(napi_env env, int32_t value, napi_value* result) { return napi_clear_last_error(env); } -napi_status napi_create_uint32(napi_env env, - uint32_t value, - napi_value* result) { +napi_status NAPI_CDECL napi_create_uint32(napi_env env, + uint32_t value, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1539,7 +1548,9 @@ napi_status napi_create_uint32(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_int64(napi_env env, int64_t value, napi_value* result) { +napi_status NAPI_CDECL napi_create_int64(napi_env env, + int64_t value, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1549,9 +1560,9 @@ napi_status napi_create_int64(napi_env env, int64_t value, napi_value* result) { return napi_clear_last_error(env); } -napi_status napi_create_bigint_int64(napi_env env, - int64_t value, - napi_value* result) { +napi_status NAPI_CDECL napi_create_bigint_int64(napi_env env, + int64_t value, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1561,9 +1572,9 @@ napi_status napi_create_bigint_int64(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_bigint_uint64(napi_env env, - uint64_t value, - napi_value* result) { +napi_status NAPI_CDECL napi_create_bigint_uint64(napi_env env, + uint64_t value, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1573,11 +1584,11 @@ napi_status napi_create_bigint_uint64(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_bigint_words(napi_env env, - int sign_bit, - size_t word_count, - const uint64_t* words, - napi_value* result) { +napi_status NAPI_CDECL napi_create_bigint_words(napi_env env, + int sign_bit, + size_t word_count, + const uint64_t* words, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, words); CHECK_ARG(env, result); @@ -1595,7 +1606,9 @@ napi_status napi_create_bigint_words(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_get_boolean(napi_env env, bool value, napi_value* result) { +napi_status NAPI_CDECL napi_get_boolean(napi_env env, + bool value, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1610,9 +1623,9 @@ napi_status napi_get_boolean(napi_env env, bool value, napi_value* result) { return napi_clear_last_error(env); } -napi_status napi_create_symbol(napi_env env, - napi_value description, - napi_value* result) { +napi_status NAPI_CDECL napi_create_symbol(napi_env env, + napi_value description, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1631,10 +1644,10 @@ napi_status napi_create_symbol(napi_env env, return napi_clear_last_error(env); } -napi_status node_api_symbol_for(napi_env env, - const char* utf8description, - size_t length, - napi_value* result) { +napi_status NAPI_CDECL node_api_symbol_for(napi_env env, + const char* utf8description, + size_t length, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1676,10 +1689,10 @@ static inline napi_status set_error_code(napi_env env, return napi_ok; } -napi_status napi_create_error(napi_env env, - napi_value code, - napi_value msg, - napi_value* result) { +napi_status NAPI_CDECL napi_create_error(napi_env env, + napi_value code, + napi_value msg, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, msg); CHECK_ARG(env, result); @@ -1696,10 +1709,10 @@ napi_status napi_create_error(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_type_error(napi_env env, - napi_value code, - napi_value msg, - napi_value* result) { +napi_status NAPI_CDECL napi_create_type_error(napi_env env, + napi_value code, + napi_value msg, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, msg); CHECK_ARG(env, result); @@ -1716,10 +1729,10 @@ napi_status napi_create_type_error(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_range_error(napi_env env, - napi_value code, - napi_value msg, - napi_value* result) { +napi_status NAPI_CDECL napi_create_range_error(napi_env env, + napi_value code, + napi_value msg, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, msg); CHECK_ARG(env, result); @@ -1736,10 +1749,10 @@ napi_status napi_create_range_error(napi_env env, return napi_clear_last_error(env); } -napi_status node_api_create_syntax_error(napi_env env, - napi_value code, - napi_value msg, - napi_value* result) { +napi_status NAPI_CDECL node_api_create_syntax_error(napi_env env, + napi_value code, + napi_value msg, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, msg); CHECK_ARG(env, result); @@ -1756,9 +1769,9 @@ napi_status node_api_create_syntax_error(napi_env env, return napi_clear_last_error(env); } -napi_status napi_typeof(napi_env env, - napi_value value, - napi_valuetype* result) { +napi_status NAPI_CDECL napi_typeof(napi_env env, + napi_value value, + napi_valuetype* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -1799,7 +1812,7 @@ napi_status napi_typeof(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_undefined(napi_env env, napi_value* result) { +napi_status NAPI_CDECL napi_get_undefined(napi_env env, napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1808,7 +1821,7 @@ napi_status napi_get_undefined(napi_env env, napi_value* result) { return napi_clear_last_error(env); } -napi_status napi_get_null(napi_env env, napi_value* result) { +napi_status NAPI_CDECL napi_get_null(napi_env env, napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1818,7 +1831,7 @@ napi_status napi_get_null(napi_env env, napi_value* result) { } // Gets all callback info in a single call. (Ugly, but faster.) -napi_status napi_get_cb_info( +napi_status NAPI_CDECL napi_get_cb_info( napi_env env, // [in] NAPI environment handle napi_callback_info cbinfo, // [in] Opaque callback-info handle size_t* argc, // [in-out] Specifies the size of the provided argv array @@ -1849,9 +1862,9 @@ napi_status napi_get_cb_info( return napi_clear_last_error(env); } -napi_status napi_get_new_target(napi_env env, - napi_callback_info cbinfo, - napi_value* result) { +napi_status NAPI_CDECL napi_get_new_target(napi_env env, + napi_callback_info cbinfo, + napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, cbinfo); CHECK_ARG(env, result); @@ -1863,12 +1876,12 @@ napi_status napi_get_new_target(napi_env env, return napi_clear_last_error(env); } -napi_status napi_call_function(napi_env env, - napi_value recv, - napi_value func, - size_t argc, - const napi_value* argv, - napi_value* result) { +napi_status NAPI_CDECL napi_call_function(napi_env env, + napi_value recv, + napi_value func, + size_t argc, + const napi_value* argv, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, recv); if (argc > 0) { @@ -1899,7 +1912,7 @@ napi_status napi_call_function(napi_env env, } } -napi_status napi_get_global(napi_env env, napi_value* result) { +napi_status NAPI_CDECL napi_get_global(napi_env env, napi_value* result) { CHECK_ENV(env); CHECK_ARG(env, result); @@ -1908,7 +1921,7 @@ napi_status napi_get_global(napi_env env, napi_value* result) { return napi_clear_last_error(env); } -napi_status napi_throw(napi_env env, napi_value error) { +napi_status NAPI_CDECL napi_throw(napi_env env, napi_value error) { NAPI_PREAMBLE(env); CHECK_ARG(env, error); @@ -1920,7 +1933,9 @@ napi_status napi_throw(napi_env env, napi_value error) { return napi_clear_last_error(env); } -napi_status napi_throw_error(napi_env env, const char* code, const char* msg) { +napi_status NAPI_CDECL napi_throw_error(napi_env env, + const char* code, + const char* msg) { NAPI_PREAMBLE(env); v8::Isolate* isolate = env->isolate; @@ -1936,9 +1951,9 @@ napi_status napi_throw_error(napi_env env, const char* code, const char* msg) { return napi_clear_last_error(env); } -napi_status napi_throw_type_error(napi_env env, - const char* code, - const char* msg) { +napi_status NAPI_CDECL napi_throw_type_error(napi_env env, + const char* code, + const char* msg) { NAPI_PREAMBLE(env); v8::Isolate* isolate = env->isolate; @@ -1954,9 +1969,9 @@ napi_status napi_throw_type_error(napi_env env, return napi_clear_last_error(env); } -napi_status napi_throw_range_error(napi_env env, - const char* code, - const char* msg) { +napi_status NAPI_CDECL napi_throw_range_error(napi_env env, + const char* code, + const char* msg) { NAPI_PREAMBLE(env); v8::Isolate* isolate = env->isolate; @@ -1972,9 +1987,9 @@ napi_status napi_throw_range_error(napi_env env, return napi_clear_last_error(env); } -napi_status node_api_throw_syntax_error(napi_env env, - const char* code, - const char* msg) { +napi_status NAPI_CDECL node_api_throw_syntax_error(napi_env env, + const char* code, + const char* msg) { NAPI_PREAMBLE(env); v8::Isolate* isolate = env->isolate; @@ -1990,7 +2005,9 @@ napi_status node_api_throw_syntax_error(napi_env env, return napi_clear_last_error(env); } -napi_status napi_is_error(napi_env env, napi_value value, bool* result) { +napi_status NAPI_CDECL napi_is_error(napi_env env, + napi_value value, + bool* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot // throw JS exceptions. CHECK_ENV(env); @@ -2003,9 +2020,9 @@ napi_status napi_is_error(napi_env env, napi_value value, bool* result) { return napi_clear_last_error(env); } -napi_status napi_get_value_double(napi_env env, - napi_value value, - double* result) { +napi_status NAPI_CDECL napi_get_value_double(napi_env env, + napi_value value, + double* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2020,9 +2037,9 @@ napi_status napi_get_value_double(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_value_int32(napi_env env, - napi_value value, - int32_t* result) { +napi_status NAPI_CDECL napi_get_value_int32(napi_env env, + napi_value value, + int32_t* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2044,9 +2061,9 @@ napi_status napi_get_value_int32(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_value_uint32(napi_env env, - napi_value value, - uint32_t* result) { +napi_status NAPI_CDECL napi_get_value_uint32(napi_env env, + napi_value value, + uint32_t* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2068,9 +2085,9 @@ napi_status napi_get_value_uint32(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_value_int64(napi_env env, - napi_value value, - int64_t* result) { +napi_status NAPI_CDECL napi_get_value_int64(napi_env env, + napi_value value, + int64_t* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2102,10 +2119,10 @@ napi_status napi_get_value_int64(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_value_bigint_int64(napi_env env, - napi_value value, - int64_t* result, - bool* lossless) { +napi_status NAPI_CDECL napi_get_value_bigint_int64(napi_env env, + napi_value value, + int64_t* result, + bool* lossless) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2120,10 +2137,10 @@ napi_status napi_get_value_bigint_int64(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_value_bigint_uint64(napi_env env, - napi_value value, - uint64_t* result, - bool* lossless) { +napi_status NAPI_CDECL napi_get_value_bigint_uint64(napi_env env, + napi_value value, + uint64_t* result, + bool* lossless) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2138,11 +2155,11 @@ napi_status napi_get_value_bigint_uint64(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_value_bigint_words(napi_env env, - napi_value value, - int* sign_bit, - size_t* word_count, - uint64_t* words) { +napi_status NAPI_CDECL napi_get_value_bigint_words(napi_env env, + napi_value value, + int* sign_bit, + size_t* word_count, + uint64_t* words) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, word_count); @@ -2168,7 +2185,9 @@ napi_status napi_get_value_bigint_words(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_value_bool(napi_env env, napi_value value, bool* result) { +napi_status NAPI_CDECL napi_get_value_bool(napi_env env, + napi_value value, + bool* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2191,7 +2210,7 @@ napi_status napi_get_value_bool(napi_env env, napi_value value, bool* result) { // If buf is NULL, this method returns the length of the string (in bytes) // via the result parameter. // The result argument is optional unless buf is NULL. -napi_status napi_get_value_string_latin1( +napi_status NAPI_CDECL napi_get_value_string_latin1( napi_env env, napi_value value, char* buf, size_t bufsize, size_t* result) { CHECK_ENV(env); CHECK_ARG(env, value); @@ -2229,7 +2248,7 @@ napi_status napi_get_value_string_latin1( // If buf is NULL, this method returns the length of the string (in bytes) // via the result parameter. // The result argument is optional unless buf is NULL. -napi_status napi_get_value_string_utf8( +napi_status NAPI_CDECL napi_get_value_string_utf8( napi_env env, napi_value value, char* buf, size_t bufsize, size_t* result) { CHECK_ENV(env); CHECK_ARG(env, value); @@ -2267,11 +2286,11 @@ napi_status napi_get_value_string_utf8( // If buf is NULL, this method returns the length of the string (in 2-byte // code units) via the result parameter. // The result argument is optional unless buf is NULL. -napi_status napi_get_value_string_utf16(napi_env env, - napi_value value, - char16_t* buf, - size_t bufsize, - size_t* result) { +napi_status NAPI_CDECL napi_get_value_string_utf16(napi_env env, + napi_value value, + char16_t* buf, + size_t bufsize, + size_t* result) { CHECK_ENV(env); CHECK_ARG(env, value); @@ -2300,9 +2319,9 @@ napi_status napi_get_value_string_utf16(napi_env env, return napi_clear_last_error(env); } -napi_status napi_coerce_to_bool(napi_env env, - napi_value value, - napi_value* result) { +napi_status NAPI_CDECL napi_coerce_to_bool(napi_env env, + napi_value value, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2315,7 +2334,7 @@ napi_status napi_coerce_to_bool(napi_env env, } #define GEN_COERCE_FUNCTION(UpperCaseName, MixedCaseName, LowerCaseName) \ - napi_status napi_coerce_to_##LowerCaseName( \ + napi_status NAPI_CDECL napi_coerce_to_##LowerCaseName( \ napi_env env, napi_value value, napi_value* result) { \ NAPI_PREAMBLE(env); \ CHECK_ARG(env, value); \ @@ -2336,29 +2355,33 @@ GEN_COERCE_FUNCTION(STRING, String, string) #undef GEN_COERCE_FUNCTION -napi_status napi_wrap(napi_env env, - napi_value js_object, - void* native_object, - napi_finalize finalize_cb, - void* finalize_hint, - napi_ref* result) { +napi_status NAPI_CDECL napi_wrap(napi_env env, + napi_value js_object, + void* native_object, + napi_finalize finalize_cb, + void* finalize_hint, + napi_ref* result) { return v8impl::Wrap( env, js_object, native_object, finalize_cb, finalize_hint, result); } -napi_status napi_unwrap(napi_env env, napi_value obj, void** result) { +napi_status NAPI_CDECL napi_unwrap(napi_env env, + napi_value obj, + void** result) { return v8impl::Unwrap(env, obj, result, v8impl::KeepWrap); } -napi_status napi_remove_wrap(napi_env env, napi_value obj, void** result) { +napi_status NAPI_CDECL napi_remove_wrap(napi_env env, + napi_value obj, + void** result) { return v8impl::Unwrap(env, obj, result, v8impl::RemoveWrap); } -napi_status napi_create_external(napi_env env, - void* data, - napi_finalize finalize_cb, - void* finalize_hint, - napi_value* result) { +napi_status NAPI_CDECL napi_create_external(napi_env env, + void* data, + napi_finalize finalize_cb, + void* finalize_hint, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -2376,9 +2399,9 @@ napi_status napi_create_external(napi_env env, return napi_clear_last_error(env); } -NAPI_EXTERN napi_status napi_type_tag_object(napi_env env, - napi_value object, - const napi_type_tag* type_tag) { +napi_status NAPI_CDECL napi_type_tag_object(napi_env env, + napi_value object, + const napi_type_tag* type_tag) { NAPI_PREAMBLE(env); v8::Local context = env->context(); v8::Local obj; @@ -2403,11 +2426,10 @@ NAPI_EXTERN napi_status napi_type_tag_object(napi_env env, return GET_RETURN_STATUS(env); } -NAPI_EXTERN napi_status -napi_check_object_type_tag(napi_env env, - napi_value object, - const napi_type_tag* type_tag, - bool* result) { +napi_status NAPI_CDECL napi_check_object_type_tag(napi_env env, + napi_value object, + const napi_type_tag* type_tag, + bool* result) { NAPI_PREAMBLE(env); v8::Local context = env->context(); v8::Local obj; @@ -2437,9 +2459,9 @@ napi_check_object_type_tag(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_get_value_external(napi_env env, - napi_value value, - void** result) { +napi_status NAPI_CDECL napi_get_value_external(napi_env env, + napi_value value, + void** result) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2454,10 +2476,10 @@ napi_status napi_get_value_external(napi_env env, } // Set initial_refcount to 0 for a weak reference, >0 for a strong reference. -napi_status napi_create_reference(napi_env env, - napi_value value, - uint32_t initial_refcount, - napi_ref* result) { +napi_status NAPI_CDECL napi_create_reference(napi_env env, + napi_value value, + uint32_t initial_refcount, + napi_ref* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2479,7 +2501,7 @@ napi_status napi_create_reference(napi_env env, // Deletes a reference. The referenced value is released, and may be GC'd unless // there are other references to it. -napi_status napi_delete_reference(napi_env env, napi_ref ref) { +napi_status NAPI_CDECL napi_delete_reference(napi_env env, napi_ref ref) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2495,7 +2517,9 @@ napi_status napi_delete_reference(napi_env env, napi_ref ref) { // refcount is >0, and the referenced object is effectively "pinned". // Calling this when the refcount is 0 and the object is unavailable // results in an error. -napi_status napi_reference_ref(napi_env env, napi_ref ref, uint32_t* result) { +napi_status NAPI_CDECL napi_reference_ref(napi_env env, + napi_ref ref, + uint32_t* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2515,7 +2539,9 @@ napi_status napi_reference_ref(napi_env env, napi_ref ref, uint32_t* result) { // the result is 0 the reference is now weak and the object may be GC'd at any // time if there are no other references. Calling this when the refcount is // already 0 results in an error. -napi_status napi_reference_unref(napi_env env, napi_ref ref, uint32_t* result) { +napi_status NAPI_CDECL napi_reference_unref(napi_env env, + napi_ref ref, + uint32_t* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2539,9 +2565,9 @@ napi_status napi_reference_unref(napi_env env, napi_ref ref, uint32_t* result) { // Attempts to get a referenced value. If the reference is weak, the value might // no longer be available, in that case the call is still successful but the // result is NULL. -napi_status napi_get_reference_value(napi_env env, - napi_ref ref, - napi_value* result) { +napi_status NAPI_CDECL napi_get_reference_value(napi_env env, + napi_ref ref, + napi_value* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2554,7 +2580,8 @@ napi_status napi_get_reference_value(napi_env env, return napi_clear_last_error(env); } -napi_status napi_open_handle_scope(napi_env env, napi_handle_scope* result) { +napi_status NAPI_CDECL napi_open_handle_scope(napi_env env, + napi_handle_scope* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2566,7 +2593,8 @@ napi_status napi_open_handle_scope(napi_env env, napi_handle_scope* result) { return napi_clear_last_error(env); } -napi_status napi_close_handle_scope(napi_env env, napi_handle_scope scope) { +napi_status NAPI_CDECL napi_close_handle_scope(napi_env env, + napi_handle_scope scope) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2580,7 +2608,7 @@ napi_status napi_close_handle_scope(napi_env env, napi_handle_scope scope) { return napi_clear_last_error(env); } -napi_status napi_open_escapable_handle_scope( +napi_status NAPI_CDECL napi_open_escapable_handle_scope( napi_env env, napi_escapable_handle_scope* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. @@ -2593,7 +2621,7 @@ napi_status napi_open_escapable_handle_scope( return napi_clear_last_error(env); } -napi_status napi_close_escapable_handle_scope( +napi_status NAPI_CDECL napi_close_escapable_handle_scope( napi_env env, napi_escapable_handle_scope scope) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. @@ -2608,10 +2636,10 @@ napi_status napi_close_escapable_handle_scope( return napi_clear_last_error(env); } -napi_status napi_escape_handle(napi_env env, - napi_escapable_handle_scope scope, - napi_value escapee, - napi_value* result) { +napi_status NAPI_CDECL napi_escape_handle(napi_env env, + napi_escapable_handle_scope scope, + napi_value escapee, + napi_value* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -2629,11 +2657,11 @@ napi_status napi_escape_handle(napi_env env, return napi_set_last_error(env, napi_escape_called_twice); } -napi_status napi_new_instance(napi_env env, - napi_value constructor, - size_t argc, - const napi_value* argv, - napi_value* result) { +napi_status NAPI_CDECL napi_new_instance(napi_env env, + napi_value constructor, + size_t argc, + const napi_value* argv, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, constructor); if (argc > 0) { @@ -2657,10 +2685,10 @@ napi_status napi_new_instance(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_instanceof(napi_env env, - napi_value object, - napi_value constructor, - bool* result) { +napi_status NAPI_CDECL napi_instanceof(napi_env env, + napi_value object, + napi_value constructor, + bool* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, object); CHECK_ARG(env, result); @@ -2689,7 +2717,7 @@ napi_status napi_instanceof(napi_env env, } // Methods to support catching exceptions -napi_status napi_is_exception_pending(napi_env env, bool* result) { +napi_status NAPI_CDECL napi_is_exception_pending(napi_env env, bool* result) { // NAPI_PREAMBLE is not used here: this function must execute when there is a // pending exception. CHECK_ENV(env); @@ -2699,8 +2727,8 @@ napi_status napi_is_exception_pending(napi_env env, bool* result) { return napi_clear_last_error(env); } -napi_status napi_get_and_clear_last_exception(napi_env env, - napi_value* result) { +napi_status NAPI_CDECL napi_get_and_clear_last_exception(napi_env env, + napi_value* result) { // NAPI_PREAMBLE is not used here: this function must execute when there is a // pending exception. CHECK_ENV(env); @@ -2717,7 +2745,9 @@ napi_status napi_get_and_clear_last_exception(napi_env env, return napi_clear_last_error(env); } -napi_status napi_is_arraybuffer(napi_env env, napi_value value, bool* result) { +napi_status NAPI_CDECL napi_is_arraybuffer(napi_env env, + napi_value value, + bool* result) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2728,10 +2758,10 @@ napi_status napi_is_arraybuffer(napi_env env, napi_value value, bool* result) { return napi_clear_last_error(env); } -napi_status napi_create_arraybuffer(napi_env env, - size_t byte_length, - void** data, - napi_value* result) { +napi_status NAPI_CDECL napi_create_arraybuffer(napi_env env, + size_t byte_length, + void** data, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -2749,12 +2779,13 @@ napi_status napi_create_arraybuffer(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_create_external_arraybuffer(napi_env env, - void* external_data, - size_t byte_length, - napi_finalize finalize_cb, - void* finalize_hint, - napi_value* result) { +napi_status NAPI_CDECL +napi_create_external_arraybuffer(napi_env env, + void* external_data, + size_t byte_length, + napi_finalize finalize_cb, + void* finalize_hint, + napi_value* result) { // The API contract here is that the cleanup function runs on the JS thread, // and is able to use napi_env. Implementing that properly is hard, so use the // `Buffer` variant for easier implementation. @@ -2765,10 +2796,10 @@ napi_status napi_create_external_arraybuffer(napi_env env, env, buffer, nullptr, nullptr, nullptr, result, nullptr); } -napi_status napi_get_arraybuffer_info(napi_env env, - napi_value arraybuffer, - void** data, - size_t* byte_length) { +napi_status NAPI_CDECL napi_get_arraybuffer_info(napi_env env, + napi_value arraybuffer, + void** data, + size_t* byte_length) { CHECK_ENV(env); CHECK_ARG(env, arraybuffer); @@ -2789,7 +2820,9 @@ napi_status napi_get_arraybuffer_info(napi_env env, return napi_clear_last_error(env); } -napi_status napi_is_typedarray(napi_env env, napi_value value, bool* result) { +napi_status NAPI_CDECL napi_is_typedarray(napi_env env, + napi_value value, + bool* result) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2800,12 +2833,12 @@ napi_status napi_is_typedarray(napi_env env, napi_value value, bool* result) { return napi_clear_last_error(env); } -napi_status napi_create_typedarray(napi_env env, - napi_typedarray_type type, - size_t length, - napi_value arraybuffer, - size_t byte_offset, - napi_value* result) { +napi_status NAPI_CDECL napi_create_typedarray(napi_env env, + napi_typedarray_type type, + size_t length, + napi_value arraybuffer, + size_t byte_offset, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, arraybuffer); CHECK_ARG(env, result); @@ -2869,13 +2902,13 @@ napi_status napi_create_typedarray(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_get_typedarray_info(napi_env env, - napi_value typedarray, - napi_typedarray_type* type, - size_t* length, - void** data, - napi_value* arraybuffer, - size_t* byte_offset) { +napi_status NAPI_CDECL napi_get_typedarray_info(napi_env env, + napi_value typedarray, + napi_typedarray_type* type, + size_t* length, + void** data, + napi_value* arraybuffer, + size_t* byte_offset) { CHECK_ENV(env); CHECK_ARG(env, typedarray); @@ -2937,11 +2970,11 @@ napi_status napi_get_typedarray_info(napi_env env, return napi_clear_last_error(env); } -napi_status napi_create_dataview(napi_env env, - size_t byte_length, - napi_value arraybuffer, - size_t byte_offset, - napi_value* result) { +napi_status NAPI_CDECL napi_create_dataview(napi_env env, + size_t byte_length, + napi_value arraybuffer, + size_t byte_offset, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, arraybuffer); CHECK_ARG(env, result); @@ -2964,7 +2997,9 @@ napi_status napi_create_dataview(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_is_dataview(napi_env env, napi_value value, bool* result) { +napi_status NAPI_CDECL napi_is_dataview(napi_env env, + napi_value value, + bool* result) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -2975,12 +3010,12 @@ napi_status napi_is_dataview(napi_env env, napi_value value, bool* result) { return napi_clear_last_error(env); } -napi_status napi_get_dataview_info(napi_env env, - napi_value dataview, - size_t* byte_length, - void** data, - napi_value* arraybuffer, - size_t* byte_offset) { +napi_status NAPI_CDECL napi_get_dataview_info(napi_env env, + napi_value dataview, + size_t* byte_length, + void** data, + napi_value* arraybuffer, + size_t* byte_offset) { CHECK_ENV(env); CHECK_ARG(env, dataview); @@ -3016,16 +3051,16 @@ napi_status napi_get_dataview_info(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_version(napi_env env, uint32_t* result) { +napi_status NAPI_CDECL napi_get_version(napi_env env, uint32_t* result) { CHECK_ENV(env); CHECK_ARG(env, result); *result = NAPI_VERSION; return napi_clear_last_error(env); } -napi_status napi_create_promise(napi_env env, - napi_deferred* deferred, - napi_value* promise) { +napi_status NAPI_CDECL napi_create_promise(napi_env env, + napi_deferred* deferred, + napi_value* promise) { NAPI_PREAMBLE(env); CHECK_ARG(env, deferred); CHECK_ARG(env, promise); @@ -3042,19 +3077,21 @@ napi_status napi_create_promise(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_resolve_deferred(napi_env env, - napi_deferred deferred, - napi_value resolution) { +napi_status NAPI_CDECL napi_resolve_deferred(napi_env env, + napi_deferred deferred, + napi_value resolution) { return v8impl::ConcludeDeferred(env, deferred, resolution, true); } -napi_status napi_reject_deferred(napi_env env, - napi_deferred deferred, - napi_value resolution) { +napi_status NAPI_CDECL napi_reject_deferred(napi_env env, + napi_deferred deferred, + napi_value resolution) { return v8impl::ConcludeDeferred(env, deferred, resolution, false); } -napi_status napi_is_promise(napi_env env, napi_value value, bool* is_promise) { +napi_status NAPI_CDECL napi_is_promise(napi_env env, + napi_value value, + bool* is_promise) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, is_promise); @@ -3064,7 +3101,9 @@ napi_status napi_is_promise(napi_env env, napi_value value, bool* is_promise) { return napi_clear_last_error(env); } -napi_status napi_create_date(napi_env env, double time, napi_value* result) { +napi_status NAPI_CDECL napi_create_date(napi_env env, + double time, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -3076,7 +3115,9 @@ napi_status napi_create_date(napi_env env, double time, napi_value* result) { return GET_RETURN_STATUS(env); } -napi_status napi_is_date(napi_env env, napi_value value, bool* is_date) { +napi_status NAPI_CDECL napi_is_date(napi_env env, + napi_value value, + bool* is_date) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, is_date); @@ -3086,9 +3127,9 @@ napi_status napi_is_date(napi_env env, napi_value value, bool* is_date) { return napi_clear_last_error(env); } -napi_status napi_get_date_value(napi_env env, - napi_value value, - double* result) { +napi_status NAPI_CDECL napi_get_date_value(napi_env env, + napi_value value, + double* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -3102,9 +3143,9 @@ napi_status napi_get_date_value(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_run_script(napi_env env, - napi_value script, - napi_value* result) { +napi_status NAPI_CDECL napi_run_script(napi_env env, + napi_value script, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, script); CHECK_ARG(env, result); @@ -3127,19 +3168,19 @@ napi_status napi_run_script(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_add_finalizer(napi_env env, - napi_value js_object, - void* native_object, - napi_finalize finalize_cb, - void* finalize_hint, - napi_ref* result) { +napi_status NAPI_CDECL napi_add_finalizer(napi_env env, + napi_value js_object, + void* native_object, + napi_finalize finalize_cb, + void* finalize_hint, + napi_ref* result) { return v8impl::Wrap( env, js_object, native_object, finalize_cb, finalize_hint, result); } -napi_status napi_adjust_external_memory(napi_env env, - int64_t change_in_bytes, - int64_t* adjusted_value) { +napi_status NAPI_CDECL napi_adjust_external_memory(napi_env env, + int64_t change_in_bytes, + int64_t* adjusted_value) { CHECK_ENV(env); CHECK_ARG(env, adjusted_value); @@ -3149,10 +3190,10 @@ napi_status napi_adjust_external_memory(napi_env env, return napi_clear_last_error(env); } -napi_status napi_set_instance_data(napi_env env, - void* data, - napi_finalize finalize_cb, - void* finalize_hint) { +napi_status NAPI_CDECL napi_set_instance_data(napi_env env, + void* data, + napi_finalize finalize_cb, + void* finalize_hint) { CHECK_ENV(env); v8impl::RefBase* old_data = static_cast(env->instance_data); @@ -3168,7 +3209,7 @@ napi_status napi_set_instance_data(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_instance_data(napi_env env, void** data) { +napi_status NAPI_CDECL napi_get_instance_data(napi_env env, void** data) { CHECK_ENV(env); CHECK_ARG(env, data); @@ -3179,7 +3220,8 @@ napi_status napi_get_instance_data(napi_env env, void** data) { return napi_clear_last_error(env); } -napi_status napi_detach_arraybuffer(napi_env env, napi_value arraybuffer) { +napi_status NAPI_CDECL napi_detach_arraybuffer(napi_env env, + napi_value arraybuffer) { CHECK_ENV(env); CHECK_ARG(env, arraybuffer); @@ -3196,9 +3238,9 @@ napi_status napi_detach_arraybuffer(napi_env env, napi_value arraybuffer) { return napi_clear_last_error(env); } -napi_status napi_is_detached_arraybuffer(napi_env env, - napi_value arraybuffer, - bool* result) { +napi_status NAPI_CDECL napi_is_detached_arraybuffer(napi_env env, + napi_value arraybuffer, + bool* result) { CHECK_ENV(env); CHECK_ARG(env, arraybuffer); CHECK_ARG(env, result); diff --git a/src/js_native_api_v8.h b/src/js_native_api_v8.h index ffe351f4f6c65e..ac6e3f187b3078 100644 --- a/src/js_native_api_v8.h +++ b/src/js_native_api_v8.h @@ -57,15 +57,7 @@ struct napi_env__ { CHECK_EQ(isolate, context->GetIsolate()); napi_clear_last_error(this); } - virtual ~napi_env__() { - // First we must finalize those references that have `napi_finalizer` - // callbacks. The reason is that addons might store other references which - // they delete during their `napi_finalizer` callbacks. If we deleted such - // references here first, they would be doubly deleted when the - // `napi_finalizer` deleted them subsequently. - v8impl::RefTracker::FinalizeAll(&finalizing_reflist); - v8impl::RefTracker::FinalizeAll(&reflist); - } + virtual ~napi_env__() { FinalizeAll(); } v8::Isolate* const isolate; // Shortcut for context()->GetIsolate() v8impl::Persistent context_persistent; @@ -102,11 +94,23 @@ struct napi_env__ { } } + // This should be overridden to schedule the finalization to a properiate + // timing, like next tick of the event loop. virtual void CallFinalizer(napi_finalize cb, void* data, void* hint) { v8::HandleScope handle_scope(isolate); CallIntoModule([&](napi_env env) { cb(env, data, hint); }); } + void FinalizeAll() { + // First we must finalize those references that have `napi_finalizer` + // callbacks. The reason is that addons might store other references which + // they delete during their `napi_finalizer` callbacks. If we deleted such + // references here first, they would be doubly deleted when the + // `napi_finalizer` deleted them subsequently. + v8impl::RefTracker::FinalizeAll(&finalizing_reflist); + v8impl::RefTracker::FinalizeAll(&reflist); + } + v8impl::Persistent last_exception; // We store references in two different lists, depending on whether they have diff --git a/src/json_utils.cc b/src/json_utils.cc index 96f178cf351d96..aa667ccc90471b 100644 --- a/src/json_utils.cc +++ b/src/json_utils.cc @@ -5,11 +5,11 @@ namespace node { std::string EscapeJsonChars(const std::string& str) { const std::string control_symbols[0x20] = { "\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", - "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\v", "\\f", "\\r", - "\\u000e", "\\u000f", "\\u0010", "\\u0011", "\\u0012", "\\u0013", - "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", - "\\u001a", "\\u001b", "\\u001c", "\\u001d", "\\u001e", "\\u001f" - }; + "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000b", + "\\f", "\\r", "\\u000e", "\\u000f", "\\u0010", "\\u0011", + "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", + "\\u0018", "\\u0019", "\\u001a", "\\u001b", "\\u001c", "\\u001d", + "\\u001e", "\\u001f"}; std::string ret; size_t last_pos = 0; diff --git a/src/large_pages/node_large_page.cc b/src/large_pages/node_large_page.cc index eb546c581a1652..1dddcb9f6c3560 100644 --- a/src/large_pages/node_large_page.cc +++ b/src/large_pages/node_large_page.cc @@ -68,6 +68,11 @@ #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // ifndef _GNU_SOURCE +#include +#if !defined(PR_SET_VMA) +#define PR_SET_VMA 0x53564d41 +#define PR_SET_VMA_ANON_NAME 0 +#endif #elif defined(__FreeBSD__) #include "uv.h" // uv_exepath #endif // defined(__linux__) @@ -312,6 +317,21 @@ class MemoryMapPointer { mem_ = nullptr; size_ = 0; } + static void SetName(void* mem, size_t size, const char* name) { +#if defined(__linux__) + // Available since the 5.17 kernel release and if the + // CONFIG_ANON_VMA_NAME option, we can set an identifier + // to an anonymous mapped region. However if the kernel + // option is not present or it s an older kernel, it is a no-op. + if (mem != MAP_FAILED && mem != nullptr) + prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, + reinterpret_cast(mem), + size, + reinterpret_cast(name)); +#else + (void)name; +#endif + } FORCE_INLINE ~MemoryMapPointer() { if (mem_ == nullptr) return; if (mem_ == MAP_FAILED) return; @@ -382,6 +402,7 @@ MoveTextRegionToLargePages(const text_region& r) { #endif if (mprotect(start, size, PROT_READ | PROT_EXEC) == -1) goto fail; + MemoryMapPointer::SetName(start, size, "nodejs Large Page"); // We need not `munmap(tmem, size)` on success. tmem.Reset(); diff --git a/src/module_wrap.cc b/src/module_wrap.cc index 1e049d7258d21c..50ce8d510cb1a4 100644 --- a/src/module_wrap.cc +++ b/src/module_wrap.cc @@ -428,13 +428,7 @@ void ModuleWrap::Evaluate(const FunctionCallbackInfo& args) { return; } - // If TLA is enabled, `result` is the evaluation's promise. - // Otherwise, `result` is the last evaluated value of the module, - // which could be a promise, which would result in it being incorrectly - // unwrapped when the higher level code awaits the evaluation. - if (env->isolate_data()->options()->experimental_top_level_await) { - args.GetReturnValue().Set(result.ToLocalChecked()); - } + args.GetReturnValue().Set(result.ToLocalChecked()); } void ModuleWrap::GetNamespace(const FunctionCallbackInfo& args) { diff --git a/src/node.cc b/src/node.cc index 5ba03b75407a1e..78e93c74d3c3c4 100644 --- a/src/node.cc +++ b/src/node.cc @@ -25,8 +25,8 @@ #include "debug_utils-inl.h" #include "env-inl.h" -#include "memory_tracker-inl.h" #include "histogram-inl.h" +#include "memory_tracker-inl.h" #include "node_binding.h" #include "node_errors.h" #include "node_internals.h" @@ -38,11 +38,11 @@ #include "node_process-inl.h" #include "node_report.h" #include "node_revert.h" +#include "node_snapshot_builder.h" #include "node_v8_platform-inl.h" #include "node_version.h" #if HAVE_OPENSSL -#include "allocated_buffer-inl.h" // Inlined functions needed by node_crypto.h #include "node_crypto.h" #endif @@ -162,6 +162,9 @@ PVOID old_vectored_exception_handler; struct V8Platform v8_platform; } // namespace per_process +// The section in the OpenSSL configuration file to be loaded. +const char* conf_section_name = STRINGIFY(NODE_OPENSSL_CONF_NAME); + #ifdef __POSIX__ void SignalExit(int signo, siginfo_t* info, void* ucontext) { ResetStdio(); @@ -482,6 +485,14 @@ MaybeLocal StartExecution(Environment* env, StartExecutionCallback cb) { return scope.EscapeMaybe(cb(info)); } + // TODO(joyeecheung): move these conditions into JS land and let the + // deserialize main function take precedence. For workers, we need to + // move the pre-execution part into a different file that can be + // reused when dealing with user-defined main functions. + if (!env->snapshot_deserialize_main().IsEmpty()) { + return env->RunSnapshotDeserializeMain(); + } + if (env->worker_context() != nullptr) { return StartExecution(env, "internal/main/worker_thread"); } @@ -517,6 +528,10 @@ MaybeLocal StartExecution(Environment* env, StartExecutionCallback cb) { return StartExecution(env, "internal/main/check_syntax"); } + if (env->options()->test_runner) { + return StartExecution(env, "internal/main/test_runner"); + } + if (!first_argv.empty() && first_argv != "-") { return StartExecution(env, "internal/main/run_main_module"); } @@ -975,8 +990,6 @@ int InitializeNodeWithArgs(std::vector* argv, #endif // defined(NODE_HAVE_I18N_SUPPORT) - NativeModuleEnv::InitializeCodeCache(); - // We should set node_is_initialized here instead of in node::Start, // otherwise embedders using node::Init to initialize everything will not be // able to set it and native modules will not load for them. @@ -1082,27 +1095,44 @@ InitializationResult InitializeOncePerProcess( // CheckEntropy. CheckEntropy will call RAND_status which will now always // return 0, leading to an endless loop and the node process will appear to // hang/freeze. + + // Passing NULL as the config file will allow the default openssl.cnf file + // to be loaded, but the default section in that file will not be used, + // instead only the section that matches the value of conf_section_name + // will be read from the default configuration file. + const char* conf_file = nullptr; + // To allow for using the previous default where the 'openssl_conf' appname + // was used, the command line option 'openssl-shared-config' can be used to + // force the old behavior. + if (per_process::cli_options->openssl_shared_config) { + conf_section_name = "openssl_conf"; + } + // Use OPENSSL_CONF environment variable is set. std::string env_openssl_conf; credentials::SafeGetenv("OPENSSL_CONF", &env_openssl_conf); + if (!env_openssl_conf.empty()) { + conf_file = env_openssl_conf.c_str(); + } + // Use --openssl-conf command line option if specified. + if (!per_process::cli_options->openssl_config.empty()) { + conf_file = per_process::cli_options->openssl_config.c_str(); + } - bool has_cli_conf = !per_process::cli_options->openssl_config.empty(); - if (has_cli_conf || !env_openssl_conf.empty()) { - OPENSSL_INIT_SETTINGS* settings = OPENSSL_INIT_new(); - OPENSSL_INIT_set_config_file_flags(settings, CONF_MFLAGS_DEFAULT_SECTION); - if (has_cli_conf) { - const char* conf = per_process::cli_options->openssl_config.c_str(); - OPENSSL_INIT_set_config_filename(settings, conf); - } - OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, settings); - OPENSSL_INIT_free(settings); - - if (ERR_peek_error() != 0) { - result.exit_code = ERR_GET_REASON(ERR_peek_error()); - result.early_return = true; - fprintf(stderr, "OpenSSL configuration error:\n"); - ERR_print_errors_fp(stderr); - return result; - } + OPENSSL_INIT_SETTINGS* settings = OPENSSL_INIT_new(); + OPENSSL_INIT_set_config_filename(settings, conf_file); + OPENSSL_INIT_set_config_appname(settings, conf_section_name); + OPENSSL_INIT_set_config_file_flags(settings, + CONF_MFLAGS_IGNORE_MISSING_FILE); + + OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG, settings); + OPENSSL_INIT_free(settings); + + if (ERR_peek_error() != 0) { + result.exit_code = ERR_GET_REASON(ERR_peek_error()); + result.early_return = true; + fprintf(stderr, "OpenSSL configuration error:\n"); + ERR_print_errors_fp(stderr); + return result; } #else // OPENSSL_VERSION_MAJOR < 3 if (FIPS_mode()) { @@ -1164,13 +1194,16 @@ int Start(int argc, char** argv) { } { - bool use_node_snapshot = - per_process::cli_options->per_isolate->node_snapshot; + bool use_node_snapshot = per_process::cli_options->node_snapshot; const SnapshotData* snapshot_data = - use_node_snapshot ? NodeMainInstance::GetEmbeddedSnapshotData() + use_node_snapshot ? SnapshotBuilder::GetEmbeddedSnapshotData() : nullptr; uv_loop_configure(uv_default_loop(), UV_METRICS_IDLE_TIME); + if (snapshot_data != nullptr) { + native_module::NativeModuleEnv::RefreshCodeCache( + snapshot_data->code_cache); + } NodeMainInstance main_instance(snapshot_data, uv_default_loop(), per_process::v8_platform.Platform(), diff --git a/src/node.h b/src/node.h index dec8dd6805fac9..e866fcd9369a5c 100644 --- a/src/node.h +++ b/src/node.h @@ -32,6 +32,16 @@ # define NODE_EXTERN __attribute__((visibility("default"))) #endif +// Declarations annotated with NODE_EXTERN_PRIVATE do not form part of +// the public API. They are implementation details that can and will +// change between releases, even in semver patch releases. Do not use +// any such symbol in external code. +#ifdef NODE_SHARED_MODE +#define NODE_EXTERN_PRIVATE NODE_EXTERN +#else +#define NODE_EXTERN_PRIVATE +#endif + #ifdef BUILDING_NODE_EXTENSION # undef BUILDING_V8_SHARED # undef BUILDING_UV_SHARED diff --git a/src/node_api.cc b/src/node_api.cc index aa4f8a6a2401e2..08352b0a584b54 100644 --- a/src/node_api.cc +++ b/src/node_api.cc @@ -9,6 +9,7 @@ #include "node_buffer.h" #include "node_errors.h" #include "node_internals.h" +#include "node_process.h" #include "node_url.h" #include "threadpoolwork-inl.h" #include "tracing/traced_value.h" @@ -23,6 +24,11 @@ node_napi_env__::node_napi_env__(v8::Local context, CHECK_NOT_NULL(node_env()); } +node_napi_env__::~node_napi_env__() { + destructing = true; + FinalizeAll(); +} + bool node_napi_env__::can_call_into_js() const { return node_env()->can_call_into_js(); } @@ -35,19 +41,64 @@ v8::Maybe node_napi_env__::mark_arraybuffer_as_untransferable( } void node_napi_env__::CallFinalizer(napi_finalize cb, void* data, void* hint) { + CallFinalizer(cb, data, hint); +} + +template +void node_napi_env__::CallFinalizer(napi_finalize cb, void* data, void* hint) { + if (destructing) { + // we can not defer finalizers when the environment is being destructed. + v8::HandleScope handle_scope(isolate); + v8::Context::Scope context_scope(context()); + CallbackIntoModule( + [&](napi_env env) { cb(env, data, hint); }); + return; + } // we need to keep the env live until the finalizer has been run // EnvRefHolder provides an exception safe wrapper to Ref and then // Unref once the lambda is freed EnvRefHolder liveEnv(static_cast(this)); node_env()->SetImmediate( [=, liveEnv = std::move(liveEnv)](node::Environment* node_env) { - napi_env env = liveEnv.env(); + node_napi_env__* env = static_cast(liveEnv.env()); v8::HandleScope handle_scope(env->isolate); v8::Context::Scope context_scope(env->context()); - env->CallIntoModule([&](napi_env env) { cb(env, data, hint); }); + env->CallbackIntoModule( + [&](napi_env env) { cb(env, data, hint); }); }); } +void node_napi_env__::trigger_fatal_exception(v8::Local local_err) { + v8::Local local_msg = + v8::Exception::CreateMessage(isolate, local_err); + node::errors::TriggerUncaughtException(isolate, local_err, local_msg); +} + +// option enforceUncaughtExceptionPolicy is added for not breaking existing +// running n-api add-ons, and should be deprecated in the next major Node.js +// release. +template +void node_napi_env__::CallbackIntoModule(T&& call) { + CallIntoModule(call, [](napi_env env_, v8::Local local_err) { + node_napi_env__* env = static_cast(env_); + node::Environment* node_env = env->node_env(); + if (!node_env->options()->force_node_api_uncaught_exceptions_policy && + !enforceUncaughtExceptionPolicy) { + ProcessEmitDeprecationWarning( + node_env, + "Uncaught N-API callback exception detected, please run node " + "with option --force-node-api-uncaught-exceptions-policy=true" + "to handle those exceptions properly.", + "DEP0XXX"); + return; + } + // If there was an unhandled exception in the complete callback, + // report it as a fatal exception. (There is no JavaScript on the + // callstack that can possibly handle it.) + env->trigger_fatal_exception(local_err); + }); +} + namespace v8impl { namespace { @@ -60,20 +111,10 @@ class BufferFinalizer : private Finalizer { static_cast(hint)}; finalizer->_finalize_data = data; - node::Environment* node_env = - static_cast(finalizer->_env)->node_env(); - node_env->SetImmediate( - [finalizer = std::move(finalizer)](node::Environment* env) { - if (finalizer->_finalize_callback == nullptr) return; - - v8::HandleScope handle_scope(finalizer->_env->isolate); - v8::Context::Scope context_scope(finalizer->_env->context()); - - finalizer->_env->CallIntoModule([&](napi_env env) { - finalizer->_finalize_callback( - env, finalizer->_finalize_data, finalizer->_finalize_hint); - }); - }); + if (finalizer->_finalize_callback == nullptr) return; + finalizer->_env->CallFinalizer(finalizer->_finalize_callback, + finalizer->_finalize_data, + finalizer->_finalize_hint); } struct Deleter { @@ -102,13 +143,6 @@ static inline napi_env NewEnv(v8::Local context, return result; } -static inline void trigger_fatal_exception(napi_env env, - v8::Local local_err) { - v8::Local local_msg = - v8::Exception::CreateMessage(env->isolate, local_err); - node::errors::TriggerUncaughtException(env->isolate, local_err, local_msg); -} - class ThreadSafeFunction : public node::AsyncResource { public: ThreadSafeFunction(v8::Local func, @@ -325,7 +359,7 @@ class ThreadSafeFunction : public node::AsyncResource { v8::Local::New(env->isolate, ref); js_callback = v8impl::JsValueFromV8LocalValue(js_cb); } - env->CallIntoModule( + env->CallbackIntoModule( [&](napi_env env) { call_js_cb(env, js_callback, context, data); }); } @@ -336,7 +370,9 @@ class ThreadSafeFunction : public node::AsyncResource { v8::HandleScope scope(env->isolate); if (finalize_cb) { CallbackScope cb_scope(this); - env->CallIntoModule( + // Do not use CallFinalizer since it will defer the invocation, which + // would lead to accessing a deleted ThreadSafeFunction. + env->CallbackIntoModule( [&](napi_env env) { finalize_cb(env, finalize_data, context); }); } EmptyQueueAndDelete(); @@ -628,15 +664,14 @@ node_module napi_module_to_node_module(const napi_module* mod) { } // namespace node // Registers a NAPI module. -void napi_module_register(napi_module* mod) { +void NAPI_CDECL napi_module_register(napi_module* mod) { node::node_module* nm = new node::node_module(node::napi_module_to_node_module(mod)); node::node_module_register(nm); } -napi_status napi_add_env_cleanup_hook(napi_env env, - void (*fun)(void* arg), - void* arg) { +napi_status NAPI_CDECL napi_add_env_cleanup_hook( + napi_env env, void(NAPI_CDECL* fun)(void* arg), void* arg) { CHECK_ENV(env); CHECK_ARG(env, fun); @@ -645,9 +680,8 @@ napi_status napi_add_env_cleanup_hook(napi_env env, return napi_ok; } -napi_status napi_remove_env_cleanup_hook(napi_env env, - void (*fun)(void* arg), - void* arg) { +napi_status NAPI_CDECL napi_remove_env_cleanup_hook( + napi_env env, void(NAPI_CDECL* fun)(void* arg), void* arg) { CHECK_ENV(env); CHECK_ARG(env, fun); @@ -691,11 +725,11 @@ struct napi_async_cleanup_hook_handle__ { void* done_data_ = nullptr; }; -napi_status napi_add_async_cleanup_hook( - napi_env env, - napi_async_cleanup_hook hook, - void* arg, - napi_async_cleanup_hook_handle* remove_handle) { +napi_status NAPI_CDECL +napi_add_async_cleanup_hook(napi_env env, + napi_async_cleanup_hook hook, + void* arg, + napi_async_cleanup_hook_handle* remove_handle) { CHECK_ENV(env); CHECK_ARG(env, hook); @@ -707,8 +741,8 @@ napi_status napi_add_async_cleanup_hook( return napi_clear_last_error(env); } -napi_status napi_remove_async_cleanup_hook( - napi_async_cleanup_hook_handle remove_handle) { +napi_status NAPI_CDECL +napi_remove_async_cleanup_hook(napi_async_cleanup_hook_handle remove_handle) { if (remove_handle == nullptr) return napi_invalid_arg; delete remove_handle; @@ -716,20 +750,20 @@ napi_status napi_remove_async_cleanup_hook( return napi_ok; } -napi_status napi_fatal_exception(napi_env env, napi_value err) { +napi_status NAPI_CDECL napi_fatal_exception(napi_env env, napi_value err) { NAPI_PREAMBLE(env); CHECK_ARG(env, err); v8::Local local_err = v8impl::V8LocalValueFromJsValue(err); - v8impl::trigger_fatal_exception(env, local_err); + static_cast(env)->trigger_fatal_exception(local_err); return napi_clear_last_error(env); } -NAPI_NO_RETURN void napi_fatal_error(const char* location, - size_t location_len, - const char* message, - size_t message_len) { +NAPI_NO_RETURN void NAPI_CDECL napi_fatal_error(const char* location, + size_t location_len, + const char* message, + size_t message_len) { std::string location_string; std::string message_string; @@ -748,10 +782,11 @@ NAPI_NO_RETURN void napi_fatal_error(const char* location, node::FatalError(location_string.c_str(), message_string.c_str()); } -napi_status napi_open_callback_scope(napi_env env, - napi_value /** ignored */, - napi_async_context async_context_handle, - napi_callback_scope* result) { +napi_status NAPI_CDECL +napi_open_callback_scope(napi_env env, + napi_value /** ignored */, + napi_async_context async_context_handle, + napi_callback_scope* result) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -765,7 +800,8 @@ napi_status napi_open_callback_scope(napi_env env, return napi_clear_last_error(env); } -napi_status napi_close_callback_scope(napi_env env, napi_callback_scope scope) { +napi_status NAPI_CDECL napi_close_callback_scope(napi_env env, + napi_callback_scope scope) { // Omit NAPI_PREAMBLE and GET_RETURN_STATUS because V8 calls here cannot throw // JS exceptions. CHECK_ENV(env); @@ -780,10 +816,10 @@ napi_status napi_close_callback_scope(napi_env env, napi_callback_scope scope) { return napi_clear_last_error(env); } -napi_status napi_async_init(napi_env env, - napi_value async_resource, - napi_value async_resource_name, - napi_async_context* result) { +napi_status NAPI_CDECL napi_async_init(napi_env env, + napi_value async_resource, + napi_value async_resource_name, + napi_async_context* result) { CHECK_ENV(env); CHECK_ARG(env, async_resource_name); CHECK_ARG(env, result); @@ -815,7 +851,8 @@ napi_status napi_async_init(napi_env env, return napi_clear_last_error(env); } -napi_status napi_async_destroy(napi_env env, napi_async_context async_context) { +napi_status NAPI_CDECL napi_async_destroy(napi_env env, + napi_async_context async_context) { CHECK_ENV(env); CHECK_ARG(env, async_context); @@ -827,13 +864,13 @@ napi_status napi_async_destroy(napi_env env, napi_async_context async_context) { return napi_clear_last_error(env); } -napi_status napi_make_callback(napi_env env, - napi_async_context async_context, - napi_value recv, - napi_value func, - size_t argc, - const napi_value* argv, - napi_value* result) { +napi_status NAPI_CDECL napi_make_callback(napi_env env, + napi_async_context async_context, + napi_value recv, + napi_value func, + size_t argc, + const napi_value* argv, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, recv); if (argc > 0) { @@ -881,10 +918,10 @@ napi_status napi_make_callback(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_create_buffer(napi_env env, - size_t length, - void** data, - napi_value* result) { +napi_status NAPI_CDECL napi_create_buffer(napi_env env, + size_t length, + void** data, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -903,12 +940,12 @@ napi_status napi_create_buffer(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_create_external_buffer(napi_env env, - size_t length, - void* data, - napi_finalize finalize_cb, - void* finalize_hint, - napi_value* result) { +napi_status NAPI_CDECL napi_create_external_buffer(napi_env env, + size_t length, + void* data, + napi_finalize finalize_cb, + void* finalize_hint, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -939,11 +976,11 @@ napi_status napi_create_external_buffer(napi_env env, // coverity[leaked_storage] } -napi_status napi_create_buffer_copy(napi_env env, - size_t length, - const void* data, - void** result_data, - napi_value* result) { +napi_status NAPI_CDECL napi_create_buffer_copy(napi_env env, + size_t length, + const void* data, + void** result_data, + napi_value* result) { NAPI_PREAMBLE(env); CHECK_ARG(env, result); @@ -962,7 +999,9 @@ napi_status napi_create_buffer_copy(napi_env env, return GET_RETURN_STATUS(env); } -napi_status napi_is_buffer(napi_env env, napi_value value, bool* result) { +napi_status NAPI_CDECL napi_is_buffer(napi_env env, + napi_value value, + bool* result) { CHECK_ENV(env); CHECK_ARG(env, value); CHECK_ARG(env, result); @@ -971,10 +1010,10 @@ napi_status napi_is_buffer(napi_env env, napi_value value, bool* result) { return napi_clear_last_error(env); } -napi_status napi_get_buffer_info(napi_env env, - napi_value value, - void** data, - size_t* length) { +napi_status NAPI_CDECL napi_get_buffer_info(napi_env env, + napi_value value, + void** data, + size_t* length) { CHECK_ENV(env); CHECK_ARG(env, value); @@ -990,8 +1029,8 @@ napi_status napi_get_buffer_info(napi_env env, return napi_clear_last_error(env); } -napi_status napi_get_node_version(napi_env env, - const napi_node_version** result) { +napi_status NAPI_CDECL napi_get_node_version(napi_env env, + const napi_node_version** result) { CHECK_ENV(env); CHECK_ARG(env, result); static const napi_node_version version = { @@ -1061,16 +1100,9 @@ class Work : public node::AsyncResource, public node::ThreadPoolWork { CallbackScope callback_scope(this); - _env->CallIntoModule( - [&](napi_env env) { - _complete(env, ConvertUVErrorCode(status), _data); - }, - [](napi_env env, v8::Local local_err) { - // If there was an unhandled exception in the complete callback, - // report it as a fatal exception. (There is no JavaScript on the - // callstack that can possibly handle it.) - v8impl::trigger_fatal_exception(env, local_err); - }); + _env->CallbackIntoModule([&](napi_env env) { + _complete(env, ConvertUVErrorCode(status), _data); + }); // Note: Don't access `work` after this point because it was // likely deleted by the complete callback. @@ -1095,13 +1127,14 @@ class Work : public node::AsyncResource, public node::ThreadPoolWork { } \ } while (0) -napi_status napi_create_async_work(napi_env env, - napi_value async_resource, - napi_value async_resource_name, - napi_async_execute_callback execute, - napi_async_complete_callback complete, - void* data, - napi_async_work* result) { +napi_status NAPI_CDECL +napi_create_async_work(napi_env env, + napi_value async_resource, + napi_value async_resource_name, + napi_async_execute_callback execute, + napi_async_complete_callback complete, + void* data, + napi_async_work* result) { CHECK_ENV(env); CHECK_ARG(env, execute); CHECK_ARG(env, result); @@ -1130,7 +1163,8 @@ napi_status napi_create_async_work(napi_env env, return napi_clear_last_error(env); } -napi_status napi_delete_async_work(napi_env env, napi_async_work work) { +napi_status NAPI_CDECL napi_delete_async_work(napi_env env, + napi_async_work work) { CHECK_ENV(env); CHECK_ARG(env, work); @@ -1139,14 +1173,15 @@ napi_status napi_delete_async_work(napi_env env, napi_async_work work) { return napi_clear_last_error(env); } -napi_status napi_get_uv_event_loop(napi_env env, uv_loop_t** loop) { +napi_status NAPI_CDECL napi_get_uv_event_loop(napi_env env, uv_loop_t** loop) { CHECK_ENV(env); CHECK_ARG(env, loop); *loop = reinterpret_cast(env)->node_env()->event_loop(); return napi_clear_last_error(env); } -napi_status napi_queue_async_work(napi_env env, napi_async_work work) { +napi_status NAPI_CDECL napi_queue_async_work(napi_env env, + napi_async_work work) { CHECK_ENV(env); CHECK_ARG(env, work); @@ -1160,7 +1195,8 @@ napi_status napi_queue_async_work(napi_env env, napi_async_work work) { return napi_clear_last_error(env); } -napi_status napi_cancel_async_work(napi_env env, napi_async_work work) { +napi_status NAPI_CDECL napi_cancel_async_work(napi_env env, + napi_async_work work) { CHECK_ENV(env); CHECK_ARG(env, work); @@ -1171,18 +1207,18 @@ napi_status napi_cancel_async_work(napi_env env, napi_async_work work) { return napi_clear_last_error(env); } -napi_status napi_create_threadsafe_function( - napi_env env, - napi_value func, - napi_value async_resource, - napi_value async_resource_name, - size_t max_queue_size, - size_t initial_thread_count, - void* thread_finalize_data, - napi_finalize thread_finalize_cb, - void* context, - napi_threadsafe_function_call_js call_js_cb, - napi_threadsafe_function* result) { +napi_status NAPI_CDECL +napi_create_threadsafe_function(napi_env env, + napi_value func, + napi_value async_resource, + napi_value async_resource_name, + size_t max_queue_size, + size_t initial_thread_count, + void* thread_finalize_data, + napi_finalize thread_finalize_cb, + void* context, + napi_threadsafe_function_call_js call_js_cb, + napi_threadsafe_function* result) { CHECK_ENV(env); CHECK_ARG(env, async_resource_name); RETURN_STATUS_IF_FALSE(env, initial_thread_count > 0, napi_invalid_arg); @@ -1234,8 +1270,8 @@ napi_status napi_create_threadsafe_function( return napi_set_last_error(env, status); } -napi_status napi_get_threadsafe_function_context(napi_threadsafe_function func, - void** result) { +napi_status NAPI_CDECL napi_get_threadsafe_function_context( + napi_threadsafe_function func, void** result) { CHECK_NOT_NULL(func); CHECK_NOT_NULL(result); @@ -1243,39 +1279,41 @@ napi_status napi_get_threadsafe_function_context(napi_threadsafe_function func, return napi_ok; } -napi_status napi_call_threadsafe_function( - napi_threadsafe_function func, - void* data, - napi_threadsafe_function_call_mode is_blocking) { +napi_status NAPI_CDECL +napi_call_threadsafe_function(napi_threadsafe_function func, + void* data, + napi_threadsafe_function_call_mode is_blocking) { CHECK_NOT_NULL(func); return reinterpret_cast(func)->Push(data, is_blocking); } -napi_status napi_acquire_threadsafe_function(napi_threadsafe_function func) { +napi_status NAPI_CDECL +napi_acquire_threadsafe_function(napi_threadsafe_function func) { CHECK_NOT_NULL(func); return reinterpret_cast(func)->Acquire(); } -napi_status napi_release_threadsafe_function( +napi_status NAPI_CDECL napi_release_threadsafe_function( napi_threadsafe_function func, napi_threadsafe_function_release_mode mode) { CHECK_NOT_NULL(func); return reinterpret_cast(func)->Release(mode); } -napi_status napi_unref_threadsafe_function(napi_env env, - napi_threadsafe_function func) { +napi_status NAPI_CDECL +napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func) { CHECK_NOT_NULL(func); return reinterpret_cast(func)->Unref(); } -napi_status napi_ref_threadsafe_function(napi_env env, - napi_threadsafe_function func) { +napi_status NAPI_CDECL +napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func) { CHECK_NOT_NULL(func); return reinterpret_cast(func)->Ref(); } -napi_status node_api_get_module_file_name(napi_env env, const char** result) { +napi_status NAPI_CDECL node_api_get_module_file_name(napi_env env, + const char** result) { CHECK_ENV(env); CHECK_ARG(env, result); diff --git a/src/node_api.h b/src/node_api.h index d95046676a699d..982b41cadf20ae 100644 --- a/src/node_api.h +++ b/src/node_api.h @@ -28,8 +28,8 @@ struct uv_loop_s; // Forward declaration. #define NAPI_NO_RETURN #endif -typedef napi_value (*napi_addon_register_func)(napi_env env, - napi_value exports); +typedef napi_value(NAPI_CDECL* napi_addon_register_func)(napi_env env, + napi_value exports); typedef struct napi_module { int nm_version; @@ -46,13 +46,13 @@ typedef struct napi_module { #if defined(_MSC_VER) #if defined(__cplusplus) #define NAPI_C_CTOR(fn) \ - static void __cdecl fn(void); \ + static void NAPI_CDECL fn(void); \ namespace { \ struct fn##_ { \ fn##_() { fn(); } \ } fn##_v_; \ } \ - static void __cdecl fn(void) + static void NAPI_CDECL fn(void) #else // !defined(__cplusplus) #pragma section(".CRT$XCU", read) // The NAPI_C_CTOR macro defines a function fn that is called during CRT @@ -62,10 +62,10 @@ typedef struct napi_module { // optimized. See for details: // https://docs.microsoft.com/en-us/cpp/c-runtime-library/crt-initialization?view=msvc-170 #define NAPI_C_CTOR(fn) \ - static void __cdecl fn(void); \ - __declspec(dllexport, allocate(".CRT$XCU")) void(__cdecl * fn##_)(void) = \ + static void NAPI_CDECL fn(void); \ + __declspec(dllexport, allocate(".CRT$XCU")) void(NAPI_CDECL * fn##_)(void) = \ fn; \ - static void __cdecl fn(void) + static void NAPI_CDECL fn(void) #endif // defined(__cplusplus) #else #define NAPI_C_CTOR(fn) \ @@ -121,102 +121,105 @@ typedef struct napi_module { EXTERN_C_START -NAPI_EXTERN void napi_module_register(napi_module* mod); +NAPI_EXTERN void NAPI_CDECL napi_module_register(napi_module* mod); -NAPI_EXTERN NAPI_NO_RETURN void napi_fatal_error(const char* location, - size_t location_len, - const char* message, - size_t message_len); +NAPI_EXTERN NAPI_NO_RETURN void NAPI_CDECL +napi_fatal_error(const char* location, + size_t location_len, + const char* message, + size_t message_len); // Methods for custom handling of async operations -NAPI_EXTERN napi_status napi_async_init(napi_env env, - napi_value async_resource, - napi_value async_resource_name, - napi_async_context* result); - -NAPI_EXTERN napi_status napi_async_destroy(napi_env env, - napi_async_context async_context); - -NAPI_EXTERN napi_status napi_make_callback(napi_env env, - napi_async_context async_context, - napi_value recv, - napi_value func, - size_t argc, - const napi_value* argv, - napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_async_init(napi_env env, + napi_value async_resource, + napi_value async_resource_name, + napi_async_context* result); + +NAPI_EXTERN napi_status NAPI_CDECL +napi_async_destroy(napi_env env, napi_async_context async_context); + +NAPI_EXTERN napi_status NAPI_CDECL +napi_make_callback(napi_env env, + napi_async_context async_context, + napi_value recv, + napi_value func, + size_t argc, + const napi_value* argv, + napi_value* result); // Methods to provide node::Buffer functionality with napi types -NAPI_EXTERN napi_status napi_create_buffer(napi_env env, - size_t length, - void** data, - napi_value* result); -NAPI_EXTERN napi_status napi_create_external_buffer(napi_env env, - size_t length, - void* data, - napi_finalize finalize_cb, - void* finalize_hint, - napi_value* result); -NAPI_EXTERN napi_status napi_create_buffer_copy(napi_env env, - size_t length, - const void* data, - void** result_data, - napi_value* result); -NAPI_EXTERN napi_status napi_is_buffer(napi_env env, - napi_value value, - bool* result); -NAPI_EXTERN napi_status napi_get_buffer_info(napi_env env, - napi_value value, - void** data, - size_t* length); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_buffer(napi_env env, + size_t length, + void** data, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_external_buffer(napi_env env, + size_t length, + void* data, + napi_finalize finalize_cb, + void* finalize_hint, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_create_buffer_copy(napi_env env, + size_t length, + const void* data, + void** result_data, + napi_value* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_is_buffer(napi_env env, + napi_value value, + bool* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_get_buffer_info(napi_env env, + napi_value value, + void** data, + size_t* length); // Methods to manage simple async operations -NAPI_EXTERN -napi_status napi_create_async_work(napi_env env, - napi_value async_resource, - napi_value async_resource_name, - napi_async_execute_callback execute, - napi_async_complete_callback complete, - void* data, - napi_async_work* result); -NAPI_EXTERN napi_status napi_delete_async_work(napi_env env, - napi_async_work work); -NAPI_EXTERN napi_status napi_queue_async_work(napi_env env, - napi_async_work work); -NAPI_EXTERN napi_status napi_cancel_async_work(napi_env env, - napi_async_work work); +NAPI_EXTERN napi_status NAPI_CDECL +napi_create_async_work(napi_env env, + napi_value async_resource, + napi_value async_resource_name, + napi_async_execute_callback execute, + napi_async_complete_callback complete, + void* data, + napi_async_work* result); +NAPI_EXTERN napi_status NAPI_CDECL napi_delete_async_work(napi_env env, + napi_async_work work); +NAPI_EXTERN napi_status NAPI_CDECL napi_queue_async_work(napi_env env, + napi_async_work work); +NAPI_EXTERN napi_status NAPI_CDECL napi_cancel_async_work(napi_env env, + napi_async_work work); // version management -NAPI_EXTERN -napi_status napi_get_node_version(napi_env env, - const napi_node_version** version); +NAPI_EXTERN napi_status NAPI_CDECL +napi_get_node_version(napi_env env, const napi_node_version** version); #if NAPI_VERSION >= 2 // Return the current libuv event loop for a given environment -NAPI_EXTERN napi_status napi_get_uv_event_loop(napi_env env, - struct uv_loop_s** loop); +NAPI_EXTERN napi_status NAPI_CDECL +napi_get_uv_event_loop(napi_env env, struct uv_loop_s** loop); #endif // NAPI_VERSION >= 2 #if NAPI_VERSION >= 3 -NAPI_EXTERN napi_status napi_fatal_exception(napi_env env, napi_value err); +NAPI_EXTERN napi_status NAPI_CDECL napi_fatal_exception(napi_env env, + napi_value err); -NAPI_EXTERN napi_status napi_add_env_cleanup_hook(napi_env env, - void (*fun)(void* arg), - void* arg); +NAPI_EXTERN napi_status NAPI_CDECL napi_add_env_cleanup_hook( + napi_env env, void(NAPI_CDECL* fun)(void* arg), void* arg); -NAPI_EXTERN napi_status napi_remove_env_cleanup_hook(napi_env env, - void (*fun)(void* arg), - void* arg); +NAPI_EXTERN napi_status NAPI_CDECL napi_remove_env_cleanup_hook( + napi_env env, void(NAPI_CDECL* fun)(void* arg), void* arg); -NAPI_EXTERN napi_status napi_open_callback_scope(napi_env env, - napi_value resource_object, - napi_async_context context, - napi_callback_scope* result); +NAPI_EXTERN napi_status NAPI_CDECL +napi_open_callback_scope(napi_env env, + napi_value resource_object, + napi_async_context context, + napi_callback_scope* result); -NAPI_EXTERN napi_status napi_close_callback_scope(napi_env env, - napi_callback_scope scope); +NAPI_EXTERN napi_status NAPI_CDECL +napi_close_callback_scope(napi_env env, napi_callback_scope scope); #endif // NAPI_VERSION >= 3 @@ -224,7 +227,7 @@ NAPI_EXTERN napi_status napi_close_callback_scope(napi_env env, #ifndef __wasm32__ // Calling into JS from other threads -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_create_threadsafe_function(napi_env env, napi_value func, napi_value async_resource, @@ -237,24 +240,24 @@ napi_create_threadsafe_function(napi_env env, napi_threadsafe_function_call_js call_js_cb, napi_threadsafe_function* result); -NAPI_EXTERN napi_status napi_get_threadsafe_function_context( +NAPI_EXTERN napi_status NAPI_CDECL napi_get_threadsafe_function_context( napi_threadsafe_function func, void** result); -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_call_threadsafe_function(napi_threadsafe_function func, void* data, napi_threadsafe_function_call_mode is_blocking); -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_acquire_threadsafe_function(napi_threadsafe_function func); -NAPI_EXTERN napi_status napi_release_threadsafe_function( +NAPI_EXTERN napi_status NAPI_CDECL napi_release_threadsafe_function( napi_threadsafe_function func, napi_threadsafe_function_release_mode mode); -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func); -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func); #endif // __wasm32__ @@ -262,21 +265,21 @@ napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func); #if NAPI_VERSION >= 8 -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_add_async_cleanup_hook(napi_env env, napi_async_cleanup_hook hook, void* arg, napi_async_cleanup_hook_handle* remove_handle); -NAPI_EXTERN napi_status +NAPI_EXTERN napi_status NAPI_CDECL napi_remove_async_cleanup_hook(napi_async_cleanup_hook_handle remove_handle); #endif // NAPI_VERSION >= 8 #ifdef NAPI_EXPERIMENTAL -NAPI_EXTERN napi_status node_api_get_module_file_name(napi_env env, - const char** result); +NAPI_EXTERN napi_status NAPI_CDECL +node_api_get_module_file_name(napi_env env, const char** result); #endif // NAPI_EXPERIMENTAL diff --git a/src/node_api_internals.h b/src/node_api_internals.h index 318ada38083435..6478520fd55da6 100644 --- a/src/node_api_internals.h +++ b/src/node_api_internals.h @@ -11,11 +11,18 @@ struct node_napi_env__ : public napi_env__ { node_napi_env__(v8::Local context, const std::string& module_filename); + ~node_napi_env__(); bool can_call_into_js() const override; v8::Maybe mark_arraybuffer_as_untransferable( v8::Local ab) const override; void CallFinalizer(napi_finalize cb, void* data, void* hint) override; + template + void CallFinalizer(napi_finalize cb, void* data, void* hint); + + void trigger_fatal_exception(v8::Local local_err); + template + void CallbackIntoModule(T&& call); inline node::Environment* node_env() const { return node::Environment::GetCurrent(context()); @@ -23,6 +30,7 @@ struct node_napi_env__ : public napi_env__ { inline const char* GetFilename() const { return filename.c_str(); } std::string filename; + bool destructing = false; }; using node_napi_env = node_napi_env__*; diff --git a/src/node_api_types.h b/src/node_api_types.h index 4ad26a8fb6476e..4231994748a53e 100644 --- a/src/node_api_types.h +++ b/src/node_api_types.h @@ -22,15 +22,13 @@ typedef enum { } napi_threadsafe_function_call_mode; #endif // NAPI_VERSION >= 4 -typedef void (*napi_async_execute_callback)(napi_env env, void* data); -typedef void (*napi_async_complete_callback)(napi_env env, - napi_status status, - void* data); +typedef void(NAPI_CDECL* napi_async_execute_callback)(napi_env env, void* data); +typedef void(NAPI_CDECL* napi_async_complete_callback)(napi_env env, + napi_status status, + void* data); #if NAPI_VERSION >= 4 -typedef void (*napi_threadsafe_function_call_js)(napi_env env, - napi_value js_callback, - void* context, - void* data); +typedef void(NAPI_CDECL* napi_threadsafe_function_call_js)( + napi_env env, napi_value js_callback, void* context, void* data); #endif // NAPI_VERSION >= 4 typedef struct { @@ -42,8 +40,8 @@ typedef struct { #if NAPI_VERSION >= 8 typedef struct napi_async_cleanup_hook_handle__* napi_async_cleanup_hook_handle; -typedef void (*napi_async_cleanup_hook)(napi_async_cleanup_hook_handle handle, - void* data); +typedef void(NAPI_CDECL* napi_async_cleanup_hook)( + napi_async_cleanup_hook_handle handle, void* data); #endif // NAPI_VERSION >= 8 #endif // SRC_NODE_API_TYPES_H_ diff --git a/src/node_binding.cc b/src/node_binding.cc index ed8ab9237fd3b3..2991ee34746e0f 100644 --- a/src/node_binding.cc +++ b/src/node_binding.cc @@ -87,8 +87,9 @@ V(uv) \ V(v8) \ V(wasi) \ - V(worker) \ + V(wasm_web_api) \ V(watchdog) \ + V(worker) \ V(zlib) #define NODE_BUILTIN_MODULES(V) \ diff --git a/src/node_buffer.cc b/src/node_buffer.cc index 215bd8003aabe1..5b2186feb8c707 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -20,7 +20,6 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. #include "node_buffer.h" -#include "allocated_buffer-inl.h" #include "node.h" #include "node_blob.h" #include "node_errors.h" @@ -502,8 +501,20 @@ MaybeLocal New(Environment* env, } } - auto free_callback = [](char* data, void* hint) { free(data); }; - return New(env, data, length, free_callback, nullptr); + EscapableHandleScope handle_scope(env->isolate()); + + auto free_callback = [](void* data, size_t length, void* deleter_data) { + free(data); + }; + std::unique_ptr bs = + v8::ArrayBuffer::NewBackingStore(data, length, free_callback, nullptr); + + Local ab = v8::ArrayBuffer::New(env->isolate(), std::move(bs)); + + Local obj; + if (Buffer::New(env, ab, 0, length).ToLocal(&obj)) + return handle_scope.Escape(obj); + return Local(); } namespace { diff --git a/src/node_code_cache_stub.cc b/src/node_code_cache_stub.cc deleted file mode 100644 index 9d9901738f63b0..00000000000000 --- a/src/node_code_cache_stub.cc +++ /dev/null @@ -1,22 +0,0 @@ -// This file is part of the embedder test, which is intentionally built without -// NODE_WANT_INTERNALS, so we define it here manually. -#define NODE_WANT_INTERNALS 1 - -#include "node_native_module_env.h" - -// The stub here is used when configure is run without `--code-cache-path`. -// When --code-cache-path is set this stub will not be used and instead -// an implementation will be generated. See tools/code_cache/README.md for -// more information. - -namespace node { -namespace native_module { - -const bool has_code_cache = false; - -// The generated source code would insert pairs -// into NativeModuleLoader::instance.code_cache_. -void NativeModuleEnv::InitializeCodeCache() {} - -} // namespace native_module -} // namespace node diff --git a/src/node_constants.cc b/src/node_constants.cc index 38c8f2738b4bad..3269e3003acd4d 100644 --- a/src/node_constants.cc +++ b/src/node_constants.cc @@ -47,6 +47,16 @@ #include #endif +#if defined(_WIN32) +#include // _S_IREAD _S_IWRITE +#ifndef S_IRUSR +#define S_IRUSR _S_IREAD +#endif // S_IRUSR +#ifndef S_IWUSR +#define S_IWUSR _S_IWRITE +#endif // S_IWUSR +#endif + #include #include #include diff --git a/src/node_contextify.cc b/src/node_contextify.cc index 482c9a7b51dbf0..e7a4a4dd142cb2 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -449,16 +449,8 @@ void ContextifyContext::PropertySetterCallback( !is_function) return; - if (!is_declared_on_global_proxy && is_declared_on_sandbox && - args.ShouldThrowOnError() && is_contextual_store && !is_function) { - // The property exists on the sandbox but not on the global - // proxy. Setting it would throw because we are in strict mode. - // Don't attempt to set it by signaling that the call was - // intercepted. Only change the value on the sandbox. - args.GetReturnValue().Set(false); - } - USE(ctx->sandbox()->Set(context, property, value)); + args.GetReturnValue().Set(value); } // static @@ -740,11 +732,10 @@ void ContextifyScript::New(const FunctionCallbackInfo& args) { if (*TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED( TRACING_CATEGORY_NODE2(vm, script)) != 0) { Utf8Value fn(isolate, filename); - TRACE_EVENT_NESTABLE_ASYNC_BEGIN1( - TRACING_CATEGORY_NODE2(vm, script), - "ContextifyScript::New", - contextify_script, - "filename", TRACE_STR_COPY(*fn)); + TRACE_EVENT_BEGIN1(TRACING_CATEGORY_NODE2(vm, script), + "ContextifyScript::New", + "filename", + TRACE_STR_COPY(*fn)); } ScriptCompiler::CachedData* cached_data = nullptr; @@ -794,10 +785,8 @@ void ContextifyScript::New(const FunctionCallbackInfo& args) { no_abort_scope.Close(); if (!try_catch.HasTerminated()) try_catch.ReThrow(); - TRACE_EVENT_NESTABLE_ASYNC_END0( - TRACING_CATEGORY_NODE2(vm, script), - "ContextifyScript::New", - contextify_script); + TRACE_EVENT_END0(TRACING_CATEGORY_NODE2(vm, script), + "ContextifyScript::New"); return; } contextify_script->script_.Reset(isolate, v8_script.ToLocalChecked()); @@ -826,10 +815,7 @@ void ContextifyScript::New(const FunctionCallbackInfo& args) { env->cached_data_produced_string(), Boolean::New(isolate, cached_data_produced)).Check(); } - TRACE_EVENT_NESTABLE_ASYNC_END0( - TRACING_CATEGORY_NODE2(vm, script), - "ContextifyScript::New", - contextify_script); + TRACE_EVENT_END0(TRACING_CATEGORY_NODE2(vm, script), "ContextifyScript::New"); } bool ContextifyScript::InstanceOf(Environment* env, @@ -865,8 +851,7 @@ void ContextifyScript::RunInThisContext( ContextifyScript* wrapped_script; ASSIGN_OR_RETURN_UNWRAP(&wrapped_script, args.Holder()); - TRACE_EVENT_NESTABLE_ASYNC_BEGIN0( - TRACING_CATEGORY_NODE2(vm, script), "RunInThisContext", wrapped_script); + TRACE_EVENT0(TRACING_CATEGORY_NODE2(vm, script), "RunInThisContext"); // TODO(addaleax): Use an options object or otherwise merge this with // RunInContext(). @@ -892,9 +877,6 @@ void ContextifyScript::RunInThisContext( break_on_first_line, nullptr, // microtask_queue args); - - TRACE_EVENT_NESTABLE_ASYNC_END0( - TRACING_CATEGORY_NODE2(vm, script), "RunInThisContext", wrapped_script); } void ContextifyScript::RunInContext(const FunctionCallbackInfo& args) { @@ -916,8 +898,7 @@ void ContextifyScript::RunInContext(const FunctionCallbackInfo& args) { if (context.IsEmpty()) return; - TRACE_EVENT_NESTABLE_ASYNC_BEGIN0( - TRACING_CATEGORY_NODE2(vm, script), "RunInContext", wrapped_script); + TRACE_EVENT0(TRACING_CATEGORY_NODE2(vm, script), "RunInContext"); CHECK(args[1]->IsNumber()); int64_t timeout = args[1]->IntegerValue(env->context()).FromJust(); @@ -940,9 +921,6 @@ void ContextifyScript::RunInContext(const FunctionCallbackInfo& args) { break_on_first_line, contextify_context->microtask_queue(), args); - - TRACE_EVENT_NESTABLE_ASYNC_END0( - TRACING_CATEGORY_NODE2(vm, script), "RunInContext", wrapped_script); } bool ContextifyScript::EvalMachine(Environment* env, diff --git a/src/node_external_reference.cc b/src/node_external_reference.cc index 94198719b6a002..9a89977094bb55 100644 --- a/src/node_external_reference.cc +++ b/src/node_external_reference.cc @@ -7,9 +7,11 @@ namespace node { const std::vector& ExternalReferenceRegistry::external_references() { - CHECK(!is_finalized_); - external_references_.push_back(reinterpret_cast(nullptr)); - is_finalized_ = true; + if (!is_finalized_) { + external_references_.push_back(reinterpret_cast(nullptr)); + is_finalized_ = true; + } + return external_references_; } diff --git a/src/node_external_reference.h b/src/node_external_reference.h index 306c726631a214..58b8f4bed2fcfd 100644 --- a/src/node_external_reference.h +++ b/src/node_external_reference.h @@ -90,6 +90,7 @@ class ExternalReferenceRegistry { V(uv) \ V(v8) \ V(zlib) \ + V(wasm_web_api) \ V(worker) #if NODE_HAVE_I18N_SUPPORT diff --git a/src/node_file-inl.h b/src/node_file-inl.h index 0188261b7dcbb4..28d4d9ab8c8903 100644 --- a/src/node_file-inl.h +++ b/src/node_file-inl.h @@ -156,8 +156,10 @@ FSReqPromise::New(BindingData* binding_data, template FSReqPromise::~FSReqPromise() { - // Validate that the promise was explicitly resolved or rejected. - CHECK(finished_); + // Validate that the promise was explicitly resolved or rejected but only if + // the Isolate is not terminating because in this case the promise might have + // not finished. + if (!env()->is_stopping()) CHECK(finished_); } template diff --git a/src/node_file.cc b/src/node_file.cc index 105ed4c4150608..5a3e54669049fb 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -377,6 +377,7 @@ MaybeLocal FileHandle::ClosePromise() { std::unique_ptr close(CloseReq::from_req(req)); CHECK_NOT_NULL(close); close->file_handle()->AfterClose(); + if (!close->env()->can_call_into_js()) return; Isolate* isolate = close->env()->isolate(); if (req->result < 0) { HandleScope handle_scope(isolate); @@ -650,6 +651,10 @@ void FSReqAfterScope::Reject(uv_fs_t* req) { } bool FSReqAfterScope::Proceed() { + if (!wrap_->env()->can_call_into_js()) { + return false; + } + if (req_->result < 0) { Reject(req_); return false; @@ -1382,6 +1387,7 @@ int MKDirpSync(uv_loop_t* loop, } break; case UV_EACCES: + case UV_ENOSPC: case UV_ENOTDIR: case UV_EPERM: { return err; diff --git a/src/node_http2.cc b/src/node_http2.cc index e0786677264b2e..4c180c539a7d5e 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -1,12 +1,11 @@ +#include "node_http2.h" #include "aliased_buffer.h" -#include "allocated_buffer-inl.h" #include "aliased_struct-inl.h" #include "debug_utils-inl.h" #include "histogram-inl.h" #include "memory_tracker-inl.h" #include "node.h" #include "node_buffer.h" -#include "node_http2.h" #include "node_http_common-inl.h" #include "node_mem-inl.h" #include "node_perf.h" @@ -641,7 +640,7 @@ void Http2Stream::EmitStatistics() { std::unique_ptr entry = std::make_unique( "Http2Stream", - start, + start - (node::performance::timeOrigin / 1e6), duration, statistics_); @@ -661,7 +660,7 @@ void Http2Session::EmitStatistics() { std::unique_ptr entry = std::make_unique( "Http2Session", - start, + start - (node::performance::timeOrigin / 1e6), duration, statistics_); diff --git a/src/node_http_common.h b/src/node_http_common.h index ad9f2a864e0af9..4440b5c58d93d7 100644 --- a/src/node_http_common.h +++ b/src/node_http_common.h @@ -196,7 +196,7 @@ enum http_status_codes { // Unlike the HTTP/1 implementation, the HTTP/2 implementation is not limited // to a fixed number of known supported HTTP methods. These constants, therefore // are provided strictly as a convenience to users and are exposed via the -// require('http2').constants object. +// require('node:http2').constants object. #define HTTP_KNOWN_METHODS(V) \ V(ACL, "ACL") \ V(BASELINE_CONTROL, "BASELINE-CONTROL") \ diff --git a/src/node_http_parser.cc b/src/node_http_parser.cc index d70e15b8c03f01..7ff5b0fe2ff76f 100644 --- a/src/node_http_parser.cc +++ b/src/node_http_parser.cc @@ -60,6 +60,7 @@ using v8::FunctionTemplate; using v8::HandleScope; using v8::Int32; using v8::Integer; +using v8::Isolate; using v8::Local; using v8::MaybeLocal; using v8::Number; @@ -187,7 +188,58 @@ struct StringPtr { size_t size_; }; +class Parser; + +struct ParserComparator { + bool operator()(const Parser* lhs, const Parser* rhs) const; +}; + +class ConnectionsList : public BaseObject { + public: + static void New(const FunctionCallbackInfo& args); + + static void All(const FunctionCallbackInfo& args); + + static void Idle(const FunctionCallbackInfo& args); + + static void Active(const FunctionCallbackInfo& args); + + static void Expired(const FunctionCallbackInfo& args); + + void Push(Parser* parser) { + all_connections_.insert(parser); + } + + void Pop(Parser* parser) { + all_connections_.erase(parser); + } + + void PushActive(Parser* parser) { + active_connections_.insert(parser); + } + + void PopActive(Parser* parser) { + active_connections_.erase(parser); + } + + SET_NO_MEMORY_INFO() + SET_MEMORY_INFO_NAME(ConnectionsList) + SET_SELF_SIZE(ConnectionsList) + + private: + ConnectionsList(Environment* env, Local object) + : BaseObject(env, object) { + MakeWeak(); + } + + std::set all_connections_; + std::set active_connections_; +}; + class Parser : public AsyncWrap, public StreamListener { + friend class ConnectionsList; + friend struct ParserComparator; + public: Parser(BindingData* binding_data, Local wrap) : AsyncWrap(binding_data->env(), wrap), @@ -205,10 +257,23 @@ class Parser : public AsyncWrap, public StreamListener { SET_SELF_SIZE(Parser) int on_message_begin() { + // Important: Pop from the lists BEFORE resetting the last_message_start_ + // otherwise std::set.erase will fail. + if (connectionsList_ != nullptr) { + connectionsList_->Pop(this); + connectionsList_->PopActive(this); + } + num_fields_ = num_values_ = 0; + headers_completed_ = false; + last_message_start_ = uv_hrtime(); url_.Reset(); status_message_.Reset(); - header_parsing_start_time_ = uv_hrtime(); + + if (connectionsList_ != nullptr) { + connectionsList_->Push(this); + connectionsList_->PushActive(this); + } Local cb = object()->Get(env()->context(), kOnMessageBegin) .ToLocalChecked(); @@ -297,8 +362,8 @@ class Parser : public AsyncWrap, public StreamListener { int on_headers_complete() { + headers_completed_ = true; header_nread_ = 0; - header_parsing_start_time_ = 0; // Arguments for the on-headers-complete javascript callback. This // list needs to be kept in sync with the actual argument list for @@ -429,6 +494,19 @@ class Parser : public AsyncWrap, public StreamListener { int on_message_complete() { HandleScope scope(env()->isolate()); + // Important: Pop from the lists BEFORE resetting the last_message_start_ + // otherwise std::set.erase will fail. + if (connectionsList_ != nullptr) { + connectionsList_->Pop(this); + connectionsList_->PopActive(this); + } + + last_message_start_ = 0; + + if (connectionsList_ != nullptr) { + connectionsList_->Push(this); + } + if (num_fields_) Flush(); // Flush trailing HTTP headers. @@ -486,6 +564,11 @@ class Parser : public AsyncWrap, public StreamListener { Parser* parser; ASSIGN_OR_RETURN_UNWRAP(&parser, args.Holder()); + if (parser->connectionsList_ != nullptr) { + parser->connectionsList_->Pop(parser); + parser->connectionsList_->PopActive(parser); + } + // Since the Parser destructor isn't going to run the destroy() callbacks // it needs to be triggered manually. parser->EmitTraceEventDestroy(); @@ -506,7 +589,6 @@ class Parser : public AsyncWrap, public StreamListener { } } - // var bytesParsed = parser->execute(buffer); static void Execute(const FunctionCallbackInfo& args) { Parser* parser; @@ -545,8 +627,8 @@ class Parser : public AsyncWrap, public StreamListener { Environment* env = Environment::GetCurrent(args); uint64_t max_http_header_size = 0; - uint64_t headers_timeout = 0; uint32_t lenient_flags = kLenientNone; + ConnectionsList* connectionsList = nullptr; CHECK(args[0]->IsInt32()); CHECK(args[1]->IsObject()); @@ -565,9 +647,9 @@ class Parser : public AsyncWrap, public StreamListener { lenient_flags = args[3].As()->Value(); } - if (args.Length() > 4) { - CHECK(args[4]->IsInt32()); - headers_timeout = args[4].As()->Value(); + if (args.Length() > 4 && !args[4]->IsNullOrUndefined()) { + CHECK(args[4]->IsObject()); + ASSIGN_OR_RETURN_UNWRAP(&connectionsList, args[4]); } llhttp_type_t type = @@ -586,7 +668,23 @@ class Parser : public AsyncWrap, public StreamListener { parser->set_provider_type(provider); parser->AsyncReset(args[1].As()); - parser->Init(type, max_http_header_size, lenient_flags, headers_timeout); + parser->Init(type, max_http_header_size, lenient_flags); + + if (connectionsList != nullptr) { + parser->connectionsList_ = connectionsList; + + // This protects from a DoS attack where an attacker establishes + // the connection without sending any data on applications where + // server.timeout is left to the default value of zero. + parser->last_message_start_ = uv_hrtime(); + + // Important: Push into the lists AFTER setting the last_message_start_ + // otherwise std::set.erase will fail later. + parser->connectionsList_->Push(parser); + parser->connectionsList_->PushActive(parser); + } else { + parser->connectionsList_ = nullptr; + } } template @@ -644,6 +742,26 @@ class Parser : public AsyncWrap, public StreamListener { args.GetReturnValue().Set(ret); } + static void Duration(const FunctionCallbackInfo& args) { + Parser* parser; + ASSIGN_OR_RETURN_UNWRAP(&parser, args.Holder()); + + if (parser->last_message_start_ == 0) { + args.GetReturnValue().Set(0); + return; + } + + double duration = (uv_hrtime() - parser->last_message_start_) / 1e6; + args.GetReturnValue().Set(duration); + } + + static void HeadersCompleted(const FunctionCallbackInfo& args) { + Parser* parser; + ASSIGN_OR_RETURN_UNWRAP(&parser, args.Holder()); + + args.GetReturnValue().Set(parser->headers_completed_); + } + protected: static const size_t kAllocBufferSize = 64 * 1024; @@ -690,24 +808,6 @@ class Parser : public AsyncWrap, public StreamListener { if (ret.IsEmpty()) return; - // check header parsing time - if (header_parsing_start_time_ != 0 && headers_timeout_ != 0) { - uint64_t now = uv_hrtime(); - uint64_t parsing_time = (now - header_parsing_start_time_) / 1000000; - - if (parsing_time > headers_timeout_) { - Local cb = - object()->Get(env()->context(), kOnTimeout).ToLocalChecked(); - - if (!cb->IsFunction()) - return; - - MakeCallback(cb.As(), 0, nullptr); - - return; - } - } - Local cb = object()->Get(env()->context(), kOnExecute).ToLocalChecked(); @@ -853,7 +953,7 @@ class Parser : public AsyncWrap, public StreamListener { void Init(llhttp_type_t type, uint64_t max_http_header_size, - uint32_t lenient_flags, uint64_t headers_timeout) { + uint32_t lenient_flags) { llhttp_init(&parser_, type, &settings); if (lenient_flags & kLenientHeaders) { @@ -873,9 +973,8 @@ class Parser : public AsyncWrap, public StreamListener { num_values_ = 0; have_flushed_ = false; got_exception_ = false; + headers_completed_ = false; max_http_header_size_ = max_http_header_size; - header_parsing_start_time_ = 0; - headers_timeout_ = headers_timeout; } @@ -923,11 +1022,12 @@ class Parser : public AsyncWrap, public StreamListener { size_t current_buffer_len_; const char* current_buffer_data_; unsigned int execute_depth_ = 0; + bool headers_completed_ = false; bool pending_pause_ = false; uint64_t header_nread_ = 0; uint64_t max_http_header_size_; - uint64_t headers_timeout_; - uint64_t header_parsing_start_time_ = 0; + uint64_t last_message_start_; + ConnectionsList* connectionsList_; BaseObjectPtr binding_data_; @@ -952,6 +1052,139 @@ class Parser : public AsyncWrap, public StreamListener { static const llhttp_settings_t settings; }; +bool ParserComparator::operator()(const Parser* lhs, const Parser* rhs) const { + if (lhs->last_message_start_ == 0 && rhs->last_message_start_ == 0) { + // When both parsers are idle, guarantee strict order by + // comparing pointers as ints. + return lhs < rhs; + } else if (lhs->last_message_start_ == 0) { + return true; + } else if (rhs->last_message_start_ == 0) { + return false; + } + + return lhs->last_message_start_ < rhs->last_message_start_; +} + +void ConnectionsList::New(const FunctionCallbackInfo& args) { + Local context = args.GetIsolate()->GetCurrentContext(); + Environment* env = Environment::GetCurrent(context); + + new ConnectionsList(env, args.This()); +} + +void ConnectionsList::All(const FunctionCallbackInfo& args) { + Isolate* isolate = args.GetIsolate(); + Local context = isolate->GetCurrentContext(); + + Local all = Array::New(isolate); + ConnectionsList* list; + + ASSIGN_OR_RETURN_UNWRAP(&list, args.Holder()); + + uint32_t i = 0; + for (auto parser : list->all_connections_) { + if (all->Set(context, i++, parser->object()).IsNothing()) { + return; + } + } + + return args.GetReturnValue().Set(all); +} + +void ConnectionsList::Idle(const FunctionCallbackInfo& args) { + Isolate* isolate = args.GetIsolate(); + Local context = isolate->GetCurrentContext(); + + Local idle = Array::New(isolate); + ConnectionsList* list; + + ASSIGN_OR_RETURN_UNWRAP(&list, args.Holder()); + + uint32_t i = 0; + for (auto parser : list->all_connections_) { + if (parser->last_message_start_ == 0) { + if (idle->Set(context, i++, parser->object()).IsNothing()) { + return; + } + } + } + + return args.GetReturnValue().Set(idle); +} + +void ConnectionsList::Active(const FunctionCallbackInfo& args) { + Isolate* isolate = args.GetIsolate(); + Local context = isolate->GetCurrentContext(); + + Local active = Array::New(isolate); + ConnectionsList* list; + + ASSIGN_OR_RETURN_UNWRAP(&list, args.Holder()); + + uint32_t i = 0; + for (auto parser : list->active_connections_) { + if (active->Set(context, i++, parser->object()).IsNothing()) { + return; + } + } + + return args.GetReturnValue().Set(active); +} + +void ConnectionsList::Expired(const FunctionCallbackInfo& args) { + Isolate* isolate = args.GetIsolate(); + Local context = isolate->GetCurrentContext(); + + Local expired = Array::New(isolate); + ConnectionsList* list; + + ASSIGN_OR_RETURN_UNWRAP(&list, args.Holder()); + CHECK(args[0]->IsNumber()); + CHECK(args[1]->IsNumber()); + uint64_t headers_timeout = + static_cast(args[0].As()->Value()) * 1000000; + uint64_t request_timeout = + static_cast(args[1].As()->Value()) * 1000000; + + if (headers_timeout == 0 && request_timeout == 0) { + return args.GetReturnValue().Set(expired); + } else if (request_timeout > 0 && headers_timeout > request_timeout) { + std::swap(headers_timeout, request_timeout); + } + + const uint64_t now = uv_hrtime(); + const uint64_t headers_deadline = + headers_timeout > 0 ? now - headers_timeout : 0; + const uint64_t request_deadline = + request_timeout > 0 ? now - request_timeout : 0; + + uint32_t i = 0; + auto iter = list->active_connections_.begin(); + auto end = list->active_connections_.end(); + while (iter != end) { + Parser* parser = *iter; + iter++; + + // Check for expiration. + if ( + (!parser->headers_completed_ && headers_deadline > 0 && + parser->last_message_start_ < headers_deadline) || + ( + request_deadline > 0 && + parser->last_message_start_ < request_deadline) + ) { + if (expired->Set(context, i++, parser->object()).IsNothing()) { + return; + } + + list->active_connections_.erase(parser); + } + } + + return args.GetReturnValue().Set(expired); +} + const llhttp_settings_t Parser::settings = { Proxy::Raw, Proxy::Raw, @@ -1038,8 +1271,19 @@ void InitializeHttpParser(Local target, env->SetProtoMethod(t, "consume", Parser::Consume); env->SetProtoMethod(t, "unconsume", Parser::Unconsume); env->SetProtoMethod(t, "getCurrentBuffer", Parser::GetCurrentBuffer); + env->SetProtoMethod(t, "duration", Parser::Duration); + env->SetProtoMethod(t, "headersCompleted", Parser::HeadersCompleted); env->SetConstructorFunction(target, "HTTPParser", t); + + Local c = env->NewFunctionTemplate(ConnectionsList::New); + c->InstanceTemplate() + ->SetInternalFieldCount(ConnectionsList::kInternalFieldCount); + env->SetProtoMethod(c, "all", ConnectionsList::All); + env->SetProtoMethod(c, "idle", ConnectionsList::Idle); + env->SetProtoMethod(c, "active", ConnectionsList::Active); + env->SetProtoMethod(c, "expired", ConnectionsList::Expired); + env->SetConstructorFunction(target, "ConnectionsList", c); } } // anonymous namespace diff --git a/src/node_internals.h b/src/node_internals.h index bf760f4d99534f..f8c31b386d7b62 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -320,13 +320,14 @@ enum InitializationSettingsFlags : uint64_t { }; // TODO(codebytere): eventually document and expose to embedders. -InitializationResult InitializeOncePerProcess(int argc, char** argv); -InitializationResult InitializeOncePerProcess( - int argc, - char** argv, - InitializationSettingsFlags flags, - ProcessFlags::Flags process_flags = ProcessFlags::kNoFlags); -void TearDownOncePerProcess(); +InitializationResult NODE_EXTERN_PRIVATE InitializeOncePerProcess(int argc, + char** argv); +InitializationResult NODE_EXTERN_PRIVATE InitializeOncePerProcess( + int argc, + char** argv, + InitializationSettingsFlags flags, + ProcessFlags::Flags process_flags = ProcessFlags::kNoFlags); +void NODE_EXTERN_PRIVATE TearDownOncePerProcess(); void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s); void SetIsolateMiscHandlers(v8::Isolate* isolate, const IsolateSettings& s); void SetIsolateCreateParamsForNode(v8::Isolate::CreateParams* params); @@ -382,23 +383,6 @@ namespace heap { v8::Maybe WriteSnapshot(Environment* env, const char* filename); } -class TraceEventScope { - public: - TraceEventScope(const char* category, - const char* name, - void* id) : category_(category), name_(name), id_(id) { - TRACE_EVENT_NESTABLE_ASYNC_BEGIN0(category_, name_, id_); - } - ~TraceEventScope() { - TRACE_EVENT_NESTABLE_ASYNC_END0(category_, name_, id_); - } - - private: - const char* category_; - const char* name_; - void* id_; -}; - namespace heap { void DeleteHeapSnapshot(const v8::HeapSnapshot* snapshot); diff --git a/src/node_main_instance.cc b/src/node_main_instance.cc index 7167127c3dbcd3..ad4f6a7d95fb32 100644 --- a/src/node_main_instance.cc +++ b/src/node_main_instance.cc @@ -6,7 +6,9 @@ #include "debug_utils-inl.h" #include "node_external_reference.h" #include "node_internals.h" +#include "node_native_module_env.h" #include "node_options-inl.h" +#include "node_snapshot_builder.h" #include "node_snapshotable.h" #include "node_v8_platform-inl.h" #include "util-inl.h" @@ -26,8 +28,6 @@ using v8::Isolate; using v8::Local; using v8::Locker; -std::unique_ptr NodeMainInstance::registry_ = - nullptr; NodeMainInstance::NodeMainInstance(Isolate* isolate, uv_loop_t* event_loop, MultiIsolatePlatform* platform, @@ -46,13 +46,6 @@ NodeMainInstance::NodeMainInstance(Isolate* isolate, SetIsolateMiscHandlers(isolate_, {}); } -const std::vector& NodeMainInstance::CollectExternalReferences() { - // Cannot be called more than once. - CHECK_NULL(registry_); - registry_.reset(new ExternalReferenceRegistry()); - return registry_->external_references(); -} - std::unique_ptr NodeMainInstance::Create( Isolate* isolate, uv_loop_t* event_loop, @@ -78,13 +71,8 @@ NodeMainInstance::NodeMainInstance(const SnapshotData* snapshot_data, snapshot_data_(snapshot_data) { isolate_params_->array_buffer_allocator = array_buffer_allocator_.get(); if (snapshot_data != nullptr) { - // TODO(joyeecheung): collect external references and set it in - // params.external_references. - const std::vector& external_references = - CollectExternalReferences(); - isolate_params_->external_references = external_references.data(); - isolate_params_->snapshot_blob = - const_cast(&(snapshot_data->blob)); + SnapshotBuilder::InitializeIsolateParams(snapshot_data, + isolate_params_.get()); } isolate_ = Isolate::Allocate(); @@ -196,12 +184,13 @@ NodeMainInstance::CreateMainEnvironment(int* exit_code) { EnvironmentFlags::kDefaultFlags, {})); context = Context::FromSnapshot(isolate_, - kNodeContextIndex, + SnapshotData::kNodeMainContextIndex, {DeserializeNodeInternalFields, env.get()}) .ToLocalChecked(); CHECK(!context.IsEmpty()); Context::Scope context_scope(context); + CHECK(InitializeContextRuntime(context).IsJust()); SetIsolateErrorHandlers(isolate_, {}); env->InitializeMainContext(context, &(snapshot_data_->env_info)); diff --git a/src/node_main_instance.h b/src/node_main_instance.h index fa4c4db0a886fb..0161f6df18a557 100644 --- a/src/node_main_instance.h +++ b/src/node_main_instance.h @@ -65,12 +65,6 @@ class NodeMainInstance { DeleteFnPtr CreateMainEnvironment( int* exit_code); - // If nullptr is returned, the binary is not built with embedded - // snapshot. - static const SnapshotData* GetEmbeddedSnapshotData(); - static const std::vector& CollectExternalReferences(); - - static const size_t kNodeContextIndex = 0; NodeMainInstance(const NodeMainInstance&) = delete; NodeMainInstance& operator=(const NodeMainInstance&) = delete; NodeMainInstance(NodeMainInstance&&) = delete; diff --git a/src/node_native_module.cc b/src/node_native_module.cc index 5d20e1d6a86416..cea80e36b7287d 100644 --- a/src/node_native_module.cc +++ b/src/node_native_module.cc @@ -1,6 +1,7 @@ #include "node_native_module.h" -#include "util-inl.h" #include "debug_utils-inl.h" +#include "node_internals.h" +#include "util-inl.h" namespace node { namespace native_module { @@ -277,6 +278,11 @@ MaybeLocal NativeModuleLoader::LookupAndCompile( : ScriptCompiler::kEagerCompile; ScriptCompiler::Source script_source(source, origin, cached_data); + per_process::Debug(DebugCategory::CODE_CACHE, + "Compiling %s %s code cache\n", + id, + has_cache ? "with" : "without"); + MaybeLocal maybe_fun = ScriptCompiler::CompileFunctionInContext(context, &script_source, @@ -304,6 +310,19 @@ MaybeLocal NativeModuleLoader::LookupAndCompile( *result = (has_cache && !script_source.GetCachedData()->rejected) ? Result::kWithCache : Result::kWithoutCache; + + if (has_cache) { + per_process::Debug(DebugCategory::CODE_CACHE, + "Code cache of %s (%s) %s\n", + id, + script_source.GetCachedData()->buffer_policy == + ScriptCompiler::CachedData::BufferNotOwned + ? "BufferNotOwned" + : "BufferOwned", + script_source.GetCachedData()->rejected ? "is rejected" + : "is accepted"); + } + // Generate new cache for next compilation std::unique_ptr new_cached_data( ScriptCompiler::CreateCodeCacheForFunction(fun)); @@ -311,10 +330,14 @@ MaybeLocal NativeModuleLoader::LookupAndCompile( { Mutex::ScopedLock lock(code_cache_mutex_); - // The old entry should've been erased by now so we can just emplace. - // If another thread did the same thing in the meantime, that should not - // be an issue. - code_cache_.emplace(id, std::move(new_cached_data)); + const auto it = code_cache_.find(id); + // TODO(joyeecheung): it's safer for each thread to have its own + // copy of the code cache map. + if (it == code_cache_.end()) { + code_cache_.emplace(id, std::move(new_cached_data)); + } else { + it->second.reset(new_cached_data.release()); + } } return scope.Escape(fun); diff --git a/src/node_native_module.h b/src/node_native_module.h index 3be3f2364dd252..1bbb400586e070 100644 --- a/src/node_native_module.h +++ b/src/node_native_module.h @@ -15,6 +15,7 @@ class PerProcessTest; namespace node { +class SnapshotBuilder; namespace native_module { using NativeModuleRecordMap = std::map; @@ -22,6 +23,11 @@ using NativeModuleCacheMap = std::unordered_map>; +struct CodeCacheInfo { + std::string id; + std::vector data; +}; + // The native (C++) side of the NativeModule in JS land, which // handles compilation and caching of builtin modules (NativeModule) // and bootstrappers, whose source are bundled into the binary @@ -29,7 +35,7 @@ using NativeModuleCacheMap = // This class should not depend on any Environment, or depend on access to // the its own singleton - that should be encapsulated in NativeModuleEnv // instead. -class NativeModuleLoader { +class NODE_EXTERN_PRIVATE NativeModuleLoader { public: NativeModuleLoader(const NativeModuleLoader&) = delete; NativeModuleLoader& operator=(const NativeModuleLoader&) = delete; @@ -66,6 +72,8 @@ class NativeModuleLoader { bool CannotBeRequired(const char* id); NativeModuleCacheMap* code_cache(); + const Mutex& code_cache_mutex() const { return code_cache_mutex_; } + v8::ScriptCompiler::CachedData* GetCodeCache(const char* id) const; enum class Result { kWithCache, kWithoutCache }; v8::MaybeLocal LoadBuiltinModuleSource(v8::Isolate* isolate, diff --git a/src/node_native_module_env.cc b/src/node_native_module_env.cc index b388b8cd07e583..05513b89f8f188 100644 --- a/src/node_native_module_env.cc +++ b/src/node_native_module_env.cc @@ -1,6 +1,9 @@ -#include "node_native_module_env.h" +#include + +#include "debug_utils-inl.h" #include "env-inl.h" #include "node_external_reference.h" +#include "node_native_module_env.h" namespace node { namespace native_module { @@ -22,6 +25,8 @@ using v8::SideEffectType; using v8::String; using v8::Value; +bool NativeModuleEnv::has_code_cache_ = false; + bool NativeModuleEnv::Add(const char* id, const UnionBytes& source) { return NativeModuleLoader::GetInstance()->Add(id, source); } @@ -38,6 +43,61 @@ Local NativeModuleEnv::GetConfigString(Isolate* isolate) { return NativeModuleLoader::GetInstance()->GetConfigString(isolate); } +bool NativeModuleEnv::CompileAllModules(Local context) { + NativeModuleLoader* loader = NativeModuleLoader::GetInstance(); + std::vector ids = loader->GetModuleIds(); + bool all_succeeded = true; + for (const auto& id : ids) { + // TODO(joyeecheung): compile non-module scripts here too. + if (!loader->CanBeRequired(id.c_str())) { + continue; + } + v8::TryCatch bootstrapCatch(context->GetIsolate()); + native_module::NativeModuleLoader::Result result; + USE(loader->CompileAsModule(context, id.c_str(), &result)); + if (bootstrapCatch.HasCaught()) { + per_process::Debug(DebugCategory::CODE_CACHE, + "Failed to compile code cache for %s\n", + id.c_str()); + all_succeeded = false; + PrintCaughtException(context->GetIsolate(), context, bootstrapCatch); + } + } + return all_succeeded; +} + +void NativeModuleEnv::CopyCodeCache(std::vector* out) { + NativeModuleLoader* loader = NativeModuleLoader::GetInstance(); + Mutex::ScopedLock lock(loader->code_cache_mutex()); + auto in = loader->code_cache(); + for (auto const& item : *in) { + out->push_back( + {item.first, + {item.second->data, item.second->data + item.second->length}}); + } +} + +void NativeModuleEnv::RefreshCodeCache(const std::vector& in) { + NativeModuleLoader* loader = NativeModuleLoader::GetInstance(); + Mutex::ScopedLock lock(loader->code_cache_mutex()); + auto out = loader->code_cache(); + for (auto const& item : in) { + size_t length = item.data.size(); + uint8_t* buffer = new uint8_t[length]; + memcpy(buffer, item.data.data(), length); + auto new_cache = std::make_unique( + buffer, length, v8::ScriptCompiler::CachedData::BufferOwned); + auto cache_it = out->find(item.id); + if (cache_it != out->end()) { + // Release the old cache and replace it with the new copy. + cache_it->second.reset(new_cache.release()); + } else { + out->emplace(item.id, new_cache.release()); + } + } + NativeModuleEnv::has_code_cache_ = true; +} + void NativeModuleEnv::GetModuleCategories( Local property, const PropertyCallbackInfo& info) { Environment* env = Environment::GetCurrent(info); @@ -185,9 +245,10 @@ MaybeLocal NativeModuleEnv::LookupAndCompile( return maybe; } -void HasCachedBuiltins(const FunctionCallbackInfo& args) { +void NativeModuleEnv::HasCachedBuiltins( + const FunctionCallbackInfo& args) { args.GetReturnValue().Set( - v8::Boolean::New(args.GetIsolate(), has_code_cache)); + v8::Boolean::New(args.GetIsolate(), NativeModuleEnv::has_code_cache_)); } // TODO(joyeecheung): It is somewhat confusing that Class::Initialize diff --git a/src/node_native_module_env.h b/src/node_native_module_env.h index 0a53771ff5d1ca..adcfc7b6fb4954 100644 --- a/src/node_native_module_env.h +++ b/src/node_native_module_env.h @@ -3,16 +3,17 @@ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS +#include #include "node_native_module.h" namespace node { class Environment; class ExternalReferenceRegistry; - namespace native_module { -extern const bool has_code_cache; - +// TODO(joyeecheung): since it's safer to make the code cache part of the +// embedded snapshot, there is no need to separate NativeModuleEnv and +// NativeModuleLoader. Merge the two. class NativeModuleEnv { public: static void RegisterExternalReferences(ExternalReferenceRegistry* registry); @@ -33,11 +34,9 @@ class NativeModuleEnv { static bool Exists(const char* id); static bool Add(const char* id, const UnionBytes& source); - // Loads data into NativeModuleLoader::.instance.code_cache_ - // Generated by mkcodecache as node_code_cache.cc when - // the build is configured with --code-cache-path=.... They are noops - // in node_code_cache_stub.cc - static void InitializeCodeCache(); + static bool CompileAllModules(v8::Local context); + static void RefreshCodeCache(const std::vector& in); + static void CopyCodeCache(std::vector* out); private: static void RecordResult(const char* id, @@ -57,6 +56,10 @@ class NativeModuleEnv { const v8::PropertyCallbackInfo& info); // Compile a specific native module as a function static void CompileFunction(const v8::FunctionCallbackInfo& args); + static void HasCachedBuiltins( + const v8::FunctionCallbackInfo& args); + + static bool has_code_cache_; }; } // namespace native_module diff --git a/src/node_options.cc b/src/node_options.cc index 313fb219294812..25e4caf98ad210 100644 --- a/src/node_options.cc +++ b/src/node_options.cc @@ -143,6 +143,24 @@ void EnvironmentOptions::CheckOptions(std::vector* errors) { errors->push_back("--heap-snapshot-near-heap-limit must not be negative"); } + if (test_runner) { + if (syntax_check_only) { + errors->push_back("either --test or --check can be used, not both"); + } + + if (has_eval_string) { + errors->push_back("either --test or --eval can be used, not both"); + } + + if (force_repl) { + errors->push_back("either --test or --interactive can be used, not both"); + } + + if (debug_options_.inspector_enabled) { + errors->push_back("the inspector cannot be used with --test"); + } + } + #if HAVE_INSPECTOR if (!cpu_prof) { if (!cpu_prof_name.empty()) { @@ -328,7 +346,7 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { AddOption("--experimental-json-modules", "", NoOp{}, kAllowedInEnvironment); AddOption("--experimental-loader", "use the specified module as a custom loader", - &EnvironmentOptions::userland_loader, + &EnvironmentOptions::userland_loaders, kAllowedInEnvironment); AddAlias("--loader", "--experimental-loader"); AddOption("--experimental-modules", "", NoOp{}, kAllowedInEnvironment); @@ -414,6 +432,12 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { &EnvironmentOptions::force_async_hooks_checks, kAllowedInEnvironment, true); + AddOption( + "--force-node-api-uncaught-exceptions-policy", + "enforces 'uncaughtException' event on Node API asynchronous callbacks", + &EnvironmentOptions::force_node_api_uncaught_exceptions_policy, + kAllowedInEnvironment, + false); AddOption("--addons", "disable loading native addons", &EnvironmentOptions::allow_native_addons, @@ -498,6 +522,9 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() { "write warnings to file instead of stderr", &EnvironmentOptions::redirect_warnings, kAllowedInEnvironment); + AddOption("--test", + "launch test runner on startup", + &EnvironmentOptions::test_runner); AddOption("--test-only", "run tests with 'only' option set", &EnvironmentOptions::test_only, @@ -629,10 +656,6 @@ PerIsolateOptionsParser::PerIsolateOptionsParser( "track heap object allocations for heap snapshots", &PerIsolateOptions::track_heap_objects, kAllowedInEnvironment); - AddOption("--node-snapshot", - "", // It's a debug-only option. - &PerIsolateOptions::node_snapshot, - kAllowedInEnvironment); // Explicitly add some V8 flags to mark them as allowed in NODE_OPTIONS. AddOption("--abort-on-uncaught-exception", @@ -683,14 +706,17 @@ PerIsolateOptionsParser::PerIsolateOptionsParser( kAllowedInEnvironment); Implies("--report-signal", "--report-on-signal"); - AddOption("--experimental-top-level-await", + AddOption( + "--experimental-top-level-await", "", NoOp{}, kAllowedInEnvironment); + + AddOption("--experimental-shadow-realm", "", - &PerIsolateOptions::experimental_top_level_await, + &PerIsolateOptions::experimental_shadow_realm, kAllowedInEnvironment); - AddOption("--harmony-top-level-await", "", V8Option{}); - Implies("--experimental-top-level-await", "--harmony-top-level-await"); - Implies("--harmony-top-level-await", "--experimental-top-level-await"); - ImpliesNot("--no-harmony-top-level-await", "--experimental-top-level-await"); + AddOption("--harmony-shadow-realm", "", V8Option{}); + Implies("--experimental-shadow-realm", "--harmony-shadow-realm"); + Implies("--harmony-shadow-realm", "--experimental-shadow-realm"); + ImpliesNot("--no-harmony-shadow-realm", "--experimental-shadow-realm"); Insert(eop, &PerIsolateOptions::get_per_env_options); } @@ -734,7 +760,10 @@ PerProcessOptionsParser::PerProcessOptionsParser( "Currently only supported in the node_mksnapshot binary.", &PerProcessOptions::build_snapshot, kDisallowedInEnvironment); - + AddOption("--node-snapshot", + "", // It's a debug-only option. + &PerProcessOptions::node_snapshot, + kAllowedInEnvironment); // 12.x renamed this inadvertently, so alias it for consistency within the // release line, while using the original name for consistency with older // release lines. @@ -840,6 +869,10 @@ PerProcessOptionsParser::PerProcessOptionsParser( "enable OpenSSL 3.0 legacy provider", &PerProcessOptions::openssl_legacy_provider, kAllowedInEnvironment); + AddOption("--openssl-shared-config", + "enable OpenSSL shared configuration", + &PerProcessOptions::openssl_shared_config, + kAllowedInEnvironment); #endif // OPENSSL_VERSION_MAJOR AddOption("--use-largepages", diff --git a/src/node_options.h b/src/node_options.h index 97e01a9435b786..a4744fb9e5b8a5 100644 --- a/src/node_options.h +++ b/src/node_options.h @@ -120,6 +120,7 @@ class EnvironmentOptions : public Options { bool experimental_repl_await = true; bool experimental_vm_modules = false; bool expose_internals = false; + bool force_node_api_uncaught_exceptions_policy = false; bool frozen_intrinsics = false; int64_t heap_snapshot_near_heap_limit = 0; std::string heap_snapshot_signal; @@ -148,6 +149,7 @@ class EnvironmentOptions : public Options { #endif // HAVE_INSPECTOR std::string redirect_warnings; std::string diagnostic_dir; + bool test_runner = false; bool test_only = false; bool test_udp_no_try_send = false; bool throw_deprecation = false; @@ -160,7 +162,7 @@ class EnvironmentOptions : public Options { bool trace_warnings = false; bool extra_info_on_fatal_exception = true; std::string unhandled_rejections; - std::string userland_loader; + std::vector userland_loaders; bool verify_base_objects = #ifdef DEBUG true; @@ -202,10 +204,9 @@ class PerIsolateOptions : public Options { public: std::shared_ptr per_env { new EnvironmentOptions() }; bool track_heap_objects = false; - bool node_snapshot = true; bool report_uncaught_exception = false; bool report_on_signal = false; - bool experimental_top_level_await = true; + bool experimental_shadow_realm = false; std::string report_signal = "SIGUSR2"; inline EnvironmentOptions* get_per_env_options(); void CheckOptions(std::vector* errors) override; @@ -230,7 +231,11 @@ class PerProcessOptions : public Options { bool zero_fill_all_buffers = false; bool debug_arraybuffer_allocations = false; std::string disable_proto; - bool build_snapshot; + bool build_snapshot = false; + // We enable the shared read-only heap which currently requires that the + // snapshot used in different isolates in the same process to be the same. + // Therefore --node-snapshot is a per-process option. + bool node_snapshot = true; std::vector security_reverts; bool print_bash_completion = false; @@ -261,6 +266,7 @@ class PerProcessOptions : public Options { #endif #if OPENSSL_VERSION_MAJOR >= 3 bool openssl_legacy_provider = false; + bool openssl_shared_config = false; #endif // Per-process because reports can be triggered outside a known V8 context. @@ -488,7 +494,7 @@ void Parse( namespace per_process { extern Mutex cli_options_mutex; -extern std::shared_ptr cli_options; +extern NODE_EXTERN_PRIVATE std::shared_ptr cli_options; } // namespace per_process diff --git a/src/node_perf.cc b/src/node_perf.cc index 8bda1791fce7db..253f72157e8a7b 100644 --- a/src/node_perf.cc +++ b/src/node_perf.cc @@ -159,17 +159,18 @@ void MarkGarbageCollectionEnd( if (LIKELY(!state->observers[NODE_PERFORMANCE_ENTRY_TYPE_GC])) return; - double start_time = state->performance_last_gc_start_mark / 1e6; - double duration = (PERFORMANCE_NOW() / 1e6) - start_time; + double start_time = + (state->performance_last_gc_start_mark - timeOrigin) / 1e6; + double duration = + (PERFORMANCE_NOW() / 1e6) - (state->performance_last_gc_start_mark / 1e6); std::unique_ptr entry = std::make_unique( "gc", start_time, duration, - GCPerformanceEntry::Details( - static_cast(type), - static_cast(flags))); + GCPerformanceEntry::Details(static_cast(type), + static_cast(flags))); env->SetImmediate([entry = std::move(entry)](Environment* env) { entry->Notify(env); diff --git a/src/node_process_events.cc b/src/node_process_events.cc index 34f0251cabc02b..944b0605b148b7 100644 --- a/src/node_process_events.cc +++ b/src/node_process_events.cc @@ -21,7 +21,6 @@ using v8::Value; MaybeLocal ProcessEmit(Environment* env, const char* event, Local message) { - // Send message to enable debug in cluster workers Isolate* isolate = env->isolate(); Local event_string; diff --git a/src/node_report.cc b/src/node_report.cc index 4bf6993ac5be92..edc8ab802b06f7 100644 --- a/src/node_report.cc +++ b/src/node_report.cc @@ -608,12 +608,27 @@ static void PrintGCStatistics(JSONWriter* writer, Isolate* isolate) { writer->json_objectstart("javascriptHeap"); writer->json_keyvalue("totalMemory", v8_heap_stats.total_heap_size()); + writer->json_keyvalue("executableMemory", + v8_heap_stats.total_heap_size_executable()); writer->json_keyvalue("totalCommittedMemory", v8_heap_stats.total_physical_size()); - writer->json_keyvalue("usedMemory", v8_heap_stats.used_heap_size()); writer->json_keyvalue("availableMemory", v8_heap_stats.total_available_size()); + writer->json_keyvalue("totalGlobalHandlesMemory", + v8_heap_stats.total_global_handles_size()); + writer->json_keyvalue("usedGlobalHandlesMemory", + v8_heap_stats.used_global_handles_size()); + writer->json_keyvalue("usedMemory", v8_heap_stats.used_heap_size()); writer->json_keyvalue("memoryLimit", v8_heap_stats.heap_size_limit()); + writer->json_keyvalue("mallocedMemory", v8_heap_stats.malloced_memory()); + writer->json_keyvalue("externalMemory", v8_heap_stats.external_memory()); + writer->json_keyvalue("peakMallocedMemory", + v8_heap_stats.peak_malloced_memory()); + writer->json_keyvalue("nativeContextCount", + v8_heap_stats.number_of_native_contexts()); + writer->json_keyvalue("detachedContextCount", + v8_heap_stats.number_of_detached_contexts()); + writer->json_keyvalue("doesZapGarbage", v8_heap_stats.does_zap_garbage()); writer->json_objectstart("heapSpaces"); // Loop through heap spaces diff --git a/src/node_report_utils.cc b/src/node_report_utils.cc index 82ed385ad176bd..6d8b211b6d1c51 100644 --- a/src/node_report_utils.cc +++ b/src/node_report_utils.cc @@ -95,6 +95,8 @@ static void ReportPipeEndpoints(uv_handle_t* h, JSONWriter* writer) { buffer = MallocedBuffer(buffer_size); if (buffer.data != nullptr) { rc = uv_pipe_getsockname(&handle->pipe, buffer.data, &buffer_size); + } else { + buffer_size = 0; } } if (rc == 0 && buffer_size != 0 && buffer.data != nullptr) { diff --git a/src/node_shadow_realm.cc b/src/node_shadow_realm.cc new file mode 100644 index 00000000000000..2ccd62edc315d7 --- /dev/null +++ b/src/node_shadow_realm.cc @@ -0,0 +1,16 @@ +#include "node_shadow_realm.h" + +namespace node { +namespace shadow_realm { +using v8::Context; +using v8::Local; +using v8::MaybeLocal; + +// static +MaybeLocal HostCreateShadowRealmContextCallback( + Local initiator_context) { + return Context::New(initiator_context->GetIsolate()); +} + +} // namespace shadow_realm +} // namespace node diff --git a/src/node_shadow_realm.h b/src/node_shadow_realm.h new file mode 100644 index 00000000000000..a10fc425661f56 --- /dev/null +++ b/src/node_shadow_realm.h @@ -0,0 +1,19 @@ +#ifndef SRC_NODE_SHADOW_REALM_H_ +#define SRC_NODE_SHADOW_REALM_H_ + +#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#include "v8.h" + +namespace node { +namespace shadow_realm { + +v8::MaybeLocal HostCreateShadowRealmContextCallback( + v8::Local initiator_context); + +} // namespace shadow_realm +} // namespace node + +#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#endif // SRC_NODE_SHADOW_REALM_H_ diff --git a/src/node_snapshot_builder.h b/src/node_snapshot_builder.h new file mode 100644 index 00000000000000..c5d2ee2a4bcd83 --- /dev/null +++ b/src/node_snapshot_builder.h @@ -0,0 +1,43 @@ + +#ifndef SRC_NODE_SNAPSHOT_BUILDER_H_ +#define SRC_NODE_SNAPSHOT_BUILDER_H_ + +#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#include +#include "node_mutex.h" +#include "v8.h" + +namespace node { + +class ExternalReferenceRegistry; +struct SnapshotData; + +class NODE_EXTERN_PRIVATE SnapshotBuilder { + public: + static std::string Generate(const std::vector args, + const std::vector exec_args); + + // Generate the snapshot into out. + static void Generate(SnapshotData* out, + const std::vector args, + const std::vector exec_args); + + // If nullptr is returned, the binary is not built with embedded + // snapshot. + static const SnapshotData* GetEmbeddedSnapshotData(); + static void InitializeIsolateParams(const SnapshotData* data, + v8::Isolate::CreateParams* params); + + private: + // Used to synchronize access to the snapshot data + static Mutex snapshot_data_mutex_; + static const std::vector& CollectExternalReferences(); + + static std::unique_ptr registry_; +}; +} // namespace node + +#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#endif // SRC_NODE_SNAPSHOT_BUILDER_H_ diff --git a/src/node_snapshot_stub.cc b/src/node_snapshot_stub.cc index f167c46a68de22..664f878c0671db 100644 --- a/src/node_snapshot_stub.cc +++ b/src/node_snapshot_stub.cc @@ -2,11 +2,11 @@ // NODE_WANT_INTERNALS, so we define it here manually. #define NODE_WANT_INTERNALS 1 -#include "node_main_instance.h" +#include "node_snapshot_builder.h" namespace node { -const SnapshotData* NodeMainInstance::GetEmbeddedSnapshotData() { +const SnapshotData* SnapshotBuilder::GetEmbeddedSnapshotData() { return nullptr; } diff --git a/src/node_snapshotable.cc b/src/node_snapshotable.cc index 9330da6568ce20..b71c46acabed72 100644 --- a/src/node_snapshotable.cc +++ b/src/node_snapshotable.cc @@ -11,7 +11,9 @@ #include "node_file.h" #include "node_internals.h" #include "node_main_instance.h" +#include "node_native_module_env.h" #include "node_process.h" +#include "node_snapshot_builder.h" #include "node_v8.h" #include "node_v8_platform-inl.h" @@ -44,30 +46,79 @@ void WriteVector(std::ostringstream* ss, const T* vec, size_t size) { } } +static std::string GetCodeCacheDefName(const std::string& id) { + char buf[64] = {0}; + size_t size = id.size(); + CHECK_LT(size, sizeof(buf)); + for (size_t i = 0; i < size; ++i) { + char ch = id[i]; + buf[i] = (ch == '-' || ch == '/') ? '_' : ch; + } + return std::string(buf) + std::string("_cache_data"); +} + +static std::string FormatSize(size_t size) { + char buf[64] = {0}; + if (size < 1024) { + snprintf(buf, sizeof(buf), "%.2fB", static_cast(size)); + } else if (size < 1024 * 1024) { + snprintf(buf, sizeof(buf), "%.2fKB", static_cast(size / 1024)); + } else { + snprintf( + buf, sizeof(buf), "%.2fMB", static_cast(size / 1024 / 1024)); + } + return buf; +} + +static void WriteStaticCodeCacheData(std::ostringstream* ss, + const native_module::CodeCacheInfo& info) { + *ss << "static const uint8_t " << GetCodeCacheDefName(info.id) << "[] = {\n"; + WriteVector(ss, info.data.data(), info.data.size()); + *ss << "};"; +} + +static void WriteCodeCacheInitializer(std::ostringstream* ss, + const std::string& id) { + std::string def_name = GetCodeCacheDefName(id); + *ss << " { \"" << id << "\",\n"; + *ss << " {" << def_name << ",\n"; + *ss << " " << def_name << " + arraysize(" << def_name << "),\n"; + *ss << " }\n"; + *ss << " },\n"; +} + std::string FormatBlob(SnapshotData* data) { std::ostringstream ss; ss << R"(#include #include "env.h" -#include "node_main_instance.h" +#include "node_snapshot_builder.h" #include "v8.h" // This file is generated by tools/snapshot. Do not edit. namespace node { -static const char blob_data[] = { +static const char v8_snapshot_blob_data[] = { )"; - WriteVector(&ss, data->blob.data, data->blob.raw_size); + WriteVector(&ss, + data->v8_snapshot_blob_data.data, + data->v8_snapshot_blob_data.raw_size); ss << R"(}; -static const int blob_size = )" - << data->blob.raw_size << R"(; +static const int v8_snapshot_blob_size = )" + << data->v8_snapshot_blob_data.raw_size << ";"; + + // Windows can't deal with too many large vector initializers. + // Store the data into static arrays first. + for (const auto& item : data->code_cache) { + WriteStaticCodeCacheData(&ss, item); + } -SnapshotData snapshot_data { - // -- blob begins -- - { blob_data, blob_size }, - // -- blob ends -- + ss << R"(SnapshotData snapshot_data { + // -- v8_snapshot_blob_data begins -- + { v8_snapshot_blob_data, v8_snapshot_blob_size }, + // -- v8_snapshot_blob_data ends -- // -- isolate_data_indices begins -- { )"; @@ -78,11 +129,21 @@ SnapshotData snapshot_data { // -- isolate_data_indices ends -- // -- env_info begins -- )" << data->env_info - << R"( + << R"( // -- env_info ends -- + , + // -- code_cache begins -- + {)"; + for (const auto& item : data->code_cache) { + WriteCodeCacheInitializer(&ss, item.id); + } + ss << R"( + } + // -- code_cache ends -- }; -const SnapshotData* NodeMainInstance::GetEmbeddedSnapshotData() { +const SnapshotData* SnapshotBuilder::GetEmbeddedSnapshotData() { + Mutex::ScopedLock lock(snapshot_data_mutex_); return &snapshot_data; } } // namespace node @@ -91,6 +152,20 @@ const SnapshotData* NodeMainInstance::GetEmbeddedSnapshotData() { return ss.str(); } +Mutex SnapshotBuilder::snapshot_data_mutex_; + +const std::vector& SnapshotBuilder::CollectExternalReferences() { + static auto registry = std::make_unique(); + return registry->external_references(); +} + +void SnapshotBuilder::InitializeIsolateParams(const SnapshotData* data, + Isolate::CreateParams* params) { + params->external_references = CollectExternalReferences().data(); + params->snapshot_blob = + const_cast(&(data->v8_snapshot_blob_data)); +} + void SnapshotBuilder::Generate(SnapshotData* out, const std::vector args, const std::vector exec_args) { @@ -104,7 +179,7 @@ void SnapshotBuilder::Generate(SnapshotData* out, { const std::vector& external_references = - NodeMainInstance::CollectExternalReferences(); + CollectExternalReferences(); SnapshotCreator creator(isolate, external_references.data()); Environment* env; { @@ -114,93 +189,123 @@ void SnapshotBuilder::Generate(SnapshotData* out, per_process::v8_platform.Platform(), args, exec_args); + out->isolate_data_indices = + main_instance->isolate_data()->Serialize(&creator); HandleScope scope(isolate); + + // The default context with only things created by V8. creator.SetDefaultContext(Context::New(isolate)); - out->isolate_data_indices = - main_instance->isolate_data()->Serialize(&creator); - // Run the per-context scripts - Local context; - { + auto CreateBaseContext = [&]() { TryCatch bootstrapCatch(isolate); - context = NewContext(isolate); + // Run the per-context scripts. + Local base_context = NewContext(isolate); if (bootstrapCatch.HasCaught()) { - PrintCaughtException(isolate, context, bootstrapCatch); + PrintCaughtException(isolate, base_context, bootstrapCatch); abort(); } + return base_context; + }; + + // The Node.js-specific context with primodials, can be used by workers + // TODO(joyeecheung): investigate if this can be used by vm contexts + // without breaking compatibility. + { + size_t index = creator.AddContext(CreateBaseContext()); + CHECK_EQ(index, SnapshotData::kNodeBaseContextIndex); } - Context::Scope context_scope(context); - - // Create the environment - env = new Environment(main_instance->isolate_data(), - context, - args, - exec_args, - nullptr, - node::EnvironmentFlags::kDefaultFlags, - {}); - - // Run scripts in lib/internal/bootstrap/ + + // The main instance context. { + Local main_context = CreateBaseContext(); + Context::Scope context_scope(main_context); TryCatch bootstrapCatch(isolate); + + // Create the environment. + env = new Environment(main_instance->isolate_data(), + main_context, + args, + exec_args, + nullptr, + node::EnvironmentFlags::kDefaultFlags, + {}); + + // Run scripts in lib/internal/bootstrap/ MaybeLocal result = env->RunBootstrapping(); if (bootstrapCatch.HasCaught()) { - PrintCaughtException(isolate, context, bootstrapCatch); + // TODO(joyeecheung): fail by exiting with a non-zero exit code. + PrintCaughtException(isolate, main_context, bootstrapCatch); + abort(); } result.ToLocalChecked(); - } - - // If --build-snapshot is true, lib/internal/main/mksnapshot.js would be - // loaded via LoadEnvironment() to execute process.argv[1] as the entry - // point (we currently only support this kind of entry point, but we - // could also explore snapshotting other kinds of execution modes - // in the future). - if (per_process::cli_options->build_snapshot) { + // If --build-snapshot is true, lib/internal/main/mksnapshot.js would be + // loaded via LoadEnvironment() to execute process.argv[1] as the entry + // point (we currently only support this kind of entry point, but we + // could also explore snapshotting other kinds of execution modes + // in the future). + if (per_process::cli_options->build_snapshot) { #if HAVE_INSPECTOR - env->InitializeInspector({}); + env->InitializeInspector({}); #endif - TryCatch bootstrapCatch(isolate); - // TODO(joyeecheung): we could use the result for something special, - // like setting up initializers that should be invoked at snapshot - // dehydration. - MaybeLocal result = - LoadEnvironment(env, StartExecutionCallback{}); - if (bootstrapCatch.HasCaught()) { - PrintCaughtException(isolate, context, bootstrapCatch); + // TODO(joyeecheung): we could use the result for something special, + // like setting up initializers that should be invoked at snapshot + // dehydration. + MaybeLocal result = + LoadEnvironment(env, StartExecutionCallback{}); + if (bootstrapCatch.HasCaught()) { + // TODO(joyeecheung): fail by exiting with a non-zero exit code. + PrintCaughtException(isolate, main_context, bootstrapCatch); + abort(); + } + result.ToLocalChecked(); + // FIXME(joyeecheung): right now running the loop in the snapshot + // builder seems to introduces inconsistencies in JS land that need to + // be synchronized again after snapshot restoration. + int exit_code = SpinEventLoop(env).FromMaybe(1); + CHECK_EQ(exit_code, 0); + if (bootstrapCatch.HasCaught()) { + // TODO(joyeecheung): fail by exiting with a non-zero exit code. + PrintCaughtException(isolate, main_context, bootstrapCatch); + abort(); + } } - result.ToLocalChecked(); - // FIXME(joyeecheung): right now running the loop in the snapshot - // builder seems to introduces inconsistencies in JS land that need to - // be synchronized again after snapshot restoration. - int exit_code = SpinEventLoop(env).FromMaybe(1); - CHECK_EQ(exit_code, 0); - if (bootstrapCatch.HasCaught()) { - PrintCaughtException(isolate, context, bootstrapCatch); - abort(); + + if (per_process::enabled_debug_list.enabled( + DebugCategory::MKSNAPSHOT)) { + env->PrintAllBaseObjects(); + printf("Environment = %p\n", env); } - } - if (per_process::enabled_debug_list.enabled(DebugCategory::MKSNAPSHOT)) { - env->PrintAllBaseObjects(); - printf("Environment = %p\n", env); + // Serialize the native states + out->env_info = env->Serialize(&creator); + // Serialize the context + size_t index = creator.AddContext( + main_context, {SerializeNodeContextInternalFields, env}); + CHECK_EQ(index, SnapshotData::kNodeMainContextIndex); + +#ifdef NODE_USE_NODE_CODE_CACHE + // Regenerate all the code cache. + CHECK(native_module::NativeModuleEnv::CompileAllModules(main_context)); + native_module::NativeModuleEnv::CopyCodeCache(&(out->code_cache)); + for (const auto& item : out->code_cache) { + std::string size_str = FormatSize(item.data.size()); + per_process::Debug(DebugCategory::MKSNAPSHOT, + "Generated code cache for %d: %s\n", + item.id.c_str(), + size_str.c_str()); + } +#endif } - - // Serialize the native states - out->env_info = env->Serialize(&creator); - // Serialize the context - size_t index = creator.AddContext( - context, {SerializeNodeContextInternalFields, env}); - CHECK_EQ(index, NodeMainInstance::kNodeContextIndex); } // Must be out of HandleScope - out->blob = + out->v8_snapshot_blob_data = creator.CreateBlob(SnapshotCreator::FunctionCodeHandling::kClear); // We must be able to rehash the blob when we restore it or otherwise // the hash seed would be fixed by V8, introducing a vulnerability. - CHECK(out->blob.CanBeRehashed()); + CHECK(out->v8_snapshot_blob_data.CanBeRehashed()); // We cannot resurrect the handles from the snapshot, so make sure that // no handles are left open in the environment after the blob is created @@ -228,7 +333,7 @@ std::string SnapshotBuilder::Generate( SnapshotData data; Generate(&data, args, exec_args); std::string result = FormatBlob(&data); - delete[] data.blob.data; + delete[] data.v8_snapshot_blob_data.data; return result; } @@ -352,7 +457,7 @@ void SerializeBindingData(Environment* env, namespace mksnapshot { -static void CompileSnapshotMain(const FunctionCallbackInfo& args) { +void CompileSerializeMain(const FunctionCallbackInfo& args) { CHECK(args[0]->IsString()); Local filename = args[0].As(); Local source = args[1].As(); @@ -380,23 +485,46 @@ static void CompileSnapshotMain(const FunctionCallbackInfo& args) { } } -static void Initialize(Local target, - Local unused, - Local context, - void* priv) { +void SetSerializeCallback(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + CHECK(env->snapshot_serialize_callback().IsEmpty()); + CHECK(args[0]->IsFunction()); + env->set_snapshot_serialize_callback(args[0].As()); +} + +void SetDeserializeCallback(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + CHECK(env->snapshot_deserialize_callback().IsEmpty()); + CHECK(args[0]->IsFunction()); + env->set_snapshot_deserialize_callback(args[0].As()); +} + +void SetDeserializeMainFunction(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + CHECK(env->snapshot_deserialize_main().IsEmpty()); + CHECK(args[0]->IsFunction()); + env->set_snapshot_deserialize_main(args[0].As()); +} + +void Initialize(Local target, + Local unused, + Local context, + void* priv) { Environment* env = Environment::GetCurrent(context); - Isolate* isolate = context->GetIsolate(); - env->SetMethod(target, "compileSnapshotMain", CompileSnapshotMain); - target - ->Set(context, - FIXED_ONE_BYTE_STRING(isolate, "cleanups"), - v8::Array::New(isolate)) - .Check(); + env->SetMethod(target, "compileSerializeMain", CompileSerializeMain); + env->SetMethod(target, "markBootstrapComplete", MarkBootstrapComplete); + env->SetMethod(target, "setSerializeCallback", SetSerializeCallback); + env->SetMethod(target, "setDeserializeCallback", SetDeserializeCallback); + env->SetMethod( + target, "setDeserializeMainFunction", SetDeserializeMainFunction); } -static void RegisterExternalReferences(ExternalReferenceRegistry* registry) { - registry->Register(CompileSnapshotMain); +void RegisterExternalReferences(ExternalReferenceRegistry* registry) { + registry->Register(CompileSerializeMain); registry->Register(MarkBootstrapComplete); + registry->Register(SetSerializeCallback); + registry->Register(SetDeserializeCallback); + registry->Register(SetDeserializeMainFunction); } } // namespace mksnapshot } // namespace node diff --git a/src/node_snapshotable.h b/src/node_snapshotable.h index 30b684eb68a2d6..f0a8bce215e027 100644 --- a/src/node_snapshotable.h +++ b/src/node_snapshotable.h @@ -12,6 +12,7 @@ namespace node { class Environment; struct EnvSerializeInfo; struct SnapshotData; +class ExternalReferenceRegistry; #define SERIALIZABLE_OBJECT_TYPES(V) \ V(fs_binding_data, fs::BindingData) \ @@ -122,17 +123,6 @@ void SerializeBindingData(Environment* env, EnvSerializeInfo* info); bool IsSnapshotableType(FastStringKey key); - -class SnapshotBuilder { - public: - static std::string Generate(const std::vector args, - const std::vector exec_args); - - // Generate the snapshot into out. - static void Generate(SnapshotData* out, - const std::vector args, - const std::vector exec_args); -}; } // namespace node #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS diff --git a/src/node_url.cc b/src/node_url.cc index b13c94f030fa59..3cbe6ab5f354e2 100644 --- a/src/node_url.cc +++ b/src/node_url.cc @@ -411,8 +411,7 @@ void URLHost::ParseIPv4Host(const char* input, size_t length, bool* is_ipv4) { const char ch = pointer < end ? pointer[0] : kEOL; int64_t remaining = end - pointer - 1; if (ch == '.' || ch == kEOL) { - if (++parts > static_cast(arraysize(numbers))) - return; + if (++parts > static_cast(arraysize(numbers))) return; if (pointer == mark) return; int64_t n = ParseNumber(mark, pointer); diff --git a/src/node_util.cc b/src/node_util.cc index 2db45bd1fb40af..5b5dab36f08fbf 100644 --- a/src/node_util.cc +++ b/src/node_util.cc @@ -289,11 +289,6 @@ static void GuessHandleType(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(OneByteString(env->isolate(), type)); } -static void IsConstructor(const FunctionCallbackInfo& args) { - CHECK(args[0]->IsFunction()); - args.GetReturnValue().Set(args[0].As()->IsConstructor()); -} - static void ToUSVString(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); CHECK_GE(args.Length(), 2); @@ -344,7 +339,6 @@ void RegisterExternalReferences(ExternalReferenceRegistry* registry) { registry->Register(WeakReference::IncRef); registry->Register(WeakReference::DecRef); registry->Register(GuessHandleType); - registry->Register(IsConstructor); registry->Register(ToUSVString); } @@ -384,7 +378,6 @@ void Initialize(Local target, env->SetMethodNoSideEffect(target, "getConstructorName", GetConstructorName); env->SetMethodNoSideEffect(target, "getExternalValue", GetExternalValue); env->SetMethod(target, "sleep", Sleep); - env->SetMethodNoSideEffect(target, "isConstructor", IsConstructor); env->SetMethod(target, "arrayBufferViewHasBuffer", ArrayBufferViewHasBuffer); Local constants = Object::New(env->isolate()); diff --git a/src/node_v8.cc b/src/node_v8.cc index de3d3daad501f6..cf7a494b7c7230 100644 --- a/src/node_v8.cc +++ b/src/node_v8.cc @@ -47,19 +47,21 @@ using v8::Uint32; using v8::V8; using v8::Value; - -#define HEAP_STATISTICS_PROPERTIES(V) \ - V(0, total_heap_size, kTotalHeapSizeIndex) \ - V(1, total_heap_size_executable, kTotalHeapSizeExecutableIndex) \ - V(2, total_physical_size, kTotalPhysicalSizeIndex) \ - V(3, total_available_size, kTotalAvailableSize) \ - V(4, used_heap_size, kUsedHeapSizeIndex) \ - V(5, heap_size_limit, kHeapSizeLimitIndex) \ - V(6, malloced_memory, kMallocedMemoryIndex) \ - V(7, peak_malloced_memory, kPeakMallocedMemoryIndex) \ - V(8, does_zap_garbage, kDoesZapGarbageIndex) \ - V(9, number_of_native_contexts, kNumberOfNativeContextsIndex) \ - V(10, number_of_detached_contexts, kNumberOfDetachedContextsIndex) +#define HEAP_STATISTICS_PROPERTIES(V) \ + V(0, total_heap_size, kTotalHeapSizeIndex) \ + V(1, total_heap_size_executable, kTotalHeapSizeExecutableIndex) \ + V(2, total_physical_size, kTotalPhysicalSizeIndex) \ + V(3, total_available_size, kTotalAvailableSize) \ + V(4, used_heap_size, kUsedHeapSizeIndex) \ + V(5, heap_size_limit, kHeapSizeLimitIndex) \ + V(6, malloced_memory, kMallocedMemoryIndex) \ + V(7, peak_malloced_memory, kPeakMallocedMemoryIndex) \ + V(8, does_zap_garbage, kDoesZapGarbageIndex) \ + V(9, number_of_native_contexts, kNumberOfNativeContextsIndex) \ + V(10, number_of_detached_contexts, kNumberOfDetachedContextsIndex) \ + V(11, total_global_handles_size, kTotalGlobalHandlesSizeIndex) \ + V(12, used_global_handles_size, kUsedGlobalHandlesSizeIndex) \ + V(13, external_memory, kExternalMemoryIndex) #define V(a, b, c) +1 static constexpr size_t kHeapStatisticsPropertiesCount = @@ -80,7 +82,8 @@ static constexpr size_t kHeapSpaceStatisticsPropertiesCount = #define HEAP_CODE_STATISTICS_PROPERTIES(V) \ V(0, code_and_metadata_size, kCodeAndMetadataSizeIndex) \ V(1, bytecode_and_metadata_size, kBytecodeAndMetadataSizeIndex) \ - V(2, external_script_source_size, kExternalScriptSourceSizeIndex) + V(2, external_script_source_size, kExternalScriptSourceSizeIndex) \ + V(3, cpu_profiler_metadata_size, kCPUProfilerMetaDataSizeIndex) #define V(a, b, c) +1 static const size_t kHeapCodeStatisticsPropertiesCount = diff --git a/src/node_version.h b/src/node_version.h index 05128631b72368..fa83c7cce33740 100644 --- a/src/node_version.h +++ b/src/node_version.h @@ -22,7 +22,7 @@ #ifndef SRC_NODE_VERSION_H_ #define SRC_NODE_VERSION_H_ -#define NODE_MAJOR_VERSION 18 +#define NODE_MAJOR_VERSION 19 #define NODE_MINOR_VERSION 0 #define NODE_PATCH_VERSION 0 @@ -89,7 +89,7 @@ * version matching should open a pull request to reserve a number in this * registry. */ -#define NODE_MODULE_VERSION 105 +#define NODE_MODULE_VERSION 108 // The NAPI_VERSION provided by this version of the runtime. This is the version // which the Node binary being built supports. diff --git a/src/node_wasi.cc b/src/node_wasi.cc index ffcc37c5274c98..803edf0c91dda1 100644 --- a/src/node_wasi.cc +++ b/src/node_wasi.cc @@ -236,11 +236,9 @@ void WASI::New(const FunctionCallbackInfo& args) { delete[] options.argv; } - if (options.envp != nullptr) { - for (uint32_t i = 0; options.envp[i]; i++) - free(const_cast(options.envp[i])); - delete[] options.envp; - } + for (uint32_t i = 0; options.envp[i]; i++) + free(const_cast(options.envp[i])); + delete[] options.envp; if (options.preopens != nullptr) { for (uint32_t i = 0; i < options.preopenc; i++) { diff --git a/src/node_wasm_web_api.cc b/src/node_wasm_web_api.cc new file mode 100644 index 00000000000000..67437034bbee34 --- /dev/null +++ b/src/node_wasm_web_api.cc @@ -0,0 +1,212 @@ +#include "node_wasm_web_api.h" + +#include "memory_tracker-inl.h" +#include "node_errors.h" +#include "node_external_reference.h" + +namespace node { +namespace wasm_web_api { + +using v8::ArrayBuffer; +using v8::ArrayBufferView; +using v8::Context; +using v8::Function; +using v8::FunctionCallbackInfo; +using v8::FunctionTemplate; +using v8::Local; +using v8::MaybeLocal; +using v8::Object; +using v8::Value; +using v8::WasmStreaming; + +Local WasmStreamingObject::Initialize(Environment* env) { + Local templ = env->wasm_streaming_object_constructor(); + if (!templ.IsEmpty()) { + return templ; + } + + Local t = env->NewFunctionTemplate(New); + t->Inherit(BaseObject::GetConstructorTemplate(env)); + t->InstanceTemplate()->SetInternalFieldCount( + WasmStreamingObject::kInternalFieldCount); + + env->SetProtoMethod(t, "setURL", SetURL); + env->SetProtoMethod(t, "push", Push); + env->SetProtoMethod(t, "finish", Finish); + env->SetProtoMethod(t, "abort", Abort); + + auto function = t->GetFunction(env->context()).ToLocalChecked(); + env->set_wasm_streaming_object_constructor(function); + return function; +} + +void WasmStreamingObject::RegisterExternalReferences( + ExternalReferenceRegistry* registry) { + registry->Register(New); + registry->Register(Push); + registry->Register(Finish); + registry->Register(Abort); +} + +void WasmStreamingObject::MemoryInfo(MemoryTracker* tracker) const { + // v8::WasmStreaming is opaque. We assume that the size of the WebAssembly + // module that is being compiled is roughly what V8 allocates (as in, off by + // only a small factor). + tracker->TrackFieldWithSize("streaming", wasm_size_); +} + +MaybeLocal WasmStreamingObject::Create( + Environment* env, std::shared_ptr streaming) { + Local ctor = Initialize(env); + Local obj; + if (!ctor->NewInstance(env->context(), 0, nullptr).ToLocal(&obj)) { + return MaybeLocal(); + } + + CHECK(streaming); + + WasmStreamingObject* ptr = Unwrap(obj); + CHECK_NOT_NULL(ptr); + ptr->streaming_ = streaming; + ptr->wasm_size_ = 0; + return obj; +} + +void WasmStreamingObject::New(const FunctionCallbackInfo& args) { + CHECK(args.IsConstructCall()); + Environment* env = Environment::GetCurrent(args); + new WasmStreamingObject(env, args.This()); +} + +void WasmStreamingObject::SetURL(const FunctionCallbackInfo& args) { + WasmStreamingObject* obj; + ASSIGN_OR_RETURN_UNWRAP(&obj, args.Holder()); + CHECK(obj->streaming_); + + CHECK_EQ(args.Length(), 1); + CHECK(args[0]->IsString()); + Utf8Value url(Environment::GetCurrent(args)->isolate(), args[0]); + obj->streaming_->SetUrl(url.out(), url.length()); +} + +void WasmStreamingObject::Push(const FunctionCallbackInfo& args) { + WasmStreamingObject* obj; + ASSIGN_OR_RETURN_UNWRAP(&obj, args.Holder()); + CHECK(obj->streaming_); + + CHECK_EQ(args.Length(), 1); + Local chunk = args[0]; + + // The start of the memory section backing the ArrayBuffer(View), the offset + // of the ArrayBuffer(View) within the memory section, and its size in bytes. + const void* bytes; + size_t offset; + size_t size; + + if (LIKELY(chunk->IsArrayBufferView())) { + Local view = chunk.As(); + bytes = view->Buffer()->GetBackingStore()->Data(); + offset = view->ByteOffset(); + size = view->ByteLength(); + } else if (LIKELY(chunk->IsArrayBuffer())) { + Local buffer = chunk.As(); + bytes = buffer->GetBackingStore()->Data(); + offset = 0; + size = buffer->ByteLength(); + } else { + return node::THROW_ERR_INVALID_ARG_TYPE( + Environment::GetCurrent(args), + "chunk must be an ArrayBufferView or an ArrayBuffer"); + } + + // Forward the data to V8. Internally, V8 will make a copy. + obj->streaming_->OnBytesReceived(static_cast(bytes) + offset, + size); + obj->wasm_size_ += size; +} + +void WasmStreamingObject::Finish(const FunctionCallbackInfo& args) { + WasmStreamingObject* obj; + ASSIGN_OR_RETURN_UNWRAP(&obj, args.Holder()); + CHECK(obj->streaming_); + + CHECK_EQ(args.Length(), 0); + obj->streaming_->Finish(); +} + +void WasmStreamingObject::Abort(const FunctionCallbackInfo& args) { + WasmStreamingObject* obj; + ASSIGN_OR_RETURN_UNWRAP(&obj, args.Holder()); + CHECK(obj->streaming_); + + CHECK_EQ(args.Length(), 1); + obj->streaming_->Abort(args[0]); +} + +void StartStreamingCompilation(const FunctionCallbackInfo& info) { + // V8 passes an instance of v8::WasmStreaming to this callback, which we can + // use to pass the WebAssembly module bytes to V8 as we receive them. + // Unfortunately, our fetch() implementation is a JavaScript dependency, so it + // is difficult to implement the required logic here. Instead, we create a + // a WasmStreamingObject that encapsulates v8::WasmStreaming and that we can + // pass to the JavaScript implementation. The JavaScript implementation can + // then push() bytes from the Response and eventually either finish() or + // abort() the operation. + + // Create the wrapper object. + std::shared_ptr streaming = + WasmStreaming::Unpack(info.GetIsolate(), info.Data()); + Environment* env = Environment::GetCurrent(info); + Local obj; + if (!WasmStreamingObject::Create(env, streaming).ToLocal(&obj)) { + // A JavaScript exception is pending. Let V8 deal with it. + return; + } + + // V8 always passes one argument to this callback. + CHECK_EQ(info.Length(), 1); + + // Prepare the JavaScript implementation for invocation. We will pass the + // WasmStreamingObject as the first argument, followed by the argument that we + // received from V8, i.e., the first argument passed to compileStreaming (or + // instantiateStreaming). + Local impl = env->wasm_streaming_compilation_impl(); + CHECK(!impl.IsEmpty()); + Local args[] = {obj, info[0]}; + + // Hand control to the JavaScript implementation. It should never throw an + // error, but if it does, we leave it to the calling V8 code to handle that + // gracefully. Otherwise, we assert that the JavaScript function does not + // return anything. + MaybeLocal maybe_ret = + impl->Call(env->context(), info.This(), 2, args); + Local ret; + CHECK_IMPLIES(maybe_ret.ToLocal(&ret), ret->IsUndefined()); +} + +// Called once by JavaScript during initialization. +void SetImplementation(const FunctionCallbackInfo& info) { + Environment* env = Environment::GetCurrent(info); + env->set_wasm_streaming_compilation_impl(info[0].As()); +} + +void Initialize(Local target, + Local, + Local context, + void*) { + Environment* env = Environment::GetCurrent(context); + env->SetMethod(target, "setImplementation", SetImplementation); +} + +void RegisterExternalReferences(ExternalReferenceRegistry* registry) { + registry->Register(SetImplementation); + registry->Register(StartStreamingCompilation); + WasmStreamingObject::RegisterExternalReferences(registry); +} + +} // namespace wasm_web_api +} // namespace node + +NODE_MODULE_CONTEXT_AWARE_INTERNAL(wasm_web_api, node::wasm_web_api::Initialize) +NODE_MODULE_EXTERNAL_REFERENCE(wasm_web_api, + node::wasm_web_api::RegisterExternalReferences) diff --git a/src/node_wasm_web_api.h b/src/node_wasm_web_api.h new file mode 100644 index 00000000000000..f56b9b3d5aa7f7 --- /dev/null +++ b/src/node_wasm_web_api.h @@ -0,0 +1,55 @@ +#ifndef SRC_NODE_WASM_WEB_API_H_ +#define SRC_NODE_WASM_WEB_API_H_ + +#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#include "base_object-inl.h" +#include "v8.h" + +namespace node { +namespace wasm_web_api { + +// Wrapper for interacting with a v8::WasmStreaming instance from JavaScript. +class WasmStreamingObject final : public BaseObject { + public: + static v8::Local Initialize(Environment* env); + + static void RegisterExternalReferences(ExternalReferenceRegistry* registry); + + void MemoryInfo(MemoryTracker* tracker) const override; + SET_MEMORY_INFO_NAME(WasmStreamingObject) + SET_SELF_SIZE(WasmStreamingObject) + + static v8::MaybeLocal Create( + Environment* env, std::shared_ptr streaming); + + private: + WasmStreamingObject(Environment* env, v8::Local object) + : BaseObject(env, object) { + MakeWeak(); + } + + ~WasmStreamingObject() override {} + + private: + static void New(const v8::FunctionCallbackInfo& args); + static void SetURL(const v8::FunctionCallbackInfo& args); + static void Push(const v8::FunctionCallbackInfo& args); + static void Finish(const v8::FunctionCallbackInfo& args); + static void Abort(const v8::FunctionCallbackInfo& args); + + std::shared_ptr streaming_; + size_t wasm_size_ = 0; +}; + +// This is a v8::WasmStreamingCallback implementation that must be passed to +// v8::Isolate::SetWasmStreamingCallback when setting up the isolate in order to +// enable the WebAssembly.(compile|instantiate)Streaming APIs. +void StartStreamingCompilation(const v8::FunctionCallbackInfo& args); + +} // namespace wasm_web_api +} // namespace node + +#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS + +#endif // SRC_NODE_WASM_WEB_API_H_ diff --git a/src/node_worker.cc b/src/node_worker.cc index c9743fcf583a08..8385bc96231257 100644 --- a/src/node_worker.cc +++ b/src/node_worker.cc @@ -7,6 +7,7 @@ #include "node_buffer.h" #include "node_options-inl.h" #include "node_perf.h" +#include "node_snapshot_builder.h" #include "util-inl.h" #include "async_wrap-inl.h" @@ -49,29 +50,31 @@ Worker::Worker(Environment* env, const std::string& url, std::shared_ptr per_isolate_opts, std::vector&& exec_argv, - std::shared_ptr env_vars) + std::shared_ptr env_vars, + const SnapshotData* snapshot_data) : AsyncWrap(env, wrap, AsyncWrap::PROVIDER_WORKER), per_isolate_opts_(per_isolate_opts), exec_argv_(exec_argv), platform_(env->isolate_data()->platform()), thread_id_(AllocateEnvironmentThreadId()), - env_vars_(env_vars) { + env_vars_(env_vars), + snapshot_data_(snapshot_data) { Debug(this, "Creating new worker instance with thread id %llu", thread_id_.id); // Set up everything that needs to be set up in the parent environment. - parent_port_ = MessagePort::New(env, env->context()); - if (parent_port_ == nullptr) { + MessagePort* parent_port = MessagePort::New(env, env->context()); + if (parent_port == nullptr) { // This can happen e.g. because execution is terminating. return; } child_port_data_ = std::make_unique(nullptr); - MessagePort::Entangle(parent_port_, child_port_data_.get()); + MessagePort::Entangle(parent_port, child_port_data_.get()); - object()->Set(env->context(), - env->message_port_string(), - parent_port_->object()).Check(); + object() + ->Set(env->context(), env->message_port_string(), parent_port->object()) + .Check(); object()->Set(env->context(), env->thread_id_string(), @@ -146,6 +149,9 @@ class WorkerThreadData { SetIsolateCreateParamsForNode(¶ms); params.array_buffer_allocator_shared = allocator; + if (w->snapshot_data() != nullptr) { + SnapshotBuilder::InitializeIsolateParams(w->snapshot_data(), ¶ms); + } w->UpdateResourceConstraints(¶ms.constraints); Isolate* isolate = Isolate::Allocate(); @@ -231,7 +237,7 @@ class WorkerThreadData { uv_loop_t loop_; bool loop_init_failed_ = true; DeleteFnPtr isolate_data_; - + const SnapshotData* snapshot_data_ = nullptr; friend class Worker; }; @@ -294,7 +300,17 @@ void Worker::Run() { // resource constraints, we need something in place to handle it, // though. TryCatch try_catch(isolate_); - context = NewContext(isolate_); + if (snapshot_data_ != nullptr) { + context = Context::FromSnapshot(isolate_, + SnapshotData::kNodeBaseContextIndex) + .ToLocalChecked(); + if (!context.IsEmpty() && + !InitializeContextRuntime(context).IsJust()) { + context = Local(); + } + } else { + context = NewContext(isolate_); + } if (context.IsEmpty()) { Exit(1, "ERR_WORKER_INIT_FAILED", "Failed to create new Context"); return; @@ -552,12 +568,17 @@ void Worker::New(const FunctionCallbackInfo& args) { exec_argv_out = env->exec_argv(); } + bool use_node_snapshot = per_process::cli_options->node_snapshot; + const SnapshotData* snapshot_data = + use_node_snapshot ? SnapshotBuilder::GetEmbeddedSnapshotData() : nullptr; + Worker* worker = new Worker(env, args.This(), url, per_isolate_opts, std::move(exec_argv_out), - env_vars); + env_vars, + snapshot_data); CHECK(args[3]->IsFloat64Array()); Local limit_info = args[3].As(); @@ -665,6 +686,12 @@ void Worker::Ref(const FunctionCallbackInfo& args) { } } +void Worker::HasRef(const FunctionCallbackInfo& args) { + Worker* w; + ASSIGN_OR_RETURN_UNWRAP(&w, args.This()); + args.GetReturnValue().Set(w->has_ref_); +} + void Worker::Unref(const FunctionCallbackInfo& args) { Worker* w; ASSIGN_OR_RETURN_UNWRAP(&w, args.This()); @@ -707,10 +734,6 @@ void Worker::Exit(int code, const char* error_code, const char* error_message) { } } -void Worker::MemoryInfo(MemoryTracker* tracker) const { - tracker->TrackField("parent_port", parent_port_); -} - bool Worker::IsNotIndicativeOfMemoryLeakAtExit() const { // Worker objects always stay alive as long as the child thread, regardless // of whether they are being referenced in the parent thread. @@ -827,6 +850,7 @@ void InitWorker(Local target, env->SetProtoMethod(w, "startThread", Worker::StartThread); env->SetProtoMethod(w, "stopThread", Worker::StopThread); + env->SetProtoMethod(w, "hasRef", Worker::HasRef); env->SetProtoMethod(w, "ref", Worker::Ref); env->SetProtoMethod(w, "unref", Worker::Unref); env->SetProtoMethod(w, "getResourceLimits", Worker::GetResourceLimits); @@ -890,6 +914,7 @@ void RegisterExternalReferences(ExternalReferenceRegistry* registry) { registry->Register(Worker::New); registry->Register(Worker::StartThread); registry->Register(Worker::StopThread); + registry->Register(Worker::HasRef); registry->Register(Worker::Ref); registry->Register(Worker::Unref); registry->Register(Worker::GetResourceLimits); diff --git a/src/node_worker.h b/src/node_worker.h index d400c4c991dcbc..b3814066287d4b 100644 --- a/src/node_worker.h +++ b/src/node_worker.h @@ -9,6 +9,8 @@ #include "uv.h" namespace node { + +struct SnapshotData; namespace worker { class WorkerThreadData; @@ -29,7 +31,8 @@ class Worker : public AsyncWrap { const std::string& url, std::shared_ptr per_isolate_opts, std::vector&& exec_argv, - std::shared_ptr env_vars); + std::shared_ptr env_vars, + const SnapshotData* snapshot_data); ~Worker() override; // Run the worker. This is only called from the worker thread. @@ -48,12 +51,13 @@ class Worker : public AsyncWrap { template inline bool RequestInterrupt(Fn&& cb); - void MemoryInfo(MemoryTracker* tracker) const override; + SET_NO_MEMORY_INFO() SET_MEMORY_INFO_NAME(Worker) SET_SELF_SIZE(Worker) bool IsNotIndicativeOfMemoryLeakAtExit() const override; bool is_stopped() const; + const SnapshotData* snapshot_data() const { return snapshot_data_; } static void New(const v8::FunctionCallbackInfo& args); static void CloneParentEnvVars( @@ -61,6 +65,7 @@ class Worker : public AsyncWrap { static void SetEnvVars(const v8::FunctionCallbackInfo& args); static void StartThread(const v8::FunctionCallbackInfo& args); static void StopThread(const v8::FunctionCallbackInfo& args); + static void HasRef(const v8::FunctionCallbackInfo& args); static void Ref(const v8::FunctionCallbackInfo& args); static void Unref(const v8::FunctionCallbackInfo& args); static void GetResourceLimits( @@ -106,10 +111,6 @@ class Worker : public AsyncWrap { std::unique_ptr child_port_data_; std::shared_ptr env_vars_; - // This is always kept alive because the JS object associated with the Worker - // instance refers to it via its [kPort] property. - MessagePort* parent_port_ = nullptr; - // A raw flag that is used by creator and worker threads to // sync up on pre-mature termination of worker - while in the // warmup phase. Once the worker is fully warmed up, use the @@ -125,6 +126,7 @@ class Worker : public AsyncWrap { // destroyed alongwith the worker thread. Environment* env_ = nullptr; + const SnapshotData* snapshot_data_ = nullptr; friend class WorkerThreadData; }; diff --git a/src/stream_base.cc b/src/stream_base.cc index a47fad970355dc..783e12a36c8e52 100644 --- a/src/stream_base.cc +++ b/src/stream_base.cc @@ -1,7 +1,6 @@ #include "stream_base.h" // NOLINT(build/include_inline) #include "stream_base-inl.h" #include "stream_wrap.h" -#include "allocated_buffer-inl.h" #include "env-inl.h" #include "js_stream.h" @@ -453,6 +452,10 @@ void StreamBase::AddMethods(Environment* env, Local t) { void StreamBase::RegisterExternalReferences( ExternalReferenceRegistry* registry) { + // This function is called by a single thread during start up, so it is safe + // to use a local static variable here. + static bool is_registered = false; + if (is_registered) return; registry->Register(GetFD); registry->Register(GetExternal); registry->Register(GetBytesRead); @@ -472,6 +475,7 @@ void StreamBase::RegisterExternalReferences( registry->Register( BaseObject::InternalFieldSet); + is_registered = true; } void StreamBase::GetFD(const FunctionCallbackInfo& args) { @@ -601,6 +605,7 @@ void ReportWritesToJSStreamListener::OnStreamAfterReqFinished( StreamReq* req_wrap, int status) { StreamBase* stream = static_cast(stream_); Environment* env = stream->stream_env(); + if (env->is_stopping()) return; AsyncWrap* async_wrap = req_wrap->GetAsyncWrap(); HandleScope handle_scope(env->isolate()); Context::Scope context_scope(env->context()); diff --git a/src/stream_pipe.cc b/src/stream_pipe.cc index 94ba8604bd76c6..93b7ffeca9cd53 100644 --- a/src/stream_pipe.cc +++ b/src/stream_pipe.cc @@ -11,7 +11,10 @@ using v8::Function; using v8::FunctionCallbackInfo; using v8::FunctionTemplate; using v8::HandleScope; +using v8::Just; using v8::Local; +using v8::Maybe; +using v8::Nothing; using v8::Object; using v8::Value; @@ -28,31 +31,6 @@ StreamPipe::StreamPipe(StreamBase* source, sink->PushStreamListener(&writable_listener_); uses_wants_write_ = sink->HasWantsWrite(); - - // Set up links between this object and the source/sink objects. - // In particular, this makes sure that they are garbage collected as a group, - // if that applies to the given streams (for example, Http2Streams use - // weak references). - if (obj->Set(env()->context(), - env()->source_string(), - source->GetObject()).IsNothing()) { - return; - } - if (source->GetObject()->Set(env()->context(), - env()->pipe_target_string(), - obj).IsNothing()) { - return; - } - if (obj->Set(env()->context(), - env()->sink_string(), - sink->GetObject()).IsNothing()) { - return; - } - if (sink->GetObject()->Set(env()->context(), - env()->pipe_source_string(), - obj).IsNothing()) { - return; - } } StreamPipe::~StreamPipe() { @@ -261,6 +239,38 @@ void StreamPipe::WritableListener::OnStreamRead(ssize_t nread, return previous_listener_->OnStreamRead(nread, buf); } +Maybe StreamPipe::New(StreamBase* source, + StreamBase* sink, + Local obj) { + std::unique_ptr stream_pipe(new StreamPipe(source, sink, obj)); + + // Set up links between this object and the source/sink objects. + // In particular, this makes sure that they are garbage collected as a group, + // if that applies to the given streams (for example, Http2Streams use + // weak references). + Environment* env = source->stream_env(); + if (obj->Set(env->context(), env->source_string(), source->GetObject()) + .IsNothing()) { + return Nothing(); + } + if (source->GetObject() + ->Set(env->context(), env->pipe_target_string(), obj) + .IsNothing()) { + return Nothing(); + } + if (obj->Set(env->context(), env->sink_string(), sink->GetObject()) + .IsNothing()) { + return Nothing(); + } + if (sink->GetObject() + ->Set(env->context(), env->pipe_source_string(), obj) + .IsNothing()) { + return Nothing(); + } + + return Just(stream_pipe.release()); +} + void StreamPipe::New(const FunctionCallbackInfo& args) { CHECK(args.IsConstructCall()); CHECK(args[0]->IsObject()); @@ -268,7 +278,7 @@ void StreamPipe::New(const FunctionCallbackInfo& args) { StreamBase* source = StreamBase::FromObject(args[0].As()); StreamBase* sink = StreamBase::FromObject(args[1].As()); - new StreamPipe(source, sink, args.This()); + if (StreamPipe::New(source, sink, args.This()).IsNothing()) return; } void StreamPipe::Start(const FunctionCallbackInfo& args) { diff --git a/src/stream_pipe.h b/src/stream_pipe.h index f411468294d3f0..54ca5bfdd04792 100644 --- a/src/stream_pipe.h +++ b/src/stream_pipe.h @@ -13,10 +13,9 @@ class StreamPipe : public AsyncWrap { void Unpipe(bool is_in_deletion = false); - // TODO(RaisinTen): Just like MessagePort, add the following overload: - // static StreamPipe* New(StreamBase* source, StreamBase* sink, - // v8::Local obj); - // so that we can indicate if there is a pending exception/termination. + static v8::Maybe New(StreamBase* source, + StreamBase* sink, + v8::Local obj); static void New(const v8::FunctionCallbackInfo& args); static void Start(const v8::FunctionCallbackInfo& args); static void Unpipe(const v8::FunctionCallbackInfo& args); diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc index ff3df6bc5db7bd..ef85ba681f8588 100644 --- a/src/stream_wrap.cc +++ b/src/stream_wrap.cc @@ -108,8 +108,7 @@ void LibuvStreamWrap::RegisterExternalReferences( registry->Register(IsConstructCallCallback); registry->Register(GetWriteQueueSize); registry->Register(SetBlocking); - // TODO(joyee): StreamBase::RegisterExternalReferences() is called somewhere - // else but we may want to do it here too and guard it with a static flag. + StreamBase::RegisterExternalReferences(registry); } LibuvStreamWrap::LibuvStreamWrap(Environment* env, diff --git a/src/tcp_wrap.cc b/src/tcp_wrap.cc index 538f0355491c4a..1f81094d32b829 100644 --- a/src/tcp_wrap.cc +++ b/src/tcp_wrap.cc @@ -97,6 +97,7 @@ void TCPWrap::Initialize(Local target, GetSockOrPeerName); env->SetProtoMethod(t, "setNoDelay", SetNoDelay); env->SetProtoMethod(t, "setKeepAlive", SetKeepAlive); + env->SetProtoMethod(t, "reset", Reset); #ifdef _WIN32 env->SetProtoMethod(t, "setSimultaneousAccepts", SetSimultaneousAccepts); @@ -134,6 +135,7 @@ void TCPWrap::RegisterExternalReferences(ExternalReferenceRegistry* registry) { registry->Register(GetSockOrPeerName); registry->Register(SetNoDelay); registry->Register(SetKeepAlive); + registry->Register(Reset); #ifdef _WIN32 registry->Register(SetSimultaneousAccepts); #endif @@ -339,7 +341,29 @@ void TCPWrap::Connect(const FunctionCallbackInfo& args, args.GetReturnValue().Set(err); } +void TCPWrap::Reset(const FunctionCallbackInfo& args) { + TCPWrap* wrap; + ASSIGN_OR_RETURN_UNWRAP( + &wrap, args.Holder(), args.GetReturnValue().Set(UV_EBADF)); + + int err = wrap->Reset(args[0]); + + args.GetReturnValue().Set(err); +} +int TCPWrap::Reset(Local close_callback) { + if (state_ != kInitialized) return 0; + + int err = uv_tcp_close_reset(&handle_, OnClose); + state_ = kClosing; + if (!err & !close_callback.IsEmpty() && close_callback->IsFunction() && + !persistent().IsEmpty()) { + object() + ->Set(env()->context(), env()->handle_onclose_symbol(), close_callback) + .Check(); + } + return err; +} // also used by udp_wrap.cc MaybeLocal AddressToJS(Environment* env, @@ -378,9 +402,7 @@ MaybeLocal AddressToJS(Environment* env, info->Set(env->context(), env->address_string(), OneByteString(env->isolate(), ip)).Check(); - info->Set(env->context(), - env->family_string(), - env->ipv6_string()).Check(); + info->Set(env->context(), env->family_string(), env->ipv6_string()).Check(); info->Set(env->context(), env->port_string(), Integer::New(env->isolate(), port)).Check(); @@ -393,9 +415,7 @@ MaybeLocal AddressToJS(Environment* env, info->Set(env->context(), env->address_string(), OneByteString(env->isolate(), ip)).Check(); - info->Set(env->context(), - env->family_string(), - env->ipv4_string()).Check(); + info->Set(env->context(), env->family_string(), env->ipv4_string()).Check(); info->Set(env->context(), env->port_string(), Integer::New(env->isolate(), port)).Check(); diff --git a/src/tcp_wrap.h b/src/tcp_wrap.h index 3abf4ded19fd7c..b561fef0d31593 100644 --- a/src/tcp_wrap.h +++ b/src/tcp_wrap.h @@ -88,6 +88,8 @@ class TCPWrap : public ConnectionWrap { const v8::FunctionCallbackInfo& args, int family, std::function uv_ip_addr); + static void Reset(const v8::FunctionCallbackInfo& args); + int Reset(v8::Local close_callback = v8::Local()); #ifdef _WIN32 static void SetSimultaneousAccepts( diff --git a/src/util.h b/src/util.h index 8c21c53a1346c0..14c8758c849904 100644 --- a/src/util.h +++ b/src/util.h @@ -26,6 +26,8 @@ #include "v8.h" +#include "node.h" + #include #include #include @@ -110,8 +112,8 @@ struct AssertionInfo { const char* message; const char* function; }; -[[noreturn]] void Assert(const AssertionInfo& info); -[[noreturn]] void Abort(); +[[noreturn]] void NODE_EXTERN_PRIVATE Assert(const AssertionInfo& info); +[[noreturn]] void NODE_EXTERN_PRIVATE Abort(); void DumpBacktrace(FILE* fp); // Windows 8+ does not like abort() in Release mode diff --git a/test/README.md b/test/README.md index 121ecc89b54225..8a006facc0b228 100644 --- a/test/README.md +++ b/test/README.md @@ -26,10 +26,10 @@ For the tests to run on Windows, be sure to clone Node.js source code with the | `es-module` | Yes | Test ESM module loading. | | `fixtures` | | Test fixtures used in various tests throughout the test suite. | | `internet` | No | Tests that make real outbound network connections. Tests for networking related modules may also be present in other directories, but those tests do not make outbound connections. | -| `js-native-api` | Yes | Tests for Node.js-agnostic [n-api](https://nodejs.org/api/n-api.html) functionality. | +| `js-native-api` | Yes | Tests for Node.js-agnostic [Node-API](https://nodejs.org/api/n-api.html) functionality. | | `known_issues` | Yes | Tests reproducing known issues within the system. All tests inside of this directory are expected to fail. If a test doesn't fail on certain platforms, those should be skipped via `known_issues.status`. | | `message` | Yes | Tests for messages that are output for various conditions (`console.log`, error messages etc.) | -| `node-api` | Yes | Tests for Node.js-specific [n-api](https://nodejs.org/api/n-api.html) functionality. | +| `node-api` | Yes | Tests for Node.js-specific [Node-API](https://nodejs.org/api/n-api.html) functionality. | | `parallel` | Yes | Various tests that are able to be run in parallel. | | `pseudo-tty` | Yes | Tests that require stdin/stdout/stderr to be a TTY. | | `pummel` | No | Various tests for various modules / system functionality operating under load. | diff --git a/test/async-hooks/test-graph.http.js b/test/async-hooks/test-graph.http.js index 3e36646e54e2ee..0a003427f9e133 100644 --- a/test/async-hooks/test-graph.http.js +++ b/test/async-hooks/test-graph.http.js @@ -44,7 +44,7 @@ process.on('exit', () => { triggerAsyncId: 'tcp:2' }, { type: 'Timeout', id: 'timeout:1', - triggerAsyncId: 'httpincomingmessage:1' }, + triggerAsyncId: null }, { type: 'SHUTDOWNWRAP', id: 'shutdown:1', triggerAsyncId: 'tcp:2' } ] diff --git a/test/cctest/node_test_fixture.cc b/test/cctest/node_test_fixture.cc index b6f4af6b9e70e0..8179c7864436b1 100644 --- a/test/cctest/node_test_fixture.cc +++ b/test/cctest/node_test_fixture.cc @@ -1,7 +1,39 @@ #include "node_test_fixture.h" +#include "cppgc/platform.h" ArrayBufferUniquePtr NodeZeroIsolateTestFixture::allocator{nullptr, nullptr}; uv_loop_t NodeZeroIsolateTestFixture::current_loop; NodePlatformUniquePtr NodeZeroIsolateTestFixture::platform; TracingAgentUniquePtr NodeZeroIsolateTestFixture::tracing_agent; bool NodeZeroIsolateTestFixture::node_initialized = false; + + +void NodeTestEnvironment::SetUp() { + NodeZeroIsolateTestFixture::tracing_agent = + std::make_unique(); + node::tracing::TraceEventHelper::SetAgent( + NodeZeroIsolateTestFixture::tracing_agent.get()); + node::tracing::TracingController* tracing_controller = + NodeZeroIsolateTestFixture::tracing_agent->GetTracingController(); + static constexpr int kV8ThreadPoolSize = 4; + NodeZeroIsolateTestFixture::platform.reset( + new node::NodePlatform(kV8ThreadPoolSize, tracing_controller)); + v8::V8::InitializePlatform(NodeZeroIsolateTestFixture::platform.get()); +#ifdef V8_SANDBOX + ASSERT_TRUE(v8::V8::InitializeSandbox()); +#endif + cppgc::InitializeProcess( + NodeZeroIsolateTestFixture::platform->GetPageAllocator()); + v8::V8::Initialize(); +} + +void NodeTestEnvironment::TearDown() { + v8::V8::Dispose(); + v8::V8::DisposePlatform(); + NodeZeroIsolateTestFixture::platform->Shutdown(); + NodeZeroIsolateTestFixture::platform.reset(nullptr); + NodeZeroIsolateTestFixture::tracing_agent.reset(nullptr); +} + +::testing::Environment* const node_env = +::testing::AddGlobalTestEnvironment(new NodeTestEnvironment()); diff --git a/test/cctest/node_test_fixture.h b/test/cctest/node_test_fixture.h index 936085d4ae57bd..4c687118a37054 100644 --- a/test/cctest/node_test_fixture.h +++ b/test/cctest/node_test_fixture.h @@ -60,18 +60,26 @@ using ArrayBufferUniquePtr = std::unique_ptr; using NodePlatformUniquePtr = std::unique_ptr; +class NodeTestEnvironment final : public ::testing::Environment { + public: + NodeTestEnvironment() = default; + void SetUp() override; + void TearDown() override; +}; + + class NodeZeroIsolateTestFixture : public ::testing::Test { protected: - static ArrayBufferUniquePtr allocator; - static TracingAgentUniquePtr tracing_agent; - static NodePlatformUniquePtr platform; static uv_loop_t current_loop; static bool node_initialized; + static ArrayBufferUniquePtr allocator; + static NodePlatformUniquePtr platform; + static TracingAgentUniquePtr tracing_agent; static void SetUpTestCase() { if (!node_initialized) { - uv_os_unsetenv("NODE_OPTIONS"); node_initialized = true; + uv_os_unsetenv("NODE_OPTIONS"); std::vector argv { "cctest" }; std::vector exec_argv; std::vector errors; @@ -80,25 +88,13 @@ class NodeZeroIsolateTestFixture : public ::testing::Test { CHECK_EQ(exitcode, 0); CHECK(errors.empty()); } - - tracing_agent = std::make_unique(); - node::tracing::TraceEventHelper::SetAgent(tracing_agent.get()); - node::tracing::TracingController* tracing_controller = - tracing_agent->GetTracingController(); CHECK_EQ(0, uv_loop_init(¤t_loop)); - static constexpr int kV8ThreadPoolSize = 4; - platform.reset( - new node::NodePlatform(kV8ThreadPoolSize, tracing_controller)); - v8::V8::InitializePlatform(platform.get()); - v8::V8::Initialize(); } static void TearDownTestCase() { - platform->Shutdown(); while (uv_loop_alive(¤t_loop)) { uv_run(¤t_loop, UV_RUN_ONCE); } - v8::V8::DisposePlatform(); CHECK_EQ(0, uv_loop_close(¤t_loop)); } @@ -106,6 +102,8 @@ class NodeZeroIsolateTestFixture : public ::testing::Test { allocator = ArrayBufferUniquePtr(node::CreateArrayBufferAllocator(), &node::FreeArrayBufferAllocator); } + + friend NodeTestEnvironment; }; diff --git a/test/cctest/test_json_utils.cc b/test/cctest/test_json_utils.cc index 06a9074a61baf1..3d5a7892117064 100644 --- a/test/cctest/test_json_utils.cc +++ b/test/cctest/test_json_utils.cc @@ -12,11 +12,11 @@ TEST(JSONUtilsTest, EscapeJsonChars) { const std::string expected[0x20] = { "\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", - "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\v", "\\f", "\\r", - "\\u000e", "\\u000f", "\\u0010", "\\u0011", "\\u0012", "\\u0013", - "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", - "\\u001a", "\\u001b", "\\u001c", "\\u001d", "\\u001e", "\\u001f" - }; + "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000b", + "\\f", "\\r", "\\u000e", "\\u000f", "\\u0010", "\\u0011", + "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", + "\\u0018", "\\u0019", "\\u001a", "\\u001b", "\\u001c", "\\u001d", + "\\u001e", "\\u001f"}; for (int i = 0; i < 0x20; ++i) { char symbols[1] = { static_cast(i) }; std::string input(symbols, 1); diff --git a/test/common/README.md b/test/common/README.md index 858e782eb36902..136f4b68d518ae 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -59,7 +59,7 @@ On non-Windows platforms, this always returns `true`. ### `createZeroFilledFile(filename)` -Creates a 10 MB file of all null characters. +Creates a 10 MiB file of all null characters. ### `enoughTestMem` @@ -359,7 +359,7 @@ Platform normalized `pwd` command options. Usage example: ```js const common = require('../common'); -const { spawn } = require('child_process'); +const { spawn } = require('node:child_process'); spawn(...common.pwdCommand, { stdio: ['pipe'] }); ``` diff --git a/test/common/index.js b/test/common/index.js index 8aee35758374c1..060deef1b8094c 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -29,7 +29,7 @@ const fs = require('fs'); // Do not require 'os' until needed so that test-os-checked-function can // monkey patch it. If 'os' is required here, that test will fail. const path = require('path'); -const util = require('util'); +const { inspect } = require('util'); const { isMainThread } = require('worker_threads'); const tmpdir = require('./tmpdir'); @@ -97,7 +97,7 @@ if (process.argv.length === 2 && (process.features.inspector || !flag.startsWith('--inspect'))) { console.log( 'NOTE: The test started as a child_process using these flags:', - util.inspect(flags), + inspect(flags), 'Use NODE_SKIP_FLAG_CHECK to run the test with the original flags.' ); const args = [...flags, ...process.execArgv, ...process.argv.slice(1)]; @@ -120,6 +120,17 @@ const isFreeBSD = process.platform === 'freebsd'; const isOpenBSD = process.platform === 'openbsd'; const isLinux = process.platform === 'linux'; const isOSX = process.platform === 'darwin'; +const isPi = (() => { + try { + // Normal Raspberry Pi detection is to find the `Raspberry Pi` string in + // the contents of `/sys/firmware/devicetree/base/model` but that doesn't + // work inside a container. Match the chipset model number instead. + const cpuinfo = fs.readFileSync('/proc/cpuinfo', { encoding: 'utf8' }); + return /^Hardware\s*:\s*(.*)$/im.exec(cpuinfo)?.[1] === 'BCM2835'; + } catch { + return false; + } +})(); const isDumbTerminal = process.env.TERM === 'dumb'; @@ -138,7 +149,7 @@ if (process.env.NODE_TEST_WITH_ASYNC_HOOKS) { process.on('exit', () => { // Iterate through handles to make sure nothing crashes for (const k in initHandles) - util.inspect(initHandles[k]); + inspect(initHandles[k]); }); const _queueDestroyAsyncId = async_wrap.queueDestroyAsyncId; @@ -148,7 +159,7 @@ if (process.env.NODE_TEST_WITH_ASYNC_HOOKS) { process._rawDebug(); throw new Error(`same id added to destroy list twice (${id})`); } - destroyListList[id] = util.inspect(new Error()); + destroyListList[id] = inspect(new Error()); _queueDestroyAsyncId(id); }; @@ -162,7 +173,7 @@ if (process.env.NODE_TEST_WITH_ASYNC_HOOKS) { } initHandles[id] = { resource, - stack: util.inspect(new Error()).substr(6) + stack: inspect(new Error()).substr(6) }; }, before() { }, @@ -173,7 +184,7 @@ if (process.env.NODE_TEST_WITH_ASYNC_HOOKS) { process._rawDebug(); throw new Error(`destroy called for same id (${id})`); } - destroydIdsList[id] = util.inspect(new Error()); + destroydIdsList[id] = inspect(new Error()); }, }).enable(); } @@ -246,15 +257,10 @@ function platformTimeout(ms) { if (isAIX) return multipliers.two * ms; // Default localhost speed is slower on AIX - if (process.arch !== 'arm') - return ms; - - const armv = process.config.variables.arm_version; - - if (armv === '7') - return multipliers.two * ms; // ARMv7 + if (isPi) + return multipliers.two * ms; // Raspberry Pi devices - return ms; // ARMv8+ + return ms; } let knownGlobals = [ @@ -418,7 +424,7 @@ function _mustCallInner(fn, criteria = 1, field) { const context = { [field]: criteria, actual: 0, - stack: util.inspect(new Error()), + stack: inspect(new Error()), name: fn.name || '' }; @@ -506,7 +512,7 @@ function mustNotCall(msg) { const callSite = getCallSite(mustNotCall); return function mustNotCall(...args) { const argsInfo = args.length > 0 ? - `\ncalled with arguments: ${args.map(util.inspect).join(', ')}` : ''; + `\ncalled with arguments: ${args.map((arg) => inspect(arg)).join(', ')}` : ''; assert.fail( `${msg || 'function should not have been called'} at ${callSite}` + argsInfo); @@ -608,7 +614,7 @@ function expectWarning(nameOrMap, expected, code) { if (!catchWarning[warning.name]) { throw new TypeError( `"${warning.name}" was triggered without being expected.\n` + - util.inspect(warning) + inspect(warning) ); } catchWarning[warning.name](warning); @@ -629,7 +635,7 @@ function expectsError(validator, exact) { if (args.length !== 1) { // Do not use `assert.strictEqual()` to prevent `inspect` from // always being called. - assert.fail(`Expected one argument, got ${util.inspect(args)}`); + assert.fail(`Expected one argument, got ${inspect(args)}`); } const error = args.pop(); const descriptor = Object.getOwnPropertyDescriptor(error, 'message'); @@ -674,6 +680,8 @@ function getArrayBufferViews(buf) { Uint32Array, Float32Array, Float64Array, + BigInt64Array, + BigUint64Array, DataView, ]; @@ -732,9 +740,9 @@ function invalidArgTypeHelper(input) { if (input.constructor && input.constructor.name) { return ` Received an instance of ${input.constructor.name}`; } - return ` Received ${util.inspect(input, { depth: -1 })}`; + return ` Received ${inspect(input, { depth: -1 })}`; } - let inspected = util.inspect(input, { colors: false }); + let inspected = inspect(input, { colors: false }); if (inspected.length > 25) inspected = `${inspected.slice(0, 25)}...`; return ` Received type ${typeof input} (${inspected})`; @@ -811,6 +819,7 @@ const common = { isMainThread, isOpenBSD, isOSX, + isPi, isSunOS, isWindows, localIPv6Hosts, diff --git a/test/common/inspector-helper.js b/test/common/inspector-helper.js index 28b5ab5209a298..cebc048362ef40 100644 --- a/test/common/inspector-helper.js +++ b/test/common/inspector-helper.js @@ -5,8 +5,7 @@ const fs = require('fs'); const http = require('http'); const fixtures = require('../common/fixtures'); const { spawn } = require('child_process'); -const { parse: parseURL } = require('url'); -const { pathToFileURL } = require('url'); +const { URL, pathToFileURL } = require('url'); const { EventEmitter } = require('events'); const _MAINSCRIPT = fixtures.path('loop.js'); @@ -418,7 +417,7 @@ class NodeInstance extends EventEmitter { return http.get({ port, family: 4, - path: parseURL(devtoolsUrl).path, + path: new URL(devtoolsUrl).pathname, headers: { 'Connection': 'Upgrade', 'Upgrade': 'websocket', diff --git a/test/common/report.js b/test/common/report.js index f1c0d05e490393..e9f252b079ed7f 100644 --- a/test/common/report.js +++ b/test/common/report.js @@ -193,14 +193,32 @@ function _validateContent(report, fields = []) { // Verify the format of the javascriptHeap section. const heap = report.javascriptHeap; - const jsHeapFields = ['totalMemory', 'totalCommittedMemory', 'usedMemory', - 'availableMemory', 'memoryLimit', 'heapSpaces']; + // See `PrintGCStatistics` in node_report.cc + const jsHeapFields = [ + 'totalMemory', + 'executableMemory', + 'totalCommittedMemory', + 'availableMemory', + 'totalGlobalHandlesMemory', + 'usedGlobalHandlesMemory', + 'usedMemory', + 'memoryLimit', + 'mallocedMemory', + 'externalMemory', + 'peakMallocedMemory', + 'nativeContextCount', + 'detachedContextCount', + 'doesZapGarbage', + 'heapSpaces', + ]; checkForUnknownFields(heap, jsHeapFields); - assert(Number.isSafeInteger(heap.totalMemory)); - assert(Number.isSafeInteger(heap.totalCommittedMemory)); - assert(Number.isSafeInteger(heap.usedMemory)); - assert(Number.isSafeInteger(heap.availableMemory)); - assert(Number.isSafeInteger(heap.memoryLimit)); + // Do not check `heapSpaces` here + for (let i = 0; i < jsHeapFields.length - 1; i++) { + assert( + Number.isSafeInteger(heap[jsHeapFields[i]]), + `heap.${jsHeapFields[i]} is not a safe integer` + ); + } assert(typeof heap.heapSpaces === 'object' && heap.heapSpaces !== null); const heapSpaceFields = ['memorySize', 'committedMemory', 'capacity', 'used', 'available']; diff --git a/test/doctool/test-doctool-versions.mjs b/test/doctool/test-doctool-versions.mjs index 87e17ba07277dd..10eb8467bb110c 100644 --- a/test/doctool/test-doctool-versions.mjs +++ b/test/doctool/test-doctool-versions.mjs @@ -62,8 +62,8 @@ for (const version of versions) { // Check that the minimum number of versions were returned. // Later versions are allowed, but not checked for here (they were checked // above). -// Also check for the previous semver major -- From master this will be the -// most recent major release. +// Also check for the previous semver major -- From the main branch this will be +// the most recent major release. const thisMajor = Number.parseInt(process.versions.node.split('.')[0]); const prevMajorString = `${thisMajor - 1}.x`; if (!expected.includes(prevMajorString)) { diff --git a/test/es-module/test-esm-data-urls.js b/test/es-module/test-esm-data-urls.js index 9d0deb70a1568c..5be45d0f7af3b6 100644 --- a/test/es-module/test-esm-data-urls.js +++ b/test/es-module/test-esm-data-urls.js @@ -1,5 +1,6 @@ 'use strict'; const common = require('../common'); +const fixtures = require('../common/fixtures'); const assert = require('assert'); function createURL(mime, body) { return `data:${mime},${body}`; @@ -107,4 +108,8 @@ function createBase64URL(mime, body) { const module = await import(plainESMURL); assert.strictEqual(module.default, 2); } + { + const plainESMURL = `data:text/javascript,${encodeURIComponent(`import ${JSON.stringify(fixtures.fileURL('es-module-url', 'empty.js'))}`)}`; + await import(plainESMURL); + } })().then(common.mustCall()); diff --git a/test/es-module/test-esm-experimental-warnings.mjs b/test/es-module/test-esm-experimental-warnings.mjs index bf92b158e485eb..b6ef757a88302e 100644 --- a/test/es-module/test-esm-experimental-warnings.mjs +++ b/test/es-module/test-esm-experimental-warnings.mjs @@ -1,10 +1,33 @@ import { mustCall } from '../common/index.mjs'; import { fileURL } from '../common/fixtures.mjs'; -import { match, strictEqual } from 'assert'; +import { doesNotMatch, match, strictEqual } from 'assert'; import { spawn } from 'child_process'; import { execPath } from 'process'; -// Verify experimental warnings are printed +// Verify no warnings are printed when no experimental features are enabled or used +{ + const input = `import ${JSON.stringify(fileURL('es-module-loaders', 'module-named-exports.mjs'))}`; + const child = spawn(execPath, [ + '--input-type=module', + '--eval', + input, + ]); + + let stderr = ''; + child.stderr.setEncoding('utf8'); + child.stderr.on('data', (data) => { stderr += data; }); + child.on('close', mustCall((code, signal) => { + strictEqual(code, 0); + strictEqual(signal, null); + doesNotMatch( + stderr, + /ExperimentalWarning/, + new Error('No experimental warning(s) should be emitted when no experimental feature is enabled') + ); + })); +} + +// Verify experimental warning is printed when experimental feature is enabled for ( const [experiment, arg] of [ [/Custom ESM Loaders/, `--experimental-loader=${fileURL('es-module-loaders', 'hooks-custom.mjs')}`], diff --git a/test/es-module/test-esm-import-meta-resolve.mjs b/test/es-module/test-esm-import-meta-resolve.mjs index 1fac362172ae34..70abe272ca0421 100644 --- a/test/es-module/test-esm-import-meta-resolve.mjs +++ b/test/es-module/test-esm-import-meta-resolve.mjs @@ -1,37 +1,49 @@ // Flags: --experimental-import-meta-resolve -import { mustCall } from '../common/index.mjs'; +import '../common/index.mjs'; import assert from 'assert'; const dirname = import.meta.url.slice(0, import.meta.url.lastIndexOf('/') + 1); const fixtures = dirname.slice(0, dirname.lastIndexOf('/', dirname.length - 2) + 1) + 'fixtures/'; -(async () => { - assert.strictEqual(await import.meta.resolve('./test-esm-import-meta.mjs'), - dirname + 'test-esm-import-meta.mjs'); - try { - await import.meta.resolve('./notfound.mjs'); - assert.fail(); - } catch (e) { - assert.strictEqual(e.code, 'ERR_MODULE_NOT_FOUND'); - } - assert.strictEqual( - await import.meta.resolve('../fixtures/empty-with-bom.txt'), - fixtures + 'empty-with-bom.txt'); - assert.strictEqual(await import.meta.resolve('../fixtures/'), fixtures); - assert.strictEqual( - await import.meta.resolve('../fixtures/', import.meta.url), - fixtures); - assert.strictEqual( - await import.meta.resolve('../fixtures/', new URL(import.meta.url)), - fixtures); - await Promise.all( - [[], {}, Symbol(), 0, 1, 1n, 1.1, () => {}, true, false].map((arg) => - assert.rejects(import.meta.resolve('../fixtures/', arg), { - code: 'ERR_INVALID_ARG_TYPE', - }) - ) +assert.strictEqual( + import.meta.resolve('./test-esm-import-meta.mjs'), + dirname + 'test-esm-import-meta.mjs', +); + +assert.throws( + () => import.meta.resolve('./notfound.mjs'), + { code: 'ERR_MODULE_NOT_FOUND' }, +); + +assert.strictEqual( + import.meta.resolve('../fixtures/empty-with-bom.txt'), + fixtures + 'empty-with-bom.txt', +); + +assert.strictEqual( + import.meta.resolve('../fixtures/'), + fixtures, +); + +assert.strictEqual( + import.meta.resolve('../fixtures/', import.meta.url), + fixtures, +); + +assert.strictEqual( + import.meta.resolve('../fixtures/', new URL(import.meta.url)), + fixtures, +); + +[[], {}, Symbol(), 0, 1, 1n, 1.1, () => {}, true, false].forEach((arg) => { + assert.throws( + () => import.meta.resolve('../fixtures/', arg), + { code: 'ERR_INVALID_ARG_TYPE' }, ); - assert.strictEqual(await import.meta.resolve('baz/', fixtures), - fixtures + 'node_modules/baz/'); -})().then(mustCall()); +}); + +assert.strictEqual( + import.meta.resolve('baz/', fixtures), + fixtures + 'node_modules/baz/', +); diff --git a/test/es-module/test-esm-loader-chaining.mjs b/test/es-module/test-esm-loader-chaining.mjs new file mode 100644 index 00000000000000..7bfe00f5ede842 --- /dev/null +++ b/test/es-module/test-esm-loader-chaining.mjs @@ -0,0 +1,417 @@ +import '../common/index.mjs'; +import fixtures from '../common/fixtures.js'; +import assert from 'node:assert'; +import { spawnSync } from 'node:child_process'; + +const setupArgs = [ + '--no-warnings', + '--input-type=module', + '--eval', +]; +const commonInput = 'import fs from "node:fs"; console.log(fs)'; +const commonArgs = [ + ...setupArgs, + commonInput, +]; + +{ // Verify unadulterated source is loaded when there are no loaders + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + ...setupArgs, + 'import fs from "node:fs"; console.log(typeof fs?.constants?.F_OK )', + ], + { encoding: 'utf8' }, + ); + + assert.strictEqual(stderr, ''); + assert.match(stdout, /number/); // node:fs is an object + assert.strictEqual(status, 0); +} + +{ // Verify loaded source is properly different when only load changes something + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-passthru.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.strictEqual(stderr, ''); + assert.match(stdout, /load passthru/); + assert.match(stdout, /resolve passthru/); + assert.match(stdout, /foo/); + assert.strictEqual(status, 0); +} + +{ // Verify multiple changes from hooks result in proper output + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-shortcircuit.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-foo.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-42.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.strictEqual(stderr, ''); + assert.match(stdout, /resolve 42/); // It did go thru resolve-42 + assert.match(stdout, /foo/); // LIFO, so resolve-foo won + assert.strictEqual(status, 0); +} + +{ // Verify modifying context within resolve chain is respected + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-shortcircuit.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-42.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-receiving-modified-context.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-passing-modified-context.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.strictEqual(stderr, ''); + assert.match(stdout, /bar/); + assert.strictEqual(status, 0); +} + +{ // Verify multiple changes from hooks result in proper output + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-shortcircuit.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-42.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-foo.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.strictEqual(stderr, ''); + assert.match(stdout, /resolve foo/); // It did go thru resolve-foo + assert.match(stdout, /42/); // LIFO, so resolve-42 won + assert.strictEqual(status, 0); +} + +{ // Verify multiple calls to next within same loader receive correct "next" fn + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-shortcircuit.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-foo.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-multiple-next-calls.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + const countFoos = stdout.match(/resolve foo/g)?.length; + + assert.strictEqual(stderr, ''); + assert.strictEqual(countFoos, 2); + assert.strictEqual(status, 0); +} + +{ // Verify next function's `name` is correct + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-shortcircuit.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-42.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.strictEqual(stderr, ''); + assert.match(stdout, /next: nextResolve/); + assert.strictEqual(status, 0); +} + +{ // Verify error thrown for an async resolve hook + const { status, stderr } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-shortcircuit.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-42.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-async-fn.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.match(stderr, /ERR_INVALID_RETURN_VALUE/); + assert.match(stderr, /Promise/); + assert.match(stderr, /loader-resolve-async-fn\.mjs/); + assert.match(stderr, /'resolve'/); + // Cannot expect stdout to be empty because detecting whether a hook has + // returned a promise requires the hook to be executed + assert.strictEqual(status, 1); +} + +{ // Verify error thrown for incomplete resolve chain, citing errant loader & hook + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-incomplete.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.match(stdout, /resolve passthru/); + assert.match(stderr, /ERR_LOADER_CHAIN_INCOMPLETE/); + assert.match(stderr, /loader-resolve-incomplete\.mjs/); + assert.match(stderr, /'resolve'/); + assert.strictEqual(status, 1); +} + +{ // Verify error NOT thrown when nested resolve hook signaled a short circuit + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-shortcircuit.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-next-modified.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.strictEqual(stderr, ''); + assert.strictEqual(stdout.trim(), 'foo'); + assert.strictEqual(status, 0); +} + +{ // Verify error NOT thrown when nested load hook signaled a short circuit + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-shortcircuit.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-42.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-next-modified.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.strictEqual(stderr, ''); + assert.match(stdout, /421/); + assert.strictEqual(status, 0); +} + +{ // Verify chain does break and throws appropriately + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-incomplete.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-foo-or-42.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.doesNotMatch(stdout, /resolve passthru/); + assert.match(stderr, /ERR_LOADER_CHAIN_INCOMPLETE/); + assert.match(stderr, /loader-resolve-incomplete\.mjs/); + assert.match(stderr, /'resolve'/); + assert.strictEqual(status, 1); +} + +{ // Verify error thrown for incomplete load chain, citing errant loader & hook + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-incomplete.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-passthru.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.match(stdout, /load passthru/); + assert.match(stderr, /ERR_LOADER_CHAIN_INCOMPLETE/); + assert.match(stderr, /loader-load-incomplete\.mjs/); + assert.match(stderr, /'load'/); + assert.strictEqual(status, 1); +} + +{ // Verify chain does break and throws appropriately + const { status, stderr, stdout } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-incomplete.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.doesNotMatch(stdout, /load passthru/); + assert.match(stderr, /ERR_LOADER_CHAIN_INCOMPLETE/); + assert.match(stderr, /loader-load-incomplete\.mjs/); + assert.match(stderr, /'load'/); + assert.strictEqual(status, 1); +} + +{ // Verify error thrown when invalid `specifier` argument passed to `nextResolve` + const { status, stderr } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-bad-next-specifier.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.strictEqual(status, 1); + assert.match(stderr, /ERR_INVALID_ARG_TYPE/); + assert.match(stderr, /loader-resolve-bad-next-specifier\.mjs/); + assert.match(stderr, /'resolve' hook's nextResolve\(\) specifier/); +} + +{ // Verify error thrown when invalid `context` argument passed to `nextResolve` + const { status, stderr } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-resolve-bad-next-context.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.match(stderr, /ERR_INVALID_ARG_TYPE/); + assert.match(stderr, /loader-resolve-bad-next-context\.mjs/); + assert.match(stderr, /'resolve' hook's nextResolve\(\) context/); + assert.strictEqual(status, 1); +} + +{ // Verify error thrown when invalid `url` argument passed to `nextLoad` + const { status, stderr } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-bad-next-url.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.match(stderr, /ERR_INVALID_ARG_TYPE/); + assert.match(stderr, /loader-load-bad-next-url\.mjs/); + assert.match(stderr, /'load' hook's nextLoad\(\) url/); + assert.strictEqual(status, 1); +} + +{ // Verify error thrown when invalid `url` argument passed to `nextLoad` + const { status, stderr } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-impersonating-next-url.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.match(stderr, /ERR_INVALID_ARG_VALUE/); + assert.match(stderr, /loader-load-impersonating-next-url\.mjs/); + assert.match(stderr, /'load' hook's nextLoad\(\) url/); + assert.strictEqual(status, 1); +} + +{ // Verify error thrown when invalid `context` argument passed to `nextLoad` + const { status, stderr } = spawnSync( + process.execPath, + [ + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-passthru.mjs'), + '--loader', + fixtures.fileURL('es-module-loaders', 'loader-load-bad-next-context.mjs'), + ...commonArgs, + ], + { encoding: 'utf8' }, + ); + + assert.match(stderr, /ERR_INVALID_ARG_TYPE/); + assert.match(stderr, /loader-load-bad-next-context\.mjs/); + assert.match(stderr, /'load' hook's nextLoad\(\) context/); + assert.strictEqual(status, 1); +} diff --git a/test/es-module/test-esm-loader-hooks.mjs b/test/es-module/test-esm-loader-hooks.mjs index 57a203342ac49c..d314a4d9aa0a5e 100644 --- a/test/es-module/test-esm-loader-hooks.mjs +++ b/test/es-module/test-esm-loader-hooks.mjs @@ -35,6 +35,7 @@ const { ESMLoader } = esmLoaderModule; return { format: suggestedFormat, + shortCircuit: true, url: resolvedURL, }; } @@ -54,15 +55,21 @@ const { ESMLoader } = esmLoaderModule; // This doesn't matter (just to avoid errors) return { format: 'module', + shortCircuit: true, source: '', }; } - const customLoader = { - // Ensure ESMLoader actually calls the custom hooks - resolve: mustCall(resolve), - load: mustCall(load), - }; + const customLoader = [ + { + exports: { + // Ensure ESMLoader actually calls the custom hooks + resolve: mustCall(resolve), + load: mustCall(load), + }, + url: import.meta.url, + }, + ]; esmLoader.addCustomLoaders(customLoader); diff --git a/test/es-module/test-esm-loader-http-imports.mjs b/test/es-module/test-esm-loader-http-imports.mjs new file mode 100644 index 00000000000000..5f6cc47f388271 --- /dev/null +++ b/test/es-module/test-esm-loader-http-imports.mjs @@ -0,0 +1,72 @@ +import { mustCall } from '../common/index.mjs'; +import fixtures from '../common/fixtures.js'; +import { strictEqual } from 'node:assert'; +import { spawn } from 'node:child_process'; +import http from 'node:http'; +import path from 'node:path'; +import { promisify } from 'node:util'; + + +const files = { + 'main.mjs': 'export * from "./lib.mjs";', + 'lib.mjs': 'export { sum } from "./sum.mjs";', + 'sum.mjs': 'export function sum(a, b) { return a + b }', +}; + +const requestListener = ({ url }, rsp) => { + const filename = path.basename(url); + const content = files[filename]; + + if (content) { + return rsp + .writeHead(200, { 'Content-Type': 'application/javascript' }) + .end(content); + } + + return rsp + .writeHead(404) + .end(); +}; + +const server = http.createServer(requestListener); + +await promisify(server.listen.bind(server))({ + host: '127.0.0.1', + port: 0, +}); + +const { + address: host, + port, +} = server.address(); + +{ // Verify nested HTTP imports work + const child = spawn( // ! `spawn` MUST be used (vs `spawnSync`) to avoid blocking the event loop + process.execPath, + [ + '--no-warnings', + '--loader', + fixtures.fileURL('es-module-loaders', 'http-loader.mjs'), + '--input-type=module', + '--eval', + `import * as main from 'http://${host}:${port}/main.mjs'; console.log(main)`, + ] + ); + + let stderr = ''; + let stdout = ''; + + child.stderr.setEncoding('utf8'); + child.stderr.on('data', (data) => stderr += data); + child.stdout.setEncoding('utf8'); + child.stdout.on('data', (data) => stdout += data); + + child.on('close', mustCall((code, signal) => { + strictEqual(stderr, ''); + strictEqual(stdout, '[Module: null prototype] { sum: [Function: sum] }\n'); + strictEqual(code, 0); + strictEqual(signal, null); + + server.close(); + })); +} diff --git a/test/es-module/test-esm-loader-invalid-url.mjs b/test/es-module/test-esm-loader-invalid-url.mjs index 6294e57404c8bb..1ba7c621f7e92a 100644 --- a/test/es-module/test-esm-loader-invalid-url.mjs +++ b/test/es-module/test-esm-loader-invalid-url.mjs @@ -4,7 +4,7 @@ import assert from 'assert'; import('../fixtures/es-modules/test-esm-ok.mjs') .then(assert.fail, (error) => { - expectsError({ code: 'ERR_INVALID_URL' })(error); - assert.strictEqual(error.input, '../fixtures/es-modules/test-esm-ok.mjs'); + expectsError({ code: 'ERR_INVALID_RETURN_PROPERTY_VALUE' })(error); + assert.match(error.message, /loader-invalid-url\.mjs/); }) .then(mustCall()); diff --git a/test/es-module/test-esm-loader-search.js b/test/es-module/test-esm-loader-search.js index 0440d3d7775cff..3c451409b356db 100644 --- a/test/es-module/test-esm-loader-search.js +++ b/test/es-module/test-esm-loader-search.js @@ -10,8 +10,8 @@ const { defaultResolve: resolve } = require('internal/modules/esm/resolve'); -assert.rejects( - resolve('target'), +assert.throws( + () => resolve('target'), { code: 'ERR_MODULE_NOT_FOUND', name: 'Error', diff --git a/test/es-module/test-esm-loader-thenable.mjs b/test/es-module/test-esm-loader-thenable.mjs new file mode 100644 index 00000000000000..c8c3ec2778e7e9 --- /dev/null +++ b/test/es-module/test-esm-loader-thenable.mjs @@ -0,0 +1,65 @@ +import { mustCall } from '../common/index.mjs'; +import { fileURL, path } from '../common/fixtures.mjs'; +import { match, ok, notStrictEqual, strictEqual } from 'assert'; +import { spawn } from 'child_process'; +import { execPath } from 'process'; + +{ + const child = spawn(execPath, [ + '--experimental-loader', + fileURL('es-module-loaders', 'thenable-load-hook.mjs').href, + path('es-modules', 'test-esm-ok.mjs'), + ]); + + let stderr = ''; + child.stderr.setEncoding('utf8'); + child.stderr.on('data', (data) => { + stderr += data; + }); + child.on('close', mustCall((code, _signal) => { + strictEqual(code, 0); + ok(!stderr.includes('must not call')); + })); +} + +{ + const child = spawn(execPath, [ + '--experimental-loader', + fileURL('es-module-loaders', 'thenable-load-hook-rejected.mjs').href, + path('es-modules', 'test-esm-ok.mjs'), + ]); + + let stderr = ''; + child.stderr.setEncoding('utf8'); + child.stderr.on('data', (data) => { + stderr += data; + }); + child.on('close', mustCall((code, _signal) => { + notStrictEqual(code, 0); + + match(stderr, /\sError: must crash the process\r?\n/); + + ok(!stderr.includes('must not call')); + })); +} + +{ + const child = spawn(execPath, [ + '--experimental-loader', + fileURL('es-module-loaders', 'thenable-load-hook-rejected-no-arguments.mjs').href, + path('es-modules', 'test-esm-ok.mjs'), + ]); + + let stderr = ''; + child.stderr.setEncoding('utf8'); + child.stderr.on('data', (data) => { + stderr += data; + }); + child.on('close', mustCall((code, _signal) => { + notStrictEqual(code, 0); + + match(stderr, /\sundefined\r?\n/); + + ok(!stderr.includes('must not call')); + })); +} diff --git a/test/es-module/test-esm-resolve-type.js b/test/es-module/test-esm-resolve-type.js index 05e908cd32fc34..bf3b77c34f7769 100644 --- a/test/es-module/test-esm-resolve-type.js +++ b/test/es-module/test-esm-resolve-type.js @@ -41,10 +41,10 @@ try { [ '/es-modules/package-type-commonjs/index.js', 'commonjs' ], [ '/es-modules/package-without-type/index.js', 'commonjs' ], [ '/es-modules/package-without-pjson/index.js', 'commonjs' ], - ].forEach(async (testVariant) => { + ].forEach((testVariant) => { const [ testScript, expectedType ] = testVariant; const resolvedPath = path.resolve(fixtures.path(testScript)); - const resolveResult = await resolve(url.pathToFileURL(resolvedPath)); + const resolveResult = resolve(url.pathToFileURL(resolvedPath)); assert.strictEqual(resolveResult.format, expectedType); }); @@ -59,7 +59,7 @@ try { [ 'test-module-mainmjs', 'mjs', 'module', 'module'], [ 'test-module-cjs', 'js', 'commonjs', 'commonjs'], [ 'test-module-ne', 'js', undefined, 'commonjs'], - ].forEach(async (testVariant) => { + ].forEach((testVariant) => { const [ moduleName, moduleExtenstion, moduleType, @@ -89,7 +89,7 @@ try { fs.writeFileSync(script, 'export function esm-resolve-tester() {return 42}'); - const resolveResult = await resolve(`${moduleName}`); + const resolveResult = resolve(`${moduleName}`); assert.strictEqual(resolveResult.format, expectedResolvedType); fs.rmSync(nmDir, { recursive: true, force: true }); @@ -102,7 +102,7 @@ try { } }; - async function testDualPackageWithJsMainScriptAndModuleType() { + function testDualPackageWithJsMainScriptAndModuleType() { // Create a dummy dual package // /** @@ -172,7 +172,7 @@ try { ); // test the resolve - const resolveResult = await resolve(`${moduleName}`); + const resolveResult = resolve(`${moduleName}`); assert.strictEqual(resolveResult.format, 'module'); assert.ok(resolveResult.url.includes('my-dual-package/es/index.js')); } @@ -192,7 +192,7 @@ try { [ 'hmod', 'index.js', 'imp.js', 'commonjs', 'module', 'module', '#Key'], [ 'qhmod', 'index.js', 'imp.js', 'commonjs', 'module', 'module', '?k=v#h'], [ 'ts-mod-com', 'index.js', 'imp.ts', 'module', 'commonjs', undefined], - ].forEach(async (testVariant) => { + ].forEach((testVariant) => { const [ moduleName, mainRequireScript, @@ -240,7 +240,7 @@ try { ); // test the resolve - const resolveResult = await resolve(`${moduleName}`); + const resolveResult = resolve(`${moduleName}`); assert.strictEqual(resolveResult.format, expectedResolvedFormat); assert.ok(resolveResult.url.endsWith(`${moduleName}/subdir/${mainImportScript}${mainSuffix}`)); }); diff --git a/test/es-module/test-esm-tla-unfinished.mjs b/test/es-module/test-esm-tla-unfinished.mjs index d7658c19e98e1c..a7b6e620d0620a 100644 --- a/test/es-module/test-esm-tla-unfinished.mjs +++ b/test/es-module/test-esm-tla-unfinished.mjs @@ -3,11 +3,17 @@ import assert from 'assert'; import child_process from 'child_process'; import fixtures from '../common/fixtures.js'; +const commonArgs = [ + '--no-warnings', + '--input-type=module', + '--eval', +]; + { // Unresolved TLA promise, --eval const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - ['--input-type=module', '--eval', 'await new Promise(() => {})'], + [...commonArgs, 'await new Promise(() => {})'], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout, stderr], [13, '', '']); } @@ -16,7 +22,7 @@ import fixtures from '../common/fixtures.js'; // Rejected TLA promise, --eval const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - ['--input-type=module', '-e', 'await Promise.reject(new Error("Xyz"))'], + [...commonArgs, 'await Promise.reject(new Error("Xyz"))'], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout], [1, '']); assert.match(stderr, /Error: Xyz/); @@ -26,8 +32,10 @@ import fixtures from '../common/fixtures.js'; // Unresolved TLA promise with explicit exit code, --eval const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - ['--input-type=module', '--eval', - 'process.exitCode = 42;await new Promise(() => {})'], + [ + ...commonArgs, + 'process.exitCode = 42;await new Promise(() => {})', + ], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout, stderr], [42, '', '']); } @@ -36,8 +44,10 @@ import fixtures from '../common/fixtures.js'; // Rejected TLA promise with explicit exit code, --eval const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - ['--input-type=module', '-e', - 'process.exitCode = 42;await Promise.reject(new Error("Xyz"))'], + [ + ...commonArgs, + 'process.exitCode = 42;await Promise.reject(new Error("Xyz"))', + ], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout], [1, '']); assert.match(stderr, /Error: Xyz/); @@ -47,7 +57,7 @@ import fixtures from '../common/fixtures.js'; // Unresolved TLA promise, module file const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - [fixtures.path('es-modules/tla/unresolved.mjs')], + ['--no-warnings', fixtures.path('es-modules/tla/unresolved.mjs')], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout, stderr], [13, '', '']); } @@ -56,7 +66,7 @@ import fixtures from '../common/fixtures.js'; // Rejected TLA promise, module file const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - [fixtures.path('es-modules/tla/rejected.mjs')], + ['--no-warnings', fixtures.path('es-modules/tla/rejected.mjs')], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout], [1, '']); assert.match(stderr, /Error: Xyz/); @@ -66,7 +76,7 @@ import fixtures from '../common/fixtures.js'; // Unresolved TLA promise, module file const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - [fixtures.path('es-modules/tla/unresolved-withexitcode.mjs')], + ['--no-warnings', fixtures.path('es-modules/tla/unresolved-withexitcode.mjs')], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout, stderr], [42, '', '']); } @@ -75,7 +85,7 @@ import fixtures from '../common/fixtures.js'; // Rejected TLA promise, module file const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - [fixtures.path('es-modules/tla/rejected-withexitcode.mjs')], + ['--no-warnings', fixtures.path('es-modules/tla/rejected-withexitcode.mjs')], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout], [1, '']); assert.match(stderr, /Error: Xyz/); @@ -85,7 +95,7 @@ import fixtures from '../common/fixtures.js'; // Calling process.exit() in .mjs should return status 0 const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - [fixtures.path('es-modules/tla/process-exit.mjs')], + ['--no-warnings', fixtures.path('es-modules/tla/process-exit.mjs')], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout, stderr], [0, '', '']); } @@ -94,7 +104,7 @@ import fixtures from '../common/fixtures.js'; // Calling process.exit() in worker thread shouldn't influence main thread const { status, stdout, stderr } = child_process.spawnSync( process.execPath, - [fixtures.path('es-modules/tla/unresolved-with-worker-process-exit.mjs')], + ['--no-warnings', fixtures.path('es-modules/tla/unresolved-with-worker-process-exit.mjs')], { encoding: 'utf8' }); assert.deepStrictEqual([status, stdout, stderr], [13, '', '']); } diff --git a/test/es-module/test-http-imports.mjs b/test/es-module/test-http-imports.mjs index b07d1103236190..235d142d3555e3 100644 --- a/test/es-module/test-http-imports.mjs +++ b/test/es-module/test-http-imports.mjs @@ -167,7 +167,7 @@ for (const { protocol, createServer } of [ export default 1;`); await assert.rejects( import(fileDep.href), - { code: 'ERR_INVALID_URL_SCHEME' } + { code: 'ERR_NETWORK_IMPORT_DISALLOWED' } ); const builtinDep = new URL(url.href); @@ -177,7 +177,7 @@ for (const { protocol, createServer } of [ `); await assert.rejects( import(builtinDep.href), - { code: 'ERR_INVALID_URL_SCHEME' } + { code: 'ERR_NETWORK_IMPORT_DISALLOWED' } ); const unprefixedBuiltinDep = new URL(url.href); @@ -187,7 +187,7 @@ for (const { protocol, createServer } of [ `); await assert.rejects( import(unprefixedBuiltinDep.href), - { code: 'ERR_INVALID_URL_SCHEME' } + { code: 'ERR_NETWORK_IMPORT_DISALLOWED' } ); const unsupportedMIME = new URL(url.href); diff --git a/test/fixtures/crash.wasm b/test/fixtures/crash.wasm new file mode 100644 index 00000000000000..fdcc992885e505 Binary files /dev/null and b/test/fixtures/crash.wasm differ diff --git a/test/fixtures/crash.wat b/test/fixtures/crash.wat new file mode 100644 index 00000000000000..70450453869cc6 --- /dev/null +++ b/test/fixtures/crash.wat @@ -0,0 +1 @@ +(module (func (export "crash") unreachable)) diff --git a/test/fixtures/crypto/dsa.js b/test/fixtures/crypto/dsa.js deleted file mode 100644 index c88720220c5e03..00000000000000 --- a/test/fixtures/crypto/dsa.js +++ /dev/null @@ -1,93 +0,0 @@ -'use strict'; - -module.exports = function() { - const pkcs8 = Buffer.from( - '3082015b0201003082013406072a8648ce3804013082012702818100d5f35aa5730e2' + - '6166fd3ea81f8f0eeb05bd1250e164b7c76b180b6dae95096d13dee6956e15a9aea7c' + - 'f18a0df7c5dc326ccef1cbf97636d22f870b76f2607f9a867db2756aecf65505aa48f' + - 'dea5f5ee54f508a05d9dae76bf262b4ca3662cc176b7c628c7bee2076df07f9a64e04' + - '02630dfee63eaf0ed64d48b469fe1c9ac4a1021d00b14213226cfcfb59e3a0379e559' + - 'c74ff8a7383eb4c41cecb6f3732b702818100a0865b7f8954e7ae587c8e6a89e391e8' + - '2657c58f05ccd94de61748e89e217efab3d9b5fa842ebc62525966916ad2b7af422a9' + - 'b2407817a5b382b6581434fd1a169c75ad4d0e3862a3f484e9f9f2a816f943a8e6060' + - 'f26fe27c533587b765e57948439084e76fd6a4fd004f5c78d972cf7f100ec9494a902' + - '645baca4b4c6f3993041e021c600daa0a9c4cc674c98bb07956374c84ac1c33af8816' + - '3ea7e2587876', 'hex'); - - const spki = Buffer.from( - '308201c03082013406072a8648ce3804013082012702818100d5f35aa5730e26166fd' + - '3ea81f8f0eeb05bd1250e164b7c76b180b6dae95096d13dee6956e15a9aea7cf18a0d' + - 'f7c5dc326ccef1cbf97636d22f870b76f2607f9a867db2756aecf65505aa48fdea5f5' + - 'ee54f508a05d9dae76bf262b4ca3662cc176b7c628c7bee2076df07f9a64e0402630d' + - 'fee63eaf0ed64d48b469fe1c9ac4a1021d00b14213226cfcfb59e3a0379e559c74ff8' + - 'a7383eb4c41cecb6f3732b702818100a0865b7f8954e7ae587c8e6a89e391e82657c5' + - '8f05ccd94de61748e89e217efab3d9b5fa842ebc62525966916ad2b7af422a9b24078' + - '17a5b382b6581434fd1a169c75ad4d0e3862a3f484e9f9f2a816f943a8e6060f26fe2' + - '7c533587b765e57948439084e76fd6a4fd004f5c78d972cf7f100ec9494a902645bac' + - 'a4b4c6f399303818500028181009a8df69f2fe321869e2094e387bc1dc2b5f3bff2a2' + - 'e23cfba51d3c119fba6b4c15a49485fa811b6955d91d28c9e2e0445a79ddc5426b2fe' + - '44e00a6c9254c776f13fd10dbc934262077b1df72c16bc848817c61fb6a607abe60c7' + - 'd11528ab9bdf55de45495733a047bd75a48b8166f1aa3deab681a2574a4f35106f0d7' + - '8b641d7', 'hex'); - - const plaintext = Buffer.from( - '5f4dba4f320c0ce876725afce5fbd25bf83e5a7125a08cafe73c3ebac421779df9d55' + - 'd180c3ae9942645e1d82fee8c9d294b3cb1a08a9931201b3c0e81fc47cacf8315a2af' + - '66324113c3b66230c34608c4f4593634ce02b267362277f0a840ca74bc3d1a6236952' + - 'c5ed7aaf8a8fecbddfa7584e6978cea5d2a5b9fb7f1b48c8b0be58a305202754d8376' + - '107374793cf026aaee5300727d836cd71e71b345ddb2e44446ffc5b901635413890d9' + - '10ea380984a90191031323f16dbcc9d6be168b84885384ca03e12600ac1c248028af3' + - '726cc93463882ea8c02aab', 'hex'); - - const signatures = { - 'sha-1': Buffer.from( - '303d021c685192dc48fbd8c6dd80536eaf92050ca07aa85af5a25a41a93bc8ea021' + - 'd009a032a19182ceca7b202d7e0ce327fe5830a9937a37714d4c6801ae9', 'hex'), - 'sha-256': Buffer.from( - '303d021c7b660d1b2b40237d0f615877efbf2a3f51577bc42a3cb4e280c0a6a9021' + - 'd008393a01a9bcabce267dfcc6bc867d348911f6eda3db96d3078a380c1', 'hex'), - 'sha-384': Buffer.from( - '303e021d00ab84d3c306aea1c5e69e126d21dafc03ee9c7aa8fa38884de5015d510' + - '21d0099030adacdc6787dcb1dc3b05fa122ad72d4ddc281cc619565dba947', 'hex'), - 'sha-512': Buffer.from( - '303c021c069c40654607388a56d3cb827c11121d07850b3b62ed203c1d92ce7f021' + - 'c0e69f41933d0ee3b1c1b184d742f3813ee3b32d053f13fbb93ab8229', 'hex'), - } - - const vectors = [ - { - publicKeyBuffer: spki, - privateKeyBuffer: pkcs8, - algorithm: { name: 'NODE-DSA' }, - hash: 'SHA-1', - plaintext, - signature: signatures['sha-1'] - }, - { - publicKeyBuffer: spki, - privateKeyBuffer: pkcs8, - algorithm: { name: 'NODE-DSA' }, - hash: 'SHA-256', - plaintext, - signature: signatures['sha-256'] - }, - { - publicKeyBuffer: spki, - privateKeyBuffer: pkcs8, - algorithm: { name: 'NODE-DSA'}, - hash: 'SHA-384', - plaintext, - signature: signatures['sha-384'] - }, - { - publicKeyBuffer: spki, - privateKeyBuffer: pkcs8, - algorithm: { name: 'NODE-DSA' }, - hash: 'SHA-512', - plaintext, - signature: signatures['sha-512'] - } - ]; - - return vectors; -}; diff --git a/test/fixtures/crypto/eddsa.js b/test/fixtures/crypto/eddsa.js new file mode 100644 index 00000000000000..8b1a5ce1c5a45d --- /dev/null +++ b/test/fixtures/crypto/eddsa.js @@ -0,0 +1,51 @@ +'use strict'; + +module.exports = function() { + const pkcs8 = { + 'Ed25519': Buffer.from( + '302e020100300506032b657004220420f3c8f4c48df878146e8cd3bf6df4e50e389b' + + 'a7074e15c2352dcd5d308d4ca81f', 'hex'), + 'Ed448': Buffer.from( + '3047020100300506032b6571043b04390eff03458c28e0179c521de312c969b78343' + + '48ecab991a60e3b2e9a79e4cd9e480ef291712d2c83d047272d5c9f428664f696d26' + + '70458f1d2e', 'hex') + } + + const spki = { + 'Ed25519': Buffer.from( + '302a300506032b6570032100d8e18963d809d487d9549accaec6742e7eeba24d8a0d' + + '3b14b7e3caea06893dcc', 'hex'), + 'Ed448': Buffer.from( + '3043300506032b6571033a00ab4bb885fd7d2c5af24e83710cffa0c74a57e274801d' + + 'b2057b0bdc5ea032b6fe6bc78b8045365aeb26e86e1f14fd349d07c48495f5a46a5a' + + '80', 'hex') + } + + const data = Buffer.from( + '2b7ed0bc7795694ab4acd35903fe8cd7d80f6a1c8688a6c3414409457514a1457855bb' + + 'b219e30a1beea8fe869082d99fc8282f9050d024e59eaf0730ba9db70a', 'hex'); + + // For verification tests. + const signatures = { + 'Ed25519': Buffer.from( + '3d90de5e5743dfc28225bfadb341b116cbf8a3f1ceedbf4adc350ef5d3471843a418' + + '614dcb6e614862614cf7af1496f9340b3c844ea4dceab1d3d155eb7ecc00', 'hex'), + 'Ed448': Buffer.from( + '76897e8c50ac6b1132735c09c55f506c0149d2677c75664f8bc10b826fbd9df0a03c' + + 'd986bce8339e64c7d1720ea9361784dc73837765ac2980c0dac0814a8bc187d1c9c9' + + '07c5dcc07956f85b70930fe42de764177217cb2d52bab7c1debe0ca89ccecbcd63f7' + + '025a2a5a572b9d23b0642f00', 'hex') + } + + const algorithms = ['Ed25519', 'Ed448']; + + const vectors = algorithms.map((algorithm) => ({ + publicKeyBuffer: spki[algorithm], + privateKeyBuffer: pkcs8[algorithm], + name: algorithm, + data, + signature: signatures[algorithm], + })); + + return vectors; +} diff --git a/test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs b/test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs index 8790811c7e7bd6..ab113341582b42 100644 --- a/test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs +++ b/test/fixtures/es-module-loaders/builtin-named-exports-loader.mjs @@ -13,11 +13,12 @@ export function globalPreload() { `; } -export async function resolve(specifier, context, next) { - const def = await next(specifier, context); +export function resolve(specifier, context, next) { + const def = next(specifier, context); if (def.url.startsWith('node:')) { return { + shortCircuit: true, url: `custom-${def.url}`, importAssertions: context.importAssertions, }; @@ -29,6 +30,7 @@ export function load(url, context, next) { if (url.startsWith('custom-node:')) { const urlObj = new URL(url); return { + shortCircuit: true, source: generateBuiltinModule(urlObj.pathname), format: 'module', }; diff --git a/test/fixtures/es-module-loaders/example-loader.mjs b/test/fixtures/es-module-loaders/example-loader.mjs index be4808738035f9..f87054c8b70502 100644 --- a/test/fixtures/es-module-loaders/example-loader.mjs +++ b/test/fixtures/es-module-loaders/example-loader.mjs @@ -11,6 +11,7 @@ baseURL.pathname = process.cwd() + '/'; export function resolve(specifier, { parentURL = baseURL }, defaultResolve) { if (builtinModules.includes(specifier)) { return { + shortCircuit: true, url: 'node:' + specifier }; } @@ -22,6 +23,7 @@ export function resolve(specifier, { parentURL = baseURL }, defaultResolve) { } const resolved = new URL(specifier, parentURL); return { + shortCircuit: true, url: resolved.href }; } diff --git a/test/fixtures/es-module-loaders/hook-resolve-type.mjs b/test/fixtures/es-module-loaders/hook-resolve-type.mjs index 5068d6265c57b2..86e2bffe650002 100644 --- a/test/fixtures/es-module-loaders/hook-resolve-type.mjs +++ b/test/fixtures/es-module-loaders/hook-resolve-type.mjs @@ -6,8 +6,8 @@ export async function load(url, context, next) { return next(url, context, next); } -export async function resolve(specifier, context, next) { - const nextResult = await next(specifier, context); +export function resolve(specifier, context, next) { + const nextResult = next(specifier, context); const { format } = nextResult; if (format === 'module' || specifier.endsWith('.mjs')) { diff --git a/test/fixtures/es-module-loaders/hooks-custom.mjs b/test/fixtures/es-module-loaders/hooks-custom.mjs index 5173b97387905a..4c4014db01ef3f 100644 --- a/test/fixtures/es-module-loaders/hooks-custom.mjs +++ b/test/fixtures/es-module-loaders/hooks-custom.mjs @@ -29,25 +29,30 @@ export function load(url, context, next) { if (url.endsWith('esmHook/badReturnFormatVal.mjs')) return { format: Array(0), + shortCircuit: true, source: '', } if (url.endsWith('esmHook/unsupportedReturnFormatVal.mjs')) return { format: 'foo', // Not one of the allowable inputs: no translator named 'foo' + shortCircuit: true, source: '', } if (url.endsWith('esmHook/badReturnSourceVal.mjs')) return { format: 'module', + shortCircuit: true, source: Array(0), } if (url.endsWith('esmHook/preknownFormat.pre')) return { format: context.format, + shortCircuit: true, source: `const msg = 'hello world'; export default msg;` }; if (url.endsWith('esmHook/virtual.mjs')) return { format: 'module', + shortCircuit: true, source: `export const message = 'Woohoo!'.toUpperCase();`, }; @@ -63,6 +68,7 @@ export function resolve(specifier, context, next) { if (specifier.startsWith('esmHook')) return { format, + shortCircuit: true, url: pathToFileURL(specifier).href, importAssertions: context.importAssertions, }; diff --git a/test/fixtures/es-module-loaders/http-loader.mjs b/test/fixtures/es-module-loaders/http-loader.mjs new file mode 100644 index 00000000000000..f0add5d5b419f8 --- /dev/null +++ b/test/fixtures/es-module-loaders/http-loader.mjs @@ -0,0 +1,40 @@ +import { get } from 'http'; + +export function resolve(specifier, context, nextResolve) { + const { parentURL = null } = context; + + if (specifier.startsWith('http://')) { + return { + shortCircuit: true, + url: specifier, + }; + } else if (parentURL?.startsWith('http://')) { + return { + shortCircuit: true, + url: new URL(specifier, parentURL).href, + }; + } + + return nextResolve(specifier, context); +} + +export function load(url, context, nextLoad) { + if (url.startsWith('http://')) { + return new Promise((resolve, reject) => { + get(url, (rsp) => { + let data = ''; + rsp.on('data', (chunk) => data += chunk); + rsp.on('end', () => { + resolve({ + format: 'module', + shortCircuit: true, + source: data, + }); + }); + }) + .on('error', reject); + }); + } + + return nextLoad(url, context); +} diff --git a/test/fixtures/es-module-loaders/loader-invalid-format.mjs b/test/fixtures/es-module-loaders/loader-invalid-format.mjs index 0210f73b554382..1521e447c5d0d5 100644 --- a/test/fixtures/es-module-loaders/loader-invalid-format.mjs +++ b/test/fixtures/es-module-loaders/loader-invalid-format.mjs @@ -1,7 +1,8 @@ -export async function resolve(specifier, { parentURL, importAssertions }, defaultResolve) { +export function resolve(specifier, { parentURL, importAssertions }, defaultResolve) { if (parentURL && specifier === '../fixtures/es-modules/test-esm-ok.mjs') { return { - url: 'file:///asdf' + shortCircuit: true, + url: 'file:///asdf', }; } return defaultResolve(specifier, {parentURL, importAssertions}, defaultResolve); @@ -11,6 +12,7 @@ export async function load(url, context, next) { if (url === 'file:///asdf') { return { format: 'esm', + shortCircuit: true, source: '', } } diff --git a/test/fixtures/es-module-loaders/loader-invalid-url.mjs b/test/fixtures/es-module-loaders/loader-invalid-url.mjs index a7cefeca3da37a..f89d0eb23de510 100644 --- a/test/fixtures/es-module-loaders/loader-invalid-url.mjs +++ b/test/fixtures/es-module-loaders/loader-invalid-url.mjs @@ -1,9 +1,10 @@ -export async function resolve(specifier, { parentURL, importAssertions }, defaultResolve) { +export function resolve(specifier, { parentURL, importAssertions }, nextResolve) { if (parentURL && specifier === '../fixtures/es-modules/test-esm-ok.mjs') { return { + shortCircuit: true, url: specifier, importAssertions, }; } - return defaultResolve(specifier, {parentURL, importAssertions}, defaultResolve); + return nextResolve(specifier, {parentURL, importAssertions}); } diff --git a/test/fixtures/es-module-loaders/loader-load-bad-next-context.mjs b/test/fixtures/es-module-loaders/loader-load-bad-next-context.mjs new file mode 100644 index 00000000000000..fe38da04f9ff91 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-load-bad-next-context.mjs @@ -0,0 +1,3 @@ +export async function load(url, context, next) { + return next(url, []); +} diff --git a/test/fixtures/es-module-loaders/loader-load-bad-next-url.mjs b/test/fixtures/es-module-loaders/loader-load-bad-next-url.mjs new file mode 100644 index 00000000000000..4f53b695327dd1 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-load-bad-next-url.mjs @@ -0,0 +1,3 @@ +export async function load(url, context, next) { + return next([], context); +} diff --git a/test/fixtures/es-module-loaders/loader-load-foo-or-42.mjs b/test/fixtures/es-module-loaders/loader-load-foo-or-42.mjs new file mode 100644 index 00000000000000..8d408223e66a0a --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-load-foo-or-42.mjs @@ -0,0 +1,11 @@ +export async function load(url) { + const val = url.includes('42') + ? '42' + : '"foo"'; + + return { + format: 'module', + shortCircuit: true, + source: `export default ${val}`, + }; +} diff --git a/test/fixtures/es-module-loaders/loader-load-impersonating-next-url.mjs b/test/fixtures/es-module-loaders/loader-load-impersonating-next-url.mjs new file mode 100644 index 00000000000000..f98b091c8b9ff5 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-load-impersonating-next-url.mjs @@ -0,0 +1,3 @@ +export async function load(url, context, next) { + return next('not/a/url', context); +} diff --git a/test/fixtures/es-module-loaders/loader-load-incomplete.mjs b/test/fixtures/es-module-loaders/loader-load-incomplete.mjs new file mode 100644 index 00000000000000..d6242488e5738e --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-load-incomplete.mjs @@ -0,0 +1,6 @@ +export async function load() { + return { + format: 'module', + source: 'export default 42', + }; +} diff --git a/test/fixtures/es-module-loaders/loader-load-next-modified.mjs b/test/fixtures/es-module-loaders/loader-load-next-modified.mjs new file mode 100644 index 00000000000000..1f2382467f7122 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-load-next-modified.mjs @@ -0,0 +1,11 @@ +export async function load(url, context, next) { + const { + format, + source, + } = await next(url, context); + + return { + format, + source: source + 1, + }; +} diff --git a/test/fixtures/es-module-loaders/loader-load-passing-modified-context.mjs b/test/fixtures/es-module-loaders/loader-load-passing-modified-context.mjs new file mode 100644 index 00000000000000..7676be766af575 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-load-passing-modified-context.mjs @@ -0,0 +1,6 @@ +export async function load(url, context, next) { + return next(url, { + ...context, + foo: 'bar', + }); +} diff --git a/test/fixtures/es-module-loaders/loader-load-passthru.mjs b/test/fixtures/es-module-loaders/loader-load-passthru.mjs new file mode 100644 index 00000000000000..8cfbcb6a3a5d0b --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-load-passthru.mjs @@ -0,0 +1,4 @@ +export async function load(url, context, next) { + console.log('load passthru'); // This log is deliberate + return next(url, context); +} diff --git a/test/fixtures/es-module-loaders/loader-load-receiving-modified-context.mjs b/test/fixtures/es-module-loaders/loader-load-receiving-modified-context.mjs new file mode 100644 index 00000000000000..2d7bc350bd8775 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-load-receiving-modified-context.mjs @@ -0,0 +1,4 @@ +export async function load(url, context, next) { + console.log(context.foo); // This log is deliberate + return next(url, context); +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-42.mjs b/test/fixtures/es-module-loaders/loader-resolve-42.mjs new file mode 100644 index 00000000000000..23650893048835 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-42.mjs @@ -0,0 +1,6 @@ +export function resolve(specifier, context, next) { + console.log('resolve 42'); // This log is deliberate + console.log('next:', next.name); // This log is deliberate + + return next('file:///42.mjs', context); +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-async-fn.mjs b/test/fixtures/es-module-loaders/loader-resolve-async-fn.mjs new file mode 100644 index 00000000000000..6cf60d403bbfb7 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-async-fn.mjs @@ -0,0 +1,3 @@ +export async function resolve(specifier, context, next) { + return next(specifier, context); +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-bad-next-context.mjs b/test/fixtures/es-module-loaders/loader-resolve-bad-next-context.mjs new file mode 100644 index 00000000000000..1e42a6d6ddf665 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-bad-next-context.mjs @@ -0,0 +1,3 @@ +export function resolve(specifier, context, next) { + return next(specifier, []); +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-bad-next-specifier.mjs b/test/fixtures/es-module-loaders/loader-resolve-bad-next-specifier.mjs new file mode 100644 index 00000000000000..a01d40ad31f1c3 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-bad-next-specifier.mjs @@ -0,0 +1,3 @@ +export function resolve(specifier, context, next) { + return next([], context); +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-foo.mjs b/test/fixtures/es-module-loaders/loader-resolve-foo.mjs new file mode 100644 index 00000000000000..d19e9c271b293f --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-foo.mjs @@ -0,0 +1,4 @@ +export function resolve(specifier, context, next) { + console.log('resolve foo'); // This log is deliberate + return next('file:///foo.mjs', context); +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-incomplete.mjs b/test/fixtures/es-module-loaders/loader-resolve-incomplete.mjs new file mode 100644 index 00000000000000..d71dc48249c9d8 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-incomplete.mjs @@ -0,0 +1,5 @@ +export function resolve() { + return { + url: 'file:///incomplete-resolve-chain.js', + }; +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-multiple-next-calls.mjs b/test/fixtures/es-module-loaders/loader-resolve-multiple-next-calls.mjs new file mode 100644 index 00000000000000..7bbc9ea08fffcf --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-multiple-next-calls.mjs @@ -0,0 +1,9 @@ +export function resolve(specifier, context, next) { + const { url: first } = next(specifier, context); + const { url: second } = next(specifier, context); + + return { + format: 'module', + url: first, + }; +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-next-modified.mjs b/test/fixtures/es-module-loaders/loader-resolve-next-modified.mjs new file mode 100644 index 00000000000000..8b0d24016b3fe7 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-next-modified.mjs @@ -0,0 +1,11 @@ +export function resolve(url, context, next) { + const { + format, + url: nextUrl, + } = next(url, context); + + return { + format, + url: `${nextUrl}?foo`, + }; +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-passing-modified-context.mjs b/test/fixtures/es-module-loaders/loader-resolve-passing-modified-context.mjs new file mode 100644 index 00000000000000..1a8a7768ebccc7 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-passing-modified-context.mjs @@ -0,0 +1,6 @@ +export function resolve(specifier, context, next) { + return next(specifier, { + ...context, + foo: 'bar', + }); +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-passthru.mjs b/test/fixtures/es-module-loaders/loader-resolve-passthru.mjs new file mode 100644 index 00000000000000..0ce3fdf2eef941 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-passthru.mjs @@ -0,0 +1,4 @@ +export function resolve(specifier, context, next) { + console.log('resolve passthru'); // This log is deliberate + return next(specifier, context); +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-receiving-modified-context.mjs b/test/fixtures/es-module-loaders/loader-resolve-receiving-modified-context.mjs new file mode 100644 index 00000000000000..cf651eb57d2ac7 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-receiving-modified-context.mjs @@ -0,0 +1,4 @@ +export function resolve(specifier, context, next) { + console.log(context.foo); // This log is deliberate + return next(specifier, context); +} diff --git a/test/fixtures/es-module-loaders/loader-resolve-shortcircuit.mjs b/test/fixtures/es-module-loaders/loader-resolve-shortcircuit.mjs new file mode 100644 index 00000000000000..ff0346a34c2e37 --- /dev/null +++ b/test/fixtures/es-module-loaders/loader-resolve-shortcircuit.mjs @@ -0,0 +1,6 @@ +export function resolve(specifier) { + return { + shortCircuit: true, + url: specifier, + } +} diff --git a/test/fixtures/es-module-loaders/loader-shared-dep.mjs b/test/fixtures/es-module-loaders/loader-shared-dep.mjs index 387575794c00dc..4a893686302bfb 100644 --- a/test/fixtures/es-module-loaders/loader-shared-dep.mjs +++ b/test/fixtures/es-module-loaders/loader-shared-dep.mjs @@ -5,7 +5,7 @@ import { createRequire } from '../../common/index.mjs'; const require = createRequire(import.meta.url); const dep = require('./loader-dep.js'); -export function resolve(specifier, { parentURL, importAssertions }, defaultResolve) { +export function resolve(specifier, { parentURL, importAssertions }, nextResolve) { assert.strictEqual(dep.format, 'module'); - return defaultResolve(specifier, { parentURL, importAssertions }, defaultResolve); + return nextResolve(specifier, { parentURL, importAssertions }); } diff --git a/test/fixtures/es-module-loaders/loader-with-custom-condition.mjs b/test/fixtures/es-module-loaders/loader-with-custom-condition.mjs index 3aefed51d57d3e..e8d1c638b26eff 100644 --- a/test/fixtures/es-module-loaders/loader-with-custom-condition.mjs +++ b/test/fixtures/es-module-loaders/loader-with-custom-condition.mjs @@ -1,6 +1,6 @@ import { ok, deepStrictEqual } from 'assert'; -export async function resolve(specifier, context, defaultResolve) { +export function resolve(specifier, context, nextResolve) { ok(Array.isArray(context.conditions), 'loader receives conditions array'); deepStrictEqual([...context.conditions].sort(), [ @@ -9,7 +9,7 @@ export async function resolve(specifier, context, defaultResolve) { 'node-addons', ]); - return defaultResolve(specifier, { + return nextResolve(specifier, { ...context, conditions: ['custom-condition', ...context.conditions], }); diff --git a/test/fixtures/es-module-loaders/loader-with-dep.mjs b/test/fixtures/es-module-loaders/loader-with-dep.mjs index 1b5fd6c3c1642a..8a0d57e907b2ae 100644 --- a/test/fixtures/es-module-loaders/loader-with-dep.mjs +++ b/test/fixtures/es-module-loaders/loader-with-dep.mjs @@ -3,9 +3,9 @@ import {createRequire} from '../../common/index.mjs'; const require = createRequire(import.meta.url); const dep = require('./loader-dep.js'); -export async function resolve(specifier, { parentURL, importAssertions }, defaultResolve) { +export function resolve(specifier, { parentURL, importAssertions }, nextResolve) { return { - url: (await defaultResolve(specifier, { parentURL, importAssertions }, defaultResolve)).url, + url: (nextResolve(specifier, { parentURL, importAssertions })).url, format: dep.format }; } diff --git a/test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs b/test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs index ec15eb0bb8fc24..b0e41dd3e5f433 100644 --- a/test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs +++ b/test/fixtures/es-module-loaders/missing-dynamic-instantiate-hook.mjs @@ -1,10 +1,10 @@ -export function resolve(specifier, { parentURL }, defaultResolve) { +export function resolve(specifier, { parentURL }, nextResolve) { if (specifier === 'test') { return { url: 'file://' }; } - return defaultResolve(specifier, {parentURL}, defaultResolve); + return nextResolve(specifier, {parentURL}); } export function getFormat(url, context, defaultGetFormat) { diff --git a/test/fixtures/es-module-loaders/mock-loader.mjs b/test/fixtures/es-module-loaders/mock-loader.mjs index 7c4592aca96834..f0b1fdf9103c92 100644 --- a/test/fixtures/es-module-loaders/mock-loader.mjs +++ b/test/fixtures/es-module-loaders/mock-loader.mjs @@ -168,22 +168,25 @@ export function globalPreload({port}) { // Rewrites node: loading to mock-facade: so that it can be intercepted -export async function resolve(specifier, context, defaultResolve) { +export function resolve(specifier, context, nextResolve) { if (specifier === 'node:mock') { return { + shortCircuit: true, url: specifier }; } doDrainPort(); - const def = await defaultResolve(specifier, context); + const def = nextResolve(specifier, context); if (context.parentURL?.startsWith('mock-facade:')) { // Do nothing, let it get the "real" module } else if (mockedModuleExports.has(def.url)) { return { + shortCircuit: true, url: `mock-facade:${currentMockVersion}:${encodeURIComponent(def.url)}` }; }; return { + shortCircuit: true, url: def.url, }; } @@ -196,6 +199,7 @@ export async function load(url, context, defaultLoad) { * channel with preloadCode */ return { + shortCircuit: true, source: 'export default import.meta.doMock', format: 'module' }; @@ -210,6 +214,7 @@ export async function load(url, context, defaultLoad) { decodeURIComponent(encodedTargetURL) )); return { + shortCircuit: true, source: ret, format: 'module' }; diff --git a/test/fixtures/es-module-loaders/not-found-assert-loader.mjs b/test/fixtures/es-module-loaders/not-found-assert-loader.mjs index 5213ddedb34e8d..611354fadc3aba 100644 --- a/test/fixtures/es-module-loaders/not-found-assert-loader.mjs +++ b/test/fixtures/es-module-loaders/not-found-assert-loader.mjs @@ -3,13 +3,13 @@ import assert from 'assert'; // a loader that asserts that the defaultResolve will throw "not found" // (skipping the top-level main of course) let mainLoad = true; -export async function resolve(specifier, { parentURL, importAssertions }, defaultResolve) { +export function resolve(specifier, { parentURL, importAssertions }, nextResolve) { if (mainLoad) { mainLoad = false; - return defaultResolve(specifier, {parentURL, importAssertions}, defaultResolve); + return nextResolve(specifier, {parentURL, importAssertions}); } try { - await defaultResolve(specifier, {parentURL, importAssertions}, defaultResolve); + nextResolve(specifier, {parentURL, importAssertions}); } catch (e) { assert.strictEqual(e.code, 'ERR_MODULE_NOT_FOUND'); diff --git a/test/fixtures/es-module-loaders/string-sources.mjs b/test/fixtures/es-module-loaders/string-sources.mjs index 384098d6d9e822..1fc2b7a8d6f7e3 100644 --- a/test/fixtures/es-module-loaders/string-sources.mjs +++ b/test/fixtures/es-module-loaders/string-sources.mjs @@ -22,7 +22,11 @@ const SOURCES = { } export function resolve(specifier, context, next) { if (specifier.startsWith('test:')) { - return { url: specifier, importAssertions: context.importAssertions }; + return { + importAssertions: context.importAssertions, + shortCircuit: true, + url: specifier, + }; } return next(specifier, context); } @@ -31,6 +35,7 @@ export function load(href, context, next) { if (href.startsWith('test:')) { return { format: 'module', + shortCircuit: true, source: SOURCES[href], }; } diff --git a/test/fixtures/es-module-loaders/thenable-load-hook-rejected-no-arguments.mjs b/test/fixtures/es-module-loaders/thenable-load-hook-rejected-no-arguments.mjs new file mode 100644 index 00000000000000..5e008edecf7cf3 --- /dev/null +++ b/test/fixtures/es-module-loaders/thenable-load-hook-rejected-no-arguments.mjs @@ -0,0 +1,10 @@ +export function load () { + let thenAlreadyAccessed = false; + return { + get then() { + if (thenAlreadyAccessed) throw new Error('must not call'); + thenAlreadyAccessed = true; + return (_, reject) => reject(); + } + }; +} diff --git a/test/fixtures/es-module-loaders/thenable-load-hook-rejected.mjs b/test/fixtures/es-module-loaders/thenable-load-hook-rejected.mjs new file mode 100644 index 00000000000000..926f6d0bebd653 --- /dev/null +++ b/test/fixtures/es-module-loaders/thenable-load-hook-rejected.mjs @@ -0,0 +1,10 @@ +export function load () { + let thenAlreadyAccessed = false; + return { + get then() { + if (thenAlreadyAccessed) throw new Error('must not call'); + thenAlreadyAccessed = true; + return (_, reject) => reject(new Error('must crash the process')); + } + }; +} diff --git a/test/fixtures/es-module-loaders/thenable-load-hook.mjs b/test/fixtures/es-module-loaders/thenable-load-hook.mjs new file mode 100644 index 00000000000000..661f6e21ac69d3 --- /dev/null +++ b/test/fixtures/es-module-loaders/thenable-load-hook.mjs @@ -0,0 +1,10 @@ +export function load(url, context, next) { + let thenAlreadyAccessed = false; + return { + get then() { + if (thenAlreadyAccessed) throw new Error('must not call'); + thenAlreadyAccessed = true; + return (resolve) => resolve(next(url, context)); + } + }; +} diff --git a/test/fixtures/openssl_fips_disabled.cnf b/test/fixtures/openssl_fips_disabled.cnf index 8668370fac52f7..253c6906e3f3a3 100644 --- a/test/fixtures/openssl_fips_disabled.cnf +++ b/test/fixtures/openssl_fips_disabled.cnf @@ -1,6 +1,6 @@ # Skeleton openssl.cnf for testing with FIPS -openssl_conf = openssl_conf_section +nodejs_conf = openssl_conf_section authorityKeyIdentifier=keyid:always,issuer:always [openssl_conf_section] diff --git a/test/fixtures/openssl_fips_enabled.cnf b/test/fixtures/openssl_fips_enabled.cnf index 9c1a90f5087727..79733c657a96d0 100644 --- a/test/fixtures/openssl_fips_enabled.cnf +++ b/test/fixtures/openssl_fips_enabled.cnf @@ -1,6 +1,6 @@ # Skeleton openssl.cnf for testing with FIPS -openssl_conf = openssl_conf_section +nodejs_conf = openssl_conf_section authorityKeyIdentifier=keyid:always,issuer:always [openssl_conf_section] diff --git a/test/fixtures/package-main-enoent/test.js b/test/fixtures/package-main-enoent/test.js index d698085e5dd554..5d75076b6af0f5 100644 --- a/test/fixtures/package-main-enoent/test.js +++ b/test/fixtures/package-main-enoent/test.js @@ -3,6 +3,6 @@ // The path in "main" in "package.json" does not exist here, but it does in // the copy in node_modules. This is being tested because bluebird tests depend // on this behavior and it was accidentally broken by a seemingly unrelated -// commit on master. +// commit on the main branch. require('package-main-enoent'); diff --git a/test/fixtures/snapshot/v8-startup-snapshot-api.js b/test/fixtures/snapshot/v8-startup-snapshot-api.js new file mode 100644 index 00000000000000..f41f519755f45e --- /dev/null +++ b/test/fixtures/snapshot/v8-startup-snapshot-api.js @@ -0,0 +1,32 @@ +'use strict'; + +const fs = require('fs'); +const zlib = require('zlib'); +const path = require('path'); +const assert = require('assert'); + +const { + isBuildingSnapshot, + addSerializeCallback, + addDeserializeCallback, + setDeserializeMainFunction +} = require('v8').startupSnapshot; + +const filePath = path.resolve(__dirname, '../x1024.txt'); +const storage = {}; + +assert(isBuildingSnapshot()); + +addSerializeCallback(({ filePath }) => { + console.error('serializing', filePath); + storage[filePath] = zlib.gzipSync(fs.readFileSync(filePath)); +}, { filePath }); + +addDeserializeCallback(({ filePath }) => { + console.error('deserializing', filePath); + storage[filePath] = zlib.gunzipSync(storage[filePath]); +}, { filePath }); + +setDeserializeMainFunction(({ filePath }) => { + console.log(storage[filePath].toString()); +}, { filePath }); diff --git a/test/fixtures/test-runner/index.js b/test/fixtures/test-runner/index.js new file mode 100644 index 00000000000000..fcf4b4d8eaa0ad --- /dev/null +++ b/test/fixtures/test-runner/index.js @@ -0,0 +1,2 @@ +'use strict'; +throw new Error('thrown from index.js'); diff --git a/test/fixtures/test-runner/index.test.js b/test/fixtures/test-runner/index.test.js new file mode 100644 index 00000000000000..2a722c504b9fa5 --- /dev/null +++ b/test/fixtures/test-runner/index.test.js @@ -0,0 +1,4 @@ +'use strict'; +const test = require('node:test'); + +test('this should pass'); diff --git a/test/fixtures/test-runner/node_modules/test-nm.js b/test/fixtures/test-runner/node_modules/test-nm.js new file mode 100644 index 00000000000000..30024eab1f17e4 --- /dev/null +++ b/test/fixtures/test-runner/node_modules/test-nm.js @@ -0,0 +1,2 @@ +'use strict'; +throw new Error('thrown from node_modules'); diff --git a/test/fixtures/test-runner/random.test.mjs b/test/fixtures/test-runner/random.test.mjs new file mode 100644 index 00000000000000..a87a671d006ab6 --- /dev/null +++ b/test/fixtures/test-runner/random.test.mjs @@ -0,0 +1,5 @@ +import test from 'node:test'; + +test('this should fail', () => { + throw new Error('this is a failing test'); +}); diff --git a/test/fixtures/test-runner/subdir/subdir_test.js b/test/fixtures/test-runner/subdir/subdir_test.js new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/test/fixtures/test-runner/test/random.cjs b/test/fixtures/test-runner/test/random.cjs new file mode 100644 index 00000000000000..2a722c504b9fa5 --- /dev/null +++ b/test/fixtures/test-runner/test/random.cjs @@ -0,0 +1,4 @@ +'use strict'; +const test = require('node:test'); + +test('this should pass'); diff --git a/test/fixtures/wpt/README.md b/test/fixtures/wpt/README.md index f5d946eff1123b..927a8a6f80fb58 100644 --- a/test/fixtures/wpt/README.md +++ b/test/fixtures/wpt/README.md @@ -26,6 +26,8 @@ Last update: - streams: https://github.com/web-platform-tests/wpt/tree/8f60d94439/streams - url: https://github.com/web-platform-tests/wpt/tree/77d54aa9e0/url - user-timing: https://github.com/web-platform-tests/wpt/tree/df24fb604e/user-timing +- wasm/jsapi: https://github.com/web-platform-tests/wpt/tree/1dd414c796/wasm/jsapi +- wasm/webapi: https://github.com/web-platform-tests/wpt/tree/fd1b23eeaa/wasm/webapi - WebCryptoAPI: https://github.com/web-platform-tests/wpt/tree/cdd0f03df4/WebCryptoAPI - webidl/ecmascript-binding/es-exceptions: https://github.com/web-platform-tests/wpt/tree/a370aad338/webidl/ecmascript-binding/es-exceptions diff --git a/test/fixtures/wpt/versions.json b/test/fixtures/wpt/versions.json index 9f81c28c198c48..bde6cf862f6358 100644 --- a/test/fixtures/wpt/versions.json +++ b/test/fixtures/wpt/versions.json @@ -63,6 +63,14 @@ "commit": "df24fb604e2d40528ac1d1b5dd970e32fc5c2978", "path": "user-timing" }, + "wasm/jsapi": { + "commit": "1dd414c79616489ea021c800eb0375a709e8114e", + "path": "wasm/jsapi" + }, + "wasm/webapi": { + "commit": "fd1b23eeaaf9a01555d4fa29cf79ed11a4c44a50", + "path": "wasm/webapi" + }, "WebCryptoAPI": { "commit": "cdd0f03df41b222aed098fbbb11c6a3cc500a86b", "path": "WebCryptoAPI" diff --git a/test/fixtures/wpt/wasm/jsapi/META.yml b/test/fixtures/wpt/wasm/jsapi/META.yml new file mode 100644 index 00000000000000..cf5525ae1157f7 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/META.yml @@ -0,0 +1 @@ +spec: https://webassembly.github.io/spec/js-api/ diff --git a/test/fixtures/wpt/wasm/jsapi/assertions.js b/test/fixtures/wpt/wasm/jsapi/assertions.js new file mode 100644 index 00000000000000..162f5a9a6b8dcc --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/assertions.js @@ -0,0 +1,100 @@ +function assert_function_name(fn, name, description) { + const propdesc = Object.getOwnPropertyDescriptor(fn, "name"); + assert_equals(typeof propdesc, "object", `${description} should have name property`); + assert_false(propdesc.writable, "writable", `${description} name should not be writable`); + assert_false(propdesc.enumerable, "enumerable", `${description} name should not be enumerable`); + assert_true(propdesc.configurable, "configurable", `${description} name should be configurable`); + assert_equals(propdesc.value, name, `${description} name should be ${name}`); +} + +function assert_function_length(fn, length, description) { + const propdesc = Object.getOwnPropertyDescriptor(fn, "length"); + assert_equals(typeof propdesc, "object", `${description} should have length property`); + assert_false(propdesc.writable, "writable", `${description} length should not be writable`); + assert_false(propdesc.enumerable, "enumerable", `${description} length should not be enumerable`); + assert_true(propdesc.configurable, "configurable", `${description} length should be configurable`); + assert_equals(propdesc.value, length, `${description} length should be ${length}`); +} + +function assert_exported_function(fn, { name, length }, description) { + if (WebAssembly.Function === undefined) { + assert_equals(Object.getPrototypeOf(fn), Function.prototype, + `${description}: prototype`); + } else { + assert_equals(Object.getPrototypeOf(fn), WebAssembly.Function.prototype, + `${description}: prototype`); + } + + assert_function_name(fn, name, description); + assert_function_length(fn, length, description); +} + +function assert_Instance(instance, expected_exports) { + assert_equals(Object.getPrototypeOf(instance), WebAssembly.Instance.prototype, + "prototype"); + assert_true(Object.isExtensible(instance), "extensible"); + + assert_equals(instance.exports, instance.exports, "exports should be idempotent"); + const exports = instance.exports; + + assert_equals(Object.getPrototypeOf(exports), null, "exports prototype"); + assert_false(Object.isExtensible(exports), "extensible exports"); + assert_array_equals(Object.keys(exports), Object.keys(expected_exports), "matching export keys"); + for (const [key, expected] of Object.entries(expected_exports)) { + const property = Object.getOwnPropertyDescriptor(exports, key); + assert_equals(typeof property, "object", `${key} should be present`); + assert_false(property.writable, `${key}: writable`); + assert_true(property.enumerable, `${key}: enumerable`); + assert_false(property.configurable, `${key}: configurable`); + const actual = property.value; + assert_true(Object.isExtensible(actual), `${key}: extensible`); + + switch (expected.kind) { + case "function": + assert_exported_function(actual, expected, `value of ${key}`); + break; + case "global": + assert_equals(Object.getPrototypeOf(actual), WebAssembly.Global.prototype, + `value of ${key}: prototype`); + assert_equals(actual.value, expected.value, `value of ${key}: value`); + assert_equals(actual.valueOf(), expected.value, `value of ${key}: valueOf()`); + break; + case "memory": + assert_equals(Object.getPrototypeOf(actual), WebAssembly.Memory.prototype, + `value of ${key}: prototype`); + assert_equals(Object.getPrototypeOf(actual.buffer), ArrayBuffer.prototype, + `value of ${key}: prototype of buffer`); + assert_equals(actual.buffer.byteLength, 0x10000 * expected.size, `value of ${key}: size of buffer`); + const array = new Uint8Array(actual.buffer); + assert_equals(array[0], 0, `value of ${key}: first element of buffer`); + assert_equals(array[array.byteLength - 1], 0, `value of ${key}: last element of buffer`); + break; + case "table": + assert_equals(Object.getPrototypeOf(actual), WebAssembly.Table.prototype, + `value of ${key}: prototype`); + assert_equals(actual.length, expected.length, `value of ${key}: length of table`); + break; + } + } +} + +function assert_WebAssemblyInstantiatedSource(actual, expected_exports={}) { + assert_equals(Object.getPrototypeOf(actual), Object.prototype, + "Prototype"); + assert_true(Object.isExtensible(actual), "Extensibility"); + + const module = Object.getOwnPropertyDescriptor(actual, "module"); + assert_equals(typeof module, "object", "module: type of descriptor"); + assert_true(module.writable, "module: writable"); + assert_true(module.enumerable, "module: enumerable"); + assert_true(module.configurable, "module: configurable"); + assert_equals(Object.getPrototypeOf(module.value), WebAssembly.Module.prototype, + "module: prototype"); + + const instance = Object.getOwnPropertyDescriptor(actual, "instance"); + assert_equals(typeof instance, "object", "instance: type of descriptor"); + assert_true(instance.writable, "instance: writable"); + assert_true(instance.enumerable, "instance: enumerable"); + assert_true(instance.configurable, "instance: configurable"); + assert_Instance(instance.value, expected_exports); +} diff --git a/test/fixtures/wpt/wasm/jsapi/bad-imports.js b/test/fixtures/wpt/wasm/jsapi/bad-imports.js new file mode 100644 index 00000000000000..786fc650e326b6 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/bad-imports.js @@ -0,0 +1,185 @@ +/** + * `t` should be a function that takes at least three arguments: + * + * - the name of the test; + * - the expected error (to be passed to `assert_throws_js`); + * - a function that takes a `WasmModuleBuilder` and initializes it; + * - (optionally) an options object. + * + * The function is expected to create a test that checks if instantiating a + * module with the result of the `WasmModuleBuilder` and the options object + * (if any) yields the correct error. + */ +function test_bad_imports(t) { + function value_type(type) { + switch (type) { + case "i32": return kWasmI32; + case "i64": return kWasmI64; + case "f32": return kWasmF32; + case "f64": return kWasmF64; + default: throw new TypeError(`Unexpected type ${type}`); + } + } + + for (const value of [null, true, "", Symbol(), 1, 0.1, NaN]) { + t(`Non-object imports argument: ${format_value(value)}`, + TypeError, + builder => {}, + value); + } + + for (const value of [undefined, null, true, "", Symbol(), 1, 0.1, NaN]) { + const imports = { + "module": value, + }; + t(`Non-object module: ${format_value(value)}`, + TypeError, + builder => { + builder.addImport("module", "fn", kSig_v_v); + }, + imports); + } + + t(`Missing imports argument`, + TypeError, + builder => { + builder.addImport("module", "fn", kSig_v_v); + }); + + for (const [value, name] of [[undefined, "undefined"], [{}, "empty object"], [{ "module\0": null }, "wrong property"]]) { + t(`Imports argument with missing property: ${name}`, + TypeError, + builder => { + builder.addImport("module", "fn", kSig_v_v); + }, + value); + } + + for (const value of [undefined, null, true, "", Symbol(), 1, 0.1, NaN, {}]) { + t(`Importing a function with an incorrectly-typed value: ${format_value(value)}`, + WebAssembly.LinkError, + builder => { + builder.addImport("module", "fn", kSig_v_v); + }, + { + "module": { + "fn": value, + }, + }); + } + + const nonGlobals = [ + [undefined], + [null], + [true], + [""], + [Symbol()], + [{}, "plain object"], + [WebAssembly.Global, "WebAssembly.Global"], + [WebAssembly.Global.prototype, "WebAssembly.Global.prototype"], + [Object.create(WebAssembly.Global.prototype), "Object.create(WebAssembly.Global.prototype)"], + ]; + + for (const type of ["i32", "i64", "f32", "f64"]) { + const extendedNonGlobals = nonGlobals.concat([ + type === "i64" ? [0, "Number"] : [0n, "BigInt"], + [new WebAssembly.Global({value: type === "f32" ? "f64" : "f32"}), "WebAssembly.Global object (wrong value type)"], + ]); + for (const [value, name = format_value(value)] of extendedNonGlobals) { + t(`Importing an ${type} global with an incorrectly-typed value: ${name}`, + WebAssembly.LinkError, + builder => { + builder.addImportedGlobal("module", "global", value_type(type)); + }, + { + "module": { + "global": value, + }, + }); + } + } + + for (const type of ["i32", "i64", "f32", "f64"]) { + const value = type === "i64" ? 0n : 0; + t(`Importing an ${type} mutable global with a primitive value`, + WebAssembly.LinkError, + builder => { + builder.addImportedGlobal("module", "global", value_type(type), true); + }, + { + "module": { + "global": value, + }, + }); + + const global = new WebAssembly.Global({ "value": type }, value); + t(`Importing an ${type} mutable global with an immutable Global object`, + WebAssembly.LinkError, + builder => { + builder.addImportedGlobal("module", "global", value_type(type), true); + }, + { + "module": { + "global": global, + }, + }); + } + + const nonMemories = [ + [undefined], + [null], + [true], + [""], + [Symbol()], + [1], + [0.1], + [NaN], + [{}, "plain object"], + [WebAssembly.Memory, "WebAssembly.Memory"], + [WebAssembly.Memory.prototype, "WebAssembly.Memory.prototype"], + [Object.create(WebAssembly.Memory.prototype), "Object.create(WebAssembly.Memory.prototype)"], + [new WebAssembly.Memory({"initial": 256}), "WebAssembly.Memory object (too large)"], + ]; + + for (const [value, name = format_value(value)] of nonMemories) { + t(`Importing memory with an incorrectly-typed value: ${name}`, + WebAssembly.LinkError, + builder => { + builder.addImportedMemory("module", "memory", 0, 128); + }, + { + "module": { + "memory": value, + }, + }); + } + + const nonTables = [ + [undefined], + [null], + [true], + [""], + [Symbol()], + [1], + [0.1], + [NaN], + [{}, "plain object"], + [WebAssembly.Table, "WebAssembly.Table"], + [WebAssembly.Table.prototype, "WebAssembly.Table.prototype"], + [Object.create(WebAssembly.Table.prototype), "Object.create(WebAssembly.Table.prototype)"], + [new WebAssembly.Table({"element": "anyfunc", "initial": 256}), "WebAssembly.Table object (too large)"], + ]; + + for (const [value, name = format_value(value)] of nonTables) { + t(`Importing table with an incorrectly-typed value: ${name}`, + WebAssembly.LinkError, + builder => { + builder.addImportedTable("module", "table", 0, 128); + }, + { + "module": { + "table": value, + }, + }); + } +} diff --git a/test/fixtures/wpt/wasm/jsapi/constructor/compile.any.js b/test/fixtures/wpt/wasm/jsapi/constructor/compile.any.js new file mode 100644 index 00000000000000..e94ce11717369f --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/constructor/compile.any.js @@ -0,0 +1,85 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +function assert_Module(module) { + assert_equals(Object.getPrototypeOf(module), WebAssembly.Module.prototype, + "Prototype"); + assert_true(Object.isExtensible(module), "Extensibility"); +} + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +promise_test(t => { + return promise_rejects_js(t, TypeError, WebAssembly.compile()); +}, "Missing argument"); + +promise_test(t => { + const invalidArguments = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + ArrayBuffer, + ArrayBuffer.prototype, + Array.from(emptyModuleBinary), + ]; + return Promise.all(invalidArguments.map(argument => { + return promise_rejects_js(t, TypeError, WebAssembly.compile(argument), + `compile(${format_value(argument)})`); + })); +}, "Invalid arguments"); + +promise_test(() => { + const fn = WebAssembly.compile; + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly, + ]; + return Promise.all(thisValues.map(thisValue => { + return fn.call(thisValue, emptyModuleBinary).then(assert_Module); + })); +}, "Branding"); + +test(() => { + const promise = WebAssembly.compile(emptyModuleBinary); + assert_equals(Object.getPrototypeOf(promise), Promise.prototype, "prototype"); + assert_true(Object.isExtensible(promise), "extensibility"); +}, "Promise type"); + +promise_test(t => { + const buffer = new Uint8Array(); + return promise_rejects_js(t, WebAssembly.CompileError, WebAssembly.compile(buffer)); +}, "Empty buffer"); + +promise_test(t => { + const buffer = new Uint8Array(Array.from(emptyModuleBinary).concat([0, 0])); + return promise_rejects_js(t, WebAssembly.CompileError, WebAssembly.compile(buffer)); +}, "Invalid code"); + +promise_test(() => { + return WebAssembly.compile(emptyModuleBinary).then(assert_Module); +}, "Result type"); + +promise_test(() => { + return WebAssembly.compile(emptyModuleBinary, {}).then(assert_Module); +}, "Stray argument"); + +promise_test(() => { + const buffer = new WasmModuleBuilder().toBuffer(); + assert_equals(buffer[0], 0); + const promise = WebAssembly.compile(buffer); + buffer[0] = 1; + return promise.then(assert_Module); +}, "Changing the buffer"); diff --git a/test/fixtures/wpt/wasm/jsapi/constructor/instantiate-bad-imports.any.js b/test/fixtures/wpt/wasm/jsapi/constructor/instantiate-bad-imports.any.js new file mode 100644 index 00000000000000..30252bd6eeb3ab --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/constructor/instantiate-bad-imports.any.js @@ -0,0 +1,22 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=/wasm/jsapi/bad-imports.js + +test_bad_imports((name, error, build, ...arguments) => { + promise_test(t => { + const builder = new WasmModuleBuilder(); + build(builder); + const buffer = builder.toBuffer(); + const module = new WebAssembly.Module(buffer); + return promise_rejects_js(t, error, WebAssembly.instantiate(module, ...arguments)); + }, `WebAssembly.instantiate(module): ${name}`); +}); + +test_bad_imports((name, error, build, ...arguments) => { + promise_test(t => { + const builder = new WasmModuleBuilder(); + build(builder); + const buffer = builder.toBuffer(); + return promise_rejects_js(t, error, WebAssembly.instantiate(buffer, ...arguments)); + }, `WebAssembly.instantiate(buffer): ${name}`); +}); diff --git a/test/fixtures/wpt/wasm/jsapi/constructor/instantiate.any.js b/test/fixtures/wpt/wasm/jsapi/constructor/instantiate.any.js new file mode 100644 index 00000000000000..8152f3a56f3f43 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/constructor/instantiate.any.js @@ -0,0 +1,152 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=/wasm/jsapi/assertions.js +// META: script=/wasm/jsapi/instanceTestFactory.js + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +promise_test(t => { + return promise_rejects_js(t, TypeError, WebAssembly.instantiate()); +}, "Missing arguments"); + +promise_test(() => { + const fn = WebAssembly.instantiate; + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly, + ]; + return Promise.all(thisValues.map(thisValue => { + return fn.call(thisValue, emptyModuleBinary).then(assert_WebAssemblyInstantiatedSource); + })); +}, "Branding"); + +promise_test(t => { + const invalidArguments = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Module, + WebAssembly.Module.prototype, + ArrayBuffer, + ArrayBuffer.prototype, + Array.from(emptyModuleBinary), + ]; + return Promise.all(invalidArguments.map(argument => { + return promise_rejects_js(t, TypeError, WebAssembly.instantiate(argument), + `instantiate(${format_value(argument)})`); + })); +}, "Invalid arguments"); + +test(() => { + const promise = WebAssembly.instantiate(emptyModuleBinary); + assert_equals(Object.getPrototypeOf(promise), Promise.prototype, "prototype"); + assert_true(Object.isExtensible(promise), "extensibility"); +}, "Promise type"); + +for (const [name, fn] of instanceTestFactory) { + promise_test(() => { + const { buffer, args, exports, verify } = fn(); + return WebAssembly.instantiate(buffer, ...args).then(result => { + assert_WebAssemblyInstantiatedSource(result, exports); + verify(result.instance); + }); + }, `${name}: BufferSource argument`); + + promise_test(() => { + const { buffer, args, exports, verify } = fn(); + const module = new WebAssembly.Module(buffer); + return WebAssembly.instantiate(module, ...args).then(instance => { + assert_Instance(instance, exports); + verify(instance); + }); + }, `${name}: Module argument`); +} + +promise_test(() => { + const builder = new WasmModuleBuilder(); + builder.addImportedGlobal("module", "global", kWasmI32); + const buffer = builder.toBuffer(); + const order = []; + + const imports = { + get module() { + order.push("module getter"); + return { + get global() { + order.push("global getter"); + return 0; + }, + } + }, + }; + + const expected = [ + "module getter", + "global getter", + ]; + const p = WebAssembly.instantiate(buffer, imports); + assert_array_equals(order, []); + return p.then(result => { + assert_WebAssemblyInstantiatedSource(result); + assert_array_equals(order, expected); + }); +}, "Synchronous options handling: Buffer argument"); + +promise_test(() => { + const builder = new WasmModuleBuilder(); + builder.addImportedGlobal("module", "global", kWasmI32); + const buffer = builder.toBuffer(); + const module = new WebAssembly.Module(buffer); + const order = []; + + const imports = { + get module() { + order.push("module getter"); + return { + get global() { + order.push("global getter"); + return 0; + }, + } + }, + }; + + const expected = [ + "module getter", + "global getter", + ]; + const p = WebAssembly.instantiate(module, imports); + assert_array_equals(order, expected); + return p.then(instance => assert_Instance(instance, {})); +}, "Synchronous options handling: Module argument"); + +promise_test(t => { + const buffer = new Uint8Array(); + return promise_rejects_js(t, WebAssembly.CompileError, WebAssembly.instantiate(buffer)); +}, "Empty buffer"); + +promise_test(t => { + const buffer = new Uint8Array(Array.from(emptyModuleBinary).concat([0, 0])); + return promise_rejects_js(t, WebAssembly.CompileError, WebAssembly.instantiate(buffer)); +}, "Invalid code"); + +promise_test(() => { + const buffer = new WasmModuleBuilder().toBuffer(); + assert_equals(buffer[0], 0); + const promise = WebAssembly.instantiate(buffer); + buffer[0] = 1; + return promise.then(assert_WebAssemblyInstantiatedSource); +}, "Changing the buffer"); diff --git a/test/fixtures/wpt/wasm/jsapi/constructor/multi-value.any.js b/test/fixtures/wpt/wasm/jsapi/constructor/multi-value.any.js new file mode 100644 index 00000000000000..4b06d1da3c49b9 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/constructor/multi-value.any.js @@ -0,0 +1,149 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=/wasm/jsapi/assertions.js + +const type_if_fi = makeSig([kWasmF64, kWasmI32], [kWasmI32, kWasmF64]); + +promise_test(async () => { + const builder = new WasmModuleBuilder(); + + builder + .addFunction("swap", type_if_fi) + .addBody([ + kExprLocalGet, 1, + kExprLocalGet, 0, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const result = await WebAssembly.instantiate(buffer); + const swapped = result.instance.exports.swap(4.2, 7); + assert_true(Array.isArray(swapped)); + assert_equals(Object.getPrototypeOf(swapped), Array.prototype); + assert_array_equals(swapped, [7, 4.2]); +}, "multiple return values from wasm to js"); + +promise_test(async () => { + const builder = new WasmModuleBuilder(); + + const swap = builder + .addFunction("swap", type_if_fi) + .addBody([ + kExprLocalGet, 1, + kExprLocalGet, 0, + kExprReturn, + ]); + builder + .addFunction("callswap", kSig_i_v) + .addBody([ + ...wasmF64Const(4.2), + ...wasmI32Const(7), + kExprCallFunction, swap.index, + kExprDrop, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const result = await WebAssembly.instantiate(buffer); + const swapped = result.instance.exports.callswap(); + assert_equals(swapped, 7); +}, "multiple return values inside wasm"); + +promise_test(async () => { + const builder = new WasmModuleBuilder(); + + const fnIndex = builder.addImport("module", "fn", type_if_fi); + builder + .addFunction("callfn", kSig_i_v) + .addBody([ + ...wasmF64Const(4.2), + ...wasmI32Const(7), + kExprCallFunction, fnIndex, + kExprDrop, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const actual = []; + const imports = { + "module": { + fn(f32, i32) { + assert_equals(f32, 4.2); + assert_equals(i32, 7); + const result = [2, 7.3]; + let i = 0; + return { + get [Symbol.iterator]() { + actual.push("@@iterator getter"); + return function iterator() { + actual.push("@@iterator call"); + return { + get next() { + actual.push("next getter"); + return function next(...args) { + assert_array_equals(args, []); + let j = ++i; + actual.push(`next call ${j}`); + if (j > result.length) { + return { + get done() { + actual.push(`done call ${j}`); + return true; + } + }; + } + return { + get done() { + actual.push(`done call ${j}`); + return false; + }, + get value() { + actual.push(`value call ${j}`); + return { + get valueOf() { + actual.push(`valueOf get ${j}`); + return function() { + actual.push(`valueOf call ${j}`); + return result[j - 1]; + }; + } + }; + } + }; + }; + } + }; + } + }, + }; + }, + } + }; + + const { instance } = await WebAssembly.instantiate(buffer, imports); + const result = instance.exports.callfn(); + assert_equals(result, 2); + assert_array_equals(actual, [ + "@@iterator getter", + "@@iterator call", + "next getter", + "next call 1", + "done call 1", + "value call 1", + "next call 2", + "done call 2", + "value call 2", + "next call 3", + "done call 3", + "valueOf get 1", + "valueOf call 1", + "valueOf get 2", + "valueOf call 2", + ]); +}, "multiple return values from js to wasm"); diff --git a/test/fixtures/wpt/wasm/jsapi/constructor/toStringTag.any.js b/test/fixtures/wpt/wasm/jsapi/constructor/toStringTag.any.js new file mode 100644 index 00000000000000..c6d2cdaf662e8b --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/constructor/toStringTag.any.js @@ -0,0 +1,42 @@ +// META: global=window,dedicatedworker,jsshell + +"use strict"; +// https://webidl.spec.whatwg.org/#es-namespaces +// https://webassembly.github.io/spec/js-api/#namespacedef-webassembly + +test(() => { + assert_own_property(WebAssembly, Symbol.toStringTag); + + const propDesc = Object.getOwnPropertyDescriptor(WebAssembly, Symbol.toStringTag); + assert_equals(propDesc.value, "WebAssembly", "value"); + assert_equals(propDesc.writable, false, "writable"); + assert_equals(propDesc.enumerable, false, "enumerable"); + assert_equals(propDesc.configurable, true, "configurable"); +}, "@@toStringTag exists on the namespace object with the appropriate descriptor"); + +test(() => { + assert_equals(WebAssembly.toString(), "[object WebAssembly]"); + assert_equals(Object.prototype.toString.call(WebAssembly), "[object WebAssembly]"); +}, "Object.prototype.toString applied to the namespace object"); + +test(t => { + assert_own_property(WebAssembly, Symbol.toStringTag, "Precondition: @@toStringTag on the namespace object"); + t.add_cleanup(() => { + Object.defineProperty(WebAssembly, Symbol.toStringTag, { value: "WebAssembly" }); + }); + + Object.defineProperty(WebAssembly, Symbol.toStringTag, { value: "Test" }); + assert_equals(WebAssembly.toString(), "[object Test]"); + assert_equals(Object.prototype.toString.call(WebAssembly), "[object Test]"); +}, "Object.prototype.toString applied after modifying the namespace object's @@toStringTag"); + +test(t => { + assert_own_property(WebAssembly, Symbol.toStringTag, "Precondition: @@toStringTag on the namespace object"); + t.add_cleanup(() => { + Object.defineProperty(WebAssembly, Symbol.toStringTag, { value: "WebAssembly" }); + }); + + assert_true(delete WebAssembly[Symbol.toStringTag]); + assert_equals(WebAssembly.toString(), "[object Object]"); + assert_equals(Object.prototype.toString.call(WebAssembly), "[object Object]"); +}, "Object.prototype.toString applied after deleting @@toStringTag"); diff --git a/test/fixtures/wpt/wasm/jsapi/constructor/validate.any.js b/test/fixtures/wpt/wasm/jsapi/constructor/validate.any.js new file mode 100644 index 00000000000000..8b4f4582ab2987 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/constructor/validate.any.js @@ -0,0 +1,99 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +test(() => { + assert_throws_js(TypeError, () => WebAssembly.validate()); +}, "Missing argument"); + +test(() => { + const invalidArguments = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + ArrayBuffer, + ArrayBuffer.prototype, + Array.from(emptyModuleBinary), + ]; + for (const argument of invalidArguments) { + assert_throws_js(TypeError, () => WebAssembly.validate(argument), + `validate(${format_value(argument)})`); + } +}, "Invalid arguments"); + +test(() => { + const fn = WebAssembly.validate; + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly, + ]; + for (const thisValue of thisValues) { + assert_true(fn.call(thisValue, emptyModuleBinary), `this=${format_value(thisValue)}`); + } +}, "Branding"); + +const modules = [ + // Incomplete header. + [[], false], + [[0x00], false], + [[0x00, 0x61], false], + [[0x00, 0x61, 0x73], false], + [[0x00, 0x61, 0x73, 0x6d], false], + [[0x00, 0x61, 0x73, 0x6d, 0x01], false], + [[0x00, 0x61, 0x73, 0x6d, 0x01, 0x00], false], + [[0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00], false], + + // Complete header. + [[0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00], true], + + // Invalid version. + [[0x00, 0x61, 0x73, 0x6d, 0x00, 0x00, 0x00, 0x00], false], + [[0x00, 0x61, 0x73, 0x6d, 0x02, 0x00, 0x00, 0x00], false], + + // Nameless custom section. + [[0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00], false], + + // Custom section with empty name. + [[0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00], true], + + // Custom section with name "a". + [[0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x61], true], +]; +const bufferTypes = [ + Uint8Array, + Int8Array, + Uint16Array, + Int16Array, + Uint32Array, + Int32Array, +]; +for (const [module, expected] of modules) { + const name = module.map(n => n.toString(16)).join(" "); + for (const bufferType of bufferTypes) { + if (module.length % bufferType.BYTES_PER_ELEMENT === 0) { + test(() => { + const bytes = new Uint8Array(module); + const moduleBuffer = new bufferType(bytes.buffer); + assert_equals(WebAssembly.validate(moduleBuffer), expected); + }, `Validating module [${name}] in ${bufferType.name}`); + } + } +} + +test(() => { + assert_true(WebAssembly.validate(emptyModuleBinary, {})); +}, "Stray argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/error-interfaces-no-symbol-tostringtag.js b/test/fixtures/wpt/wasm/jsapi/error-interfaces-no-symbol-tostringtag.js new file mode 100644 index 00000000000000..572db0c01b620d --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/error-interfaces-no-symbol-tostringtag.js @@ -0,0 +1,13 @@ +// META: global=jsshell + +test(() => { + assert_not_own_property(WebAssembly.CompileError.prototype, Symbol.toStringTag); +}, "WebAssembly.CompileError"); + +test(() => { + assert_not_own_property(WebAssembly.LinkError.prototype, Symbol.toStringTag); +}, "WebAssembly.LinkError"); + +test(() => { + assert_not_own_property(WebAssembly.RuntimeError.prototype, Symbol.toStringTag); +}, "WebAssembly.RuntimeError"); diff --git a/test/fixtures/wpt/wasm/jsapi/exception/basic.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/exception/basic.tentative.any.js new file mode 100644 index 00000000000000..9ddebae0e968a2 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/exception/basic.tentative.any.js @@ -0,0 +1,121 @@ +// META: global=window,worker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +function assert_throws_wasm(fn, message) { + try { + fn(); + assert_not_reached(`expected to throw with ${message}`); + } catch (e) { + assert_true(e instanceof WebAssembly.Exception, `Error should be a WebAssembly.Exception with ${message}`); + } +} + +promise_test(async () => { + const kWasmAnyRef = 0x6f; + const kSig_v_r = makeSig([kWasmAnyRef], []); + const builder = new WasmModuleBuilder(); + const except = builder.addException(kSig_v_r); + builder.addFunction("throw_param", kSig_v_r) + .addBody([ + kExprLocalGet, 0, + kExprThrow, except, + ]) + .exportFunc(); + const buffer = builder.toBuffer(); + const {instance} = await WebAssembly.instantiate(buffer, {}); + const values = [ + undefined, + null, + true, + false, + "test", + Symbol(), + 0, + 1, + 4.2, + NaN, + Infinity, + {}, + () => {}, + ]; + for (const v of values) { + assert_throws_wasm(() => instance.exports.throw_param(v), String(v)); + } +}, "Wasm function throws argument"); + +promise_test(async () => { + const builder = new WasmModuleBuilder(); + const except = builder.addException(kSig_v_a); + builder.addFunction("throw_null", kSig_v_v) + .addBody([ + kExprRefNull, kWasmAnyFunc, + kExprThrow, except, + ]) + .exportFunc(); + const buffer = builder.toBuffer(); + const {instance} = await WebAssembly.instantiate(buffer, {}); + assert_throws_wasm(() => instance.exports.throw_null()); +}, "Wasm function throws null"); + +promise_test(async () => { + const builder = new WasmModuleBuilder(); + const except = builder.addException(kSig_v_i); + builder.addFunction("throw_int", kSig_v_v) + .addBody([ + ...wasmI32Const(7), + kExprThrow, except, + ]) + .exportFunc(); + const buffer = builder.toBuffer(); + const {instance} = await WebAssembly.instantiate(buffer, {}); + assert_throws_wasm(() => instance.exports.throw_int()); +}, "Wasm function throws integer"); + +promise_test(async () => { + const builder = new WasmModuleBuilder(); + const fnIndex = builder.addImport("module", "fn", kSig_v_v); + const except = builder.addException(kSig_v_r); + builder.addFunction("catch_exception", kSig_r_v) + .addBody([ + kExprTry, kWasmStmt, + kExprCallFunction, fnIndex, + kExprCatch, except, + kExprReturn, + kExprEnd, + kExprRefNull, kWasmAnyRef, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const error = new Error(); + const fn = () => { throw error }; + const {instance} = await WebAssembly.instantiate(buffer, { + module: { fn } + }); + assert_throws_exactly(error, () => instance.exports.catch_exception()); +}, "Imported JS function throws"); + +promise_test(async () => { + const builder = new WasmModuleBuilder(); + const fnIndex = builder.addImport("module", "fn", kSig_v_v); + builder.addFunction("catch_and_rethrow", kSig_r_v) + .addBody([ + kExprTry, kWasmStmt, + kExprCallFunction, fnIndex, + kExprCatchAll, + kExprRethrow, 0x00, + kExprEnd, + kExprRefNull, kWasmAnyRef, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const error = new Error(); + const fn = () => { throw error }; + const {instance} = await WebAssembly.instantiate(buffer, { + module: { fn } + }); + assert_throws_exactly(error, () => instance.exports.catch_and_rethrow()); +}, "Imported JS function throws, Wasm catches and rethrows"); diff --git a/test/fixtures/wpt/wasm/jsapi/exception/constructor.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/exception/constructor.tentative.any.js new file mode 100644 index 00000000000000..0fd47b455e023c --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/exception/constructor.tentative.any.js @@ -0,0 +1,62 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +test(() => { + assert_function_name( + WebAssembly.Exception, + "Exception", + "WebAssembly.Exception" + ); +}, "name"); + +test(() => { + assert_function_length(WebAssembly.Exception, 1, "WebAssembly.Exception"); +}, "length"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Exception()); +}, "No arguments"); + +test(() => { + const argument = new WebAssembly.Tag({ parameters: [] }); + assert_throws_js(TypeError, () => WebAssembly.Exception(argument)); +}, "Calling"); + +test(() => { + const invalidArguments = [ + undefined, + null, + false, + true, + "", + "test", + Symbol(), + 1, + NaN, + {}, + ]; + for (const invalidArgument of invalidArguments) { + assert_throws_js( + TypeError, + () => new WebAssembly.Exception(invalidArgument), + `new Exception(${format_value(invalidArgument)})` + ); + } +}, "Invalid descriptor argument"); + +test(() => { + const typesAndArgs = [ + ["i32", 123n], + ["i32", Symbol()], + ["f32", 123n], + ["f64", 123n], + ["i64", undefined], + ]; + for (const typeAndArg of typesAndArgs) { + const exn = new WebAssembly.Tag({ parameters: [typeAndArg[0]] }); + assert_throws_js( + TypeError, + () => new WebAssembly.Exception(exn, typeAndArg[1]) + ); + } +}, "Invalid exception argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/exception/getArg.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/exception/getArg.tentative.any.js new file mode 100644 index 00000000000000..ecd2fbd42fd18a --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/exception/getArg.tentative.any.js @@ -0,0 +1,54 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/memory/assertions.js + +test(() => { + const tag = new WebAssembly.Tag({ parameters: [] }); + const exn = new WebAssembly.Exception(tag, []); + assert_throws_js(TypeError, () => exn.getArg()); + assert_throws_js(TypeError, () => exn.getArg(tag)); +}, "Missing arguments"); + +test(() => { + const invalidValues = [undefined, null, true, "", Symbol(), 1, {}]; + const tag = new WebAssembly.Tag({ parameters: [] }); + const exn = new WebAssembly.Exception(tag, []); + for (argument of invalidValues) { + assert_throws_js(TypeError, () => exn.getArg(argument, 0)); + } +}, "Invalid exception argument"); + +test(() => { + const tag = new WebAssembly.Tag({ parameters: [] }); + const exn = new WebAssembly.Exception(tag, []); + assert_throws_js(TypeError, () => exn.getArg(tag, 1)); +}, "Index out of bounds"); + +test(() => { + const outOfRangeValues = [ + undefined, + NaN, + Infinity, + -Infinity, + -1, + 0x100000000, + 0x1000000000, + "0x100000000", + { + valueOf() { + return 0x100000000; + }, + }, + ]; + + const tag = new WebAssembly.Tag({ parameters: [] }); + const exn = new WebAssembly.Exception(tag, []); + for (const value of outOfRangeValues) { + assert_throws_js(TypeError, () => exn.getArg(tag, value)); + } +}, "Getting out-of-range argument"); + +test(() => { + const tag = new WebAssembly.Tag({ parameters: ["i32"] }); + const exn = new WebAssembly.Exception(tag, [42]); + assert_equals(exn.getArg(tag, 0), 42); +}, "getArg"); diff --git a/test/fixtures/wpt/wasm/jsapi/exception/is.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/exception/is.tentative.any.js new file mode 100644 index 00000000000000..e28a88a3c5fdcf --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/exception/is.tentative.any.js @@ -0,0 +1,25 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/memory/assertions.js + +test(() => { + const tag = new WebAssembly.Tag({ parameters: [] }); + const exn = new WebAssembly.Exception(tag, []); + assert_throws_js(TypeError, () => exn.is()); +}, "Missing arguments"); + +test(() => { + const invalidValues = [undefined, null, true, "", Symbol(), 1, {}]; + const tag = new WebAssembly.Tag({ parameters: [] }); + const exn = new WebAssembly.Exception(tag, []); + for (argument of invalidValues) { + assert_throws_js(TypeError, () => exn.is(argument)); + } +}, "Invalid exception argument"); + +test(() => { + const tag1 = new WebAssembly.Tag({ parameters: ["i32"] }); + const tag2 = new WebAssembly.Tag({ parameters: ["i32"] }); + const exn = new WebAssembly.Exception(tag1, [42]); + assert_true(exn.is(tag1)); + assert_false(exn.is(tag2)); +}, "is"); diff --git a/test/fixtures/wpt/wasm/jsapi/exception/toString.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/exception/toString.tentative.any.js new file mode 100644 index 00000000000000..52635186c762fc --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/exception/toString.tentative.any.js @@ -0,0 +1,21 @@ +// META: global=window,dedicatedworker,jsshell + +test(() => { + const argument = { parameters: [] }; + const tag = new WebAssembly.Tag(argument); + const exception = new WebAssembly.Exception(tag, []); + assert_class_string(exception, "WebAssembly.Exception"); +}, "Object.prototype.toString on an Exception"); + +test(() => { + assert_own_property(WebAssembly.Exception.prototype, Symbol.toStringTag); + + const propDesc = Object.getOwnPropertyDescriptor( + WebAssembly.Exception.prototype, + Symbol.toStringTag + ); + assert_equals(propDesc.value, "WebAssembly.Exception", "value"); + assert_equals(propDesc.configurable, true, "configurable"); + assert_equals(propDesc.enumerable, false, "enumerable"); + assert_equals(propDesc.writable, false, "writable"); +}, "@@toStringTag exists on the prototype with the appropriate descriptor"); diff --git a/test/fixtures/wpt/wasm/jsapi/function/call.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/function/call.tentative.any.js new file mode 100644 index 00000000000000..626cd13c9f0095 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/function/call.tentative.any.js @@ -0,0 +1,16 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function addxy(x, y) { + return x + y +} + +test(() => { + var fun = new WebAssembly.Function({parameters: ["i32", "i32"], results: ["i32"]}, addxy); + assert_equals(fun(1, 2), 3) +}, "test calling function") + +test(() => { + var fun = new WebAssembly.Function({parameters: ["i32", "i32"], results: ["i32"]}, addxy); + assert_throws_js(TypeError, () => new fun(1, 2)); +}, "test constructing function"); diff --git a/test/fixtures/wpt/wasm/jsapi/function/constructor.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/function/constructor.tentative.any.js new file mode 100644 index 00000000000000..636aeca4dc1fa0 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/function/constructor.tentative.any.js @@ -0,0 +1,65 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function addxy(x, y) { + return x + y +} + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + assert_function_name(WebAssembly.Function, "Function", "WebAssembly.Function"); +}, "name"); + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + assert_function_length(WebAssembly.Function, 2, "WebAssembly.Function"); +}, "length"); + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + assert_throws_js(TypeError, () => new WebAssembly.Function()); + const argument = {parameters: [], results: []}; + assert_throws_js(TypeError, () => new WebAssembly.Function(argument)); +}, "Too few arguments"); + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + const arguments = [{parameters: ["i32", "i32"], results: ["i32"]}, addxy]; + assert_throws_js(TypeError, () => WebAssembly.Function(...arguments)); +}, "Calling"); + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + var fun = new WebAssembly.Function({parameters: ["i32", "i32"], results: ["i32"]}, addxy); + assert_true(fun instanceof WebAssembly.Function) +}, "construct with JS function") + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + assert_throws_js(TypeError, () => new WebAssembly.Function({parameters: []}, addxy)) +}, "fail with missing results") + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + assert_throws_js(TypeError, () => new WebAssembly.Function({results: []}, addxy)) +}, "fail with missing parameters") + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + assert_throws_js(TypeError, () => new WebAssembly.Function({parameters: [1], results: [true]}, addxy)) +}, "fail with non-string parameters & results") + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + assert_throws_js(TypeError, () => new WebAssembly.Function({parameters: ["invalid"], results: ["invalid"]}, addxy)) +}, "fail with non-existent parameter and result type") + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + assert_throws_js(TypeError, () => new WebAssembly.Function({parameters: [], results: []}, 72)) +}, "fail with non-function object") + +test(() => { + assert_implements(WebAssembly.Function, "WebAssembly.Function is not implemented"); + assert_throws_js(TypeError, () => new WebAssembly.Function({parameters: [], results: []}, {})) +}, "fail to construct with non-callable object") diff --git a/test/fixtures/wpt/wasm/jsapi/function/table.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/function/table.tentative.any.js new file mode 100644 index 00000000000000..d7d0d86e3b6a88 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/function/table.tentative.any.js @@ -0,0 +1,30 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function testfunc(n) {} + +test(() => { + var table = new WebAssembly.Table({element: "anyfunc", initial: 3}) + var func1 = new WebAssembly.Function({parameters: ["i32"], results: []}, testfunc) + table.set(0, func1) + var func2 = new WebAssembly.Function({parameters: ["f32"], results: []}, testfunc) + table.set(1, func2) + var func3 = new WebAssembly.Function({parameters: ["i64"], results: []}, testfunc) + table.set(2, func3) + + var first = table.get(0) + assert_true(first instanceof WebAssembly.Function) + assert_equals(first, func1) + assert_equals(first.type().parameters[0], func1.type().parameters[0]) + + var second = table.get(1) + assert_true(second instanceof WebAssembly.Function) + assert_equals(second, func2) + assert_equals(second.type().parameters[0], func2.type().parameters[0]) + + var third = table.get(2) + assert_true(third instanceof WebAssembly.Function) + assert_equals(third, func3) + assert_equals(third.type().parameters[0], func3.type().parameters[0]) + +}, "Test insertion into table") diff --git a/test/fixtures/wpt/wasm/jsapi/function/type.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/function/type.tentative.any.js new file mode 100644 index 00000000000000..e01a23a9e4339e --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/function/type.tentative.any.js @@ -0,0 +1,28 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function addNumbers(x, y, z) { + return x+y+z; +} + +function doNothing() {} + +function assert_function(functype, func) { + var wasmFunc = new WebAssembly.Function(functype, func); + assert_equals(functype.parameters.length, wasmFunc.type().parameters.length); + for(let i = 0; i < functype.parameters.length; i++) { + assert_equals(functype.parameters[i], wasmFunc.type().parameters[i]); + } + assert_equals(functype.results.length, wasmFunc.type().results.length); + for(let i = 0; i < functype.results.length; i++) { + assert_equals(functype.results[i], wasmFunc.type().results[i]); + } +} + +test(() => { + assert_function({results: [], parameters: []}, doNothing); +}, "Check empty results and parameters") + +test(() => { + assert_function({results: ["f64"], parameters: ["i32", "i64", "f32"]}, addNumbers) +}, "Check all types") diff --git a/test/fixtures/wpt/wasm/jsapi/functions/entry-different-function-realm.html b/test/fixtures/wpt/wasm/jsapi/functions/entry-different-function-realm.html new file mode 100644 index 00000000000000..3af3dd924fb435 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/entry-different-function-realm.html @@ -0,0 +1,45 @@ + + +Entry settings object for host functions when the function realm is different from the test realm + + + + + + + + + + + diff --git a/test/fixtures/wpt/wasm/jsapi/functions/entry.html b/test/fixtures/wpt/wasm/jsapi/functions/entry.html new file mode 100644 index 00000000000000..15018074491054 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/entry.html @@ -0,0 +1,43 @@ + + +Entry settings object for host functions + + + + + + + + + + diff --git a/test/fixtures/wpt/wasm/jsapi/functions/helper.js b/test/fixtures/wpt/wasm/jsapi/functions/helper.js new file mode 100644 index 00000000000000..487791c69ad430 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/helper.js @@ -0,0 +1,12 @@ +function call_later(f) { + const builder = new WasmModuleBuilder(); + const functionIndex = builder.addImport("module", "imported", kSig_v_v); + builder.addStart(functionIndex); + const buffer = builder.toBuffer(); + + WebAssembly.instantiate(buffer, { + "module": { + "imported": f, + } + }); +} diff --git a/test/fixtures/wpt/wasm/jsapi/functions/incumbent.html b/test/fixtures/wpt/wasm/jsapi/functions/incumbent.html new file mode 100644 index 00000000000000..cb2763297709a8 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/incumbent.html @@ -0,0 +1,54 @@ + + +Incumbent settings object for host functions + + + + + + + + diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/README.md b/test/fixtures/wpt/wasm/jsapi/functions/resources/README.md new file mode 100644 index 00000000000000..a89258a4e01267 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/README.md @@ -0,0 +1,5 @@ +A couple notes about the files scattered in this `resources/` directory: + +* The nested directory structure is necessary here so that relative URL resolution can be tested; we need different sub-paths for each document. + +* The semi-duplicate `window-to-open.html`s scattered throughout are present because Firefox, at least, does not fire `Window` `load` events for 404s, so we want to ensure that no matter which global is used, `window`'s `load` event is hit and our tests can proceed. diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/current/current.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/current/current.html new file mode 100644 index 00000000000000..63d9c437fc5683 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/current/current.html @@ -0,0 +1,4 @@ + + +Current page used as a test helper + diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/current/resources/window-to-open.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/current/resources/window-to-open.html new file mode 100644 index 00000000000000..1bc4cca9a3920f --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/current/resources/window-to-open.html @@ -0,0 +1,3 @@ + + +If the current settings object is used this page will be opened diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/entry-incumbent.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/entry-incumbent.html new file mode 100644 index 00000000000000..6b210563e99bc2 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/entry-incumbent.html @@ -0,0 +1,15 @@ + + +Incumbent page used as a test helper + + + + + diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/function/function.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/function/function.html new file mode 100644 index 00000000000000..979b902eaa0e17 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/function/function.html @@ -0,0 +1,3 @@ + + +Realm for a host function used as a test helper diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/function/resources/window-to-open.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/function/resources/window-to-open.html new file mode 100644 index 00000000000000..3928c1f8aa9e96 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/function/resources/window-to-open.html @@ -0,0 +1,3 @@ + + +If the function's settings object is used this page will be opened diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/incumbent-incumbent.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/incumbent-incumbent.html new file mode 100644 index 00000000000000..5e84f65a084e68 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/incumbent-incumbent.html @@ -0,0 +1,24 @@ + + +Incumbent page used as a test helper + + + + + + + + diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/relevant/relevant.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/relevant/relevant.html new file mode 100644 index 00000000000000..06df91c23741f5 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/relevant/relevant.html @@ -0,0 +1,14 @@ + + +Relevant page used as a test helper + + diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/relevant/resources/window-to-open.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/relevant/resources/window-to-open.html new file mode 100644 index 00000000000000..4138b5a084409d --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/relevant/resources/window-to-open.html @@ -0,0 +1,3 @@ + + +If the relevant settings object is used this page will be opened diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/resources/window-to-open.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/resources/window-to-open.html new file mode 100644 index 00000000000000..7743b9b578201e --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/resources/window-to-open.html @@ -0,0 +1,3 @@ + + +If the incumbent settings object is used this page will be opened diff --git a/test/fixtures/wpt/wasm/jsapi/functions/resources/window-to-open.html b/test/fixtures/wpt/wasm/jsapi/functions/resources/window-to-open.html new file mode 100644 index 00000000000000..ce357937f5e4f9 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/functions/resources/window-to-open.html @@ -0,0 +1,3 @@ + + +If the entry settings object is used this page will be opened diff --git a/test/fixtures/wpt/wasm/jsapi/global/constructor.any.js b/test/fixtures/wpt/wasm/jsapi/global/constructor.any.js new file mode 100644 index 00000000000000..f536f5d7b5df6c --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/global/constructor.any.js @@ -0,0 +1,166 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function assert_Global(actual, expected) { + assert_equals(Object.getPrototypeOf(actual), WebAssembly.Global.prototype, + "prototype"); + assert_true(Object.isExtensible(actual), "extensible"); + + assert_equals(actual.value, expected, "value"); + assert_equals(actual.valueOf(), expected, "valueOf"); +} + +test(() => { + assert_function_name(WebAssembly.Global, "Global", "WebAssembly.Global"); +}, "name"); + +test(() => { + assert_function_length(WebAssembly.Global, 1, "WebAssembly.Global"); +}, "length"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Global()); +}, "No arguments"); + +test(() => { + const argument = { "value": "i32" }; + assert_throws_js(TypeError, () => WebAssembly.Global(argument)); +}, "Calling"); + +test(() => { + const order = []; + + new WebAssembly.Global({ + get value() { + order.push("descriptor value"); + return { + toString() { + order.push("descriptor value toString"); + return "f64"; + }, + }; + }, + + get mutable() { + order.push("descriptor mutable"); + return false; + }, + }, { + valueOf() { + order.push("value valueOf()"); + } + }); + + assert_array_equals(order, [ + "descriptor mutable", + "descriptor value", + "descriptor value toString", + "value valueOf()", + ]); +}, "Order of evaluation"); + +test(() => { + const invalidArguments = [ + undefined, + null, + false, + true, + "", + "test", + Symbol(), + 1, + NaN, + {}, + ]; + for (const invalidArgument of invalidArguments) { + assert_throws_js(TypeError, + () => new WebAssembly.Global(invalidArgument), + `new Global(${format_value(invalidArgument)})`); + } +}, "Invalid descriptor argument"); + +test(() => { + const invalidTypes = ["i16", "i128", "f16", "f128", "u32", "u64", "i32\0"]; + for (const value of invalidTypes) { + const argument = { value }; + assert_throws_js(TypeError, () => new WebAssembly.Global(argument)); + } +}, "Invalid type argument"); + +test(() => { + const argument = { "value": "i64" }; + const global = new WebAssembly.Global(argument); + assert_Global(global, 0n); +}, "i64 with default"); + +for (const type of ["i32", "f32", "f64"]) { + test(() => { + const argument = { "value": type }; + const global = new WebAssembly.Global(argument); + assert_Global(global, 0); + }, `Default value for type ${type}`); + + const valueArguments = [ + [undefined, 0], + [null, 0], + [true, 1], + [false, 0], + [2, 2], + ["3", 3], + [{ toString() { return "5" } }, 5, "object with toString returning string"], + [{ valueOf() { return "8" } }, 8, "object with valueOf returning string"], + [{ toString() { return 6 } }, 6, "object with toString returning number"], + [{ valueOf() { return 9 } }, 9, "object with valueOf returning number"], + ]; + for (const [value, expected, name = format_value(value)] of valueArguments) { + test(() => { + const argument = { "value": type }; + const global = new WebAssembly.Global(argument, value); + assert_Global(global, expected); + }, `Explicit value ${name} for type ${type}`); + } + + test(() => { + const argument = { "value": type }; + assert_throws_js(TypeError, () => new WebAssembly.Global(argument, 0n)); + }, `BigInt value for type ${type}`); +} + +const valueArguments = [ + [undefined, 0n], + [true, 1n], + [false, 0n], + ["3", 3n], + [123n, 123n], + [{ toString() { return "5" } }, 5n, "object with toString returning string"], + [{ valueOf() { return "8" } }, 8n, "object with valueOf returning string"], + [{ toString() { return 6n } }, 6n, "object with toString returning bigint"], + [{ valueOf() { return 9n } }, 9n, "object with valueOf returning bigint"], +]; +for (const [value, expected, name = format_value(value)] of valueArguments) { + test(() => { + const argument = { "value": "i64" }; + const global = new WebAssembly.Global(argument, value); + assert_Global(global, expected); + }, `Explicit value ${name} for type i64`); +} + +const invalidBigints = [ + null, + 666, + { toString() { return 5 } }, + { valueOf() { return 8 } }, + Symbol(), +]; +for (const invalidBigint of invalidBigints) { + test(() => { + var argument = { "value": "i64" }; + assert_throws_js(TypeError, () => new WebAssembly.Global(argument, invalidBigint)); + }, `Pass non-bigint as i64 Global value: ${format_value(invalidBigint)}`); +} + +test(() => { + const argument = { "value": "i32" }; + const global = new WebAssembly.Global(argument, 0, {}); + assert_Global(global, 0); +}, "Stray argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/global/toString.any.js b/test/fixtures/wpt/wasm/jsapi/global/toString.any.js new file mode 100644 index 00000000000000..359c4273b5bd78 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/global/toString.any.js @@ -0,0 +1,17 @@ +// META: global=window,dedicatedworker,jsshell + +test(() => { + const argument = { "value": "i32" }; + const global = new WebAssembly.Global(argument); + assert_class_string(global, "WebAssembly.Global"); +}, "Object.prototype.toString on an Global"); + +test(() => { + assert_own_property(WebAssembly.Global.prototype, Symbol.toStringTag); + + const propDesc = Object.getOwnPropertyDescriptor(WebAssembly.Global.prototype, Symbol.toStringTag); + assert_equals(propDesc.value, "WebAssembly.Global", "value"); + assert_equals(propDesc.configurable, true, "configurable"); + assert_equals(propDesc.enumerable, false, "enumerable"); + assert_equals(propDesc.writable, false, "writable"); +}, "@@toStringTag exists on the prototype with the appropriate descriptor"); diff --git a/test/fixtures/wpt/wasm/jsapi/global/type.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/global/type.tentative.any.js new file mode 100644 index 00000000000000..173af647f27dc7 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/global/type.tentative.any.js @@ -0,0 +1,65 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function assert_type(argument) { + const myglobal = new WebAssembly.Global(argument); + const globaltype = myglobal.type(); + + assert_equals(globaltype.value, argument.value); + assert_equals(globaltype.mutable, argument.mutable); +} + +test(() => { + assert_type({ "value": "i32", "mutable": true}); +}, "i32, mutable"); + +test(() => { + assert_type({ "value": "i32", "mutable": false}); +}, "i32, immutable"); + +test(() => { + assert_type({ "value": "i64", "mutable": true}); +}, "i64, mutable"); + +test(() => { + assert_type({ "value": "i64", "mutable": false}); +}, "i64, immutable"); + +test(() => { + assert_type({ "value": "f32", "mutable": true}); +}, "f32, mutable"); + +test(() => { + assert_type({ "value": "f32", "mutable": false}); +}, "f32, immutable"); + +test(() => { + assert_type({ "value": "f64", "mutable": true}); +}, "f64, mutable"); + +test(() => { + assert_type({ "value": "f64", "mutable": false}); +}, "f64, immutable"); + +test(() => { + assert_type({"value": "externref", "mutable": true}) +}, "externref, mutable") + +test(() => { + assert_type({"value": "externref", "mutable": false}) +}, "externref, immutable") + +test(() => { + assert_type({"value": "anyfunc", "mutable": true}) +}, "anyfunc, mutable") + +test(() => { + assert_type({"value": "anyfunc", "mutable": false}) +}, "anyfunc, immutable") + +test(() => { + const myglobal = new WebAssembly.Global({"value": "i32", "mutable": true}); + const propertyNames = Object.getOwnPropertyNames(myglobal.type()); + assert_equals(propertyNames[0], "mutable"); + assert_equals(propertyNames[1], "value"); +}, "key ordering"); diff --git a/test/fixtures/wpt/wasm/jsapi/global/value-get-set.any.js b/test/fixtures/wpt/wasm/jsapi/global/value-get-set.any.js new file mode 100644 index 00000000000000..f95b7ca9e3f0d5 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/global/value-get-set.any.js @@ -0,0 +1,152 @@ +// META: global=window,dedicatedworker,jsshell + +test(() => { + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Global, + WebAssembly.Global.prototype, + ]; + + const desc = Object.getOwnPropertyDescriptor(WebAssembly.Global.prototype, "value"); + assert_equals(typeof desc, "object"); + + const getter = desc.get; + assert_equals(typeof getter, "function"); + + const setter = desc.set; + assert_equals(typeof setter, "function"); + + for (const thisValue of thisValues) { + assert_throws_js(TypeError, () => getter.call(thisValue), `getter with this=${format_value(thisValue)}`); + assert_throws_js(TypeError, () => setter.call(thisValue, 1), `setter with this=${format_value(thisValue)}`); + } +}, "Branding"); + +for (const type of ["i32", "i64", "f32", "f64"]) { + const [initial, value, invalid] = type === "i64" ? [0n, 1n, 2] : [0, 1, 2n]; + const immutableOptions = [ + [{}, "missing"], + [{ "mutable": undefined }, "undefined"], + [{ "mutable": null }, "null"], + [{ "mutable": false }, "false"], + [{ "mutable": "" }, "empty string"], + [{ "mutable": 0 }, "zero"], + ]; + for (const [opts, name] of immutableOptions) { + test(() => { + opts.value = type; + const global = new WebAssembly.Global(opts); + assert_equals(global.value, initial, "initial value"); + assert_equals(global.valueOf(), initial, "initial valueOf"); + + assert_throws_js(TypeError, () => global.value = value); + + assert_equals(global.value, initial, "post-set value"); + assert_equals(global.valueOf(), initial, "post-set valueOf"); + }, `Immutable ${type} (${name})`); + + test(t => { + opts.value = type; + const global = new WebAssembly.Global(opts); + assert_equals(global.value, initial, "initial value"); + assert_equals(global.valueOf(), initial, "initial valueOf"); + + const value = { + valueOf: t.unreached_func("should not call valueOf"), + toString: t.unreached_func("should not call toString"), + }; + assert_throws_js(TypeError, () => global.value = value); + + assert_equals(global.value, initial, "post-set value"); + assert_equals(global.valueOf(), initial, "post-set valueOf"); + }, `Immutable ${type} with ToNumber side-effects (${name})`); + } + + const mutableOptions = [ + [{ "mutable": true }, "true"], + [{ "mutable": 1 }, "one"], + [{ "mutable": "x" }, "string"], + [Object.create({ "mutable": true }), "true on prototype"], + ]; + for (const [opts, name] of mutableOptions) { + test(() => { + opts.value = type; + const global = new WebAssembly.Global(opts); + assert_equals(global.value, initial, "initial value"); + assert_equals(global.valueOf(), initial, "initial valueOf"); + + global.value = value; + + assert_throws_js(TypeError, () => global.value = invalid); + + assert_equals(global.value, value, "post-set value"); + assert_equals(global.valueOf(), value, "post-set valueOf"); + }, `Mutable ${type} (${name})`); + } +} + +test(() => { + const argument = { "value": "i64", "mutable": true }; + const global = new WebAssembly.Global(argument); + + assert_equals(global.value, 0n, "initial value using ToJSValue"); + + const valid = [ + [123n, 123n], + [2n ** 63n, - (2n ** 63n)], + [true, 1n], + [false, 0n], + ["456", 456n], + ]; + for (const [input, output] of valid) { + global.value = input; + assert_equals(global.valueOf(), output, "post-set valueOf"); + } + + const invalid = [ + undefined, + null, + 0, + 1, + 4.2, + Symbol(), + ]; + for (const input of invalid) { + assert_throws_js(TypeError, () => global.value = input); + } +}, "i64 mutability"); + +test(() => { + const argument = { "value": "i32", "mutable": true }; + const global = new WebAssembly.Global(argument); + const desc = Object.getOwnPropertyDescriptor(WebAssembly.Global.prototype, "value"); + assert_equals(typeof desc, "object"); + + const setter = desc.set; + assert_equals(typeof setter, "function"); + + assert_throws_js(TypeError, () => setter.call(global)); +}, "Calling setter without argument"); + +test(() => { + const argument = { "value": "i32", "mutable": true }; + const global = new WebAssembly.Global(argument); + const desc = Object.getOwnPropertyDescriptor(WebAssembly.Global.prototype, "value"); + assert_equals(typeof desc, "object"); + + const getter = desc.get; + assert_equals(typeof getter, "function"); + + const setter = desc.set; + assert_equals(typeof setter, "function"); + + assert_equals(getter.call(global, {}), 0); + assert_equals(setter.call(global, 1, {}), undefined); + assert_equals(global.value, 1); +}, "Stray argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/global/valueOf.any.js b/test/fixtures/wpt/wasm/jsapi/global/valueOf.any.js new file mode 100644 index 00000000000000..0695a5a61fbc6e --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/global/valueOf.any.js @@ -0,0 +1,28 @@ +// META: global=window,dedicatedworker,jsshell + +test(() => { + const argument = { "value": "i32" }; + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Global, + WebAssembly.Global.prototype, + ]; + + const fn = WebAssembly.Global.prototype.valueOf; + + for (const thisValue of thisValues) { + assert_throws_js(TypeError, () => fn.call(thisValue), `this=${format_value(thisValue)}`); + } +}, "Branding"); + +test(() => { + const argument = { "value": "i32" }; + const global = new WebAssembly.Global(argument, 0); + assert_equals(global.valueOf({}), 0); +}, "Stray argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/idlharness.any.js b/test/fixtures/wpt/wasm/jsapi/idlharness.any.js new file mode 100644 index 00000000000000..98713d4bf6e43a --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/idlharness.any.js @@ -0,0 +1,22 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js +// META: script=../resources/load_wasm.js + +'use strict'; + +// https://webassembly.github.io/spec/js-api/ + +idl_test( + ['wasm-js-api'], + [], + async idl_array => { + self.mod = await createWasmModule(); + self.instance = new WebAssembly.Instance(self.mod); + + idl_array.add_objects({ + Memory: [new WebAssembly.Memory({initial: 1024})], + Module: [self.mod], + Instance: [self.instance], + }); + } +); diff --git a/test/fixtures/wpt/wasm/jsapi/instance/constructor-bad-imports.any.js b/test/fixtures/wpt/wasm/jsapi/instance/constructor-bad-imports.any.js new file mode 100644 index 00000000000000..e4a5abb8eb2169 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/instance/constructor-bad-imports.any.js @@ -0,0 +1,13 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=/wasm/jsapi/bad-imports.js + +test_bad_imports((name, error, build, ...arguments) => { + test(() => { + const builder = new WasmModuleBuilder(); + build(builder); + const buffer = builder.toBuffer(); + const module = new WebAssembly.Module(buffer); + assert_throws_js(error, () => new WebAssembly.Instance(module, ...arguments)); + }, `new WebAssembly.Instance(module): ${name}`); +}); diff --git a/test/fixtures/wpt/wasm/jsapi/instance/constructor-caching.any.js b/test/fixtures/wpt/wasm/jsapi/instance/constructor-caching.any.js new file mode 100644 index 00000000000000..1aa4739b6294d0 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/instance/constructor-caching.any.js @@ -0,0 +1,54 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +function getExports() { + const builder = new WasmModuleBuilder(); + builder + .addFunction("fn", kSig_v_d) + .addBody([]) + .exportFunc(); + + builder.setTableBounds(1); + builder.addExportOfKind("table", kExternalTable, 0); + builder.addGlobal(kWasmI32, false).exportAs("global"); + builder.addMemory(4, 8, true); + + const buffer = builder.toBuffer(); + const module = new WebAssembly.Module(buffer); + const instance = new WebAssembly.Instance(module); + return instance.exports; +} + +test(() => { + const exports = getExports(); + + const builder = new WasmModuleBuilder(); + const functionIndex = builder.addImport("module", "imported", kSig_v_d); + builder.addExport("exportedFunction", functionIndex); + + const globalIndex = builder.addImportedGlobal("module", "global", kWasmI32); + builder.addExportOfKind("exportedGlobal", kExternalGlobal, globalIndex); + + builder.addImportedMemory("module", "memory", 4); + builder.exportMemoryAs("exportedMemory"); + + const tableIndex = builder.addImportedTable("module", "table", 1); + builder.addExportOfKind("exportedTable", kExternalTable, tableIndex); + + const buffer = builder.toBuffer(); + + const module = new WebAssembly.Module(buffer); + const instance = new WebAssembly.Instance(module, { + "module": { + "imported": exports.fn, + "global": exports.global, + "memory": exports.memory, + "table": exports.table, + } + }); + + assert_equals(instance.exports.exportedFunction, exports.fn); + assert_equals(instance.exports.exportedGlobal, exports.global); + assert_equals(instance.exports.exportedMemory, exports.memory); + assert_equals(instance.exports.exportedTable, exports.table); +}); diff --git a/test/fixtures/wpt/wasm/jsapi/instance/constructor.any.js b/test/fixtures/wpt/wasm/jsapi/instance/constructor.any.js new file mode 100644 index 00000000000000..26390ebd2cdb2e --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/instance/constructor.any.js @@ -0,0 +1,54 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=/wasm/jsapi/assertions.js +// META: script=/wasm/jsapi/instanceTestFactory.js + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +test(() => { + assert_function_name(WebAssembly.Instance, "Instance", "WebAssembly.Instance"); +}, "name"); + +test(() => { + assert_function_length(WebAssembly.Instance, 1, "WebAssembly.Instance"); +}, "length"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Instance()); +}, "No arguments"); + +test(() => { + const invalidArguments = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Module, + WebAssembly.Module.prototype, + ]; + for (const argument of invalidArguments) { + assert_throws_js(TypeError, () => new WebAssembly.Instance(argument), + `new Instance(${format_value(argument)})`); + } +}, "Non-Module arguments"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + assert_throws_js(TypeError, () => WebAssembly.Instance(module)); +}, "Calling"); + +for (const [name, fn] of instanceTestFactory) { + test(() => { + const { buffer, args, exports, verify } = fn(); + const module = new WebAssembly.Module(buffer); + const instance = new WebAssembly.Instance(module, ...args); + assert_Instance(instance, exports); + verify(instance); + }, name); +} diff --git a/test/fixtures/wpt/wasm/jsapi/instance/exports.any.js b/test/fixtures/wpt/wasm/jsapi/instance/exports.any.js new file mode 100644 index 00000000000000..6dcfbcee950d87 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/instance/exports.any.js @@ -0,0 +1,66 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +test(() => { + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Instance, + WebAssembly.Instance.prototype, + ]; + + const desc = Object.getOwnPropertyDescriptor(WebAssembly.Instance.prototype, "exports"); + assert_equals(typeof desc, "object"); + + const getter = desc.get; + assert_equals(typeof getter, "function"); + + assert_equals(typeof desc.set, "undefined"); + + for (const thisValue of thisValues) { + assert_throws_js(TypeError, () => getter.call(thisValue), `this=${format_value(thisValue)}`); + } +}, "Branding"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const instance = new WebAssembly.Instance(module); + const exports = instance.exports; + + const desc = Object.getOwnPropertyDescriptor(WebAssembly.Instance.prototype, "exports"); + assert_equals(typeof desc, "object"); + + const getter = desc.get; + assert_equals(typeof getter, "function"); + + assert_equals(getter.call(instance, {}), exports); +}, "Stray argument"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const instance = new WebAssembly.Instance(module); + const exports = instance.exports; + instance.exports = {}; + assert_equals(instance.exports, exports, "Should not change the exports"); +}, "Setting (sloppy mode)"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const instance = new WebAssembly.Instance(module); + const exports = instance.exports; + assert_throws_js(TypeError, () => { + "use strict"; + instance.exports = {}; + }); + assert_equals(instance.exports, exports, "Should not change the exports"); +}, "Setting (strict mode)"); diff --git a/test/fixtures/wpt/wasm/jsapi/instance/toString.any.js b/test/fixtures/wpt/wasm/jsapi/instance/toString.any.js new file mode 100644 index 00000000000000..547a9ca8295f5b --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/instance/toString.any.js @@ -0,0 +1,19 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +test(() => { + const emptyModuleBinary = new WasmModuleBuilder().toBuffer(); + const module = new WebAssembly.Module(emptyModuleBinary); + const instance = new WebAssembly.Instance(module); + assert_class_string(instance, "WebAssembly.Instance"); +}, "Object.prototype.toString on an Instance"); + +test(() => { + assert_own_property(WebAssembly.Instance.prototype, Symbol.toStringTag); + + const propDesc = Object.getOwnPropertyDescriptor(WebAssembly.Instance.prototype, Symbol.toStringTag); + assert_equals(propDesc.value, "WebAssembly.Instance", "value"); + assert_equals(propDesc.configurable, true, "configurable"); + assert_equals(propDesc.enumerable, false, "enumerable"); + assert_equals(propDesc.writable, false, "writable"); +}, "@@toStringTag exists on the prototype with the appropriate descriptor"); diff --git a/test/fixtures/wpt/wasm/jsapi/instanceTestFactory.js b/test/fixtures/wpt/wasm/jsapi/instanceTestFactory.js new file mode 100644 index 00000000000000..ac468947ec22e2 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/instanceTestFactory.js @@ -0,0 +1,761 @@ +const instanceTestFactory = [ + [ + "Empty module without imports argument", + function() { + return { + buffer: emptyModuleBinary, + args: [], + exports: {}, + verify: () => {}, + }; + } + ], + + [ + "Empty module with undefined imports argument", + function() { + return { + buffer: emptyModuleBinary, + args: [undefined], + exports: {}, + verify: () => {}, + }; + } + ], + + [ + "Empty module with empty imports argument", + function() { + return { + buffer: emptyModuleBinary, + args: [{}], + exports: {}, + verify: () => {}, + }; + } + ], + + [ + "getter order for imports object", + function() { + const builder = new WasmModuleBuilder(); + builder.addImportedGlobal("module", "global1", kWasmI32); + builder.addImportedGlobal("module2", "global3", kWasmI32); + builder.addImportedMemory("module", "memory", 0, 128); + builder.addImportedGlobal("module", "global2", kWasmI32); + const buffer = builder.toBuffer(); + const order = []; + + const imports = { + get module() { + order.push("module getter"); + return { + get global1() { + order.push("global1 getter"); + return 0; + }, + get global2() { + order.push("global2 getter"); + return 0; + }, + get memory() { + order.push("memory getter"); + return new WebAssembly.Memory({ "initial": 64, maximum: 128 }); + }, + } + }, + get module2() { + order.push("module2 getter"); + return { + get global3() { + order.push("global3 getter"); + return 0; + }, + } + }, + }; + + const expected = [ + "module getter", + "global1 getter", + "module2 getter", + "global3 getter", + "module getter", + "memory getter", + "module getter", + "global2 getter", + ]; + return { + buffer, + args: [imports], + exports: {}, + verify: () => assert_array_equals(order, expected), + }; + } + ], + + [ + "imports", + function() { + const builder = new WasmModuleBuilder(); + + builder.addImport("module", "fn", kSig_v_v); + builder.addImportedGlobal("module", "global", kWasmI32); + builder.addImportedMemory("module", "memory", 0, 128); + builder.addImportedTable("module", "table", 0, 128); + + const buffer = builder.toBuffer(); + const imports = { + "module": { + "fn": function() {}, + "global": 0, + "memory": new WebAssembly.Memory({ "initial": 64, maximum: 128 }), + "table": new WebAssembly.Table({ "element": "anyfunc", "initial": 64, maximum: 128 }), + }, + get "module2"() { + assert_unreached("Should not get modules that are not imported"); + }, + }; + + return { + buffer, + args: [imports], + exports: {}, + verify: () => {}, + }; + } + ], + + [ + "imports with empty module names", + function() { + const builder = new WasmModuleBuilder(); + + builder.addImport("", "fn", kSig_v_v); + builder.addImportedGlobal("", "global", kWasmI32); + builder.addImportedMemory("", "memory", 0, 128); + builder.addImportedTable("", "table", 0, 128); + + const buffer = builder.toBuffer(); + const imports = { + "": { + "fn": function() {}, + "global": 0, + "memory": new WebAssembly.Memory({ "initial": 64, maximum: 128 }), + "table": new WebAssembly.Table({ "element": "anyfunc", "initial": 64, maximum: 128 }), + }, + }; + + return { + buffer, + args: [imports], + exports: {}, + verify: () => {}, + }; + } + ], + + [ + "imports with empty names", + function() { + const builder = new WasmModuleBuilder(); + + builder.addImport("a", "", kSig_v_v); + builder.addImportedGlobal("b", "", kWasmI32); + builder.addImportedMemory("c", "", 0, 128); + builder.addImportedTable("d", "", 0, 128); + + const buffer = builder.toBuffer(); + const imports = { + "a": { "": function() {} }, + "b": { "": 0 }, + "c": { "": new WebAssembly.Memory({ "initial": 64, maximum: 128 }) }, + "d": { "": new WebAssembly.Table({ "element": "anyfunc", "initial": 64, maximum: 128 }) }, + }; + + return { + buffer, + args: [imports], + exports: {}, + verify: () => {}, + }; + } + ], + + [ + "exports with empty name: function", + function() { + const builder = new WasmModuleBuilder(); + + builder + .addFunction("", kSig_v_d) + .addBody([]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const exports = { + "": { "kind": "function", "name": "0", "length": 1 }, + }; + + return { + buffer, + args: [], + exports, + verify: () => {}, + }; + } + ], + + [ + "exports with empty name: table", + function() { + const builder = new WasmModuleBuilder(); + + builder.setTableBounds(1); + builder.addExportOfKind("", kExternalTable, 0); + + const buffer = builder.toBuffer(); + + const exports = { + "": { "kind": "table", "length": 1 }, + }; + + return { + buffer, + args: [], + exports, + verify: () => {}, + }; + } + ], + + [ + "exports with empty name: global", + function() { + const builder = new WasmModuleBuilder(); + + builder.addGlobal(kWasmI32, true) + .exportAs("") + .init = 7; + + const buffer = builder.toBuffer(); + + const exports = { + "": { "kind": "global", "value": 7 }, + }; + + return { + buffer, + args: [], + exports, + verify: () => {}, + }; + } + ], + + [ + "No imports", + function() { + const builder = new WasmModuleBuilder(); + + builder + .addFunction("fn", kSig_v_d) + .addBody([]) + .exportFunc(); + builder + .addFunction("fn2", kSig_v_v) + .addBody([]) + .exportFunc(); + + builder.setTableBounds(1); + builder.addExportOfKind("table", kExternalTable, 0); + + builder.addGlobal(kWasmI32, true) + .exportAs("global") + .init = 7; + builder.addGlobal(kWasmF64, true) + .exportAs("global2") + .init = 1.2; + + builder.addMemory(4, 8, true); + + const buffer = builder.toBuffer(); + + const exports = { + "fn": { "kind": "function", "name": "0", "length": 1 }, + "fn2": { "kind": "function", "name": "1", "length": 0 }, + "table": { "kind": "table", "length": 1 }, + "global": { "kind": "global", "value": 7 }, + "global2": { "kind": "global", "value": 1.2 }, + "memory": { "kind": "memory", "size": 4 }, + }; + + return { + buffer, + args: [], + exports, + verify: () => {}, + }; + } + ], + + [ + "exports and imports", + function() { + const value = 102; + + const builder = new WasmModuleBuilder(); + + const index = builder.addImportedGlobal("module", "global", kWasmI32); + builder + .addFunction("fn", kSig_i_v) + .addBody([ + kExprGlobalGet, + index, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const imports = { + "module": { + "global": value, + }, + }; + + const exports = { + "fn": { "kind": "function", "name": "0", "length": 0 }, + }; + + return { + buffer, + args: [imports], + exports, + verify: instance => assert_equals(instance.exports.fn(), value) + }; + } + ], + + [ + "i64 exports and imports", + function() { + const value = 102n; + + const builder = new WasmModuleBuilder(); + + const index = builder.addImportedGlobal("module", "global", kWasmI64); + builder + .addFunction("fn", kSig_l_v) + .addBody([ + kExprGlobalGet, + index, + kExprReturn, + ]) + .exportFunc(); + + const index2 = builder.addImportedGlobal("module", "global2", kWasmI64); + builder.addExportOfKind("global", kExternalGlobal, index2); + + const buffer = builder.toBuffer(); + + const imports = { + "module": { + "global": value, + "global2": 2n ** 63n, + }, + }; + + const exports = { + "fn": { "kind": "function", "name": "0", "length": 0 }, + "global": { "kind": "global", "value": -(2n ** 63n) }, + }; + + return { + buffer, + args: [imports], + exports, + verify: instance => assert_equals(instance.exports.fn(), value) + }; + } + ], + + [ + "import with i32-returning function", + function() { + const builder = new WasmModuleBuilder(); + + const fnIndex = builder.addImport("module", "fn", kSig_i_v); + const fn2 = builder + .addFunction("fn2", kSig_v_v) + .addBody([ + kExprCallFunction, + fnIndex, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + let called = false; + const imports = { + "module": { + "fn": function() { + called = true; + return 6n; + }, + }, + }; + + return { + buffer, + args: [imports], + exports: { + "fn2": { "kind": "function", "name": String(fn2.index), "length": 0 }, + }, + verify: instance => { + assert_throws_js(TypeError, () => instance.exports.fn2()); + assert_true(called, "Should have called into JS"); + } + }; + } + ], + + [ + "import with function that takes and returns i32", + function() { + const builder = new WasmModuleBuilder(); + + const fnIndex = builder.addImport("module", "fn", kSig_i_i); + const fn2 = builder + .addFunction("fn2", kSig_i_v) + .addBody([ + kExprI32Const, 0x66, + kExprCallFunction, + fnIndex, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + let called = false; + const imports = { + "module": { + "fn": function(n) { + called = true; + assert_equals(n, -26); + return { valueOf() { return 6; } }; + }, + }, + }; + + return { + buffer, + args: [imports], + exports: { + "fn2": { "kind": "function", "name": String(fn2.index), "length": 0 }, + }, + verify: instance => { + assert_equals(instance.exports.fn2(), 6); + assert_true(called, "Should have called into JS"); + } + }; + } + ], + + [ + "import with i64-returning function", + function() { + const builder = new WasmModuleBuilder(); + + const fnIndex = builder.addImport("module", "fn", kSig_l_v); + const fn2 = builder + .addFunction("fn2", kSig_v_v) + .addBody([ + kExprCallFunction, + fnIndex, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + let called = false; + const imports = { + "module": { + "fn": function() { + called = true; + return 6; + }, + }, + }; + + return { + buffer, + args: [imports], + exports: { + "fn2": { "kind": "function", "name": String(fn2.index), "length": 0 }, + }, + verify: instance => { + assert_throws_js(TypeError, () => instance.exports.fn2()); + assert_true(called, "Should have called into JS"); + } + }; + } + ], + + [ + "import with function that takes and returns i64", + function() { + const builder = new WasmModuleBuilder(); + + const fnIndex = builder.addImport("module", "fn", kSig_l_l); + const fn2 = builder + .addFunction("fn2", kSig_l_v) + .addBody([ + kExprI64Const, 0x66, + kExprCallFunction, + fnIndex, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + let called = false; + const imports = { + "module": { + "fn": function(n) { + called = true; + assert_equals(n, -26n); + return { valueOf() { return 6n; } }; + }, + }, + }; + + return { + buffer, + args: [imports], + exports: { + "fn2": { "kind": "function", "name": String(fn2.index), "length": 0 }, + }, + verify: instance => { + assert_equals(instance.exports.fn2(), 6n); + assert_true(called, "Should have called into JS"); + } + }; + } + ], + + [ + "import with i32-taking function", + function() { + const builder = new WasmModuleBuilder(); + + const fn = builder + .addFunction("fn", kSig_v_i) + .addBody([ + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + return { + buffer, + args: [], + exports: { + "fn": { "kind": "function", "name": String(fn.index), "length": 1 }, + }, + verify: instance => assert_throws_js(TypeError, () => instance.exports.fn(6n)) + }; + } + ], + + [ + "import with i64-taking function", + function() { + const builder = new WasmModuleBuilder(); + + const fn = builder + .addFunction("fn", kSig_v_l) + .addBody([ + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + return { + buffer, + args: [], + exports: { + "fn": { "kind": "function", "name": String(fn.index), "length": 1 }, + }, + verify: instance => assert_throws_js(TypeError, () => instance.exports.fn(6)) + }; + } + ], + + [ + "export i64-returning function", + function() { + const builder = new WasmModuleBuilder(); + + const fn = builder + .addFunction("fn", kSig_l_v) + .addBody([ + kExprI64Const, 0x66, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + return { + buffer, + args: [], + exports: { + "fn": { "kind": "function", "name": String(fn.index), "length": 0 }, + }, + verify: instance => assert_equals(instance.exports.fn(), -26n) + }; + } + ], + + [ + "i32 mutable WebAssembly.Global import", + function() { + const initial = 102; + const value = new WebAssembly.Global({ "value": "i32", "mutable": true }, initial); + + const builder = new WasmModuleBuilder(); + + const index = builder.addImportedGlobal("module", "global", kWasmI32, true); + const fn = builder + .addFunction("fn", kSig_i_v) + .addBody([ + kExprGlobalGet, + index, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const imports = { + "module": { + "global": value, + }, + }; + + const exports = { + "fn": { "kind": "function", "name": String(fn.index), "length": 0 }, + }; + + return { + buffer, + args: [imports], + exports, + verify: instance => { + assert_equals(instance.exports.fn(), initial); + const after = 201; + value.value = after; + assert_equals(instance.exports.fn(), after); + } + }; + } + ], + + [ + "i64 mutable WebAssembly.Global import", + function() { + const initial = 102n; + const value = new WebAssembly.Global({ "value": "i64", "mutable": true }, initial); + + const builder = new WasmModuleBuilder(); + + const index = builder.addImportedGlobal("module", "global", kWasmI64, true); + const fn = builder + .addFunction("fn", kSig_l_v) + .addBody([ + kExprGlobalGet, + index, + kExprReturn, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const imports = { + "module": { + "global": value, + }, + }; + + const exports = { + "fn": { "kind": "function", "name": String(fn.index), "length": 0 }, + }; + + return { + buffer, + args: [imports], + exports, + verify: instance => { + assert_equals(instance.exports.fn(), initial); + const after = 201n; + value.value = after; + assert_equals(instance.exports.fn(), after); + } + }; + } + ], + + [ + "Multiple i64 arguments", + function() { + const builder = new WasmModuleBuilder(); + + const fn = builder + .addFunction("fn", kSig_l_ll) + .addBody([ + kExprLocalGet, 1, + ]) + .exportFunc(); + + const buffer = builder.toBuffer(); + + const exports = { + "fn": { "kind": "function", "name": String(fn.index), "length": 2 }, + }; + + return { + buffer, + args: [], + exports, + verify: instance => { + const fn = instance.exports.fn; + assert_equals(fn(1n, 0n), 0n); + assert_equals(fn(1n, 123n), 123n); + assert_equals(fn(1n, -123n), -123n); + assert_equals(fn(1n, "5"), 5n); + assert_throws_js(TypeError, () => fn(1n, 5)); + } + }; + } + ], + + [ + "stray argument", + function() { + return { + buffer: emptyModuleBinary, + args: [{}, {}], + exports: {}, + verify: () => {} + }; + } + ], +]; diff --git a/test/fixtures/wpt/wasm/jsapi/interface.any.js b/test/fixtures/wpt/wasm/jsapi/interface.any.js new file mode 100644 index 00000000000000..19d29ead0a7264 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/interface.any.js @@ -0,0 +1,160 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function test_operations(object, object_name, operations) { + for (const [name, length] of operations) { + test(() => { + const propdesc = Object.getOwnPropertyDescriptor(object, name); + assert_equals(typeof propdesc, "object"); + assert_true(propdesc.writable, "writable"); + assert_true(propdesc.enumerable, "enumerable"); + assert_true(propdesc.configurable, "configurable"); + assert_equals(propdesc.value, object[name]); + }, `${object_name}.${name}`); + + test(() => { + assert_function_name(object[name], name, `${object_name}.${name}`); + }, `${object_name}.${name}: name`); + + test(() => { + assert_function_length(object[name], length, `${object_name}.${name}`); + }, `${object_name}.${name}: length`); + } +} + +function test_attributes(object, object_name, attributes) { + for (const [name, mutable] of attributes) { + test(() => { + const propdesc = Object.getOwnPropertyDescriptor(object, name); + assert_equals(typeof propdesc, "object"); + assert_true(propdesc.enumerable, "enumerable"); + assert_true(propdesc.configurable, "configurable"); + }, `${object_name}.${name}`); + + test(() => { + const propdesc = Object.getOwnPropertyDescriptor(object, name); + assert_equals(typeof propdesc, "object"); + assert_equals(typeof propdesc.get, "function"); + assert_function_name(propdesc.get, "get " + name, `getter for "${name}"`); + assert_function_length(propdesc.get, 0, `getter for "${name}"`); + }, `${object_name}.${name}: getter`); + + test(() => { + const propdesc = Object.getOwnPropertyDescriptor(object, name); + assert_equals(typeof propdesc, "object"); + if (mutable) { + assert_equals(typeof propdesc.set, "function"); + assert_function_name(propdesc.set, "set " + name, `setter for "${name}"`); + assert_function_length(propdesc.set, 1, `setter for "${name}"`); + } else { + assert_equals(typeof propdesc.set, "undefined"); + } + }, `${object_name}.${name}: setter`); + } +} + +test(() => { + const propdesc = Object.getOwnPropertyDescriptor(this, "WebAssembly"); + assert_equals(typeof propdesc, "object"); + assert_true(propdesc.writable, "writable"); + assert_false(propdesc.enumerable, "enumerable"); + assert_true(propdesc.configurable, "configurable"); + assert_equals(propdesc.value, this.WebAssembly); +}, "WebAssembly: property descriptor"); + +test(() => { + assert_throws_js(TypeError, () => WebAssembly()); +}, "WebAssembly: calling"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly()); +}, "WebAssembly: constructing"); + +const interfaces = [ + "Module", + "Instance", + "Memory", + "Table", + "Global", + "CompileError", + "LinkError", + "RuntimeError", +]; + +for (const name of interfaces) { + test(() => { + const propdesc = Object.getOwnPropertyDescriptor(WebAssembly, name); + assert_equals(typeof propdesc, "object"); + assert_true(propdesc.writable, "writable"); + assert_false(propdesc.enumerable, "enumerable"); + assert_true(propdesc.configurable, "configurable"); + assert_equals(propdesc.value, WebAssembly[name]); + }, `WebAssembly.${name}: property descriptor`); + + test(() => { + const interface_object = WebAssembly[name]; + const propdesc = Object.getOwnPropertyDescriptor(interface_object, "prototype"); + assert_equals(typeof propdesc, "object"); + assert_false(propdesc.writable, "writable"); + assert_false(propdesc.enumerable, "enumerable"); + assert_false(propdesc.configurable, "configurable"); + }, `WebAssembly.${name}: prototype`); + + test(() => { + const interface_object = WebAssembly[name]; + const interface_prototype_object = interface_object.prototype; + const propdesc = Object.getOwnPropertyDescriptor(interface_prototype_object, "constructor"); + assert_equals(typeof propdesc, "object"); + assert_true(propdesc.writable, "writable"); + assert_false(propdesc.enumerable, "enumerable"); + assert_true(propdesc.configurable, "configurable"); + assert_equals(propdesc.value, interface_object); + }, `WebAssembly.${name}: prototype.constructor`); +} + +test_operations(WebAssembly, "WebAssembly", [ + ["validate", 1], + ["compile", 1], + ["instantiate", 1], +]); + + +test_operations(WebAssembly.Module, "WebAssembly.Module", [ + ["exports", 1], + ["imports", 1], + ["customSections", 2], +]); + + +test_attributes(WebAssembly.Instance.prototype, "WebAssembly.Instance", [ + ["exports", false], +]); + + +test_operations(WebAssembly.Memory.prototype, "WebAssembly.Memory", [ + ["grow", 1], +]); + +test_attributes(WebAssembly.Memory.prototype, "WebAssembly.Memory", [ + ["buffer", false], +]); + + +test_operations(WebAssembly.Table.prototype, "WebAssembly.Table", [ + ["grow", 1], + ["get", 1], + ["set", 1], +]); + +test_attributes(WebAssembly.Table.prototype, "WebAssembly.Table", [ + ["length", false], +]); + + +test_operations(WebAssembly.Global.prototype, "WebAssembly.Global", [ + ["valueOf", 0], +]); + +test_attributes(WebAssembly.Global.prototype, "WebAssembly.Global", [ + ["value", true], +]); diff --git a/test/fixtures/wpt/wasm/jsapi/memory/assertions.js b/test/fixtures/wpt/wasm/jsapi/memory/assertions.js new file mode 100644 index 00000000000000..b539513adcab7d --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/memory/assertions.js @@ -0,0 +1,38 @@ +function assert_ArrayBuffer(actual, { size=0, shared=false, detached=false }, message) { + // https://github.com/WebAssembly/spec/issues/840 + // See https://github.com/whatwg/html/issues/5380 for why not `self.SharedArrayBuffer` + const isShared = !("isView" in actual.constructor); + assert_equals(isShared, shared, `${message}: constructor`); + const sharedString = shared ? "Shared" : ""; + assert_equals(actual.toString(), `[object ${sharedString}ArrayBuffer]`, `${message}: toString()`); + assert_equals(Object.getPrototypeOf(actual).toString(), `[object ${sharedString}ArrayBuffer]`, `${message}: prototype toString()`); + if (detached) { + // https://github.com/tc39/ecma262/issues/678 + let byteLength; + try { + byteLength = actual.byteLength; + } catch (e) { + byteLength = 0; + } + assert_equals(byteLength, 0, `${message}: detached size`); + } else { + assert_equals(actual.byteLength, 0x10000 * size, `${message}: size`); + if (size > 0) { + const array = new Uint8Array(actual); + assert_equals(array[0], 0, `${message}: first element`); + assert_equals(array[array.byteLength - 1], 0, `${message}: last element`); + } + } + assert_equals(Object.isFrozen(actual), shared, "buffer frozen"); + assert_equals(Object.isExtensible(actual), !shared, "buffer extensibility"); +} + +function assert_Memory(memory, { size=0, shared=false }) { + assert_equals(Object.getPrototypeOf(memory), WebAssembly.Memory.prototype, + "prototype"); + assert_true(Object.isExtensible(memory), "extensible"); + + // https://github.com/WebAssembly/spec/issues/840 + assert_equals(memory.buffer, memory.buffer, "buffer should be idempotent"); + assert_ArrayBuffer(memory.buffer, { size, shared }); +} diff --git a/test/fixtures/wpt/wasm/jsapi/memory/buffer.any.js b/test/fixtures/wpt/wasm/jsapi/memory/buffer.any.js new file mode 100644 index 00000000000000..fb1d1200b892be --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/memory/buffer.any.js @@ -0,0 +1,64 @@ +// META: global=window,dedicatedworker,jsshell + +test(() => { + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Memory, + WebAssembly.Memory.prototype, + ]; + + const desc = Object.getOwnPropertyDescriptor(WebAssembly.Memory.prototype, "buffer"); + assert_equals(typeof desc, "object"); + + const getter = desc.get; + assert_equals(typeof getter, "function"); + + assert_equals(typeof desc.set, "undefined"); + + for (const thisValue of thisValues) { + assert_throws_js(TypeError, () => getter.call(thisValue), `this=${format_value(thisValue)}`); + } +}, "Branding"); + +test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument); + const buffer = memory.buffer; + + const desc = Object.getOwnPropertyDescriptor(WebAssembly.Memory.prototype, "buffer"); + assert_equals(typeof desc, "object"); + + const getter = desc.get; + assert_equals(typeof getter, "function"); + + assert_equals(getter.call(memory, {}), buffer); +}, "Stray argument"); + +test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument); + const memory2 = new WebAssembly.Memory(argument); + const buffer = memory.buffer; + assert_not_equals(buffer, memory2.buffer, "Need two distinct buffers"); + memory.buffer = memory2.buffer; + assert_equals(memory.buffer, buffer, "Should not change the buffer"); +}, "Setting (sloppy mode)"); + +test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument); + const memory2 = new WebAssembly.Memory(argument); + const buffer = memory.buffer; + assert_not_equals(buffer, memory2.buffer, "Need two distinct buffers"); + assert_throws_js(TypeError, () => { + "use strict"; + memory.buffer = memory2.buffer; + }); + assert_equals(memory.buffer, buffer, "Should not change the buffer"); +}, "Setting (strict mode)"); diff --git a/test/fixtures/wpt/wasm/jsapi/memory/constructor-shared.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/memory/constructor-shared.tentative.any.js new file mode 100644 index 00000000000000..216fc4ca55591f --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/memory/constructor-shared.tentative.any.js @@ -0,0 +1,54 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js +// META: script=/wasm/jsapi/memory/assertions.js + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Memory({ "initial": 10, "shared": true })); +}, "Shared memory without maximum"); + +test(t => { + const order = []; + + new WebAssembly.Memory({ + get maximum() { + order.push("maximum"); + return { + valueOf() { + order.push("maximum valueOf"); + return 1; + }, + }; + }, + + get initial() { + order.push("initial"); + return { + valueOf() { + order.push("initial valueOf"); + return 1; + }, + }; + }, + + get shared() { + order.push("shared"); + return { + valueOf: t.unreached_func("should not call shared valueOf"), + }; + }, + }); + + assert_array_equals(order, [ + "initial", + "initial valueOf", + "maximum", + "maximum valueOf", + "shared", + ]); +}, "Order of evaluation for descriptor (with shared)"); + +test(() => { + const argument = { "initial": 4, "maximum": 10, shared: true }; + const memory = new WebAssembly.Memory(argument); + assert_Memory(memory, { "size": 4, "shared": true }); +}, "Shared memory"); diff --git a/test/fixtures/wpt/wasm/jsapi/memory/constructor-types.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/memory/constructor-types.tentative.any.js new file mode 100644 index 00000000000000..d5378dbe82b00b --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/memory/constructor-types.tentative.any.js @@ -0,0 +1,20 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js +// META: script=/wasm/jsapi/memory/assertions.js + +test(() => { + const argument = { initial: 5, minimum: 6 }; + assert_throws_js(TypeError, () => new WebAssembly.Memory(argument)); +}, "Initializing with both initial and minimum"); + +test(() => { + const argument = { minimum: 0 }; + const memory = new WebAssembly.Memory(argument); + assert_Memory(memory, { "size": 0 }); + }, "Zero minimum"); + +test(() => { + const argument = { minimum: 4 }; + const memory = new WebAssembly.Memory(argument); + assert_Memory(memory, { "size": 4 }); + }, "Non-zero minimum"); \ No newline at end of file diff --git a/test/fixtures/wpt/wasm/jsapi/memory/constructor.any.js b/test/fixtures/wpt/wasm/jsapi/memory/constructor.any.js new file mode 100644 index 00000000000000..0a0be11e370877 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/memory/constructor.any.js @@ -0,0 +1,139 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js +// META: script=/wasm/jsapi/memory/assertions.js + +test(() => { + assert_function_name(WebAssembly.Memory, "Memory", "WebAssembly.Memory"); +}, "name"); + +test(() => { + assert_function_length(WebAssembly.Memory, 1, "WebAssembly.Memory"); +}, "length"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Memory()); +}, "No arguments"); + +test(() => { + const argument = { "initial": 0 }; + assert_throws_js(TypeError, () => WebAssembly.Memory(argument)); +}, "Calling"); + +test(() => { + const invalidArguments = [ + undefined, + null, + false, + true, + "", + "test", + Symbol(), + 1, + NaN, + {}, + ]; + for (const invalidArgument of invalidArguments) { + assert_throws_js(TypeError, + () => new WebAssembly.Memory(invalidArgument), + `new Memory(${format_value(invalidArgument)})`); + } +}, "Invalid descriptor argument"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Memory({ "initial": undefined })); +}, "Undefined initial value in descriptor"); + +const outOfRangeValues = [ + NaN, + Infinity, + -Infinity, + -1, + 0x100000000, + 0x1000000000, +]; + +for (const value of outOfRangeValues) { + test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Memory({ "initial": value })); + }, `Out-of-range initial value in descriptor: ${format_value(value)}`); + + test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Memory({ "initial": 0, "maximum": value })); + }, `Out-of-range maximum value in descriptor: ${format_value(value)}`); +} + +test(() => { + assert_throws_js(RangeError, () => new WebAssembly.Memory({ "initial": 10, "maximum": 9 })); +}, "Initial value exceeds maximum"); + +test(() => { + const proxy = new Proxy({}, { + has(o, x) { + assert_unreached(`Should not call [[HasProperty]] with ${x}`); + }, + get(o, x) { + // Due to the requirement not to supply both minimum and initial, we need to ignore one of them. + switch (x) { + case "shared": + return false; + case "initial": + case "maximum": + return 0; + default: + return undefined; + } + }, + }); + new WebAssembly.Memory(proxy); +}, "Proxy descriptor"); + +test(() => { + const order = []; + + new WebAssembly.Memory({ + get maximum() { + order.push("maximum"); + return { + valueOf() { + order.push("maximum valueOf"); + return 1; + }, + }; + }, + + get initial() { + order.push("initial"); + return { + valueOf() { + order.push("initial valueOf"); + return 1; + }, + }; + }, + }); + + assert_array_equals(order, [ + "initial", + "initial valueOf", + "maximum", + "maximum valueOf", + ]); +}, "Order of evaluation for descriptor"); + +test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument); + assert_Memory(memory, { "size": 0 }); +}, "Zero initial"); + +test(() => { + const argument = { "initial": 4 }; + const memory = new WebAssembly.Memory(argument); + assert_Memory(memory, { "size": 4 }); +}, "Non-zero initial"); + +test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument, {}); + assert_Memory(memory, { "size": 0 }); +}, "Stray argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/memory/grow.any.js b/test/fixtures/wpt/wasm/jsapi/memory/grow.any.js new file mode 100644 index 00000000000000..c511129491f4de --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/memory/grow.any.js @@ -0,0 +1,189 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/memory/assertions.js + +test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument); + assert_throws_js(TypeError, () => memory.grow()); +}, "Missing arguments"); + +test(t => { + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Memory, + WebAssembly.Memory.prototype, + ]; + + const argument = { + valueOf: t.unreached_func("Should not touch the argument (valueOf)"), + toString: t.unreached_func("Should not touch the argument (toString)"), + }; + + const fn = WebAssembly.Memory.prototype.grow; + + for (const thisValue of thisValues) { + assert_throws_js(TypeError, () => fn.call(thisValue, argument), `this=${format_value(thisValue)}`); + } +}, "Branding"); + +test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument); + const oldMemory = memory.buffer; + assert_ArrayBuffer(oldMemory, { "size": 0 }, "Buffer before growing"); + + const result = memory.grow(2); + assert_equals(result, 0); + + const newMemory = memory.buffer; + assert_not_equals(oldMemory, newMemory); + assert_ArrayBuffer(oldMemory, { "detached": true }, "Old buffer after growing"); + assert_ArrayBuffer(newMemory, { "size": 2 }, "New buffer after growing"); +}, "Zero initial"); + +test(() => { + const argument = { "initial": { valueOf() { return 0 } } }; + const memory = new WebAssembly.Memory(argument); + const oldMemory = memory.buffer; + assert_ArrayBuffer(oldMemory, { "size": 0 }, "Buffer before growing"); + + const result = memory.grow({ valueOf() { return 2 } }); + assert_equals(result, 0); + + const newMemory = memory.buffer; + assert_not_equals(oldMemory, newMemory); + assert_ArrayBuffer(oldMemory, { "detached": true }, "Old buffer after growing"); + assert_ArrayBuffer(newMemory, { "size": 2 }, "New buffer after growing"); +}, "Zero initial with valueOf"); + +test(() => { + const argument = { "initial": 3 }; + const memory = new WebAssembly.Memory(argument); + const oldMemory = memory.buffer; + assert_ArrayBuffer(oldMemory, { "size": 3 }, "Buffer before growing"); + + const result = memory.grow(2); + assert_equals(result, 3); + + const newMemory = memory.buffer; + assert_not_equals(oldMemory, newMemory); + assert_ArrayBuffer(oldMemory, { "detached": true }, "Old buffer after growing"); + assert_ArrayBuffer(newMemory, { "size": 5 }, "New buffer after growing"); +}, "Non-zero initial"); + +test(() => { + const argument = { "initial": 0, "maximum": 2 }; + const memory = new WebAssembly.Memory(argument); + const oldMemory = memory.buffer; + assert_ArrayBuffer(oldMemory, { "size": 0 }, "Buffer before growing"); + + const result = memory.grow(2); + assert_equals(result, 0); + + const newMemory = memory.buffer; + assert_not_equals(oldMemory, newMemory); + assert_ArrayBuffer(oldMemory, { "detached": true }, "Old buffer after growing"); + assert_ArrayBuffer(newMemory, { "size": 2 }, "New buffer after growing"); +}, "Zero initial with respected maximum"); + +test(() => { + const argument = { "initial": 0, "maximum": 2 }; + const memory = new WebAssembly.Memory(argument); + const oldMemory = memory.buffer; + assert_ArrayBuffer(oldMemory, { "size": 0 }, "Buffer before growing"); + + const result = memory.grow(1); + assert_equals(result, 0); + + const newMemory = memory.buffer; + assert_not_equals(oldMemory, newMemory); + assert_ArrayBuffer(oldMemory, { "detached": true }, "Old buffer after growing once"); + assert_ArrayBuffer(newMemory, { "size": 1 }, "New buffer after growing once"); + + const result2 = memory.grow(1); + assert_equals(result2, 1); + + const newestMemory = memory.buffer; + assert_not_equals(newMemory, newestMemory); + assert_ArrayBuffer(oldMemory, { "detached": true }, "New buffer after growing twice"); + assert_ArrayBuffer(newMemory, { "detached": true }, "New buffer after growing twice"); + assert_ArrayBuffer(newestMemory, { "size": 2 }, "Newest buffer after growing twice"); +}, "Zero initial with respected maximum grown twice"); + +test(() => { + const argument = { "initial": 1, "maximum": 2 }; + const memory = new WebAssembly.Memory(argument); + const oldMemory = memory.buffer; + assert_ArrayBuffer(oldMemory, { "size": 1 }, "Buffer before growing"); + + assert_throws_js(RangeError, () => memory.grow(2)); + assert_equals(memory.buffer, oldMemory); + assert_ArrayBuffer(memory.buffer, { "size": 1 }, "Buffer before trying to grow"); +}, "Zero initial growing too much"); + +const outOfRangeValues = [ + undefined, + NaN, + Infinity, + -Infinity, + -1, + 0x100000000, + 0x1000000000, + "0x100000000", + { valueOf() { return 0x100000000; } }, +]; + +for (const value of outOfRangeValues) { + test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument); + assert_throws_js(TypeError, () => memory.grow(value)); + }, `Out-of-range argument: ${format_value(value)}`); +} + +test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument); + const oldMemory = memory.buffer; + assert_ArrayBuffer(oldMemory, { "size": 0 }, "Buffer before growing"); + + const result = memory.grow(2, {}); + assert_equals(result, 0); + + const newMemory = memory.buffer; + assert_not_equals(oldMemory, newMemory); + assert_ArrayBuffer(oldMemory, { "detached": true }, "Old buffer after growing"); + assert_ArrayBuffer(newMemory, { "size": 2 }, "New buffer after growing"); +}, "Stray argument"); + +test(() => { + const argument = { "initial": 1, "maximum": 2, "shared": true }; + const memory = new WebAssembly.Memory(argument); + const oldMemory = memory.buffer; + assert_ArrayBuffer(oldMemory, { "size": 1, "shared": true }, "Buffer before growing"); + + const result = memory.grow(1); + assert_equals(result, 1); + + const newMemory = memory.buffer; + assert_not_equals(oldMemory, newMemory); + assert_ArrayBuffer(oldMemory, { "size": 1, "shared": true }, "Old buffer after growing"); + assert_ArrayBuffer(newMemory, { "size": 2, "shared": true }, "New buffer after growing"); + + // The old and new buffers must have the same value for the + // [[ArrayBufferData]] internal slot. + const oldArray = new Uint8Array(oldMemory); + const newArray = new Uint8Array(newMemory); + assert_equals(oldArray[0], 0, "old first element"); + assert_equals(newArray[0], 0, "new first element"); + oldArray[0] = 1; + assert_equals(oldArray[0], 1, "old first element"); + assert_equals(newArray[0], 1, "new first element"); + +}, "Growing shared memory does not detach old buffer"); diff --git a/test/fixtures/wpt/wasm/jsapi/memory/toString.any.js b/test/fixtures/wpt/wasm/jsapi/memory/toString.any.js new file mode 100644 index 00000000000000..f4059f76577227 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/memory/toString.any.js @@ -0,0 +1,17 @@ +// META: global=window,dedicatedworker,jsshell + +test(() => { + const argument = { "initial": 0 }; + const memory = new WebAssembly.Memory(argument); + assert_class_string(memory, "WebAssembly.Memory"); +}, "Object.prototype.toString on an Memory"); + +test(() => { + assert_own_property(WebAssembly.Memory.prototype, Symbol.toStringTag); + + const propDesc = Object.getOwnPropertyDescriptor(WebAssembly.Memory.prototype, Symbol.toStringTag); + assert_equals(propDesc.value, "WebAssembly.Memory", "value"); + assert_equals(propDesc.configurable, true, "configurable"); + assert_equals(propDesc.enumerable, false, "enumerable"); + assert_equals(propDesc.writable, false, "writable"); +}, "@@toStringTag exists on the prototype with the appropriate descriptor"); diff --git a/test/fixtures/wpt/wasm/jsapi/memory/type.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/memory/type.tentative.any.js new file mode 100644 index 00000000000000..a96a3227adca7f --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/memory/type.tentative.any.js @@ -0,0 +1,37 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function assert_type(argument) { + const memory = new WebAssembly.Memory(argument); + const memorytype = memory.type() + + assert_equals(memorytype.minimum, argument.minimum); + assert_equals(memorytype.maximum, argument.maximum); + if (argument.shared !== undefined) { + assert_equals(memorytype.shared, argument.shared); + } +} + +test(() => { + assert_type({ "minimum": 0 }); +}, "Zero initial, no maximum"); + +test(() => { + assert_type({ "minimum": 5 }); +}, "Non-zero initial, no maximum"); + +test(() => { + assert_type({ "minimum": 0, "maximum": 0 }); +}, "Zero maximum"); + +test(() => { + assert_type({ "minimum": 0, "maximum": 5 }); +}, "None-zero maximum"); + +test(() => { + assert_type({ "minimum": 0, "maximum": 10, "shared": false}); +}, "non-shared memory"); + +test(() => { + assert_type({ "minimum": 0, "maximum": 10, "shared": true}); +}, "shared memory"); \ No newline at end of file diff --git a/test/fixtures/wpt/wasm/jsapi/module/constructor.any.js b/test/fixtures/wpt/wasm/jsapi/module/constructor.any.js new file mode 100644 index 00000000000000..9978f7e6ac8f2b --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/module/constructor.any.js @@ -0,0 +1,69 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=/wasm/jsapi/assertions.js + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +test(() => { + assert_function_name(WebAssembly.Module, "Module", "WebAssembly.Module"); +}, "name"); + +test(() => { + assert_function_length(WebAssembly.Module, 1, "WebAssembly.Module"); +}, "length"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Module()); +}, "No arguments"); + +test(() => { + assert_throws_js(TypeError, () => WebAssembly.Module(emptyModuleBinary)); +}, "Calling"); + +test(() => { + const invalidArguments = [ + undefined, + null, + true, + "test", + Symbol(), + 7, + NaN, + {}, + ArrayBuffer, + ArrayBuffer.prototype, + Array.from(emptyModuleBinary), + ]; + for (const argument of invalidArguments) { + assert_throws_js(TypeError, () => new WebAssembly.Module(argument), + `new Module(${format_value(argument)})`); + } +}, "Invalid arguments"); + +test(() => { + const buffer = new Uint8Array(); + assert_throws_js(WebAssembly.CompileError, () => new WebAssembly.Module(buffer)); +}, "Empty buffer"); + +test(() => { + const buffer = new Uint8Array(Array.from(emptyModuleBinary).concat([0, 0])); + assert_throws_js(WebAssembly.CompileError, () => new WebAssembly.Module(buffer)); +}, "Invalid code"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + assert_equals(Object.getPrototypeOf(module), WebAssembly.Module.prototype); +}, "Prototype"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + assert_true(Object.isExtensible(module)); +}, "Extensibility"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary, {}); + assert_equals(Object.getPrototypeOf(module), WebAssembly.Module.prototype); +}, "Stray argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/module/customSections.any.js b/test/fixtures/wpt/wasm/jsapi/module/customSections.any.js new file mode 100644 index 00000000000000..4029877e92c7b8 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/module/customSections.any.js @@ -0,0 +1,140 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +function assert_ArrayBuffer(buffer, expected) { + assert_equals(Object.getPrototypeOf(buffer), ArrayBuffer.prototype, "Prototype"); + assert_true(Object.isExtensible(buffer), "isExtensible"); + assert_array_equals(new Uint8Array(buffer), expected); +} + +function assert_sections(sections, expected) { + assert_true(Array.isArray(sections), "Should be array"); + assert_equals(Object.getPrototypeOf(sections), Array.prototype, "Prototype"); + assert_true(Object.isExtensible(sections), "isExtensible"); + + assert_equals(sections.length, expected.length); + for (let i = 0; i < expected.length; ++i) { + assert_ArrayBuffer(sections[i], expected[i]); + } +} + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +test(() => { + assert_throws_js(TypeError, () => WebAssembly.Module.customSections()); + const module = new WebAssembly.Module(emptyModuleBinary); + assert_throws_js(TypeError, () => WebAssembly.Module.customSections(module)); +}, "Missing arguments"); + +test(() => { + const invalidArguments = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Module, + WebAssembly.Module.prototype, + ]; + for (const argument of invalidArguments) { + assert_throws_js(TypeError, () => WebAssembly.Module.customSections(argument, ""), + `customSections(${format_value(argument)})`); + } +}, "Non-Module arguments"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const fn = WebAssembly.Module.customSections; + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Module, + WebAssembly.Module.prototype, + ]; + for (const thisValue of thisValues) { + assert_sections(fn.call(thisValue, module, ""), []); + } +}, "Branding"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + assert_sections(WebAssembly.Module.customSections(module, ""), []); +}, "Empty module"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + assert_not_equals(WebAssembly.Module.customSections(module, ""), + WebAssembly.Module.customSections(module, "")); +}, "Empty module: array caching"); + +test(() => { + const bytes1 = [87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121]; + const bytes2 = [74, 83, 65, 80, 73]; + + const builder = new WasmModuleBuilder(); + builder.addCustomSection("name", bytes1); + builder.addCustomSection("name", bytes2); + builder.addCustomSection("foo", bytes1); + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + + assert_sections(WebAssembly.Module.customSections(module, "name"), [ + bytes1, + bytes2, + ]) + + assert_sections(WebAssembly.Module.customSections(module, "foo"), [ + bytes1, + ]) + + assert_sections(WebAssembly.Module.customSections(module, ""), []) + assert_sections(WebAssembly.Module.customSections(module, "\0"), []) + assert_sections(WebAssembly.Module.customSections(module, "name\0"), []) + assert_sections(WebAssembly.Module.customSections(module, "foo\0"), []) +}, "Custom sections"); + +test(() => { + const bytes = [87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121]; + const name = "yee\uD801\uDC37eey" + + const builder = new WasmModuleBuilder(); + builder.addCustomSection(name, bytes); + const buffer = builder.toBuffer(); + const module = new WebAssembly.Module(buffer); + + assert_sections(WebAssembly.Module.customSections(module, name), [ + bytes, + ]); + assert_sections(WebAssembly.Module.customSections(module, "yee\uFFFDeey"), []); + assert_sections(WebAssembly.Module.customSections(module, "yee\uFFFD\uFFFDeey"), []); +}, "Custom sections with surrogate pairs"); + +test(() => { + const bytes = [87, 101, 98, 65, 115, 115, 101, 109, 98, 108, 121]; + + const builder = new WasmModuleBuilder(); + builder.addCustomSection("na\uFFFDme", bytes); + const buffer = builder.toBuffer(); + const module = new WebAssembly.Module(buffer); + + assert_sections(WebAssembly.Module.customSections(module, "name"), []); + assert_sections(WebAssembly.Module.customSections(module, "na\uFFFDme"), [ + bytes, + ]); + assert_sections(WebAssembly.Module.customSections(module, "na\uDC01me"), []); +}, "Custom sections with U+FFFD"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + assert_sections(WebAssembly.Module.customSections(module, "", {}), []); +}, "Stray argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/module/exports.any.js b/test/fixtures/wpt/wasm/jsapi/module/exports.any.js new file mode 100644 index 00000000000000..40a3935a4a23ba --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/module/exports.any.js @@ -0,0 +1,185 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +function assert_ModuleExportDescriptor(export_, expected) { + assert_equals(Object.getPrototypeOf(export_), Object.prototype, "Prototype"); + assert_true(Object.isExtensible(export_), "isExtensible"); + + const name = Object.getOwnPropertyDescriptor(export_, "name"); + assert_true(name.writable, "name: writable"); + assert_true(name.enumerable, "name: enumerable"); + assert_true(name.configurable, "name: configurable"); + assert_equals(name.value, expected.name); + + const kind = Object.getOwnPropertyDescriptor(export_, "kind"); + assert_true(kind.writable, "kind: writable"); + assert_true(kind.enumerable, "kind: enumerable"); + assert_true(kind.configurable, "kind: configurable"); + assert_equals(kind.value, expected.kind); +} + +function assert_exports(exports, expected) { + assert_true(Array.isArray(exports), "Should be array"); + assert_equals(Object.getPrototypeOf(exports), Array.prototype, "Prototype"); + assert_true(Object.isExtensible(exports), "isExtensible"); + + assert_equals(exports.length, expected.length); + for (let i = 0; i < expected.length; ++i) { + assert_ModuleExportDescriptor(exports[i], expected[i]); + } +} + +test(() => { + assert_throws_js(TypeError, () => WebAssembly.Module.exports()); +}, "Missing arguments"); + +test(() => { + const invalidArguments = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Module, + WebAssembly.Module.prototype, + ]; + for (const argument of invalidArguments) { + assert_throws_js(TypeError, () => WebAssembly.Module.exports(argument), + `exports(${format_value(argument)})`); + } +}, "Non-Module arguments"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const fn = WebAssembly.Module.exports; + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Module, + WebAssembly.Module.prototype, + ]; + for (const thisValue of thisValues) { + assert_array_equals(fn.call(thisValue, module), []); + } +}, "Branding"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const exports = WebAssembly.Module.exports(module); + assert_true(Array.isArray(exports)); +}, "Return type"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const exports = WebAssembly.Module.exports(module); + assert_exports(exports, []); +}, "Empty module"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + assert_not_equals(WebAssembly.Module.exports(module), WebAssembly.Module.exports(module)); +}, "Empty module: array caching"); + +test(() => { + const builder = new WasmModuleBuilder(); + + builder + .addFunction("fn", kSig_v_v) + .addBody([]) + .exportFunc(); + builder + .addFunction("fn2", kSig_v_v) + .addBody([]) + .exportFunc(); + + builder.setTableBounds(1); + builder.addExportOfKind("table", kExternalTable, 0); + + builder.addGlobal(kWasmI32, true) + .exportAs("global") + .init = 7; + builder.addGlobal(kWasmF64, true) + .exportAs("global2") + .init = 1.2; + + builder.addMemory(0, 256, true); + + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + const exports = WebAssembly.Module.exports(module); + const expected = [ + { "kind": "function", "name": "fn" }, + { "kind": "function", "name": "fn2" }, + { "kind": "table", "name": "table" }, + { "kind": "global", "name": "global" }, + { "kind": "global", "name": "global2" }, + { "kind": "memory", "name": "memory" }, + ]; + assert_exports(exports, expected); +}, "exports"); + +test(() => { + const builder = new WasmModuleBuilder(); + + builder + .addFunction("", kSig_v_v) + .addBody([]) + .exportFunc(); + + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + const exports = WebAssembly.Module.exports(module); + const expected = [ + { "kind": "function", "name": "" }, + ]; + assert_exports(exports, expected); +}, "exports with empty name: function"); + +test(() => { + const builder = new WasmModuleBuilder(); + + builder.setTableBounds(1); + builder.addExportOfKind("", kExternalTable, 0); + + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + const exports = WebAssembly.Module.exports(module); + const expected = [ + { "kind": "table", "name": "" }, + ]; + assert_exports(exports, expected); +}, "exports with empty name: table"); + +test(() => { + const builder = new WasmModuleBuilder(); + + builder.addGlobal(kWasmI32, true) + .exportAs("") + .init = 7; + + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + const exports = WebAssembly.Module.exports(module); + const expected = [ + { "kind": "global", "name": "" }, + ]; + assert_exports(exports, expected); +}, "exports with empty name: global"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const exports = WebAssembly.Module.exports(module, {}); + assert_exports(exports, []); +}, "Stray argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/module/imports.any.js b/test/fixtures/wpt/wasm/jsapi/module/imports.any.js new file mode 100644 index 00000000000000..ec550ce6c41af1 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/module/imports.any.js @@ -0,0 +1,185 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +function assert_ModuleImportDescriptor(import_, expected) { + assert_equals(Object.getPrototypeOf(import_), Object.prototype, "Prototype"); + assert_true(Object.isExtensible(import_), "isExtensible"); + + const module = Object.getOwnPropertyDescriptor(import_, "module"); + assert_true(module.writable, "module: writable"); + assert_true(module.enumerable, "module: enumerable"); + assert_true(module.configurable, "module: configurable"); + assert_equals(module.value, expected.module); + + const name = Object.getOwnPropertyDescriptor(import_, "name"); + assert_true(name.writable, "name: writable"); + assert_true(name.enumerable, "name: enumerable"); + assert_true(name.configurable, "name: configurable"); + assert_equals(name.value, expected.name); + + const kind = Object.getOwnPropertyDescriptor(import_, "kind"); + assert_true(kind.writable, "kind: writable"); + assert_true(kind.enumerable, "kind: enumerable"); + assert_true(kind.configurable, "kind: configurable"); + assert_equals(kind.value, expected.kind); +} + +function assert_imports(imports, expected) { + assert_true(Array.isArray(imports), "Should be array"); + assert_equals(Object.getPrototypeOf(imports), Array.prototype, "Prototype"); + assert_true(Object.isExtensible(imports), "isExtensible"); + + assert_equals(imports.length, expected.length); + for (let i = 0; i < expected.length; ++i) { + assert_ModuleImportDescriptor(imports[i], expected[i]); + } +} + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +test(() => { + assert_throws_js(TypeError, () => WebAssembly.Module.imports()); +}, "Missing arguments"); + +test(() => { + const invalidArguments = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Module, + WebAssembly.Module.prototype, + ]; + for (const argument of invalidArguments) { + assert_throws_js(TypeError, () => WebAssembly.Module.imports(argument), + `imports(${format_value(argument)})`); + } +}, "Non-Module arguments"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const fn = WebAssembly.Module.imports; + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Module, + WebAssembly.Module.prototype, + ]; + for (const thisValue of thisValues) { + assert_array_equals(fn.call(thisValue, module), []); + } +}, "Branding"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const imports = WebAssembly.Module.imports(module); + assert_true(Array.isArray(imports)); +}, "Return type"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const imports = WebAssembly.Module.imports(module); + assert_imports(imports, []); +}, "Empty module"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + assert_not_equals(WebAssembly.Module.imports(module), WebAssembly.Module.imports(module)); +}, "Empty module: array caching"); + +test(() => { + const builder = new WasmModuleBuilder(); + + builder.addImport("module", "fn", kSig_v_v); + builder.addImportedGlobal("module", "global", kWasmI32); + builder.addImportedMemory("module", "memory", 0, 128); + builder.addImportedTable("module", "table", 0, 128); + + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + const imports = WebAssembly.Module.imports(module); + const expected = [ + { "module": "module", "kind": "function", "name": "fn" }, + { "module": "module", "kind": "global", "name": "global" }, + { "module": "module", "kind": "memory", "name": "memory" }, + { "module": "module", "kind": "table", "name": "table" }, + ]; + assert_imports(imports, expected); +}, "imports"); + +test(() => { + const builder = new WasmModuleBuilder(); + + builder.addImport("", "fn", kSig_v_v); + builder.addImportedGlobal("", "global", kWasmI32); + builder.addImportedMemory("", "memory", 0, 128); + builder.addImportedTable("", "table", 0, 128); + + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + const imports = WebAssembly.Module.imports(module); + const expected = [ + { "module": "", "kind": "function", "name": "fn" }, + { "module": "", "kind": "global", "name": "global" }, + { "module": "", "kind": "memory", "name": "memory" }, + { "module": "", "kind": "table", "name": "table" }, + ]; + assert_imports(imports, expected); +}, "imports with empty module name"); + +test(() => { + const builder = new WasmModuleBuilder(); + + builder.addImport("a", "", kSig_v_v); + builder.addImportedGlobal("b", "", kWasmI32); + builder.addImportedMemory("c", "", 0, 128); + builder.addImportedTable("d", "", 0, 128); + + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + const imports = WebAssembly.Module.imports(module); + const expected = [ + { "module": "a", "kind": "function", "name": "" }, + { "module": "b", "kind": "global", "name": "" }, + { "module": "c", "kind": "memory", "name": "" }, + { "module": "d", "kind": "table", "name": "" }, + ]; + assert_imports(imports, expected); +}, "imports with empty names"); + +test(() => { + const builder = new WasmModuleBuilder(); + + builder.addImport("", "", kSig_v_v); + builder.addImportedGlobal("", "", kWasmI32); + builder.addImportedMemory("", "", 0, 128); + builder.addImportedTable("", "", 0, 128); + + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + const imports = WebAssembly.Module.imports(module); + const expected = [ + { "module": "", "kind": "function", "name": "" }, + { "module": "", "kind": "global", "name": "" }, + { "module": "", "kind": "memory", "name": "" }, + { "module": "", "kind": "table", "name": "" }, + ]; + assert_imports(imports, expected); +}, "imports with empty module names and names"); + +test(() => { + const module = new WebAssembly.Module(emptyModuleBinary); + const imports = WebAssembly.Module.imports(module, {}); + assert_imports(imports, []); +}, "Stray argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/module/toString.any.js b/test/fixtures/wpt/wasm/jsapi/module/toString.any.js new file mode 100644 index 00000000000000..1c20cd6108c84e --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/module/toString.any.js @@ -0,0 +1,18 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js + +test(() => { + const emptyModuleBinary = new WasmModuleBuilder().toBuffer(); + const module = new WebAssembly.Module(emptyModuleBinary); + assert_class_string(module, "WebAssembly.Module"); +}, "Object.prototype.toString on an Module"); + +test(() => { + assert_own_property(WebAssembly.Module.prototype, Symbol.toStringTag); + + const propDesc = Object.getOwnPropertyDescriptor(WebAssembly.Module.prototype, Symbol.toStringTag); + assert_equals(propDesc.value, "WebAssembly.Module", "value"); + assert_equals(propDesc.configurable, true, "configurable"); + assert_equals(propDesc.enumerable, false, "enumerable"); + assert_equals(propDesc.writable, false, "writable"); +}, "@@toStringTag exists on the prototype with the appropriate descriptor"); diff --git a/test/fixtures/wpt/wasm/jsapi/proto-from-ctor-realm.html b/test/fixtures/wpt/wasm/jsapi/proto-from-ctor-realm.html new file mode 100644 index 00000000000000..45405b52900bf9 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/proto-from-ctor-realm.html @@ -0,0 +1,95 @@ + + +WebAssembly JS API: Default [[Prototype]] value is from NewTarget's Realm + + + + + + + + + + + diff --git a/test/fixtures/wpt/wasm/jsapi/prototypes.any.js b/test/fixtures/wpt/wasm/jsapi/prototypes.any.js new file mode 100644 index 00000000000000..714f4f8430e5eb --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/prototypes.any.js @@ -0,0 +1,43 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js +// META: script=/wasm/jsapi/wasm-module-builder.js + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +test(() => { + class _Module extends WebAssembly.Module {} + let module = new _Module(emptyModuleBinary); + assert_true(module instanceof _Module, "_Module instanceof _Module"); + assert_true(module instanceof WebAssembly.Module, "_Module instanceof WebAssembly.Module"); +}, "_Module"); + +test(() => { + class _Instance extends WebAssembly.Instance {} + let instance = new _Instance(new WebAssembly.Module(emptyModuleBinary)); + assert_true(instance instanceof _Instance, "_Instance instanceof _Instance"); + assert_true(instance instanceof WebAssembly.Instance, "_Instance instanceof WebAssembly.Instance"); +}, "_Instance"); + +test(() => { + class _Memory extends WebAssembly.Memory {} + let memory = new _Memory({initial: 0, maximum: 1}); + assert_true(memory instanceof _Memory, "_Memory instanceof _Memory"); + assert_true(memory instanceof WebAssembly.Memory, "_Memory instanceof WebAssembly.Memory"); +}, "_Memory"); + +test(() => { + class _Table extends WebAssembly.Table {} + let table = new _Table({initial: 0, element: "anyfunc"}); + assert_true(table instanceof _Table, "_Table instanceof _Table"); + assert_true(table instanceof WebAssembly.Table, "_Table instanceof WebAssembly.Table"); +}, "_Table"); + +test(() => { + class _Global extends WebAssembly.Global {} + let global = new _Global({value: "i32", mutable: false}, 0); + assert_true(global instanceof _Global, "_Global instanceof _Global"); + assert_true(global instanceof WebAssembly.Global, "_Global instanceof WebAssembly.Global"); +}, "_Global"); diff --git a/test/fixtures/wpt/wasm/jsapi/table/assertions.js b/test/fixtures/wpt/wasm/jsapi/table/assertions.js new file mode 100644 index 00000000000000..19cc5c3b92d6fa --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/table/assertions.js @@ -0,0 +1,24 @@ +function assert_equal_to_array(table, expected, message) { + assert_equals(table.length, expected.length, `${message}: length`); + // The argument check in get() happens before the range check, and negative numbers + // are illegal, hence will throw TypeError per spec. + assert_throws_js(TypeError, () => table.get(-1), `${message}: table.get(-1)`); + for (let i = 0; i < expected.length; ++i) { + assert_equals(table.get(i), expected[i], `${message}: table.get(${i} of ${expected.length})`); + } + assert_throws_js(RangeError, () => table.get(expected.length), + `${message}: table.get(${expected.length} of ${expected.length})`); + assert_throws_js(RangeError, () => table.get(expected.length + 1), + `${message}: table.get(${expected.length + 1} of ${expected.length})`); +} + +function assert_Table(actual, expected) { + assert_equals(Object.getPrototypeOf(actual), WebAssembly.Table.prototype, + "prototype"); + assert_true(Object.isExtensible(actual), "extensible"); + + assert_equals(actual.length, expected.length, "length"); + for (let i = 0; i < expected.length; ++i) { + assert_equals(actual.get(i), null, `actual.get(${i})`); + } +} diff --git a/test/fixtures/wpt/wasm/jsapi/table/constructor-types.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/table/constructor-types.tentative.any.js new file mode 100644 index 00000000000000..99ca41b55a9152 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/table/constructor-types.tentative.any.js @@ -0,0 +1,20 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js +// META: script=/wasm/jsapi/table/assertions.js + +test(() => { + const argument = { "element": "anyfunc", "initial": 0, "minimum": 0 }; + assert_throws_js(TypeError, () => new WebAssembly.Table(argument)); +}, "Initializing with both initial and minimum"); + +test(() => { + const argument = { "element": "anyfunc", "minimum": 0 }; + const table = new WebAssembly.Table(argument); + assert_Table(table, { "length": 0 }); +}, "Zero minimum"); + +test(() => { + const argument = { "element": "anyfunc", "minimum": 5 }; + const table = new WebAssembly.Table(argument); + assert_Table(table, { "length": 5 }); +}, "Non-zero minimum"); \ No newline at end of file diff --git a/test/fixtures/wpt/wasm/jsapi/table/constructor.any.js b/test/fixtures/wpt/wasm/jsapi/table/constructor.any.js new file mode 100644 index 00000000000000..6d38d04e4f5050 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/table/constructor.any.js @@ -0,0 +1,208 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=/wasm/jsapi/assertions.js +// META: script=/wasm/jsapi/table/assertions.js + +test(() => { + assert_function_name(WebAssembly.Table, "Table", "WebAssembly.Table"); +}, "name"); + +test(() => { + assert_function_length(WebAssembly.Table, 1, "WebAssembly.Table"); +}, "length"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Table()); +}, "No arguments"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 0 }; + assert_throws_js(TypeError, () => WebAssembly.Table(argument)); +}, "Calling"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Table({})); +}, "Empty descriptor"); + +test(() => { + const invalidArguments = [ + undefined, + null, + false, + true, + "", + "test", + Symbol(), + 1, + NaN, + {}, + ]; + for (const invalidArgument of invalidArguments) { + assert_throws_js(TypeError, + () => new WebAssembly.Table(invalidArgument), + `new Table(${format_value(invalidArgument)})`); + } +}, "Invalid descriptor argument"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Table({ "element": "anyfunc", "initial": undefined })); +}, "Undefined initial value in descriptor"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Table({ "element": undefined, "initial": 0 })); +}, "Undefined element value in descriptor"); + +const outOfRangeValues = [ + NaN, + Infinity, + -Infinity, + -1, + 0x100000000, + 0x1000000000, +]; + +for (const value of outOfRangeValues) { + test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Table({ "element": "anyfunc", "initial": value })); + }, `Out-of-range initial value in descriptor: ${format_value(value)}`); + + test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Table({ "element": "anyfunc", "initial": 0, "maximum": value })); + }, `Out-of-range maximum value in descriptor: ${format_value(value)}`); +} + +test(() => { + assert_throws_js(RangeError, () => new WebAssembly.Table({ "element": "anyfunc", "initial": 10, "maximum": 9 })); +}, "Initial value exceeds maximum"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 0 }; + const table = new WebAssembly.Table(argument); + assert_Table(table, { "length": 0 }); +}, "Basic (zero)"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 5 }; + const table = new WebAssembly.Table(argument); + assert_Table(table, { "length": 5 }); +}, "Basic (non-zero)"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 0 }; + const table = new WebAssembly.Table(argument, null, {}); + assert_Table(table, { "length": 0 }); +}, "Stray argument"); + +test(() => { + const proxy = new Proxy({}, { + has(o, x) { + assert_unreached(`Should not call [[HasProperty]] with ${x}`); + }, + get(o, x) { + switch (x) { + case "element": + return "anyfunc"; + case "initial": + case "maximum": + return 0; + default: + return undefined; + } + }, + }); + const table = new WebAssembly.Table(proxy); + assert_Table(table, { "length": 0 }); +}, "Proxy descriptor"); + +test(() => { + const table = new WebAssembly.Table({ + "element": { + toString() { return "anyfunc"; }, + }, + "initial": 1, + }); + assert_Table(table, { "length": 1 }); +}, "Type conversion for descriptor.element"); + +test(() => { + const order = []; + + new WebAssembly.Table({ + get maximum() { + order.push("maximum"); + return { + valueOf() { + order.push("maximum valueOf"); + return 1; + }, + }; + }, + + get initial() { + order.push("initial"); + return { + valueOf() { + order.push("initial valueOf"); + return 1; + }, + }; + }, + + get element() { + order.push("element"); + return { + toString() { + order.push("element toString"); + return "anyfunc"; + }, + }; + }, + }); + + assert_array_equals(order, [ + "element", + "element toString", + "initial", + "initial valueOf", + "maximum", + "maximum valueOf", + ]); +}, "Order of evaluation for descriptor"); + +test(() => { + const testObject = {}; + const argument = { "element": "externref", "initial": 3 }; + const table = new WebAssembly.Table(argument, testObject); + assert_equals(table.length, 3); + assert_equals(table.get(0), testObject); + assert_equals(table.get(1), testObject); + assert_equals(table.get(2), testObject); +}, "initialize externref table with default value"); + +test(() => { + const argument = { "element": "i32", "initial": 3 }; + assert_throws_js(TypeError, () => new WebAssembly.Table(argument)); +}, "initialize table with a wrong element value"); + +test(() => { + const builder = new WasmModuleBuilder(); + builder + .addFunction("fn", kSig_v_v) + .addBody([]) + .exportFunc(); + const bin = builder.toBuffer(); + const fn = new WebAssembly.Instance(new WebAssembly.Module(bin)).exports.fn; + const argument = { "element": "anyfunc", "initial": 3 }; + const table = new WebAssembly.Table(argument, fn); + assert_equals(table.length, 3); + assert_equals(table.get(0), fn); + assert_equals(table.get(1), fn); + assert_equals(table.get(2), fn); +}, "initialize anyfunc table with default value"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 3 }; + assert_throws_js(TypeError, () => new WebAssembly.Table(argument, {})); + assert_throws_js(TypeError, () => new WebAssembly.Table(argument, "cannot be used as a wasm function")); + assert_throws_js(TypeError, () => new WebAssembly.Table(argument, 37)); +}, "initialize anyfunc table with a bad default value"); diff --git a/test/fixtures/wpt/wasm/jsapi/table/get-set.any.js b/test/fixtures/wpt/wasm/jsapi/table/get-set.any.js new file mode 100644 index 00000000000000..9301057a533ed4 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/table/get-set.any.js @@ -0,0 +1,263 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=assertions.js + +let functions = {}; +setup(() => { + const builder = new WasmModuleBuilder(); + + builder + .addFunction("fn", kSig_v_d) + .addBody([]) + .exportFunc(); + builder + .addFunction("fn2", kSig_v_v) + .addBody([]) + .exportFunc(); + + const buffer = builder.toBuffer() + const module = new WebAssembly.Module(buffer); + const instance = new WebAssembly.Instance(module, {}); + functions = instance.exports; +}); + +test(() => { + const argument = { "element": "anyfunc", "initial": 5 }; + const table = new WebAssembly.Table(argument); + assert_throws_js(TypeError, () => table.get()); +}, "Missing arguments: get"); + +test(t => { + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Table, + WebAssembly.Table.prototype, + ]; + + const argument = { + valueOf: t.unreached_func("Should not touch the argument (valueOf)"), + toString: t.unreached_func("Should not touch the argument (toString)"), + }; + + const fn = WebAssembly.Table.prototype.get; + + for (const thisValue of thisValues) { + assert_throws_js(TypeError, () => fn.call(thisValue, argument), `this=${format_value(thisValue)}`); + } +}, "Branding: get"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 5 }; + const table = new WebAssembly.Table(argument); + assert_throws_js(TypeError, () => table.set()); +}, "Missing arguments: set"); + +test(t => { + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Table, + WebAssembly.Table.prototype, + ]; + + const argument = { + valueOf: t.unreached_func("Should not touch the argument (valueOf)"), + toString: t.unreached_func("Should not touch the argument (toString)"), + }; + + const fn = WebAssembly.Table.prototype.set; + + for (const thisValue of thisValues) { + assert_throws_js(TypeError, () => fn.call(thisValue, argument, null), `this=${format_value(thisValue)}`); + } +}, "Branding: set"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 5 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, [null, null, null, null, null]); + + const {fn, fn2} = functions; + + assert_equals(table.set(0, fn), undefined, "set() returns undefined."); + table.set(2, fn2); + table.set(4, fn); + + assert_equal_to_array(table, [fn, null, fn2, null, fn]); + + table.set(0, null); + assert_equal_to_array(table, [null, null, fn2, null, fn]); +}, "Basic"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 5 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, [null, null, null, null, null]); + + const {fn, fn2} = functions; + + table.set(0, fn); + table.set(2, fn2); + table.set(4, fn); + + assert_equal_to_array(table, [fn, null, fn2, null, fn]); + + table.grow(4); + + assert_equal_to_array(table, [fn, null, fn2, null, fn, null, null, null, null]); +}, "Growing"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 5 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, [null, null, null, null, null]); + + const {fn} = functions; + + // -1 is the wrong type hence the type check on entry gets this + // before the range check does. + assert_throws_js(TypeError, () => table.set(-1, fn)); + assert_throws_js(RangeError, () => table.set(5, fn)); + assert_equal_to_array(table, [null, null, null, null, null]); +}, "Setting out-of-bounds"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, [null]); + + const invalidArguments = [ + undefined, + true, + false, + "test", + Symbol(), + 7, + NaN, + {}, + ]; + for (const argument of invalidArguments) { + assert_throws_js(TypeError, () => table.set(0, argument), + `set(${format_value(argument)})`); + } + assert_equal_to_array(table, [null]); +}, "Setting non-function"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, [null]); + + const fn = function() {}; + assert_throws_js(TypeError, () => table.set(0, fn)); + assert_equal_to_array(table, [null]); +}, "Setting non-wasm function"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, [null]); + + const fn = () => {}; + assert_throws_js(TypeError, () => table.set(0, fn)); + assert_equal_to_array(table, [null]); +}, "Setting non-wasm arrow function"); + +const outOfRangeValues = [ + undefined, + NaN, + Infinity, + -Infinity, + -1, + 0x100000000, + 0x1000000000, + "0x100000000", + { valueOf() { return 0x100000000; } }, +]; + +for (const value of outOfRangeValues) { + test(() => { + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + assert_throws_js(TypeError, () => table.get(value)); + }, `Getting out-of-range argument: ${format_value(value)}`); + + test(() => { + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + assert_throws_js(TypeError, () => table.set(value, null)); + }, `Setting out-of-range argument: ${format_value(value)}`); +} + +test(() => { + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + let called = 0; + const value = { + valueOf() { + called++; + return 0; + }, + }; + assert_throws_js(TypeError, () => table.set(value, {})); + assert_equals(called, 1); +}, "Order of argument conversion"); + +test(() => { + const {fn} = functions; + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + + assert_equals(table.get(0, {}), null); + assert_equals(table.set(0, fn, {}), undefined); +}, "Stray argument"); + +test(() => { + const builder = new WasmModuleBuilder(); + builder + .addFunction("fn", kSig_v_v) + .addBody([]) + .exportFunc(); + const bin = builder.toBuffer(); + const fn = new WebAssembly.Instance(new WebAssembly.Module(bin)).exports.fn; + + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument, fn); + + assert_equals(table.get(0), fn); + table.set(0); + assert_equals(table.get(0), null); + + table.set(0, fn); + assert_equals(table.get(0), fn); + + assert_throws_js(TypeError, () => table.set(0, {})); + assert_throws_js(TypeError, () => table.set(0, 37)); +}, "Arguments for anyfunc table set"); + +test(() => { + const testObject = {}; + const argument = { "element": "externref", "initial": 1 }; + const table = new WebAssembly.Table(argument, testObject); + + assert_equals(table.get(0), testObject); + table.set(0); + assert_equals(table.get(0), undefined); + + table.set(0, testObject); + assert_equals(table.get(0), testObject); + + table.set(0, 37); + assert_equals(table.get(0), 37); +}, "Arguments for externref table set"); diff --git a/test/fixtures/wpt/wasm/jsapi/table/grow.any.js b/test/fixtures/wpt/wasm/jsapi/table/grow.any.js new file mode 100644 index 00000000000000..520d24bf4bafbb --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/table/grow.any.js @@ -0,0 +1,126 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=assertions.js + +function nulls(n) { + return Array(n).fill(null); +} + +test(() => { + const argument = { "element": "anyfunc", "initial": 5 }; + const table = new WebAssembly.Table(argument); + assert_throws_js(TypeError, () => table.grow()); +}, "Missing arguments"); + +test(t => { + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Table, + WebAssembly.Table.prototype, + ]; + + const argument = { + valueOf: t.unreached_func("Should not touch the argument (valueOf)"), + toString: t.unreached_func("Should not touch the argument (toString)"), + }; + + const fn = WebAssembly.Table.prototype.grow; + + for (const thisValue of thisValues) { + assert_throws_js(TypeError, () => fn.call(thisValue, argument), `this=${format_value(thisValue)}`); + } +}, "Branding"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 5 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, nulls(5), "before"); + + const result = table.grow(3); + assert_equals(result, 5); + assert_equal_to_array(table, nulls(8), "after"); +}, "Basic"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 3, "maximum": 5 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, nulls(3), "before"); + + const result = table.grow(2); + assert_equals(result, 3); + assert_equal_to_array(table, nulls(5), "after"); +}, "Reached maximum"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 2, "maximum": 5 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, nulls(2), "before"); + + assert_throws_js(RangeError, () => table.grow(4)); + assert_equal_to_array(table, nulls(2), "after"); +}, "Exceeded maximum"); + +const outOfRangeValues = [ + undefined, + NaN, + Infinity, + -Infinity, + -1, + 0x100000000, + 0x1000000000, + "0x100000000", + { valueOf() { return 0x100000000; } }, +]; + +for (const value of outOfRangeValues) { + test(() => { + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + assert_throws_js(TypeError, () => table.grow(value)); + }, `Out-of-range argument: ${format_value(value)}`); +} + +test(() => { + const argument = { "element": "anyfunc", "initial": 5 }; + const table = new WebAssembly.Table(argument); + assert_equal_to_array(table, nulls(5), "before"); + + const result = table.grow(3, null, {}); + assert_equals(result, 5); + assert_equal_to_array(table, nulls(8), "after"); +}, "Stray argument"); + +test(() => { + const builder = new WasmModuleBuilder(); + builder + .addFunction("fn", kSig_v_v) + .addBody([]) + .exportFunc(); + const bin = builder.toBuffer() + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + const fn = new WebAssembly.Instance(new WebAssembly.Module(bin)).exports.fn; + const result = table.grow(2, fn); + assert_equals(result, 1); + assert_equals(table.get(0), null); + assert_equals(table.get(1), fn); + assert_equals(table.get(2), fn); +}, "Grow with exported-function argument"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + assert_throws_js(TypeError, () => table.grow(2, {})); +}, "Grow with non-function argument"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 1 }; + const table = new WebAssembly.Table(argument); + assert_throws_js(TypeError, () => table.grow(2, () => true)); +}, "Grow with JS-function argument"); diff --git a/test/fixtures/wpt/wasm/jsapi/table/length.any.js b/test/fixtures/wpt/wasm/jsapi/table/length.any.js new file mode 100644 index 00000000000000..a9ef095ded4458 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/table/length.any.js @@ -0,0 +1,60 @@ +// META: global=window,dedicatedworker,jsshell + +test(() => { + const thisValues = [ + undefined, + null, + true, + "", + Symbol(), + 1, + {}, + WebAssembly.Table, + WebAssembly.Table.prototype, + ]; + + const desc = Object.getOwnPropertyDescriptor(WebAssembly.Table.prototype, "length"); + assert_equals(typeof desc, "object"); + + const getter = desc.get; + assert_equals(typeof getter, "function"); + + assert_equals(typeof desc.set, "undefined"); + + for (const thisValue of thisValues) { + assert_throws_js(TypeError, () => getter.call(thisValue), `this=${format_value(thisValue)}`); + } +}, "Branding"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 2 }; + const table = new WebAssembly.Table(argument); + assert_equals(table.length, 2, "Initial length"); + + const desc = Object.getOwnPropertyDescriptor(WebAssembly.Table.prototype, "length"); + assert_equals(typeof desc, "object"); + + const getter = desc.get; + assert_equals(typeof getter, "function"); + + assert_equals(getter.call(table, {}), 2); +}, "Stray argument"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 2 }; + const table = new WebAssembly.Table(argument); + assert_equals(table.length, 2, "Initial length"); + table.length = 4; + assert_equals(table.length, 2, "Should not change the length"); +}, "Setting (sloppy mode)"); + +test(() => { + const argument = { "element": "anyfunc", "initial": 2 }; + const table = new WebAssembly.Table(argument); + assert_equals(table.length, 2, "Initial length"); + assert_throws_js(TypeError, () => { + "use strict"; + table.length = 4; + }); + assert_equals(table.length, 2, "Should not change the length"); +}, "Setting (strict mode)"); diff --git a/test/fixtures/wpt/wasm/jsapi/table/toString.any.js b/test/fixtures/wpt/wasm/jsapi/table/toString.any.js new file mode 100644 index 00000000000000..8a09f2832c1d64 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/table/toString.any.js @@ -0,0 +1,17 @@ +// META: global=window,dedicatedworker,jsshell + +test(() => { + const argument = { "element": "anyfunc", "initial": 0 }; + const table = new WebAssembly.Table(argument); + assert_class_string(table, "WebAssembly.Table"); +}, "Object.prototype.toString on an Table"); + +test(() => { + assert_own_property(WebAssembly.Table.prototype, Symbol.toStringTag); + + const propDesc = Object.getOwnPropertyDescriptor(WebAssembly.Table.prototype, Symbol.toStringTag); + assert_equals(propDesc.value, "WebAssembly.Table", "value"); + assert_equals(propDesc.configurable, true, "configurable"); + assert_equals(propDesc.enumerable, false, "enumerable"); + assert_equals(propDesc.writable, false, "writable"); +}, "@@toStringTag exists on the prototype with the appropriate descriptor"); diff --git a/test/fixtures/wpt/wasm/jsapi/table/type.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/table/type.tentative.any.js new file mode 100644 index 00000000000000..596e10b6bf548e --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/table/type.tentative.any.js @@ -0,0 +1,26 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function assert_type(argument) { + const mytable = new WebAssembly.Table(argument); + const tabletype = mytable.type() + assert_equals(tabletype.minimum, argument.minimum); + assert_equals(tabletype.maximum, argument.maximum); + assert_equals(tabletype.element, argument.element); +} + +test(() => { + assert_type({ "minimum": 0, "element": "anyfunc"}); +}, "Zero initial, no maximum"); + +test(() => { + assert_type({ "minimum": 5, "element": "anyfunc" }); +}, "Non-zero initial, no maximum"); + +test(() => { + assert_type({ "minimum": 0, "maximum": 0, "element": "anyfunc" }); +}, "Zero maximum"); + +test(() => { + assert_type({ "minimum": 0, "maximum": 5, "element": "anyfunc" }); +}, "Non-zero maximum"); diff --git a/test/fixtures/wpt/wasm/jsapi/tag/constructor.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/tag/constructor.tentative.any.js new file mode 100644 index 00000000000000..de63e7bf46d1e8 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/tag/constructor.tentative.any.js @@ -0,0 +1,49 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +test(() => { + assert_function_name(WebAssembly.Tag, "Tag", "WebAssembly.Tag"); +}, "name"); + +test(() => { + assert_function_length(WebAssembly.Tag, 1, "WebAssembly.Tag"); +}, "length"); + +test(() => { + assert_throws_js(TypeError, () => new WebAssembly.Tag()); +}, "No arguments"); + +test(() => { + const argument = { parameters: [] }; + assert_throws_js(TypeError, () => WebAssembly.Tag(argument)); +}, "Calling"); + +test(() => { + const invalidArguments = [ + undefined, + null, + false, + true, + "", + "test", + Symbol(), + 1, + NaN, + {}, + ]; + for (const invalidArgument of invalidArguments) { + assert_throws_js( + TypeError, + () => new WebAssembly.Tag(invalidArgument), + `new Tag(${format_value(invalidArgument)})` + ); + } +}, "Invalid descriptor argument"); + +test(() => { + const invalidTypes = ["i16", "i128", "f16", "f128", "u32", "u64", "i32\0"]; + for (const value of invalidTypes) { + const argument = { parameters: [value] }; + assert_throws_js(TypeError, () => new WebAssembly.Tag(argument)); + } +}, "Invalid type parameter"); diff --git a/test/fixtures/wpt/wasm/jsapi/tag/toString.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/tag/toString.tentative.any.js new file mode 100644 index 00000000000000..ad9a4ba152f4f8 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/tag/toString.tentative.any.js @@ -0,0 +1,20 @@ +// META: global=window,dedicatedworker,jsshell + +test(() => { + const argument = { parameters: [] }; + const tag = new WebAssembly.Tag(argument); + assert_class_string(tag, "WebAssembly.Tag"); +}, "Object.prototype.toString on a Tag"); + +test(() => { + assert_own_property(WebAssembly.Tag.prototype, Symbol.toStringTag); + + const propDesc = Object.getOwnPropertyDescriptor( + WebAssembly.Tag.prototype, + Symbol.toStringTag + ); + assert_equals(propDesc.value, "WebAssembly.Tag", "value"); + assert_equals(propDesc.configurable, true, "configurable"); + assert_equals(propDesc.enumerable, false, "enumerable"); + assert_equals(propDesc.writable, false, "writable"); +}, "@@toStringTag exists on the prototype with the appropriate descriptor"); diff --git a/test/fixtures/wpt/wasm/jsapi/tag/type.tentative.any.js b/test/fixtures/wpt/wasm/jsapi/tag/type.tentative.any.js new file mode 100644 index 00000000000000..9d2f0de1a00f20 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/tag/type.tentative.any.js @@ -0,0 +1,21 @@ +// META: global=window,dedicatedworker,jsshell +// META: script=/wasm/jsapi/assertions.js + +function assert_type(argument) { + const tag = new WebAssembly.Tag(argument); + const tagtype = tag.type(); + + assert_array_equals(tagtype.parameters, argument.parameters); +} + +test(() => { + assert_type({ parameters: [] }); +}, "[]"); + +test(() => { + assert_type({ parameters: ["i32", "i64"] }); +}, "[i32 i64]"); + +test(() => { + assert_type({ parameters: ["i32", "i64", "f32", "f64"] }); +}, "[i32 i64 f32 f64]"); diff --git a/test/fixtures/wpt/wasm/jsapi/wasm-module-builder.js b/test/fixtures/wpt/wasm/jsapi/wasm-module-builder.js new file mode 100644 index 00000000000000..7be72f86dae752 --- /dev/null +++ b/test/fixtures/wpt/wasm/jsapi/wasm-module-builder.js @@ -0,0 +1,1323 @@ +// Copyright 2016 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Used for encoding f32 and double constants to bits. +let byte_view = new Uint8Array(8); +let data_view = new DataView(byte_view.buffer); + +// The bytes function receives one of +// - several arguments, each of which is either a number or a string of length +// 1; if it's a string, the charcode of the contained character is used. +// - a single array argument containing the actual arguments +// - a single string; the returned buffer will contain the char codes of all +// contained characters. +function bytes(...input) { + if (input.length == 1 && typeof input[0] == 'array') input = input[0]; + if (input.length == 1 && typeof input[0] == 'string') { + let len = input[0].length; + let view = new Uint8Array(len); + for (let i = 0; i < len; i++) view[i] = input[0].charCodeAt(i); + return view.buffer; + } + let view = new Uint8Array(input.length); + for (let i = 0; i < input.length; i++) { + let val = input[i]; + if (typeof val == 'string') { + assertEquals(1, val.length, 'string inputs must have length 1'); + val = val.charCodeAt(0); + } + view[i] = val | 0; + } + return view.buffer; +} + +// Header declaration constants +var kWasmH0 = 0; +var kWasmH1 = 0x61; +var kWasmH2 = 0x73; +var kWasmH3 = 0x6d; + +var kWasmV0 = 0x1; +var kWasmV1 = 0; +var kWasmV2 = 0; +var kWasmV3 = 0; + +var kHeaderSize = 8; +var kPageSize = 65536; +var kSpecMaxPages = 65535; +var kMaxVarInt32Size = 5; +var kMaxVarInt64Size = 10; + +let kDeclNoLocals = 0; + +// Section declaration constants +let kUnknownSectionCode = 0; +let kTypeSectionCode = 1; // Function signature declarations +let kImportSectionCode = 2; // Import declarations +let kFunctionSectionCode = 3; // Function declarations +let kTableSectionCode = 4; // Indirect function table and other tables +let kMemorySectionCode = 5; // Memory attributes +let kGlobalSectionCode = 6; // Global declarations +let kExportSectionCode = 7; // Exports +let kStartSectionCode = 8; // Start function declaration +let kElementSectionCode = 9; // Elements section +let kCodeSectionCode = 10; // Function code +let kDataSectionCode = 11; // Data segments +let kDataCountSectionCode = 12; // Data segment count (between Element & Code) +let kExceptionSectionCode = 13; // Exception section (between Global & Export) + +// Name section types +let kModuleNameCode = 0; +let kFunctionNamesCode = 1; +let kLocalNamesCode = 2; + +let kWasmFunctionTypeForm = 0x60; +let kWasmAnyFunctionTypeForm = 0x70; + +let kHasMaximumFlag = 1; +let kSharedHasMaximumFlag = 3; + +// Segment flags +let kActiveNoIndex = 0; +let kPassive = 1; +let kActiveWithIndex = 2; +let kPassiveWithElements = 5; + +// Function declaration flags +let kDeclFunctionName = 0x01; +let kDeclFunctionImport = 0x02; +let kDeclFunctionLocals = 0x04; +let kDeclFunctionExport = 0x08; + +// Local types +let kWasmStmt = 0x40; +let kWasmI32 = 0x7f; +let kWasmI64 = 0x7e; +let kWasmF32 = 0x7d; +let kWasmF64 = 0x7c; +let kWasmS128 = 0x7b; +let kWasmAnyRef = 0x6f; +let kWasmAnyFunc = 0x70; + +let kExternalFunction = 0; +let kExternalTable = 1; +let kExternalMemory = 2; +let kExternalGlobal = 3; +let kExternalException = 4; + +let kTableZero = 0; +let kMemoryZero = 0; +let kSegmentZero = 0; + +let kExceptionAttribute = 0; + +// Useful signatures +let kSig_i_i = makeSig([kWasmI32], [kWasmI32]); +let kSig_l_l = makeSig([kWasmI64], [kWasmI64]); +let kSig_i_l = makeSig([kWasmI64], [kWasmI32]); +let kSig_i_ii = makeSig([kWasmI32, kWasmI32], [kWasmI32]); +let kSig_i_iii = makeSig([kWasmI32, kWasmI32, kWasmI32], [kWasmI32]); +let kSig_v_iiii = makeSig([kWasmI32, kWasmI32, kWasmI32, kWasmI32], []); +let kSig_f_ff = makeSig([kWasmF32, kWasmF32], [kWasmF32]); +let kSig_d_dd = makeSig([kWasmF64, kWasmF64], [kWasmF64]); +let kSig_l_ll = makeSig([kWasmI64, kWasmI64], [kWasmI64]); +let kSig_i_dd = makeSig([kWasmF64, kWasmF64], [kWasmI32]); +let kSig_v_v = makeSig([], []); +let kSig_i_v = makeSig([], [kWasmI32]); +let kSig_l_v = makeSig([], [kWasmI64]); +let kSig_f_v = makeSig([], [kWasmF32]); +let kSig_d_v = makeSig([], [kWasmF64]); +let kSig_v_i = makeSig([kWasmI32], []); +let kSig_v_ii = makeSig([kWasmI32, kWasmI32], []); +let kSig_v_iii = makeSig([kWasmI32, kWasmI32, kWasmI32], []); +let kSig_v_l = makeSig([kWasmI64], []); +let kSig_v_d = makeSig([kWasmF64], []); +let kSig_v_dd = makeSig([kWasmF64, kWasmF64], []); +let kSig_v_ddi = makeSig([kWasmF64, kWasmF64, kWasmI32], []); +let kSig_ii_v = makeSig([], [kWasmI32, kWasmI32]); +let kSig_iii_v = makeSig([], [kWasmI32, kWasmI32, kWasmI32]); +let kSig_ii_i = makeSig([kWasmI32], [kWasmI32, kWasmI32]); +let kSig_iii_i = makeSig([kWasmI32], [kWasmI32, kWasmI32, kWasmI32]); +let kSig_ii_ii = makeSig([kWasmI32, kWasmI32], [kWasmI32, kWasmI32]); +let kSig_iii_ii = makeSig([kWasmI32, kWasmI32], [kWasmI32, kWasmI32, kWasmI32]); + +let kSig_v_f = makeSig([kWasmF32], []); +let kSig_f_f = makeSig([kWasmF32], [kWasmF32]); +let kSig_f_d = makeSig([kWasmF64], [kWasmF32]); +let kSig_d_d = makeSig([kWasmF64], [kWasmF64]); +let kSig_r_r = makeSig([kWasmAnyRef], [kWasmAnyRef]); +let kSig_a_a = makeSig([kWasmAnyFunc], [kWasmAnyFunc]); +let kSig_i_r = makeSig([kWasmAnyRef], [kWasmI32]); +let kSig_v_r = makeSig([kWasmAnyRef], []); +let kSig_v_a = makeSig([kWasmAnyFunc], []); +let kSig_v_rr = makeSig([kWasmAnyRef, kWasmAnyRef], []); +let kSig_v_aa = makeSig([kWasmAnyFunc, kWasmAnyFunc], []); +let kSig_r_v = makeSig([], [kWasmAnyRef]); +let kSig_a_v = makeSig([], [kWasmAnyFunc]); +let kSig_a_i = makeSig([kWasmI32], [kWasmAnyFunc]); + +function makeSig(params, results) { + return {params: params, results: results}; +} + +function makeSig_v_x(x) { + return makeSig([x], []); +} + +function makeSig_v_xx(x) { + return makeSig([x, x], []); +} + +function makeSig_r_v(r) { + return makeSig([], [r]); +} + +function makeSig_r_x(r, x) { + return makeSig([x], [r]); +} + +function makeSig_r_xx(r, x) { + return makeSig([x, x], [r]); +} + +// Opcodes +let kExprUnreachable = 0x00; +let kExprNop = 0x01; +let kExprBlock = 0x02; +let kExprLoop = 0x03; +let kExprIf = 0x04; +let kExprElse = 0x05; +let kExprTry = 0x06; +let kExprCatch = 0x07; +let kExprCatchAll = 0x19; +let kExprThrow = 0x08; +let kExprRethrow = 0x09; +let kExprBrOnExn = 0x0a; +let kExprEnd = 0x0b; +let kExprBr = 0x0c; +let kExprBrIf = 0x0d; +let kExprBrTable = 0x0e; +let kExprReturn = 0x0f; +let kExprCallFunction = 0x10; +let kExprCallIndirect = 0x11; +let kExprReturnCall = 0x12; +let kExprReturnCallIndirect = 0x13; +let kExprDrop = 0x1a; +let kExprSelect = 0x1b; +let kExprLocalGet = 0x20; +let kExprLocalSet = 0x21; +let kExprLocalTee = 0x22; +let kExprGlobalGet = 0x23; +let kExprGlobalSet = 0x24; +let kExprTableGet = 0x25; +let kExprTableSet = 0x26; +let kExprI32LoadMem = 0x28; +let kExprI64LoadMem = 0x29; +let kExprF32LoadMem = 0x2a; +let kExprF64LoadMem = 0x2b; +let kExprI32LoadMem8S = 0x2c; +let kExprI32LoadMem8U = 0x2d; +let kExprI32LoadMem16S = 0x2e; +let kExprI32LoadMem16U = 0x2f; +let kExprI64LoadMem8S = 0x30; +let kExprI64LoadMem8U = 0x31; +let kExprI64LoadMem16S = 0x32; +let kExprI64LoadMem16U = 0x33; +let kExprI64LoadMem32S = 0x34; +let kExprI64LoadMem32U = 0x35; +let kExprI32StoreMem = 0x36; +let kExprI64StoreMem = 0x37; +let kExprF32StoreMem = 0x38; +let kExprF64StoreMem = 0x39; +let kExprI32StoreMem8 = 0x3a; +let kExprI32StoreMem16 = 0x3b; +let kExprI64StoreMem8 = 0x3c; +let kExprI64StoreMem16 = 0x3d; +let kExprI64StoreMem32 = 0x3e; +let kExprMemorySize = 0x3f; +let kExprMemoryGrow = 0x40; +let kExprI32Const = 0x41; +let kExprI64Const = 0x42; +let kExprF32Const = 0x43; +let kExprF64Const = 0x44; +let kExprI32Eqz = 0x45; +let kExprI32Eq = 0x46; +let kExprI32Ne = 0x47; +let kExprI32LtS = 0x48; +let kExprI32LtU = 0x49; +let kExprI32GtS = 0x4a; +let kExprI32GtU = 0x4b; +let kExprI32LeS = 0x4c; +let kExprI32LeU = 0x4d; +let kExprI32GeS = 0x4e; +let kExprI32GeU = 0x4f; +let kExprI64Eqz = 0x50; +let kExprI64Eq = 0x51; +let kExprI64Ne = 0x52; +let kExprI64LtS = 0x53; +let kExprI64LtU = 0x54; +let kExprI64GtS = 0x55; +let kExprI64GtU = 0x56; +let kExprI64LeS = 0x57; +let kExprI64LeU = 0x58; +let kExprI64GeS = 0x59; +let kExprI64GeU = 0x5a; +let kExprF32Eq = 0x5b; +let kExprF32Ne = 0x5c; +let kExprF32Lt = 0x5d; +let kExprF32Gt = 0x5e; +let kExprF32Le = 0x5f; +let kExprF32Ge = 0x60; +let kExprF64Eq = 0x61; +let kExprF64Ne = 0x62; +let kExprF64Lt = 0x63; +let kExprF64Gt = 0x64; +let kExprF64Le = 0x65; +let kExprF64Ge = 0x66; +let kExprI32Clz = 0x67; +let kExprI32Ctz = 0x68; +let kExprI32Popcnt = 0x69; +let kExprI32Add = 0x6a; +let kExprI32Sub = 0x6b; +let kExprI32Mul = 0x6c; +let kExprI32DivS = 0x6d; +let kExprI32DivU = 0x6e; +let kExprI32RemS = 0x6f; +let kExprI32RemU = 0x70; +let kExprI32And = 0x71; +let kExprI32Ior = 0x72; +let kExprI32Xor = 0x73; +let kExprI32Shl = 0x74; +let kExprI32ShrS = 0x75; +let kExprI32ShrU = 0x76; +let kExprI32Rol = 0x77; +let kExprI32Ror = 0x78; +let kExprI64Clz = 0x79; +let kExprI64Ctz = 0x7a; +let kExprI64Popcnt = 0x7b; +let kExprI64Add = 0x7c; +let kExprI64Sub = 0x7d; +let kExprI64Mul = 0x7e; +let kExprI64DivS = 0x7f; +let kExprI64DivU = 0x80; +let kExprI64RemS = 0x81; +let kExprI64RemU = 0x82; +let kExprI64And = 0x83; +let kExprI64Ior = 0x84; +let kExprI64Xor = 0x85; +let kExprI64Shl = 0x86; +let kExprI64ShrS = 0x87; +let kExprI64ShrU = 0x88; +let kExprI64Rol = 0x89; +let kExprI64Ror = 0x8a; +let kExprF32Abs = 0x8b; +let kExprF32Neg = 0x8c; +let kExprF32Ceil = 0x8d; +let kExprF32Floor = 0x8e; +let kExprF32Trunc = 0x8f; +let kExprF32NearestInt = 0x90; +let kExprF32Sqrt = 0x91; +let kExprF32Add = 0x92; +let kExprF32Sub = 0x93; +let kExprF32Mul = 0x94; +let kExprF32Div = 0x95; +let kExprF32Min = 0x96; +let kExprF32Max = 0x97; +let kExprF32CopySign = 0x98; +let kExprF64Abs = 0x99; +let kExprF64Neg = 0x9a; +let kExprF64Ceil = 0x9b; +let kExprF64Floor = 0x9c; +let kExprF64Trunc = 0x9d; +let kExprF64NearestInt = 0x9e; +let kExprF64Sqrt = 0x9f; +let kExprF64Add = 0xa0; +let kExprF64Sub = 0xa1; +let kExprF64Mul = 0xa2; +let kExprF64Div = 0xa3; +let kExprF64Min = 0xa4; +let kExprF64Max = 0xa5; +let kExprF64CopySign = 0xa6; +let kExprI32ConvertI64 = 0xa7; +let kExprI32SConvertF32 = 0xa8; +let kExprI32UConvertF32 = 0xa9; +let kExprI32SConvertF64 = 0xaa; +let kExprI32UConvertF64 = 0xab; +let kExprI64SConvertI32 = 0xac; +let kExprI64UConvertI32 = 0xad; +let kExprI64SConvertF32 = 0xae; +let kExprI64UConvertF32 = 0xaf; +let kExprI64SConvertF64 = 0xb0; +let kExprI64UConvertF64 = 0xb1; +let kExprF32SConvertI32 = 0xb2; +let kExprF32UConvertI32 = 0xb3; +let kExprF32SConvertI64 = 0xb4; +let kExprF32UConvertI64 = 0xb5; +let kExprF32ConvertF64 = 0xb6; +let kExprF64SConvertI32 = 0xb7; +let kExprF64UConvertI32 = 0xb8; +let kExprF64SConvertI64 = 0xb9; +let kExprF64UConvertI64 = 0xba; +let kExprF64ConvertF32 = 0xbb; +let kExprI32ReinterpretF32 = 0xbc; +let kExprI64ReinterpretF64 = 0xbd; +let kExprF32ReinterpretI32 = 0xbe; +let kExprF64ReinterpretI64 = 0xbf; +let kExprI32SExtendI8 = 0xc0; +let kExprI32SExtendI16 = 0xc1; +let kExprI64SExtendI8 = 0xc2; +let kExprI64SExtendI16 = 0xc3; +let kExprI64SExtendI32 = 0xc4; +let kExprRefNull = 0xd0; +let kExprRefIsNull = 0xd1; +let kExprRefFunc = 0xd2; + +// Prefix opcodes +let kNumericPrefix = 0xfc; +let kSimdPrefix = 0xfd; +let kAtomicPrefix = 0xfe; + +// Numeric opcodes. +let kExprMemoryInit = 0x08; +let kExprDataDrop = 0x09; +let kExprMemoryCopy = 0x0a; +let kExprMemoryFill = 0x0b; +let kExprTableInit = 0x0c; +let kExprElemDrop = 0x0d; +let kExprTableCopy = 0x0e; +let kExprTableGrow = 0x0f; +let kExprTableSize = 0x10; +let kExprTableFill = 0x11; + +// Atomic opcodes. +let kExprAtomicNotify = 0x00; +let kExprI32AtomicWait = 0x01; +let kExprI64AtomicWait = 0x02; +let kExprI32AtomicLoad = 0x10; +let kExprI32AtomicLoad8U = 0x12; +let kExprI32AtomicLoad16U = 0x13; +let kExprI32AtomicStore = 0x17; +let kExprI32AtomicStore8U = 0x19; +let kExprI32AtomicStore16U = 0x1a; +let kExprI32AtomicAdd = 0x1e; +let kExprI32AtomicAdd8U = 0x20; +let kExprI32AtomicAdd16U = 0x21; +let kExprI32AtomicSub = 0x25; +let kExprI32AtomicSub8U = 0x27; +let kExprI32AtomicSub16U = 0x28; +let kExprI32AtomicAnd = 0x2c; +let kExprI32AtomicAnd8U = 0x2e; +let kExprI32AtomicAnd16U = 0x2f; +let kExprI32AtomicOr = 0x33; +let kExprI32AtomicOr8U = 0x35; +let kExprI32AtomicOr16U = 0x36; +let kExprI32AtomicXor = 0x3a; +let kExprI32AtomicXor8U = 0x3c; +let kExprI32AtomicXor16U = 0x3d; +let kExprI32AtomicExchange = 0x41; +let kExprI32AtomicExchange8U = 0x43; +let kExprI32AtomicExchange16U = 0x44; +let kExprI32AtomicCompareExchange = 0x48; +let kExprI32AtomicCompareExchange8U = 0x4a; +let kExprI32AtomicCompareExchange16U = 0x4b; + +let kExprI64AtomicLoad = 0x11; +let kExprI64AtomicLoad8U = 0x14; +let kExprI64AtomicLoad16U = 0x15; +let kExprI64AtomicLoad32U = 0x16; +let kExprI64AtomicStore = 0x18; +let kExprI64AtomicStore8U = 0x1b; +let kExprI64AtomicStore16U = 0x1c; +let kExprI64AtomicStore32U = 0x1d; +let kExprI64AtomicAdd = 0x1f; +let kExprI64AtomicAdd8U = 0x22; +let kExprI64AtomicAdd16U = 0x23; +let kExprI64AtomicAdd32U = 0x24; +let kExprI64AtomicSub = 0x26; +let kExprI64AtomicSub8U = 0x29; +let kExprI64AtomicSub16U = 0x2a; +let kExprI64AtomicSub32U = 0x2b; +let kExprI64AtomicAnd = 0x2d; +let kExprI64AtomicAnd8U = 0x30; +let kExprI64AtomicAnd16U = 0x31; +let kExprI64AtomicAnd32U = 0x32; +let kExprI64AtomicOr = 0x34; +let kExprI64AtomicOr8U = 0x37; +let kExprI64AtomicOr16U = 0x38; +let kExprI64AtomicOr32U = 0x39; +let kExprI64AtomicXor = 0x3b; +let kExprI64AtomicXor8U = 0x3e; +let kExprI64AtomicXor16U = 0x3f; +let kExprI64AtomicXor32U = 0x40; +let kExprI64AtomicExchange = 0x42; +let kExprI64AtomicExchange8U = 0x45; +let kExprI64AtomicExchange16U = 0x46; +let kExprI64AtomicExchange32U = 0x47; +let kExprI64AtomicCompareExchange = 0x49 +let kExprI64AtomicCompareExchange8U = 0x4c; +let kExprI64AtomicCompareExchange16U = 0x4d; +let kExprI64AtomicCompareExchange32U = 0x4e; + +// Simd opcodes. +let kExprS128LoadMem = 0x00; +let kExprS128StoreMem = 0x01; +let kExprI32x4Splat = 0x0c; +let kExprI32x4Eq = 0x2c; +let kExprS1x4AllTrue = 0x75; +let kExprF32x4Min = 0x9e; + +class Binary { + constructor() { + this.length = 0; + this.buffer = new Uint8Array(8192); + } + + ensure_space(needed) { + if (this.buffer.length - this.length >= needed) return; + let new_capacity = this.buffer.length * 2; + while (new_capacity - this.length < needed) new_capacity *= 2; + let new_buffer = new Uint8Array(new_capacity); + new_buffer.set(this.buffer); + this.buffer = new_buffer; + } + + trunc_buffer() { + return new Uint8Array(this.buffer.buffer, 0, this.length); + } + + reset() { + this.length = 0; + } + + emit_u8(val) { + this.ensure_space(1); + this.buffer[this.length++] = val; + } + + emit_u16(val) { + this.ensure_space(2); + this.buffer[this.length++] = val; + this.buffer[this.length++] = val >> 8; + } + + emit_u32(val) { + this.ensure_space(4); + this.buffer[this.length++] = val; + this.buffer[this.length++] = val >> 8; + this.buffer[this.length++] = val >> 16; + this.buffer[this.length++] = val >> 24; + } + + emit_leb_u(val, max_len) { + this.ensure_space(max_len); + for (let i = 0; i < max_len; ++i) { + let v = val & 0xff; + val = val >>> 7; + if (val == 0) { + this.buffer[this.length++] = v; + return; + } + this.buffer[this.length++] = v | 0x80; + } + throw new Error("Leb value exceeds maximum length of " + max_len); + } + + emit_u32v(val) { + this.emit_leb_u(val, kMaxVarInt32Size); + } + + emit_u64v(val) { + this.emit_leb_u(val, kMaxVarInt64Size); + } + + emit_bytes(data) { + this.ensure_space(data.length); + this.buffer.set(data, this.length); + this.length += data.length; + } + + emit_string(string) { + // When testing illegal names, we pass a byte array directly. + if (string instanceof Array) { + this.emit_u32v(string.length); + this.emit_bytes(string); + return; + } + + // This is the hacky way to convert a JavaScript string to a UTF8 encoded + // string only containing single-byte characters. + let string_utf8 = unescape(encodeURIComponent(string)); + this.emit_u32v(string_utf8.length); + for (let i = 0; i < string_utf8.length; i++) { + this.emit_u8(string_utf8.charCodeAt(i)); + } + } + + emit_header() { + this.emit_bytes([ + kWasmH0, kWasmH1, kWasmH2, kWasmH3, kWasmV0, kWasmV1, kWasmV2, kWasmV3 + ]); + } + + emit_section(section_code, content_generator) { + // Emit section name. + this.emit_u8(section_code); + // Emit the section to a temporary buffer: its full length isn't know yet. + const section = new Binary; + content_generator(section); + // Emit section length. + this.emit_u32v(section.length); + // Copy the temporary buffer. + // Avoid spread because {section} can be huge. + this.emit_bytes(section.trunc_buffer()); + } +} + +class WasmFunctionBuilder { + constructor(module, name, type_index) { + this.module = module; + this.name = name; + this.type_index = type_index; + this.body = []; + this.locals = []; + this.local_names = []; + } + + numLocalNames() { + let num_local_names = 0; + for (let loc_name of this.local_names) { + if (loc_name !== undefined) ++num_local_names; + } + return num_local_names; + } + + exportAs(name) { + this.module.addExport(name, this.index); + return this; + } + + exportFunc() { + this.exportAs(this.name); + return this; + } + + addBody(body) { + for (let b of body) { + if (typeof b !== 'number' || (b & (~0xFF)) !== 0 ) + throw new Error('invalid body (entries must be 8 bit numbers): ' + body); + } + this.body = body.slice(); + // Automatically add the end for the function block to the body. + this.body.push(kExprEnd); + return this; + } + + addBodyWithEnd(body) { + this.body = body; + return this; + } + + getNumLocals() { + let total_locals = 0; + for (let l of this.locals) { + for (let type of ["i32", "i64", "f32", "f64", "s128"]) { + total_locals += l[type + "_count"] || 0; + } + } + return total_locals; + } + + addLocals(locals, names) { + const old_num_locals = this.getNumLocals(); + this.locals.push(locals); + if (names) { + const missing_names = old_num_locals - this.local_names.length; + this.local_names.push(...new Array(missing_names), ...names); + } + return this; + } + + end() { + return this.module; + } +} + +class WasmGlobalBuilder { + constructor(module, type, mutable) { + this.module = module; + this.type = type; + this.mutable = mutable; + this.init = 0; + } + + exportAs(name) { + this.module.exports.push({name: name, kind: kExternalGlobal, + index: this.index}); + return this; + } +} + +class WasmTableBuilder { + constructor(module, type, initial_size, max_size) { + this.module = module; + this.type = type; + this.initial_size = initial_size; + this.has_max = max_size != undefined; + this.max_size = max_size; + } + + exportAs(name) { + this.module.exports.push({name: name, kind: kExternalTable, + index: this.index}); + return this; + } +} + +class WasmModuleBuilder { + constructor() { + this.types = []; + this.imports = []; + this.exports = []; + this.globals = []; + this.tables = []; + this.exceptions = []; + this.functions = []; + this.element_segments = []; + this.data_segments = []; + this.explicit = []; + this.num_imported_funcs = 0; + this.num_imported_globals = 0; + this.num_imported_tables = 0; + this.num_imported_exceptions = 0; + return this; + } + + addStart(start_index) { + this.start_index = start_index; + return this; + } + + addMemory(min, max, exp, shared) { + this.memory = {min: min, max: max, exp: exp, shared: shared}; + return this; + } + + addExplicitSection(bytes) { + this.explicit.push(bytes); + return this; + } + + stringToBytes(name) { + var result = new Binary(); + result.emit_string(name); + return result.trunc_buffer() + } + + createCustomSection(name, bytes) { + name = this.stringToBytes(name); + var section = new Binary(); + section.emit_u8(kUnknownSectionCode); + section.emit_u32v(name.length + bytes.length); + section.emit_bytes(name); + section.emit_bytes(bytes); + return section.trunc_buffer(); + } + + addCustomSection(name, bytes) { + this.explicit.push(this.createCustomSection(name, bytes)); + } + + addType(type) { + this.types.push(type); + var pl = type.params.length; // should have params + var rl = type.results.length; // should have results + return this.types.length - 1; + } + + addGlobal(local_type, mutable) { + let glob = new WasmGlobalBuilder(this, local_type, mutable); + glob.index = this.globals.length + this.num_imported_globals; + this.globals.push(glob); + return glob; + } + + addTable(type, initial_size, max_size = undefined) { + if (type != kWasmAnyRef && type != kWasmAnyFunc) { + throw new Error('Tables must be of type kWasmAnyRef or kWasmAnyFunc'); + } + let table = new WasmTableBuilder(this, type, initial_size, max_size); + table.index = this.tables.length + this.num_imported_tables; + this.tables.push(table); + return table; + } + + addException(type) { + let type_index = (typeof type) == "number" ? type : this.addType(type); + let except_index = this.exceptions.length + this.num_imported_exceptions; + this.exceptions.push(type_index); + return except_index; + } + + addFunction(name, type) { + let type_index = (typeof type) == "number" ? type : this.addType(type); + let func = new WasmFunctionBuilder(this, name, type_index); + func.index = this.functions.length + this.num_imported_funcs; + this.functions.push(func); + return func; + } + + addImport(module, name, type) { + if (this.functions.length != 0) { + throw new Error('Imported functions must be declared before local ones'); + } + let type_index = (typeof type) == "number" ? type : this.addType(type); + this.imports.push({module: module, name: name, kind: kExternalFunction, + type: type_index}); + return this.num_imported_funcs++; + } + + addImportedGlobal(module, name, type, mutable = false) { + if (this.globals.length != 0) { + throw new Error('Imported globals must be declared before local ones'); + } + let o = {module: module, name: name, kind: kExternalGlobal, type: type, + mutable: mutable}; + this.imports.push(o); + return this.num_imported_globals++; + } + + addImportedMemory(module, name, initial = 0, maximum, shared) { + let o = {module: module, name: name, kind: kExternalMemory, + initial: initial, maximum: maximum, shared: shared}; + this.imports.push(o); + return this; + } + + addImportedTable(module, name, initial, maximum, type) { + if (this.tables.length != 0) { + throw new Error('Imported tables must be declared before local ones'); + } + let o = {module: module, name: name, kind: kExternalTable, initial: initial, + maximum: maximum, type: type || kWasmAnyFunctionTypeForm}; + this.imports.push(o); + return this.num_imported_tables++; + } + + addImportedException(module, name, type) { + if (this.exceptions.length != 0) { + throw new Error('Imported exceptions must be declared before local ones'); + } + let type_index = (typeof type) == "number" ? type : this.addType(type); + let o = {module: module, name: name, kind: kExternalException, type: type_index}; + this.imports.push(o); + return this.num_imported_exceptions++; + } + + addExport(name, index) { + this.exports.push({name: name, kind: kExternalFunction, index: index}); + return this; + } + + addExportOfKind(name, kind, index) { + this.exports.push({name: name, kind: kind, index: index}); + return this; + } + + addDataSegment(addr, data, is_global = false) { + this.data_segments.push( + {addr: addr, data: data, is_global: is_global, is_active: true}); + return this.data_segments.length - 1; + } + + addPassiveDataSegment(data) { + this.data_segments.push({data: data, is_active: false}); + return this.data_segments.length - 1; + } + + exportMemoryAs(name) { + this.exports.push({name: name, kind: kExternalMemory, index: 0}); + } + + addElementSegment(table, base, is_global, array) { + this.element_segments.push({table: table, base: base, is_global: is_global, + array: array, is_active: true}); + return this; + } + + addPassiveElementSegment(array, is_import = false) { + this.element_segments.push({array: array, is_active: false}); + return this; + } + + appendToTable(array) { + for (let n of array) { + if (typeof n != 'number') + throw new Error('invalid table (entries have to be numbers): ' + array); + } + if (this.tables.length == 0) { + this.addTable(kWasmAnyFunc, 0); + } + // Adjust the table to the correct size. + let table = this.tables[0]; + const base = table.initial_size; + const table_size = base + array.length; + table.initial_size = table_size; + if (table.has_max && table_size > table.max_size) { + table.max_size = table_size; + } + return this.addElementSegment(0, base, false, array); + } + + setTableBounds(min, max = undefined) { + if (this.tables.length != 0) { + throw new Error("The table bounds of table '0' have already been set."); + } + this.addTable(kWasmAnyFunc, min, max); + return this; + } + + setName(name) { + this.name = name; + return this; + } + + toBuffer(debug = false) { + let binary = new Binary; + let wasm = this; + + // Add header + binary.emit_header(); + + // Add type section + if (wasm.types.length > 0) { + if (debug) print("emitting types @ " + binary.length); + binary.emit_section(kTypeSectionCode, section => { + section.emit_u32v(wasm.types.length); + for (let type of wasm.types) { + section.emit_u8(kWasmFunctionTypeForm); + section.emit_u32v(type.params.length); + for (let param of type.params) { + section.emit_u8(param); + } + section.emit_u32v(type.results.length); + for (let result of type.results) { + section.emit_u8(result); + } + } + }); + } + + // Add imports section + if (wasm.imports.length > 0) { + if (debug) print("emitting imports @ " + binary.length); + binary.emit_section(kImportSectionCode, section => { + section.emit_u32v(wasm.imports.length); + for (let imp of wasm.imports) { + section.emit_string(imp.module); + section.emit_string(imp.name || ''); + section.emit_u8(imp.kind); + if (imp.kind == kExternalFunction) { + section.emit_u32v(imp.type); + } else if (imp.kind == kExternalGlobal) { + section.emit_u32v(imp.type); + section.emit_u8(imp.mutable); + } else if (imp.kind == kExternalMemory) { + var has_max = (typeof imp.maximum) != "undefined"; + var is_shared = (typeof imp.shared) != "undefined"; + if (is_shared) { + section.emit_u8(has_max ? 3 : 2); // flags + } else { + section.emit_u8(has_max ? 1 : 0); // flags + } + section.emit_u32v(imp.initial); // initial + if (has_max) section.emit_u32v(imp.maximum); // maximum + } else if (imp.kind == kExternalTable) { + section.emit_u8(imp.type); + var has_max = (typeof imp.maximum) != "undefined"; + section.emit_u8(has_max ? 1 : 0); // flags + section.emit_u32v(imp.initial); // initial + if (has_max) section.emit_u32v(imp.maximum); // maximum + } else if (imp.kind == kExternalException) { + section.emit_u32v(kExceptionAttribute); + section.emit_u32v(imp.type); + } else { + throw new Error("unknown/unsupported import kind " + imp.kind); + } + } + }); + } + + // Add functions declarations + if (wasm.functions.length > 0) { + if (debug) print("emitting function decls @ " + binary.length); + binary.emit_section(kFunctionSectionCode, section => { + section.emit_u32v(wasm.functions.length); + for (let func of wasm.functions) { + section.emit_u32v(func.type_index); + } + }); + } + + // Add table section + if (wasm.tables.length > 0) { + if (debug) print ("emitting tables @ " + binary.length); + binary.emit_section(kTableSectionCode, section => { + section.emit_u32v(wasm.tables.length); + for (let table of wasm.tables) { + section.emit_u8(table.type); + section.emit_u8(table.has_max); + section.emit_u32v(table.initial_size); + if (table.has_max) section.emit_u32v(table.max_size); + } + }); + } + + // Add memory section + if (wasm.memory !== undefined) { + if (debug) print("emitting memory @ " + binary.length); + binary.emit_section(kMemorySectionCode, section => { + section.emit_u8(1); // one memory entry + const has_max = wasm.memory.max !== undefined; + const is_shared = wasm.memory.shared !== undefined; + // Emit flags (bit 0: reszeable max, bit 1: shared memory) + if (is_shared) { + section.emit_u8(has_max ? kSharedHasMaximumFlag : 2); + } else { + section.emit_u8(has_max ? kHasMaximumFlag : 0); + } + section.emit_u32v(wasm.memory.min); + if (has_max) section.emit_u32v(wasm.memory.max); + }); + } + + // Add global section. + if (wasm.globals.length > 0) { + if (debug) print ("emitting globals @ " + binary.length); + binary.emit_section(kGlobalSectionCode, section => { + section.emit_u32v(wasm.globals.length); + for (let global of wasm.globals) { + section.emit_u8(global.type); + section.emit_u8(global.mutable); + if ((typeof global.init_index) == "undefined") { + // Emit a constant initializer. + switch (global.type) { + case kWasmI32: + section.emit_u8(kExprI32Const); + section.emit_u32v(global.init); + break; + case kWasmI64: + section.emit_u8(kExprI64Const); + section.emit_u64v(global.init); + break; + case kWasmF32: + section.emit_bytes(wasmF32Const(global.init)); + break; + case kWasmF64: + section.emit_bytes(wasmF64Const(global.init)); + break; + case kWasmAnyFunc: + case kWasmAnyRef: + if (global.function_index !== undefined) { + section.emit_u8(kExprRefFunc); + section.emit_u32v(global.function_index); + } else { + section.emit_u8(kExprRefNull); + } + break; + } + } else { + // Emit a global-index initializer. + section.emit_u8(kExprGlobalGet); + section.emit_u32v(global.init_index); + } + section.emit_u8(kExprEnd); // end of init expression + } + }); + } + + // Add exceptions. + if (wasm.exceptions.length > 0) { + if (debug) print("emitting exceptions @ " + binary.length); + binary.emit_section(kExceptionSectionCode, section => { + section.emit_u32v(wasm.exceptions.length); + for (let type of wasm.exceptions) { + section.emit_u32v(kExceptionAttribute); + section.emit_u32v(type); + } + }); + } + + // Add export table. + var mem_export = (wasm.memory !== undefined && wasm.memory.exp); + var exports_count = wasm.exports.length + (mem_export ? 1 : 0); + if (exports_count > 0) { + if (debug) print("emitting exports @ " + binary.length); + binary.emit_section(kExportSectionCode, section => { + section.emit_u32v(exports_count); + for (let exp of wasm.exports) { + section.emit_string(exp.name); + section.emit_u8(exp.kind); + section.emit_u32v(exp.index); + } + if (mem_export) { + section.emit_string("memory"); + section.emit_u8(kExternalMemory); + section.emit_u8(0); + } + }); + } + + // Add start function section. + if (wasm.start_index !== undefined) { + if (debug) print("emitting start function @ " + binary.length); + binary.emit_section(kStartSectionCode, section => { + section.emit_u32v(wasm.start_index); + }); + } + + // Add element segments + if (wasm.element_segments.length > 0) { + if (debug) print("emitting element segments @ " + binary.length); + binary.emit_section(kElementSectionCode, section => { + var inits = wasm.element_segments; + section.emit_u32v(inits.length); + + for (let init of inits) { + if (init.is_active) { + // Active segment. + if (init.table == 0) { + section.emit_u32v(kActiveNoIndex); + } else { + section.emit_u32v(kActiveWithIndex); + section.emit_u32v(init.table); + } + if (init.is_global) { + section.emit_u8(kExprGlobalGet); + } else { + section.emit_u8(kExprI32Const); + } + section.emit_u32v(init.base); + section.emit_u8(kExprEnd); + if (init.table != 0) { + section.emit_u8(kExternalFunction); + } + section.emit_u32v(init.array.length); + for (let index of init.array) { + section.emit_u32v(index); + } + } else { + // Passive segment. + section.emit_u8(kPassiveWithElements); // flags + section.emit_u8(kWasmAnyFunc); + section.emit_u32v(init.array.length); + for (let index of init.array) { + if (index === null) { + section.emit_u8(kExprRefNull); + section.emit_u8(kExprEnd); + } else { + section.emit_u8(kExprRefFunc); + section.emit_u32v(index); + section.emit_u8(kExprEnd); + } + } + } + } + }); + } + + // If there are any passive data segments, add the DataCount section. + if (wasm.data_segments.some(seg => !seg.is_active)) { + binary.emit_section(kDataCountSectionCode, section => { + section.emit_u32v(wasm.data_segments.length); + }); + } + + // Add function bodies. + if (wasm.functions.length > 0) { + // emit function bodies + if (debug) print("emitting code @ " + binary.length); + binary.emit_section(kCodeSectionCode, section => { + section.emit_u32v(wasm.functions.length); + let header = new Binary; + for (let func of wasm.functions) { + header.reset(); + // Function body length will be patched later. + let local_decls = []; + for (let l of func.locals || []) { + if (l.i32_count > 0) { + local_decls.push({count: l.i32_count, type: kWasmI32}); + } + if (l.i64_count > 0) { + local_decls.push({count: l.i64_count, type: kWasmI64}); + } + if (l.f32_count > 0) { + local_decls.push({count: l.f32_count, type: kWasmF32}); + } + if (l.f64_count > 0) { + local_decls.push({count: l.f64_count, type: kWasmF64}); + } + if (l.s128_count > 0) { + local_decls.push({count: l.s128_count, type: kWasmS128}); + } + if (l.anyref_count > 0) { + local_decls.push({count: l.anyref_count, type: kWasmAnyRef}); + } + if (l.anyfunc_count > 0) { + local_decls.push({count: l.anyfunc_count, type: kWasmAnyFunc}); + } + } + + header.emit_u32v(local_decls.length); + for (let decl of local_decls) { + header.emit_u32v(decl.count); + header.emit_u8(decl.type); + } + + section.emit_u32v(header.length + func.body.length); + section.emit_bytes(header.trunc_buffer()); + section.emit_bytes(func.body); + } + }); + } + + // Add data segments. + if (wasm.data_segments.length > 0) { + if (debug) print("emitting data segments @ " + binary.length); + binary.emit_section(kDataSectionCode, section => { + section.emit_u32v(wasm.data_segments.length); + for (let seg of wasm.data_segments) { + if (seg.is_active) { + section.emit_u8(0); // linear memory index 0 / flags + if (seg.is_global) { + // initializer is a global variable + section.emit_u8(kExprGlobalGet); + section.emit_u32v(seg.addr); + } else { + // initializer is a constant + section.emit_u8(kExprI32Const); + section.emit_u32v(seg.addr); + } + section.emit_u8(kExprEnd); + } else { + section.emit_u8(kPassive); // flags + } + section.emit_u32v(seg.data.length); + section.emit_bytes(seg.data); + } + }); + } + + // Add any explicitly added sections + for (let exp of wasm.explicit) { + if (debug) print("emitting explicit @ " + binary.length); + binary.emit_bytes(exp); + } + + // Add names. + let num_function_names = 0; + let num_functions_with_local_names = 0; + for (let func of wasm.functions) { + if (func.name !== undefined) ++num_function_names; + if (func.numLocalNames() > 0) ++num_functions_with_local_names; + } + if (num_function_names > 0 || num_functions_with_local_names > 0 || + wasm.name !== undefined) { + if (debug) print('emitting names @ ' + binary.length); + binary.emit_section(kUnknownSectionCode, section => { + section.emit_string('name'); + // Emit module name. + if (wasm.name !== undefined) { + section.emit_section(kModuleNameCode, name_section => { + name_section.emit_string(wasm.name); + }); + } + // Emit function names. + if (num_function_names > 0) { + section.emit_section(kFunctionNamesCode, name_section => { + name_section.emit_u32v(num_function_names); + for (let func of wasm.functions) { + if (func.name === undefined) continue; + name_section.emit_u32v(func.index); + name_section.emit_string(func.name); + } + }); + } + // Emit local names. + if (num_functions_with_local_names > 0) { + section.emit_section(kLocalNamesCode, name_section => { + name_section.emit_u32v(num_functions_with_local_names); + for (let func of wasm.functions) { + if (func.numLocalNames() == 0) continue; + name_section.emit_u32v(func.index); + name_section.emit_u32v(func.numLocalNames()); + for (let i = 0; i < func.local_names.length; ++i) { + if (func.local_names[i] === undefined) continue; + name_section.emit_u32v(i); + name_section.emit_string(func.local_names[i]); + } + } + }); + } + }); + } + + return binary.trunc_buffer(); + } + + toArray(debug = false) { + return Array.from(this.toBuffer(debug)); + } + + instantiate(ffi) { + let module = this.toModule(); + let instance = new WebAssembly.Instance(module, ffi); + return instance; + } + + asyncInstantiate(ffi) { + return WebAssembly.instantiate(this.toBuffer(), ffi) + .then(({module, instance}) => instance); + } + + toModule(debug = false) { + return new WebAssembly.Module(this.toBuffer(debug)); + } +} + +function wasmSignedLeb(val, max_len = 5) { + let res = []; + for (let i = 0; i < max_len; ++i) { + let v = val & 0x7f; + // If {v} sign-extended from 7 to 32 bits is equal to val, we are done. + if (((v << 25) >> 25) == val) { + res.push(v); + return res; + } + res.push(v | 0x80); + val = val >> 7; + } + throw new Error( + 'Leb value <' + val + '> exceeds maximum length of ' + max_len); +} + +function wasmI32Const(val) { + return [kExprI32Const, ...wasmSignedLeb(val, 5)]; +} + +function wasmF32Const(f) { + // Write in little-endian order at offset 0. + data_view.setFloat32(0, f, true); + return [ + kExprF32Const, byte_view[0], byte_view[1], byte_view[2], byte_view[3] + ]; +} + +function wasmF64Const(f) { + // Write in little-endian order at offset 0. + data_view.setFloat64(0, f, true); + return [ + kExprF64Const, byte_view[0], byte_view[1], byte_view[2], + byte_view[3], byte_view[4], byte_view[5], byte_view[6], byte_view[7] + ]; +} diff --git a/test/fixtures/wpt/wasm/webapi/META.yml b/test/fixtures/wpt/wasm/webapi/META.yml new file mode 100644 index 00000000000000..69715cd7c8dcf5 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/META.yml @@ -0,0 +1 @@ +spec: https://webassembly.github.io/spec/web-api/ diff --git a/test/fixtures/wpt/wasm/webapi/abort.any.js b/test/fixtures/wpt/wasm/webapi/abort.any.js new file mode 100644 index 00000000000000..f5ddd353aa9e35 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/abort.any.js @@ -0,0 +1,37 @@ +const methods = [ + "compileStreaming", + "instantiateStreaming", +]; + +for (const method of methods) { + promise_test(async t => { + const controller = new AbortController(); + const signal = controller.signal; + controller.abort(); + const request = fetch('../incrementer.wasm', { signal }); + return promise_rejects_dom(t, 'AbortError', WebAssembly[method](request), + `${method} should reject`); + }, `${method}() on an already-aborted request should reject with AbortError`); + + promise_test(async t => { + const controller = new AbortController(); + const signal = controller.signal; + const request = fetch('../incrementer.wasm', { signal }); + const promise = WebAssembly[method](request); + controller.abort(); + return promise_rejects_dom(t, 'AbortError', promise, `${method} should reject`); + }, `${method}() synchronously followed by abort should reject with AbortError`); + + promise_test(async t => { + const controller = new AbortController(); + const signal = controller.signal; + return fetch('../incrementer.wasm', { signal }) + .then(response => { + Promise.resolve().then(() => controller.abort()); + return WebAssembly[method](response); + }) + .catch(err => { + assert_equals(err.name, "AbortError"); + }); + }, `${method}() asynchronously racing with abort should succeed or reject with AbortError`); +} diff --git a/test/fixtures/wpt/wasm/webapi/body.any.js b/test/fixtures/wpt/wasm/webapi/body.any.js new file mode 100644 index 00000000000000..4db7e8d123cfb6 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/body.any.js @@ -0,0 +1,19 @@ +// META: global=window,worker +// META: script=/wasm/jsapi/wasm-module-builder.js + +for (const method of ["compileStreaming", "instantiateStreaming"]) { + promise_test(t => { + const buffer = new WasmModuleBuilder().toBuffer(); + const argument = new Response(buffer, { headers: { "Content-Type": "application/wasm" } }); + argument.arrayBuffer(); + return promise_rejects_js(t, TypeError, WebAssembly[method](argument)); + }, `${method} after consumption`); + + promise_test(t => { + const buffer = new WasmModuleBuilder().toBuffer(); + const argument = new Response(buffer, { headers: { "Content-Type": "application/wasm" } }); + const promise = WebAssembly[method](argument); + argument.arrayBuffer(); + return promise_rejects_js(t, TypeError, promise); + }, `${method} before consumption`); +} diff --git a/test/fixtures/wpt/wasm/webapi/contenttype.any.js b/test/fixtures/wpt/wasm/webapi/contenttype.any.js new file mode 100644 index 00000000000000..0a2f5f1122ce46 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/contenttype.any.js @@ -0,0 +1,64 @@ +// META: global=window,worker +// META: script=/wasm/jsapi/assertions.js + +promise_test(t => { + const response = fetch("/wasm/incrementer.wasm").then(res => new Response(res.body)); + return promise_rejects_js(t, TypeError, WebAssembly.compileStreaming(response)); +}, "Response with no Content-Type: compileStreaming"); + +promise_test(t => { + const response = fetch("/wasm/incrementer.wasm").then(res => new Response(res.body)); + return promise_rejects_js(t, TypeError, WebAssembly.instantiateStreaming(response)); +}, "Response with no Content-Type: instantiateStreaming"); + +const invalidContentTypes = [ + "", + "application/javascript", + "application/octet-stream", + "text/wasm", + "application/wasm;", + "application/wasm;x", + "application/wasm;charset=UTF-8", +]; + +for (const contenttype of invalidContentTypes) { + promise_test(t => { + const response = fetch(`/wasm/incrementer.wasm?pipe=header(Content-Type,${encodeURIComponent(contenttype)})`); + return promise_rejects_js(t, TypeError, WebAssembly.compileStreaming(response)); + }, `Response with Content-Type ${format_value(contenttype)}: compileStreaming`); + + promise_test(t => { + const response = fetch(`/wasm/incrementer.wasm?pipe=header(Content-Type,${encodeURIComponent(contenttype)})`); + return promise_rejects_js(t, TypeError, WebAssembly.instantiateStreaming(response)); + }, `Response with Content-Type ${format_value(contenttype)}: instantiateStreaming`); +} + +const validContentTypes = [ + "application/wasm", + "APPLICATION/wasm", + "APPLICATION/WASM", +]; + +for (const contenttype of validContentTypes) { + promise_test(async t => { + const response = fetch(`/wasm/incrementer.wasm?pipe=header(Content-Type,${encodeURIComponent(contenttype)})`); + const module = await WebAssembly.compileStreaming(response); + assert_equals(Object.getPrototypeOf(module), WebAssembly.Module.prototype, + "prototype"); + }, `Response with Content-Type ${format_value(contenttype)}: compileStreaming`); + + promise_test(async t => { + const response = fetch(`/wasm/incrementer.wasm?pipe=header(Content-Type,${encodeURIComponent(contenttype)})`); + const result = await WebAssembly.instantiateStreaming(response); + assert_WebAssemblyInstantiatedSource( + result, + { + "increment": { + "kind": "function", + "name": "0", + "length": 1 + } + } + ); + }, `Response with Content-Type ${format_value(contenttype)}: instantiateStreaming`); +} diff --git a/test/fixtures/wpt/wasm/webapi/empty-body.any.js b/test/fixtures/wpt/wasm/webapi/empty-body.any.js new file mode 100644 index 00000000000000..0771647b708ec3 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/empty-body.any.js @@ -0,0 +1,20 @@ +// META: global=window,worker + +const invalidArguments = [ + [() => new Response(undefined, { headers: { "Content-Type": "application/wasm" } }), "no body"], + [() => new Response("", { headers: { "Content-Type": "application/wasm" } }), "empty body"], +]; + +for (const method of ["compileStreaming", "instantiateStreaming"]) { + for (const [argumentFactory, name] of invalidArguments) { + promise_test(t => { + const argument = argumentFactory(); + return promise_rejects_js(t, WebAssembly.CompileError, WebAssembly[method](argument)); + }, `${method}: ${name}`); + + promise_test(t => { + const argument = Promise.resolve(argumentFactory()); + return promise_rejects_js(t, WebAssembly.CompileError, WebAssembly[method](argument)); + }, `${method}: ${name} in a promise`); + } +} diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/execute-start.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/execute-start.tentative.html new file mode 100644 index 00000000000000..a35adbe8ebfc1c --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/execute-start.tentative.html @@ -0,0 +1,23 @@ + +Check execution of WebAssembly start function + + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/exported-names.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/exported-names.tentative.html new file mode 100644 index 00000000000000..16a9c59787bc94 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/exported-names.tentative.html @@ -0,0 +1,17 @@ + +Exported names from a WebAssembly module + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/invalid-bytecode.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/invalid-bytecode.tentative.html new file mode 100644 index 00000000000000..0e447dbee51042 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/invalid-bytecode.tentative.html @@ -0,0 +1,24 @@ + +Handling of importing invalid WebAssembly modules + + + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/js-wasm-cycle-errors.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/js-wasm-cycle-errors.tentative.html new file mode 100644 index 00000000000000..f45e06ece5f3bc --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/js-wasm-cycle-errors.tentative.html @@ -0,0 +1,38 @@ + +Cyclic linking between JavaScript and WebAssembly (JS higher) + + + + + + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/js-wasm-cycle.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/js-wasm-cycle.tentative.html new file mode 100644 index 00000000000000..38b0d3203c27d8 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/js-wasm-cycle.tentative.html @@ -0,0 +1,11 @@ + +Check bindings in JavaScript and WebAssembly cycle (JS higher) + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/module-parse-error.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/module-parse-error.tentative.html new file mode 100644 index 00000000000000..0e447dbee51042 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/module-parse-error.tentative.html @@ -0,0 +1,24 @@ + +Handling of importing invalid WebAssembly modules + + + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resolve-export.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resolve-export.js new file mode 100644 index 00000000000000..e0dcf493f8e780 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resolve-export.js @@ -0,0 +1 @@ +export { f } from "./resources/resolve-export.wasm"; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resolve-export.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/resolve-export.tentative.html new file mode 100644 index 00000000000000..14688221021d53 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resolve-export.tentative.html @@ -0,0 +1,25 @@ + +Check ResolveExport on invalid re-export from WebAssembly + + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/execute-start.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/execute-start.wasm new file mode 100644 index 00000000000000..ecfdda1f9af82c Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/execute-start.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/exported-names.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/exported-names.wasm new file mode 100644 index 00000000000000..ebffad193c342c Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/exported-names.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/invalid-bytecode.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/invalid-bytecode.wasm new file mode 100644 index 00000000000000..1ae8b721f3be9c Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/invalid-bytecode.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/invalid-module.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/invalid-module.wasm new file mode 100644 index 00000000000000..dd711f0953bf8f Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/invalid-module.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.js new file mode 100644 index 00000000000000..06cb8a0ad9f328 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.js @@ -0,0 +1,2 @@ +export const func = 42; +import { f } from "./js-wasm-cycle-function-error.wasm"; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.wasm new file mode 100644 index 00000000000000..b89d94dde74dc7 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-function-error.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.js new file mode 100644 index 00000000000000..1f375b8ce1576a --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.js @@ -0,0 +1,2 @@ +export const glob = new WebAssembly.Global({ value: "i32" }, 42); +import { f } from "./js-wasm-cycle-global.wasm"; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.wasm new file mode 100644 index 00000000000000..2a9017f87b123e Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-global.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.js new file mode 100644 index 00000000000000..92e37a86acd866 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.js @@ -0,0 +1,2 @@ +export const mem = new WebAssembly.Memory({ initial: 10 }); +import { f } from "./js-wasm-cycle-memory.wasm"; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.wasm new file mode 100644 index 00000000000000..e699a9b3c47c49 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-memory.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.js new file mode 100644 index 00000000000000..5d6794489f0e16 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.js @@ -0,0 +1,2 @@ +export const tab = new WebAssembly.Table({ element: "anyfunc" }); +import { f } from "./js-wasm-cycle-table.wasm"; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.wasm new file mode 100644 index 00000000000000..ec4883e652e468 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-table.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.js new file mode 100644 index 00000000000000..f7b0d62080b31d --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.js @@ -0,0 +1,2 @@ +export const val = 42; +import { f } from "./js-wasm-cycle-value.wasm"; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.wasm new file mode 100644 index 00000000000000..083409e2606b67 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle-value.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle.js new file mode 100644 index 00000000000000..8ee579e2ad3421 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle.js @@ -0,0 +1,13 @@ +function f() { return 42; } +export { f }; + +import { mem, tab, glob, func } from "./js-wasm-cycle.wasm"; +assert_true(glob instanceof WebAssembly.Global); +assert_equals(glob.valueOf(), 1); +assert_true(mem instanceof WebAssembly.Memory); +assert_true(tab instanceof WebAssembly.Table); +assert_true(func instanceof Function); + +f = () => { return 24 }; + +assert_equals(func(), 42); diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle.wasm new file mode 100644 index 00000000000000..77a3b86ab67528 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/js-wasm-cycle.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/log.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/log.js new file mode 100644 index 00000000000000..0c4f5ed519b0fd --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/log.js @@ -0,0 +1 @@ +export function logExec() { log.push("executed"); } diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/resolve-export.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/resolve-export.wasm new file mode 100644 index 00000000000000..d8fc92d022fbf4 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/resolve-export.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-export-i64-global.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-export-i64-global.wasm new file mode 100644 index 00000000000000..f9f0cf27992d4b Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-export-i64-global.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-export-to-wasm.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-export-to-wasm.wasm new file mode 100644 index 00000000000000..0ee948f96fdfbb Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-export-to-wasm.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-error-from-wasm.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-error-from-wasm.wasm new file mode 100644 index 00000000000000..c27bcb068de86e Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-error-from-wasm.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-from-wasm.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-from-wasm.wasm new file mode 100644 index 00000000000000..652ff143100f83 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-from-wasm.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-func.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-func.js new file mode 100644 index 00000000000000..78982c32dc69d7 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-func.js @@ -0,0 +1 @@ +export let f = 5; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-func.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-func.wasm new file mode 100644 index 00000000000000..2f23c58520fe59 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-func.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-global.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-global.js new file mode 100644 index 00000000000000..4258cd2d7d1e95 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-global.js @@ -0,0 +1 @@ +export let g = 5; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-global.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-global.wasm new file mode 100644 index 00000000000000..2f8bd77940cc21 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-global.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-memory.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-memory.js new file mode 100644 index 00000000000000..4cee8898383784 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-memory.js @@ -0,0 +1 @@ +export let m = 5; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-memory.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-memory.wasm new file mode 100644 index 00000000000000..d9474047cd334b Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-memory.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-table.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-table.js new file mode 100644 index 00000000000000..ca823646cbb365 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-table.js @@ -0,0 +1 @@ +export let t = 5; diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-table.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-table.wasm new file mode 100644 index 00000000000000..8ccc8be7f21382 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-import-table.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-js-cycle.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-js-cycle.js new file mode 100644 index 00000000000000..161edab4f6f1f1 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-js-cycle.js @@ -0,0 +1,15 @@ +import * as mod from "./wasm-js-cycle.wasm"; + +let jsGlob = new WebAssembly.Global({ value: "i32", mutable: true }, 42); +let jsMem = new WebAssembly.Memory({ initial: 10 }); +let jsTab = new WebAssembly.Table({ initial: 10, element: "anyfunc" }); +let jsFunc = () => { return 42; }; + +export { jsGlob, jsMem, jsTab, jsFunc }; + +export function mutateBindings() { + jsGlob = 0; + jsMem = 0; + jsTab = 0; + jsFunc = 0; +} diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-js-cycle.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-js-cycle.wasm new file mode 100644 index 00000000000000..b700377b279031 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/wasm-js-cycle.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/worker-helper.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/worker-helper.js new file mode 100644 index 00000000000000..277bb4c1ea5b79 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/worker-helper.js @@ -0,0 +1 @@ +export function pm(x) { postMessage(x); } diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/worker.js b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/worker.js new file mode 100644 index 00000000000000..c72464f71a4561 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/worker.js @@ -0,0 +1 @@ +import * as mod from "./worker.wasm" diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/resources/worker.wasm b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/worker.wasm new file mode 100644 index 00000000000000..e942dc54acf77e Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/esm-integration/resources/worker.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-import-wasm-export.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-import-wasm-export.tentative.html new file mode 100644 index 00000000000000..3761a22f218db0 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-import-wasm-export.tentative.html @@ -0,0 +1,14 @@ + +Check import and export between WebAssembly modules + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-import.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-import.tentative.html new file mode 100644 index 00000000000000..243cfd46e4bdf0 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-import.tentative.html @@ -0,0 +1,34 @@ + +Errors for imports of WebAssembly modules + + + + + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-js-cycle.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-js-cycle.tentative.html new file mode 100644 index 00000000000000..298d4d40b0006e --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-js-cycle.tentative.html @@ -0,0 +1,32 @@ + +Check bindings in JavaScript and WebAssembly cycle (Wasm higher) + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-to-wasm-link-error.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-to-wasm-link-error.tentative.html new file mode 100644 index 00000000000000..6c43e72b09bfe7 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/wasm-to-wasm-link-error.tentative.html @@ -0,0 +1,26 @@ + +Errors for linking WebAssembly module scripts + + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/worker-import.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/worker-import.tentative.html new file mode 100644 index 00000000000000..739f2d3f28cc68 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/worker-import.tentative.html @@ -0,0 +1,13 @@ + +Testing import of WebAssembly from JavaScript worker + + + + diff --git a/test/fixtures/wpt/wasm/webapi/esm-integration/worker.tentative.html b/test/fixtures/wpt/wasm/webapi/esm-integration/worker.tentative.html new file mode 100644 index 00000000000000..8002e07ce7f1cf --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/esm-integration/worker.tentative.html @@ -0,0 +1,13 @@ + +Testing WebAssembly worker + + + + diff --git a/test/fixtures/wpt/wasm/webapi/historical.any.js b/test/fixtures/wpt/wasm/webapi/historical.any.js new file mode 100644 index 00000000000000..257112c4160f54 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/historical.any.js @@ -0,0 +1,29 @@ +// META: global=window,worker + +promise_test(async t => { + const db_name = "WebAssembly"; + const obj_store = "store"; + const module_key = "module"; + + await new Promise((resolve, reject) => { + const delete_request = indexedDB.deleteDatabase(db_name); + delete_request.onsuccess = resolve; + delete_request.onerror = reject; + }); + + const db = await new Promise((resolve, reject) => { + const open_request = indexedDB.open(db_name); + open_request.onupgradeneeded = function() { + open_request.result.createObjectStore(obj_store); + }; + open_request.onsuccess = function() { + resolve(open_request.result); + }; + open_request.onerror = reject; + }); + + const mod = await WebAssembly.compileStreaming(fetch('../incrementer.wasm')); + const tx = db.transaction(obj_store, 'readwrite'); + const store = tx.objectStore(obj_store); + assert_throws_dom("DataCloneError", () => store.put(mod, module_key)); +}); diff --git a/test/fixtures/wpt/wasm/webapi/idlharness.any.js b/test/fixtures/wpt/wasm/webapi/idlharness.any.js new file mode 100644 index 00000000000000..0c4669e6caa7b2 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/idlharness.any.js @@ -0,0 +1,10 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +"use strict"; + +idl_test( + ["wasm-web-api"], + ["wasm-js-api"], + idl_array => {} +); diff --git a/test/fixtures/wpt/wasm/webapi/instantiateStreaming-bad-imports.any.js b/test/fixtures/wpt/wasm/webapi/instantiateStreaming-bad-imports.any.js new file mode 100644 index 00000000000000..38ecc40252e51d --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/instantiateStreaming-bad-imports.any.js @@ -0,0 +1,13 @@ +// META: global=window,worker +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=/wasm/jsapi/bad-imports.js + +test_bad_imports((name, error, build, ...args) => { + promise_test(t => { + const builder = new WasmModuleBuilder(); + build(builder); + const buffer = builder.toBuffer(); + const response = new Response(buffer, { "headers": { "Content-Type": "application/wasm" } }); + return promise_rejects_js(t, error, WebAssembly.instantiateStreaming(response, ...args)); + }, name); +}); diff --git a/test/fixtures/wpt/wasm/webapi/instantiateStreaming.any.js b/test/fixtures/wpt/wasm/webapi/instantiateStreaming.any.js new file mode 100644 index 00000000000000..cf3a5e7331f30e --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/instantiateStreaming.any.js @@ -0,0 +1,49 @@ +// META: global=window,worker +// META: script=/wasm/jsapi/wasm-module-builder.js +// META: script=/wasm/jsapi/assertions.js +// META: script=/wasm/jsapi/instanceTestFactory.js + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +for (const [name, fn] of instanceTestFactory) { + promise_test(async () => { + const { buffer, args, exports, verify } = fn(); + const response = new Response(buffer, { "headers": { "Content-Type": "application/wasm" } }); + const result = await WebAssembly.instantiateStreaming(response, ...args); + assert_WebAssemblyInstantiatedSource(result, exports); + verify(result.instance); + }, name); +} + +promise_test(async () => { + const builder = new WasmModuleBuilder(); + builder.addImportedGlobal("module", "global", kWasmI32); + const buffer = builder.toBuffer(); + const response = new Response(buffer, { "headers": { "Content-Type": "application/wasm" } }); + const order = []; + + const imports = { + get module() { + order.push("module getter"); + return { + get global() { + order.push("global getter"); + return 0; + }, + } + }, + }; + + const expected = [ + "module getter", + "global getter", + ]; + const p = WebAssembly.instantiateStreaming(response, imports); + assert_array_equals(order, []); + const result = await p; + assert_WebAssemblyInstantiatedSource(result, {}); + assert_array_equals(order, expected); +}, "Synchronous options handling"); diff --git a/test/fixtures/wpt/wasm/webapi/invalid-args.any.js b/test/fixtures/wpt/wasm/webapi/invalid-args.any.js new file mode 100644 index 00000000000000..b27e018a984e39 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/invalid-args.any.js @@ -0,0 +1,28 @@ +// META: global=window,worker + +const invalidArguments = [ + [undefined], + [null], + [true], + ["test"], + [Symbol()], + [0], + [0.1], + [NaN], + [{}, "Empty object"], + [Response, "Response interface object"], + [Response.prototype, "Response interface prototype object"], +]; + +for (const method of ["compileStreaming", "instantiateStreaming"]) { + for (const [argument, name = format_value(argument)] of invalidArguments) { + promise_test(t => { + return promise_rejects_js(t, TypeError, WebAssembly[method](argument)); + }, `${method}: ${name}`); + + promise_test(t => { + const promise = Promise.resolve(argument); + return promise_rejects_js(t, TypeError, WebAssembly[method](argument)); + }, `${method}: ${name} in a promise`); + } +} diff --git a/test/fixtures/wpt/wasm/webapi/invalid-code.any.js b/test/fixtures/wpt/wasm/webapi/invalid-code.any.js new file mode 100644 index 00000000000000..37373d49971a3d --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/invalid-code.any.js @@ -0,0 +1,21 @@ +// META: global=window,worker +// META: script=/wasm/jsapi/wasm-module-builder.js + +let emptyModuleBinary; +setup(() => { + emptyModuleBinary = new WasmModuleBuilder().toBuffer(); +}); + +for (const method of ["compileStreaming", "instantiateStreaming"]) { + promise_test(t => { + const buffer = new Uint8Array(Array.from(emptyModuleBinary).concat([0, 0])); + const response = new Response(buffer, { headers: { "Content-Type": "application/wasm" } }); + return promise_rejects_js(t, WebAssembly.CompileError, WebAssembly[method](response)); + }, `Invalid code (0x0000): ${method}`); + + promise_test(t => { + const buffer = new Uint8Array(Array.from(emptyModuleBinary).concat([0xCA, 0xFE])); + const response = new Response(buffer, { headers: { "Content-Type": "application/wasm" } }); + return promise_rejects_js(t, WebAssembly.CompileError, WebAssembly[method](response)); + }, `Invalid code (0xCAFE): ${method}`); +} diff --git a/test/fixtures/wpt/wasm/webapi/modified-contenttype.any.js b/test/fixtures/wpt/wasm/webapi/modified-contenttype.any.js new file mode 100644 index 00000000000000..354930517c73ea --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/modified-contenttype.any.js @@ -0,0 +1,24 @@ +// META: global=window,worker +// META: script=/wasm/jsapi/wasm-module-builder.js + +["compileStreaming", "instantiateStreaming"].forEach(method => { + promise_test(async t => { + const buffer = new WasmModuleBuilder().toBuffer(); + const argument = new Response(buffer, { headers: { "Content-Type": "test/test" } }); + argument.headers.set("Content-Type", "application/wasm"); + // This should resolve successfully + await WebAssembly[method](argument); + // Ensure body can only be read once + return promise_rejects_js(t, TypeError, argument.blob()); + }, `${method} with Content-Type set late`); + + promise_test(async t => { + const buffer = new WasmModuleBuilder().toBuffer(); + const argument = new Response(buffer, { headers: { "Content-Type": "application/wasm" } }); + argument.headers.delete("Content-Type"); + // Ensure Wasm cannot be created + await promise_rejects_js(t, TypeError, WebAssembly[method](argument)); + // This should resolve successfully + await argument.arrayBuffer(); + }, `${method} with Content-Type removed late`); +}); diff --git a/test/fixtures/wpt/wasm/webapi/origin.sub.any.js b/test/fixtures/wpt/wasm/webapi/origin.sub.any.js new file mode 100644 index 00000000000000..bf7901eeddee7c --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/origin.sub.any.js @@ -0,0 +1,15 @@ +// META: global=window,worker + +for (const method of ["compileStreaming", "instantiateStreaming"]) { + promise_test(t => { + const url = "http://{{domains[www]}}:{{ports[http][0]}}/wasm/incrementer.wasm"; + const response = fetch(url, { "mode": "no-cors" }); + return promise_rejects_js(t, TypeError, WebAssembly[method](response)); + }, `Opaque response: ${method}`); + + promise_test(t => { + const url = "/fetch/api/resources/redirect.py?redirect_status=301&location=/wasm/incrementer.wasm"; + const response = fetch(url, { "mode": "no-cors", "redirect": "manual" }); + return promise_rejects_js(t, TypeError, WebAssembly[method](response)); + }, `Opaque redirect response: ${method}`); +} diff --git a/test/fixtures/wpt/wasm/webapi/rejected-arg.any.js b/test/fixtures/wpt/wasm/webapi/rejected-arg.any.js new file mode 100644 index 00000000000000..49018db5e89eb0 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/rejected-arg.any.js @@ -0,0 +1,9 @@ +// META: global=window,worker + +for (const method of ["compileStreaming", "instantiateStreaming"]) { + promise_test(t => { + const error = { "name": "custom error" }; + const promise = Promise.reject(error); + return promise_rejects_exactly(t, error, WebAssembly[method](promise)); + }, `${method}`); +} diff --git a/test/fixtures/wpt/wasm/webapi/resources/incrementer.no_mime_type.wasm b/test/fixtures/wpt/wasm/webapi/resources/incrementer.no_mime_type.wasm new file mode 100644 index 00000000000000..47afcdef2a2812 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/resources/incrementer.no_mime_type.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/resources/incrementer.wasm b/test/fixtures/wpt/wasm/webapi/resources/incrementer.wasm new file mode 100644 index 00000000000000..47afcdef2a2812 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/resources/incrementer.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/resources/incrementer.wasm.headers b/test/fixtures/wpt/wasm/webapi/resources/incrementer.wasm.headers new file mode 100644 index 00000000000000..76b9c163b6cd33 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/resources/incrementer.wasm.headers @@ -0,0 +1,2 @@ +Content-Type: application/wasm +Cache-Control: max-age=3600 diff --git a/test/fixtures/wpt/wasm/webapi/resources/incrementer.wrong_mime_type.wasm b/test/fixtures/wpt/wasm/webapi/resources/incrementer.wrong_mime_type.wasm new file mode 100644 index 00000000000000..47afcdef2a2812 Binary files /dev/null and b/test/fixtures/wpt/wasm/webapi/resources/incrementer.wrong_mime_type.wasm differ diff --git a/test/fixtures/wpt/wasm/webapi/resources/incrementer.wrong_mime_type.wasm.headers b/test/fixtures/wpt/wasm/webapi/resources/incrementer.wrong_mime_type.wasm.headers new file mode 100644 index 00000000000000..833ee71634def2 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/resources/incrementer.wrong_mime_type.wasm.headers @@ -0,0 +1,2 @@ +Content-Type: text/css +Cache-Control: max-age=3600 diff --git a/test/fixtures/wpt/wasm/webapi/status.any.js b/test/fixtures/wpt/wasm/webapi/status.any.js new file mode 100644 index 00000000000000..f3859646cc54b9 --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/status.any.js @@ -0,0 +1,21 @@ +// META: global=window,worker + +const statuses = [ + 0, + 300, + 400, + 404, + 500, + 600, + 700, + 999, +]; + +for (const method of ["compileStreaming", "instantiateStreaming"]) { + for (const status of statuses) { + promise_test(t => { + const response = fetch(`status.py?status=${status}`); + return promise_rejects_js(t, TypeError, WebAssembly[method](response)); + }, `Response with status ${status}: ${method}`); + } +} diff --git a/test/fixtures/wpt/wasm/webapi/wasm_stream_compile_test.html b/test/fixtures/wpt/wasm/webapi/wasm_stream_compile_test.html new file mode 100644 index 00000000000000..790410e425befd --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/wasm_stream_compile_test.html @@ -0,0 +1,115 @@ + + +WebAssembly.compileStreaming + + + + diff --git a/test/fixtures/wpt/wasm/webapi/wasm_stream_instantiate_test.html b/test/fixtures/wpt/wasm/webapi/wasm_stream_instantiate_test.html new file mode 100644 index 00000000000000..f39f6504953f5e --- /dev/null +++ b/test/fixtures/wpt/wasm/webapi/wasm_stream_instantiate_test.html @@ -0,0 +1,115 @@ + + +WebAssembly.instantiateStreaming + + + + diff --git a/test/internet/test-dns-ipv4.js b/test/internet/test-dns-ipv4.js index a84f7e644fc9cf..b673e2f920d0d4 100644 --- a/test/internet/test-dns-ipv4.js +++ b/test/internet/test-dns-ipv4.js @@ -1,3 +1,5 @@ +// Flags: --dns-result-order=ipv4first + 'use strict'; const common = require('../common'); const { addresses } = require('../common/internet'); diff --git a/test/internet/test-dns-lookup.js b/test/internet/test-dns-lookup.js index 6efa946f9d7522..6e2714ecad07d0 100644 --- a/test/internet/test-dns-lookup.js +++ b/test/internet/test-dns-lookup.js @@ -45,17 +45,10 @@ dns.lookup(addresses.NOT_FOUND, { assert.strictEqual(error.hostname, addresses.NOT_FOUND); })); -common.expectWarning('DeprecationWarning', - 'Type coercion of dns.lookup options is deprecated', - 'DEP0153'); - -assert.rejects( - dnsPromises.lookup(addresses.NOT_FOUND, { - family: 'IPv4', +assert.throws( + () => dnsPromises.lookup(addresses.NOT_FOUND, { + family: 'ipv4', all: 'all' }), - { - code: 'ENOTFOUND', - message: `getaddrinfo ENOTFOUND ${addresses.NOT_FOUND}` - } + { code: 'ERR_INVALID_ARG_VALUE' } ); diff --git a/test/js-native-api/test_object/test.js b/test/js-native-api/test_object/test.js index 807c920bd46b54..021f45b55f407a 100644 --- a/test/js-native-api/test_object/test.js +++ b/test/js-native-api/test_object/test.js @@ -19,7 +19,7 @@ const object = { assert.strictEqual(test_object.Get(object, 'hello'), 'world'); assert.strictEqual(test_object.GetNamed(object, 'hello'), 'world'); assert.deepStrictEqual(test_object.Get(object, 'array'), - [ 1, 94, 'str', 12.321, { test: 'obj in arr' } ]); + [1, 94, 'str', 12.321, { test: 'obj in arr' }]); assert.deepStrictEqual(test_object.Get(object, 'newObject'), { test: 'obj in obj' }); @@ -54,7 +54,7 @@ assert.strictEqual(newObject.test_string, 'test string'); { // Verify that napi_has_own_property() fails if property is not a name. - [true, false, null, undefined, {}, [], 0, 1, () => {}].forEach((value) => { + [true, false, null, undefined, {}, [], 0, 1, () => { }].forEach((value) => { assert.throws(() => { test_object.HasOwn({}, value); }, /^Error: A string or symbol was expected$/); @@ -240,13 +240,57 @@ assert.strictEqual(newObject.test_string, 'test string'); writable: true, configurable: true }); + Object.defineProperty(object, 'writable', { + value: 4, + enumerable: true, + writable: true, + configurable: false + }); + Object.defineProperty(object, 'configurable', { + value: 4, + enumerable: true, + writable: false, + configurable: true + }); object[5] = 5; assert.deepStrictEqual(test_object.GetPropertyNames(object), - ['5', 'normal', 'inherited']); + ['5', + 'normal', + 'writable', + 'configurable', + 'inherited']); assert.deepStrictEqual(test_object.GetSymbolNames(object), [fooSymbol]); + + assert.deepStrictEqual(test_object.GetEnumerableWritableNames(object), + ['5', + 'normal', + 'writable', + fooSymbol, + 'inherited']); + + assert.deepStrictEqual(test_object.GetOwnWritableNames(object), + ['5', + 'normal', + 'unenumerable', + 'writable', + fooSymbol]); + + assert.deepStrictEqual(test_object.GetEnumerableConfigurableNames(object), + ['5', + 'normal', + 'configurable', + fooSymbol, + 'inherited']); + + assert.deepStrictEqual(test_object.GetOwnConfigurableNames(object), + ['5', + 'normal', + 'unenumerable', + 'configurable', + fooSymbol]); } // Verify that passing NULL to napi_set_property() results in the correct diff --git a/test/js-native-api/test_object/test_object.c b/test/js-native-api/test_object/test_object.c index d897e8d0d041f6..46a99a1e9ee1ed 100644 --- a/test/js-native-api/test_object/test_object.c +++ b/test/js-native-api/test_object/test_object.c @@ -106,6 +106,119 @@ static napi_value GetSymbolNames(napi_env env, napi_callback_info info) { return output; } +static napi_value GetEnumerableWritableNames(napi_env env, + napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + + NODE_API_ASSERT(env, argc >= 1, "Wrong number of arguments"); + + napi_valuetype value_type0; + NODE_API_CALL(env, napi_typeof(env, args[0], &value_type0)); + + NODE_API_ASSERT( + env, + value_type0 == napi_object, + "Wrong type of arguments. Expects an object as first argument."); + + napi_value output; + NODE_API_CALL( + env, + napi_get_all_property_names(env, + args[0], + napi_key_include_prototypes, + napi_key_enumerable | napi_key_writable, + napi_key_numbers_to_strings, + &output)); + + return output; +} + +static napi_value GetOwnWritableNames(napi_env env, napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + + NODE_API_ASSERT(env, argc >= 1, "Wrong number of arguments"); + + napi_valuetype value_type0; + NODE_API_CALL(env, napi_typeof(env, args[0], &value_type0)); + + NODE_API_ASSERT( + env, + value_type0 == napi_object, + "Wrong type of arguments. Expects an object as first argument."); + + napi_value output; + NODE_API_CALL(env, + napi_get_all_property_names(env, + args[0], + napi_key_own_only, + napi_key_writable, + napi_key_numbers_to_strings, + &output)); + + return output; +} + +static napi_value GetEnumerableConfigurableNames(napi_env env, + napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + + NODE_API_ASSERT(env, argc >= 1, "Wrong number of arguments"); + + napi_valuetype value_type0; + NODE_API_CALL(env, napi_typeof(env, args[0], &value_type0)); + + NODE_API_ASSERT( + env, + value_type0 == napi_object, + "Wrong type of arguments. Expects an object as first argument."); + + napi_value output; + NODE_API_CALL( + env, + napi_get_all_property_names(env, + args[0], + napi_key_include_prototypes, + napi_key_enumerable | napi_key_configurable, + napi_key_numbers_to_strings, + &output)); + + return output; +} + +static napi_value GetOwnConfigurableNames(napi_env env, + napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + + NODE_API_ASSERT(env, argc >= 1, "Wrong number of arguments"); + + napi_valuetype value_type0; + NODE_API_CALL(env, napi_typeof(env, args[0], &value_type0)); + + NODE_API_ASSERT( + env, + value_type0 == napi_object, + "Wrong type of arguments. Expects an object as first argument."); + + napi_value output; + NODE_API_CALL(env, + napi_get_all_property_names(env, + args[0], + napi_key_own_only, + napi_key_configurable, + napi_key_numbers_to_strings, + &output)); + + return output; +} + static napi_value Set(napi_env env, napi_callback_info info) { size_t argc = 3; napi_value args[3]; @@ -536,6 +649,10 @@ napi_value Init(napi_env env, napi_value exports) { DECLARE_NODE_API_PROPERTY("GetNamed", GetNamed), DECLARE_NODE_API_PROPERTY("GetPropertyNames", GetPropertyNames), DECLARE_NODE_API_PROPERTY("GetSymbolNames", GetSymbolNames), + DECLARE_NODE_API_PROPERTY("GetEnumerableWritableNames", GetEnumerableWritableNames), + DECLARE_NODE_API_PROPERTY("GetOwnWritableNames", GetOwnWritableNames), + DECLARE_NODE_API_PROPERTY("GetEnumerableConfigurableNames", GetEnumerableConfigurableNames), + DECLARE_NODE_API_PROPERTY("GetOwnConfigurableNames", GetOwnConfigurableNames), DECLARE_NODE_API_PROPERTY("Set", Set), DECLARE_NODE_API_PROPERTY("SetNamed", SetNamed), DECLARE_NODE_API_PROPERTY("Has", Has), diff --git a/test/js-native-api/test_reference/test_finalizer.js b/test/js-native-api/test_reference/test_finalizer.js new file mode 100644 index 00000000000000..b70582fd0342fe --- /dev/null +++ b/test/js-native-api/test_reference/test_finalizer.js @@ -0,0 +1,20 @@ +'use strict'; +// Flags: --expose-gc --force-node-api-uncaught-exceptions-policy + +const common = require('../../common'); +const test_reference = require(`./build/${common.buildType}/test_reference`); +const assert = require('assert'); + +process.on('uncaughtException', common.mustCall((err) => { + assert.throws(() => { throw err; }, /finalizer error/); +})); + +(async function() { + { + test_reference.createExternalWithJsFinalize( + common.mustCall(() => { + throw new Error('finalizer error'); + })); + } + global.gc(); +})().then(common.mustCall()); diff --git a/test/js-native-api/test_reference/test_reference.c b/test/js-native-api/test_reference/test_reference.c index 4a224efbd8cf6d..e9f3ec7a919542 100644 --- a/test/js-native-api/test_reference/test_reference.c +++ b/test/js-native-api/test_reference/test_reference.c @@ -21,6 +21,20 @@ static void FinalizeExternal(napi_env env, void* data, void* hint) { finalize_count++; } +static void FinalizeExternalCallJs(napi_env env, void* data, void* hint) { + int *actual_value = data; + NODE_API_ASSERT_RETURN_VOID(env, actual_value == &test_value, + "The correct pointer was passed to the finalizer"); + + napi_ref finalizer_ref = (napi_ref)hint; + napi_value js_finalizer; + napi_value recv; + NODE_API_CALL_RETURN_VOID(env, napi_get_reference_value(env, finalizer_ref, &js_finalizer)); + NODE_API_CALL_RETURN_VOID(env, napi_get_global(env, &recv)); + NODE_API_CALL_RETURN_VOID(env, napi_call_function(env, recv, js_finalizer, 0, NULL, NULL)); + NODE_API_CALL_RETURN_VOID(env, napi_delete_reference(env, finalizer_ref)); +} + static napi_value CreateExternal(napi_env env, napi_callback_info info) { int* data = &test_value; @@ -99,6 +113,31 @@ CreateExternalWithFinalize(napi_env env, napi_callback_info info) { return result; } +static napi_value +CreateExternalWithJsFinalize(napi_env env, napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + NODE_API_ASSERT(env, argc == 1, "Wrong number of arguments"); + napi_value finalizer = args[0]; + napi_valuetype finalizer_valuetype; + NODE_API_CALL(env, napi_typeof(env, finalizer, &finalizer_valuetype)); + NODE_API_ASSERT(env, finalizer_valuetype == napi_function, "Wrong type of first argument"); + napi_ref finalizer_ref; + NODE_API_CALL(env, napi_create_reference(env, finalizer, 1, &finalizer_ref)); + + napi_value result; + NODE_API_CALL(env, + napi_create_external(env, + &test_value, + FinalizeExternalCallJs, + finalizer_ref, /* finalize_hint */ + &result)); + + finalize_count = 0; + return result; +} + static napi_value CheckExternal(napi_env env, napi_callback_info info) { size_t argc = 1; napi_value arg; @@ -223,6 +262,8 @@ napi_value Init(napi_env env, napi_value exports) { DECLARE_NODE_API_PROPERTY("createExternal", CreateExternal), DECLARE_NODE_API_PROPERTY("createExternalWithFinalize", CreateExternalWithFinalize), + DECLARE_NODE_API_PROPERTY("createExternalWithJsFinalize", + CreateExternalWithJsFinalize), DECLARE_NODE_API_PROPERTY("checkExternal", CheckExternal), DECLARE_NODE_API_PROPERTY("createReference", CreateReference), DECLARE_NODE_API_PROPERTY("createSymbol", CreateSymbol), @@ -234,7 +275,7 @@ napi_value Init(napi_env env, napi_value exports) { DECLARE_NODE_API_PROPERTY("decrementRefcount", DecrementRefcount), DECLARE_NODE_API_GETTER("referenceValue", GetReferenceValue), DECLARE_NODE_API_PROPERTY("validateDeleteBeforeFinalize", - ValidateDeleteBeforeFinalize), + ValidateDeleteBeforeFinalize), }; NODE_API_CALL(env, napi_define_properties( diff --git a/test/message/async_error_nexttick_main.out b/test/message/async_error_nexttick_main.out index 8d11dea63d4191..9669e9b5102ff9 100644 --- a/test/message/async_error_nexttick_main.out +++ b/test/message/async_error_nexttick_main.out @@ -1,7 +1,7 @@ Error: test at one (*fixtures*async-error.js:4:9) at two (*fixtures*async-error.js:17:9) - at processTicksAndRejections (node:internal/process/task_queues:*:*) + at process.processTicksAndRejections (node:internal/process/task_queues:*:*) at async three (*fixtures*async-error.js:20:3) at async four (*fixtures*async-error.js:24:3) at async main (*message*async_error_nexttick_main.js:7:5) diff --git a/test/message/core_line_numbers.out b/test/message/core_line_numbers.out index 54b3b0ac2dc832..bdba01a223c08f 100644 --- a/test/message/core_line_numbers.out +++ b/test/message/core_line_numbers.out @@ -7,9 +7,9 @@ RangeError: Invalid input at Object.decode (node:punycode:*:*) at Object. (*test*message*core_line_numbers.js:*:*) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* diff --git a/test/message/error_aggregateTwoErrors.out b/test/message/error_aggregateTwoErrors.out index fef3953451ece9..34f56f450deb94 100644 --- a/test/message/error_aggregateTwoErrors.out +++ b/test/message/error_aggregateTwoErrors.out @@ -4,9 +4,9 @@ throw aggregateTwoErrors(err, originalError); AggregateError: original at Object. (*test*message*error_aggregateTwoErrors.js:*:*) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* { code: 'ERR0' diff --git a/test/message/error_exit.out b/test/message/error_exit.out index da535b05c105e9..d10abedb0880ae 100644 --- a/test/message/error_exit.out +++ b/test/message/error_exit.out @@ -9,9 +9,9 @@ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: at Object. (*test*message*error_exit.js:*:*) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* { generatedMessage: true, diff --git a/test/message/error_with_nul.out b/test/message/error_with_nul.out index 4d3172439a915f..91b22a240231aa 100644 Binary files a/test/message/error_with_nul.out and b/test/message/error_with_nul.out differ diff --git a/test/message/events_unhandled_error_common_trace.out b/test/message/events_unhandled_error_common_trace.out index 0c10dd53fa2fdf..cfff44a7b3305f 100644 --- a/test/message/events_unhandled_error_common_trace.out +++ b/test/message/events_unhandled_error_common_trace.out @@ -7,9 +7,9 @@ Error: foo:bar at foo (*events_unhandled_error_common_trace.js:*:*) at Object. (*events_unhandled_error_common_trace.js:*:*) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* Emitted 'error' event at: diff --git a/test/message/events_unhandled_error_nexttick.out b/test/message/events_unhandled_error_nexttick.out index 533b3ae463e560..a5a220da44f94b 100644 --- a/test/message/events_unhandled_error_nexttick.out +++ b/test/message/events_unhandled_error_nexttick.out @@ -5,13 +5,13 @@ node:events:* Error at Object. (*events_unhandled_error_nexttick.js:*:*) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* Emitted 'error' event at: at *events_unhandled_error_nexttick.js:*:* - at processTicksAndRejections (node:internal/process/task_queues:*:*) + at process.processTicksAndRejections (node:internal/process/task_queues:*:*) Node.js * diff --git a/test/message/events_unhandled_error_sameline.out b/test/message/events_unhandled_error_sameline.out index 62feb784663565..f60b0f8572dd5e 100644 --- a/test/message/events_unhandled_error_sameline.out +++ b/test/message/events_unhandled_error_sameline.out @@ -5,9 +5,9 @@ node:events:* Error at Object. (*events_unhandled_error_sameline.js:*:*) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* Emitted 'error' event at: diff --git a/test/message/events_unhandled_error_subclass.out b/test/message/events_unhandled_error_subclass.out index 4eddce9baf9858..6733809a8ccaab 100644 --- a/test/message/events_unhandled_error_subclass.out +++ b/test/message/events_unhandled_error_subclass.out @@ -5,9 +5,9 @@ node:events:* Error at Object. (*events_unhandled_error_subclass.js:*:*) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* Emitted 'error' event on Foo instance at: diff --git a/test/message/if-error-has-good-stack.out b/test/message/if-error-has-good-stack.out index 32ec6de3e596c4..6ded3280d20aa1 100644 --- a/test/message/if-error-has-good-stack.out +++ b/test/message/if-error-has-good-stack.out @@ -12,9 +12,9 @@ AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error at a (*if-error-has-good-stack.js:*:*) at Object. (*if-error-has-good-stack.js:*:*) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* { generatedMessage: false, @@ -25,9 +25,9 @@ AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error at a (*if-error-has-good-stack.js:*:*) at Object. (*if-error-has-good-stack.js:*:*) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* expected: null, diff --git a/test/message/nexttick_throw.out b/test/message/nexttick_throw.out index 4efaed978a57f8..2d105a5c422abc 100644 --- a/test/message/nexttick_throw.out +++ b/test/message/nexttick_throw.out @@ -4,6 +4,6 @@ ^ ReferenceError: undefined_reference_error_maker is not defined at *test*message*nexttick_throw.js:*:* - at processTicksAndRejections (node:internal/process/task_queues:*:*) + at process.processTicksAndRejections (node:internal/process/task_queues:*:*) Node.js * diff --git a/test/message/source_map_disabled_by_api.out b/test/message/source_map_disabled_by_api.out index 1b8d3d7a2e06b6..70979849795e11 100644 --- a/test/message/source_map_disabled_by_api.out +++ b/test/message/source_map_disabled_by_api.out @@ -5,9 +5,9 @@ Error: an error! at functionA (*enclosing-call-site-min.js:1:26) at Object. (*enclosing-call-site-min.js:1:199) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Module.require (node:internal/modules/cjs/loader:*) *enclosing-call-site.js:16 throw new Error('an error!') @@ -20,9 +20,9 @@ Error: an error! at functionA (*enclosing-call-site.js:2:3) at Object. (*enclosing-call-site.js:24:3) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Module.require (node:internal/modules/cjs/loader:*) Node.js * diff --git a/test/message/source_map_enabled_by_api.out b/test/message/source_map_enabled_by_api.out index 2f902e90371ad6..9af1810020cf3f 100644 --- a/test/message/source_map_enabled_by_api.out +++ b/test/message/source_map_enabled_by_api.out @@ -9,9 +9,9 @@ Error: an error! at functionA (*enclosing-call-site.js:2:3) at Object. (*enclosing-call-site.js:24:3) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Module.require (node:internal/modules/cjs/loader:*) *enclosing-call-site-min.js:1 var functionA=function(){functionB()};function functionB(){functionC()}var functionC=function(){functionD()},functionD=function(){if(0 (*enclosing-call-site-min.js:1:199) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Module.require (node:internal/modules/cjs/loader:*) Node.js * diff --git a/test/message/source_map_enclosing_function.out b/test/message/source_map_enclosing_function.out index 50e8e553494b53..90482b6cb2a5dd 100644 --- a/test/message/source_map_enclosing_function.out +++ b/test/message/source_map_enclosing_function.out @@ -9,9 +9,9 @@ Error: an error! at functionA (*enclosing-call-site.js:2:3) at Object. (*enclosing-call-site.js:24:3) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Module.require (node:internal/modules/cjs/loader:*) Node.js * diff --git a/test/message/source_map_reference_error_tabs.out b/test/message/source_map_reference_error_tabs.out index 9dfcf846372098..be31c07810edef 100644 --- a/test/message/source_map_reference_error_tabs.out +++ b/test/message/source_map_reference_error_tabs.out @@ -6,9 +6,9 @@ ReferenceError: alert is not defined at *tabs.coffee:26:2* at *tabs.coffee:1:14* at Module._compile (node:internal/modules/cjs/loader:* - at Object.Module._extensions..js (node:internal/modules/cjs/loader:* + at Module._extensions..js (node:internal/modules/cjs/loader:* at Module.load (node:internal/modules/cjs/loader:* - at Function.Module._load (node:internal/modules/cjs/loader:* + at Module._load (node:internal/modules/cjs/loader:* at Module.require (node:internal/modules/cjs/loader:* at require (node:internal/modules/cjs/helpers:* at Object. (*source_map_reference_error_tabs.js:* diff --git a/test/message/source_map_throw_catch.out b/test/message/source_map_throw_catch.out index 95bba5eee3e9dc..9a98aa59e76759 100644 --- a/test/message/source_map_throw_catch.out +++ b/test/message/source_map_throw_catch.out @@ -6,9 +6,9 @@ Error: an exception at *typescript-throw.ts:18:11* at *typescript-throw.ts:24:1* at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Module.require (node:internal/modules/cjs/loader:*) at require (node:internal/modules/cjs/helpers:*) at Object. (*source_map_throw_catch.js:6:3) diff --git a/test/message/source_map_throw_first_tick.out b/test/message/source_map_throw_first_tick.out index c4eb64aa8e3f9d..8eff61425c9b1a 100644 --- a/test/message/source_map_throw_first_tick.out +++ b/test/message/source_map_throw_first_tick.out @@ -6,9 +6,9 @@ Error: an exception at *typescript-throw.ts:18:11* at *typescript-throw.ts:24:1* at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Module.require (node:internal/modules/cjs/loader:*) at require (node:internal/modules/cjs/helpers:*) at Object. (*source_map_throw_first_tick.js:5:1) diff --git a/test/message/source_map_throw_icu.out b/test/message/source_map_throw_icu.out index 0e95691a23d339..6a52cb5d53a619 100644 --- a/test/message/source_map_throw_icu.out +++ b/test/message/source_map_throw_icu.out @@ -6,9 +6,9 @@ Error: an error at *icu.jsx:3:23* at *icu.jsx:9:5* at Module._compile (node:internal/modules/cjs/loader:* - at Object.Module._extensions..js (node:internal/modules/cjs/loader:* + at Module._extensions..js (node:internal/modules/cjs/loader:* at Module.load (node:internal/modules/cjs/loader:* - at Function.Module._load (node:internal/modules/cjs/loader:* + at Module._load (node:internal/modules/cjs/loader:* at Module.require (node:internal/modules/cjs/loader:* at require (node:internal/modules/cjs/helpers:* at Object. (*source_map_throw_icu.js:* diff --git a/test/message/source_map_throw_set_immediate.out b/test/message/source_map_throw_set_immediate.out index 42a595c302ed6a..5f27ae2b5295e9 100644 --- a/test/message/source_map_throw_set_immediate.out +++ b/test/message/source_map_throw_set_immediate.out @@ -5,6 +5,6 @@ Error: goodbye at Hello *uglify-throw-original.js:5:9* at *uglify-throw-original.js:9:3* - at processImmediate (node:internal/timers:*) + at process.processImmediate (node:internal/timers:*) Node.js * diff --git a/test/message/test-no-extra-info-on-fatal-exception.out b/test/message/test-no-extra-info-on-fatal-exception.out index 840ee0e65a75d2..0390dacb8d5f42 100644 --- a/test/message/test-no-extra-info-on-fatal-exception.out +++ b/test/message/test-no-extra-info-on-fatal-exception.out @@ -5,8 +5,8 @@ throw new Error('foo'); Error: foo at Object. (*:6:7) at Module._compile (node:internal/modules/cjs/loader:*:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*:*) at Module.load (node:internal/modules/cjs/loader:*:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) at node:internal/main/run_main_module:*:* diff --git a/test/message/test_runner_no_refs.out b/test/message/test_runner_no_refs.out index 0379ff8ca7496e..078ab7c390e488 100644 --- a/test/message/test_runner_no_refs.out +++ b/test/message/test_runner_no_refs.out @@ -1,10 +1,12 @@ TAP version 13 +# Subtest: does not keep event loop alive + # Subtest: +does not keep event loop alive not ok 1 - +does not keep event loop alive --- duration_ms: * failureType: 'cancelledByParent' - error: "'test did not finish before its parent and was cancelled'" - code: ERR_TEST_FAILURE + error: 'test did not finish before its parent and was cancelled' + code: 'ERR_TEST_FAILURE' stack: |- * ... @@ -13,8 +15,8 @@ not ok 1 - does not keep event loop alive --- duration_ms: * failureType: 'cancelledByParent' - error: "'test did not finish before its parent and was cancelled'" - code: ERR_TEST_FAILURE + error: 'test did not finish before its parent and was cancelled' + code: 'ERR_TEST_FAILURE' stack: |- * ... diff --git a/test/message/test_runner_only_tests.out b/test/message/test_runner_only_tests.out index 76e6337bb8953d..b65958b010f8ad 100644 --- a/test/message/test_runner_only_tests.out +++ b/test/message/test_runner_only_tests.out @@ -1,76 +1,97 @@ TAP version 13 +# Subtest: only = undefined ok 1 - only = undefined # SKIP 'only' option not set --- duration_ms: * ... +# Subtest: only = undefined, skip = string ok 2 - only = undefined, skip = string # SKIP 'only' option not set --- duration_ms: * ... +# Subtest: only = undefined, skip = true ok 3 - only = undefined, skip = true # SKIP 'only' option not set --- duration_ms: * ... +# Subtest: only = undefined, skip = false ok 4 - only = undefined, skip = false # SKIP 'only' option not set --- duration_ms: * ... +# Subtest: only = false ok 5 - only = false # SKIP 'only' option not set --- duration_ms: * ... +# Subtest: only = false, skip = string ok 6 - only = false, skip = string # SKIP 'only' option not set --- duration_ms: * ... +# Subtest: only = false, skip = true ok 7 - only = false, skip = true # SKIP 'only' option not set --- duration_ms: * ... +# Subtest: only = false, skip = false ok 8 - only = false, skip = false # SKIP 'only' option not set --- duration_ms: * ... +# Subtest: only = true, skip = string ok 9 - only = true, skip = string # SKIP skip message --- duration_ms: * ... +# Subtest: only = true, skip = true ok 10 - only = true, skip = true # SKIP --- duration_ms: * ... +# Subtest: only = true, with subtests + # Subtest: running subtest 1 ok 1 - running subtest 1 --- duration_ms: * ... + # Subtest: running subtest 2 ok 2 - running subtest 2 --- duration_ms: * ... + # Subtest: skipped subtest 1 ok 3 - skipped subtest 1 # SKIP 'only' option not set --- duration_ms: * ... + # Subtest: skipped subtest 2 ok 4 - skipped subtest 2 # SKIP 'only' option not set --- duration_ms: * ... + # Subtest: running subtest 3 ok 5 - running subtest 3 --- duration_ms: * ... + # Subtest: running subtest 4 + # Subtest: running sub-subtest 1 ok 1 - running sub-subtest 1 --- duration_ms: * ... + # Subtest: running sub-subtest 2 ok 2 - running sub-subtest 2 --- duration_ms: * ... + # Subtest: skipped sub-subtest 1 ok 3 - skipped sub-subtest 1 # SKIP 'only' option not set --- duration_ms: * ... + # Subtest: skipped sub-subtest 2 ok 4 - skipped sub-subtest 2 # SKIP 'only' option not set --- duration_ms: * @@ -80,10 +101,12 @@ ok 10 - only = true, skip = true # SKIP --- duration_ms: * ... + # Subtest: skipped subtest 3 ok 7 - skipped subtest 3 # SKIP 'only' option not set --- duration_ms: * ... + # Subtest: skipped subtest 4 ok 8 - skipped subtest 4 # SKIP --- duration_ms: * diff --git a/test/message/test_runner_output.js b/test/message/test_runner_output.js index 2639c327966f16..c586199f0d9d31 100644 --- a/test/message/test_runner_output.js +++ b/test/message/test_runner_output.js @@ -3,6 +3,7 @@ require('../common'); const assert = require('node:assert'); const test = require('node:test'); +const util = require('util'); test('sync pass todo', (t) => { t.todo(); @@ -296,3 +297,34 @@ test('only is set but not in only mode', { only: true }, async (t) => { t.runOnly(false); await t.test('running subtest 4'); }); + +test('custom inspect symbol fail', () => { + const obj = { + [util.inspect.custom]() { + return 'customized'; + }, + foo: 1 + }; + + throw obj; +}); + +test('custom inspect symbol that throws fail', () => { + const obj = { + [util.inspect.custom]() { + throw new Error('bad-inspect'); + }, + foo: 1 + }; + + throw obj; +}); + +test('subtest sync throw fails', async (t) => { + await t.test('sync throw fails at first', (t) => { + throw new Error('thrown from subtest sync throw fails at first'); + }); + await t.test('sync throw fails at second', (t) => { + throw new Error('thrown from subtest sync throw fails at second'); + }); +}); diff --git a/test/message/test_runner_output.out b/test/message/test_runner_output.out index bf42b4035f2bf2..2f6e2502749068 100644 --- a/test/message/test_runner_output.out +++ b/test/message/test_runner_output.out @@ -1,18 +1,21 @@ TAP version 13 +# Subtest: sync pass todo ok 1 - sync pass todo # TODO --- duration_ms: * ... +# Subtest: sync pass todo with message ok 2 - sync pass todo with message # TODO this is a passing todo --- duration_ms: * ... +# Subtest: sync fail todo not ok 3 - sync fail todo # TODO --- duration_ms: * failureType: 'testCodeFailure' error: 'thrown from sync fail todo' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * @@ -23,12 +26,13 @@ not ok 3 - sync fail todo # TODO * * ... +# Subtest: sync fail todo with message not ok 4 - sync fail todo with message # TODO this is a failing todo --- duration_ms: * failureType: 'testCodeFailure' error: 'thrown from sync fail todo with message' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * @@ -41,25 +45,29 @@ not ok 4 - sync fail todo with message # TODO this is a failing todo * * ... +# Subtest: sync skip pass ok 5 - sync skip pass # SKIP --- duration_ms: * ... +# Subtest: sync skip pass with message ok 6 - sync skip pass with message # SKIP this is skipped --- duration_ms: * ... +# Subtest: sync pass ok 7 - sync pass --- duration_ms: * ... # this test should pass +# Subtest: sync throw fail not ok 8 - sync throw fail --- duration_ms: * failureType: 'testCodeFailure' error: 'thrown from sync throw fail' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * @@ -70,20 +78,23 @@ not ok 8 - sync throw fail * * ... +# Subtest: async skip pass ok 9 - async skip pass # SKIP --- duration_ms: * ... +# Subtest: async pass ok 10 - async pass --- duration_ms: * ... +# Subtest: async throw fail not ok 11 - async throw fail --- duration_ms: * failureType: 'testCodeFailure' error: 'thrown from async throw fail' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * @@ -94,12 +105,13 @@ not ok 11 - async throw fail * * ... +# Subtest: async skip fail not ok 12 - async skip fail # SKIP --- duration_ms: * failureType: 'testCodeFailure' error: 'thrown from async throw fail' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * @@ -110,12 +122,17 @@ not ok 12 - async skip fail # SKIP * * ... +# Subtest: async assertion fail not ok 13 - async assertion fail --- duration_ms: * failureType: 'testCodeFailure' - error: 'Expected values to be strictly equal:\n\ntrue !== false\n' - code: ERR_ASSERTION + error: |- + Expected values to be strictly equal: + + true !== false + + code: 'ERR_ASSERTION' stack: |- * * @@ -126,16 +143,18 @@ not ok 13 - async assertion fail * * ... +# Subtest: resolve pass ok 14 - resolve pass --- duration_ms: * ... +# Subtest: reject fail not ok 15 - reject fail --- duration_ms: * failureType: 'testCodeFailure' error: 'rejected from reject fail' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * @@ -146,32 +165,39 @@ not ok 15 - reject fail * * ... +# Subtest: unhandled rejection - passes but warns ok 16 - unhandled rejection - passes but warns --- duration_ms: * ... +# Subtest: async unhandled rejection - passes but warns ok 17 - async unhandled rejection - passes but warns --- duration_ms: * ... +# Subtest: immediate throw - passes but warns ok 18 - immediate throw - passes but warns --- duration_ms: * ... +# Subtest: immediate reject - passes but warns ok 19 - immediate reject - passes but warns --- duration_ms: * ... +# Subtest: immediate resolve pass ok 20 - immediate resolve pass --- duration_ms: * ... +# Subtest: subtest sync throw fail + # Subtest: +sync throw fail not ok 1 - +sync throw fail --- duration_ms: * failureType: 'testCodeFailure' error: 'thrown from subtest sync throw fail' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * @@ -190,28 +216,34 @@ not ok 21 - subtest sync throw fail --- duration_ms: * failureType: 'subtestsFailed' - error: "'1 subtest failed'" - code: ERR_TEST_FAILURE + error: '1 subtest failed' + code: 'ERR_TEST_FAILURE' ... +# Subtest: sync throw non-error fail not ok 22 - sync throw non-error fail --- duration_ms: * failureType: 'testCodeFailure' error: 'Symbol(thrown symbol from sync throw non-error fail)' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' ... +# Subtest: level 0a + # Subtest: level 1a ok 1 - level 1a --- duration_ms: * ... + # Subtest: level 1b ok 2 - level 1b --- duration_ms: * ... + # Subtest: level 1c ok 3 - level 1c --- duration_ms: * ... + # Subtest: level 1d ok 4 - level 1d --- duration_ms: * @@ -221,13 +253,17 @@ ok 23 - level 0a --- duration_ms: * ... +# Subtest: top level + # Subtest: +long running not ok 1 - +long running --- duration_ms: * failureType: 'cancelledByParent' - error: "'test did not finish before its parent and was cancelled'" - code: ERR_TEST_FAILURE + error: 'test did not finish before its parent and was cancelled' + code: 'ERR_TEST_FAILURE' ... + # Subtest: +short running + # Subtest: ++short running ok 1 - ++short running --- duration_ms: * @@ -242,27 +278,31 @@ not ok 24 - top level --- duration_ms: * failureType: 'subtestsFailed' - error: "'1 subtest failed'" - code: ERR_TEST_FAILURE + error: '1 subtest failed' + code: 'ERR_TEST_FAILURE' ... +# Subtest: invalid subtest - pass but subtest fails ok 25 - invalid subtest - pass but subtest fails --- duration_ms: * ... +# Subtest: sync skip option ok 26 - sync skip option # SKIP --- duration_ms: * ... +# Subtest: sync skip option with message ok 27 - sync skip option with message # SKIP this is skipped --- duration_ms: * ... +# Subtest: sync skip option is false fail not ok 28 - sync skip option is false fail --- duration_ms: * failureType: 'testCodeFailure' error: 'this should be executed' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * @@ -272,94 +312,113 @@ not ok 28 - sync skip option is false fail * * ... +# Subtest: ok 29 - --- duration_ms: * ... +# Subtest: functionOnly ok 30 - functionOnly --- duration_ms: * ... +# Subtest: ok 31 - --- duration_ms: * ... +# Subtest: test with only a name provided ok 32 - test with only a name provided --- duration_ms: * ... +# Subtest: ok 33 - --- duration_ms: * ... +# Subtest: ok 34 - # SKIP --- duration_ms: * ... +# Subtest: test with a name and options provided ok 35 - test with a name and options provided # SKIP --- duration_ms: * ... +# Subtest: functionAndOptions ok 36 - functionAndOptions # SKIP --- duration_ms: * ... +# Subtest: escaped description \\ \# \\\#\\ ok 37 - escaped description \\ \# \\\#\\ --- duration_ms: * ... +# Subtest: escaped skip message ok 38 - escaped skip message # SKIP \#skip --- duration_ms: * ... +# Subtest: escaped todo message ok 39 - escaped todo message # TODO \#todo --- duration_ms: * ... +# Subtest: escaped diagnostic ok 40 - escaped diagnostic --- duration_ms: * ... # \#diagnostic +# Subtest: callback pass ok 41 - callback pass --- duration_ms: * ... +# Subtest: callback fail not ok 42 - callback fail --- duration_ms: * failureType: 'testCodeFailure' error: 'callback failure' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * ... +# Subtest: sync t is this in test ok 43 - sync t is this in test --- duration_ms: * ... +# Subtest: async t is this in test ok 44 - async t is this in test --- duration_ms: * ... +# Subtest: callback t is this in test ok 45 - callback t is this in test --- duration_ms: * ... +# Subtest: callback also returns a Promise not ok 46 - callback also returns a Promise --- duration_ms: * failureType: 'callbackAndPromisePresent' - error: "'passed a callback but also returned a Promise'" - code: ERR_TEST_FAILURE + error: 'passed a callback but also returned a Promise' + code: 'ERR_TEST_FAILURE' ... +# Subtest: callback throw not ok 47 - callback throw --- duration_ms: * failureType: 'testCodeFailure' error: 'thrown from callback throw' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * * @@ -369,51 +428,64 @@ not ok 47 - callback throw * * ... +# Subtest: callback called twice not ok 48 - callback called twice --- duration_ms: * failureType: 'multipleCallbackInvocations' - error: "'callback invoked multiple times'" - code: ERR_TEST_FAILURE + error: 'callback invoked multiple times' + code: 'ERR_TEST_FAILURE' + stack: |- + * + * ... +# Subtest: callback called twice in different ticks ok 49 - callback called twice in different ticks --- duration_ms: * ... +# Subtest: callback called twice in future tick not ok 50 - callback called twice in future tick --- duration_ms: * - failureType: 'multipleCallbackInvocations' - error: "'callback invoked multiple times'" - code: ERR_TEST_FAILURE + failureType: 'uncaughtException' + error: 'callback invoked multiple times' + code: 'ERR_TEST_FAILURE' stack: |- * ... +# Subtest: callback async throw not ok 51 - callback async throw --- duration_ms: * failureType: 'uncaughtException' error: 'thrown from callback async throw' - code: ERR_TEST_FAILURE + code: 'ERR_TEST_FAILURE' stack: |- * ... +# Subtest: callback async throw after done ok 52 - callback async throw after done --- duration_ms: * ... +# Subtest: only is set but not in only mode + # Subtest: running subtest 1 ok 1 - running subtest 1 --- duration_ms: * ... + # Subtest: running subtest 2 ok 2 - running subtest 2 --- duration_ms: * ... + # Subtest: running subtest 3 ok 3 - running subtest 3 --- duration_ms: * ... + # Subtest: running subtest 4 ok 4 - running subtest 4 --- duration_ms: * @@ -423,25 +495,93 @@ ok 53 - only is set but not in only mode --- duration_ms: * ... -not ok 54 - invalid subtest fail +# Subtest: custom inspect symbol fail +not ok 54 - custom inspect symbol fail + --- + duration_ms: * + failureType: 'testCodeFailure' + error: 'customized' + code: 'ERR_TEST_FAILURE' + ... +# Subtest: custom inspect symbol that throws fail +not ok 55 - custom inspect symbol that throws fail + --- + duration_ms: * + failureType: 'testCodeFailure' + error: |- + { + foo: 1, + [Symbol(nodejs.util.inspect.custom)]: [Function: [nodejs.util.inspect.custom]] + } + code: 'ERR_TEST_FAILURE' + ... +# Subtest: subtest sync throw fails + # Subtest: sync throw fails at first + not ok 1 - sync throw fails at first + --- + duration_ms: * + failureType: 'testCodeFailure' + error: 'thrown from subtest sync throw fails at first' + code: 'ERR_TEST_FAILURE' + stack: |- + * + * + * + * + * + * + * + * + * + * + ... + # Subtest: sync throw fails at second + not ok 2 - sync throw fails at second + --- + duration_ms: * + failureType: 'testCodeFailure' + error: 'thrown from subtest sync throw fails at second' + code: 'ERR_TEST_FAILURE' + stack: |- + * + * + * + * + * + * + * + * + * + * + ... + 1..2 +not ok 56 - subtest sync throw fails + --- + duration_ms: * + failureType: 'subtestsFailed' + error: '2 subtests failed' + code: 'ERR_TEST_FAILURE' + ... +# Subtest: invalid subtest fail +not ok 57 - invalid subtest fail --- duration_ms: * failureType: 'parentAlreadyFinished' - error: "'test could not be started because its parent finished'" - code: ERR_TEST_FAILURE + error: 'test could not be started because its parent finished' + code: 'ERR_TEST_FAILURE' stack: |- * ... -1..54 +1..57 # Warning: Test "unhandled rejection - passes but warns" generated asynchronous activity after the test ended. This activity created the error "Error: rejected from unhandled rejection fail" and would have caused the test to fail, but instead triggered an unhandledRejection event. # Warning: Test "async unhandled rejection - passes but warns" generated asynchronous activity after the test ended. This activity created the error "Error: rejected from async unhandled rejection fail" and would have caused the test to fail, but instead triggered an unhandledRejection event. # Warning: Test "immediate throw - passes but warns" generated asynchronous activity after the test ended. This activity created the error "Error: thrown from immediate throw fail" and would have caused the test to fail, but instead triggered an uncaughtException event. # Warning: Test "immediate reject - passes but warns" generated asynchronous activity after the test ended. This activity created the error "Error: rejected from immediate reject fail" and would have caused the test to fail, but instead triggered an unhandledRejection event. -# Warning: Test "callback called twice in different ticks" generated asynchronous activity after the test ended. This activity created the error "Error [ERR_TEST_FAILURE]: 'callback invoked multiple times'" and would have caused the test to fail, but instead triggered an uncaughtException event. +# Warning: Test "callback called twice in different ticks" generated asynchronous activity after the test ended. This activity created the error "Error [ERR_TEST_FAILURE]: callback invoked multiple times" and would have caused the test to fail, but instead triggered an uncaughtException event. # Warning: Test "callback async throw after done" generated asynchronous activity after the test ended. This activity created the error "Error: thrown from callback async throw after done" and would have caused the test to fail, but instead triggered an uncaughtException event. -# tests 54 +# tests 57 # pass 24 -# fail 15 +# fail 18 # skipped 10 # todo 5 # duration_ms * diff --git a/test/message/test_runner_unresolved_promise.out b/test/message/test_runner_unresolved_promise.out index 263b2411c85565..58b3a4ed89a616 100644 --- a/test/message/test_runner_unresolved_promise.out +++ b/test/message/test_runner_unresolved_promise.out @@ -1,23 +1,26 @@ TAP version 13 +# Subtest: pass ok 1 - pass --- duration_ms: * ... +# Subtest: never resolving promise not ok 2 - never resolving promise --- duration_ms: * failureType: 'cancelledByParent' - error: "'test did not finish before its parent and was cancelled'" - code: ERR_TEST_FAILURE + error: 'test did not finish before its parent and was cancelled' + code: 'ERR_TEST_FAILURE' stack: |- * ... +# Subtest: fail not ok 3 - fail --- duration_ms: * failureType: 'cancelledByParent' - error: "'test did not finish before its parent and was cancelled'" - code: ERR_TEST_FAILURE + error: 'test did not finish before its parent and was cancelled' + code: 'ERR_TEST_FAILURE' stack: |- * ... diff --git a/test/message/timeout_throw.out b/test/message/timeout_throw.out index bc20cc7762f844..83b861caa7ca29 100644 --- a/test/message/timeout_throw.out +++ b/test/message/timeout_throw.out @@ -4,6 +4,6 @@ ReferenceError: undefined_reference_error_maker is not defined at Timeout._onTimeout (*test*message*timeout_throw.js:*:*) at listOnTimeout (node:internal/timers:*:*) - at processTimers (node:internal/timers:*:*) + at process.processTimers (node:internal/timers:*:*) Node.js * diff --git a/test/message/undefined_reference_in_new_context.out b/test/message/undefined_reference_in_new_context.out index 259bb6d1bc1362..3bfa1c5b967dd8 100644 --- a/test/message/undefined_reference_in_new_context.out +++ b/test/message/undefined_reference_in_new_context.out @@ -12,7 +12,7 @@ ReferenceError: foo is not defined at Module._compile (node:internal/modules/cjs/loader:*) at *..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*:*) + at Module._load (node:internal/modules/cjs/loader:*:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*:*) Node.js * diff --git a/test/message/vm_display_runtime_error.out b/test/message/vm_display_runtime_error.out index 403ad365451e96..857525e4a4768a 100644 --- a/test/message/vm_display_runtime_error.out +++ b/test/message/vm_display_runtime_error.out @@ -9,9 +9,9 @@ Error: boo! at Object.runInThisContext (node:vm:*) at Object. (*test*message*vm_display_runtime_error.js:*) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*) at node:internal/main/run_main_module:*:* test.vm:1 @@ -24,9 +24,9 @@ Error: spooky! at Object.runInThisContext (node:vm:*) at Object. (*test*message*vm_display_runtime_error.js:*) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*) at node:internal/main/run_main_module:*:* diff --git a/test/message/vm_display_syntax_error.out b/test/message/vm_display_syntax_error.out index 4501ae7e81f272..427f593e9e9a21 100644 --- a/test/message/vm_display_syntax_error.out +++ b/test/message/vm_display_syntax_error.out @@ -8,9 +8,9 @@ SyntaxError: Unexpected number at Object.runInThisContext (node:vm:*) at Object. (*test*message*vm_display_syntax_error.js:*) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*) at node:internal/main/run_main_module:*:* test.vm:1 @@ -22,9 +22,9 @@ SyntaxError: Unexpected number at Object.runInThisContext (node:vm:*) at Object. (*test*message*vm_display_syntax_error.js:*) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*) at node:internal/main/run_main_module:*:* diff --git a/test/message/vm_dont_display_runtime_error.out b/test/message/vm_dont_display_runtime_error.out index 4ffe3cf4dc2e6b..a2811489275b17 100644 --- a/test/message/vm_dont_display_runtime_error.out +++ b/test/message/vm_dont_display_runtime_error.out @@ -10,9 +10,9 @@ Error: boo! at Object.runInThisContext (node:vm:*) at Object. (*test*message*vm_dont_display_runtime_error.js:*) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*) at node:internal/main/run_main_module:*:* diff --git a/test/message/vm_dont_display_syntax_error.out b/test/message/vm_dont_display_syntax_error.out index b9e8c24dd97791..2219ee7f2722ad 100644 --- a/test/message/vm_dont_display_syntax_error.out +++ b/test/message/vm_dont_display_syntax_error.out @@ -10,9 +10,9 @@ SyntaxError: Unexpected number at Object.runInThisContext (node:vm:*) at Object. (*test*message*vm_dont_display_syntax_error.js:*) at Module._compile (node:internal/modules/cjs/loader:*) - at Object.Module._extensions..js (node:internal/modules/cjs/loader:*) + at Module._extensions..js (node:internal/modules/cjs/loader:*) at Module.load (node:internal/modules/cjs/loader:*) - at Function.Module._load (node:internal/modules/cjs/loader:*) + at Module._load (node:internal/modules/cjs/loader:*) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:*) at node:internal/main/run_main_module:*:* diff --git a/test/node-api/test_buffer/test_buffer.c b/test/node-api/test_buffer/test_buffer.c index abe21626468ec9..bc61cd7a2e9062 100644 --- a/test/node-api/test_buffer/test_buffer.c +++ b/test/node-api/test_buffer/test_buffer.c @@ -22,6 +22,17 @@ static void noopDeleter(napi_env env, void* data, void* finalize_hint) { deleterCallCount++; } +static void malignDeleter(napi_env env, void* data, void* finalize_hint) { + NODE_API_ASSERT_RETURN_VOID(env, data != NULL && strcmp(data, theText) == 0, "invalid data"); + napi_ref finalizer_ref = (napi_ref)finalize_hint; + napi_value js_finalizer; + napi_value recv; + NODE_API_CALL_RETURN_VOID(env, napi_get_reference_value(env, finalizer_ref, &js_finalizer)); + NODE_API_CALL_RETURN_VOID(env, napi_get_global(env, &recv)); + NODE_API_CALL_RETURN_VOID(env, napi_call_function(env, recv, js_finalizer, 0, NULL, NULL)); + NODE_API_CALL_RETURN_VOID(env, napi_delete_reference(env, finalizer_ref)); +} + static napi_value newBuffer(napi_env env, napi_callback_info info) { napi_value theBuffer; char* theCopy; @@ -107,6 +118,30 @@ static napi_value staticBuffer(napi_env env, napi_callback_info info) { return theBuffer; } +static napi_value malignFinalizerBuffer(napi_env env, napi_callback_info info) { + size_t argc = 1; + napi_value args[1]; + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL, NULL)); + NODE_API_ASSERT(env, argc == 1, "Wrong number of arguments"); + napi_value finalizer = args[0]; + napi_valuetype finalizer_valuetype; + NODE_API_CALL(env, napi_typeof(env, finalizer, &finalizer_valuetype)); + NODE_API_ASSERT(env, finalizer_valuetype == napi_function, "Wrong type of first argument"); + napi_ref finalizer_ref; + NODE_API_CALL(env, napi_create_reference(env, finalizer, 1, &finalizer_ref)); + + napi_value theBuffer; + NODE_API_CALL( + env, + napi_create_external_buffer(env, + sizeof(theText), + (void*)theText, + malignDeleter, + finalizer_ref, // finalize_hint + &theBuffer)); + return theBuffer; +} + static napi_value Init(napi_env env, napi_value exports) { napi_value theValue; @@ -123,6 +158,7 @@ static napi_value Init(napi_env env, napi_value exports) { DECLARE_NODE_API_PROPERTY("bufferHasInstance", bufferHasInstance), DECLARE_NODE_API_PROPERTY("bufferInfo", bufferInfo), DECLARE_NODE_API_PROPERTY("staticBuffer", staticBuffer), + DECLARE_NODE_API_PROPERTY("malignFinalizerBuffer", malignFinalizerBuffer), }; NODE_API_CALL(env, napi_define_properties( diff --git a/test/node-api/test_buffer/test_finalizer.js b/test/node-api/test_buffer/test_finalizer.js new file mode 100644 index 00000000000000..b706c68c7c3e02 --- /dev/null +++ b/test/node-api/test_buffer/test_finalizer.js @@ -0,0 +1,25 @@ +'use strict'; +// Flags: --expose-gc --force-node-api-uncaught-exceptions-policy + +const common = require('../../common'); +const binding = require(`./build/${common.buildType}/test_buffer`); +const assert = require('assert'); +const tick = require('util').promisify(require('../../common/tick')); + +process.on('uncaughtException', common.mustCall((err) => { + assert.throws(() => { throw err; }, /finalizer error/); +})); + +(async function() { + { + binding.malignFinalizerBuffer(common.mustCall(() => { + throw new Error('finalizer error'); + })); + } + global.gc({ type: 'minor' }); + await tick(common.platformTimeout(100)); + global.gc(); + await tick(common.platformTimeout(100)); + global.gc(); + await tick(common.platformTimeout(100)); +})().then(common.mustCall()); diff --git a/test/node-api/test_threadsafe_function/binding.c b/test/node-api/test_threadsafe_function/binding.c index d64b9058b11326..53b1cb3056370f 100644 --- a/test/node-api/test_threadsafe_function/binding.c +++ b/test/node-api/test_threadsafe_function/binding.c @@ -269,6 +269,35 @@ static napi_value StartThreadNoJsFunc(napi_env env, napi_callback_info info) { /** block_on_full */true, /** alt_ref_js_cb */true); } +// Testing calling into JavaScript +static void ThreadSafeFunctionFinalize(napi_env env, + void* finalize_data, + void* finalize_hint) { + napi_ref js_func_ref = (napi_ref) finalize_data; + napi_value js_func; + napi_value recv; + NODE_API_CALL_RETURN_VOID(env, napi_get_reference_value(env, js_func_ref, &js_func)); + NODE_API_CALL_RETURN_VOID(env, napi_get_global(env, &recv)); + NODE_API_CALL_RETURN_VOID(env, napi_call_function(env, recv, js_func, 0, NULL, NULL)); + NODE_API_CALL_RETURN_VOID(env, napi_delete_reference(env, js_func_ref)); +} + +// Testing calling into JavaScript +static napi_value CallIntoModule(napi_env env, napi_callback_info info) { + size_t argc = 4; + napi_value argv[4]; + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, argv, NULL, NULL)); + + napi_ref finalize_func; + NODE_API_CALL(env, napi_create_reference(env, argv[3], 1, &finalize_func)); + + napi_threadsafe_function tsfn; + NODE_API_CALL(env, napi_create_threadsafe_function(env, argv[0], argv[1], argv[2], 0, 1, finalize_func, ThreadSafeFunctionFinalize, NULL, NULL, &tsfn)); + NODE_API_CALL(env, napi_call_threadsafe_function(tsfn, NULL, napi_tsfn_blocking)); + NODE_API_CALL(env, napi_release_threadsafe_function(tsfn, napi_tsfn_release)); + return NULL; +} + // Module init static napi_value Init(napi_env env, napi_value exports) { size_t index; @@ -307,6 +336,7 @@ static napi_value Init(napi_env env, napi_value exports) { DECLARE_NODE_API_PROPERTY("StopThread", StopThread), DECLARE_NODE_API_PROPERTY("Unref", Unref), DECLARE_NODE_API_PROPERTY("Release", Release), + DECLARE_NODE_API_PROPERTY("CallIntoModule", CallIntoModule), }; NODE_API_CALL(env, napi_define_properties(env, exports, diff --git a/test/node-api/test_threadsafe_function/test_force_uncaught_exception.js b/test/node-api/test_threadsafe_function/test_force_uncaught_exception.js new file mode 100644 index 00000000000000..c23ad44ae88862 --- /dev/null +++ b/test/node-api/test_threadsafe_function/test_force_uncaught_exception.js @@ -0,0 +1,22 @@ +'use strict'; +// Flags: --no-force-node-api-uncaught-exceptions-policy + +const common = require('../../common'); +const binding = require(`./build/${common.buildType}/binding`); + +process.on( + 'uncaughtException', + common.mustNotCall('uncaught callback errors should be suppressed ' + + 'with the option --no-force-node-api-uncaught-exceptions-policy') +); + +binding.CallIntoModule( + common.mustCall(() => { + throw new Error('callback error'); + }), + {}, + 'resource_name', + common.mustCall(function finalizer() { + throw new Error('finalizer error'); + }) +); diff --git a/test/node-api/test_threadsafe_function/test_uncaught_exception.js b/test/node-api/test_threadsafe_function/test_uncaught_exception.js new file mode 100644 index 00000000000000..45e7370c33ea65 --- /dev/null +++ b/test/node-api/test_threadsafe_function/test_uncaught_exception.js @@ -0,0 +1,27 @@ +'use strict'; +// Flags: --force-node-api-uncaught-exceptions-policy + +const common = require('../../common'); +const assert = require('assert'); +const binding = require(`./build/${common.buildType}/binding`); + +const callbackCheck = common.mustCall((err) => { + assert.throws(() => { throw err; }, /callback error/); + process.removeListener('uncaughtException', callbackCheck); + process.on('uncaughtException', finalizerCheck); +}); +const finalizerCheck = common.mustCall((err) => { + assert.throws(() => { throw err; }, /finalizer error/); +}); +process.on('uncaughtException', callbackCheck); + +binding.CallIntoModule( + common.mustCall(() => { + throw new Error('callback error'); + }), + {}, + 'resource_name', + common.mustCall(function finalizer() { + throw new Error('finalizer error'); + }) +); diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 403752346856cd..3aa8d4592d62af 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -15,12 +15,17 @@ test-timers-immediate-queue: PASS,FLAKY test-crypto-keygen: PASS,FLAKY # https://github.com/nodejs/node/issues/41201 test-fs-rmdir-recursive: PASS, FLAKY +# https://github.com/nodejs/node/issues/43084 +test-worker-http2-stream-terminate: PASS, FLAKY [$system==linux] # https://github.com/nodejs/node/issues/39368 test-domain-error-types: PASS,FLAKY [$system==macos] +# https://github.com/nodejs/node/issues/42741 +test-http-server-headers-timeout-keepalive: PASS,FLAKY +test-http-server-request-timeout-keepalive: PASS,FLAKY [$arch==arm || $arch==arm64] # https://github.com/nodejs/node/pull/31178 @@ -28,6 +33,12 @@ test-crypto-dh-stateless: SKIP test-crypto-keygen: SKIP [$system==solaris] # Also applies to SmartOS +# https://github.com/nodejs/node/pull/43054 +test-net-socket-connect-without-cb: SKIP +test-net-socket-ready-without-cb: SKIP +test-tcp-wrap-listen: SKIP +# https://github.com/nodejs/node/issues/43446 +test-net-connect-reset-until-connected: PASS, FLAKY [$system==freebsd] # https://github.com/nodejs/node/issues/31727 @@ -36,6 +47,10 @@ test-fs-stat-bigint: PASS,FLAKY test-worker-message-port-message-before-close: PASS,FLAKY [$system==aix] +# https://github.com/nodejs/node/pull/43054 +test-net-socket-connect-without-cb: SKIP +test-net-socket-ready-without-cb: SKIP +test-tcp-wrap-listen: SKIP [$system==ibmi] # https://github.com/nodejs/node/pull/30819 diff --git a/test/parallel/test-assert-calltracker-calls.js b/test/parallel/test-assert-calltracker-calls.js index 99db4ee284be81..7b73f3fefaf6ab 100644 --- a/test/parallel/test-assert-calltracker-calls.js +++ b/test/parallel/test-assert-calltracker-calls.js @@ -1,5 +1,5 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); // This test ensures that assert.CallTracker.calls() works as intended. @@ -78,3 +78,51 @@ assert.throws( callsNoop(); tracker.verify(); } + +{ + function func() {} + const tracker = new assert.CallTracker(); + const callsfunc = tracker.calls(func); + assert.strictEqual(callsfunc.length, 0); +} + +{ + function func(a, b, c = 2) {} + const tracker = new assert.CallTracker(); + const callsfunc = tracker.calls(func); + assert.strictEqual(callsfunc.length, 2); +} + +{ + function func(a, b, c = 2) {} + delete func.length; + const tracker = new assert.CallTracker(); + const callsfunc = tracker.calls(func); + assert.strictEqual(Object.hasOwn(callsfunc, 'length'), false); +} + +{ + const ArrayIteratorPrototype = Reflect.getPrototypeOf( + Array.prototype.values() + ); + const { next } = ArrayIteratorPrototype; + ArrayIteratorPrototype.next = common.mustNotCall( + '%ArrayIteratorPrototype%.next' + ); + Object.prototype.get = common.mustNotCall('%Object.prototype%.get'); + + const customPropertyValue = Symbol(); + function func(a, b, c = 2) { + return a + b + c; + } + func.customProperty = customPropertyValue; + Object.defineProperty(func, 'length', { get: common.mustNotCall() }); + const tracker = new assert.CallTracker(); + const callsfunc = tracker.calls(func); + assert.strictEqual(Object.hasOwn(callsfunc, 'length'), true); + assert.strictEqual(callsfunc.customProperty, customPropertyValue); + assert.strictEqual(callsfunc(1, 2, 3), 6); + + ArrayIteratorPrototype.next = next; + delete Object.prototype.get; +} diff --git a/test/parallel/test-assert-fail.js b/test/parallel/test-assert-fail.js index e2003f2ce91da8..37e2087a2fdc72 100644 --- a/test/parallel/test-assert-fail.js +++ b/test/parallel/test-assert-fail.js @@ -1,6 +1,6 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); // No args @@ -38,3 +38,7 @@ assert.throws(() => { name: 'TypeError', message: 'custom message' }); + +Object.prototype.get = common.mustNotCall(); +assert.throws(() => assert.fail(''), { code: 'ERR_ASSERTION' }); +delete Object.prototype.get; diff --git a/test/parallel/test-blob-buffer-too-large.js b/test/parallel/test-blob-buffer-too-large.js new file mode 100644 index 00000000000000..2fd8b8754bd593 --- /dev/null +++ b/test/parallel/test-blob-buffer-too-large.js @@ -0,0 +1,24 @@ +// Flags: --no-warnings +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { Blob } = require('buffer'); + +if (common.isFreeBSD) + common.skip('Oversized buffer make the FreeBSD CI runner crash'); + +try { + new Blob([new Uint8Array(0xffffffff), [1]]); +} catch (e) { + if ( + e.message === 'Array buffer allocation failed' || + e.message === 'Invalid typed array length: 4294967295' + ) { + common.skip( + 'Insufficient memory on this platform for oversized buffer test.' + ); + } else { + assert.strictEqual(e.code, 'ERR_BUFFER_TOO_LARGE'); + } +} diff --git a/test/parallel/test-blob.js b/test/parallel/test-blob.js index 53b9ddb0cb3e81..fe66ff08f945e1 100644 --- a/test/parallel/test-blob.js +++ b/test/parallel/test-blob.js @@ -198,6 +198,8 @@ assert.throws(() => new Blob({}), { const b = new Blob(); assert.strictEqual(inspect(b, { depth: null }), 'Blob { size: 0, type: \'\' }'); + assert.strictEqual(inspect(b, { depth: 1 }), + 'Blob { size: 0, type: \'\' }'); assert.strictEqual(inspect(b, { depth: -1 }), '[Blob]'); } @@ -230,6 +232,30 @@ assert.throws(() => new Blob({}), { }); } +{ + assert.throws(() => Reflect.get(Blob.prototype, 'type', {}), { + code: 'ERR_INVALID_THIS', + }); + assert.throws(() => Reflect.get(Blob.prototype, 'size', {}), { + code: 'ERR_INVALID_THIS', + }); + assert.throws(() => Blob.prototype.slice(Blob.prototype, 0, 1), { + code: 'ERR_INVALID_THIS', + }); + assert.throws(() => Blob.prototype.stream.call(), { + code: 'ERR_INVALID_THIS', + }); +} + +(async () => { + assert.rejects(async () => Blob.prototype.arrayBuffer.call(), { + code: 'ERR_INVALID_THIS', + }); + assert.rejects(async () => Blob.prototype.text.call(), { + code: 'ERR_INVALID_THIS', + }); +})().then(common.mustCall()); + (async () => { const blob = new Blob([ new Uint8Array([0x50, 0x41, 0x53, 0x53]), diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js index d5f69e8165f61c..495f08f716f573 100644 --- a/test/parallel/test-bootstrap-modules.js +++ b/test/parallel/test-bootstrap-modules.js @@ -21,6 +21,7 @@ const expectedModules = new Set([ 'Internal Binding fs_event_wrap', 'Internal Binding fs', 'Internal Binding heap_utils', + 'Internal Binding mksnapshot', 'Internal Binding messaging', 'Internal Binding module_wrap', 'Internal Binding native_module', @@ -42,6 +43,7 @@ const expectedModules = new Set([ 'Internal Binding util', 'Internal Binding uv', 'Internal Binding v8', + 'Internal Binding wasm_web_api', 'Internal Binding worker', 'NativeModule buffer', 'NativeModule events', @@ -77,7 +79,6 @@ const expectedModules = new Set([ 'NativeModule internal/modules/esm/fetch_module', 'NativeModule internal/modules/esm/formats', 'NativeModule internal/modules/esm/get_format', - 'NativeModule internal/modules/esm/get_source', 'NativeModule internal/modules/esm/handle_process_exit', 'NativeModule internal/modules/esm/initialize_import_meta', 'NativeModule internal/modules/esm/load', @@ -98,6 +99,7 @@ const expectedModules = new Set([ 'NativeModule internal/perf/performance', 'NativeModule internal/perf/timerify', 'NativeModule internal/perf/usertiming', + 'NativeModule internal/perf/resource_timing', 'NativeModule internal/perf/utils', 'NativeModule internal/priority_queue', 'NativeModule internal/process/esm_loader', @@ -136,9 +138,12 @@ const expectedModules = new Set([ 'NativeModule internal/util/debuglog', 'NativeModule internal/util/inspect', 'NativeModule internal/util/iterable_weak_map', + 'NativeModule internal/util/parse_args/utils', + 'NativeModule internal/util/parse_args/parse_args', 'NativeModule internal/util/types', 'NativeModule internal/validators', 'NativeModule internal/vm/module', + 'NativeModule internal/wasm_web_api', 'NativeModule internal/webstreams/adapters', 'NativeModule internal/webstreams/compression', 'NativeModule internal/webstreams/encoding', @@ -163,6 +168,7 @@ const expectedModules = new Set([ 'NativeModule url', 'NativeModule util', 'NativeModule v8', + 'NativeModule internal/v8/startup_snapshot', 'NativeModule vm', ]); diff --git a/test/parallel/test-btoa-atob.js b/test/parallel/test-btoa-atob.js index 64f53671030ba0..abf05adeef1042 100644 --- a/test/parallel/test-btoa-atob.js +++ b/test/parallel/test-btoa-atob.js @@ -14,4 +14,26 @@ throws(() => buffer.atob(), /TypeError/); throws(() => buffer.btoa(), /TypeError/); strictEqual(atob(' '), ''); -strictEqual(atob(' YW\tJ\njZA=\r= '), 'abcd'); +strictEqual(atob(' Y\fW\tJ\njZ A=\r= '), 'abcd'); + +strictEqual(atob(null), '\x9Eée'); +strictEqual(atob(NaN), '5£'); +strictEqual(atob(Infinity), '"wâ\x9E+r'); +strictEqual(atob(true), '¶»\x9E'); +strictEqual(atob(1234), '×mø'); +strictEqual(atob([]), ''); +strictEqual(atob({ toString: () => '' }), ''); +strictEqual(atob({ [Symbol.toPrimitive]: () => '' }), ''); + +throws(() => atob(Symbol()), /TypeError/); +[ + undefined, false, () => {}, {}, [1], + 0, 1, 0n, 1n, -Infinity, + 'a', 'a\n\n\n', '\ra\r\r', ' a ', '\t\t\ta', 'a\f\f\f', '\ta\r \n\f', +].forEach((value) => + // See #2 - https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob + throws(() => atob(value), { + constructor: DOMException, + name: 'InvalidCharacterError', + code: 5, + })); diff --git a/test/parallel/test-code-cache.js b/test/parallel/test-code-cache.js index f61ed9f5c54077..00deafd6d49465 100644 --- a/test/parallel/test-code-cache.js +++ b/test/parallel/test-code-cache.js @@ -36,8 +36,8 @@ const loadedModules = extractModules(process.moduleLoadList); // Cross-compiled binaries do not have code cache, verifies that the builtins // are all compiled without cache and we are doing the bookkeeping right. if (!process.features.cached_builtins) { - console.log('The binary is not configured with code cache'); - assert(!process.config.variables.node_use_node_code_cache); + assert(!process.config.variables.node_use_node_code_cache || + process.execArgv.includes('--no-node-snapshot')); if (isMainThread) { assert.deepStrictEqual(compiledWithCache, new Set()); diff --git a/test/parallel/test-common-must-not-call.js b/test/parallel/test-common-must-not-call.js index dcea7059dac7f5..b3c94a2390ffb6 100644 --- a/test/parallel/test-common-must-not-call.js +++ b/test/parallel/test-common-must-not-call.js @@ -39,3 +39,18 @@ try { } catch (e) { validate2(e); } + +assert.throws( + () => new Proxy({ prop: Symbol() }, { get: common.mustNotCall() }).prop, + { code: 'ERR_ASSERTION' } +); + +{ + const { inspect } = util; + delete util.inspect; + assert.throws( + () => common.mustNotCall()(null), + { code: 'ERR_ASSERTION' } + ); + util.inspect = inspect; +} diff --git a/test/parallel/test-console-issue-43095.js b/test/parallel/test-console-issue-43095.js new file mode 100644 index 00000000000000..647f4af2df4f96 --- /dev/null +++ b/test/parallel/test-console-issue-43095.js @@ -0,0 +1,12 @@ +'use strict'; + +require('../common'); +const { inspect } = require('node:util'); + +const r = Proxy.revocable({}, {}); +r.revoke(); + +console.dir(r); +console.dir(r.proxy); +console.log(r.proxy); +console.log(inspect(r.proxy, { showProxy: true })); diff --git a/test/parallel/test-crypto-fips.js b/test/parallel/test-crypto-fips.js index ba8a1ba653ec55..cc3e4eed79d80f 100644 --- a/test/parallel/test-crypto-fips.js +++ b/test/parallel/test-crypto-fips.js @@ -83,7 +83,7 @@ testHelper( [], FIPS_DISABLED, 'require("crypto").getFips()', - { ...process.env, 'OPENSSL_CONF': '' }); + { ...process.env, 'OPENSSL_CONF': ' ' }); // This should succeed for both FIPS and non-FIPS builds in combination with // OpenSSL 1.1.1 or OpenSSL 3.0 diff --git a/test/parallel/test-crypto-hkdf.js b/test/parallel/test-crypto-hkdf.js index 16744201a935dc..2d6689a486ddb6 100644 --- a/test/parallel/test-crypto-hkdf.js +++ b/test/parallel/test-crypto-hkdf.js @@ -15,6 +15,11 @@ const { } = require('crypto'); { + assert.throws(() => hkdf(), { + code: 'ERR_INVALID_ARG_TYPE', + message: /The "digest" argument must be of type string/ + }); + [1, {}, [], false, Infinity].forEach((i) => { assert.throws(() => hkdf(i, 'a'), { code: 'ERR_INVALID_ARG_TYPE', diff --git a/test/parallel/test-crypto-key-objects.js b/test/parallel/test-crypto-key-objects.js index 40a982ea7b6cd6..ce8de4d0cdba2d 100644 --- a/test/parallel/test-crypto-key-objects.js +++ b/test/parallel/test-crypto-key-objects.js @@ -5,7 +5,6 @@ if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); -const { types: { isKeyObject } } = require('util'); const { createCipheriv, createDecipheriv, @@ -23,7 +22,6 @@ const { getCurves, generateKeySync, generateKeyPairSync, - webcrypto, } = require('crypto'); const fixtures = require('../common/fixtures'); @@ -825,27 +823,6 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem', }); } -{ - const buffer = Buffer.from('Hello World'); - const keyObject = createSecretKey(buffer); - const keyPair = generateKeyPairSync('ec', { namedCurve: 'P-256' }); - assert(isKeyObject(keyPair.publicKey)); - assert(isKeyObject(keyPair.privateKey)); - assert(isKeyObject(keyObject)); - - assert(!isKeyObject(buffer)); - - webcrypto.subtle.importKey( - 'node.keyObject', - keyPair.publicKey, - { name: 'ECDH', namedCurve: 'P-256' }, - false, - [], - ).then((cryptoKey) => { - assert(!isKeyObject(cryptoKey)); - }); -} - { const first = Buffer.from('Hello'); const second = Buffer.from('World'); diff --git a/test/parallel/test-crypto-keygen.js b/test/parallel/test-crypto-keygen.js index 6db4bf1f957ce7..4e657e190e78b4 100644 --- a/test/parallel/test-crypto-keygen.js +++ b/test/parallel/test-crypto-keygen.js @@ -1122,18 +1122,6 @@ const sec1EncExp = (cipher) => getRegExpForPEM('EC PRIVATE KEY', cipher); } } -function addNumericalSeparator(val) { - val = String(val); - let res = ''; - let i = val.length; - const start = val[0] === '-' ? 1 : 0; - for (; i >= start + 4; i -= 3) { - res = `_${val.slice(i - 3, i)}${res}`; - } - return `${val.slice(0, i)}${res}`; -} - - // Test RSA parameters. { // Test invalid modulus lengths. (non-number) @@ -1170,10 +1158,6 @@ function addNumericalSeparator(val) { }, common.mustNotCall()), { name: 'RangeError', code: 'ERR_OUT_OF_RANGE', - message: - 'The value of "options.modulusLength" is out of range. ' + - 'It must be >= 0 && < 4294967296. ' + - `Received ${addNumericalSeparator(modulusLength)}` }); } @@ -1214,10 +1198,6 @@ function addNumericalSeparator(val) { }, common.mustNotCall()), { name: 'RangeError', code: 'ERR_OUT_OF_RANGE', - message: - 'The value of "options.publicExponent" is out of range. ' + - 'It must be >= 0 && < 4294967296. ' + - `Received ${addNumericalSeparator(publicExponent)}` }); } } @@ -1244,10 +1224,6 @@ function addNumericalSeparator(val) { }, common.mustNotCall()), { name: 'RangeError', code: 'ERR_OUT_OF_RANGE', - message: - 'The value of "options.modulusLength" is out of range. ' + - 'It must be an integer. ' + - `Received ${inspect(modulusLength)}` }); } @@ -1258,10 +1234,6 @@ function addNumericalSeparator(val) { }, common.mustNotCall()), { name: 'RangeError', code: 'ERR_OUT_OF_RANGE', - message: - 'The value of "options.modulusLength" is out of range. ' + - 'It must be >= 0 && < 4294967296. ' + - `Received ${addNumericalSeparator(modulusLength)}` }); } @@ -1743,22 +1715,6 @@ generateKeyPair('rsa', { assert.strictEqual(typeof privateKey, 'string'); })); -{ - // Proprietary Web Cryptography API ECDH/ECDSA namedCurve parameters - // should not be recognized in this API. - // See https://github.com/nodejs/node/issues/37055 - const curves = ['NODE-ED25519', 'NODE-ED448', 'NODE-X25519', 'NODE-X448']; - for (const namedCurve of curves) { - assert.throws( - () => generateKeyPair('ec', { namedCurve }, common.mustNotCall()), - { - name: 'TypeError', - message: 'Invalid EC curve name' - } - ); - } -} - { // This test creates EC key pairs on curves without associated OIDs. // Specifying a key encoding should not crash. diff --git a/test/parallel/test-crypto-pbkdf2.js b/test/parallel/test-crypto-pbkdf2.js index a62cd97c19318a..c4dbedcb59160f 100644 --- a/test/parallel/test-crypto-pbkdf2.js +++ b/test/parallel/test-crypto-pbkdf2.js @@ -69,8 +69,6 @@ for (const iterations of [-1, 0]) { { code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: 'The value of "iterations" is out of range. ' + - `It must be >= 1 && < 4294967296. Received ${iterations}` } ); } @@ -108,8 +106,6 @@ for (const iterations of [-1, 0]) { }, { code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: 'The value of "keylen" is out of range. It must be >= 0 && < ' + - `4294967296. Received ${input === -1 ? '-1' : '4_294_967_297'}` }); }); diff --git a/test/parallel/test-crypto-psychic-signatures.js b/test/parallel/test-crypto-psychic-signatures.js new file mode 100644 index 00000000000000..b8e1207b5c8a17 --- /dev/null +++ b/test/parallel/test-crypto-psychic-signatures.js @@ -0,0 +1,100 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); + +const crypto = require('crypto'); + +// Tests for CVE-2022-21449 +// https://neilmadden.blog/2022/04/19/psychic-signatures-in-java/ +// Dubbed "Psychic Signatures", these signatures bypassed the ECDSA signature +// verification implementation in Java in 15, 16, 17, and 18. OpenSSL is not +// (and was not) vulnerable so these are a precaution. + +const vectors = { + 'ieee-p1363': [ + Buffer.from('0000000000000000000000000000000000000000000000000000000000000000' + + '0000000000000000000000000000000000000000000000000000000000000000', 'hex'), + Buffer.from('ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551' + + 'ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551', 'hex'), + ], + 'der': [ + Buffer.from('3046022100' + + '0000000000000000000000000000000000000000000000000000000000000000' + + '022100' + + '0000000000000000000000000000000000000000000000000000000000000000', 'hex'), + Buffer.from('3046022100' + + 'ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551' + + '022100' + + 'ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551', 'hex'), + ], +}; + +const keyPair = crypto.generateKeyPairSync('ec', { + namedCurve: 'P-256', + publicKeyEncoding: { + format: 'der', + type: 'spki' + }, +}); + +const data = Buffer.from('Hello!'); + +for (const [encoding, signatures] of Object.entries(vectors)) { + for (const signature of signatures) { + const key = { + key: keyPair.publicKey, + format: 'der', + type: 'spki', + dsaEncoding: encoding, + }; + + // one-shot sync + assert.strictEqual( + crypto.verify( + 'sha256', + data, + key, + signature, + ), + false, + ); + + // one-shot async + crypto.verify( + 'sha256', + data, + key, + signature, + common.mustSucceed((verified) => assert.strictEqual(verified, false)), + ); + + // stream + assert.strictEqual( + crypto.createVerify('sha256') + .update(data) + .verify(key, signature), + false, + ); + + // webcrypto + crypto.webcrypto.subtle.importKey( + 'spki', + keyPair.publicKey, + { name: 'ECDSA', namedCurve: 'P-256' }, + false, + ['verify'], + ).then((publicKey) => { + return crypto.webcrypto.subtle.verify( + { name: 'ECDSA', hash: 'SHA-256' }, + publicKey, + signature, + data, + ); + }).then(common.mustCall((verified) => { + assert.strictEqual(verified, false); + })); + } +} diff --git a/test/parallel/test-crypto-scrypt.js b/test/parallel/test-crypto-scrypt.js index 5f860c75bbebf0..9e5e46164fb05c 100644 --- a/test/parallel/test-crypto-scrypt.js +++ b/test/parallel/test-crypto-scrypt.js @@ -24,7 +24,7 @@ const good = [ }, // Test vectors from https://tools.ietf.org/html/rfc7914#page-13 that // should pass. Note that the test vector with N=1048576 is omitted - // because it takes too long to complete and uses over 1 GB of memory. + // because it takes too long to complete and uses over 1 GiB of memory. { pass: '', salt: '', diff --git a/test/parallel/test-crypto-secret-keygen.js b/test/parallel/test-crypto-secret-keygen.js index 0739393643d6bb..0bd45f653e46d2 100644 --- a/test/parallel/test-crypto-secret-keygen.js +++ b/test/parallel/test-crypto-secret-keygen.js @@ -51,6 +51,14 @@ assert.throws(() => generateKey('hmac', { length: -1 }, common.mustNotCall()), { code: 'ERR_OUT_OF_RANGE' }); +assert.throws(() => generateKey('hmac', { length: 4 }, common.mustNotCall()), { + code: 'ERR_OUT_OF_RANGE' +}); + +assert.throws(() => generateKey('hmac', { length: 7 }, common.mustNotCall()), { + code: 'ERR_OUT_OF_RANGE' +}); + assert.throws( () => generateKey('hmac', { length: 2 ** 31 }, common.mustNotCall()), { code: 'ERR_OUT_OF_RANGE' @@ -60,6 +68,14 @@ assert.throws(() => generateKeySync('hmac', { length: -1 }), { code: 'ERR_OUT_OF_RANGE' }); +assert.throws(() => generateKeySync('hmac', { length: 4 }), { + code: 'ERR_OUT_OF_RANGE' +}); + +assert.throws(() => generateKeySync('hmac', { length: 7 }), { + code: 'ERR_OUT_OF_RANGE' +}); + assert.throws( () => generateKeySync('hmac', { length: 2 ** 31 }), { code: 'ERR_OUT_OF_RANGE' diff --git a/test/parallel/test-debugger-address.js b/test/parallel/test-debugger-address.js index bffc28ac916e8d..e8cfd428ebcb05 100644 --- a/test/parallel/test-debugger-address.js +++ b/test/parallel/test-debugger-address.js @@ -53,21 +53,22 @@ function launchTarget(...args) { assert.ifError(error); } - return launchTarget('--inspect=0', script) - .then(({ childProc, host, port }) => { + (async () => { + try { + const { childProc, host, port } = await launchTarget('--inspect=0', script); target = childProc; cli = startCLI([`${host || '127.0.0.1'}:${port}`]); - return cli.waitForPrompt(); - }) - .then(() => cli.command('sb("alive.js", 3)')) - .then(() => cli.waitFor(/break/)) - .then(() => cli.waitForPrompt()) - .then(() => { + await cli.waitForPrompt(); + await cli.command('sb("alive.js", 3)'); + await cli.waitFor(/break/); + await cli.waitForPrompt(); assert.match( cli.output, /> 3 {3}\+\+x;/, - 'marks the 3rd line'); - }) - .then(() => cleanup()) - .then(null, cleanup); + 'marks the 3rd line' + ); + } finally { + cleanup(); + } + })().then(common.mustCall()); } diff --git a/test/parallel/test-debugger-extract-function-name.mjs b/test/parallel/test-debugger-extract-function-name.mjs new file mode 100644 index 00000000000000..e457fc7f521521 --- /dev/null +++ b/test/parallel/test-debugger-extract-function-name.mjs @@ -0,0 +1,33 @@ +import { skipIfInspectorDisabled } from '../common/index.mjs'; + +skipIfInspectorDisabled(); + +import { path } from '../common/fixtures.mjs'; +import startCLI from '../common/debugger.js'; + +import assert from 'assert'; + +const cli = startCLI([path('debugger', 'three-lines.js')]); + +try { + await cli.waitForInitialBreak(); + await cli.waitForPrompt(); + await cli.command('exec a = function func() {}; a;'); + assert.match(cli.output, /\[Function: func\]/); + await cli.command('exec a = function func () {}; a;'); + assert.match(cli.output, /\[Function\]/); + await cli.command('exec a = function() {}; a;'); + assert.match(cli.output, /\[Function: function\]/); + await cli.command('exec a = () => {}; a;'); + assert.match(cli.output, /\[Function\]/); + await cli.command('exec a = function* func() {}; a;'); + assert.match(cli.output, /\[GeneratorFunction: func\]/); + await cli.command('exec a = function *func() {}; a;'); + assert.match(cli.output, /\[GeneratorFunction: \*func\]/); + await cli.command('exec a = function*func() {}; a;'); + assert.match(cli.output, /\[GeneratorFunction: function\*func\]/); + await cli.command('exec a = function * func() {}; a;'); + assert.match(cli.output, /\[GeneratorFunction\]/); +} finally { + cli.quit(); +} diff --git a/test/parallel/test-dns-lookup-promises-options-deprecated.js b/test/parallel/test-dns-lookup-promises-options-deprecated.js index 6f3b9314b9db13..2761b616620cca 100644 --- a/test/parallel/test-dns-lookup-promises-options-deprecated.js +++ b/test/parallel/test-dns-lookup-promises-options-deprecated.js @@ -15,18 +15,21 @@ common.expectWarning({ 'internal/test/binding': [ 'These APIs are for internal testing only. Do not use them.', ], - 'DeprecationWarning': { - DEP0153: 'Type coercion of dns.lookup options is deprecated' - } }); assert.throws(() => { dnsPromises.lookup('127.0.0.1', { hints: '-1' }); }, { - code: 'ERR_INVALID_ARG_VALUE', + code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError' }); -dnsPromises.lookup('127.0.0.1', { family: '6' }); -dnsPromises.lookup('127.0.0.1', { all: 'true' }); -dnsPromises.lookup('127.0.0.1', { verbatim: 'true' }); -dnsPromises.lookup('127.0.0.1', '6'); +assert.throws(() => dnsPromises.lookup('127.0.0.1', { hints: -1 }), + { code: 'ERR_INVALID_ARG_VALUE' }); +assert.throws(() => dnsPromises.lookup('127.0.0.1', { family: '6' }), + { code: 'ERR_INVALID_ARG_VALUE' }); +assert.throws(() => dnsPromises.lookup('127.0.0.1', { all: 'true' }), + { code: 'ERR_INVALID_ARG_TYPE' }); +assert.throws(() => dnsPromises.lookup('127.0.0.1', { verbatim: 'true' }), + { code: 'ERR_INVALID_ARG_TYPE' }); +assert.throws(() => dnsPromises.lookup('127.0.0.1', '6'), + { code: 'ERR_INVALID_ARG_TYPE' }); diff --git a/test/parallel/test-dns-lookup.js b/test/parallel/test-dns-lookup.js index 461e705a5e3cb6..a847a91d655196 100644 --- a/test/parallel/test-dns-lookup.js +++ b/test/parallel/test-dns-lookup.js @@ -69,14 +69,15 @@ assert.throws(() => { } { + const family = 20; const err = { code: 'ERR_INVALID_ARG_VALUE', name: 'TypeError', - message: "The argument 'family' must be one of: 0, 4, 6. Received 20" + message: `The property 'options.family' must be one of: 0, 4, 6. Received ${family}` }; const options = { hints: 0, - family: 20, + family, all: false }; @@ -86,6 +87,52 @@ assert.throws(() => { }, err); } +[1, 0n, 1n, '', '0', Symbol(), true, false, {}, [], () => {}] + .forEach((family) => { + const err = { code: 'ERR_INVALID_ARG_VALUE' }; + const options = { family }; + assert.throws(() => { dnsPromises.lookup(false, options); }, err); + assert.throws(() => { + dns.lookup(false, options, common.mustNotCall()); + }, err); + }); +[0n, 1n, '', '0', Symbol(), true, false].forEach((family) => { + const err = { code: 'ERR_INVALID_ARG_TYPE' }; + assert.throws(() => { dnsPromises.lookup(false, family); }, err); + assert.throws(() => { + dns.lookup(false, family, common.mustNotCall()); + }, err); +}); +assert.throws(() => dnsPromises.lookup(false, () => {}), + { code: 'ERR_INVALID_ARG_TYPE' }); + +[0n, 1n, '', '0', Symbol(), true, false, {}, [], () => {}].forEach((hints) => { + const err = { code: 'ERR_INVALID_ARG_TYPE' }; + const options = { hints }; + assert.throws(() => { dnsPromises.lookup(false, options); }, err); + assert.throws(() => { + dns.lookup(false, options, common.mustNotCall()); + }, err); +}); + +[0, 1, 0n, 1n, '', '0', Symbol(), {}, [], () => {}].forEach((all) => { + const err = { code: 'ERR_INVALID_ARG_TYPE' }; + const options = { all }; + assert.throws(() => { dnsPromises.lookup(false, options); }, err); + assert.throws(() => { + dns.lookup(false, options, common.mustNotCall()); + }, err); +}); + +[0, 1, 0n, 1n, '', '0', Symbol(), {}, [], () => {}].forEach((verbatim) => { + const err = { code: 'ERR_INVALID_ARG_TYPE' }; + const options = { verbatim }; + assert.throws(() => { dnsPromises.lookup(false, options); }, err); + assert.throws(() => { + dns.lookup(false, options, common.mustNotCall()); + }, err); +}); + (async function() { let res; diff --git a/test/parallel/test-dns-lookupService-promises.js b/test/parallel/test-dns-lookupService-promises.js index d7e50f194da8a1..4052139c922389 100644 --- a/test/parallel/test-dns-lookupService-promises.js +++ b/test/parallel/test-dns-lookupService-promises.js @@ -6,7 +6,7 @@ const assert = require('assert'); const dnsPromises = require('dns').promises; dnsPromises.lookupService('127.0.0.1', 22).then(common.mustCall((result) => { - assert.strictEqual(result.service, 'ssh'); + assert(['ssh', '22'].includes(result.service)); assert.strictEqual(typeof result.hostname, 'string'); assert.notStrictEqual(result.hostname.length, 0); })); diff --git a/test/parallel/test-dns-promises-exists.js b/test/parallel/test-dns-promises-exists.js index 5fd20dff2c12d2..d88ecefaa985ca 100644 --- a/test/parallel/test-dns-promises-exists.js +++ b/test/parallel/test-dns-promises-exists.js @@ -2,5 +2,32 @@ require('../common'); const assert = require('assert'); +const dnsPromises = require('dns/promises'); +const dns = require('dns'); -assert.strictEqual(require('dns/promises'), require('dns').promises); +assert.strictEqual(dnsPromises, dns.promises); + +assert.strictEqual(dnsPromises.NODATA, dns.NODATA); +assert.strictEqual(dnsPromises.FORMERR, dns.FORMERR); +assert.strictEqual(dnsPromises.SERVFAIL, dns.SERVFAIL); +assert.strictEqual(dnsPromises.NOTFOUND, dns.NOTFOUND); +assert.strictEqual(dnsPromises.NOTIMP, dns.NOTIMP); +assert.strictEqual(dnsPromises.REFUSED, dns.REFUSED); +assert.strictEqual(dnsPromises.BADQUERY, dns.BADQUERY); +assert.strictEqual(dnsPromises.BADNAME, dns.BADNAME); +assert.strictEqual(dnsPromises.BADFAMILY, dns.BADFAMILY); +assert.strictEqual(dnsPromises.BADRESP, dns.BADRESP); +assert.strictEqual(dnsPromises.CONNREFUSED, dns.CONNREFUSED); +assert.strictEqual(dnsPromises.TIMEOUT, dns.TIMEOUT); +assert.strictEqual(dnsPromises.EOF, dns.EOF); +assert.strictEqual(dnsPromises.FILE, dns.FILE); +assert.strictEqual(dnsPromises.NOMEM, dns.NOMEM); +assert.strictEqual(dnsPromises.DESTRUCTION, dns.DESTRUCTION); +assert.strictEqual(dnsPromises.BADSTR, dns.BADSTR); +assert.strictEqual(dnsPromises.BADFLAGS, dns.BADFLAGS); +assert.strictEqual(dnsPromises.NONAME, dns.NONAME); +assert.strictEqual(dnsPromises.BADHINTS, dns.BADHINTS); +assert.strictEqual(dnsPromises.NOTINITIALIZED, dns.NOTINITIALIZED); +assert.strictEqual(dnsPromises.LOADIPHLPAPI, dns.LOADIPHLPAPI); +assert.strictEqual(dnsPromises.ADDRGETNETWORKPARAMS, dns.ADDRGETNETWORKPARAMS); +assert.strictEqual(dnsPromises.CANCELLED, dns.CANCELLED); diff --git a/test/parallel/test-domain-dep0097.js b/test/parallel/test-domain-dep0097.js index 05b5c74b30d98e..7ed823aa4165af 100644 --- a/test/parallel/test-domain-dep0097.js +++ b/test/parallel/test-domain-dep0097.js @@ -13,5 +13,5 @@ process.on('warning', common.mustCall((warning) => { })); domain.create().run(() => { - inspector.open(); + inspector.open(0); }); diff --git a/test/parallel/test-eslint-avoid-prototype-pollution.js b/test/parallel/test-eslint-avoid-prototype-pollution.js new file mode 100644 index 00000000000000..26b0852c0c24ee --- /dev/null +++ b/test/parallel/test-eslint-avoid-prototype-pollution.js @@ -0,0 +1,207 @@ +'use strict'; + +const common = require('../common'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} + +common.skipIfEslintMissing(); + +const RuleTester = require('../../tools/node_modules/eslint').RuleTester; +const rule = require('../../tools/eslint-rules/avoid-prototype-pollution'); + +new RuleTester({ + parserOptions: { ecmaVersion: 2022 }, +}) + .run('property-descriptor-no-prototype-pollution', rule, { + valid: [ + 'ObjectDefineProperties({}, {})', + 'ObjectCreate(null, {})', + 'ObjectDefineProperties({}, { key })', + 'ObjectCreate(null, { key })', + 'ObjectDefineProperties({}, { ...spread })', + 'ObjectCreate(null, { ...spread })', + 'ObjectDefineProperties({}, { key: valueDescriptor })', + 'ObjectCreate(null, { key: valueDescriptor })', + 'ObjectDefineProperties({}, { key: { ...{}, __proto__: null } })', + 'ObjectCreate(null, { key: { ...{}, __proto__: null } })', + 'ObjectDefineProperties({}, { key: { __proto__: null } })', + 'ObjectCreate(null, { key: { __proto__: null } })', + 'ObjectDefineProperties({}, { key: { __proto__: null, enumerable: true } })', + 'ObjectCreate(null, { key: { __proto__: null, enumerable: true } })', + 'ObjectDefineProperties({}, { key: { "__proto__": null } })', + 'ObjectCreate(null, { key: { "__proto__": null } })', + 'ObjectDefineProperties({}, { key: { \'__proto__\': null } })', + 'ObjectCreate(null, { key: { \'__proto__\': null } })', + 'ObjectDefineProperty({}, "key", ObjectCreate(null))', + 'ReflectDefineProperty({}, "key", ObjectCreate(null))', + 'ObjectDefineProperty({}, "key", valueDescriptor)', + 'ReflectDefineProperty({}, "key", valueDescriptor)', + 'ObjectDefineProperty({}, "key", { __proto__: null })', + 'ReflectDefineProperty({}, "key", { __proto__: null })', + 'ObjectDefineProperty({}, "key", { __proto__: null, enumerable: true })', + 'ReflectDefineProperty({}, "key", { __proto__: null, enumerable: true })', + 'ObjectDefineProperty({}, "key", { "__proto__": null })', + 'ReflectDefineProperty({}, "key", { "__proto__": null })', + 'ObjectDefineProperty({}, "key", { \'__proto__\': null })', + 'ReflectDefineProperty({}, "key", { \'__proto__\': null })', + 'new Proxy({}, otherObject)', + 'new Proxy({}, someFactory())', + 'new Proxy({}, { __proto__: null })', + 'new Proxy({}, { __proto__: null, ...{} })', + ], + invalid: [ + { + code: 'ObjectDefineProperties({}, ObjectGetOwnPropertyDescriptors({}))', + errors: [{ message: /prototype pollution/ }], + }, + { + code: 'ObjectCreate(null, ObjectGetOwnPropertyDescriptors({}))', + errors: [{ message: /prototype pollution/ }], + }, + { + code: 'ObjectDefineProperties({}, { key: {} })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectCreate(null, { key: {} })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectDefineProperties({}, { key: { [void 0]: { ...{ __proto__: null } } } })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectCreate(null, { key: { [void 0]: { ...{ __proto__: null } } } })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectDefineProperties({}, { key: { __proto__: Object.prototype } })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectCreate(null, { key: { __proto__: Object.prototype } })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectDefineProperties({}, { key: { [`__proto__`]: null } })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectCreate(null, { key: { [`__proto__`]: null } })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectDefineProperties({}, { key: { enumerable: true } })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectCreate(null, { key: { enumerable: true } })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectDefineProperty({}, "key", {})', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ReflectDefineProperty({}, "key", {})', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectDefineProperty({}, "key", ObjectGetOwnPropertyDescriptor({}, "key"))', + errors: [{ message: /prototype pollution/ }], + }, + { + code: 'ReflectDefineProperty({}, "key", ObjectGetOwnPropertyDescriptor({}, "key"))', + errors: [{ message: /prototype pollution/ }], + }, + { + code: 'ObjectDefineProperty({}, "key", ReflectGetOwnPropertyDescriptor({}, "key"))', + errors: [{ message: /prototype pollution/ }], + }, + { + code: 'ReflectDefineProperty({}, "key", ReflectGetOwnPropertyDescriptor({}, "key"))', + errors: [{ message: /prototype pollution/ }], + }, + { + code: 'ObjectDefineProperty({}, "key", { __proto__: Object.prototype })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ReflectDefineProperty({}, "key", { __proto__: Object.prototype })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectDefineProperty({}, "key", { [`__proto__`]: null })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ReflectDefineProperty({}, "key", { [`__proto__`]: null })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ObjectDefineProperty({}, "key", { enumerable: true })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'ReflectDefineProperty({}, "key", { enumerable: true })', + errors: [{ message: /null-prototype/ }], + }, + { + code: 'RegExpPrototypeTest(/some regex/, "some string")', + errors: [{ message: /looks up the "exec" property/ }], + }, + { + code: 'RegExpPrototypeSymbolMatch(/some regex/, "some string")', + errors: [{ message: /looks up the "exec" property/ }], + }, + { + code: 'RegExpPrototypeSymbolMatchAll(/some regex/, "some string")', + errors: [{ message: /looks up the "exec" property/ }], + }, + { + code: 'RegExpPrototypeSymbolSearch(/some regex/, "some string")', + errors: [{ message: /looks up the "exec" property/ }], + }, + { + code: 'StringPrototypeMatch("some string", /some regex/)', + errors: [{ message: /looks up the Symbol\.match property/ }], + }, + { + code: 'StringPrototypeMatchAll("some string", /some regex/)', + errors: [{ message: /looks up the Symbol\.matchAll property/ }], + }, + { + code: 'StringPrototypeReplace("some string", /some regex/, "some replacement")', + errors: [{ message: /looks up the Symbol\.replace property/ }], + }, + { + code: 'StringPrototypeReplaceAll("some string", /some regex/, "some replacement")', + errors: [{ message: /looks up the Symbol\.replace property/ }], + }, + { + code: 'StringPrototypeSearch("some string", /some regex/)', + errors: [{ message: /looks up the Symbol\.search property/ }], + }, + { + code: 'StringPrototypeSplit("some string", /some regex/)', + errors: [{ message: /looks up the Symbol\.split property/ }], + }, + { + code: 'new Proxy({}, {})', + errors: [{ message: /null-prototype/ }] + }, + { + code: 'new Proxy({}, { [`__proto__`]: null })', + errors: [{ message: /null-prototype/ }] + }, + { + code: 'new Proxy({}, { __proto__: Object.prototype })', + errors: [{ message: /null-prototype/ }] + }, + { + code: 'new Proxy({}, { ...{ __proto__: null } })', + errors: [{ message: /null-prototype/ }] + }, + ] + }); diff --git a/test/parallel/test-events-once.js b/test/parallel/test-events-once.js index 56042b1ecee4f9..6acb795653590b 100644 --- a/test/parallel/test-events-once.js +++ b/test/parallel/test-events-once.js @@ -1,5 +1,5 @@ 'use strict'; -// Flags: --no-warnings +// Flags: --expose-internals --no-warnings const common = require('../common'); const { once, EventEmitter } = require('events'); @@ -9,6 +9,7 @@ const { fail, rejects, } = require('assert'); +const { kEvents } = require('internal/event_target'); async function onceAnEvent() { const ee = new EventEmitter(); @@ -65,6 +66,32 @@ async function catchesErrors() { strictEqual(ee.listenerCount('myevent'), 0); } +async function catchesErrorsWithAbortSignal() { + const ee = new EventEmitter(); + const ac = new AbortController(); + const signal = ac.signal; + + const expected = new Error('boom'); + let err; + process.nextTick(() => { + ee.emit('error', expected); + }); + + try { + const promise = once(ee, 'myevent', { signal }); + strictEqual(ee.listenerCount('error'), 1); + strictEqual(signal[kEvents].size, 1); + + await promise; + } catch (e) { + err = e; + } + strictEqual(err, expected); + strictEqual(ee.listenerCount('error'), 0); + strictEqual(ee.listenerCount('myevent'), 0); + strictEqual(signal[kEvents].size, 0); +} + async function stopListeningAfterCatchingError() { const ee = new EventEmitter(); @@ -165,7 +192,10 @@ async function abortSignalAfterEvent() { ee.emit('foo'); ac.abort(); }); - await once(ee, 'foo', { signal: ac.signal }); + const promise = once(ee, 'foo', { signal: ac.signal }); + strictEqual(ac.signal[kEvents].size, 1); + await promise; + strictEqual(ac.signal[kEvents].size, 0); } async function abortSignalRemoveListener() { @@ -221,6 +251,7 @@ Promise.all([ onceAnEventWithNullOptions(), onceAnEventWithTwoArgs(), catchesErrors(), + catchesErrorsWithAbortSignal(), stopListeningAfterCatchingError(), onceError(), onceWithEventTarget(), diff --git a/test/parallel/test-fetch-disabled.mjs b/test/parallel/test-fetch-disabled.mjs index f06d484701c3ec..ea6b6807d8dbb5 100644 --- a/test/parallel/test-fetch-disabled.mjs +++ b/test/parallel/test-fetch-disabled.mjs @@ -8,3 +8,6 @@ assert.strictEqual(typeof globalThis.FormData, 'undefined'); assert.strictEqual(typeof globalThis.Headers, 'undefined'); assert.strictEqual(typeof globalThis.Request, 'undefined'); assert.strictEqual(typeof globalThis.Response, 'undefined'); + +assert.strictEqual(typeof WebAssembly.compileStreaming, 'undefined'); +assert.strictEqual(typeof WebAssembly.instantiateStreaming, 'undefined'); diff --git a/test/parallel/test-file-validate-mode-flag.js b/test/parallel/test-file-validate-mode-flag.js index 2ee0716de6e18f..bb9871ae318d5f 100644 --- a/test/parallel/test-file-validate-mode-flag.js +++ b/test/parallel/test-file-validate-mode-flag.js @@ -13,27 +13,28 @@ const { } = require('fs'); // These should throw, not crash. +const invalid = 4_294_967_296; -assert.throws(() => open(__filename, 2176057344, common.mustNotCall()), { +assert.throws(() => open(__filename, invalid, common.mustNotCall()), { code: 'ERR_OUT_OF_RANGE' }); -assert.throws(() => open(__filename, 0, 2176057344, common.mustNotCall()), { +assert.throws(() => open(__filename, 0, invalid, common.mustNotCall()), { code: 'ERR_OUT_OF_RANGE' }); -assert.throws(() => openSync(__filename, 2176057344), { +assert.throws(() => openSync(__filename, invalid), { code: 'ERR_OUT_OF_RANGE' }); -assert.throws(() => openSync(__filename, 0, 2176057344), { +assert.throws(() => openSync(__filename, 0, invalid), { code: 'ERR_OUT_OF_RANGE' }); -assert.rejects(openPromise(__filename, 2176057344), { +assert.rejects(openPromise(__filename, invalid), { code: 'ERR_OUT_OF_RANGE' }); -assert.rejects(openPromise(__filename, 0, 2176057344), { +assert.rejects(openPromise(__filename, 0, invalid), { code: 'ERR_OUT_OF_RANGE' }); diff --git a/test/parallel/test-fs-constants.js b/test/parallel/test-fs-constants.js new file mode 100644 index 00000000000000..49bcabd80873b4 --- /dev/null +++ b/test/parallel/test-fs-constants.js @@ -0,0 +1,8 @@ +'use strict'; +require('../common'); +const fs = require('fs'); +const assert = require('assert'); + +// Check if the two constants accepted by chmod() on Windows are defined. +assert.notStrictEqual(fs.constants.S_IRUSR, undefined); +assert.notStrictEqual(fs.constants.S_IWUSR, undefined); diff --git a/test/parallel/test-fs-opendir.js b/test/parallel/test-fs-opendir.js index 1a4aded61dcd1a..4f54f5ac35435b 100644 --- a/test/parallel/test-fs-opendir.js +++ b/test/parallel/test-fs-opendir.js @@ -67,18 +67,16 @@ const invalidCallbackObj = { // Check the opendir async version fs.opendir(testDir, common.mustSucceed((dir) => { let sync = true; - dir.read(common.mustCall((err, dirent) => { + dir.read(common.mustSucceed((dirent) => { assert(!sync); - assert.ifError(err); // Order is operating / file system dependent assert(files.includes(dirent.name), `'files' should include ${dirent}`); assertDirent(dirent); let syncInner = true; - dir.read(common.mustCall((err, dirent) => { + dir.read(common.mustSucceed((dirent) => { assert(!syncInner); - assert.ifError(err); dir.close(common.mustSucceed()); })); @@ -168,7 +166,7 @@ doAsyncIterBreakTest().then(common.mustCall()); async function doAsyncIterReturnTest() { const dir = await fs.promises.opendir(testDir); await (async function() { - for await (const dirent of dir) { // eslint-disable-line no-unused-vars + for await (const dirent of dir) { return; } })(); diff --git a/test/parallel/test-fs-options-immutable.js b/test/parallel/test-fs-options-immutable.js index b993d776e6e460..77ce3ebf1de9ca 100644 --- a/test/parallel/test-fs-options-immutable.js +++ b/test/parallel/test-fs-options-immutable.js @@ -6,19 +6,17 @@ const common = require('../common'); // // Refer: https://github.com/nodejs/node/issues/7655 -const assert = require('assert'); const fs = require('fs'); const path = require('path'); -const errHandler = (e) => assert.ifError(e); const options = Object.freeze({}); const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); -fs.readFile(__filename, options, common.mustCall(errHandler)); +fs.readFile(__filename, options, common.mustSucceed()); fs.readFileSync(__filename, options); -fs.readdir(__dirname, options, common.mustCall(errHandler)); +fs.readdir(__dirname, options, common.mustSucceed()); fs.readdirSync(__dirname, options); if (common.canCreateSymLink()) { @@ -28,20 +26,20 @@ if (common.canCreateSymLink()) { fs.writeFileSync(sourceFile, ''); fs.symlinkSync(sourceFile, linkFile); - fs.readlink(linkFile, options, common.mustCall(errHandler)); + fs.readlink(linkFile, options, common.mustSucceed()); fs.readlinkSync(linkFile, options); } { const fileName = path.resolve(tmpdir.path, 'writeFile'); fs.writeFileSync(fileName, 'ABCD', options); - fs.writeFile(fileName, 'ABCD', options, common.mustCall(errHandler)); + fs.writeFile(fileName, 'ABCD', options, common.mustSucceed()); } { const fileName = path.resolve(tmpdir.path, 'appendFile'); fs.appendFileSync(fileName, 'ABCD', options); - fs.appendFile(fileName, 'ABCD', options, common.mustCall(errHandler)); + fs.appendFile(fileName, 'ABCD', options, common.mustSucceed()); } if (!common.isIBMi) { // IBMi does not support fs.watch() @@ -56,13 +54,13 @@ if (!common.isIBMi) { // IBMi does not support fs.watch() { fs.realpathSync(__filename, options); - fs.realpath(__filename, options, common.mustCall(errHandler)); + fs.realpath(__filename, options, common.mustSucceed()); } { const tempFileName = path.resolve(tmpdir.path, 'mkdtemp-'); fs.mkdtempSync(tempFileName, options); - fs.mkdtemp(tempFileName, options, common.mustCall(errHandler)); + fs.mkdtemp(tempFileName, options, common.mustSucceed()); } { diff --git a/test/parallel/test-fs-promises-exists.js b/test/parallel/test-fs-promises-exists.js index d56308257e6b17..b9bbeee1de97fd 100644 --- a/test/parallel/test-fs-promises-exists.js +++ b/test/parallel/test-fs-promises-exists.js @@ -2,5 +2,8 @@ require('../common'); const assert = require('assert'); +const fs = require('fs'); +const fsPromises = require('fs/promises'); -assert.strictEqual(require('fs/promises'), require('fs').promises); +assert.strictEqual(fsPromises, fs.promises); +assert.strictEqual(fsPromises.constants, fs.constants); diff --git a/test/parallel/test-fs-promises-file-handle-readFile.js b/test/parallel/test-fs-promises-file-handle-readFile.js index 880b97d70713e1..8316862040ea9a 100644 --- a/test/parallel/test-fs-promises-file-handle-readFile.js +++ b/test/parallel/test-fs-promises-file-handle-readFile.js @@ -103,7 +103,7 @@ async function doReadAndCancel() { // Validate file size is within range for reading { - // Variable taken from https://github.com/nodejs/node/blob/master/lib/internal/fs/promises.js#L5 + // Variable taken from https://github.com/nodejs/node/blob/1377163f3351/lib/internal/fs/promises.js#L5 const kIoMaxLength = 2 ** 31 - 1; const newFile = path.resolve(tmpDir, 'dogs-running3.txt'); diff --git a/test/parallel/test-fs-promises-write-optional-params.js b/test/parallel/test-fs-promises-write-optional-params.js new file mode 100644 index 00000000000000..b130c491541800 --- /dev/null +++ b/test/parallel/test-fs-promises-write-optional-params.js @@ -0,0 +1,95 @@ +'use strict'; + +const common = require('../common'); + +// This test ensures that filehandle.write accepts "named parameters" object +// and doesn't interpret objects as strings + +const assert = require('assert'); +const fsPromises = require('fs').promises; +const path = require('path'); +const tmpdir = require('../common/tmpdir'); + +tmpdir.refresh(); + +const dest = path.resolve(tmpdir.path, 'tmp.txt'); +const buffer = Buffer.from('zyx'); + +async function testInvalid(dest, expectedCode, ...params) { + let fh; + try { + fh = await fsPromises.open(dest, 'w+'); + await assert.rejects( + fh.write(...params), + { code: expectedCode }); + } finally { + await fh?.close(); + } +} + +async function testValid(dest, buffer, options) { + let fh; + try { + fh = await fsPromises.open(dest, 'w+'); + const writeResult = await fh.write(buffer, options); + const writeBufCopy = Uint8Array.prototype.slice.call(writeResult.buffer); + + const readResult = await fh.read(buffer, options); + const readBufCopy = Uint8Array.prototype.slice.call(readResult.buffer); + + assert.ok(writeResult.bytesWritten >= readResult.bytesRead); + if (options.length !== undefined && options.length !== null) { + assert.strictEqual(writeResult.bytesWritten, options.length); + } + if (options.offset === undefined || options.offset === 0) { + assert.deepStrictEqual(writeBufCopy, readBufCopy); + } + assert.deepStrictEqual(writeResult.buffer, readResult.buffer); + } finally { + await fh?.close(); + } +} + +(async () => { + // Test if first argument is not wrongly interpreted as ArrayBufferView|string + for (const badBuffer of [ + undefined, null, true, 42, 42n, Symbol('42'), NaN, [], () => {}, + Promise.resolve(new Uint8Array(1)), + {}, + { buffer: 'amNotParam' }, + { string: 'amNotParam' }, + { buffer: new Uint8Array(1).buffer }, + new Date(), + new String('notPrimitive'), + { toString() { return 'amObject'; } }, + { [Symbol.toPrimitive]: (hint) => 'amObject' }, + ]) { + await testInvalid(dest, 'ERR_INVALID_ARG_TYPE', badBuffer, {}); + } + + // First argument (buffer or string) is mandatory + await testInvalid(dest, 'ERR_INVALID_ARG_TYPE'); + + // Various invalid options + await testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { length: 5 }); + await testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { offset: 5 }); + await testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { length: 1, offset: 3 }); + await testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { length: -1 }); + await testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { offset: -1 }); + await testInvalid(dest, 'ERR_INVALID_ARG_TYPE', buffer, { offset: false }); + await testInvalid(dest, 'ERR_INVALID_ARG_TYPE', buffer, { offset: true }); + + // Test compatibility with filehandle.read counterpart + for (const options of [ + {}, + { length: 1 }, + { position: 5 }, + { length: 1, position: 5 }, + { length: 1, position: -1, offset: 2 }, + { length: null }, + { position: null }, + { offset: 1 }, + ]) { + await testValid(dest, buffer, options); + } +})().then(common.mustCall()); diff --git a/test/parallel/test-fs-read-offset-null.js b/test/parallel/test-fs-read-offset-null.js index 27e893f781b2ff..012c94e41e92c7 100644 --- a/test/parallel/test-fs-read-offset-null.js +++ b/test/parallel/test-fs-read-offset-null.js @@ -14,13 +14,22 @@ const filepath = fixtures.path('x.txt'); const buf = Buffer.alloc(1); // Reading only one character, hence buffer of one byte is enough. -// Test for callback API. +// Tests are done by making sure the first letter in buffer is +// same as first letter in file. +// 120 is the ascii code of letter x. + +// Tests for callback API. fs.open(filepath, 'r', common.mustSucceed((fd) => { fs.read(fd, { offset: null, buffer: buf }, common.mustSucceed((bytesRead, buffer) => { - // Test is done by making sure the first letter in buffer is - // same as first letter in file. - // 120 is the hex for ascii code of letter x. + assert.strictEqual(buffer[0], 120); + fs.close(fd, common.mustSucceed(() => {})); + })); +})); + +fs.open(filepath, 'r', common.mustSucceed((fd) => { + fs.read(fd, buf, { offset: null }, + common.mustSucceed((bytesRead, buffer) => { assert.strictEqual(buffer[0], 120); fs.close(fd, common.mustSucceed(() => {})); })); @@ -28,15 +37,28 @@ fs.open(filepath, 'r', common.mustSucceed((fd) => { let filehandle = null; -// Test for promise api +// Tests for promises api +(async () => { + filehandle = await fsPromises.open(filepath, 'r'); + const readObject = await filehandle.read(buf, { offset: null }); + assert.strictEqual(readObject.buffer[0], 120); +})() +.finally(() => filehandle?.close()) +.then(common.mustCall()); + +// Undocumented: omitted position works the same as position === null (async () => { filehandle = await fsPromises.open(filepath, 'r'); const readObject = await filehandle.read(buf, null, buf.length); assert.strictEqual(readObject.buffer[0], 120); })() -.then(common.mustCall()) -.finally(async () => { -// Close the file handle if it is opened - if (filehandle) - await filehandle.close(); -}); +.finally(() => filehandle?.close()) +.then(common.mustCall()); + +(async () => { + filehandle = await fsPromises.open(filepath, 'r'); + const readObject = await filehandle.read(buf, null, buf.length, 0); + assert.strictEqual(readObject.buffer[0], 120); +})() +.finally(() => filehandle?.close()) +.then(common.mustCall()); diff --git a/test/parallel/test-fs-read-optional-params.js b/test/parallel/test-fs-read-optional-params.js index aac5f51d0bb2db..2699850b0e9597 100644 --- a/test/parallel/test-fs-read-optional-params.js +++ b/test/parallel/test-fs-read-optional-params.js @@ -5,32 +5,34 @@ const fixtures = require('../common/fixtures'); const fs = require('fs'); const assert = require('assert'); const filepath = fixtures.path('x.txt'); -const fd = fs.openSync(filepath, 'r'); const expected = Buffer.from('xyz\n'); const defaultBufferAsync = Buffer.alloc(16384); -const bufferAsOption = Buffer.allocUnsafe(expected.length); +const bufferAsOption = Buffer.allocUnsafe(expected.byteLength); -// Test not passing in any options object -fs.read(fd, common.mustCall((err, bytesRead, buffer) => { - assert.strictEqual(bytesRead, expected.length); - assert.deepStrictEqual(defaultBufferAsync.length, buffer.length); -})); +function testValid(message, ...options) { + const paramsMsg = `${message} (as params)`; + const paramsFilehandle = fs.openSync(filepath, 'r'); + fs.read(paramsFilehandle, ...options, common.mustSucceed((bytesRead, buffer) => { + assert.strictEqual(bytesRead, expected.byteLength, paramsMsg); + assert.deepStrictEqual(defaultBufferAsync.byteLength, buffer.byteLength, paramsMsg); + fs.closeSync(paramsFilehandle); + })); -// Test passing in an empty options object -fs.read(fd, { position: 0 }, common.mustCall((err, bytesRead, buffer) => { - assert.strictEqual(bytesRead, expected.length); - assert.deepStrictEqual(defaultBufferAsync.length, buffer.length); -})); + const optionsMsg = `${message} (as options)`; + const optionsFilehandle = fs.openSync(filepath, 'r'); + fs.read(optionsFilehandle, bufferAsOption, ...options, common.mustSucceed((bytesRead, buffer) => { + assert.strictEqual(bytesRead, expected.byteLength, optionsMsg); + assert.deepStrictEqual(bufferAsOption.byteLength, buffer.byteLength, optionsMsg); + fs.closeSync(optionsFilehandle); + })); +} -// Test passing in options -fs.read(fd, { - buffer: bufferAsOption, +testValid('Not passing in any object'); +testValid('Passing in a null', null); +testValid('Passing in an empty object', {}); +testValid('Passing in an object', { offset: 0, - length: bufferAsOption.length, - position: 0 -}, - common.mustCall((err, bytesRead, buffer) => { - assert.strictEqual(bytesRead, expected.length); - assert.deepStrictEqual(bufferAsOption.length, buffer.length); - })); + length: bufferAsOption.byteLength, + position: 0, +}); diff --git a/test/parallel/test-fs-read-position-validation.mjs b/test/parallel/test-fs-read-position-validation.mjs new file mode 100644 index 00000000000000..919a8dd1419903 --- /dev/null +++ b/test/parallel/test-fs-read-position-validation.mjs @@ -0,0 +1,94 @@ +import * as common from '../common/index.mjs'; +import * as fixtures from '../common/fixtures.mjs'; +import fs from 'fs'; +import assert from 'assert'; + +// This test ensures that "position" argument is correctly validated + +const filepath = fixtures.path('x.txt'); + +const buffer = Buffer.from('xyz\n'); +const offset = 0; +const length = buffer.byteLength; + +// allowedErrors is an array of acceptable internal errors +// For example, on some platforms read syscall might return -EFBIG +async function testValid(position, allowedErrors = []) { + return new Promise((resolve, reject) => { + fs.open(filepath, 'r', common.mustSucceed((fd) => { + let callCount = 3; + const handler = common.mustCall((err) => { + callCount--; + if (err && !allowedErrors.includes(err.code)) { + fs.close(fd, common.mustSucceed()); + reject(err); + } else if (callCount === 0) { + fs.close(fd, common.mustSucceed(resolve)); + } + }, callCount); + fs.read(fd, buffer, offset, length, position, handler); + fs.read(fd, { buffer, offset, length, position }, handler); + fs.read(fd, buffer, { offset, length, position }, handler); + })); + }); +} + +async function testInvalid(code, position) { + return new Promise((resolve, reject) => { + fs.open(filepath, 'r', common.mustSucceed((fd) => { + try { + assert.throws( + () => fs.read(fd, buffer, offset, length, position, common.mustNotCall()), + { code } + ); + assert.throws( + () => fs.read(fd, { buffer, offset, length, position }, common.mustNotCall()), + { code } + ); + assert.throws( + () => fs.read(fd, buffer, { offset, length, position }, common.mustNotCall()), + { code } + ); + resolve(); + } catch (err) { + reject(err); + } finally { + fs.close(fd, common.mustSucceed()); + } + })); + }); +} + +{ + await testValid(undefined); + await testValid(null); + await testValid(-1); + await testValid(-1n); + + await testValid(0); + await testValid(0n); + await testValid(1); + await testValid(1n); + await testValid(9); + await testValid(9n); + await testValid(Number.MAX_SAFE_INTEGER, [ 'EFBIG' ]); + + await testValid(2n ** 63n - 1n - BigInt(length), [ 'EFBIG' ]); + await testInvalid('ERR_OUT_OF_RANGE', 2n ** 63n); + + // TODO(LiviaMedeiros): test `2n ** 63n - BigInt(length)` + + await testInvalid('ERR_OUT_OF_RANGE', NaN); + await testInvalid('ERR_OUT_OF_RANGE', -Infinity); + await testInvalid('ERR_OUT_OF_RANGE', Infinity); + await testInvalid('ERR_OUT_OF_RANGE', -0.999); + await testInvalid('ERR_OUT_OF_RANGE', -(2n ** 64n)); + await testInvalid('ERR_OUT_OF_RANGE', Number.MAX_SAFE_INTEGER + 1); + await testInvalid('ERR_OUT_OF_RANGE', Number.MAX_VALUE); + + for (const badTypeValue of [ + false, true, '1', Symbol(1), {}, [], () => {}, Promise.resolve(1), + ]) { + await testInvalid('ERR_INVALID_ARG_TYPE', badTypeValue); + } +} diff --git a/test/parallel/test-fs-read-promises-optional-params.js b/test/parallel/test-fs-read-promises-optional-params.js index 9d19eaa41151a8..48311e9df45c91 100644 --- a/test/parallel/test-fs-read-promises-optional-params.js +++ b/test/parallel/test-fs-read-promises-optional-params.js @@ -10,10 +10,18 @@ const fd = fs.openSync(filepath, 'r'); const expected = Buffer.from('xyz\n'); const defaultBufferAsync = Buffer.alloc(16384); +const bufferAsOption = Buffer.allocUnsafe(expected.byteLength); read(fd, {}) .then(function({ bytesRead, buffer }) { - assert.strictEqual(bytesRead, expected.length); - assert.deepStrictEqual(defaultBufferAsync.length, buffer.length); + assert.strictEqual(bytesRead, expected.byteLength); + assert.deepStrictEqual(defaultBufferAsync.byteLength, buffer.byteLength); + }) + .then(common.mustCall()); + +read(fd, bufferAsOption, { position: 0 }) + .then(function({ bytesRead, buffer }) { + assert.strictEqual(bytesRead, expected.byteLength); + assert.deepStrictEqual(bufferAsOption.byteLength, buffer.byteLength); }) .then(common.mustCall()); diff --git a/test/parallel/test-fs-readSync-position-validation.mjs b/test/parallel/test-fs-readSync-position-validation.mjs new file mode 100644 index 00000000000000..5cf40ba1b08578 --- /dev/null +++ b/test/parallel/test-fs-readSync-position-validation.mjs @@ -0,0 +1,80 @@ +import '../common/index.mjs'; +import * as fixtures from '../common/fixtures.mjs'; +import fs from 'fs'; +import assert from 'assert'; + +// This test ensures that "position" argument is correctly validated + +const filepath = fixtures.path('x.txt'); + +const buffer = Buffer.from('xyz\n'); +const offset = 0; +const length = buffer.byteLength; + +// allowedErrors is an array of acceptable internal errors +// For example, on some platforms read syscall might return -EFBIG +function testValid(position, allowedErrors = []) { + let fdSync; + try { + fdSync = fs.openSync(filepath, 'r'); + fs.readSync(fdSync, buffer, offset, length, position); + fs.readSync(fdSync, buffer, { offset, length, position }); + } catch (err) { + if (!allowedErrors.includes(err.code)) { + assert.fail(err); + } + } finally { + if (fdSync) fs.closeSync(fdSync); + } +} + +function testInvalid(code, position, internalCatch = false) { + let fdSync; + try { + fdSync = fs.openSync(filepath, 'r'); + assert.throws( + () => fs.readSync(fdSync, buffer, offset, length, position), + { code } + ); + assert.throws( + () => fs.readSync(fdSync, buffer, { offset, length, position }), + { code } + ); + } finally { + if (fdSync) fs.closeSync(fdSync); + } +} + +{ + testValid(undefined); + testValid(null); + testValid(-1); + testValid(-1n); + + testValid(0); + testValid(0n); + testValid(1); + testValid(1n); + testValid(9); + testValid(9n); + testValid(Number.MAX_SAFE_INTEGER, [ 'EFBIG' ]); + + testValid(2n ** 63n - 1n - BigInt(length), [ 'EFBIG' ]); + testInvalid('ERR_OUT_OF_RANGE', 2n ** 63n); + + // TODO(LiviaMedeiros): test `2n ** 63n - BigInt(length)` + + testInvalid('ERR_OUT_OF_RANGE', NaN); + testInvalid('ERR_OUT_OF_RANGE', -Infinity); + testInvalid('ERR_OUT_OF_RANGE', Infinity); + testInvalid('ERR_OUT_OF_RANGE', -0.999); + testInvalid('ERR_OUT_OF_RANGE', -(2n ** 64n)); + testInvalid('ERR_OUT_OF_RANGE', Number.MAX_SAFE_INTEGER + 1); + testInvalid('ERR_OUT_OF_RANGE', Number.MAX_VALUE); + + for (const badTypeValue of [ + false, true, '1', Symbol(1), {}, [], () => {}, Promise.resolve(1), + ]) { + testInvalid('ERR_INVALID_ARG_TYPE', badTypeValue); + } +} diff --git a/test/parallel/test-fs-util-validateoffsetlength.js b/test/parallel/test-fs-util-validateoffsetlength.js index 28e087d33aec7b..bda20f86683723 100644 --- a/test/parallel/test-fs-util-validateoffsetlength.js +++ b/test/parallel/test-fs-util-validateoffsetlength.js @@ -50,7 +50,7 @@ const { ); } -// Most platforms don't allow reads or writes >= 2 GB. +// Most platforms don't allow reads or writes >= 2 GiB. // See https://github.com/libuv/libuv/pull/1501. const kIoMaxLength = 2 ** 31 - 1; diff --git a/test/parallel/test-fs-write-optional-params.js b/test/parallel/test-fs-write-optional-params.js new file mode 100644 index 00000000000000..21732114153c0c --- /dev/null +++ b/test/parallel/test-fs-write-optional-params.js @@ -0,0 +1,102 @@ +'use strict'; + +const common = require('../common'); + +// This test ensures that fs.write accepts "named parameters" object +// and doesn't interpret objects as strings + +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); +const tmpdir = require('../common/tmpdir'); +const util = require('util'); + +tmpdir.refresh(); + +const destInvalid = path.resolve(tmpdir.path, 'rwopt_invalid'); +const buffer = Buffer.from('zyx'); + +function testInvalidCb(fd, expectedCode, buffer, options, callback) { + assert.throws( + () => fs.write(fd, buffer, options, common.mustNotCall()), + { code: expectedCode } + ); + callback(0); +} + +function testValidCb(buffer, options, index, callback) { + const dest = path.resolve(tmpdir.path, `rwopt_valid_${index}`); + fs.open(dest, 'w+', common.mustSucceed((fd) => { + fs.write(fd, buffer, options, common.mustSucceed((bytesWritten, bufferWritten) => { + const writeBufCopy = Uint8Array.prototype.slice.call(bufferWritten); + + fs.read(fd, buffer, options, common.mustSucceed((bytesRead, bufferRead) => { + const readBufCopy = Uint8Array.prototype.slice.call(bufferRead); + + assert.ok(bytesWritten >= bytesRead); + if (options.length !== undefined && options.length !== null) { + assert.strictEqual(bytesWritten, options.length); + } + if (options.offset === undefined || options.offset === 0) { + assert.deepStrictEqual(writeBufCopy, readBufCopy); + } + assert.deepStrictEqual(bufferWritten, bufferRead); + fs.close(fd, common.mustSucceed(callback)); + })); + })); + })); +} + +// Promisify to reduce flakiness +const testInvalid = util.promisify(testInvalidCb); +const testValid = util.promisify(testValidCb); + +async function runTests(fd) { + // Test if first argument is not wrongly interpreted as ArrayBufferView|string + for (const badBuffer of [ + undefined, null, true, 42, 42n, Symbol('42'), NaN, [], () => {}, + Promise.resolve(new Uint8Array(1)), + {}, + { buffer: 'amNotParam' }, + { string: 'amNotParam' }, + { buffer: new Uint8Array(1).buffer }, + new Date(), + new String('notPrimitive'), + { [Symbol.toPrimitive]: (hint) => 'amObject' }, + + // TODO(LiviaMedeiros): add the following after DEP0162 EOL + // { toString() { return 'amObject'; } }, + ]) { + await testInvalid(fd, 'ERR_INVALID_ARG_TYPE', badBuffer, {}); + } + + // First argument (buffer or string) is mandatory + await testInvalid(fd, 'ERR_INVALID_ARG_TYPE', undefined, undefined); + + // Various invalid options + await testInvalid(fd, 'ERR_OUT_OF_RANGE', buffer, { length: 5 }); + await testInvalid(fd, 'ERR_OUT_OF_RANGE', buffer, { offset: 5 }); + await testInvalid(fd, 'ERR_OUT_OF_RANGE', buffer, { length: 1, offset: 3 }); + await testInvalid(fd, 'ERR_OUT_OF_RANGE', buffer, { length: -1 }); + await testInvalid(fd, 'ERR_OUT_OF_RANGE', buffer, { offset: -1 }); + await testInvalid(fd, 'ERR_INVALID_ARG_TYPE', buffer, { offset: false }); + await testInvalid(fd, 'ERR_INVALID_ARG_TYPE', buffer, { offset: true }); + + // Test compatibility with fs.read counterpart + for (const [ index, options ] of [ + {}, + { length: 1 }, + { position: 5 }, + { length: 1, position: 5 }, + { length: 1, position: -1, offset: 2 }, + { length: null }, + { position: null }, + { offset: 1 }, + ].entries()) { + await testValid(buffer, options, index); + } +} + +fs.open(destInvalid, 'w+', common.mustSucceed(async (fd) => { + runTests(fd).then(common.mustCall(() => fs.close(fd, common.mustSucceed()))); +})); diff --git a/test/parallel/test-fs-write-sync-optional-params.js b/test/parallel/test-fs-write-sync-optional-params.js new file mode 100644 index 00000000000000..80dfa51e0ba152 --- /dev/null +++ b/test/parallel/test-fs-write-sync-optional-params.js @@ -0,0 +1,89 @@ +'use strict'; + +require('../common'); + +// This test ensures that fs.writeSync accepts "named parameters" object +// and doesn't interpret objects as strings + +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); +const tmpdir = require('../common/tmpdir'); + +tmpdir.refresh(); + +const dest = path.resolve(tmpdir.path, 'tmp.txt'); +const buffer = Buffer.from('zyx'); + +function testInvalid(dest, expectedCode, ...bufferAndOptions) { + let fd; + try { + fd = fs.openSync(dest, 'w+'); + assert.throws( + () => fs.writeSync(fd, ...bufferAndOptions), + { code: expectedCode }); + } finally { + if (fd != null) fs.closeSync(fd); + } +} + +function testValid(dest, buffer, options) { + let fd; + try { + fd = fs.openSync(dest, 'w+'); + const bytesWritten = fs.writeSync(fd, buffer, options); + const bytesRead = fs.readSync(fd, buffer, options); + + assert.ok(bytesWritten >= bytesRead); + if (options.length !== undefined && options.length !== null) { + assert.strictEqual(bytesWritten, options.length); + } + } finally { + if (fd != null) fs.closeSync(fd); + } +} + +{ + // Test if second argument is not wrongly interpreted as string or options + for (const badBuffer of [ + undefined, null, true, 42, 42n, Symbol('42'), NaN, [], () => {}, + {}, + { buffer: 'amNotParam' }, + { string: 'amNotParam' }, + { buffer: new Uint8Array(1) }, + { buffer: new Uint8Array(1).buffer }, + Promise.resolve(new Uint8Array(1)), + new Date(), + new String('notPrimitive'), + { toString() { return 'amObject'; } }, + { [Symbol.toPrimitive]: (hint) => 'amObject' }, + ]) { + testInvalid(dest, 'ERR_INVALID_ARG_TYPE', badBuffer); + } + + // First argument (buffer or string) is mandatory + testInvalid(dest, 'ERR_INVALID_ARG_TYPE'); + + // Various invalid options + testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { length: 5 }); + testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { offset: 5 }); + testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { length: 1, offset: 3 }); + testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { length: -1 }); + testInvalid(dest, 'ERR_OUT_OF_RANGE', buffer, { offset: -1 }); + testInvalid(dest, 'ERR_INVALID_ARG_TYPE', buffer, { offset: false }); + testInvalid(dest, 'ERR_INVALID_ARG_TYPE', buffer, { offset: true }); + + // Test compatibility with fs.readSync counterpart with reused options + for (const options of [ + {}, + { length: 1 }, + { position: 5 }, + { length: 1, position: 5 }, + { length: 1, position: -1, offset: 2 }, + { length: null }, + { position: null }, + { offset: 1 }, + ]) { + testValid(dest, buffer, options); + } +} diff --git a/test/parallel/test-gc-http-client-connaborted.js b/test/parallel/test-gc-http-client-connaborted.js index fa6bf20c176560..fd276d30e2beb1 100644 --- a/test/parallel/test-gc-http-client-connaborted.js +++ b/test/parallel/test-gc-http-client-connaborted.js @@ -5,27 +5,27 @@ const common = require('../common'); const onGC = require('../common/ongc'); - const http = require('http'); -const todo = 500; +const os = require('os'); + +const cpus = os.cpus().length; +let createClients = true; let done = 0; let count = 0; let countGC = 0; -console.log(`We should do ${todo} requests`); - function serverHandler(req, res) { res.connection.destroy(); } const server = http.createServer(serverHandler); server.listen(0, common.mustCall(() => { - for (let i = 0; i < 10; i++) - getall(); + for (let i = 0; i < cpus; i++) + getAll(); })); -function getall() { - if (count >= todo) +function getAll() { + if (!createClients) return; const req = http.get({ @@ -37,7 +37,7 @@ function getall() { count++; onGC(req, { ongc }); - setImmediate(getall); + setImmediate(getAll); } function cb(res) { @@ -48,11 +48,18 @@ function ongc() { countGC++; } -setInterval(status, 100).unref(); +setImmediate(status); function status() { - global.gc(); - console.log('Done: %d/%d', done, todo); - console.log('Collected: %d/%d', countGC, count); - if (countGC === todo) server.close(); + if (done > 0) { + createClients = false; + global.gc(); + console.log(`done/collected/total: ${done}/${countGC}/${count}`); + if (countGC === count) { + server.close(); + return; + } + } + + setImmediate(status); } diff --git a/test/parallel/test-gc-http-client-timeout.js b/test/parallel/test-gc-http-client-timeout.js index 359f890dc3944e..3ac410a6111bd8 100644 --- a/test/parallel/test-gc-http-client-timeout.js +++ b/test/parallel/test-gc-http-client-timeout.js @@ -5,6 +5,8 @@ const common = require('../common'); const onGC = require('../common/ongc'); +const http = require('http'); +const os = require('os'); function serverHandler(req, res) { setTimeout(function() { @@ -14,19 +16,17 @@ function serverHandler(req, res) { }, 100); } -const http = require('http'); -const todo = 300; +const cpus = os.cpus().length; +let createClients = true; let done = 0; let count = 0; let countGC = 0; -console.log(`We should do ${todo} requests`); - const server = http.createServer(serverHandler); -server.listen(0, common.mustCall(getall)); +server.listen(0, common.mustCall(getAll)); -function getall() { - if (count >= todo) +function getAll() { + if (!createClients) return; const req = http.get({ @@ -35,18 +35,16 @@ function getall() { port: server.address().port }, cb); - req.setTimeout(10, function() { - console.log('timeout (expected)'); - }); + req.setTimeout(10, common.mustCall()); count++; onGC(req, { ongc }); - setImmediate(getall); + setImmediate(getAll); } -for (let i = 0; i < 10; i++) - getall(); +for (let i = 0; i < cpus; i++) + getAll(); function cb(res) { res.resume(); @@ -57,11 +55,18 @@ function ongc() { countGC++; } -setInterval(status, 100).unref(); +setImmediate(status); function status() { - global.gc(); - console.log('Done: %d/%d', done, todo); - console.log('Collected: %d/%d', countGC, count); - if (countGC === todo) server.close(); + if (done > 0) { + createClients = false; + global.gc(); + console.log(`done/collected/total: ${done}/${countGC}/${count}`); + if (countGC === count) { + server.close(); + return; + } + } + + setImmediate(status); } diff --git a/test/parallel/test-gc-net-timeout.js b/test/parallel/test-gc-net-timeout.js index 9ba6d2bc1744f9..6b9d51c98d0e84 100644 --- a/test/parallel/test-gc-net-timeout.js +++ b/test/parallel/test-gc-net-timeout.js @@ -5,6 +5,9 @@ require('../common'); const onGC = require('../common/ongc'); +const assert = require('assert'); +const net = require('net'); +const os = require('os'); function serverHandler(sock) { sock.setTimeout(120000); @@ -23,20 +26,17 @@ function serverHandler(sock) { }, 100); } -const net = require('net'); -const assert = require('assert'); -const todo = 500; +const cpus = os.cpus().length; +let createClients = true; let done = 0; let count = 0; let countGC = 0; -console.log(`We should do ${todo} requests`); - const server = net.createServer(serverHandler); -server.listen(0, getall); +server.listen(0, getAll); -function getall() { - if (count >= todo) +function getAll() { + if (!createClients) return; const req = net.connect(server.address().port); @@ -49,21 +49,28 @@ function getall() { count++; onGC(req, { ongc }); - setImmediate(getall); + setImmediate(getAll); } -for (let i = 0; i < 10; i++) - getall(); +for (let i = 0; i < cpus; i++) + getAll(); function ongc() { countGC++; } -setInterval(status, 100).unref(); +setImmediate(status); function status() { - global.gc(); - console.log('Done: %d/%d', done, todo); - console.log('Collected: %d/%d', countGC, count); - if (countGC === todo) server.close(); + if (done > 0) { + createClients = false; + global.gc(); + console.log(`done/collected/total: ${done}/${countGC}/${count}`); + if (countGC === count) { + server.close(); + return; + } + } + + setImmediate(status); } diff --git a/test/parallel/test-global.js b/test/parallel/test-global.js index 3585062bf310e5..5437751cbcc520 100644 --- a/test/parallel/test-global.js +++ b/test/parallel/test-global.js @@ -49,6 +49,8 @@ builtinModules.forEach((moduleName) => { 'clearImmediate', 'clearInterval', 'clearTimeout', + 'atob', + 'btoa', 'performance', 'setImmediate', 'setInterval', diff --git a/test/parallel/test-handle-wrap-hasref.js b/test/parallel/test-handle-wrap-hasref.js new file mode 100644 index 00000000000000..f76194d0495781 --- /dev/null +++ b/test/parallel/test-handle-wrap-hasref.js @@ -0,0 +1,136 @@ +// Flags: --expose-internals +'use strict'; + +const common = require('../common'); +const strictEqual = require('assert').strictEqual; +const { internalBinding } = require('internal/test/binding'); + +// child_process +{ + const spawn = require('child_process').spawn; + const cmd = common.isWindows ? 'rundll32' : 'ls'; + const cp = spawn(cmd); + strictEqual(cp._handle.hasRef(), + true, 'process_wrap: not initially refed'); + cp.unref(); + strictEqual(cp._handle.hasRef(), + false, 'process_wrap: unref() ineffective'); + cp.ref(); + strictEqual(cp._handle.hasRef(), + true, 'process_wrap: ref() ineffective'); + cp._handle.close(common.mustCall(() => + strictEqual(cp._handle.hasRef(), + false, 'process_wrap: not unrefed on close'))); +} + + +const dgram = require('dgram'); +const { kStateSymbol } = require('internal/dgram'); + +// dgram ipv4 +{ + const sock4 = dgram.createSocket('udp4'); + const handle = sock4[kStateSymbol].handle; + + strictEqual(handle.hasRef(), + true, 'udp_wrap: ipv4: not initially refed'); + sock4.unref(); + strictEqual(handle.hasRef(), + false, 'udp_wrap: ipv4: unref() ineffective'); + sock4.ref(); + strictEqual(handle.hasRef(), + true, 'udp_wrap: ipv4: ref() ineffective'); + handle.close(common.mustCall(() => + strictEqual(handle.hasRef(), + false, 'udp_wrap: ipv4: not unrefed on close'))); +} + + +// dgram ipv6 +{ + const sock6 = dgram.createSocket('udp6'); + const handle = sock6[kStateSymbol].handle; + + strictEqual(handle.hasRef(), + true, 'udp_wrap: ipv6: not initially refed'); + sock6.unref(); + strictEqual(handle.hasRef(), + false, 'udp_wrap: ipv6: unref() ineffective'); + sock6.ref(); + strictEqual(handle.hasRef(), + true, 'udp_wrap: ipv6: ref() ineffective'); + handle.close(common.mustCall(() => + strictEqual(handle.hasRef(), + false, 'udp_wrap: ipv6: not unrefed on close'))); +} + + +// pipe +{ + const { Pipe, constants: PipeConstants } = internalBinding('pipe_wrap'); + const handle = new Pipe(PipeConstants.SOCKET); + strictEqual(handle.hasRef(), + true, 'pipe_wrap: not initially refed'); + handle.unref(); + strictEqual(handle.hasRef(), + false, 'pipe_wrap: unref() ineffective'); + handle.ref(); + strictEqual(handle.hasRef(), + true, 'pipe_wrap: ref() ineffective'); + handle.close(common.mustCall(() => + strictEqual(handle.hasRef(), + false, 'pipe_wrap: not unrefed on close'))); +} + + +// tcp +{ + const net = require('net'); + const server = net.createServer(() => {}).listen(0); + strictEqual(server._handle.hasRef(), + true, 'tcp_wrap: not initially refed'); + strictEqual(server._unref, + false, 'tcp_wrap: _unref initially incorrect'); + server.unref(); + strictEqual(server._handle.hasRef(), + false, 'tcp_wrap: unref() ineffective'); + strictEqual(server._unref, + true, 'tcp_wrap: _unref not updated on unref()'); + server.ref(); + strictEqual(server._handle.hasRef(), + true, 'tcp_wrap: ref() ineffective'); + strictEqual(server._unref, + false, 'tcp_wrap: _unref not updated on ref()'); + server._handle.close(common.mustCall(() => + strictEqual(server._handle.hasRef(), + false, 'tcp_wrap: not unrefed on close'))); +} + +// timers +{ + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 0); + const timeout = setTimeout(() => {}, 500); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 1); + timeout.unref(); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 0); + timeout.ref(); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 1); + + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 0); + const immediate = setImmediate(() => {}); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 1); + immediate.unref(); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 0); + immediate.ref(); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 1); +} + +// See also test/pseudo-tty/test-handle-wrap-hasref-tty.js diff --git a/test/parallel/test-handle-wrap-isrefed.js b/test/parallel/test-handle-wrap-isrefed.js deleted file mode 100644 index d4ca0070929721..00000000000000 --- a/test/parallel/test-handle-wrap-isrefed.js +++ /dev/null @@ -1,136 +0,0 @@ -// Flags: --expose-internals -'use strict'; - -const common = require('../common'); -const strictEqual = require('assert').strictEqual; -const { internalBinding } = require('internal/test/binding'); - -// child_process -{ - const spawn = require('child_process').spawn; - const cmd = common.isWindows ? 'rundll32' : 'ls'; - const cp = spawn(cmd); - strictEqual(cp._handle.hasRef(), - true, 'process_wrap: not initially refed'); - cp.unref(); - strictEqual(cp._handle.hasRef(), - false, 'process_wrap: unref() ineffective'); - cp.ref(); - strictEqual(cp._handle.hasRef(), - true, 'process_wrap: ref() ineffective'); - cp._handle.close(common.mustCall(() => - strictEqual(cp._handle.hasRef(), - false, 'process_wrap: not unrefed on close'))); -} - - -const dgram = require('dgram'); -const { kStateSymbol } = require('internal/dgram'); - -// dgram ipv4 -{ - const sock4 = dgram.createSocket('udp4'); - const handle = sock4[kStateSymbol].handle; - - strictEqual(handle.hasRef(), - true, 'udp_wrap: ipv4: not initially refed'); - sock4.unref(); - strictEqual(handle.hasRef(), - false, 'udp_wrap: ipv4: unref() ineffective'); - sock4.ref(); - strictEqual(handle.hasRef(), - true, 'udp_wrap: ipv4: ref() ineffective'); - handle.close(common.mustCall(() => - strictEqual(handle.hasRef(), - false, 'udp_wrap: ipv4: not unrefed on close'))); -} - - -// dgram ipv6 -{ - const sock6 = dgram.createSocket('udp6'); - const handle = sock6[kStateSymbol].handle; - - strictEqual(handle.hasRef(), - true, 'udp_wrap: ipv6: not initially refed'); - sock6.unref(); - strictEqual(handle.hasRef(), - false, 'udp_wrap: ipv6: unref() ineffective'); - sock6.ref(); - strictEqual(handle.hasRef(), - true, 'udp_wrap: ipv6: ref() ineffective'); - handle.close(common.mustCall(() => - strictEqual(handle.hasRef(), - false, 'udp_wrap: ipv6: not unrefed on close'))); -} - - -// pipe -{ - const { Pipe, constants: PipeConstants } = internalBinding('pipe_wrap'); - const handle = new Pipe(PipeConstants.SOCKET); - strictEqual(handle.hasRef(), - true, 'pipe_wrap: not initially refed'); - handle.unref(); - strictEqual(handle.hasRef(), - false, 'pipe_wrap: unref() ineffective'); - handle.ref(); - strictEqual(handle.hasRef(), - true, 'pipe_wrap: ref() ineffective'); - handle.close(common.mustCall(() => - strictEqual(handle.hasRef(), - false, 'pipe_wrap: not unrefed on close'))); -} - - -// tcp -{ - const net = require('net'); - const server = net.createServer(() => {}).listen(0); - strictEqual(server._handle.hasRef(), - true, 'tcp_wrap: not initially refed'); - strictEqual(server._unref, - false, 'tcp_wrap: _unref initially incorrect'); - server.unref(); - strictEqual(server._handle.hasRef(), - false, 'tcp_wrap: unref() ineffective'); - strictEqual(server._unref, - true, 'tcp_wrap: _unref not updated on unref()'); - server.ref(); - strictEqual(server._handle.hasRef(), - true, 'tcp_wrap: ref() ineffective'); - strictEqual(server._unref, - false, 'tcp_wrap: _unref not updated on ref()'); - server._handle.close(common.mustCall(() => - strictEqual(server._handle.hasRef(), - false, 'tcp_wrap: not unrefed on close'))); -} - -// timers -{ - strictEqual(process.getActiveResourcesInfo().filter( - (type) => type === 'Timeout').length, 0); - const timeout = setTimeout(() => {}, 500); - strictEqual(process.getActiveResourcesInfo().filter( - (type) => type === 'Timeout').length, 1); - timeout.unref(); - strictEqual(process.getActiveResourcesInfo().filter( - (type) => type === 'Timeout').length, 0); - timeout.ref(); - strictEqual(process.getActiveResourcesInfo().filter( - (type) => type === 'Timeout').length, 1); - - strictEqual(process.getActiveResourcesInfo().filter( - (type) => type === 'Immediate').length, 0); - const immediate = setImmediate(() => {}); - strictEqual(process.getActiveResourcesInfo().filter( - (type) => type === 'Immediate').length, 1); - immediate.unref(); - strictEqual(process.getActiveResourcesInfo().filter( - (type) => type === 'Immediate').length, 0); - immediate.ref(); - strictEqual(process.getActiveResourcesInfo().filter( - (type) => type === 'Immediate').length, 1); -} - -// See also test/pseudo-tty/test-handle-wrap-isrefed-tty.js diff --git a/test/parallel/test-http-agent-keepalive-delay.js b/test/parallel/test-http-agent-keepalive-delay.js new file mode 100644 index 00000000000000..b5edd78b662709 --- /dev/null +++ b/test/parallel/test-http-agent-keepalive-delay.js @@ -0,0 +1,36 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const http = require('http'); +const { Agent } = require('_http_agent'); + +const agent = new Agent({ + keepAlive: true, + keepAliveMsecs: 1000, +}); + +const server = http.createServer(common.mustCall((req, res) => { + res.end('ok'); +})); + +server.listen(0, common.mustCall(() => { + const createConnection = agent.createConnection; + agent.createConnection = (options, ...args) => { + assert.strictEqual(options.keepAlive, true); + assert.strictEqual(options.keepAliveInitialDelay, agent.keepAliveMsecs); + return createConnection.call(agent, options, ...args); + }; + http.get({ + host: 'localhost', + port: server.address().port, + agent: agent, + path: '/' + }, common.mustCall((res) => { + // for emit end event + res.on('data', () => {}); + res.on('end', () => { + server.close(); + }); + })); +})); diff --git a/test/parallel/test-http-multiple-headers.js b/test/parallel/test-http-multiple-headers.js new file mode 100644 index 00000000000000..1ebd290a614b1b --- /dev/null +++ b/test/parallel/test-http-multiple-headers.js @@ -0,0 +1,173 @@ +'use strict'; + +// TODO@PI: Run all tests +const common = require('../common'); +const assert = require('assert'); +const { createServer, request } = require('http'); + +const server = createServer( + { uniqueHeaders: ['x-res-b', 'x-res-d', 'x-res-y'] }, + common.mustCall((req, res) => { + const host = `127.0.0.1:${server.address().port}`; + + assert.deepStrictEqual(req.rawHeaders, [ + 'connection', 'close', + 'X-Req-a', 'eee', + 'X-Req-a', 'fff', + 'X-Req-a', 'ggg', + 'X-Req-a', 'hhh', + 'X-Req-b', 'iii; jjj; kkk; lll', + 'Host', host, + 'Transfer-Encoding', 'chunked', + ]); + assert.deepStrictEqual(req.headers, { + 'connection': 'close', + 'x-req-a': 'eee, fff, ggg, hhh', + 'x-req-b': 'iii; jjj; kkk; lll', + host, + 'transfer-encoding': 'chunked' + }); + assert.deepStrictEqual(req.headersDistinct, { + 'connection': ['close'], + 'x-req-a': ['eee', 'fff', 'ggg', 'hhh'], + 'x-req-b': ['iii; jjj; kkk; lll'], + 'host': [host], + 'transfer-encoding': ['chunked'] + }); + + req.on('end', function() { + assert.deepStrictEqual(req.rawTrailers, [ + 'x-req-x', 'xxx', + 'x-req-x', 'yyy', + 'X-req-Y', 'zzz; www', + ]); + assert.deepStrictEqual( + req.trailers, { 'x-req-x': 'xxx, yyy', 'x-req-y': 'zzz; www' } + ); + assert.deepStrictEqual( + req.trailersDistinct, + { 'x-req-x': ['xxx', 'yyy'], 'x-req-y': ['zzz; www'] } + ); + + res.setHeader('X-Res-a', 'AAA'); + res.appendHeader('x-res-a', ['BBB', 'CCC']); + res.setHeader('X-Res-b', ['DDD', 'EEE']); + res.appendHeader('x-res-b', ['FFF', 'GGG']); + res.removeHeader('date'); + res.writeHead(200, { + 'Connection': 'close', 'x-res-c': ['HHH', 'III'], + 'x-res-d': ['JJJ', 'KKK', 'LLL'] + }); + res.addTrailers({ + 'x-res-x': ['XXX', 'YYY'], + 'X-Res-Y': ['ZZZ', 'WWW'] + }); + res.write('BODY'); + res.end(); + + assert.deepStrictEqual(res.getHeader('X-Res-a'), ['AAA', 'BBB', 'CCC']); + assert.deepStrictEqual(res.getHeader('x-res-a'), ['AAA', 'BBB', 'CCC']); + assert.deepStrictEqual( + res.getHeader('x-res-b'), ['DDD', 'EEE', 'FFF', 'GGG'] + ); + assert.deepStrictEqual(res.getHeader('x-res-c'), ['HHH', 'III']); + assert.strictEqual(res.getHeader('connection'), 'close'); + assert.deepStrictEqual( + res.getHeaderNames(), + ['x-res-a', 'x-res-b', 'connection', 'x-res-c', 'x-res-d'] + ); + assert.deepStrictEqual( + res.getRawHeaderNames(), + ['X-Res-a', 'X-Res-b', 'Connection', 'x-res-c', 'x-res-d'] + ); + + const headers = Object.create(null); + Object.assign(headers, { + 'x-res-a': [ 'AAA', 'BBB', 'CCC' ], + 'x-res-b': [ 'DDD', 'EEE', 'FFF', 'GGG' ], + 'connection': 'close', + 'x-res-c': [ 'HHH', 'III' ], + 'x-res-d': [ 'JJJ', 'KKK', 'LLL' ] + }); + assert.deepStrictEqual(res.getHeaders(), headers); + }); + + req.resume(); + } + )); + +server.listen(0, common.mustCall(() => { + const req = request({ + host: '127.0.0.1', + port: server.address().port, + path: '/', + method: 'POST', + headers: { + 'connection': 'close', + 'x-req-a': 'aaa', + 'X-Req-a': 'bbb', + 'X-Req-b': ['ccc', 'ddd'] + }, + uniqueHeaders: ['x-req-b', 'x-req-y'] + }, common.mustCall((res) => { + assert.deepStrictEqual(res.rawHeaders, [ + 'X-Res-a', 'AAA', + 'X-Res-a', 'BBB', + 'X-Res-a', 'CCC', + 'X-Res-b', 'DDD; EEE; FFF; GGG', + 'Connection', 'close', + 'x-res-c', 'HHH', + 'x-res-c', 'III', + 'x-res-d', 'JJJ; KKK; LLL', + 'Transfer-Encoding', 'chunked', + ]); + assert.deepStrictEqual(res.headers, { + 'x-res-a': 'AAA, BBB, CCC', + 'x-res-b': 'DDD; EEE; FFF; GGG', + 'connection': 'close', + 'x-res-c': 'HHH, III', + 'x-res-d': 'JJJ; KKK; LLL', + 'transfer-encoding': 'chunked' + }); + assert.deepStrictEqual(res.headersDistinct, { + 'x-res-a': [ 'AAA', 'BBB', 'CCC' ], + 'x-res-b': [ 'DDD; EEE; FFF; GGG' ], + 'connection': [ 'close' ], + 'x-res-c': [ 'HHH', 'III' ], + 'x-res-d': [ 'JJJ; KKK; LLL' ], + 'transfer-encoding': [ 'chunked' ] + }); + + res.on('end', function() { + assert.deepStrictEqual(res.rawTrailers, [ + 'x-res-x', 'XXX', + 'x-res-x', 'YYY', + 'X-Res-Y', 'ZZZ; WWW', + ]); + assert.deepStrictEqual( + res.trailers, + { 'x-res-x': 'XXX, YYY', 'x-res-y': 'ZZZ; WWW' } + ); + assert.deepStrictEqual( + res.trailersDistinct, + { 'x-res-x': ['XXX', 'YYY'], 'x-res-y': ['ZZZ; WWW'] } + ); + server.close(); + }); + res.resume(); + })); + + req.setHeader('X-Req-a', ['eee', 'fff']); + req.appendHeader('X-req-a', ['ggg', 'hhh']); + req.setHeader('X-Req-b', ['iii', 'jjj']); + req.appendHeader('x-req-b', ['kkk', 'lll']); + + req.addTrailers({ + 'x-req-x': ['xxx', 'yyy'], + 'X-req-Y': ['zzz', 'www'] + }); + + req.write('BODY'); + + req.end(); +})); diff --git a/test/parallel/test-http-parser-timeout-reset.js b/test/parallel/test-http-parser-timeout-reset.js index ffc3d81c381b7b..c51daffaafb056 100644 --- a/test/parallel/test-http-parser-timeout-reset.js +++ b/test/parallel/test-http-parser-timeout-reset.js @@ -27,7 +27,6 @@ const server = net.createServer((socket) => { {}, 0, 0, - 1e3 ); parser[HTTPParser.kOnTimeout] = common.mustNotCall(); diff --git a/test/parallel/test-http-server-close-all.js b/test/parallel/test-http-server-close-all.js new file mode 100644 index 00000000000000..cf7d90b868162d --- /dev/null +++ b/test/parallel/test-http-server-close-all.js @@ -0,0 +1,59 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); + +const { createServer } = require('http'); +const { connect } = require('net'); + +let connections = 0; + +const server = createServer(common.mustCall(function(req, res) { + res.writeHead(200, { Connection: 'keep-alive' }); + res.end(); +}), { + headersTimeout: 0, + keepAliveTimeout: 0, + requestTimeout: common.platformTimeout(60000), +}); + +server.on('connection', function() { + connections++; +}); + +server.listen(0, function() { + const port = server.address().port; + + // Create a first request but never finish it + const client1 = connect(port); + + client1.on('connect', common.mustCall(() => { + // Create a second request, let it finish but leave the connection opened using HTTP keep-alive + const client2 = connect(port); + let response = ''; + + client2.on('data', common.mustCall((chunk) => { + response += chunk.toString('utf-8'); + + if (response.endsWith('0\r\n\r\n')) { + assert(response.startsWith('HTTP/1.1 200 OK\r\nConnection: keep-alive')); + assert.strictEqual(connections, 2); + + server.closeAllConnections(); + server.close(common.mustCall()); + + // This timer should never go off as the server.close should shut everything down + setTimeout(common.mustNotCall(), common.platformTimeout(1500)).unref(); + } + })); + + client2.on('close', common.mustCall()); + + client2.write('GET / HTTP/1.1\r\n\r\n'); + })); + + client1.on('close', common.mustCall()); + + client1.on('error', () => {}); + + client1.write('GET / HTTP/1.1'); +}); diff --git a/test/parallel/test-http-server-close-idle.js b/test/parallel/test-http-server-close-idle.js new file mode 100644 index 00000000000000..5218212996b159 --- /dev/null +++ b/test/parallel/test-http-server-close-idle.js @@ -0,0 +1,71 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); + +const { createServer } = require('http'); +const { connect } = require('net'); + +let connections = 0; + +const server = createServer(common.mustCall(function(req, res) { + res.writeHead(200, { Connection: 'keep-alive' }); + res.end(); +}), { + headersTimeout: 0, + keepAliveTimeout: 0, + requestTimeout: common.platformTimeout(60000), +}); + +server.on('connection', function() { + connections++; +}); + +server.listen(0, function() { + const port = server.address().port; + let client1Closed = false; + let client2Closed = false; + + // Create a first request but never finish it + const client1 = connect(port); + + client1.on('connect', common.mustCall(() => { + // Create a second request, let it finish but leave the connection opened using HTTP keep-alive + const client2 = connect(port); + let response = ''; + + client2.on('data', common.mustCall((chunk) => { + response += chunk.toString('utf-8'); + + if (response.endsWith('0\r\n\r\n')) { + assert(response.startsWith('HTTP/1.1 200 OK\r\nConnection: keep-alive')); + assert.strictEqual(connections, 2); + + server.closeIdleConnections(); + server.close(common.mustCall()); + + // Check that only the idle connection got closed + setTimeout(common.mustCall(() => { + assert(!client1Closed); + assert(client2Closed); + + server.closeAllConnections(); + server.close(common.mustCall()); + }), common.platformTimeout(500)).unref(); + } + })); + + client2.on('close', common.mustCall(() => { + client2Closed = true; + })); + + client2.write('GET / HTTP/1.1\r\n\r\n'); + })); + + client1.on('close', common.mustCall(() => { + client1Closed = true; + })); + + client1.on('error', () => {}); + + client1.write('GET / HTTP/1.1'); +}); diff --git a/test/parallel/test-http-server-headers-timeout-delayed-headers.js b/test/parallel/test-http-server-headers-timeout-delayed-headers.js new file mode 100644 index 00000000000000..dc0efc5855ad02 --- /dev/null +++ b/test/parallel/test-http-server-headers-timeout-delayed-headers.js @@ -0,0 +1,61 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { createServer } = require('http'); +const { connect } = require('net'); + +// This test validates that the server returns 408 +// after server.headersTimeout if the client +// pauses before start sending the request. + +let sendDelayedRequestHeaders; +const headersTimeout = common.platformTimeout(2000); +const server = createServer({ + headersTimeout, + requestTimeout: 0, + keepAliveTimeout: 0, + connectionsCheckingInterval: headersTimeout / 4, +}, common.mustNotCall()); +server.on('connection', common.mustCall(() => { + assert.strictEqual(typeof sendDelayedRequestHeaders, 'function'); + sendDelayedRequestHeaders(); +})); + +assert.strictEqual(server.headersTimeout, headersTimeout); + +// Check that timeout event is not triggered +server.once('timeout', common.mustNotCall((socket) => { + socket.destroy(); +})); + +server.listen(0, common.mustCall(() => { + const client = connect(server.address().port); + let response = ''; + + client.on('data', common.mustCall((chunk) => { + response += chunk.toString('utf-8'); + })); + + const errOrEnd = common.mustSucceed(function(err) { + assert.strictEqual( + response, + 'HTTP/1.1 408 Request Timeout\r\nConnection: close\r\n\r\n' + ); + server.close(); + }); + + client.on('end', errOrEnd); + client.on('error', errOrEnd); + + client.resume(); + + sendDelayedRequestHeaders = common.mustCall(() => { + setTimeout(() => { + client.write('POST / HTTP/1.1\r\n'); + client.write('Content-Length: 20\r\n'); + client.write('Connection: close\r\n\r\n'); + client.write('12345678901234567890\r\n\r\n'); + }, common.platformTimeout(headersTimeout * 2)).unref(); + }); +})); diff --git a/test/parallel/test-http-server-headers-timeout-interrupted-headers.js b/test/parallel/test-http-server-headers-timeout-interrupted-headers.js new file mode 100644 index 00000000000000..ce38123c15b684 --- /dev/null +++ b/test/parallel/test-http-server-headers-timeout-interrupted-headers.js @@ -0,0 +1,61 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { createServer } = require('http'); +const { connect } = require('net'); + +// This test validates that the server returns 408 +// after server.headersTimeout if the client +// pauses sending in the middle of a header. + +let sendDelayedRequestHeaders; +const headersTimeout = common.platformTimeout(2000); +const server = createServer({ + headersTimeout, + requestTimeout: 0, + keepAliveTimeout: 0, + connectionsCheckingInterval: headersTimeout / 4, +}, common.mustNotCall()); +server.on('connection', common.mustCall(() => { + assert.strictEqual(typeof sendDelayedRequestHeaders, 'function'); + sendDelayedRequestHeaders(); +})); + +assert.strictEqual(server.headersTimeout, headersTimeout); + +// Check that timeout event is not triggered +server.once('timeout', common.mustNotCall((socket) => { + socket.destroy(); +})); + +server.listen(0, common.mustCall(() => { + const client = connect(server.address().port); + let response = ''; + + client.on('data', common.mustCall((chunk) => { + response += chunk.toString('utf-8'); + })); + + const errOrEnd = common.mustSucceed(function(err) { + assert.strictEqual( + response, + 'HTTP/1.1 408 Request Timeout\r\nConnection: close\r\n\r\n' + ); + server.close(); + }); + + client.on('end', errOrEnd); + client.on('error', errOrEnd); + + client.resume(); + client.write('GET / HTTP/1.1\r\n'); + client.write('Connection: close\r\n'); + client.write('X-CRASH: '); + + sendDelayedRequestHeaders = common.mustCall(() => { + setTimeout(() => { + client.write('1234567890\r\n\r\n'); + }, common.platformTimeout(headersTimeout * 2)).unref(); + }); +})); diff --git a/test/parallel/test-http-server-headers-timeout-keepalive.js b/test/parallel/test-http-server-headers-timeout-keepalive.js new file mode 100644 index 00000000000000..ba82cb0e0c9cb1 --- /dev/null +++ b/test/parallel/test-http-server-headers-timeout-keepalive.js @@ -0,0 +1,100 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { createServer } = require('http'); +const { connect } = require('net'); + +// This test validates that the server returns 408 +// after server.headersTimeout if the client +// does not send headers before the timeout, and +// that keep alive works properly. + +function performRequestWithDelay(client, firstDelay, secondDelay, closeAfter) { + client.resume(); + client.write('GET / HTTP/1.1\r\n'); + + setTimeout(() => { + client.write('Connection: '); + }, firstDelay).unref(); + + // Complete the request + setTimeout(() => { + client.write(`${closeAfter ? 'close' : 'keep-alive'}\r\n\r\n`); + }, firstDelay + secondDelay).unref(); +} + +const headersTimeout = common.platformTimeout(5000); +const server = createServer({ + headersTimeout, + requestTimeout: 0, + keepAliveTimeout: 0, + connectionsCheckingInterval: headersTimeout / 4, +}, common.mustCallAtLeast((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end(); +})); + +assert.strictEqual(server.headersTimeout, headersTimeout); + +// Check that timeout event is not triggered +server.once('timeout', common.mustNotCall((socket) => { + socket.destroy(); +})); + +server.listen(0, common.mustCall(() => { + const client = connect(server.address().port); + let second = false; + let response = ''; + + client.on('data', common.mustCallAtLeast((chunk) => { + response += chunk.toString('utf-8'); + + // First response has ended + if (!second && response.endsWith('\r\n\r\n')) { + assert.strictEqual( + response.split('\r\n')[0], + 'HTTP/1.1 200 OK' + ); + + const defer = headersTimeout * 1.5; + + // Wait some time to make sure headersTimeout + // does not interfere with keep alive + setTimeout(() => { + response = ''; + second = true; + + // Perform a second request expected to finish after headersTimeout + performRequestWithDelay( + client, + headersTimeout / 5, + headersTimeout, + true + ); + }, defer).unref(); + } + }, 1)); + + const errOrEnd = common.mustCall(function(err) { + assert.strictEqual(second, true); + assert.strictEqual( + response, + // Empty because of https://github.com/nodejs/node/commit/e8d7fedf7cad6e612e4f2e0456e359af57608ac7 + // 'HTTP/1.1 408 Request Timeout\r\nConnection: close\r\n\r\n' + '' + ); + server.close(); + }); + + client.on('error', errOrEnd); + client.on('end', errOrEnd); + + // Perform a second request expected to finish before headersTimeout + performRequestWithDelay( + client, + headersTimeout / 5, + headersTimeout / 5, + false + ); +})); diff --git a/test/parallel/test-http-server-headers-timeout-pipelining.js b/test/parallel/test-http-server-headers-timeout-pipelining.js new file mode 100644 index 00000000000000..658bdf9a3aaf1c --- /dev/null +++ b/test/parallel/test-http-server-headers-timeout-pipelining.js @@ -0,0 +1,76 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { createServer } = require('http'); +const { connect } = require('net'); + +// This test validates that the server returns 408 +// after server.requestTimeout if the client +// does not complete a request when using pipelining. + +const headersTimeout = common.platformTimeout(2000); +const server = createServer({ + headersTimeout, + requestTimeout: 0, + keepAliveTimeout: 0, + connectionsCheckingInterval: headersTimeout / 4, +}, common.mustCallAtLeast((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end(); +})); + +// 0 seconds is the default +assert.strictEqual(server.headersTimeout, headersTimeout); + +// Make sure requestTimeout and keepAliveTimeout +// are big enough for the headersTimeout. +server.requestTimeout = 0; +server.keepAliveTimeout = 0; + +server.listen(0, common.mustCall(() => { + const client = connect(server.address().port); + let second = false; + let response = ''; + + client.on('data', common.mustCallAtLeast((chunk) => { + response += chunk.toString('utf-8'); + + // First response has ended + if (!second && response.endsWith('\r\n\r\n')) { + assert.strictEqual( + response.split('\r\n')[0], + 'HTTP/1.1 200 OK' + ); + + response = ''; + second = true; + } + }, 1)); + + const errOrEnd = common.mustCall(function(err) { + if (!second) { + return; + } + + assert.strictEqual( + response, + // Empty because of https://github.com/nodejs/node/commit/e8d7fedf7cad6e612e4f2e0456e359af57608ac7 + // 'HTTP/1.1 408 Request Timeout\r\nConnection: close\r\n\r\n' + '' + ); + server.close(); + }); + + client.on('error', errOrEnd); + client.on('end', errOrEnd); + + // Send two requests using pipelining. Delay before finishing the second one + client.resume(); + client.write('GET / HTTP/1.1\r\nConnection: keep-alive\r\n\r\nGET / HTTP/1.1\r\nConnection: '); + + // Complete the request + setTimeout(() => { + client.write('close\r\n\r\n'); + }, headersTimeout * 1.5).unref(); +})); diff --git a/test/parallel/test-http-server-request-timeout-delayed-body.js b/test/parallel/test-http-server-request-timeout-delayed-body.js index ec8ebbb5cd18eb..91cb5a851bcfe3 100644 --- a/test/parallel/test-http-server-request-timeout-delayed-body.js +++ b/test/parallel/test-http-server-request-timeout-delayed-body.js @@ -10,7 +10,13 @@ const { connect } = require('net'); // pauses before start sending the body. let sendDelayedRequestBody; -const server = createServer(common.mustCall((req, res) => { +const requestTimeout = common.platformTimeout(2000); +const server = createServer({ + headersTimeout: 0, + requestTimeout, + keepAliveTimeout: 0, + connectionsCheckingInterval: requestTimeout / 4, +}, common.mustCall((req, res) => { let body = ''; req.setEncoding('utf-8'); @@ -28,10 +34,6 @@ const server = createServer(common.mustCall((req, res) => { sendDelayedRequestBody(); })); -// 0 seconds is the default -assert.strictEqual(server.requestTimeout, 0); -const requestTimeout = common.platformTimeout(1000); -server.requestTimeout = requestTimeout; assert.strictEqual(server.requestTimeout, requestTimeout); server.listen(0, common.mustCall(() => { @@ -51,11 +53,10 @@ server.listen(0, common.mustCall(() => { sendDelayedRequestBody = common.mustCall(() => { setTimeout(() => { client.write('12345678901234567890\r\n\r\n'); - }, common.platformTimeout(2000)).unref(); + }, common.platformTimeout(requestTimeout * 2)).unref(); }); - const errOrEnd = common.mustCall(function(err) { - console.log(err); + const errOrEnd = common.mustSucceed(function(err) { assert.strictEqual( response, 'HTTP/1.1 408 Request Timeout\r\nConnection: close\r\n\r\n' diff --git a/test/parallel/test-http-server-request-timeout-delayed-headers.js b/test/parallel/test-http-server-request-timeout-delayed-headers.js index f5d85b70514950..ae4260ddeefa18 100644 --- a/test/parallel/test-http-server-request-timeout-delayed-headers.js +++ b/test/parallel/test-http-server-request-timeout-delayed-headers.js @@ -8,16 +8,20 @@ const { connect } = require('net'); // This test validates that the server returns 408 // after server.requestTimeout if the client // pauses before start sending the request. + let sendDelayedRequestHeaders; -const server = createServer(common.mustNotCall()); +const requestTimeout = common.platformTimeout(2000); +const server = createServer({ + headersTimeout: 0, + requestTimeout, + keepAliveTimeout: 0, + connectionsCheckingInterval: requestTimeout / 4, +}, common.mustNotCall()); server.on('connection', common.mustCall(() => { assert.strictEqual(typeof sendDelayedRequestHeaders, 'function'); sendDelayedRequestHeaders(); })); -// 0 seconds is the default -assert.strictEqual(server.requestTimeout, 0); -const requestTimeout = common.platformTimeout(1000); -server.requestTimeout = requestTimeout; + assert.strictEqual(server.requestTimeout, requestTimeout); server.listen(0, common.mustCall(() => { @@ -28,8 +32,7 @@ server.listen(0, common.mustCall(() => { response += chunk.toString('utf-8'); })); - const errOrEnd = common.mustCall(function(err) { - console.log(err); + const errOrEnd = common.mustSucceed(function(err) { assert.strictEqual( response, 'HTTP/1.1 408 Request Timeout\r\nConnection: close\r\n\r\n' @@ -48,6 +51,6 @@ server.listen(0, common.mustCall(() => { client.write('Content-Length: 20\r\n'); client.write('Connection: close\r\n\r\n'); client.write('12345678901234567890\r\n\r\n'); - }, common.platformTimeout(2000)).unref(); + }, common.platformTimeout(requestTimeout * 2)).unref(); }); })); diff --git a/test/parallel/test-http-server-request-timeout-interrupted-body.js b/test/parallel/test-http-server-request-timeout-interrupted-body.js index 7d70351fdc0833..3b147693d97550 100644 --- a/test/parallel/test-http-server-request-timeout-interrupted-body.js +++ b/test/parallel/test-http-server-request-timeout-interrupted-body.js @@ -8,8 +8,15 @@ const { connect } = require('net'); // This test validates that the server returns 408 // after server.requestTimeout if the client // pauses sending in the middle of the body. + let sendDelayedRequestBody; -const server = createServer(common.mustCall((req, res) => { +const requestTimeout = common.platformTimeout(2000); +const server = createServer({ + headersTimeout: 0, + requestTimeout, + keepAliveTimeout: 0, + connectionsCheckingInterval: requestTimeout / 4, +}, common.mustCall((req, res) => { let body = ''; req.setEncoding('utf-8'); @@ -27,10 +34,6 @@ const server = createServer(common.mustCall((req, res) => { sendDelayedRequestBody(); })); -// 0 seconds is the default -assert.strictEqual(server.requestTimeout, 0); -const requestTimeout = common.platformTimeout(1000); -server.requestTimeout = requestTimeout; assert.strictEqual(server.requestTimeout, requestTimeout); server.listen(0, common.mustCall(() => { @@ -41,8 +44,7 @@ server.listen(0, common.mustCall(() => { response += chunk.toString('utf-8'); })); - const errOrEnd = common.mustCall(function(err) { - console.log(err); + const errOrEnd = common.mustSucceed(function(err) { assert.strictEqual( response, 'HTTP/1.1 408 Request Timeout\r\nConnection: close\r\n\r\n' @@ -63,6 +65,6 @@ server.listen(0, common.mustCall(() => { sendDelayedRequestBody = common.mustCall(() => { setTimeout(() => { client.write('1234567890\r\n\r\n'); - }, common.platformTimeout(2000)).unref(); + }, common.platformTimeout(requestTimeout * 2)).unref(); }); })); diff --git a/test/parallel/test-http-server-request-timeout-interrupted-headers.js b/test/parallel/test-http-server-request-timeout-interrupted-headers.js index 1fa8946ffae70f..45c773996be209 100644 --- a/test/parallel/test-http-server-request-timeout-interrupted-headers.js +++ b/test/parallel/test-http-server-request-timeout-interrupted-headers.js @@ -8,17 +8,20 @@ const { connect } = require('net'); // This test validates that the server returns 408 // after server.requestTimeout if the client // pauses sending in the middle of a header. + let sendDelayedRequestHeaders; -const server = createServer(common.mustNotCall()); +const requestTimeout = common.platformTimeout(2000); +const server = createServer({ + headersTimeout: 0, + requestTimeout, + keepAliveTimeout: 0, + connectionsCheckingInterval: requestTimeout / 4, +}, common.mustNotCall()); server.on('connection', common.mustCall(() => { assert.strictEqual(typeof sendDelayedRequestHeaders, 'function'); sendDelayedRequestHeaders(); })); -// 120 seconds is the default -assert.strictEqual(server.requestTimeout, 0); -const requestTimeout = common.platformTimeout(1000); -server.requestTimeout = requestTimeout; assert.strictEqual(server.requestTimeout, requestTimeout); server.listen(0, common.mustCall(() => { @@ -29,8 +32,7 @@ server.listen(0, common.mustCall(() => { response += chunk.toString('utf-8'); })); - const errOrEnd = common.mustCall(function(err) { - console.log(err); + const errOrEnd = common.mustSucceed(function(err) { assert.strictEqual( response, 'HTTP/1.1 408 Request Timeout\r\nConnection: close\r\n\r\n' @@ -49,6 +51,6 @@ server.listen(0, common.mustCall(() => { sendDelayedRequestHeaders = common.mustCall(() => { setTimeout(() => { client.write('1234567890\r\n\r\n'); - }, common.platformTimeout(2000)).unref(); + }, common.platformTimeout(requestTimeout * 2)).unref(); }); })); diff --git a/test/parallel/test-http-server-request-timeout-keepalive.js b/test/parallel/test-http-server-request-timeout-keepalive.js index 77fde867e9b540..fd460b86bd1ca9 100644 --- a/test/parallel/test-http-server-request-timeout-keepalive.js +++ b/test/parallel/test-http-server-request-timeout-keepalive.js @@ -8,36 +8,33 @@ const { connect } = require('net'); // This test validates that the server returns 408 // after server.requestTimeout if the client // does not complete a request, and that keep alive -// works properly +// works properly. -function performRequestWithDelay(client, firstDelay, secondDelay) { +function performRequestWithDelay(client, firstDelay, secondDelay, closeAfter) { client.resume(); client.write('GET / HTTP/1.1\r\n'); - firstDelay = common.platformTimeout(firstDelay); - secondDelay = common.platformTimeout(secondDelay); - - console.log('performRequestWithDelay', firstDelay, secondDelay); - setTimeout(() => { client.write('Connection: '); }, firstDelay).unref(); // Complete the request setTimeout(() => { - client.write('keep-alive\r\n\r\n'); + client.write(`${closeAfter ? 'close' : 'keep-alive'}\r\n\r\n`); }, firstDelay + secondDelay).unref(); } -const server = createServer(common.mustCallAtLeast((req, res) => { +const requestTimeout = common.platformTimeout(5000); +const server = createServer({ + headersTimeout: 0, + requestTimeout, + keepAliveTimeout: 0, + connectionsCheckingInterval: requestTimeout / 4 +}, common.mustCallAtLeast((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end(); })); -// 0 seconds is the default -assert.strictEqual(server.requestTimeout, 0); -const requestTimeout = common.platformTimeout(1000); -server.requestTimeout = requestTimeout; assert.strictEqual(server.requestTimeout, requestTimeout); // Make sure keepAliveTimeout is big enough for the requestTimeout. @@ -58,9 +55,7 @@ server.listen(0, common.mustCall(() => { 'HTTP/1.1 200 OK' ); - const defer = common.platformTimeout(server.requestTimeout * 1.5); - - console.log('defer by', defer); + const defer = requestTimeout * 1.5; // Wait some time to make sure requestTimeout // does not interfere with keep alive @@ -69,13 +64,17 @@ server.listen(0, common.mustCall(() => { second = true; // Perform a second request expected to finish after requestTimeout - performRequestWithDelay(client, 1000, 3000); + performRequestWithDelay( + client, + requestTimeout / 5, + requestTimeout * 2, + true + ); }, defer).unref(); } }, 1)); const errOrEnd = common.mustCall(function(err) { - console.log(err); assert.strictEqual(second, true); assert.strictEqual( response, @@ -89,6 +88,11 @@ server.listen(0, common.mustCall(() => { client.on('error', errOrEnd); client.on('end', errOrEnd); - // Perform a second request expected to finish before requestTimeout - performRequestWithDelay(client, 50, 500); + // Perform a first request which is completed immediately + performRequestWithDelay( + client, + requestTimeout / 5, + requestTimeout / 5, + false + ); })); diff --git a/test/parallel/test-http-server-request-timeout-pipelining.js b/test/parallel/test-http-server-request-timeout-pipelining.js new file mode 100644 index 00000000000000..2647268b11fc87 --- /dev/null +++ b/test/parallel/test-http-server-request-timeout-pipelining.js @@ -0,0 +1,70 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { createServer } = require('http'); +const { connect } = require('net'); + +// This test validates that the server returns 408 +// after server.requestTimeout if the client +// does not complete a request when using pipelining. + +const requestTimeout = common.platformTimeout(2000); +const server = createServer({ + headersTimeout: 0, + requestTimeout, + keepAliveTimeout: 0, + connectionsCheckingInterval: requestTimeout / 4 +}, common.mustCallAtLeast((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end(); +})); + +assert.strictEqual(server.requestTimeout, requestTimeout); + +server.listen(0, common.mustCall(() => { + const client = connect(server.address().port); + let second = false; + let response = ''; + + client.on('data', common.mustCallAtLeast((chunk) => { + response += chunk.toString('utf-8'); + + // First response has ended + if (!second && response.endsWith('\r\n\r\n')) { + assert.strictEqual( + response.split('\r\n')[0], + 'HTTP/1.1 200 OK' + ); + + response = ''; + second = true; + } + }, 1)); + + const errOrEnd = common.mustCall(function(err) { + if (!second) { + return; + } + + assert.strictEqual( + response, + // Empty because of https://github.com/nodejs/node/commit/e8d7fedf7cad6e612e4f2e0456e359af57608ac7 + // 'HTTP/1.1 408 Request Timeout\r\nConnection: close\r\n\r\n' + '' + ); + server.close(); + }); + + client.on('error', errOrEnd); + client.on('end', errOrEnd); + + // Send two requests using pipelining. Delay before finishing the second one + client.resume(); + client.write('GET / HTTP/1.1\r\nConnection: keep-alive\r\n\r\nGET / HTTP/1.1\r\nConnection: '); + + // Complete the request + setTimeout(() => { + client.write('close\r\n\r\n'); + }, requestTimeout * 2).unref(); +})); diff --git a/test/parallel/test-http-server-request-timeout-upgrade.js b/test/parallel/test-http-server-request-timeout-upgrade.js index 87e8dbab131631..0d95a8b22c2b04 100644 --- a/test/parallel/test-http-server-request-timeout-upgrade.js +++ b/test/parallel/test-http-server-request-timeout-upgrade.js @@ -8,16 +8,18 @@ const { connect } = require('net'); // This test validates that the requestTimeoout // is disabled after the connection is upgraded. let sendDelayedRequestHeaders; -const server = createServer(common.mustNotCall()); +const requestTimeout = common.platformTimeout(2000); +const server = createServer({ + headersTimeout: 0, + requestTimeout, + keepAliveTimeout: 0, + connectionsCheckingInterval: requestTimeout / 4 +}, common.mustNotCall()); server.on('connection', common.mustCall(() => { assert.strictEqual(typeof sendDelayedRequestHeaders, 'function'); sendDelayedRequestHeaders(); })); -// 0 seconds is the default -assert.strictEqual(server.requestTimeout, 0); -const requestTimeout = common.platformTimeout(1000); -server.requestTimeout = requestTimeout; assert.strictEqual(server.requestTimeout, requestTimeout); server.on('upgrade', common.mustCall((req, socket, head) => { @@ -56,6 +58,6 @@ server.listen(0, common.mustCall(() => { setTimeout(() => { client.write('12345678901234567890'); client.end(); - }, common.platformTimeout(2000)).unref(); + }, requestTimeout * 2).unref(); }); })); diff --git a/test/parallel/test-http-server-request-timeouts-mixed.js b/test/parallel/test-http-server-request-timeouts-mixed.js new file mode 100644 index 00000000000000..44c8d03e3c17ae --- /dev/null +++ b/test/parallel/test-http-server-request-timeouts-mixed.js @@ -0,0 +1,131 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { createServer } = require('http'); +const { connect } = require('net'); + +// This test validates that request are correct checked for both requests and headers timeout in various situations. + +const requestBodyPart1 = 'POST / HTTP/1.1\r\nContent-Length: 20\r\n'; +const requestBodyPart2 = 'Connection: close\r\n\r\n1234567890'; +const requestBodyPart3 = '1234567890'; + +const responseOk = 'HTTP/1.1 200 OK\r\n'; +const responseTimeout = 'HTTP/1.1 408 Request Timeout\r\n'; + +const headersTimeout = common.platformTimeout(2000); +const connectionsCheckingInterval = headersTimeout / 4; + +const server = createServer({ + headersTimeout, + requestTimeout: headersTimeout * 2, + keepAliveTimeout: 0, + connectionsCheckingInterval +}, common.mustCall((req, res) => { + req.resume(); + + req.on('end', () => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end(); + }); +}, 4)); + +assert.strictEqual(server.headersTimeout, headersTimeout); +assert.strictEqual(server.requestTimeout, headersTimeout * 2); + +let i = 0; +function createClient(server) { + const request = { + index: i++, + client: connect(server.address().port), + response: '', + completed: false + }; + + request.client.on('data', common.mustCallAtLeast((chunk) => { + request.response += chunk.toString('utf-8'); + })); + + request.client.on('end', common.mustCall(() => { + request.completed = true; + })); + + request.client.on('error', common.mustNotCall()); + + request.client.resume(); + + return request; +} + +server.listen(0, common.mustCall(() => { + const request1 = createClient(server); + let request2; + let request3; + let request4; + let request5; + + // Send the first request and stop before the body + request1.client.write(requestBodyPart1); + + // After a little while send two new requests + setTimeout(() => { + request2 = createClient(server); + request3 = createClient(server); + + // Send the second request, stop in the middle of the headers + request2.client.write(requestBodyPart1); + // Send the second request, stop in the middle of the headers + request3.client.write(requestBodyPart1); + }, headersTimeout * 0.2); + + // After another little while send the last two new requests + setTimeout(() => { + request4 = createClient(server); + request5 = createClient(server); + + // Send the fourth request, stop in the middle of the headers + request4.client.write(requestBodyPart1); + // Send the fifth request, stop in the middle of the headers + request5.client.write(requestBodyPart1); + }, headersTimeout * 0.6); + + setTimeout(() => { + // Finish the first request + request1.client.write(requestBodyPart2 + requestBodyPart3); + + // Complete headers for all requests but second + request3.client.write(requestBodyPart2); + request4.client.write(requestBodyPart2); + request5.client.write(requestBodyPart2); + }, headersTimeout * 0.8); + + setTimeout(() => { + // After the first timeout, the first request should have been completed and second timedout + assert(request1.completed); + assert(request2.completed); + assert(!request3.completed); + assert(!request4.completed); + assert(!request5.completed); + + assert(request1.response.startsWith(responseOk)); + assert(request2.response.startsWith(responseTimeout)); // It is expired due to headersTimeout + }, headersTimeout * 1.2 + connectionsCheckingInterval); + + setTimeout(() => { + // Complete the body for the fourth request + request4.client.write(requestBodyPart3); + }, headersTimeout * 1.5); + + setTimeout(() => { + // All request should be completed now, either with 200 or 408 + assert(request3.completed); + assert(request4.completed); + assert(request5.completed); + + assert(request3.response.startsWith(responseTimeout)); // It is expired due to requestTimeout + assert(request4.response.startsWith(responseOk)); + assert(request5.response.startsWith(responseTimeout)); // It is expired due to requestTimeout + server.close(); + }, headersTimeout * 3 + connectionsCheckingInterval); +})); diff --git a/test/parallel/test-http-set-trailers.js b/test/parallel/test-http-set-trailers.js index 2197de9b0b229a..17a936f528e96f 100644 --- a/test/parallel/test-http-set-trailers.js +++ b/test/parallel/test-http-set-trailers.js @@ -96,7 +96,7 @@ const server = http.createServer((req, res) => { }); server.listen(0, () => { Promise.all([testHttp10, testHttp11, testClientTrailers] - .map(util.promisify) + .map((f) => util.promisify(f)) .map((f) => f(server.address().port))) .then(() => server.close()); }); diff --git a/test/parallel/test-http-slow-headers-keepalive-multiple-requests.js b/test/parallel/test-http-slow-headers-keepalive-multiple-requests.js deleted file mode 100644 index 9ea76e8e56e952..00000000000000 --- a/test/parallel/test-http-slow-headers-keepalive-multiple-requests.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -const common = require('../common'); -const http = require('http'); -const net = require('net'); -const { finished } = require('stream'); - -const headers = - 'GET / HTTP/1.1\r\n' + - 'Host: localhost\r\n' + - 'Connection: keep-alive\r\n' + - 'Agent: node\r\n'; - -const baseTimeout = 1000; - -const server = http.createServer(common.mustCall((req, res) => { - req.resume(); - res.writeHead(200); - res.end(); -}, 2)); - -server.keepAliveTimeout = 10 * baseTimeout; -server.headersTimeout = baseTimeout; - -server.once('timeout', common.mustNotCall((socket) => { - socket.destroy(); -})); - -server.listen(0, () => { - const client = net.connect(server.address().port); - - // first request - client.write(headers); - client.write('\r\n'); - - setTimeout(() => { - // second request - client.write(headers); - // `headersTimeout` doesn't seem to fire if request - // is sent altogether. - setTimeout(() => { - client.write('\r\n'); - client.end(); - }, 10); - }, baseTimeout + 10); - - client.resume(); - finished(client, common.mustCall((err) => { - server.close(); - })); -}); diff --git a/test/parallel/test-http-slow-headers-keepalive.js b/test/parallel/test-http-slow-headers-keepalive.js deleted file mode 100644 index 4958d534ef77d4..00000000000000 --- a/test/parallel/test-http-slow-headers-keepalive.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -const common = require('../common'); -const http = require('http'); -const net = require('net'); -const { finished } = require('stream'); - -const headers = - 'GET / HTTP/1.1\r\n' + - 'Host: localhost\r\n' + - 'Connection: keep-alive\r\n' + - 'Agent: node\r\n'; - -let sendCharEvery = 1000; - -const server = http.createServer(common.mustCall((req, res) => { - res.writeHead(200); - res.end(); -})); - -// Pass a REAL env variable to shortening up the default -// value which is 40s otherwise this is useful for manual -// testing -if (!process.env.REAL) { - sendCharEvery = common.platformTimeout(10); - server.headersTimeout = 2 * sendCharEvery; -} - -server.once('timeout', common.mustCall((socket) => { - socket.destroy(); -})); - -server.listen(0, () => { - const client = net.connect(server.address().port); - client.write(headers); - // Finish the first request - client.write('\r\n'); - // second request - client.write(headers); - client.write('X-CRASH: '); - - const interval = setInterval(() => { - client.write('a'); - }, sendCharEvery); - - client.resume(); - finished(client, common.mustCall((err) => { - clearInterval(interval); - server.close(); - })); -}); diff --git a/test/parallel/test-http-slow-headers.js b/test/parallel/test-http-slow-headers.js deleted file mode 100644 index 25ee5b63e8c0e2..00000000000000 --- a/test/parallel/test-http-slow-headers.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -const common = require('../common'); -const assert = require('assert'); -const { createServer } = require('http'); -const { connect } = require('net'); -const { finished } = require('stream'); - -// This test validates that the 'timeout' event fires -// after server.headersTimeout. - -const headers = - 'GET / HTTP/1.1\r\n' + - 'Host: localhost\r\n' + - 'Agent: node\r\n'; - -const server = createServer(common.mustNotCall()); -let sendCharEvery = 1000; - -// 60 seconds is the default -assert.strictEqual(server.headersTimeout, 60 * 1000); - -// Pass a REAL env variable to shortening up the default -// value which is 40s otherwise this is useful for manual -// testing -if (!process.env.REAL) { - sendCharEvery = common.platformTimeout(10); - server.headersTimeout = 2 * sendCharEvery; -} - -server.once('timeout', common.mustCall((socket) => { - socket.destroy(); -})); - -server.listen(0, common.mustCall(() => { - const client = connect(server.address().port); - client.write(headers); - client.write('X-CRASH: '); - - const interval = setInterval(() => { - client.write('a'); - }, sendCharEvery); - - client.resume(); - - finished(client, common.mustCall((err) => { - clearInterval(interval); - server.close(); - })); -})); diff --git a/test/parallel/test-http2-compat-serverresponse-writehead-array.js b/test/parallel/test-http2-compat-serverresponse-writehead-array.js index c28f7329c1d0a1..1d0706f5ed945f 100644 --- a/test/parallel/test-http2-compat-serverresponse-writehead-array.js +++ b/test/parallel/test-http2-compat-serverresponse-writehead-array.js @@ -4,40 +4,92 @@ const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); -const h2 = require('http2'); - -// Http2ServerResponse.writeHead should support nested arrays - -const server = h2.createServer(); -server.listen(0, common.mustCall(() => { - const port = server.address().port; - server.once('request', common.mustCall((request, response) => { - const returnVal = response.writeHead(200, [ - ['foo', 'bar'], - ['ABC', 123], - ]); - assert.strictEqual(returnVal, response); - response.end(common.mustCall(() => { server.close(); })); +const http2 = require('http2'); + +// Http2ServerResponse.writeHead should support arrays and nested arrays + +{ + const server = http2.createServer(); + server.listen(0, common.mustCall(() => { + const port = server.address().port; + + server.once('request', common.mustCall((request, response) => { + const returnVal = response.writeHead(200, [ + ['foo', 'bar'], + ['ABC', 123], + ]); + assert.strictEqual(returnVal, response); + response.end(common.mustCall(() => { server.close(); })); + })); + + const client = http2.connect(`http://localhost:${port}`, common.mustCall(() => { + const request = client.request(); + + request.on('response', common.mustCall((headers) => { + assert.strictEqual(headers.foo, 'bar'); + assert.strictEqual(headers.abc, '123'); + assert.strictEqual(headers[':status'], 200); + }, 1)); + request.on('end', common.mustCall(() => { + client.close(); + })); + request.end(); + request.resume(); + })); })); +} + +{ + const server = http2.createServer(); + server.listen(0, common.mustCall(() => { + const port = server.address().port; + + server.once('request', common.mustCall((request, response) => { + const returnVal = response.writeHead(200, ['foo', 'bar', 'ABC', 123]); + assert.strictEqual(returnVal, response); + response.end(common.mustCall(() => { server.close(); })); + })); + + const client = http2.connect(`http://localhost:${port}`, common.mustCall(() => { + const request = client.request(); + + request.on('response', common.mustCall((headers) => { + assert.strictEqual(headers.foo, 'bar'); + assert.strictEqual(headers.abc, '123'); + assert.strictEqual(headers[':status'], 200); + }, 1)); + request.on('end', common.mustCall(() => { + client.close(); + })); + request.end(); + request.resume(); + })); + })); +} + +{ + const server = http2.createServer(); + server.listen(0, common.mustCall(() => { + const port = server.address().port; + + server.once('request', common.mustCall((request, response) => { + try { + response.writeHead(200, ['foo', 'bar', 'ABC', 123, 'extra']); + } catch (err) { + assert.strictEqual(err.code, 'ERR_INVALID_ARG_VALUE'); + } + + response.end(common.mustCall(() => { server.close(); })); + })); + + const client = http2.connect(`http://localhost:${port}`, common.mustCall(() => { + const request = client.request(); - const url = `http://localhost:${port}`; - const client = h2.connect(url, common.mustCall(() => { - const headers = { - ':path': '/', - ':method': 'GET', - ':scheme': 'http', - ':authority': `localhost:${port}` - }; - const request = client.request(headers); - request.on('response', common.mustCall((headers) => { - assert.strictEqual(headers.foo, 'bar'); - assert.strictEqual(headers.abc, '123'); - assert.strictEqual(headers[':status'], 200); - }, 1)); - request.on('end', common.mustCall(() => { - client.close(); + request.on('end', common.mustCall(() => { + client.close(); + })); + request.end(); + request.resume(); })); - request.end(); - request.resume(); })); -})); +} diff --git a/test/parallel/test-http2-create-client-secure-session.js b/test/parallel/test-http2-create-client-secure-session.js index 4303786b3e435d..2f7678cc689825 100644 --- a/test/parallel/test-http2-create-client-secure-session.js +++ b/test/parallel/test-http2-create-client-secure-session.js @@ -91,3 +91,9 @@ verifySecureSession( loadKey('agent1-cert.pem'), loadKey('ca1-cert.pem'), { servername: 'agent1' }); + +verifySecureSession( + loadKey('agent8-key.pem'), + loadKey('agent8-cert.pem'), + loadKey('fake-startcom-root-cert.pem'), + { servername: '' }); diff --git a/test/parallel/test-http2-https-fallback.js b/test/parallel/test-http2-https-fallback.js index a872d686d34f85..16879b05f12c8d 100644 --- a/test/parallel/test-http2-https-fallback.js +++ b/test/parallel/test-http2-https-fallback.js @@ -12,6 +12,7 @@ const { createSecureServer, connect } = require('http2'); const { get } = require('https'); const { parse } = require('url'); const { connect: tls } = require('tls'); +const { Duplex } = require('stream'); const countdown = (count, done) => () => --count === 0 && done(); @@ -115,6 +116,7 @@ function onSession(session, next) { ); server.once('unknownProtocol', common.mustCall((socket) => { + strictEqual(socket instanceof Duplex, true); socket.destroy(); })); diff --git a/test/parallel/test-http2-max-session-memory-leak.js b/test/parallel/test-http2-max-session-memory-leak.js index b066ca80bc5eab..476c605783c81c 100644 --- a/test/parallel/test-http2-max-session-memory-leak.js +++ b/test/parallel/test-http2-max-session-memory-leak.js @@ -9,7 +9,7 @@ const http2 = require('http2'); // mechanism. const bodyLength = 8192; -const maxSessionMemory = 1; // 1 MB +const maxSessionMemory = 1; // 1 MiB const requestCount = 1000; const server = http2.createServer({ maxSessionMemory }); diff --git a/test/parallel/test-http2-options-max-headers-exceeds-nghttp2.js b/test/parallel/test-http2-options-max-headers-exceeds-nghttp2.js index e503e226ef2da1..df3aefff11e7ad 100644 --- a/test/parallel/test-http2-options-max-headers-exceeds-nghttp2.js +++ b/test/parallel/test-http2-options-max-headers-exceeds-nghttp2.js @@ -1,9 +1,11 @@ +// Flags: --expose-internals 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if (!common.hasCrypto) common.skip('missing crypto'); const h2 = require('http2'); +const assert = require('assert'); +const { ServerHttp2Session } = require('internal/http2/core'); const server = h2.createServer(); @@ -44,3 +46,54 @@ server.listen(0, common.mustCall(() => { })); req.end(); })); + +{ + const options = { + maxSendHeaderBlockLength: 100000, + }; + + const server = h2.createServer(options); + + server.on('error', common.mustNotCall()); + server.on( + 'session', + common.mustCall((session) => { + assert.strictEqual(session instanceof ServerHttp2Session, true); + }), + ); + server.on( + 'stream', + common.mustCall((stream) => { + stream.additionalHeaders({ + // Greater than 65536 bytes + 'test-header': 'A'.repeat(90000), + }); + stream.respond(); + stream.end(); + }), + ); + + server.on( + 'sessionError', + common.mustCall((err, session) => { + assert.strictEqual(err.code, 'ERR_HTTP2_SESSION_ERROR'); + assert.strictEqual(err.name, 'Error'); + assert.strictEqual(err.message, 'Session closed with error code 9'); + assert.strictEqual(session instanceof ServerHttp2Session, true); + server.close(); + }), + ); + + server.listen( + 0, + common.mustCall(() => { + const client = h2.connect(`http://localhost:${server.address().port}`); + client.on('error', common.mustNotCall()); + + const req = client.request(); + req.on('response', common.mustNotCall()); + req.on('error', common.mustNotCall()); + req.end(); + }), + ); +} diff --git a/test/parallel/test-http2-sent-headers.js b/test/parallel/test-http2-sent-headers.js index 6ec674394336f2..6a492cf13c1ecd 100644 --- a/test/parallel/test-http2-sent-headers.js +++ b/test/parallel/test-http2-sent-headers.js @@ -29,8 +29,9 @@ server.listen(0, common.mustCall(() => { const client = h2.connect(`http://localhost:${server.address().port}`); const req = client.request(); - req.on('headers', common.mustCall((headers) => { + req.on('headers', common.mustCall((headers, flags) => { assert.strictEqual(headers[':status'], 102); + assert.strictEqual(typeof flags === 'number', true); })); assert.strictEqual(req.sentHeaders[':method'], 'GET'); diff --git a/test/parallel/test-http2-server-push-stream.js b/test/parallel/test-http2-server-push-stream.js index 7c75f66aef5e7d..54b996fa642eff 100644 --- a/test/parallel/test-http2-server-push-stream.js +++ b/test/parallel/test-http2-server-push-stream.js @@ -48,10 +48,11 @@ server.listen(0, common.mustCall(() => { assert.strictEqual(headers[':scheme'], 'http'); assert.strictEqual(headers[':path'], '/foobar'); assert.strictEqual(headers[':authority'], `localhost:${port}`); - stream.on('push', common.mustCall((headers) => { + stream.on('push', common.mustCall((headers, flags) => { assert.strictEqual(headers[':status'], 200); assert.strictEqual(headers['content-type'], 'text/html'); assert.strictEqual(headers['x-push-data'], 'pushed by server'); + assert.strictEqual(typeof flags === 'number', true); })); stream.on('aborted', common.mustNotCall()); // We have to read the data of the push stream to end gracefully. diff --git a/test/parallel/test-http2-server-sessionerror.js b/test/parallel/test-http2-server-sessionerror.js index bbd180937e1cd6..e266661b0cc2c3 100644 --- a/test/parallel/test-http2-server-sessionerror.js +++ b/test/parallel/test-http2-server-sessionerror.js @@ -6,7 +6,9 @@ const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const http2 = require('http2'); +const assert = require('assert'); const { kSocket } = require('internal/http2/util'); +const { ServerHttp2Session } = require('internal/http2/core'); const server = http2.createServer(); server.on('stream', common.mustNotCall()); @@ -14,6 +16,7 @@ server.on('stream', common.mustNotCall()); let test = 0; server.on('session', common.mustCall((session) => { + assert.strictEqual(session instanceof ServerHttp2Session, true); switch (++test) { case 1: server.on('error', common.mustNotCall()); @@ -32,6 +35,12 @@ server.on('session', common.mustCall((session) => { } }, 2)); +server.on('sessionError', common.mustCall((err, session) => { + assert.strictEqual(err.name, 'Error'); + assert.strictEqual(err.message, 'test'); + assert.strictEqual(session instanceof ServerHttp2Session, true); +}, 2)); + server.listen(0, common.mustCall(() => { const url = `http://localhost:${server.address().port}`; http2.connect(url) diff --git a/test/parallel/test-https-server-close-all.js b/test/parallel/test-https-server-close-all.js new file mode 100644 index 00000000000000..c388260db3b484 --- /dev/null +++ b/test/parallel/test-https-server-close-all.js @@ -0,0 +1,70 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +const { createServer } = require('https'); +const { connect } = require('tls'); + +const fixtures = require('../common/fixtures'); + +const options = { + key: fixtures.readKey('agent1-key.pem'), + cert: fixtures.readKey('agent1-cert.pem') +}; + +let connections = 0; + +const server = createServer(options, common.mustCall(function(req, res) { + res.writeHead(200, { Connection: 'keep-alive' }); + res.end(); +}), { + headersTimeout: 0, + keepAliveTimeout: 0, + requestTimeout: common.platformTimeout(60000), +}); + +server.on('connection', function() { + connections++; +}); + +server.listen(0, function() { + const port = server.address().port; + + // Create a first request but never finish it + const client1 = connect({ port, rejectUnauthorized: false }); + + client1.on('connect', common.mustCall(() => { + // Create a second request, let it finish but leave the connection opened using HTTP keep-alive + const client2 = connect({ port, rejectUnauthorized: false }); + let response = ''; + + client2.on('data', common.mustCall((chunk) => { + response += chunk.toString('utf-8'); + + if (response.endsWith('0\r\n\r\n')) { + assert(response.startsWith('HTTP/1.1 200 OK\r\nConnection: keep-alive')); + assert.strictEqual(connections, 2); + + server.closeAllConnections(); + server.close(common.mustCall()); + + // This timer should never go off as the server.close should shut everything down + setTimeout(common.mustNotCall(), common.platformTimeout(1500)).unref(); + } + })); + + client2.on('close', common.mustCall()); + + client2.write('GET / HTTP/1.1\r\n\r\n'); + })); + + client1.on('close', common.mustCall()); + + client1.on('error', () => {}); + + client1.write('GET / HTTP/1.1'); +}); diff --git a/test/parallel/test-https-server-close-idle.js b/test/parallel/test-https-server-close-idle.js new file mode 100644 index 00000000000000..eb5a8c3585bb96 --- /dev/null +++ b/test/parallel/test-https-server-close-idle.js @@ -0,0 +1,82 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +const { createServer } = require('https'); +const { connect } = require('tls'); + +const fixtures = require('../common/fixtures'); + +const options = { + key: fixtures.readKey('agent1-key.pem'), + cert: fixtures.readKey('agent1-cert.pem') +}; + +let connections = 0; + +const server = createServer(options, common.mustCall(function(req, res) { + res.writeHead(200, { Connection: 'keep-alive' }); + res.end(); +}), { + headersTimeout: 0, + keepAliveTimeout: 0, + requestTimeout: common.platformTimeout(60000), +}); + +server.on('connection', function() { + connections++; +}); + +server.listen(0, function() { + const port = server.address().port; + let client1Closed = false; + let client2Closed = false; + + // Create a first request but never finish it + const client1 = connect({ port, rejectUnauthorized: false }); + + client1.on('connect', common.mustCall(() => { + // Create a second request, let it finish but leave the connection opened using HTTP keep-alive + const client2 = connect({ port, rejectUnauthorized: false }); + let response = ''; + + client2.on('data', common.mustCall((chunk) => { + response += chunk.toString('utf-8'); + + if (response.endsWith('0\r\n\r\n')) { + assert(response.startsWith('HTTP/1.1 200 OK\r\nConnection: keep-alive')); + assert.strictEqual(connections, 2); + + server.closeIdleConnections(); + server.close(common.mustCall()); + + // Check that only the idle connection got closed + setTimeout(common.mustCall(() => { + assert(!client1Closed); + assert(client2Closed); + + server.closeAllConnections(); + server.close(common.mustCall()); + }), common.platformTimeout(500)).unref(); + } + })); + + client2.on('close', common.mustCall(() => { + client2Closed = true; + })); + + client2.write('GET / HTTP/1.1\r\n\r\n'); + })); + + client1.on('close', common.mustCall(() => { + client1Closed = true; + })); + + client1.on('error', () => {}); + + client1.write('GET / HTTP/1.1'); +}); diff --git a/test/parallel/test-https-server-headers-timeout.js b/test/parallel/test-https-server-headers-timeout.js new file mode 100644 index 00000000000000..45457e39425127 --- /dev/null +++ b/test/parallel/test-https-server-headers-timeout.js @@ -0,0 +1,21 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); +const { createServer } = require('https'); +const fixtures = require('../common/fixtures'); + +const options = { + key: fixtures.readKey('agent1-key.pem'), + cert: fixtures.readKey('agent1-cert.pem'), +}; + +const server = createServer(options); + +// 60000 seconds is the default +assert.strictEqual(server.headersTimeout, 60000); +const headersTimeout = common.platformTimeout(1000); +server.headersTimeout = headersTimeout; +assert.strictEqual(server.headersTimeout, headersTimeout); diff --git a/test/parallel/test-https-server-request-timeout.js b/test/parallel/test-https-server-request-timeout.js index 66a1cb9f25f82e..00bac8ea3991fa 100644 --- a/test/parallel/test-https-server-request-timeout.js +++ b/test/parallel/test-https-server-request-timeout.js @@ -14,8 +14,8 @@ const options = { const server = createServer(options); -// 0 seconds is the default -assert.strictEqual(server.requestTimeout, 0); +// 300 seconds is the default +assert.strictEqual(server.requestTimeout, 300000); const requestTimeout = common.platformTimeout(1000); server.requestTimeout = requestTimeout; assert.strictEqual(server.requestTimeout, requestTimeout); diff --git a/test/parallel/test-https-slow-headers.js b/test/parallel/test-https-slow-headers.js deleted file mode 100644 index 95f0caa9878c5e..00000000000000 --- a/test/parallel/test-https-slow-headers.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -const common = require('../common'); -const { readKey } = require('../common/fixtures'); - -if (!common.hasCrypto) - common.skip('missing crypto'); - -const assert = require('assert'); -const { createServer } = require('https'); -const { connect } = require('tls'); -const { finished } = require('stream'); - -// This test validates that the 'timeout' event fires -// after server.headersTimeout. - -const headers = - 'GET / HTTP/1.1\r\n' + - 'Host: localhost\r\n' + - 'Agent: node\r\n'; - -const server = createServer({ - key: readKey('agent1-key.pem'), - cert: readKey('agent1-cert.pem'), - ca: readKey('ca1-cert.pem'), -}, common.mustNotCall()); - -let sendCharEvery = 1000; - -// 60 seconds is the default -assert.strictEqual(server.headersTimeout, 60 * 1000); - -// Pass a REAL env variable to shortening up the default -// value which is 40s otherwise -// this is useful for manual testing -if (!process.env.REAL) { - sendCharEvery = common.platformTimeout(10); - server.headersTimeout = 2 * sendCharEvery; -} - -server.once('timeout', common.mustCall((socket) => { - socket.destroy(); -})); - -server.listen(0, common.mustCall(() => { - const client = connect({ - port: server.address().port, - rejectUnauthorized: false - }); - client.write(headers); - client.write('X-CRASH: '); - - const interval = setInterval(() => { - client.write('a'); - }, sendCharEvery); - - client.resume(); - - finished(client, common.mustCall((err) => { - clearInterval(interval); - server.close(); - })); -})); diff --git a/test/parallel/test-icu-env.js b/test/parallel/test-icu-env.js new file mode 100644 index 00000000000000..368f829234684f --- /dev/null +++ b/test/parallel/test-icu-env.js @@ -0,0 +1,288 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { execFileSync } = require('child_process'); + +// system-icu should not be tested +const hasBuiltinICU = process.config.variables.icu_gyp_path === 'tools/icu/icu-generic.gyp'; +if (!hasBuiltinICU) + common.skip('system ICU'); + +// small-icu doesn't support non-English locales +const hasFullICU = (() => { + try { + const january = new Date(9e8); + const spanish = new Intl.DateTimeFormat('es', { month: 'long' }); + return spanish.format(january) === 'enero'; + } catch { + return false; + } +})(); +if (!hasFullICU) + common.skip('small ICU'); + +const icuVersionMajor = Number(process.config.variables.icu_ver_major ?? 0); +if (icuVersionMajor < 71) + common.skip('ICU too old'); + + +function runEnvOutside(addEnv, code, ...args) { + return execFileSync( + process.execPath, + ['-e', `process.stdout.write(String(${code}));`], + { env: { ...process.env, ...addEnv }, encoding: 'utf8' } + ); +} + +function runEnvInside(addEnv, func, ...args) { + Object.assign(process.env, addEnv); // side effects! + return func(...args); +} + +function isPack(array) { + const firstItem = array[0]; + return array.every((item) => item === firstItem); +} + +function isSet(array) { + const deduped = new Set(array); + return array.length === deduped.size; +} + + +const localesISO639 = [ + 'eng', 'cmn', 'hin', 'spa', + 'fra', 'arb', 'ben', 'rus', + 'por', 'urd', 'ind', 'deu', + 'jpn', 'pcm', 'mar', 'tel', +]; + +const locales = [ + 'en', 'zh', 'hi', 'es', + 'fr', 'ar', 'bn', 'ru', + 'pt', 'ur', 'id', 'de', + 'ja', 'pcm', 'mr', 'te', +]; + +// These must not overlap +const zones = [ + 'America/New_York', + 'UTC', + 'Asia/Irkutsk', + 'Australia/North', + 'Antarctica/South_Pole', +]; + + +assert.deepStrictEqual(Intl.getCanonicalLocales(localesISO639), locales); + + +// On some platforms these keep original locale (for example, 'January') +const enero = runEnvOutside( + { LANG: 'es' }, + 'new Intl.DateTimeFormat(undefined, { month: "long" } ).format(new Date(9e8))' +); +const janvier = runEnvOutside( + { LANG: 'fr' }, + 'new Intl.DateTimeFormat(undefined, { month: "long" } ).format(new Date(9e8))' +); +const isMockable = enero !== janvier; + +// Tests with mocked env +if (isMockable) { + assert.strictEqual( + isSet(zones.map((TZ) => runEnvOutside({ TZ }, 'new Date(333333333333).toString()'))), + true + ); + assert.strictEqual( + isSet(zones.map((TZ) => runEnvOutside({ TZ }, 'new Date(333333333333).toLocaleString()'))), + true + ); + assert.deepStrictEqual( + locales.map((LANG) => runEnvOutside({ LANG, TZ: 'Europe/Zurich' }, 'new Date(333333333333).toString()')), + [ + 'Fri Jul 25 1980 01:35:33 GMT+0100 (Central European Standard Time)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (中欧标准时间)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (मध्य यूरोपीय मानक समय)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (hora estándar de Europa central)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (heure normale d’Europe centrale)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (توقيت وسط أوروبا الرسمي)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (মধ্য ইউরোপীয় মানক সময়)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (Центральная Европа, стандартное время)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (Horário Padrão da Europa Central)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (وسطی یورپ کا معیاری وقت)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (Waktu Standar Eropa Tengah)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (Mitteleuropäische Normalzeit)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (中央ヨーロッパ標準時)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (Mídúl Yúrop Fíksd Taim)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (मध्‍य युरोपियन प्रमाण वेळ)', + 'Fri Jul 25 1980 01:35:33 GMT+0100 (సెంట్రల్ యూరోపియన్ ప్రామాణిక సమయం)', + ] + ); + assert.deepStrictEqual( + locales.map((LANG) => runEnvOutside({ LANG, TZ: 'Europe/Zurich' }, 'new Date(333333333333).toLocaleString()')), + [ + '7/25/1980, 1:35:33 AM', + '1980/7/25 01:35:33', + '25/7/1980, 1:35:33 am', + '25/7/1980, 1:35:33', + '25/07/1980 01:35:33', + '٢٥‏/٧‏/١٩٨٠, ١:٣٥:٣٣ ص', + '২৫/৭/১৯৮০ ১:৩৫:৩৩ AM', + '25.07.1980, 01:35:33', + '25/07/1980 01:35:33', + '25/7/1980 1:35:33 AM', + '25/7/1980 01.35.33', + '25.7.1980, 01:35:33', + '1980/7/25 1:35:33', + '25/7/1980 01:35:33', + '२५/७/१९८०, १:३५:३३ AM', + '25/7/1980 1:35:33 AM', + ] + ); + assert.strictEqual( + runEnvOutside({ LANG: 'en' }, '["z", "ä"].sort(new Intl.Collator().compare)'), + 'ä,z' + ); + assert.strictEqual( + runEnvOutside({ LANG: 'sv' }, '["z", "ä"].sort(new Intl.Collator().compare)'), + 'z,ä' + ); + assert.deepStrictEqual( + locales.map( + (LANG) => runEnvOutside({ LANG, TZ: 'Europe/Zurich' }, 'new Intl.DateTimeFormat().format(333333333333)') + ), + [ + '7/25/1980', '1980/7/25', + '25/7/1980', '25/7/1980', + '25/07/1980', '٢٥‏/٧‏/١٩٨٠', + '২৫/৭/১৯৮০', '25.07.1980', + '25/07/1980', '25/7/1980', + '25/7/1980', '25.7.1980', + '1980/7/25', '25/7/1980', + '२५/७/१९८०', '25/7/1980', + ] + ); + assert.deepStrictEqual( + locales.map((LANG) => runEnvOutside({ LANG }, 'new Intl.DisplayNames(undefined, { type: "region" }).of("CH")')), + [ + 'Switzerland', '瑞士', + 'स्विट्ज़रलैंड', 'Suiza', + 'Suisse', 'سويسرا', + 'সুইজারল্যান্ড', 'Швейцария', + 'Suíça', 'سوئٹزر لینڈ', + 'Swiss', 'Schweiz', + 'スイス', 'Swítsaland', + 'स्वित्झर्लंड', 'స్విట్జర్లాండ్', + ] + ); + assert.deepStrictEqual( + locales.map((LANG) => runEnvOutside({ LANG }, 'new Intl.NumberFormat().format(275760.913)')), + [ + '275,760.913', '275,760.913', + '2,75,760.913', '275.760,913', + '275 760,913', '٢٧٥٬٧٦٠٫٩١٣', + '২,৭৫,৭৬০.৯১৩', '275 760,913', + '275.760,913', '275,760.913', + '275.760,913', '275.760,913', + '275,760.913', '275,760.913', + '२,७५,७६०.९१३', '2,75,760.913', + ] + ); + assert.deepStrictEqual( + locales.map((LANG) => runEnvOutside({ LANG }, 'new Intl.PluralRules().select(0)')), + [ + 'other', 'other', 'one', 'other', + 'one', 'zero', 'one', 'many', + 'one', 'other', 'other', 'other', + 'other', 'one', 'other', 'other', + ] + ); + assert.deepStrictEqual( + locales.map((LANG) => runEnvOutside({ LANG }, 'new Intl.RelativeTimeFormat().format(-586920.617, "hour")')), + [ + '586,920.617 hours ago', + '586,920.617小时前', + '5,86,920.617 घंटे पहले', + 'hace 586.920,617 horas', + 'il y a 586 920,617 heures', + 'قبل ٥٨٦٬٩٢٠٫٦١٧ ساعة', + '৫,৮৬,৯২০.৬১৭ ঘন্টা আগে', + '586 920,617 часа назад', + 'há 586.920,617 horas', + '586,920.617 گھنٹے پہلے', + '586.920,617 jam yang lalu', + 'vor 586.920,617 Stunden', + '586,920.617 時間前', + '586,920.617 áwa wé dọ́n pas', + '५,८६,९२०.६१७ तासांपूर्वी', + '5,86,920.617 గంటల క్రితం', + ] + ); +} + + +// Tests with process.env mutated inside +{ + // process.env.TZ is not intercepted in Workers + if (common.isMainThread) { + assert.strictEqual( + isSet(zones.map((TZ) => runEnvInside({ TZ }, () => new Date(333333333333).toString()))), + true + ); + assert.strictEqual( + isSet(zones.map((TZ) => runEnvInside({ TZ }, () => new Date(333333333333).toLocaleString()))), + true + ); + } else { + assert.strictEqual( + isPack(zones.map((TZ) => runEnvInside({ TZ }, () => new Date(333333333333).toString()))), + true + ); + assert.strictEqual( + isPack(zones.map((TZ) => runEnvInside({ TZ }, () => new Date(333333333333).toLocaleString()))), + true + ); + } + + assert.strictEqual( + isPack(locales.map((LANG) => runEnvInside({ LANG, TZ: 'Europe/Zurich' }, () => new Date(333333333333).toString()))), + true + ); + assert.strictEqual( + isPack(locales.map( + (LANG) => runEnvInside({ LANG, TZ: 'Europe/Zurich' }, () => new Date(333333333333).toLocaleString()) + )), + true + ); + assert.deepStrictEqual( + runEnvInside({ LANG: 'en' }, () => ['z', 'ä'].sort(new Intl.Collator().compare)), + runEnvInside({ LANG: 'sv' }, () => ['z', 'ä'].sort(new Intl.Collator().compare)) + ); + assert.strictEqual( + isPack(locales.map( + (LANG) => runEnvInside({ LANG, TZ: 'Europe/Zurich' }, () => new Intl.DateTimeFormat().format(333333333333)) + )), + true + ); + assert.strictEqual( + isPack(locales.map( + (LANG) => runEnvInside({ LANG }, () => new Intl.DisplayNames(undefined, { type: 'region' }).of('CH')) + )), + true + ); + assert.strictEqual( + isPack(locales.map((LANG) => runEnvInside({ LANG }, () => new Intl.NumberFormat().format(275760.913)))), + true + ); + assert.strictEqual( + isPack(locales.map((LANG) => runEnvInside({ LANG }, () => new Intl.PluralRules().select(0)))), + true + ); + assert.strictEqual( + isPack(locales.map( + (LANG) => runEnvInside({ LANG }, () => new Intl.RelativeTimeFormat().format(-586920.617, 'hour')) + )), + true + ); +} diff --git a/test/parallel/test-inspector-connect-main-thread.js b/test/parallel/test-inspector-connect-main-thread.js index 86ff6866bc064e..b724bf3cd9d62f 100644 --- a/test/parallel/test-inspector-connect-main-thread.js +++ b/test/parallel/test-inspector-connect-main-thread.js @@ -8,7 +8,7 @@ const { Session } = require('inspector'); const path = require('path'); const { pathToFileURL } = require('url'); const { isMainThread, parentPort, Worker, workerData } = - require('worker_threads'); + require('worker_threads'); if (!workerData) { common.skipIfWorker(); @@ -100,6 +100,17 @@ async function ensureListenerDoesNotInterrupt(session) { } async function main() { + assert.throws( + () => { + const session = new Session(); + session.connectToMainThread(); + }, + { + code: 'ERR_INSPECTOR_NOT_WORKER', + name: 'Error', + message: 'Current thread is not a worker' + } + ); const sharedBuffer = new SharedArrayBuffer(1); const arrayBuffer = new Uint8Array(sharedBuffer); arrayBuffer[0] = 1; @@ -121,6 +132,16 @@ async function childMain() { await (await startWorker(true)).onMessagesSent; const session = new Session(); session.connectToMainThread(); + assert.throws( + () => { + session.connectToMainThread(); + }, + { + code: 'ERR_INSPECTOR_ALREADY_CONNECTED', + name: 'Error', + message: 'The inspector session is already connected' + } + ); await post(session, 'Debugger.enable'); await post(session, 'Runtime.enable'); await post(session, 'Debugger.setBreakpointByUrl', { @@ -137,9 +158,9 @@ async function childMain() { await new Promise((resolve) => setTimeout(resolve, 50)); const { result: { value } } = - await post(session, - 'Debugger.evaluateOnCallFrame', - { callFrameId, expression: 'a * 100' }); + await post(session, + 'Debugger.evaluateOnCallFrame', + { callFrameId, expression: 'a * 100' }); assert.strictEqual(value, 100); await post(session, 'Debugger.resume'); await ensureListenerDoesNotInterrupt(session); diff --git a/test/parallel/test-internal-util-objects.js b/test/parallel/test-internal-util-objects.js new file mode 100644 index 00000000000000..74068e4c577bd6 --- /dev/null +++ b/test/parallel/test-internal-util-objects.js @@ -0,0 +1,119 @@ +// Flags: --expose-internals +'use strict'; +require('../common'); + +// Test helper objects from internal/util + +const assert = require('assert'); +const { + kEnumerableProperty, + kEmptyObject, +} = require('internal/util'); + +Object.prototype.blep = 'blop'; + +{ + assert.strictEqual( + kEnumerableProperty.blep, + undefined + ); + assert.strictEqual( + kEnumerableProperty.enumerable, + true + ); + assert.strictEqual( + Object.getPrototypeOf(kEnumerableProperty), + null + ); + assert.deepStrictEqual( + Object.getOwnPropertyNames(kEnumerableProperty), + [ 'enumerable' ] + ); + + assert.throws( + () => Object.setPrototypeOf(kEnumerableProperty, { value: undefined }), + TypeError + ); + assert.throws( + () => delete kEnumerableProperty.enumerable, + TypeError + ); + assert.throws( + () => kEnumerableProperty.enumerable = false, + TypeError + ); + assert.throws( + () => Object.assign(kEnumerableProperty, { enumerable: false }), + TypeError + ); + assert.throws( + () => kEnumerableProperty.value = undefined, + TypeError + ); + assert.throws( + () => Object.assign(kEnumerableProperty, { value: undefined }), + TypeError + ); + assert.throws( + () => Object.defineProperty(kEnumerableProperty, 'value', {}), + TypeError + ); +} + +{ + assert.strictEqual( + kEmptyObject.blep, + undefined + ); + assert.strictEqual( + kEmptyObject.prototype, + undefined + ); + assert.strictEqual( + Object.getPrototypeOf(kEmptyObject), + null + ); + assert.strictEqual( + kEmptyObject instanceof Object, + false + ); + assert.deepStrictEqual( + Object.getOwnPropertyDescriptors(kEmptyObject), + {} + ); + assert.deepStrictEqual( + Object.getOwnPropertyNames(kEmptyObject), + [] + ); + assert.deepStrictEqual( + Object.getOwnPropertySymbols(kEmptyObject), + [] + ); + assert.strictEqual( + Object.isExtensible(kEmptyObject), + false + ); + assert.strictEqual( + Object.isSealed(kEmptyObject), + true + ); + assert.strictEqual( + Object.isFrozen(kEmptyObject), + true + ); + + assert.throws( + () => kEmptyObject.foo = 'bar', + TypeError + ); + assert.throws( + () => Object.assign(kEmptyObject, { foo: 'bar' }), + TypeError + ); + assert.throws( + () => Object.defineProperty(kEmptyObject, 'foo', {}), + TypeError + ); +} + +delete Object.prototype.blep; diff --git a/test/parallel/test-messageport-hasref.js b/test/parallel/test-messageport-hasref.js new file mode 100644 index 00000000000000..bc213f7897d277 --- /dev/null +++ b/test/parallel/test-messageport-hasref.js @@ -0,0 +1,57 @@ +'use strict'; +const common = require('../common'); + +const { MessageChannel } = require('worker_threads'); +const { createHook } = require('async_hooks'); +const { strictEqual } = require('assert'); + +const handles = []; + +createHook({ + init(asyncId, type, triggerAsyncId, resource) { + if (type === 'MESSAGEPORT') { + handles.push(resource); + } + } +}).enable(); + +const { port1, port2 } = new MessageChannel(); +strictEqual(handles[0], port1); +strictEqual(handles[1], port2); + +strictEqual(handles[0].hasRef(), false); +strictEqual(handles[1].hasRef(), false); + +port1.unref(); +strictEqual(handles[0].hasRef(), false); + +port1.ref(); +strictEqual(handles[0].hasRef(), true); + +port1.unref(); +strictEqual(handles[0].hasRef(), false); + +port1.on('message', () => {}); +strictEqual(handles[0].hasRef(), true); + +port2.unref(); +strictEqual(handles[1].hasRef(), false); + +port2.ref(); +strictEqual(handles[1].hasRef(), true); + +port2.unref(); +strictEqual(handles[1].hasRef(), false); + +port2.on('message', () => {}); +strictEqual(handles[0].hasRef(), true); + +port1.on('close', common.mustCall(() => { + strictEqual(handles[0].hasRef(), false); + strictEqual(handles[1].hasRef(), false); +})); + +port2.close(); + +strictEqual(handles[0].hasRef(), true); +strictEqual(handles[1].hasRef(), true); diff --git a/test/parallel/test-module-main-fail.js b/test/parallel/test-module-main-fail.js index c66b6f2f7a843f..2b6f188dd4cbee 100644 --- a/test/parallel/test-module-main-fail.js +++ b/test/parallel/test-module-main-fail.js @@ -10,7 +10,10 @@ for (const entryPoint of entryPoints) { try { execFileSync(node, [entryPoint], { stdio: 'pipe' }); } catch (e) { - assert(e.toString().match(/Error: Cannot find module/)); + const error = e.toString(); + assert.match(error, /MODULE_NOT_FOUND/); + assert.match(error, /Cannot find module/); + assert(error.includes(entryPoint)); continue; } assert.fail('Executing node with inexistent entry point should ' + diff --git a/test/parallel/test-net-connect-reset-after-destroy.js b/test/parallel/test-net-connect-reset-after-destroy.js new file mode 100644 index 00000000000000..89e459229ab1bd --- /dev/null +++ b/test/parallel/test-net-connect-reset-after-destroy.js @@ -0,0 +1,29 @@ +'use strict'; +const common = require('../common'); +const net = require('net'); +const assert = require('assert'); + +const server = net.createServer(); +server.listen(0, common.mustCall(function() { + const port = server.address().port; + const conn = net.createConnection(port); + server.on('connection', (socket) => { + socket.on('error', common.expectsError({ + code: 'ECONNRESET', + message: 'read ECONNRESET', + name: 'Error' + })); + }); + + conn.on('connect', common.mustCall(function() { + assert.strictEqual(conn, conn.resetAndDestroy().destroy()); + conn.on('error', common.mustNotCall()); + + conn.write(Buffer.from('fzfzfzfzfz'), common.expectsError({ + code: 'ERR_STREAM_DESTROYED', + message: 'Cannot call write after a stream was destroyed', + name: 'Error' + })); + server.close(); + })); +})); diff --git a/test/parallel/test-net-connect-reset-before-connected.js b/test/parallel/test-net-connect-reset-before-connected.js new file mode 100644 index 00000000000000..1dc2b98183ce31 --- /dev/null +++ b/test/parallel/test-net-connect-reset-before-connected.js @@ -0,0 +1,13 @@ +'use strict'; +const common = require('../common'); +const net = require('net'); + +const server = net.createServer(); +server.listen(0); +const port = server.address().port; +const socket = net.connect(port, common.localhostIPv4, common.mustNotCall()); +socket.on('error', common.mustNotCall()); +server.close(); +socket.resetAndDestroy(); +// `reset` waiting socket connected to sent the RST packet +socket.destroy(); diff --git a/test/parallel/test-net-connect-reset-until-connected.js b/test/parallel/test-net-connect-reset-until-connected.js new file mode 100644 index 00000000000000..e40ec05f6ce1e9 --- /dev/null +++ b/test/parallel/test-net-connect-reset-until-connected.js @@ -0,0 +1,20 @@ +'use strict'; + +const common = require('../common'); +const net = require('net'); + +const server = net.createServer(); +server.listen(0, common.mustCall(function() { + const port = server.address().port; + const conn = net.createConnection(port); + conn.on('close', common.mustCall()); + server.on('connection', (socket) => { + socket.on('error', common.expectsError({ + code: 'ECONNRESET', + message: 'read ECONNRESET', + name: 'Error' + })); + server.close(); + }); + conn.resetAndDestroy(); +})); diff --git a/test/parallel/test-net-connect-reset.js b/test/parallel/test-net-connect-reset.js new file mode 100644 index 00000000000000..1f3e806aa99b74 --- /dev/null +++ b/test/parallel/test-net-connect-reset.js @@ -0,0 +1,13 @@ +'use strict'; +const common = require('../common'); +const net = require('net'); + +const socket = new net.Socket(); +socket.resetAndDestroy(); +// Emit error if socket is not connecting/connected +socket.on('error', common.mustCall( + common.expectsError({ + code: 'ERR_SOCKET_CLOSED', + name: 'Error' + })) +); diff --git a/test/parallel/test-net-perf_hooks.js b/test/parallel/test-net-perf_hooks.js index cbaaac135b92d8..6b0d13aab27019 100644 --- a/test/parallel/test-net-perf_hooks.js +++ b/test/parallel/test-net-perf_hooks.js @@ -22,7 +22,7 @@ obs.observe({ type: 'net' }); socket.destroy(); })); - server.listen(8080, common.mustCall(async () => { + server.listen(0, common.mustCall(async () => { await new Promise((resolve, reject) => { const socket = net.connect(server.address().port); socket.on('end', resolve); diff --git a/test/parallel/test-net-remote-address-port.js b/test/parallel/test-net-remote-address-port.js index f7162d0f90f933..615f22979c2ff9 100644 --- a/test/parallel/test-net-remote-address-port.js +++ b/test/parallel/test-net-remote-address-port.js @@ -53,6 +53,14 @@ const server = net.createServer(common.mustCall(function(socket) { server.listen(0, function() { const client = net.createConnection(this.address().port, '127.0.0.1'); const client2 = net.createConnection(this.address().port); + + assert.strictEqual(client.remoteAddress, undefined); + assert.strictEqual(client.remoteFamily, undefined); + assert.strictEqual(client.remotePort, undefined); + assert.strictEqual(client2.remoteAddress, undefined); + assert.strictEqual(client2.remoteFamily, undefined); + assert.strictEqual(client2.remotePort, undefined); + client.on('connect', function() { assert.ok(remoteAddrCandidates.includes(client.remoteAddress)); assert.ok(remoteFamilyCandidates.includes(client.remoteFamily)); diff --git a/test/parallel/test-net-server-reset.js b/test/parallel/test-net-server-reset.js new file mode 100644 index 00000000000000..ea78cd2743298e --- /dev/null +++ b/test/parallel/test-net-server-reset.js @@ -0,0 +1,36 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const net = require('net'); + +const sockets = []; + +const server = net.createServer(function(c) { + c.on('close', common.mustCall()); + + sockets.push(c); + + if (sockets.length === 2) { + assert.strictEqual(server.close(), server); + sockets.forEach((c) => c.resetAndDestroy()); + } +}); + +server.on('close', common.mustCall()); + +assert.strictEqual(server, server.listen(0, () => { + net.createConnection(server.address().port) + .on('error', common.mustCall( + common.expectsError({ + code: 'ECONNRESET', + name: 'Error' + })) + ); + net.createConnection(server.address().port) + .on('error', common.mustCall( + common.expectsError({ + code: 'ECONNRESET', + name: 'Error' + })) + ); +})); diff --git a/test/parallel/test-net-socket-connect-without-cb.js b/test/parallel/test-net-socket-connect-without-cb.js index 468b29a3a486d7..274083eb290eca 100644 --- a/test/parallel/test-net-socket-connect-without-cb.js +++ b/test/parallel/test-net-socket-connect-without-cb.js @@ -16,5 +16,11 @@ const server = net.createServer(common.mustCall(function(conn) { client.end(); })); - client.connect(server.address()); + const address = server.address(); + if (!common.hasIPv6 && address.family === 'IPv6') { + // Necessary to pass CI running inside containers. + client.connect(address.port); + } else { + client.connect(address); + } })); diff --git a/test/parallel/test-net-socket-ready-without-cb.js b/test/parallel/test-net-socket-ready-without-cb.js index 1ad5db4760dc1e..29da68e173c193 100644 --- a/test/parallel/test-net-socket-ready-without-cb.js +++ b/test/parallel/test-net-socket-ready-without-cb.js @@ -9,7 +9,7 @@ const net = require('net'); const server = net.createServer(common.mustCall(function(conn) { conn.end(); server.close(); -})).listen(0, common.mustCall(function() { +})).listen(0, 'localhost', common.mustCall(function() { const client = new net.Socket(); client.on('ready', common.mustCall(function() { diff --git a/test/parallel/test-net-socket-reset-send.js b/test/parallel/test-net-socket-reset-send.js new file mode 100644 index 00000000000000..b7b9f66cb93d60 --- /dev/null +++ b/test/parallel/test-net-socket-reset-send.js @@ -0,0 +1,30 @@ +'use strict'; + +const common = require('../common'); +const net = require('net'); +const assert = require('assert'); + +const server = net.createServer(); +server.listen(0, common.mustCall(() => { + const port = server.address().port; + const conn = net.createConnection(port); + server.on('connection', (socket) => { + socket.on('error', common.expectsError({ + code: 'ECONNRESET', + message: 'read ECONNRESET', + name: 'Error' + })); + }); + + conn.on('connect', common.mustCall(() => { + assert.strictEqual(conn, conn.resetAndDestroy().destroy()); + conn.on('error', common.mustNotCall()); + + conn.write(Buffer.from('fzfzfzfzfz'), common.expectsError({ + code: 'ERR_STREAM_DESTROYED', + message: 'Cannot call write after a stream was destroyed', + name: 'Error' + })); + server.close(); + })); +})); diff --git a/test/parallel/test-net-socket-reset-twice.js b/test/parallel/test-net-socket-reset-twice.js new file mode 100644 index 00000000000000..0292c5e3ab5448 --- /dev/null +++ b/test/parallel/test-net-socket-reset-twice.js @@ -0,0 +1,15 @@ +'use strict'; +const common = require('../common'); +const net = require('net'); + +const server = net.createServer(); +server.listen(0); +const port = server.address().port; +const conn = net.createConnection(port); + +conn.on('error', common.mustCall(() => { + conn.resetAndDestroy(); +})); + +conn.on('close', common.mustCall()); +server.close(); diff --git a/test/parallel/test-net-write-fully-async-buffer.js b/test/parallel/test-net-write-fully-async-buffer.js index 207ae24f6a32d0..0dddb51bd76ade 100644 --- a/test/parallel/test-net-write-fully-async-buffer.js +++ b/test/parallel/test-net-write-fully-async-buffer.js @@ -23,7 +23,7 @@ const server = net.createServer(common.mustCall(function(conn) { } while (conn.write(Buffer.from(data))); - global.gc(true); + global.gc({ type: 'minor' }); // The buffer allocated above should still be alive. } diff --git a/test/parallel/test-net-write-fully-async-hex-string.js b/test/parallel/test-net-write-fully-async-hex-string.js index f3115d8d2f795e..37b5cd75c1385c 100644 --- a/test/parallel/test-net-write-fully-async-hex-string.js +++ b/test/parallel/test-net-write-fully-async-hex-string.js @@ -21,7 +21,7 @@ const server = net.createServer(common.mustCall(function(conn) { } while (conn.write(data, 'hex')); - global.gc(true); + global.gc({ type: 'minor' }); // The buffer allocated inside the .write() call should still be alive. } diff --git a/test/parallel/test-parse-args.mjs b/test/parallel/test-parse-args.mjs new file mode 100644 index 00000000000000..ef0ac006282bd7 --- /dev/null +++ b/test/parallel/test-parse-args.mjs @@ -0,0 +1,580 @@ +import '../common/index.mjs'; +import assert from 'node:assert'; +import { test } from 'node:test'; +import { parseArgs } from 'node:util'; + +test('when short option used as flag then stored as flag', () => { + const args = ['-f']; + const expected = { values: { __proto__: null, f: true }, positionals: [] }; + const result = parseArgs({ strict: false, args }); + assert.deepStrictEqual(result, expected); +}); + +test('when short option used as flag before positional then stored as flag and positional (and not value)', () => { + const args = ['-f', 'bar']; + const expected = { values: { __proto__: null, f: true }, positionals: [ 'bar' ] }; + const result = parseArgs({ strict: false, args }); + assert.deepStrictEqual(result, expected); +}); + +test('when short option `type: "string"` used with value then stored as value', () => { + const args = ['-f', 'bar']; + const options = { f: { type: 'string' } }; + const expected = { values: { __proto__: null, f: 'bar' }, positionals: [] }; + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('when short option listed in short used as flag then long option stored as flag', () => { + const args = ['-f']; + const options = { foo: { short: 'f', type: 'boolean' } }; + const expected = { values: { __proto__: null, foo: true }, positionals: [] }; + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('when short option listed in short and long listed in `type: "string"` and ' + + 'used with value then long option stored as value', () => { + const args = ['-f', 'bar']; + const options = { foo: { short: 'f', type: 'string' } }; + const expected = { values: { __proto__: null, foo: 'bar' }, positionals: [] }; + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('when short option `type: "string"` used without value then stored as flag', () => { + const args = ['-f']; + const options = { f: { type: 'string' } }; + const expected = { values: { __proto__: null, f: true }, positionals: [] }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('short option group behaves like multiple short options', () => { + const args = ['-rf']; + const options = { }; + const expected = { values: { __proto__: null, r: true, f: true }, positionals: [] }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('short option group does not consume subsequent positional', () => { + const args = ['-rf', 'foo']; + const options = { }; + const expected = { values: { __proto__: null, r: true, f: true }, positionals: ['foo'] }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected); +}); + +// See: Guideline 5 https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html +test('if terminal of short-option group configured `type: "string"`, subsequent positional is stored', () => { + const args = ['-rvf', 'foo']; + const options = { f: { type: 'string' } }; + const expected = { values: { __proto__: null, r: true, v: true, f: 'foo' }, positionals: [] }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('handles short-option groups in conjunction with long-options', () => { + const args = ['-rf', '--foo', 'foo']; + const options = { foo: { type: 'string' } }; + const expected = { values: { __proto__: null, r: true, f: true, foo: 'foo' }, positionals: [] }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('handles short-option groups with "short" alias configured', () => { + const args = ['-rf']; + const options = { remove: { short: 'r', type: 'boolean' } }; + const expected = { values: { __proto__: null, remove: true, f: true }, positionals: [] }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('handles short-option followed by its value', () => { + const args = ['-fFILE']; + const options = { foo: { short: 'f', type: 'string' } }; + const expected = { values: { __proto__: null, foo: 'FILE' }, positionals: [] }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('Everything after a bare `--` is considered a positional argument', () => { + const args = ['--', 'barepositionals', 'mopositionals']; + const expected = { values: { __proto__: null }, positionals: ['barepositionals', 'mopositionals'] }; + const result = parseArgs({ allowPositionals: true, args }); + assert.deepStrictEqual(result, expected, Error('testing bare positionals')); +}); + +test('args are true', () => { + const args = ['--foo', '--bar']; + const expected = { values: { __proto__: null, foo: true, bar: true }, positionals: [] }; + const result = parseArgs({ strict: false, args }); + assert.deepStrictEqual(result, expected, Error('args are true')); +}); + +test('arg is true and positional is identified', () => { + const args = ['--foo=a', '--foo', 'b']; + const expected = { values: { __proto__: null, foo: true }, positionals: ['b'] }; + const result = parseArgs({ strict: false, args }); + assert.deepStrictEqual(result, expected, Error('arg is true and positional is identified')); +}); + +test('args equals are passed `type: "string"`', () => { + const args = ['--so=wat']; + const options = { so: { type: 'string' } }; + const expected = { values: { __proto__: null, so: 'wat' }, positionals: [] }; + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expected, Error('arg value is passed')); +}); + +test('when args include single dash then result stores dash as positional', () => { + const args = ['-']; + const expected = { values: { __proto__: null }, positionals: ['-'] }; + const result = parseArgs({ allowPositionals: true, args }); + assert.deepStrictEqual(result, expected); +}); + +test('zero config args equals are parsed as if `type: "string"`', () => { + const args = ['--so=wat']; + const options = { }; + const expected = { values: { __proto__: null, so: 'wat' }, positionals: [] }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected, Error('arg value is passed')); +}); + +test('same arg is passed twice `type: "string"` and last value is recorded', () => { + const args = ['--foo=a', '--foo', 'b']; + const options = { foo: { type: 'string' } }; + const expected = { values: { __proto__: null, foo: 'b' }, positionals: [] }; + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expected, Error('last arg value is passed')); +}); + +test('args equals pass string including more equals', () => { + const args = ['--so=wat=bing']; + const options = { so: { type: 'string' } }; + const expected = { values: { __proto__: null, so: 'wat=bing' }, positionals: [] }; + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expected, Error('arg value is passed')); +}); + +test('first arg passed for `type: "string"` and "multiple" is in array', () => { + const args = ['--foo=a']; + const options = { foo: { type: 'string', multiple: true } }; + const expected = { values: { __proto__: null, foo: ['a'] }, positionals: [] }; + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expected, Error('first multiple in array')); +}); + +test('args are passed `type: "string"` and "multiple"', () => { + const args = ['--foo=a', '--foo', 'b']; + const options = { + foo: { + type: 'string', + multiple: true, + }, + }; + const expected = { values: { __proto__: null, foo: ['a', 'b'] }, positionals: [] }; + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expected, Error('both arg values are passed')); +}); + +test('when expecting `multiple:true` boolean option and option used multiple times then result includes array of ' + + 'booleans matching usage', () => { + const args = ['--foo', '--foo']; + const options = { + foo: { + type: 'boolean', + multiple: true, + }, + }; + const expected = { values: { __proto__: null, foo: [true, true] }, positionals: [] }; + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('order of option and positional does not matter (per README)', () => { + const args1 = ['--foo=bar', 'baz']; + const args2 = ['baz', '--foo=bar']; + const options = { foo: { type: 'string' } }; + const expected = { values: { __proto__: null, foo: 'bar' }, positionals: ['baz'] }; + assert.deepStrictEqual( + parseArgs({ allowPositionals: true, args: args1, options }), + expected, + Error('option then positional') + ); + assert.deepStrictEqual( + parseArgs({ allowPositionals: true, args: args2, options }), + expected, + Error('positional then option') + ); +}); + +test('correct default args when use node -p', () => { + const holdArgv = process.argv; + process.argv = [process.argv0, '--foo']; + const holdExecArgv = process.execArgv; + process.execArgv = ['-p', '0']; + const result = parseArgs({ strict: false }); + + const expected = { values: { __proto__: null, foo: true }, + positionals: [] }; + assert.deepStrictEqual(result, expected); + process.argv = holdArgv; + process.execArgv = holdExecArgv; +}); + +test('correct default args when use node --print', () => { + const holdArgv = process.argv; + process.argv = [process.argv0, '--foo']; + const holdExecArgv = process.execArgv; + process.execArgv = ['--print', '0']; + const result = parseArgs({ strict: false }); + + const expected = { values: { __proto__: null, foo: true }, + positionals: [] }; + assert.deepStrictEqual(result, expected); + process.argv = holdArgv; + process.execArgv = holdExecArgv; +}); + +test('correct default args when use node -e', () => { + const holdArgv = process.argv; + process.argv = [process.argv0, '--foo']; + const holdExecArgv = process.execArgv; + process.execArgv = ['-e', '0']; + const result = parseArgs({ strict: false }); + + const expected = { values: { __proto__: null, foo: true }, + positionals: [] }; + assert.deepStrictEqual(result, expected); + process.argv = holdArgv; + process.execArgv = holdExecArgv; +}); + +test('correct default args when use node --eval', () => { + const holdArgv = process.argv; + process.argv = [process.argv0, '--foo']; + const holdExecArgv = process.execArgv; + process.execArgv = ['--eval', '0']; + const result = parseArgs({ strict: false }); + const expected = { values: { __proto__: null, foo: true }, + positionals: [] }; + assert.deepStrictEqual(result, expected); + process.argv = holdArgv; + process.execArgv = holdExecArgv; +}); + +test('correct default args when normal arguments', () => { + const holdArgv = process.argv; + process.argv = [process.argv0, 'script.js', '--foo']; + const holdExecArgv = process.execArgv; + process.execArgv = []; + const result = parseArgs({ strict: false }); + + const expected = { values: { __proto__: null, foo: true }, + positionals: [] }; + assert.deepStrictEqual(result, expected); + process.argv = holdArgv; + process.execArgv = holdExecArgv; +}); + +test('excess leading dashes on options are retained', () => { + // Enforce a design decision for an edge case. + const args = ['---triple']; + const options = { }; + const expected = { + values: { '__proto__': null, '-triple': true }, + positionals: [] + }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected, Error('excess option dashes are retained')); +}); + +test('positional arguments are allowed by default in strict:false', () => { + const args = ['foo']; + const options = { }; + const expected = { + values: { __proto__: null }, + positionals: ['foo'] + }; + const result = parseArgs({ strict: false, args, options }); + assert.deepStrictEqual(result, expected); +}); + +test('positional arguments may be explicitly disallowed in strict:false', () => { + const args = ['foo']; + const options = { }; + assert.throws(() => { parseArgs({ strict: false, allowPositionals: false, args, options }); }, { + code: 'ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL' + }); +}); + +// Test bad inputs + +test('invalid argument passed for options', () => { + const args = ['--so=wat']; + const options = 'bad value'; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_INVALID_ARG_TYPE' + }); +}); + +test('type property missing for option then throw', () => { + const knownOptions = { foo: { } }; + assert.throws(() => { parseArgs({ options: knownOptions }); }, { + code: 'ERR_INVALID_ARG_TYPE' + }); +}); + +test('boolean passed to "type" option', () => { + const args = ['--so=wat']; + const options = { foo: { type: true } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_INVALID_ARG_TYPE' + }); +}); + +test('invalid union value passed to "type" option', () => { + const args = ['--so=wat']; + const options = { foo: { type: 'str' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_INVALID_ARG_TYPE' + }); +}); + +// Test strict mode + +test('unknown long option --bar', () => { + const args = ['--foo', '--bar']; + const options = { foo: { type: 'boolean' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_PARSE_ARGS_UNKNOWN_OPTION' + }); +}); + +test('unknown short option -b', () => { + const args = ['--foo', '-b']; + const options = { foo: { type: 'boolean' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_PARSE_ARGS_UNKNOWN_OPTION' + }); +}); + +test('unknown option -r in short option group -bar', () => { + const args = ['-bar']; + const options = { b: { type: 'boolean' }, a: { type: 'boolean' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_PARSE_ARGS_UNKNOWN_OPTION' + }); +}); + +test('unknown option with explicit value', () => { + const args = ['--foo', '--bar=baz']; + const options = { foo: { type: 'boolean' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_PARSE_ARGS_UNKNOWN_OPTION' + }); +}); + +test('unexpected positional', () => { + const args = ['foo']; + const options = { foo: { type: 'boolean' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL' + }); +}); + +test('unexpected positional after --', () => { + const args = ['--', 'foo']; + const options = { foo: { type: 'boolean' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL' + }); +}); + +test('-- by itself is not a positional', () => { + const args = ['--foo', '--']; + const options = { foo: { type: 'boolean' } }; + const result = parseArgs({ args, options }); + const expected = { values: { __proto__: null, foo: true }, + positionals: [] }; + assert.deepStrictEqual(result, expected); +}); + +test('string option used as boolean', () => { + const args = ['--foo']; + const options = { foo: { type: 'string' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_PARSE_ARGS_INVALID_OPTION_VALUE' + }); +}); + +test('boolean option used with value', () => { + const args = ['--foo=bar']; + const options = { foo: { type: 'boolean' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_PARSE_ARGS_INVALID_OPTION_VALUE' + }); +}); + +test('invalid short option length', () => { + const args = []; + const options = { foo: { short: 'fo', type: 'boolean' } }; + assert.throws(() => { parseArgs({ args, options }); }, { + code: 'ERR_INVALID_ARG_VALUE' + }); +}); + +test('null prototype: when no options then values.toString is undefined', () => { + const result = parseArgs({ args: [] }); + assert.strictEqual(result.values.toString, undefined); +}); + +test('null prototype: when --toString then values.toString is true', () => { + const args = ['--toString']; + const options = { toString: { type: 'boolean' } }; + const expectedResult = { values: { __proto__: null, toString: true }, positionals: [] }; + + const result = parseArgs({ args, options }); + assert.deepStrictEqual(result, expectedResult); +}); + +const candidateGreedyOptions = [ + '', + '-', + '--', + 'abc', + '123', + '-s', + '--foo', +]; + +candidateGreedyOptions.forEach((value) => { + test(`greedy: when short option with value '${value}' then eaten`, () => { + const args = ['-w', value]; + const options = { with: { type: 'string', short: 'w' } }; + const expectedResult = { values: { __proto__: null, with: value }, positionals: [] }; + + const result = parseArgs({ args, options, strict: false }); + assert.deepStrictEqual(result, expectedResult); + }); + + test(`greedy: when long option with value '${value}' then eaten`, () => { + const args = ['--with', value]; + const options = { with: { type: 'string', short: 'w' } }; + const expectedResult = { values: { __proto__: null, with: value }, positionals: [] }; + + const result = parseArgs({ args, options, strict: false }); + assert.deepStrictEqual(result, expectedResult); + }); +}); + +test('strict: when candidate option value is plain text then does not throw', () => { + const args = ['--with', 'abc']; + const options = { with: { type: 'string' } }; + const expectedResult = { values: { __proto__: null, with: 'abc' }, positionals: [] }; + + const result = parseArgs({ args, options, strict: true }); + assert.deepStrictEqual(result, expectedResult); +}); + +test("strict: when candidate option value is '-' then does not throw", () => { + const args = ['--with', '-']; + const options = { with: { type: 'string' } }; + const expectedResult = { values: { __proto__: null, with: '-' }, positionals: [] }; + + const result = parseArgs({ args, options, strict: true }); + assert.deepStrictEqual(result, expectedResult); +}); + +test("strict: when candidate option value is '--' then throws", () => { + const args = ['--with', '--']; + const options = { with: { type: 'string' } }; + + assert.throws(() => { + parseArgs({ args, options }); + }, { + code: 'ERR_PARSE_ARGS_INVALID_OPTION_VALUE' + }); +}); + +test('strict: when candidate option value is short option then throws', () => { + const args = ['--with', '-a']; + const options = { with: { type: 'string' } }; + + assert.throws(() => { + parseArgs({ args, options }); + }, { + code: 'ERR_PARSE_ARGS_INVALID_OPTION_VALUE' + }); +}); + +test('strict: when candidate option value is short option digit then throws', () => { + const args = ['--with', '-1']; + const options = { with: { type: 'string' } }; + + assert.throws(() => { + parseArgs({ args, options }); + }, { + code: 'ERR_PARSE_ARGS_INVALID_OPTION_VALUE' + }); +}); + +test('strict: when candidate option value is long option then throws', () => { + const args = ['--with', '--foo']; + const options = { with: { type: 'string' } }; + + assert.throws(() => { + parseArgs({ args, options }); + }, { + code: 'ERR_PARSE_ARGS_INVALID_OPTION_VALUE' + }); +}); + +test('strict: when short option and suspect value then throws with short option in error message', () => { + const args = ['-w', '--foo']; + const options = { with: { type: 'string', short: 'w' } }; + + assert.throws(() => { + parseArgs({ args, options }); + }, /for '-w'/ + ); +}); + +test('strict: when long option and suspect value then throws with long option in error message', () => { + const args = ['--with', '--foo']; + const options = { with: { type: 'string' } }; + + assert.throws(() => { + parseArgs({ args, options }); + }, /for '--with'/ + ); +}); + +test('strict: when short option and suspect value then throws with whole expected message', () => { + const args = ['-w', '--foo']; + const options = { with: { type: 'string', short: 'w' } }; + + try { + parseArgs({ args, options }); + } catch (err) { + console.info(err.message); + } + + assert.throws(() => { + parseArgs({ args, options }); + }, /To specify an option argument starting with a dash use '--with=-XYZ' or '-w-XYZ'/ + ); +}); + +test('strict: when long option and suspect value then throws with whole expected message', () => { + const args = ['--with', '--foo']; + const options = { with: { type: 'string', short: 'w' } }; + + assert.throws(() => { + parseArgs({ args, options }); + }, /To specify an option argument starting with a dash use '--with=-XYZ'/ + ); +}); diff --git a/test/parallel/test-perf-hooks-resourcetiming.js b/test/parallel/test-perf-hooks-resourcetiming.js new file mode 100644 index 00000000000000..60a7e908bed6f4 --- /dev/null +++ b/test/parallel/test-perf-hooks-resourcetiming.js @@ -0,0 +1,265 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { + PerformanceObserver, + PerformanceEntry, + PerformanceResourceTiming, + performance: { + clearResourceTimings, + markResourceTiming, + }, +} = require('perf_hooks'); + +assert(PerformanceObserver); +assert(PerformanceEntry); +assert(PerformanceResourceTiming); +assert(clearResourceTimings); +assert(markResourceTiming); + +function createTimingInfo({ + startTime = 0, + redirectStartTime = 0, + redirectEndTime = 0, + postRedirectStartTime = 0, + finalServiceWorkerStartTime = 0, + finalNetworkRequestStartTime = 0, + finalNetworkResponseStartTime = 0, + endTime = 0, + encodedBodySize = 0, + decodedBodySize = 0, + finalConnectionTimingInfo = null +}) { + if (finalConnectionTimingInfo !== null) { + finalConnectionTimingInfo.domainLookupStartTime = + finalConnectionTimingInfo.domainLookupStartTime || 0; + finalConnectionTimingInfo.domainLookupEndTime = + finalConnectionTimingInfo.domainLookupEndTime || 0; + finalConnectionTimingInfo.connectionStartTime = + finalConnectionTimingInfo.connectionStartTime || 0; + finalConnectionTimingInfo.connectionEndTime = + finalConnectionTimingInfo.connectionEndTime || 0; + finalConnectionTimingInfo.secureConnectionStartTime = + finalConnectionTimingInfo.secureConnectionStartTime || 0; + finalConnectionTimingInfo.ALPNNegotiatedProtocol = + finalConnectionTimingInfo.ALPNNegotiatedProtocol || []; + } + return { + startTime, + redirectStartTime, + redirectEndTime, + postRedirectStartTime, + finalServiceWorkerStartTime, + finalNetworkRequestStartTime, + finalNetworkResponseStartTime, + endTime, + encodedBodySize, + decodedBodySize, + finalConnectionTimingInfo, + }; +} + +// PerformanceResourceTiming should not be initialized externally +{ + assert.throws(() => new PerformanceResourceTiming(), { + name: 'TypeError', + message: 'Illegal constructor', + code: 'ERR_ILLEGAL_CONSTRUCTOR', + }); +} + +// Using performance.getEntries*() +{ + const timingInfo = createTimingInfo({ finalConnectionTimingInfo: {} }); + const customGlobal = {}; + const requestedUrl = 'http://localhost:8080'; + const cacheMode = 'local'; + const initiatorType = 'fetch'; + const resource = markResourceTiming( + timingInfo, + requestedUrl, + initiatorType, + customGlobal, + cacheMode, + ); + + assert(resource instanceof PerformanceEntry); + assert(resource instanceof PerformanceResourceTiming); + + { + const entries = performance.getEntries(); + assert.strictEqual(entries.length, 1); + assert(entries[0] instanceof PerformanceResourceTiming); + } + + { + const entries = performance.getEntriesByType('resource'); + assert.strictEqual(entries.length, 1); + assert(entries[0] instanceof PerformanceResourceTiming); + } + + { + const entries = performance.getEntriesByName(resource.name); + assert.strictEqual(entries.length, 1); + assert(entries[0] instanceof PerformanceResourceTiming); + } + + clearResourceTimings(); + assert.strictEqual(performance.getEntries().length, 0); +} + +// Assert resource data based in timingInfo + +// default values +{ + const timingInfo = createTimingInfo({ finalConnectionTimingInfo: {} }); + const customGlobal = {}; + const requestedUrl = 'http://localhost:8080'; + const cacheMode = 'local'; + const initiatorType = 'fetch'; + const resource = markResourceTiming( + timingInfo, + requestedUrl, + initiatorType, + customGlobal, + cacheMode, + ); + + assert(resource instanceof PerformanceEntry); + assert(resource instanceof PerformanceResourceTiming); + + assert.strictEqual(resource.entryType, 'resource'); + assert.strictEqual(resource.name, requestedUrl); + assert.ok(typeof resource.cacheMode === 'undefined', 'cacheMode does not have a getter'); + assert.strictEqual(resource.startTime, timingInfo.startTime); + assert.strictEqual(resource.duration, 0); + assert.strictEqual(resource.workerStart, 0); + assert.strictEqual(resource.redirectStart, 0); + assert.strictEqual(resource.redirectEnd, 0); + assert.strictEqual(resource.fetchStart, 0); + assert.strictEqual(resource.domainLookupStart, 0); + assert.strictEqual(resource.domainLookupEnd, 0); + assert.strictEqual(resource.connectStart, 0); + assert.strictEqual(resource.connectEnd, 0); + assert.strictEqual(resource.secureConnectionStart, 0); + assert.deepStrictEqual(resource.nextHopProtocol, []); + assert.strictEqual(resource.requestStart, 0); + assert.strictEqual(resource.responseStart, 0); + assert.strictEqual(resource.responseEnd, 0); + assert.strictEqual(resource.encodedBodySize, 0); + assert.strictEqual(resource.decodedBodySize, 0); + assert.strictEqual(resource.transferSize, 0); + assert.deepStrictEqual(resource.toJSON(), { + name: requestedUrl, + entryType: 'resource', + startTime: 0, + duration: 0, + initiatorType, + nextHopProtocol: [], + workerStart: 0, + redirectStart: 0, + redirectEnd: 0, + fetchStart: 0, + domainLookupStart: 0, + domainLookupEnd: 0, + connectStart: 0, + connectEnd: 0, + secureConnectionStart: 0, + requestStart: 0, + responseStart: 0, + responseEnd: 0, + transferSize: 0, + encodedBodySize: 0, + decodedBodySize: 0, + }); + + assert(resource instanceof PerformanceEntry); + assert(resource instanceof PerformanceResourceTiming); + + clearResourceTimings(); + const entries = performance.getEntries(); + assert.strictEqual(entries.length, 0); +} + +// custom getters math +{ + const timingInfo = createTimingInfo({ + endTime: 100, + startTime: 50, + encodedBodySize: 150, + }); + const customGlobal = {}; + const requestedUrl = 'http://localhost:8080'; + const cacheMode = ''; + const initiatorType = 'fetch'; + const resource = markResourceTiming( + timingInfo, + requestedUrl, + initiatorType, + customGlobal, + cacheMode, + ); + + assert(resource instanceof PerformanceEntry); + assert(resource instanceof PerformanceResourceTiming); + + assert.strictEqual(resource.entryType, 'resource'); + assert.strictEqual(resource.name, requestedUrl); + assert.ok(typeof resource.cacheMode === 'undefined', 'cacheMode does not have a getter'); + assert.strictEqual(resource.startTime, timingInfo.startTime); + // Duration should be the timingInfo endTime - startTime + assert.strictEqual(resource.duration, 50); + // TransferSize should be encodedBodySize + 300 when cacheMode is empty + assert.strictEqual(resource.transferSize, 450); + + assert(resource instanceof PerformanceEntry); + assert(resource instanceof PerformanceResourceTiming); + + clearResourceTimings(); + const entries = performance.getEntries(); + assert.strictEqual(entries.length, 0); +} + +// Using PerformanceObserver +{ + const obs = new PerformanceObserver(common.mustCall((list) => { + { + const entries = list.getEntries(); + assert.strictEqual(entries.length, 1); + assert(entries[0] instanceof PerformanceResourceTiming); + } + { + const entries = list.getEntriesByType('resource'); + assert.strictEqual(entries.length, 1); + assert(entries[0] instanceof PerformanceResourceTiming); + } + { + const entries = list.getEntriesByName('http://localhost:8080'); + assert.strictEqual(entries.length, 1); + assert(entries[0] instanceof PerformanceResourceTiming); + } + obs.disconnect(); + })); + obs.observe({ entryTypes: ['resource'] }); + + const timingInfo = createTimingInfo({ finalConnectionTimingInfo: {} }); + const customGlobal = {}; + const requestedUrl = 'http://localhost:8080'; + const cacheMode = 'local'; + const initiatorType = 'fetch'; + const resource = markResourceTiming( + timingInfo, + requestedUrl, + initiatorType, + customGlobal, + cacheMode, + ); + + assert(resource instanceof PerformanceEntry); + assert(resource instanceof PerformanceResourceTiming); + + clearResourceTimings(); + const entries = performance.getEntries(); + assert.strictEqual(entries.length, 0); +} diff --git a/test/parallel/test-performance-function.js b/test/parallel/test-performance-function.js index ea928028208e47..5f774d6c2adcf5 100644 --- a/test/parallel/test-performance-function.js +++ b/test/parallel/test-performance-function.js @@ -75,16 +75,18 @@ const { }); } -// Function can only be wrapped once, also check length and name +// Function can be wrapped many times, also check length and name { const m = (a, b = 1) => {}; const n = performance.timerify(m); const o = performance.timerify(m); const p = performance.timerify(n); - assert.strictEqual(n, o); - assert.strictEqual(n, p); + assert.notStrictEqual(n, o); + assert.notStrictEqual(n, p); + assert.notStrictEqual(o, p); assert.strictEqual(n.length, m.length); assert.strictEqual(n.name, 'timerified m'); + assert.strictEqual(p.name, 'timerified timerified m'); } (async () => { @@ -121,3 +123,22 @@ const { }); }); })().then(common.mustCall()); + +// Regression tests for https://github.com/nodejs/node/issues/40623 +{ + assert.strictEqual(performance.timerify(function func() { + return 1; + })(), 1); + assert.strictEqual(performance.timerify(function() { + return 1; + })(), 1); + assert.strictEqual(performance.timerify(() => { + return 1; + })(), 1); + class C {} + const wrap = performance.timerify(C); + assert.ok(new wrap() instanceof C); + assert.throws(() => wrap(), { + name: 'TypeError', + }); +} diff --git a/test/parallel/test-performance-gc.js b/test/parallel/test-performance-gc.js index 1561bc5fb78572..9c4a3a850a22dd 100644 --- a/test/parallel/test-performance-gc.js +++ b/test/parallel/test-performance-gc.js @@ -35,6 +35,7 @@ const kinds = [ assert.strictEqual(entry.flags, NODE_PERFORMANCE_GC_FLAGS_FORCED); assert.strictEqual(entry.detail.flags, NODE_PERFORMANCE_GC_FLAGS_FORCED); assert.strictEqual(typeof entry.startTime, 'number'); + assert(entry.startTime < 1e4, 'startTime should be relative to performance.timeOrigin.'); assert.strictEqual(typeof entry.duration, 'number'); obs.disconnect(); })); diff --git a/test/parallel/test-process-env-allowed-flags-are-documented.js b/test/parallel/test-process-env-allowed-flags-are-documented.js index f4dd77e075b89b..dc4c704b6f0b88 100644 --- a/test/parallel/test-process-env-allowed-flags-are-documented.js +++ b/test/parallel/test-process-env-allowed-flags-are-documented.js @@ -45,6 +45,7 @@ for (const line of [...nodeOptionsLines, ...v8OptionsLines]) { if (!common.hasOpenSSL3) { documented.delete('--openssl-legacy-provider'); + documented.delete('--openssl-shared-config'); } // Filter out options that are conditionally present. @@ -55,6 +56,7 @@ const conditionalOpts = [ return [ '--openssl-config', common.hasOpenSSL3 ? '--openssl-legacy-provider' : '', + common.hasOpenSSL3 ? '--openssl-shared-config' : '', '--tls-cipher-list', '--use-bundled-ca', '--use-openssl-ca', diff --git a/test/parallel/test-process-env-tz.js b/test/parallel/test-process-env-tz.js index b0188ab9c267f8..dcc69ed4bf1d3b 100644 --- a/test/parallel/test-process-env-tz.js +++ b/test/parallel/test-process-env-tz.js @@ -1,10 +1,4 @@ 'use strict'; - -// Set the locale to a known good value because it affects ICU's date string -// formatting. Setting LC_ALL needs to happen before the first call to -// `icu::Locale::getDefault()` because ICU caches the result. -process.env.LC_ALL = 'C'; - const common = require('../common'); const assert = require('assert'); @@ -31,6 +25,7 @@ if (date.toString().includes('(Central European Time)') || common.skip('tzdata too old'); } +// Text representation of timezone depends on locale in environment assert.match( date.toString(), /^Sat Apr 14 2018 14:34:56 GMT\+0200 \(.+\)$/); diff --git a/test/parallel/test-process-setgroups.js b/test/parallel/test-process-setgroups.js index 2e04c8a1756383..9506f24a5f3447 100644 --- a/test/parallel/test-process-setgroups.js +++ b/test/parallel/test-process-setgroups.js @@ -29,8 +29,6 @@ assert.throws( { code: 'ERR_OUT_OF_RANGE', name: 'RangeError', - message: 'The value of "groups[1]" is out of range. ' + - 'It must be >= 0 && < 4294967296. Received -1' } ); diff --git a/test/parallel/test-readline-emit-keypress-events.js b/test/parallel/test-readline-emit-keypress-events.js index 8bb10d905cae2a..a9ffd3276c419c 100644 --- a/test/parallel/test-readline-emit-keypress-events.js +++ b/test/parallel/test-readline-emit-keypress-events.js @@ -7,22 +7,66 @@ require('../common'); const assert = require('assert'); const readline = require('readline'); const PassThrough = require('stream').PassThrough; -const stream = new PassThrough(); -const sequence = []; -const keys = []; -readline.emitKeypressEvents(stream); - -stream.on('keypress', (s, k) => { - sequence.push(s); - keys.push(k); -}); - -stream.write('foo'); - -assert.deepStrictEqual(sequence, ['f', 'o', 'o']); -assert.deepStrictEqual(keys, [ +const expectedSequence = ['f', 'o', 'o']; +const expectedKeys = [ { sequence: 'f', name: 'f', ctrl: false, meta: false, shift: false }, { sequence: 'o', name: 'o', ctrl: false, meta: false, shift: false }, { sequence: 'o', name: 'o', ctrl: false, meta: false, shift: false }, -]); +]; + +{ + const stream = new PassThrough(); + const sequence = []; + const keys = []; + + readline.emitKeypressEvents(stream); + stream.on('keypress', (s, k) => { + sequence.push(s); + keys.push(k); + }); + stream.write('foo'); + + assert.deepStrictEqual(sequence, expectedSequence); + assert.deepStrictEqual(keys, expectedKeys); +} + +{ + const stream = new PassThrough(); + const sequence = []; + const keys = []; + + stream.on('keypress', (s, k) => { + sequence.push(s); + keys.push(k); + }); + readline.emitKeypressEvents(stream); + stream.write('foo'); + + assert.deepStrictEqual(sequence, expectedSequence); + assert.deepStrictEqual(keys, expectedKeys); +} + +{ + const stream = new PassThrough(); + const sequence = []; + const keys = []; + const keypressListener = (s, k) => { + sequence.push(s); + keys.push(k); + }; + + stream.on('keypress', keypressListener); + readline.emitKeypressEvents(stream); + stream.removeListener('keypress', keypressListener); + stream.write('foo'); + + assert.deepStrictEqual(sequence, []); + assert.deepStrictEqual(keys, []); + + stream.on('keypress', keypressListener); + stream.write('foo'); + + assert.deepStrictEqual(sequence, expectedSequence); + assert.deepStrictEqual(keys, expectedKeys); +} diff --git a/test/parallel/test-readline-interface.js b/test/parallel/test-readline-interface.js index a458075471a236..7bffa0b66e5cf8 100644 --- a/test/parallel/test-readline-interface.js +++ b/test/parallel/test-readline-interface.js @@ -144,11 +144,7 @@ function assertCursorRowsAndCols(rli, rows, cols) { input, tabSize: 0 }), - { - message: 'The value of "tabSize" is out of range. ' + - 'It must be >= 1 && < 4294967296. Received 0', - code: 'ERR_OUT_OF_RANGE' - } + { code: 'ERR_OUT_OF_RANGE' } ); assert.throws( @@ -1023,6 +1019,17 @@ for (let i = 0; i < 12; i++) { rli.close(); } + // Calling the question callback with abort signal + { + const [rli] = getInterface({ terminal }); + const { signal } = new AbortController(); + rli.question('foo?', { signal }, common.mustCall((answer) => { + assert.strictEqual(answer, 'bar'); + })); + rli.write('bar\n'); + rli.close(); + } + // Calling the question multiple times { const [rli] = getInterface({ terminal }); @@ -1047,6 +1054,19 @@ for (let i = 0; i < 12; i++) { rli.close(); } + // Calling the promisified question with abort signal + { + const [rli] = getInterface({ terminal }); + const question = util.promisify(rli.question).bind(rli); + const { signal } = new AbortController(); + question('foo?', { signal }) + .then(common.mustCall((answer) => { + assert.strictEqual(answer, 'bar'); + })); + rli.write('bar\n'); + rli.close(); + } + // Aborting a question { const ac = new AbortController(); diff --git a/test/parallel/test-readline-promises-interface.js b/test/parallel/test-readline-promises-interface.js index 455dabe6749bd5..2a211025cdb27b 100644 --- a/test/parallel/test-readline-promises-interface.js +++ b/test/parallel/test-readline-promises-interface.js @@ -121,11 +121,7 @@ function assertCursorRowsAndCols(rli, rows, cols) { input, tabSize: 0 }), - { - message: 'The value of "tabSize" is out of range. ' + - 'It must be >= 1 && < 4294967296. Received 0', - code: 'ERR_OUT_OF_RANGE' - } + { code: 'ERR_OUT_OF_RANGE' } ); assert.throws( @@ -913,6 +909,17 @@ for (let i = 0; i < 12; i++) { rli.close(); } + // Calling the question callback with abort signal + { + const [rli] = getInterface({ terminal }); + const { signal } = new AbortController(); + rli.question('foo?', { signal }).then(common.mustCall((answer) => { + assert.strictEqual(answer, 'bar'); + })); + rli.write('bar\n'); + rli.close(); + } + // Aborting a question { const ac = new AbortController(); diff --git a/test/parallel/test-repl-history-navigation.js b/test/parallel/test-repl-history-navigation.js index 29cb7816f0feb0..39ccc3732c3d82 100644 --- a/test/parallel/test-repl-history-navigation.js +++ b/test/parallel/test-repl-history-navigation.js @@ -74,6 +74,7 @@ const tests = [ env: { NODE_REPL_HISTORY: defaultHistoryPath }, test: [ 'let ab = 45', ENTER, '555 + 909', ENTER, + 'let autocompleteMe = 123', ENTER, '{key : {key2 :[] }}', ENTER, 'Array(100).fill(1).map((e, i) => i ** i)', LEFT, LEFT, DELETE, '2', ENTER], @@ -82,7 +83,7 @@ const tests = [ }, { env: { NODE_REPL_HISTORY: defaultHistoryPath }, - test: [UP, UP, UP, UP, UP, DOWN, DOWN, DOWN, DOWN, DOWN], + test: [UP, UP, UP, UP, UP, UP, DOWN, DOWN, DOWN, DOWN, DOWN, DOWN], expected: [prompt, `${prompt}Array(100).fill(1).map((e, i) => i ** 2)`, prev && '\n// [ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, ' + @@ -92,6 +93,7 @@ const tests = [ ' 2025, 2116, 2209,...', `${prompt}{key : {key2 :[] }}`, prev && '\n// { key: { key2: [] } }', + `${prompt}let autocompleteMe = 123`, `${prompt}555 + 909`, prev && '\n// 1464', `${prompt}let ab = 45`, @@ -99,6 +101,7 @@ const tests = [ `${prompt}let ab = 45`, `${prompt}555 + 909`, prev && '\n// 1464', + `${prompt}let autocompleteMe = 123`, `${prompt}{key : {key2 :[] }}`, prev && '\n// { key: { key2: [] } }', `${prompt}Array(100).fill(1).map((e, i) => i ** 2)`, @@ -128,7 +131,7 @@ const tests = [ preview: false, showEscapeCodes: true, test: [ - '55', UP, UP, UP, UP, UP, UP, ENTER, + '55', UP, UP, UP, UP, UP, UP, UP, ENTER, ], expected: [ '\x1B[1G', '\x1B[0J', prompt, '\x1B[3G', @@ -185,10 +188,10 @@ const tests = [ ENTER, 'veryLongName'.repeat(30), ENTER, - `${'\x1B[90m \x1B[39m'.repeat(235)} fun`, + `${'\x1B[90m \x1B[39m'.repeat(229)} aut`, ESCAPE, ENTER, - `${' '.repeat(236)} fun`, + `${' '.repeat(230)} aut`, ESCAPE, ENTER, ], @@ -236,19 +239,20 @@ const tests = [ prompt, '\x1B[3G', // 1. UP // This exceeds the maximum columns (250): - // Whitespace + prompt + ' // '.length + 'function'.length - // 236 + 2 + 4 + 8 + // Whitespace + prompt + ' // '.length + 'autocompleteMe'.length + // 230 + 2 + 4 + 14 '\x1B[1G', '\x1B[0J', - `${prompt}${' '.repeat(236)} fun`, '\x1B[243G', - ' // ction', '\x1B[243G', - ' // ction', '\x1B[243G', + `${prompt}${' '.repeat(230)} aut`, '\x1B[237G', + ' // ocompleteMe', '\x1B[237G', + '\n// 123', '\x1B[237G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', '\x1B[0K', // 2. UP '\x1B[1G', '\x1B[0J', - `${prompt}${' '.repeat(235)} fun`, '\x1B[242G', - // TODO(BridgeAR): Investigate why the preview is generated twice. - ' // ction', '\x1B[242G', - ' // ction', '\x1B[242G', + `${prompt}${' '.repeat(229)} aut`, '\x1B[236G', + ' // ocompleteMe', '\x1B[236G', + '\n// 123', '\x1B[236G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', // Preview cleanup '\x1B[0K', // 3. UP @@ -326,8 +330,8 @@ const tests = [ skip: !process.features.inspector, checkTotal: true, test: [ - 'fu', - 'n', + 'au', + 't', RIGHT, BACKSPACE, LEFT, @@ -353,74 +357,93 @@ const tests = [ // K = Erase in line; 0 = right; 1 = left; 2 = total expected: [ // 0. - // 'f' - '\x1B[1G', '\x1B[0J', prompt, '\x1B[3G', 'f', + // 'a' + '\x1B[1G', '\x1B[0J', prompt, '\x1B[3G', 'a', // 'u' - 'u', ' // nction', '\x1B[5G', - // 'n' - Cleanup + 'u', ' // tocompleteMe', '\x1B[5G', + '\n// 123', '\x1B[5G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', + // 't' - Cleanup '\x1B[0K', - 'n', ' // ction', '\x1B[6G', + 't', ' // ocompleteMe', '\x1B[6G', + '\n// 123', '\x1B[6G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', // 1. Right. Cleanup '\x1B[0K', - 'ction', + 'ocompleteMe', + '\n// 123', '\x1B[17G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', // 2. Backspace. Refresh - '\x1B[1G', '\x1B[0J', `${prompt}functio`, '\x1B[10G', + '\x1B[1G', '\x1B[0J', `${prompt}autocompleteM`, '\x1B[16G', // Autocomplete and refresh? - ' // n', '\x1B[10G', ' // n', '\x1B[10G', + ' // e', '\x1B[16G', + '\n// 123', '\x1B[16G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', // 3. Left. Cleanup '\x1B[0K', - '\x1B[1D', '\x1B[10G', ' // n', '\x1B[9G', + '\x1B[1D', '\x1B[16G', ' // e', '\x1B[15G', // 4. Left. Cleanup - '\x1B[10G', '\x1B[0K', '\x1B[9G', - '\x1B[1D', '\x1B[10G', ' // n', '\x1B[8G', + '\x1B[16G', '\x1B[0K', '\x1B[15G', + '\x1B[1D', '\x1B[16G', ' // e', '\x1B[14G', // 5. 'A' - Cleanup - '\x1B[10G', '\x1B[0K', '\x1B[8G', + '\x1B[16G', '\x1B[0K', '\x1B[14G', // Refresh - '\x1B[1G', '\x1B[0J', `${prompt}functAio`, '\x1B[9G', + '\x1B[1G', '\x1B[0J', `${prompt}autocompletAeM`, '\x1B[15G', // 6. Backspace. Refresh - '\x1B[1G', '\x1B[0J', `${prompt}functio`, '\x1B[8G', '\x1B[10G', ' // n', - '\x1B[8G', '\x1B[10G', ' // n', - '\x1B[8G', '\x1B[10G', + '\x1B[1G', '\x1B[0J', `${prompt}autocompleteM`, + '\x1B[14G', '\x1B[16G', ' // e', + '\x1B[14G', '\x1B[16G', ' // e', + '\x1B[14G', '\x1B[16G', // 7. Go to end. Cleanup - '\x1B[0K', '\x1B[8G', '\x1B[2C', - 'n', + '\x1B[0K', '\x1B[14G', '\x1B[2C', + 'e', + '\n// 123', '\x1B[17G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', // 8. Backspace. Refresh - '\x1B[1G', '\x1B[0J', `${prompt}functio`, '\x1B[10G', + '\x1B[1G', '\x1B[0J', `${prompt}autocompleteM`, '\x1B[16G', // Autocomplete - ' // n', '\x1B[10G', ' // n', '\x1B[10G', + ' // e', '\x1B[16G', + '\n// 123', '\x1B[16G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', // 9. Word left. Cleanup - '\x1B[0K', '\x1B[7D', '\x1B[10G', ' // n', '\x1B[3G', '\x1B[10G', + '\x1B[0K', '\x1B[13D', '\x1B[16G', ' // e', '\x1B[3G', '\x1B[16G', // 10. Word right. Cleanup - '\x1B[0K', '\x1B[3G', '\x1B[7C', ' // n', '\x1B[10G', + '\x1B[0K', '\x1B[3G', '\x1B[13C', ' // e', '\x1B[16G', + '\n// 123', '\x1B[16G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', // 11. ESCAPE '\x1B[0K', // 12. ENTER '\r\n', - 'Uncaught ReferenceError: functio is not defined\n', + 'Uncaught ReferenceError: autocompleteM is not defined\n', '\x1B[1G', '\x1B[0J', // 13. UP prompt, '\x1B[3G', '\x1B[1G', '\x1B[0J', - `${prompt}functio`, '\x1B[10G', - ' // n', '\x1B[10G', - ' // n', '\x1B[10G', + `${prompt}autocompleteM`, '\x1B[16G', + ' // e', '\x1B[16G', + '\n// 123', '\x1B[16G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', // 14. LEFT - '\x1B[0K', '\x1B[1D', - '\x1B[10G', ' // n', '\x1B[9G', '\x1B[10G', + '\x1B[0K', '\x1B[1D', '\x1B[16G', + ' // e', '\x1B[15G', '\x1B[16G', // 15. ENTER - '\x1B[0K', '\x1B[9G', '\x1B[1C', + '\x1B[0K', '\x1B[15G', '\x1B[1C', '\r\n', - 'Uncaught ReferenceError: functio is not defined\n', + 'Uncaught ReferenceError: autocompleteM is not defined\n', '\x1B[1G', '\x1B[0J', - '> ', '\x1B[3G', + prompt, '\x1B[3G', // 16. UP '\x1B[1G', '\x1B[0J', - '> functio', '\x1B[10G', - ' // n', '\x1B[10G', - ' // n', '\x1B[10G', '\x1B[0K', + `${prompt}autocompleteM`, '\x1B[16G', + ' // e', '\x1B[16G', + '\n// 123', '\x1B[16G', + '\x1B[1A', '\x1B[1B', '\x1B[2K', '\x1B[1A', + '\x1B[0K', // 17. ENTER - 'n', '\r\n', + 'e', '\r\n', + '123\n', '\x1B[1G', '\x1B[0J', - '... ', '\x1B[5G', + prompt, '\x1B[3G', '\r\n', ], clean: true diff --git a/test/parallel/test-repl-reverse-search.js b/test/parallel/test-repl-reverse-search.js index 5165dc2820d2d6..2808c953431bd2 100644 --- a/test/parallel/test-repl-reverse-search.js +++ b/test/parallel/test-repl-reverse-search.js @@ -212,9 +212,7 @@ const tests = [ expected: [ '\x1B[1G', '\x1B[0J', prompt, '\x1B[3G', - 'f', 'u', ' // nction', - '\x1B[5G', '\x1B[0K', - '\nbck-i-search: _', '\x1B[1A', '\x1B[5G', + 'f', 'u', '\nbck-i-search: _', '\x1B[1A', '\x1B[5G', '\x1B[3G', '\x1B[0J', '{key : {key2 :[] }}\nbck-i-search: }_', '\x1B[1A', '\x1B[21G', '\x1B[3G', '\x1B[0J', diff --git a/test/parallel/test-repl-tab-complete.js b/test/parallel/test-repl-tab-complete.js index 5b60c88dc712ce..cc211d6da8aaef 100644 --- a/test/parallel/test-repl-tab-complete.js +++ b/test/parallel/test-repl-tab-complete.js @@ -205,6 +205,38 @@ testMe.complete('str.len', common.mustCall(function(error, data) { putIn.run(['.clear']); +// Tab completion should be case-insensitive if member part is lower-case +putIn.run([ + 'var foo = { barBar: 1, BARbuz: 2, barBLA: 3 };', +]); +testMe.complete( + 'foo.b', + common.mustCall(function(error, data) { + assert.deepStrictEqual(data, [ + ['foo.BARbuz', 'foo.barBLA', 'foo.barBar'], + 'foo.b', + ]); + }) +); + +putIn.run(['.clear']); + +// Tab completion should be case-insensitive if member part is upper-case +putIn.run([ + 'var foo = { barBar: 1, BARbuz: 2, barBLA: 3 };', +]); +testMe.complete( + 'foo.B', + common.mustCall(function(error, data) { + assert.deepStrictEqual(data, [ + ['foo.BARbuz', 'foo.barBLA', 'foo.barBar'], + 'foo.B', + ]); + }) +); + +putIn.run(['.clear']); + // Tab completion should not break on spaces const spaceTimeout = setTimeout(function() { throw new Error('timeout'); @@ -588,12 +620,27 @@ const testNonGlobal = repl.start({ useGlobal: false }); -const builtins = [['Infinity', 'Int16Array', 'Int32Array', - 'Int8Array'], 'I']; +const builtins = [ + [ + 'if', + 'import', + 'in', + 'instanceof', + '', + 'Infinity', + 'Int16Array', + 'Int32Array', + 'Int8Array', + ...(common.hasIntl ? ['Intl'] : []), + 'inspector', + 'isFinite', + 'isNaN', + '', + 'isPrototypeOf', + ], + 'I', +]; -if (common.hasIntl) { - builtins[0].push('Intl'); -} testNonGlobal.complete('I', common.mustCall((error, data) => { assert.deepStrictEqual(data, builtins); })); diff --git a/test/parallel/test-require-resolve.js b/test/parallel/test-require-resolve.js index e7125e39faf7c3..ab58033e2c9b5c 100644 --- a/test/parallel/test-require-resolve.js +++ b/test/parallel/test-require-resolve.js @@ -80,3 +80,13 @@ require(fixtures.path('resolve-paths', 'default', 'verify-paths.js')); assert.strictEqual(resolvedPaths.includes('/node_modules'), false); }); } + +{ + assert.strictEqual(require.resolve('node:test'), 'node:test'); + assert.strictEqual(require.resolve('node:fs'), 'node:fs'); + + assert.throws( + () => require.resolve('node:unknown'), + { code: 'MODULE_NOT_FOUND' }, + ); +} diff --git a/test/parallel/test-runner-cli.js b/test/parallel/test-runner-cli.js new file mode 100644 index 00000000000000..7bd95372a2d68b --- /dev/null +++ b/test/parallel/test-runner-cli.js @@ -0,0 +1,107 @@ +'use strict'; +require('../common'); +const assert = require('assert'); +const { spawnSync } = require('child_process'); +const { join } = require('path'); +const fixtures = require('../common/fixtures'); +const testFixtures = fixtures.path('test-runner'); + +{ + // File not found. + const args = ['--test', 'a-random-file-that-does-not-exist.js']; + const child = spawnSync(process.execPath, args); + + assert.strictEqual(child.status, 1); + assert.strictEqual(child.signal, null); + assert.strictEqual(child.stdout.toString(), ''); + assert.match(child.stderr.toString(), /^Could not find/); +} + +{ + // Default behavior. node_modules is ignored. Files that don't match the + // pattern are ignored except in test/ directories. + const args = ['--test', testFixtures]; + const child = spawnSync(process.execPath, args); + + assert.strictEqual(child.status, 1); + assert.strictEqual(child.signal, null); + assert.strictEqual(child.stderr.toString(), ''); + const stdout = child.stdout.toString(); + assert.match(stdout, /ok 1 - .+index\.test\.js/); + assert.match(stdout, /not ok 2 - .+random\.test\.mjs/); + assert.match(stdout, /not ok 1 - this should fail/); + assert.match(stdout, /ok 3 - .+subdir.+subdir_test\.js/); + assert.match(stdout, /ok 4 - .+random\.cjs/); +} + +{ + // User specified files that don't match the pattern are still run. + const args = ['--test', testFixtures, join(testFixtures, 'index.js')]; + const child = spawnSync(process.execPath, args); + + assert.strictEqual(child.status, 1); + assert.strictEqual(child.signal, null); + assert.strictEqual(child.stderr.toString(), ''); + const stdout = child.stdout.toString(); + assert.match(stdout, /not ok 1 - .+index\.js/); + assert.match(stdout, /ok 2 - .+index\.test\.js/); + assert.match(stdout, /not ok 3 - .+random\.test\.mjs/); + assert.match(stdout, /not ok 1 - this should fail/); + assert.match(stdout, /ok 4 - .+subdir.+subdir_test\.js/); +} + +{ + // Searches node_modules if specified. + const args = ['--test', join(testFixtures, 'node_modules')]; + const child = spawnSync(process.execPath, args); + + assert.strictEqual(child.status, 1); + assert.strictEqual(child.signal, null); + assert.strictEqual(child.stderr.toString(), ''); + const stdout = child.stdout.toString(); + assert.match(stdout, /not ok 1 - .+test-nm\.js/); +} + +{ + // The current directory is used by default. + const args = ['--test']; + const options = { cwd: testFixtures }; + const child = spawnSync(process.execPath, args, options); + + assert.strictEqual(child.status, 1); + assert.strictEqual(child.signal, null); + assert.strictEqual(child.stderr.toString(), ''); + const stdout = child.stdout.toString(); + assert.match(stdout, /ok 1 - .+index\.test\.js/); + assert.match(stdout, /not ok 2 - .+random\.test\.mjs/); + assert.match(stdout, /not ok 1 - this should fail/); + assert.match(stdout, /ok 3 - .+subdir.+subdir_test\.js/); + assert.match(stdout, /ok 4 - .+random\.cjs/); +} + +{ + // Flags that cannot be combined with --test. + const flags = [ + ['--check', '--test'], + ['--interactive', '--test'], + ['--eval', 'console.log("should not print")', '--test'], + ['--print', 'console.log("should not print")', '--test'], + ]; + + if (process.features.inspector) { + flags.push( + ['--inspect', '--test'], + ['--inspect-brk', '--test'], + ); + } + + flags.forEach((args) => { + const child = spawnSync(process.execPath, args); + + assert.notStrictEqual(child.status, 0); + assert.strictEqual(child.signal, null); + assert.strictEqual(child.stdout.toString(), ''); + const stderr = child.stderr.toString(); + assert.match(stderr, /--test/); + }); +} diff --git a/test/parallel/test-runner-import-no-scheme.js b/test/parallel/test-runner-import-no-scheme.js index 4008d7494b6670..45dd83d0251988 100644 --- a/test/parallel/test-runner-import-no-scheme.js +++ b/test/parallel/test-runner-import-no-scheme.js @@ -1,15 +1,51 @@ 'use strict'; const common = require('../common'); +const tmpdir = require('../common/tmpdir'); const assert = require('assert'); +const { spawnSync } = require('child_process'); +const fs = require('fs'); +const path = require('path'); +const { createRequire } = require('module'); assert.throws( () => require('test'), - common.expectsError({ code: 'ERR_UNKNOWN_BUILTIN_MODULE' }), + common.expectsError({ code: 'MODULE_NOT_FOUND' }), ); (async () => { await assert.rejects( async () => import('test'), - common.expectsError({ code: 'ERR_UNKNOWN_BUILTIN_MODULE' }), + common.expectsError({ code: 'ERR_MODULE_NOT_FOUND' }), ); })().then(common.mustCall()); + +assert.throws( + () => require.resolve('test'), + common.expectsError({ code: 'MODULE_NOT_FOUND' }), +); + +// Verify that files in node_modules can be resolved. +tmpdir.refresh(); + +const packageRoot = path.join(tmpdir.path, 'node_modules', 'test'); +const indexFile = path.join(packageRoot, 'index.js'); + +fs.mkdirSync(packageRoot, { recursive: true }); +fs.writeFileSync(indexFile, 'module.exports = { marker: 1 };'); + +function test(argv) { + const child = spawnSync(process.execPath, argv, { cwd: tmpdir.path }); + assert.strictEqual(child.status, 0); + assert.strictEqual(child.stdout.toString().trim(), '{ marker: 1 }'); +} + +test(['-e', 'console.log(require("test"))']); +test(['-e', 'import("test").then(m=>console.log(m.default))']); +test(['--input-type=module', '-e', 'import test from "test";console.log(test)']); +test(['--input-type=module', '-e', 'console.log((await import("test")).default)']); + +{ + const dummyFile = path.join(tmpdir.path, 'file.js'); + const require = createRequire(dummyFile); + assert.strictEqual(require.resolve('test'), indexFile); +} diff --git a/test/parallel/test-runner-test-filter.js b/test/parallel/test-runner-test-filter.js new file mode 100644 index 00000000000000..b6afba22a2e814 --- /dev/null +++ b/test/parallel/test-runner-test-filter.js @@ -0,0 +1,42 @@ +// Flags: --expose-internals +'use strict'; +require('../common'); +const assert = require('assert'); +const { doesPathMatchFilter } = require('internal/test_runner/utils'); + +// Paths expected to match +[ + 'test.js', + 'test.cjs', + 'test.mjs', + 'test-foo.js', + 'test-foo.cjs', + 'test-foo.mjs', + 'foo.test.js', + 'foo.test.cjs', + 'foo.test.mjs', + 'foo-test.js', + 'foo-test.cjs', + 'foo-test.mjs', + 'foo_test.js', + 'foo_test.cjs', + 'foo_test.mjs', +].forEach((p) => { + assert.strictEqual(doesPathMatchFilter(p), true); +}); + +// Paths expected not to match +[ + 'test', + 'test.djs', + 'test.cs', + 'test.mj', + 'foo.js', + 'test-foo.sj', + 'test.foo.js', + 'test_foo.js', + 'testfoo.js', + 'foo-test1.mjs', +].forEach((p) => { + assert.strictEqual(doesPathMatchFilter(p), false); +}); diff --git a/test/parallel/test-shadow-realm.js b/test/parallel/test-shadow-realm.js new file mode 100644 index 00000000000000..0b20265537fb5c --- /dev/null +++ b/test/parallel/test-shadow-realm.js @@ -0,0 +1,12 @@ +// Flags: --experimental-shadow-realm +'use strict'; + +require('../common'); +const assert = require('assert'); + +// Validates we can construct ShadowRealm successfully. +const shadowRealm = new ShadowRealm(); + +const getter = shadowRealm.evaluate('globalThis.realmValue = "inner"; () => globalThis.realmValue;'); +assert.strictEqual(getter(), 'inner'); +assert.strictEqual('realmValue' in globalThis, false); diff --git a/test/parallel/test-stream-duplex.js b/test/parallel/test-stream-duplex.js index 2b2f9a9a0e6265..490744910cb1e1 100644 --- a/test/parallel/test-stream-duplex.js +++ b/test/parallel/test-stream-duplex.js @@ -20,9 +20,10 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const Duplex = require('stream').Duplex; +const { ReadableStream, WritableStream } = require('stream/web'); const stream = new Duplex({ objectMode: true }); @@ -53,3 +54,80 @@ process.on('exit', () => { assert.strictEqual(read.val, 1); assert.strictEqual(written.val, 2); }); + +// Duplex.fromWeb +{ + const dataToRead = Buffer.from('hello'); + const dataToWrite = Buffer.from('world'); + + const readable = new ReadableStream({ + start(controller) { + controller.enqueue(dataToRead); + }, + }); + + const writable = new WritableStream({ + write: common.mustCall((chunk) => { + assert.strictEqual(chunk, dataToWrite); + }) + }); + + const pair = { readable, writable }; + const duplex = Duplex.fromWeb(pair); + + duplex.write(dataToWrite); + duplex.once('data', common.mustCall((chunk) => { + assert.strictEqual(chunk, dataToRead); + })); +} + +// Duplex.fromWeb - using utf8 and objectMode +{ + const dataToRead = 'hello'; + const dataToWrite = 'world'; + + const readable = new ReadableStream({ + start(controller) { + controller.enqueue(dataToRead); + }, + }); + + const writable = new WritableStream({ + write: common.mustCall((chunk) => { + assert.strictEqual(chunk, dataToWrite); + }) + }); + + const pair = { + readable, + writable + }; + const duplex = Duplex.fromWeb(pair, { encoding: 'utf8', objectMode: true }); + + duplex.write(dataToWrite); + duplex.once('data', common.mustCall((chunk) => { + assert.strictEqual(chunk, dataToRead); + })); +} +// Duplex.toWeb +{ + const dataToRead = Buffer.from('hello'); + const dataToWrite = Buffer.from('world'); + + const duplex = Duplex({ + read() { + this.push(dataToRead); + this.push(null); + }, + write: common.mustCall((chunk) => { + assert.strictEqual(chunk, dataToWrite); + }) + }); + + const { writable, readable } = Duplex.toWeb(duplex); + writable.getWriter().write(dataToWrite); + + readable.getReader().read().then(common.mustCall((result) => { + assert.deepStrictEqual(Buffer.from(result.value), dataToRead); + })); +} diff --git a/test/parallel/test-stream-readable-async-iterators.js b/test/parallel/test-stream-readable-async-iterators.js index e8b69612014ca5..28975de405133f 100644 --- a/test/parallel/test-stream-readable-async-iterators.js +++ b/test/parallel/test-stream-readable-async-iterators.js @@ -63,7 +63,7 @@ async function tests() { }); await (async () => { - for await (const d of readable) { // eslint-disable-line no-unused-vars + for await (const d of readable) { return; } })(); diff --git a/test/parallel/test-tcp-wrap-listen.js b/test/parallel/test-tcp-wrap-listen.js index 0cac545e81d785..a19aed15071613 100644 --- a/test/parallel/test-tcp-wrap-listen.js +++ b/test/parallel/test-tcp-wrap-listen.js @@ -18,9 +18,9 @@ const r = (common.hasIPv6 ? server.bind6('::', 0) : server.bind('0.0.0.0', 0)); assert.strictEqual(r, 0); -let port = {}; + +const port = {}; server.getsockname(port); -port = port.port; server.listen(128); diff --git a/test/parallel/test-tls-basic-validations.js b/test/parallel/test-tls-basic-validations.js index 67058daf158cd0..4a3aab314680ac 100644 --- a/test/parallel/test-tls-basic-validations.js +++ b/test/parallel/test-tls-basic-validations.js @@ -103,8 +103,11 @@ assert.throws( const inputBuffer = Buffer.from(arrayBufferViewStr.repeat(8), 'utf8'); for (const expectView of common.getArrayBufferViews(inputBuffer)) { const out = {}; + const expected = Buffer.from(expectView.buffer.slice(), + expectView.byteOffset, + expectView.byteLength); tls.convertALPNProtocols(expectView, out); - assert(out.ALPNProtocols.equals(Buffer.from(expectView))); + assert(out.ALPNProtocols.equals(expected)); } } diff --git a/test/parallel/test-tls-securepair-leak.js b/test/parallel/test-tls-securepair-leak.js index 4cd927d64ac088..98bdcde76ec034 100644 --- a/test/parallel/test-tls-securepair-leak.js +++ b/test/parallel/test-tls-securepair-leak.js @@ -20,9 +20,9 @@ setImmediate(() => { global.gc(); const after = process.memoryUsage().external; - // It's not an exact science but a SecurePair grows .external by about 45 kB. + // It's not an exact science but a SecurePair grows .external by about 45 KiB. // Unless AdjustAmountOfExternalAllocatedMemory() is called on destruction, - // 10,000 instances make it grow by well over 400 MB. Allow for some slop + // 10,000 instances make it grow by well over 400 MiB. Allow for some slop // because objects like buffers also affect the external limit. assert(after - before < 25 << 20); }); diff --git a/test/parallel/test-util-inspect-proxy.js b/test/parallel/test-util-inspect-proxy.js index 3e1341fadfc9f9..6344adae990860 100644 --- a/test/parallel/test-util-inspect-proxy.js +++ b/test/parallel/test-util-inspect-proxy.js @@ -57,6 +57,27 @@ assert.strictEqual(handler, details[1]); details = processUtil.getProxyDetails(proxyObj, false); assert.strictEqual(target, details); +details = processUtil.getProxyDetails({}, true); +assert.strictEqual(details, undefined); + +const r = Proxy.revocable({}, {}); +r.revoke(); + +details = processUtil.getProxyDetails(r.proxy, true); +assert.strictEqual(details[0], null); +assert.strictEqual(details[1], null); + +details = processUtil.getProxyDetails(r.proxy, false); +assert.strictEqual(details, null); + +assert.strictEqual(util.inspect(r.proxy), ''); +assert.strictEqual( + util.inspect(r, { showProxy: true }), + '{ proxy: , revoke: [Function (anonymous)] }', +); + +assert.strictEqual(util.format('%s', r.proxy), ''); + assert.strictEqual( util.inspect(proxyObj, opts), 'Proxy [\n' + diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index 43913c3ab4c9da..8092c658966493 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -897,7 +897,7 @@ assert.strictEqual(util.inspect(Object.create(Date.prototype)), 'Date {}'); // Test util.inspect.styles and util.inspect.colors. { - function testColorStyle(style, input, implicit) { + function testColorStyle(style, input) { const colorName = util.inspect.styles[style]; let color = ['', '']; if (util.inspect.colors[colorName]) @@ -1396,6 +1396,9 @@ if (typeof Symbol !== 'undefined') { class SetSubclass extends Set {} class MapSubclass extends Map {} class PromiseSubclass extends Promise {} + class SymbolNameClass { + static name = Symbol('name'); + } const x = new ObjectSubclass(); x.foo = 42; @@ -1409,6 +1412,8 @@ if (typeof Symbol !== 'undefined') { "MapSubclass(1) [Map] { 'foo' => 42 }"); assert.strictEqual(util.inspect(new PromiseSubclass(() => {})), 'PromiseSubclass [Promise] { }'); + assert.strictEqual(util.inspect(new SymbolNameClass()), + 'Symbol(name) {}'); assert.strictEqual( util.inspect({ a: { b: new ArraySubclass([1, [2], 3]) } }, { depth: 1 }), '{ a: { b: [ArraySubclass] } }' diff --git a/test/parallel/test-util-promisify-custom-names.mjs b/test/parallel/test-util-promisify-custom-names.mjs new file mode 100644 index 00000000000000..3ff05d907b5060 --- /dev/null +++ b/test/parallel/test-util-promisify-custom-names.mjs @@ -0,0 +1,40 @@ +import '../common/index.mjs'; +import assert from 'node:assert'; +import { promisify } from 'node:util'; + +// Test that customly promisified methods in [util.promisify.custom] +// have appropriate names + +import fs from 'node:fs'; +import readline from 'node:readline'; +import stream from 'node:stream'; +import timers from 'node:timers'; + + +assert.strictEqual( + promisify(fs.exists).name, + 'exists' +); + +assert.strictEqual( + promisify(readline.Interface.prototype.question).name, + 'question', +); + +assert.strictEqual( + promisify(stream.finished).name, + 'finished' +); +assert.strictEqual( + promisify(stream.pipeline).name, + 'pipeline' +); + +assert.strictEqual( + promisify(timers.setImmediate).name, + 'setImmediate' +); +assert.strictEqual( + promisify(timers.setTimeout).name, + 'setTimeout' +); diff --git a/test/parallel/test-v8-serdes.js b/test/parallel/test-v8-serdes.js index 4dffedd3c32b4b..3c079e661c7886 100644 --- a/test/parallel/test-v8-serdes.js +++ b/test/parallel/test-v8-serdes.js @@ -155,18 +155,41 @@ const hostObject = new (internalBinding('js_stream').JSStream)(); } { + // Test that an old serialized value can still be deserialized. const buf = Buffer.from('ff0d6f2203666f6f5e007b01', 'hex'); const des = new v8.DefaultDeserializer(buf); des.readHeader(); + assert.strictEqual(des.getWireFormatVersion(), 0x0d); + + const value = des.readValue(); + assert.strictEqual(value, value.foo); +} + +{ + const message = `New serialization format. + + This test is expected to fail when V8 changes its serialization format. + When that happens, the "desStr" variable must be updated to the new value + and the change should be mentioned in the release notes, as it is semver-major. + + Consider opening an issue as a heads up at https://github.com/nodejs/node/issues/new + `; + + const desStr = 'ff0f6f2203666f6f5e007b01'; + + const desBuf = Buffer.from(desStr, 'hex'); + const des = new v8.DefaultDeserializer(desBuf); + des.readHeader(); + const value = des.readValue(); const ser = new v8.DefaultSerializer(); ser.writeHeader(); + ser.writeValue(value); - ser.writeValue(des.readValue()); - - assert.deepStrictEqual(buf, ser.releaseBuffer()); - assert.strictEqual(des.getWireFormatVersion(), 0x0d); + const serBuf = ser.releaseBuffer(); + const serStr = serBuf.toString('hex'); + assert.deepStrictEqual(serStr, desStr, message); } { diff --git a/test/parallel/test-v8-serialize-leak.js b/test/parallel/test-v8-serialize-leak.js new file mode 100644 index 00000000000000..4e3a1d96f8ad6e --- /dev/null +++ b/test/parallel/test-v8-serialize-leak.js @@ -0,0 +1,22 @@ +'use strict'; +// Flags: --expose-gc + +require('../common'); +const v8 = require('v8'); +const assert = require('assert'); + +const before = process.memoryUsage.rss(); + +for (let i = 0; i < 1000000; i++) { + v8.serialize(''); +} + +global.gc(); + +const after = process.memoryUsage.rss(); + +if (process.config.variables.asan) { + assert(after < before * 10, `asan: before=${before} after=${after}`); +} else { + assert(after < before * 2, `before=${before} after=${after}`); +} diff --git a/test/parallel/test-v8-stats.js b/test/parallel/test-v8-stats.js index 2093343859f2af..2eaa3c5b060914 100644 --- a/test/parallel/test-v8-stats.js +++ b/test/parallel/test-v8-stats.js @@ -6,15 +6,18 @@ const v8 = require('v8'); const s = v8.getHeapStatistics(); const keys = [ 'does_zap_garbage', + 'external_memory', 'heap_size_limit', 'malloced_memory', 'number_of_detached_contexts', 'number_of_native_contexts', 'peak_malloced_memory', 'total_available_size', + 'total_global_handles_size', 'total_heap_size', 'total_heap_size_executable', 'total_physical_size', + 'used_global_handles_size', 'used_heap_size']; assert.deepStrictEqual(Object.keys(s).sort(), keys); keys.forEach(function(key) { @@ -26,6 +29,7 @@ const heapCodeStatistics = v8.getHeapCodeStatistics(); const heapCodeStatisticsKeys = [ 'bytecode_and_metadata_size', 'code_and_metadata_size', + 'cpu_profiler_metadata_size', 'external_script_source_size']; assert.deepStrictEqual(Object.keys(heapCodeStatistics).sort(), heapCodeStatisticsKeys); diff --git a/test/parallel/test-vm-global-setter.js b/test/parallel/test-vm-global-setter.js new file mode 100644 index 00000000000000..878937f612ad64 --- /dev/null +++ b/test/parallel/test-vm-global-setter.js @@ -0,0 +1,32 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const vm = require('vm'); + +const window = createWindow(); + +const descriptor = + Object.getOwnPropertyDescriptor(window.globalProxy, 'onhashchange'); + +assert.strictEqual(typeof descriptor.get, 'function'); +assert.strictEqual(typeof descriptor.set, 'function'); +assert.strictEqual(descriptor.configurable, true); + +// Regression test for GH-42962. This assignment should not throw. +window.globalProxy.onhashchange = () => {}; + +assert.strictEqual(window.globalProxy.onhashchange, 42); + +function createWindow() { + const obj = {}; + vm.createContext(obj); + Object.defineProperty(obj, 'onhashchange', { + get: common.mustCall(() => 42), + set: common.mustCall(), + configurable: true + }); + + obj.globalProxy = vm.runInContext('this', obj); + + return obj; +} diff --git a/test/parallel/test-vm-module-errors.js b/test/parallel/test-vm-module-errors.js index 888250cef84f6f..bec8258a4145c7 100644 --- a/test/parallel/test-vm-module-errors.js +++ b/test/parallel/test-vm-module-errors.js @@ -139,20 +139,25 @@ async function checkLinking() { code: 'ERR_VM_MODULE_DIFFERENT_CONTEXT' }); + const error = new Error(); await assert.rejects(async () => { - const erroredModule = new SourceTextModule('import "foo";'); + globalThis.error = error; + const erroredModule = new SourceTextModule('throw error;'); + await erroredModule.link(common.mustNotCall()); try { - await erroredModule.link(common.mustCall(() => ({}))); + await erroredModule.evaluate(); } catch { // ignored - } finally { - assert.strictEqual(erroredModule.status, 'errored'); } + delete globalThis.error; + + assert.strictEqual(erroredModule.status, 'errored'); const rootModule = new SourceTextModule('import "errored";'); await rootModule.link(common.mustCall(() => erroredModule)); }, { - code: 'ERR_VM_MODULE_LINKING_ERRORED' + code: 'ERR_VM_MODULE_LINK_FAILURE', + cause: error, }); } diff --git a/test/parallel/test-wasm-web-api.js b/test/parallel/test-wasm-web-api.js new file mode 100644 index 00000000000000..d4a81794f80eb3 --- /dev/null +++ b/test/parallel/test-wasm-web-api.js @@ -0,0 +1,247 @@ +'use strict'; + +const common = require('../common'); +const fixtures = require('../common/fixtures'); + +const assert = require('assert'); +const events = require('events'); +const fs = require('fs/promises'); +const { createServer } = require('http'); + +assert.strictEqual(typeof WebAssembly.compileStreaming, 'function'); +assert.strictEqual(typeof WebAssembly.instantiateStreaming, 'function'); + +const simpleWasmBytes = fixtures.readSync('simple.wasm'); + +// Sets up an HTTP server with the given response handler and calls fetch() to +// obtain a Response from the newly created server. +async function testRequest(handler) { + const server = createServer((_, res) => handler(res)).unref().listen(0); + await events.once(server, 'listening'); + const { port } = server.address(); + return fetch(`http://127.0.0.1:${port}/foo.wasm`); +} + +// Runs the given function both with the promise itself and as a continuation +// of the promise. We use this to test that the API accepts not just a Response +// but also a Promise that resolves to a Response. +function withPromiseAndResolved(makePromise, consume) { + return Promise.all([ + consume(makePromise()), + makePromise().then(consume), + ]); +} + +// The makeResponsePromise function must return a Promise that resolves to a +// Response. The checkResult function receives the Promise returned by +// WebAssembly.compileStreaming and must return a Promise itself. +function testCompileStreaming(makeResponsePromise, checkResult) { + return withPromiseAndResolved( + common.mustCall(makeResponsePromise, 2), + common.mustCall((response) => { + return checkResult(WebAssembly.compileStreaming(response)); + }, 2) + ); +} + +function testCompileStreamingSuccess(makeResponsePromise) { + return testCompileStreaming(makeResponsePromise, async (modPromise) => { + const mod = await modPromise; + assert.strictEqual(mod.constructor, WebAssembly.Module); + }); +} + +function testCompileStreamingRejection(makeResponsePromise, rejection) { + return testCompileStreaming(makeResponsePromise, (modPromise) => { + assert.strictEqual(modPromise.constructor, Promise); + return assert.rejects(modPromise, rejection); + }); +} + +function testCompileStreamingSuccessUsingFetch(responseCallback) { + return testCompileStreamingSuccess(() => testRequest(responseCallback)); +} + +function testCompileStreamingRejectionUsingFetch(responseCallback, rejection) { + return testCompileStreamingRejection(() => testRequest(responseCallback), + rejection); +} + +(async () => { + // A non-Response should cause a TypeError. + for (const invalid of [undefined, null, 0, true, 'foo', {}, [], Symbol()]) { + await withPromiseAndResolved(() => Promise.resolve(invalid), (arg) => { + return assert.rejects(() => WebAssembly.compileStreaming(arg), { + name: 'TypeError', + code: 'ERR_INVALID_ARG_TYPE', + message: /^The "source" argument .*$/ + }); + }); + } + + // When given a Promise, any rejection should be propagated as-is. + { + const err = new RangeError('foo'); + await assert.rejects(() => { + return WebAssembly.compileStreaming(Promise.reject(err)); + }, (actualError) => actualError === err); + } + + // A valid WebAssembly file with the correct MIME type. + await testCompileStreamingSuccessUsingFetch((res) => { + res.setHeader('Content-Type', 'application/wasm'); + res.end(simpleWasmBytes); + }); + + // The same valid WebAssembly file with the same MIME type, but using a + // Response whose body is a Buffer instead of calling fetch(). + await testCompileStreamingSuccess(() => { + return Promise.resolve(new Response(simpleWasmBytes, { + status: 200, + headers: { 'Content-Type': 'application/wasm' } + })); + }); + + // The same valid WebAssembly file with the same MIME type, but using a + // Response whose body is a ReadableStream instead of calling fetch(). + await testCompileStreamingSuccess(async () => { + const handle = await fs.open(fixtures.path('simple.wasm')); + const stream = handle.readableWebStream(); + return Promise.resolve(new Response(stream, { + status: 200, + headers: { 'Content-Type': 'application/wasm' } + })); + }); + + // A larger valid WebAssembly file with the correct MIME type that causes the + // client to pass it to the compiler in many separate chunks. For this, we use + // the same WebAssembly file as in the previous test but insert useless custom + // sections into the WebAssembly module to increase the file size without + // changing the relevant contents. + await testCompileStreamingSuccessUsingFetch((res) => { + res.setHeader('Content-Type', 'application/wasm'); + + // Send the WebAssembly magic and version first. + res.write(simpleWasmBytes.slice(0, 8), common.mustCall()); + + // Construct a 4KiB custom section. + const customSection = Buffer.concat([ + Buffer.from([ + 0, // Custom section. + 134, 32, // (134 & 0x7f) + 0x80 * 32 = 6 + 4096 bytes in this section. + 5, // The length of the following section name. + ]), + Buffer.from('?'.repeat(5)), // The section name + Buffer.from('\0'.repeat(4096)), // The actual section data + ]); + + // Now repeatedly send useless custom sections. These have no use for the + // WebAssembly compiler but they are syntactically valid. The client has to + // keep reading the stream until the very end to obtain the relevant + // sections within the module. This adds up to a few hundred kibibytes. + (function next(i) { + if (i < 100) { + while (res.write(customSection)); + res.once('drain', () => next(i + 1)); + } else { + // End the response body with the actual module contents. + res.end(simpleWasmBytes.slice(8)); + } + })(0); + }); + + // A valid WebAssembly file with an empty parameter in the (otherwise valid) + // MIME type. + await testCompileStreamingRejectionUsingFetch((res) => { + res.setHeader('Content-Type', 'application/wasm;'); + res.end(simpleWasmBytes); + }, { + name: 'TypeError', + code: 'ERR_WEBASSEMBLY_RESPONSE', + message: 'WebAssembly response has unsupported MIME type ' + + "'application/wasm;'" + }); + + // A valid WebAssembly file with an invalid MIME type. + await testCompileStreamingRejectionUsingFetch((res) => { + res.setHeader('Content-Type', 'application/octet-stream'); + res.end(simpleWasmBytes); + }, { + name: 'TypeError', + code: 'ERR_WEBASSEMBLY_RESPONSE', + message: 'WebAssembly response has unsupported MIME type ' + + "'application/octet-stream'" + }); + + // HTTP status code indiciating an error. + await testCompileStreamingRejectionUsingFetch((res) => { + res.statusCode = 418; + res.setHeader('Content-Type', 'application/wasm'); + res.end(simpleWasmBytes); + }, { + name: 'TypeError', + code: 'ERR_WEBASSEMBLY_RESPONSE', + message: /^WebAssembly response has status code 418$/ + }); + + // HTTP status code indiciating an error, but using a Response whose body is + // a Buffer instead of calling fetch(). + await testCompileStreamingSuccess(() => { + return Promise.resolve(new Response(simpleWasmBytes, { + status: 200, + headers: { 'Content-Type': 'application/wasm' } + })); + }); + + // Extra bytes after the WebAssembly file. + await testCompileStreamingRejectionUsingFetch((res) => { + res.setHeader('Content-Type', 'application/wasm'); + res.end(Buffer.concat([simpleWasmBytes, Buffer.from('foo')])); + }, { + name: 'CompileError', + message: /^WebAssembly\.compileStreaming\(\): .*$/ + }); + + // Missing bytes at the end of the WebAssembly file. + await testCompileStreamingRejectionUsingFetch((res) => { + res.setHeader('Content-Type', 'application/wasm'); + res.end(simpleWasmBytes.subarray(0, simpleWasmBytes.length - 3)); + }, { + name: 'CompileError', + message: /^WebAssembly\.compileStreaming\(\): .*$/ + }); + + // Incomplete HTTP response body. The TypeError might come as a surprise, but + // it originates from within fetch(). + await testCompileStreamingRejectionUsingFetch((res) => { + res.setHeader('Content-Length', simpleWasmBytes.length); + res.setHeader('Content-Type', 'application/wasm'); + res.write(simpleWasmBytes.slice(0, 5), common.mustSucceed(() => { + res.destroy(); + })); + }, { + name: 'TypeError', + message: /terminated/ + }); + + // Test "Developer-Facing Display Conventions" described in the WebAssembly + // Web API specification. + await testCompileStreaming(() => testRequest((res) => { + // Respond with a WebAssembly module that only exports a single function, + // which only contains an 'unreachable' instruction. + res.setHeader('Content-Type', 'application/wasm'); + res.end(fixtures.readSync('crash.wasm')); + }), async (modPromise) => { + // Call the WebAssembly function and check that the error stack contains the + // correct "WebAssembly location" as per the specification. + const mod = await modPromise; + const instance = new WebAssembly.Instance(mod); + assert.throws(() => instance.exports.crash(), (err) => { + const stack = err.stack.split(/\n/g); + assert.strictEqual(stack[0], 'RuntimeError: unreachable'); + assert.match(stack[1], + /^\s*at http:\/\/127\.0\.0\.1:\d+\/foo\.wasm:wasm-function\[0\]:0x22$/); + return true; + }); + }); +})().then(common.mustCall()); diff --git a/test/parallel/test-webcrypto-constructors.js b/test/parallel/test-webcrypto-constructors.js new file mode 100644 index 00000000000000..ddc4e8cb0796b1 --- /dev/null +++ b/test/parallel/test-webcrypto-constructors.js @@ -0,0 +1,159 @@ +// Flags: --experimental-global-webcrypto +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); + +// Test CryptoKey constructor +{ + assert.throws(() => new CryptoKey(), { + name: 'TypeError', message: 'Illegal constructor', code: 'ERR_ILLEGAL_CONSTRUCTOR' + }); +} + +// Test SubtleCrypto constructor +{ + assert.throws(() => new SubtleCrypto(), { + name: 'TypeError', message: 'Illegal constructor', code: 'ERR_ILLEGAL_CONSTRUCTOR' + }); +} + +// Test Crypto constructor +{ + assert.throws(() => new Crypto(), { + name: 'TypeError', message: 'Illegal constructor', code: 'ERR_ILLEGAL_CONSTRUCTOR' + }); +} + +const notCrypto = Reflect.construct(function() {}, [], Crypto); +const notSubtle = Reflect.construct(function() {}, [], SubtleCrypto); + +// Test Crypto.prototype.subtle +{ + assert.throws(() => notCrypto.subtle, { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }); +} + +// Test Crypto.prototype.randomUUID +{ + assert.throws(() => notCrypto.randomUUID(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }); +} + +// Test Crypto.prototype.getRandomValues +{ + assert.throws(() => notCrypto.getRandomValues(new Uint8Array(12)), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }); +} + +// Test SubtleCrypto.prototype.encrypt +{ + assert.rejects(() => notSubtle.encrypt(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.decrypt +{ + assert.rejects(() => notSubtle.decrypt(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.sign +{ + assert.rejects(() => notSubtle.sign(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.verify +{ + assert.rejects(() => notSubtle.verify(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.digest +{ + assert.rejects(() => notSubtle.digest(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.generateKey +{ + assert.rejects(() => notSubtle.generateKey(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.deriveKey +{ + assert.rejects(() => notSubtle.deriveKey(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.deriveBits +{ + assert.rejects(() => notSubtle.deriveBits(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.importKey +{ + assert.rejects(() => notSubtle.importKey(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.exportKey +{ + assert.rejects(() => notSubtle.exportKey(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.wrapKey +{ + assert.rejects(() => notSubtle.wrapKey(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +// Test SubtleCrypto.prototype.unwrapKey +{ + assert.rejects(() => notSubtle.unwrapKey(), { + name: 'TypeError', code: 'ERR_INVALID_THIS', + }).then(common.mustCall()); +} + +{ + globalThis.crypto.subtle.importKey( + 'raw', + globalThis.crypto.getRandomValues(new Uint8Array(4)), + 'PBKDF2', + false, + ['deriveKey'], + ).then((key) => { + globalThis.crypto.subtle.importKey = common.mustNotCall(); + return globalThis.crypto.subtle.deriveKey({ + name: 'PBKDF2', + hash: 'SHA-512', + salt: globalThis.crypto.getRandomValues(new Uint8Array()), + iterations: 5, + }, key, { + name: 'AES-GCM', + length: 256 + }, true, ['encrypt', 'decrypt']); + }).then(common.mustCall()); +} diff --git a/test/parallel/test-webcrypto-derivebits-cfrg.js b/test/parallel/test-webcrypto-derivebits-cfrg.js new file mode 100644 index 00000000000000..2233d1a2d274c7 --- /dev/null +++ b/test/parallel/test-webcrypto-derivebits-cfrg.js @@ -0,0 +1,213 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const { webcrypto } = require('crypto'); +const { subtle } = webcrypto; + +const kTests = [ + { + name: 'X25519', + size: 32, + pkcs8: '302e020100300506032b656e04220420c8838e76d057dfb7d8c95a69e138160ad' + + 'd6373fd71a4d276bb56e3a81b64ff61', + spki: '302a300506032b656e0321001cf2b1e6022ec537371ed7f53e54fa1154d83e98eb' + + '64ea51fae5b3307cfe9706', + result: '2768409dfab99ec23b8c89b93ff5880295f76176088f89e43dfebe7ea1950008' + }, + { + name: 'X448', + size: 56, + pkcs8: '3046020100300506032b656f043a043858c7d29a3eb519b29d00cfb191bb64fc6' + + 'd8a42d8f17176272b89f2272d1819295c6525c0829671b052ef0727530f188e31' + + 'd0cc53bf26929e', + spki: '3042300506032b656f033900b604a1d1a5cd1d9426d561ef630a9eb16cbe69d5b9' + + 'ca615edc53633efb52ea31e6e6a0a1dbacc6e76cbce6482d7e4ba3d55d9e802765' + + 'ce6f', + result: 'f0f6c5f17f94f4291eab7178866d37ec8906dd6c514143dc85be7cf28deff39b' + + '726e0f6dcf810eb594dca97b4882bd44c43ea7dc67f49a4e', + }, +]; + +async function prepareKeys() { + const keys = {}; + await Promise.all( + kTests.map(async ({ name, size, pkcs8, spki, result }) => { + const [ + privateKey, + publicKey, + ] = await Promise.all([ + subtle.importKey( + 'pkcs8', + Buffer.from(pkcs8, 'hex'), + { name }, + true, + ['deriveKey', 'deriveBits']), + subtle.importKey( + 'spki', + Buffer.from(spki, 'hex'), + { name }, + true, + ['deriveKey', 'deriveBits']), + ]); + keys[name] = { + privateKey, + publicKey, + size, + result, + }; + })); + return keys; +} + +(async function() { + const keys = await prepareKeys(); + + await Promise.all( + Object.keys(keys).map(async (name) => { + const { size, result, privateKey, publicKey } = keys[name]; + + { + // Good parameters + const bits = await subtle.deriveBits({ + name, + public: publicKey + }, privateKey, 8 * size); + + assert(bits instanceof ArrayBuffer); + assert.strictEqual(Buffer.from(bits).toString('hex'), result); + } + + { + // Case insensitivity + const bits = await subtle.deriveBits({ + name: name.toLowerCase(), + public: publicKey + }, privateKey, 8 * size); + + assert.strictEqual(Buffer.from(bits).toString('hex'), result); + } + + { + // Null length + const bits = await subtle.deriveBits({ + name, + public: publicKey + }, privateKey, null); + + assert.strictEqual(Buffer.from(bits).toString('hex'), result); + } + + { + // Short Result + const bits = await subtle.deriveBits({ + name, + public: publicKey + }, privateKey, 8 * size - 32); + + assert.strictEqual( + Buffer.from(bits).toString('hex'), + result.slice(0, -8)); + } + + { + // Too long result + await assert.rejects(subtle.deriveBits({ + name, + public: publicKey + }, privateKey, 8 * size + 8), { + message: /derived bit length is too small/ + }); + } + + { + // Non-multiple of 8 + const bits = await subtle.deriveBits({ + name, + public: publicKey + }, privateKey, 8 * size - 11); + + assert.strictEqual( + Buffer.from(bits).toString('hex'), + result.slice(0, -2)); + } + })); + + // Error tests + { + // Missing public property + await assert.rejects( + subtle.deriveBits( + { name: 'X448' }, + keys.X448.privateKey, + 8 * keys.X448.size), + { code: 'ERR_INVALID_ARG_TYPE' }); + } + + { + // The public property is not a CryptoKey + await assert.rejects( + subtle.deriveBits( + { + name: 'X448', + public: { message: 'Not a CryptoKey' } + }, + keys.X448.privateKey, + 8 * keys.X448.size), + { code: 'ERR_INVALID_ARG_TYPE' }); + } + + { + // Mismatched types + await assert.rejects( + subtle.deriveBits( + { + name: 'X448', + public: keys.X25519.publicKey + }, + keys.X448.privateKey, + 8 * keys.X448.size), + { message: 'The public and private keys must be of the same type' }); + } + + { + // Base key is not a private key + await assert.rejects(subtle.deriveBits({ + name: 'X448', + public: keys.X448.publicKey + }, keys.X448.publicKey, null), { + message: /baseKey must be a private key/ + }); + } + + { + // Base key is not a private key + await assert.rejects(subtle.deriveBits({ + name: 'X448', + public: keys.X448.privateKey + }, keys.X448.publicKey, null), { + message: /algorithm\.public must be a public key/ + }); + } + + { + // Public is a secret key + const keyData = webcrypto.getRandomValues(new Uint8Array(32)); + const key = await subtle.importKey( + 'raw', + keyData, + { name: 'AES-CBC', length: 256 }, + false, ['encrypt']); + + await assert.rejects(subtle.deriveBits({ + name: 'X448', + public: key + }, keys.X448.publicKey, null), { + message: /algorithm\.public must be a public key/ + }); + } +})().then(common.mustCall()); diff --git a/test/parallel/test-webcrypto-derivebits-ecdh.js b/test/parallel/test-webcrypto-derivebits-ecdh.js index 166da81e3e4e6d..826b591d37ca65 100644 --- a/test/parallel/test-webcrypto-derivebits-ecdh.js +++ b/test/parallel/test-webcrypto-derivebits-ecdh.js @@ -154,7 +154,7 @@ async function prepareKeys() { assert.strictEqual( Buffer.from(bits).toString('hex'), - result.slice(0, -4)); + result.slice(0, -2)); } })); @@ -207,7 +207,7 @@ async function prepareKeys() { name: 'ECDH', public: publicKey }, keys['P-521'].privateKey, null), { - message: /Keys must be ECDH keys/ + message: /Keys must be ECDH, X25519, or X448 keys/ }); } diff --git a/test/parallel/test-webcrypto-derivebits-node-dh.js b/test/parallel/test-webcrypto-derivebits-node-dh.js deleted file mode 100644 index 2503bc17032e0d..00000000000000 --- a/test/parallel/test-webcrypto-derivebits-node-dh.js +++ /dev/null @@ -1,219 +0,0 @@ -'use strict'; - -const common = require('../common'); - -if (!common.hasCrypto) - common.skip('missing crypto'); - -const assert = require('assert'); -const { subtle } = require('crypto').webcrypto; - -const kTestData = { - pkcs8: '308203260201003082019706092a864886f70d010301308201880282018100ff' + - 'ffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc7402' + - '0bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374f' + - 'e1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee' + - '386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598' + - 'da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9e' + - 'd529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be3' + - '9e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf69558171839' + - '95497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a8' + - '5521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7ab' + - 'f5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d8' + - '7602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208' + - 'e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff02' + - '010204820184028201806ba21bec44fe29bee2d1f6f5d717b9af1c62973b342c' + - '28b850d2e39b31abf3ce7f58a26da0cdf538b3328648ee8738e49434bdf697ff' + - '2ac5da64d308fa0abbd75f0554bcef58fd1a688bf93af00ffbdb9ba05558a8e6' + - '16db9818769e2c7e37ba0c07bca10fffd19cb7aa44876170f0a8fe0c1bdba2f9' + - 'b0606d479796e1b6bdab153188b03f684584fd909814c5055fc184eaf05577f7' + - 'f447fcc2dd90889ab853830993d8fbf087f942d8e7a9f331570e7eee5954fb7a' + - 'a6920f4df2f8a33d5cb59961162b1216a4382f984cce02512f0100e20f15e480' + - 'a9d19bb01414a75c74d0854595e58ed060f7bb0f4b451f82b476dc039cc1bb8c' + - '1a05999e6abb20915a3cfca40f314538c00f42d0c4f2070cb163788d6dea0adb' + - '03c75d8001c7057ef61e60b407272adffc2669b82e634ebebda45826229bb2f8' + - 'ed742ee97429e34de06c41c25563025285d5f8a43acdc57cf12779222ae125d5' + - '438857d6bf6341815b9aebf6878fd23944cfd240e74caea13419163fde5ec1ec' + - 'fe2fb2e740b9301a9c04', - spki: '308203253082019706092a864886f70d010301308201880282018100fffffffff' + - 'fffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b' + - '139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d5' + - '1c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a89' + - '9fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d' + - '39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed52907709696' + - '6d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e860' + - '39b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae5' + - '15d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64e' + - 'cfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e' + - '8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521' + - 'f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db' + - '5bfce0fd108e4b82d120a93ad2caffffffffffffffff020102038201860002820' + - '1810098b01807f77a722cd30fe0390f8cdd0b3f7e0fb33fd3e0ca3d573a7b481e' + - 'dc0fc9f7bc58bfc4509f34efe118ba48bcefbbd57c4878e87b4d0fbb4b661d771' + - '19055cf190b5e8ad05c4821ff0445f4e12049e708ee83e2272c2c269b8b3bfa1b' + - '37df8dc4ec77a430ed6b89beb69093ceeca48497d8ab3ceac25429df58e96d2df' + - 'd01a94b1d164697b93475ed3d5962fd7c300de959474568aecc15c880c36b14a7' + - '9c2144ad4207c9760c11fbcc9ccbb29727a7f5a7789d47f1fa7a154289f83c528' + - '1fb97e01c37f937a25b4057017961ebd52b936f6b8f6d9ad35e3e094c3850cde2' + - '9e98895eaa9b56bff17dc6d8c03edce51c0aa009864da9cbe49a2063bddc64f11' + - '67beb0ab1c5d9bccf9a10078d0236237986f53c4074f30399deb829c544026fe0' + - '532e54e1bc9d933bd4db8dbfd43cf7839a9f64c135d2188896294d54cb7812e6e' + - '9586a03e91893edf7240011e8cda8f59a4dde0ce6d3c40d85847a3985fa25967f' + - 'a2c9598b269ac28da067704f15eb5bb4d8afdea8c67f56f9b604e172bc', - result: '42e77c77568f4387858771b006bebf213a2894efed8efdcfe23640bbd6df765' + - '1b2afa9f5acfba5b1d3db5401fd3427cd9226f6c2fdbd2b8fd7948e12cc7e016' + - 'eb2ed0e0fb02ce434c68c5d511ded05c1150718cf4c8b9db0adcc639a8b52b74' + - 'c2c90e2df5f6f55462d38e2d2769b4bd23bf0db8b4a82253addc1d5d6d19289d' + - '9e60ddabe1203aa3f45956f4dd32683f55fc2f7400e92712e5bb4dea737e03ad' + - '4b94640ccd63a0b8485dfa63f3b98232a34354aa91aebb3e86bb67a48b50ac21' + - 'e62dbce80c0913a9dba92c1c2333f4a43efe9c6c24ce23c252c7ff37e9e74a78' + - '6a8c5b82453fda8b6b40463461d22765e26d4f444272254ee6a492d3e6737e52' + - 'a94440aeddde3c0b449c52ca64bdc698f683ba6cb27794b84edcab7694cadfe8' + - 'f76ce94bf127ca42323b1995a863bcecab455f5d6283eb0eed44942aad3d1a46' + - '79713ed4757917f95d1a61ecae45b9978a863b16e199418bfe6e98435ad146a4' + - '7bd9c8cad9f787a29888954ae58fa683ea163921eb9d3e7a5aa2f52f74ec15333', -}; - -async function prepareKeys() { - const [ - privateKey, - publicKey, - ] = await Promise.all([ - subtle.importKey( - 'pkcs8', - Buffer.from(kTestData.pkcs8, 'hex'), - { name: 'NODE-DH' }, - true, - ['deriveKey', 'deriveBits']), - subtle.importKey( - 'spki', - Buffer.from(kTestData.spki, 'hex'), - { name: 'NODE-DH' }, - true, []), - ]); - return { - privateKey, - publicKey, - result: kTestData.result, - }; -} - -(async function() { - const { - publicKey, - privateKey, - result - } = await prepareKeys(); - - { - // Good parameters - const bits = await subtle.deriveBits({ - name: 'NODE-DH', - public: publicKey - }, privateKey, null); - - assert(bits instanceof ArrayBuffer); - assert.strictEqual(Buffer.from(bits).toString('hex'), result); - } - - { - // Case insensitivity - const bits = await subtle.deriveBits({ - name: 'node-dH', - public: publicKey - }, privateKey, null); - - assert.strictEqual(Buffer.from(bits).toString('hex'), result); - } - - { - // Short Result - const bits = await subtle.deriveBits({ - name: 'NODE-DH', - public: publicKey - }, privateKey, 16); - - assert.strictEqual( - Buffer.from(bits).toString('hex'), - result.slice(0, 4)); - } - - { - // Too long result - await assert.rejects(subtle.deriveBits({ - name: 'NODE-DH', - public: publicKey - }, privateKey, result.length * 16), { - message: /derived bit length is too small/ - }); - } - - { - // Non-multiple of 8 - const bits = await subtle.deriveBits({ - name: 'NODE-DH', - public: publicKey - }, privateKey, 15); - - assert.strictEqual( - Buffer.from(bits).toString('hex'), - result.slice(0, 2)); - } - - // Error tests - { - // Missing public property - await assert.rejects( - subtle.deriveBits( - { name: 'NODE-DH' }, - privateKey, - null), - { code: 'ERR_INVALID_ARG_TYPE' }); - } - - { - // The public property is not a CryptoKey - await assert.rejects( - subtle.deriveBits( - { - name: 'NODE-DH', - public: { message: 'Not a CryptoKey' } - }, - privateKey, - null), - { code: 'ERR_INVALID_ARG_TYPE' }); - } - - { - // Incorrect public key algorithm - const { publicKey } = await subtle.generateKey( - { - name: 'ECDSA', - namedCurve: 'P-521' - }, false, ['verify']); - - await assert.rejects(subtle.deriveBits({ - name: 'NODE-DH', - public: publicKey - }, privateKey, null), { - message: /Keys must be DH keys/ - }); - } - - { - // Private key does not have correct usages - const privateKey = await subtle.importKey( - 'pkcs8', - Buffer.from(kTestData.pkcs8, 'hex'), - { - name: 'NODE-DH', - }, false, ['deriveKey']); - - await assert.rejects(subtle.deriveBits({ - name: 'NODE-DH', - public: publicKey, - }, privateKey, null), { - message: /baseKey does not have deriveBits usage/ - }); - } -})().then(common.mustCall()); diff --git a/test/parallel/test-webcrypto-derivebits.js b/test/parallel/test-webcrypto-derivebits.js index 95c38f454fbb93..442423954b10b2 100644 --- a/test/parallel/test-webcrypto-derivebits.js +++ b/test/parallel/test-webcrypto-derivebits.js @@ -9,8 +9,6 @@ if (!common.hasCrypto) const assert = require('assert'); const { subtle } = require('crypto').webcrypto; -const { internalBinding } = require('internal/test/binding'); - // This is only a partial test. The WebCrypto Web Platform Tests // will provide much greater coverage. @@ -103,32 +101,28 @@ const { internalBinding } = require('internal/test/binding'); tests.then(common.mustCall()); } -// Test Scrypt bit derivation -if (typeof internalBinding('crypto').ScryptJob === 'function') { - async function test(pass, salt, length, expected) { - const ec = new TextEncoder(); - const key = await subtle.importKey( - 'raw', - ec.encode(pass), - { name: 'NODE-SCRYPT' }, - false, ['deriveBits']); - const secret = await subtle.deriveBits({ - name: 'NODE-SCRYPT', - salt: ec.encode(salt), - }, key, length); - assert(secret instanceof ArrayBuffer); - assert.strictEqual(Buffer.from(secret).toString('hex'), expected); - } +// Test X25519 and X448 bit derivation +{ + async function test(name) { + const [alice, bob] = await Promise.all([ + subtle.generateKey({ name }, true, ['deriveBits']), + subtle.generateKey({ name }, true, ['deriveBits']), + ]); - const kTests = [ - ['hello', 'there', 512, - '30ddda6feabaac788eb81cc38f496cd5d9a165d320c537ea05331fe720db1061b3a27' + - 'b91a8428e49d44078c1fa395cb1c6db336ba44ccb80faa6d74918769374'], - ['hello', 'there', 128, - '30ddda6feabaac788eb81cc38f496cd5'], - ]; + const [secret1, secret2] = await Promise.all([ + subtle.deriveBits({ + name, public: alice.publicKey + }, bob.privateKey, 128), + subtle.deriveBits({ + name, public: bob.publicKey + }, alice.privateKey, 128), + ]); - const tests = Promise.all(kTests.map((args) => test(...args))); + assert(secret1 instanceof ArrayBuffer); + assert(secret2 instanceof ArrayBuffer); + assert.deepStrictEqual(secret1, secret2); + } - tests.then(common.mustCall()); + test('X25519').then(common.mustCall()); + test('X448').then(common.mustCall()); } diff --git a/test/parallel/test-webcrypto-derivekey-cfrg.js b/test/parallel/test-webcrypto-derivekey-cfrg.js new file mode 100644 index 00000000000000..ddf51626a89b4b --- /dev/null +++ b/test/parallel/test-webcrypto-derivekey-cfrg.js @@ -0,0 +1,188 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const { webcrypto } = require('crypto'); +const { subtle } = webcrypto; + +const kTests = [ + { + name: 'X25519', + size: 32, + pkcs8: '302e020100300506032b656e04220420c8838e76d057dfb7d8c95a69e138160ad' + + 'd6373fd71a4d276bb56e3a81b64ff61', + spki: '302a300506032b656e0321001cf2b1e6022ec537371ed7f53e54fa1154d83e98eb' + + '64ea51fae5b3307cfe9706', + result: '2768409dfab99ec23b8c89b93ff5880295f76176088f89e43dfebe7ea1950008' + }, + { + name: 'X448', + size: 56, + pkcs8: '3046020100300506032b656f043a043858c7d29a3eb519b29d00cfb191bb64fc6' + + 'd8a42d8f17176272b89f2272d1819295c6525c0829671b052ef0727530f188e31' + + 'd0cc53bf26929e', + spki: '3042300506032b656f033900b604a1d1a5cd1d9426d561ef630a9eb16cbe69d5b9' + + 'ca615edc53633efb52ea31e6e6a0a1dbacc6e76cbce6482d7e4ba3d55d9e802765' + + 'ce6f', + result: 'f0f6c5f17f94f4291eab7178866d37ec8906dd6c514143dc85be7cf28deff39b' + }, +]; + +async function prepareKeys() { + const keys = {}; + await Promise.all( + kTests.map(async ({ name, size, pkcs8, spki, result }) => { + const [ + privateKey, + publicKey, + ] = await Promise.all([ + subtle.importKey( + 'pkcs8', + Buffer.from(pkcs8, 'hex'), + { name }, + true, + ['deriveKey', 'deriveBits']), + subtle.importKey( + 'spki', + Buffer.from(spki, 'hex'), + { name }, + true, + ['deriveKey', 'deriveBits']), + ]); + keys[name] = { + privateKey, + publicKey, + size, + result, + }; + })); + return keys; +} + +(async function() { + const keys = await prepareKeys(); + const otherArgs = [ + { name: 'HMAC', hash: 'SHA-256', length: 256 }, + true, + ['sign', 'verify']]; + + await Promise.all( + Object.keys(keys).map(async (name) => { + const { result, privateKey, publicKey } = keys[name]; + + { + // Good parameters + const key = await subtle.deriveKey({ + name, + public: publicKey + }, privateKey, ...otherArgs); + + const raw = await subtle.exportKey('raw', key); + + assert.strictEqual(Buffer.from(raw).toString('hex'), result); + } + + { + // Case insensitivity + const key = await subtle.deriveKey({ + name: name.toLowerCase(), + public: publicKey + }, privateKey, { + name: 'HmAc', + hash: 'SHA-256', + length: 256 + }, true, ['sign', 'verify']); + + const raw = await subtle.exportKey('raw', key); + + assert.strictEqual(Buffer.from(raw).toString('hex'), result); + } + })); + + // Error tests + { + // Missing public property + await assert.rejects( + subtle.deriveKey( + { name: 'X448' }, + keys.X448.privateKey, + ...otherArgs), + { code: 'ERR_INVALID_ARG_TYPE' }); + } + + { + // The public property is not a CryptoKey + await assert.rejects( + subtle.deriveKey( + { + name: 'X448', + public: { message: 'Not a CryptoKey' } + }, + keys.X448.privateKey, + ...otherArgs), + { code: 'ERR_INVALID_ARG_TYPE' }); + } + + { + // Mismatched named curves + await assert.rejects( + subtle.deriveKey( + { + name: 'X448', + public: keys.X25519.publicKey + }, + keys.X448.privateKey, + ...otherArgs), + { message: 'The public and private keys must be of the same type' }); + } + + { + // Base key is not a private key + await assert.rejects( + subtle.deriveKey( + { + name: 'X448', + public: keys.X448.publicKey + }, + keys.X448.publicKey, + ...otherArgs), + { message: /baseKey must be a private key/ }); + } + + { + // Base key is not a private key + await assert.rejects( + subtle.deriveKey( + { + name: 'X448', + public: keys.X448.privateKey + }, + keys.X448.publicKey, + ...otherArgs), + { message: /algorithm\.public must be a public key/ }); + } + + { + // Public is a secret key + const keyData = webcrypto.getRandomValues(new Uint8Array(32)); + const key = await subtle.importKey( + 'raw', + keyData, + { name: 'AES-CBC', length: 256 }, + false, ['encrypt']); + + await assert.rejects( + subtle.deriveKey( + { + name: 'X448', + public: key + }, + keys.X448.publicKey, + ...otherArgs), + { message: /algorithm\.public must be a public key/ }); + } +})().then(common.mustCall()); diff --git a/test/parallel/test-webcrypto-derivekey-ecdh.js b/test/parallel/test-webcrypto-derivekey-ecdh.js index 42c8d250f42b06..203a0c5677fbc0 100644 --- a/test/parallel/test-webcrypto-derivekey-ecdh.js +++ b/test/parallel/test-webcrypto-derivekey-ecdh.js @@ -175,7 +175,7 @@ async function prepareKeys() { }, keys['P-521'].privateKey, ...otherArgs), - { message: /Keys must be ECDH keys/ }); + { message: /Keys must be ECDH, X25519, or X448 keys/ }); } { diff --git a/test/parallel/test-webcrypto-derivekey.js b/test/parallel/test-webcrypto-derivekey.js index 0c11d38af30dc6..f8eb996000ec89 100644 --- a/test/parallel/test-webcrypto-derivekey.js +++ b/test/parallel/test-webcrypto-derivekey.js @@ -9,12 +9,10 @@ if (!common.hasCrypto) const assert = require('assert'); const { webcrypto: { subtle }, KeyObject } = require('crypto'); -const { internalBinding } = require('internal/test/binding'); - // This is only a partial test. The WebCrypto Web Platform Tests // will provide much greater coverage. -// Test ECDH bit derivation +// Test ECDH key derivation { async function test(namedCurve) { const [alice, bob] = await Promise.all([ @@ -48,7 +46,7 @@ const { internalBinding } = require('internal/test/binding'); test('P-521').then(common.mustCall()); } -// Test HKDF bit derivation +// Test HKDF key derivation { async function test(pass, info, salt, hash, expected) { const ec = new TextEncoder(); @@ -85,7 +83,7 @@ const { internalBinding } = require('internal/test/binding'); tests.then(common.mustCall()); } -// Test PBKDF2 bit derivation +// Test PBKDF2 key derivation { async function test(pass, salt, iterations, hash, expected) { const ec = new TextEncoder(); @@ -121,38 +119,6 @@ const { internalBinding } = require('internal/test/binding'); tests.then(common.mustCall()); } -// Test Scrypt bit derivation -if (typeof internalBinding('crypto').ScryptJob === 'function') { - async function test(pass, salt, expected) { - const ec = new TextEncoder(); - const key = await subtle.importKey( - 'raw', - ec.encode(pass), - { name: 'NODE-SCRYPT' }, - false, ['deriveKey']); - const secret = await subtle.deriveKey({ - name: 'NODE-SCRYPT', - salt: ec.encode(salt), - }, key, { - name: 'AES-CTR', - length: 256 - }, true, ['encrypt']); - - const raw = await subtle.exportKey('raw', secret); - - assert.strictEqual(Buffer.from(raw).toString('hex'), expected); - } - - const kTests = [ - ['hello', 'there', - '30ddda6feabaac788eb81cc38f496cd5d9a165d320c537ea05331fe720db1061'], - ]; - - const tests = Promise.all(kTests.map((args) => test(...args))); - - tests.then(common.mustCall()); -} - // Test default key lengths { const vectors = [ @@ -184,3 +150,38 @@ if (typeof internalBinding('crypto').ScryptJob === 'function') { } })().then(common.mustCall()); } + +// Test X25519 and X448 key derivation +{ + async function test(name) { + const [alice, bob] = await Promise.all([ + subtle.generateKey({ name }, true, ['deriveKey']), + subtle.generateKey({ name }, true, ['deriveKey']), + ]); + + const [secret1, secret2] = await Promise.all([ + subtle.deriveKey({ + name, public: alice.publicKey + }, bob.privateKey, { + name: 'AES-CBC', + length: 256 + }, true, ['encrypt']), + subtle.deriveKey({ + name, public: bob.publicKey + }, alice.privateKey, { + name: 'AES-CBC', + length: 256 + }, true, ['encrypt']), + ]); + + const [raw1, raw2] = await Promise.all([ + subtle.exportKey('raw', secret1), + subtle.exportKey('raw', secret2), + ]); + + assert.deepStrictEqual(raw1, raw2); + } + + test('X25519').then(common.mustCall()); + test('X448').then(common.mustCall()); +} diff --git a/test/parallel/test-webcrypto-digest.js b/test/parallel/test-webcrypto-digest.js index 78b12ea6a5574c..b8680564d1a1a3 100644 --- a/test/parallel/test-webcrypto-digest.js +++ b/test/parallel/test-webcrypto-digest.js @@ -168,3 +168,9 @@ async function testDigest(size, name) { await Promise.all(variations); })().then(common.mustCall()); + +(async () => { + await assert.rejects(subtle.digest('RSA-OAEP', Buffer.alloc(1)), { + name: 'NotSupportedError', + }); +})().then(common.mustCall()); diff --git a/test/parallel/test-webcrypto-ed25519-ed448.js b/test/parallel/test-webcrypto-ed25519-ed448.js deleted file mode 100644 index a0d858a4ab4837..00000000000000 --- a/test/parallel/test-webcrypto-ed25519-ed448.js +++ /dev/null @@ -1,481 +0,0 @@ -'use strict'; - -const common = require('../common'); - -if (!common.hasCrypto) - common.skip('missing crypto'); - -const assert = require('assert'); -const { - generateKeyPairSync, - webcrypto: { subtle } -} = require('crypto'); - -async function generateKey(namedCurve) { - return subtle.generateKey( - { - name: namedCurve, - namedCurve - }, - true, - ['sign', 'verify']); -} - -async function test1(namedCurve) { - const { - publicKey, - privateKey, - } = await generateKey(namedCurve); - - const data = Buffer.from('hello world'); - - assert(publicKey); - assert(privateKey); - - const sig = await subtle.sign( - { name: namedCurve }, - privateKey, - data - ); - - assert(sig); - - assert(await subtle.verify( - { name: namedCurve }, - publicKey, - sig, - data - )); -} - -Promise.all([ - test1('NODE-ED25519'), - test1('NODE-ED448'), -]).then(common.mustCall()); - -assert.rejects( - subtle.importKey( - 'raw', - Buffer.alloc(10), - { - name: 'NODE-ED25519', - namedCurve: 'NODE-ED25519' - }, - false, - ['sign']), - { - message: /NODE-ED25519 raw keys must be exactly 32-bytes/ - }).then(common.mustCall()); - -assert.rejects( - subtle.importKey( - 'raw', - Buffer.alloc(10), - { - name: 'NODE-ED448', - namedCurve: 'NODE-ED448' - }, - false, - ['sign']), - { - message: /NODE-ED448 raw keys must be exactly 57-bytes/ - }).then(common.mustCall()); - -const testVectors = { - 'NODE-ED25519': [ - { - privateKey: - Buffer.from( - '9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60', - 'hex'), - publicKey: - Buffer.from( - 'd75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a', - 'hex'), - message: Buffer.alloc(0), - sig: - Buffer.from( - 'e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e06522490155' + - '5fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b', - 'hex'), - crv: 'Ed25519', - }, - { - privateKey: - Buffer.from( - '4ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb', - 'hex'), - publicKey: - Buffer.from( - '3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c', - 'hex'), - message: Buffer.from('72', 'hex'), - sig: - Buffer.from( - '92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da' + - '085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00', - 'hex'), - crv: 'Ed25519', - }, - { - privateKey: - Buffer.from( - 'c5aa8df43f9f837bedb7442f31dcb7b166d38535076f094b85ce3a2e0b4458f7', - 'hex'), - publicKey: - Buffer.from( - 'fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025', - 'hex'), - message: Buffer.from('af82', 'hex'), - sig: - Buffer.from( - '6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac' + - '18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a', - 'hex'), - crv: 'Ed25519', - }, - { - privateKey: - Buffer.from( - 'f5e5767cf153319517630f226876b86c8160cc583bc013744c6bf255f5cc0ee5', - 'hex'), - publicKey: - Buffer.from( - '278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e', - 'hex'), - message: Buffer.from( - '08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98' + - 'fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d8' + - '79de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d' + - '658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc' + - '1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4fe' + - 'ba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e' + - '06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbef' + - 'efd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7' + - 'aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed1' + - '85ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2' + - 'd17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24' + - '554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f270' + - '88d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc' + - '2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b07' + - '07e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128ba' + - 'b27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51a' + - 'ddd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429e' + - 'c96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb7' + - '51fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c' + - '42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8' + - 'ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34df' + - 'f7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08' + - 'd78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649' + - 'de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e4' + - '88acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a3' + - '2ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e' + - '6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5f' + - 'b93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b5' + - '0d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1' + - '369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380d' + - 'b2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c' + - '0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0', - 'hex'), - sig: Buffer.from( - '0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350' + - 'aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03', - 'hex'), - crv: 'Ed25519', - }, - ], - 'NODE-ED448': [ - { - privateKey: - Buffer.from( - '6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3' + - '528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b', 'hex'), - publicKey: - Buffer.from( - '5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778' + - 'edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180', 'hex'), - message: Buffer.alloc(0), - sig: - Buffer.from( - '533a37f6bbe457251f023c0d88f976ae2dfb504a843e34d2074fd823d41a591f' + - '2b233f034f628281f2fd7a22ddd47d7828c59bd0a21bfd3980ff0d2028d4b18a' + - '9df63e006c5d1c2d345b925d8dc00b4104852db99ac5c7cdda8530a113a0f4db' + - 'b61149f05a7363268c71d95808ff2e652600', 'hex'), - crv: 'Ed448', - }, - { - privateKey: - Buffer.from( - 'c4eab05d357007c632f3dbb48489924d552b08fe0c353a0d4a1f00acda2c463a' + - 'fbea67c5e8d2877c5e3bc397a659949ef8021e954e0a12274e', 'hex'), - publicKey: - Buffer.from( - '43ba28f430cdff456ae531545f7ecd0ac834a55d9358c0372bfa0c6c6798c086' + - '6aea01eb00742802b8438ea4cb82169c235160627b4c3a9480', 'hex'), - message: Buffer.from('03', 'hex'), - sig: - Buffer.from( - '26b8f91727bd62897af15e41eb43c377efb9c610d48f2335cb0bd0087810f435' + - '2541b143c4b981b7e18f62de8ccdf633fc1bf037ab7cd779805e0dbcc0aae1cb' + - 'cee1afb2e027df36bc04dcecbf154336c19f0af7e0a6472905e799f1953d2a0f' + - 'f3348ab21aa4adafd1d234441cf807c03a00', 'hex'), - crv: 'Ed448', - }, - { - privateKey: - Buffer.from( - 'cd23d24f714274e744343237b93290f511f6425f98e64459ff203e8985083ffd' + - 'f60500553abc0e05cd02184bdb89c4ccd67e187951267eb328', 'hex'), - publicKey: - Buffer.from( - 'dcea9e78f35a1bf3499a831b10b86c90aac01cd84b67a0109b55a36e9328b1e3' + - '65fce161d71ce7131a543ea4cb5f7e9f1d8b00696447001400', 'hex'), - message: Buffer.from('0c3e544074ec63b0265e0c', 'hex'), - sig: - Buffer.from( - '1f0a8888ce25e8d458a21130879b840a9089d999aaba039eaf3e3afa090a09d3' + - '89dba82c4ff2ae8ac5cdfb7c55e94d5d961a29fe0109941e00b8dbdeea6d3b05' + - '1068df7254c0cdc129cbe62db2dc957dbb47b51fd3f213fb8698f064774250a5' + - '028961c9bf8ffd973fe5d5c206492b140e00', 'hex'), - crv: 'Ed448', - }, - ] -}; - -async function test2(namedCurve) { - const vectors = testVectors[namedCurve]; - await Promise.all(vectors.map(async (vector) => { - const [ - privateKey, - publicKey, - ] = await Promise.all([ - subtle.importKey( - 'raw', - vector.privateKey, - { - name: namedCurve, - namedCurve - }, - true, ['sign']), - subtle.importKey( - 'raw', - vector.publicKey, - { - name: namedCurve, - namedCurve, - public: true - }, - true, ['verify']), - ]); - - const rawPublicKey = await subtle.exportKey('raw', publicKey); - assert.deepStrictEqual(Buffer.from(rawPublicKey), vector.publicKey); - - assert.rejects(subtle.exportKey('raw', privateKey), { - message: new RegExp(`Unable to export a raw ${namedCurve} private key`) - }).then(common.mustCall()); - - const sig = await subtle.sign( - { name: namedCurve }, - privateKey, - vector.message - ); - - assert(sig); - - assert(await subtle.verify( - { name: namedCurve }, - publicKey, - vector.sig, - vector.message - )); - - const [ - publicKeyJwk, - privateKeyJwk, - ] = await Promise.all([ - subtle.exportKey('jwk', publicKey), - subtle.exportKey('jwk', privateKey), - ]); - assert.strictEqual(publicKeyJwk.kty, 'OKP'); - assert.strictEqual(privateKeyJwk.kty, 'OKP'); - assert.strictEqual(publicKeyJwk.crv, vector.crv); - assert.strictEqual(privateKeyJwk.crv, vector.crv); - assert.deepStrictEqual( - Buffer.from(publicKeyJwk.x, 'base64'), - vector.publicKey); - assert.deepStrictEqual( - Buffer.from(privateKeyJwk.x, 'base64'), - vector.publicKey); - assert.deepStrictEqual( - Buffer.from(privateKeyJwk.d, 'base64'), - vector.privateKey); - })); -} - -Promise.all([ - test2('NODE-ED25519'), - test2('NODE-ED448'), -]).then(common.mustCall()); - -assert.rejects( - subtle.generateKey( - { - name: 'ECDSA', - namedCurve: 'NODE-X25519' - }, - true, - ['sign', 'verify']), - { - message: /Unsupported named curves for ECDSA/ - }).then(common.mustCall()); - -assert.rejects( - subtle.generateKey( - { - name: 'ECDSA', - namedCurve: 'NODE-X448' - }, - true, - ['sign', 'verify']), - { - message: /Unsupported named curves for ECDSA/ - }).then(common.mustCall()); - -assert.rejects( - subtle.generateKey( - { - name: 'ECDSA', - namedCurve: 'NODE-ED25519' - }, - true, - ['sign', 'verify']), - { - message: /Unsupported named curves for ECDSA/ - }).then(common.mustCall()); - -assert.rejects( - subtle.generateKey( - { - name: 'ECDSA', - namedCurve: 'NODE-ED448' - }, - true, - ['sign', 'verify']), - { - message: /Unsupported named curves for ECDSA/ - }).then(common.mustCall()); - -{ - for (const asymmetricKeyType of ['ed25519', 'ed448']) { - const { publicKey, privateKey } = generateKeyPairSync(asymmetricKeyType); - for (const keyObject of [publicKey, privateKey]) { - const namedCurve = `NODE-${asymmetricKeyType.toUpperCase()}`; - subtle.importKey( - 'node.keyObject', - keyObject, - { name: namedCurve, namedCurve }, - true, - keyObject.type === 'private' ? ['sign'] : ['verify'], - ).then((cryptoKey) => { - assert.strictEqual(cryptoKey.type, keyObject.type); - assert.strictEqual(cryptoKey.algorithm.name, namedCurve); - }, common.mustNotCall()); - - subtle.importKey( - keyObject.type === 'private' ? 'pkcs8' : 'spki', - keyObject.export({ - format: 'der', - type: keyObject.type === 'private' ? 'pkcs8' : 'spki', - }), - { name: namedCurve, namedCurve }, - true, - keyObject.type === 'private' ? ['sign'] : ['verify'], - ).then((cryptoKey) => { - assert.strictEqual(cryptoKey.type, keyObject.type); - assert.strictEqual(cryptoKey.algorithm.name, namedCurve); - assert.strictEqual(cryptoKey.algorithm.namedCurve, namedCurve); - }, common.mustNotCall()); - - assert.rejects( - subtle.importKey( - 'node.keyObject', - keyObject, - { - name: 'ECDSA', - namedCurve, - }, - true, - keyObject.type === 'private' ? ['sign'] : ['verify'] - ), - { - message: /Invalid algorithm name/ - }).then(common.mustCall()); - - assert.rejects( - subtle.importKey( - 'node.keyObject', - keyObject, - { - name: 'ECDH', - namedCurve, - }, - true, - keyObject.type === 'private' ? ['deriveBits', 'deriveKey'] : [], - ), - { - message: /Invalid algorithm name/ - }).then(common.mustCall()); - } - } -} - -{ - // See: https://github.com/nodejs/node/pull/40300 - for (const namedCurve of ['NODE-ED25519', 'NODE-ED448']) { - assert.rejects( - (async () => { - const { privateKey } = await generateKey(namedCurve); - return subtle.sign( - { - name: namedCurve, - hash: 'SHA-256' - }, - privateKey, - Buffer.from('abc') - ); - })(), - (err) => { - assert.strictEqual(err.message, `Hash is not permitted for ${namedCurve}`); - assert(err instanceof DOMException); - return true; - }).then(common.mustCall()); - - assert.rejects( - (async () => { - const { publicKey, privateKey } = await generateKey(namedCurve); - const signature = await subtle.sign( - { - name: namedCurve, - }, - privateKey, - Buffer.from('abc') - ).catch(common.mustNotCall()); - - return subtle.verify( - { - name: namedCurve, - hash: 'SHA-256', - }, - publicKey, - signature, - Buffer.from('abc') - ); - })(), - (err) => { - assert.strictEqual(err.message, `Hash is not permitted for ${namedCurve}`); - assert(err instanceof DOMException); - return true; - }).then(common.mustCall()); - } -} diff --git a/test/parallel/test-webcrypto-export-import-cfrg.js b/test/parallel/test-webcrypto-export-import-cfrg.js new file mode 100644 index 00000000000000..6d162ac61c2e30 --- /dev/null +++ b/test/parallel/test-webcrypto-export-import-cfrg.js @@ -0,0 +1,333 @@ +'use strict'; + +const common = require('../common'); +const fixtures = require('../common/fixtures'); + +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const crypto = require('crypto'); +const { subtle } = crypto.webcrypto; + +const keyData = { + 'Ed25519': { + jwsAlg: 'EdDSA', + spki: Buffer.from( + '302a300506032b6570032100a054b618c12b26c8d43595a5c38dd2b0140b944a' + + '151f75003278c2b6c58ec08f', 'hex'), + pkcs8: Buffer.from( + '302e020100300506032b657004220420d53150bdcd17b4d4b21ae756d4965639' + + 'd75b28f56ff9111b1f88326913e445bc', 'hex'), + jwk: { + kty: 'OKP', + crv: 'Ed25519', + x: 'oFS2GMErJsjUNZWlw43SsBQLlEoVH3UAMnjCtsWOwI8', + d: '1TFQvc0XtNSyGudW1JZWOddbKPVv-REbH4gyaRPkRbw' + } + }, + 'Ed448': { + jwsAlg: 'EdDSA', + spki: Buffer.from( + '3043300506032b6571033a0008cc38160c85bca5656ac4924af7ea97a9161b20' + + '2528273dcb84afd2eeb99ac912a401b34ef15ef4d9486406a6eecc31e5909219' + + 'bd54866800', 'hex'), + pkcs8: Buffer.from( + '3047020100300506032b6571043b0439afd05b2fbb153b47c18dfa66baaed0de' + + 'fb4e88c651487cdee0fafc40fa3d048fe1cd145a44143243c0468166b5bc161a' + + '82e3b904f3e2fcaaf9', 'hex'), + jwk: { + kty: 'OKP', + crv: 'Ed448', + x: 'CMw4FgyFvKVlasSSSvfql6kWGyAlKCc9y4Sv0u65mskSpAGzTvFe9NlIZAam7' + + 'swx5ZCSGb1UhmgA', + d: 'r9BbL7sVO0fBjfpmuq7Q3vtOiMZRSHze4Pr8QPo9BI_hzRRaRBQyQ8BGgWa1v' + + 'BYaguO5BPPi_Kr5' + } + }, + 'X25519': { + jwsAlg: 'ECDH-ES', + spki: Buffer.from( + '302a300506032b656e032100f38d9f4e621a44e0428176a4c8a534b34f07f8db' + + '30152f9ca0167aabf598fe65', 'hex'), + pkcs8: Buffer.from( + '302e020100300506032b656e04220420a8327850317b4b03a5a8b4e923413b1d' + + 'a4a642e0d6f7a72cf4d16a549e628a5f', 'hex'), + jwk: { + kty: 'OKP', + crv: 'X25519', + x: '842fTmIaROBCgXakyKU0s08H-NswFS-coBZ6q_WY_mU', + d: 'qDJ4UDF7SwOlqLTpI0E7HaSmQuDW96cs9NFqVJ5iil8' + } + }, + 'X448': { + jwsAlg: 'ECDH-ES', + spki: Buffer.from( + '3042300506032b656f0339001d451c8c0c369a42eadfc2875cd44953caeb46c4' + + '66dc86568280bfdbbb01f4709a1b0b1e0dd66cf7b11c84119ddc98890db72891' + + '29e30da4', 'hex'), + pkcs8: Buffer.from( + '3046020100300506032b656f043a0438fc818f6546a81f963c27765dc1c05bfd' + + 'b169667e5e0cf45318ed1cb93872217ab0d9004e0c7dd0dcb00192f72039cc1a' + + '1dff750ec31c8afb', 'hex'), + jwk: { + kty: 'OKP', + crv: 'X448', + x: 'HUUcjAw2mkLq38KHXNRJU8rrRsRm3IZWgoC_27sB9HCaGwseDdZs97EchBGd3' + + 'JiJDbcokSnjDaQ', + d: '_IGPZUaoH5Y8J3ZdwcBb_bFpZn5eDPRTGO0cuThyIXqw2QBODH3Q3LABkvcgO' + + 'cwaHf91DsMcivs' + } + } +}; + +const testVectors = [ + { + name: 'Ed25519', + privateUsages: ['sign'], + publicUsages: ['verify'] + }, + { + name: 'Ed448', + privateUsages: ['sign'], + publicUsages: ['verify'] + }, + { + name: 'X25519', + privateUsages: ['deriveKey', 'deriveBits'], + publicUsages: [] + }, + { + name: 'X448', + privateUsages: ['deriveKey', 'deriveBits'], + publicUsages: [] + }, +]; + +async function testImportSpki({ name, publicUsages }, extractable) { + const key = await subtle.importKey( + 'spki', + keyData[name].spki, + { name }, + extractable, + publicUsages); + assert.strictEqual(key.type, 'public'); + assert.strictEqual(key.extractable, extractable); + assert.deepStrictEqual(key.usages, publicUsages); + assert.deepStrictEqual(key.algorithm.name, name); + + if (extractable) { + // Test the roundtrip + const spki = await subtle.exportKey('spki', key); + assert.strictEqual( + Buffer.from(spki).toString('hex'), + keyData[name].spki.toString('hex')); + } else { + await assert.rejects( + subtle.exportKey('spki', key), { + message: /key is not extractable/ + }); + } + + // Bad usage + await assert.rejects( + subtle.importKey( + 'spki', + keyData[name].spki, + { name }, + extractable, + ['wrapKey']), + { message: /Unsupported key usage/ }); +} + +async function testImportPkcs8({ name, privateUsages }, extractable) { + const key = await subtle.importKey( + 'pkcs8', + keyData[name].pkcs8, + { name }, + extractable, + privateUsages); + assert.strictEqual(key.type, 'private'); + assert.strictEqual(key.extractable, extractable); + assert.deepStrictEqual(key.usages, privateUsages); + assert.deepStrictEqual(key.algorithm.name, name); + + if (extractable) { + // Test the roundtrip + const pkcs8 = await subtle.exportKey('pkcs8', key); + assert.strictEqual( + Buffer.from(pkcs8).toString('hex'), + keyData[name].pkcs8.toString('hex')); + } else { + await assert.rejects( + subtle.exportKey('pkcs8', key), { + message: /key is not extractable/ + }); + } +} + +async function testImportJwk({ name, publicUsages, privateUsages }, extractable) { + + const jwk = keyData[name].jwk; + + const [ + publicKey, + privateKey, + ] = await Promise.all([ + subtle.importKey( + 'jwk', + { + kty: jwk.kty, + crv: jwk.crv, + x: jwk.x, + }, + { name }, + extractable, publicUsages), + subtle.importKey( + 'jwk', + jwk, + { name }, + extractable, + privateUsages), + subtle.importKey( + 'jwk', + { + alg: keyData[name].jwsAlg, + kty: jwk.kty, + crv: jwk.crv, + x: jwk.x, + }, + { name }, + extractable, publicUsages), + subtle.importKey( + 'jwk', + { + ...jwk, + alg: keyData[name].jwsAlg, + }, + { name }, + extractable, + privateUsages), + ]); + + assert.strictEqual(publicKey.type, 'public'); + assert.strictEqual(privateKey.type, 'private'); + assert.strictEqual(publicKey.extractable, extractable); + assert.strictEqual(privateKey.extractable, extractable); + assert.deepStrictEqual(publicKey.usages, publicUsages); + assert.deepStrictEqual(privateKey.usages, privateUsages); + assert.strictEqual(publicKey.algorithm.name, name); + assert.strictEqual(privateKey.algorithm.name, name); + + if (extractable) { + // Test the round trip + const [ + pubJwk, + pvtJwk, + ] = await Promise.all([ + subtle.exportKey('jwk', publicKey), + subtle.exportKey('jwk', privateKey), + ]); + + assert.deepStrictEqual(pubJwk.key_ops, publicUsages); + assert.strictEqual(pubJwk.ext, true); + assert.strictEqual(pubJwk.kty, 'OKP'); + assert.strictEqual(pubJwk.x, jwk.x); + assert.strictEqual(pubJwk.crv, jwk.crv); + + assert.deepStrictEqual(pvtJwk.key_ops, privateUsages); + assert.strictEqual(pvtJwk.ext, true); + assert.strictEqual(pvtJwk.kty, 'OKP'); + assert.strictEqual(pvtJwk.x, jwk.x); + assert.strictEqual(pvtJwk.crv, jwk.crv); + assert.strictEqual(pvtJwk.d, jwk.d); + + if (jwk.crv.startsWith('Ed')) { + assert.strictEqual(pubJwk.alg, 'EdDSA'); + assert.strictEqual(pvtJwk.alg, 'EdDSA'); + } else { + assert.strictEqual(pubJwk.alg, undefined); + assert.strictEqual(pvtJwk.alg, undefined); + } + } else { + await assert.rejects( + subtle.exportKey('jwk', publicKey), { + message: /key is not extractable/ + }); + await assert.rejects( + subtle.exportKey('jwk', privateKey), { + message: /key is not extractable/ + }); + } + + for (const crv of [undefined, name === 'Ed25519' ? 'Ed448' : 'Ed25519']) { + await assert.rejects( + subtle.importKey( + 'jwk', + { kty: jwk.kty, x: jwk.x, y: jwk.y, crv }, + { name }, + extractable, + publicUsages), + { message: /Subtype mismatch/ }); + + await assert.rejects( + subtle.importKey( + 'jwk', + { kty: jwk.kty, d: jwk.d, x: jwk.x, y: jwk.y, crv }, + { name }, + extractable, + publicUsages), + { message: /Subtype mismatch/ }); + } +} + +async function testImportRaw({ name, publicUsages }) { + const jwk = keyData[name].jwk; + + const publicKey = await subtle.importKey( + 'raw', + Buffer.from(jwk.x, 'base64url'), + { name }, + true, publicUsages); + + assert.strictEqual(publicKey.type, 'public'); + assert.deepStrictEqual(publicKey.usages, publicUsages); + assert.strictEqual(publicKey.algorithm.name, name); +} + +(async function() { + const tests = []; + testVectors.forEach((vector) => { + [true, false].forEach((extractable) => { + tests.push(testImportSpki(vector, extractable)); + tests.push(testImportPkcs8(vector, extractable)); + tests.push(testImportJwk(vector, extractable)); + }); + tests.push(testImportRaw(vector)); + }); + + await Promise.all(tests); +})().then(common.mustCall()); + +{ + const rsaPublic = crypto.createPublicKey( + fixtures.readKey('rsa_public_2048.pem')); + const rsaPrivate = crypto.createPrivateKey( + fixtures.readKey('rsa_private_2048.pem')); + + for (const [name, [publicUsage, privateUsage]] of Object.entries({ + 'Ed25519': ['verify', 'sign'], + 'X448': ['deriveBits', 'deriveBits'], + })) { + assert.rejects(subtle.importKey( + 'spki', + rsaPublic.export({ format: 'der', type: 'spki' }), + { name }, + true, [publicUsage]), { message: /Invalid key type/ }); + assert.rejects(subtle.importKey( + 'pkcs8', + rsaPrivate.export({ format: 'der', type: 'pkcs8' }), + { name }, + true, [privateUsage]), { message: /Invalid key type/ }); + } +} diff --git a/test/parallel/test-webcrypto-export-import-dsa.js b/test/parallel/test-webcrypto-export-import-dsa.js deleted file mode 100644 index 01e31d747942ae..00000000000000 --- a/test/parallel/test-webcrypto-export-import-dsa.js +++ /dev/null @@ -1,164 +0,0 @@ -'use strict'; - -const common = require('../common'); -const fixtures = require('../common/fixtures'); - -if (!common.hasCrypto) - common.skip('missing crypto'); - -const assert = require('assert'); -const crypto = require('crypto'); -const { subtle } = crypto.webcrypto; - -const sizes = [1024]; - -const hashes = [ - 'SHA-1', - 'SHA-256', - 'SHA-384', - 'SHA-512', -]; - -const keyData = { - 1024: { - spki: Buffer.from( - '308201c03082013406072a8648ce3804013082012702818100d5f35aa5730e26166fd' + - '3ea81f8f0eeb05bd1250e164b7c76b180b6dae95096d13dee6956e15a9aea7cf18a0d' + - 'f7c5dc326ccef1cbf97636d22f870b76f2607f9a867db2756aecf65505aa48fdea5f5' + - 'ee54f508a05d9dae76bf262b4ca3662cc176b7c628c7bee2076df07f9a64e0402630d' + - 'fee63eaf0ed64d48b469fe1c9ac4a1021d00b14213226cfcfb59e3a0379e559c74ff8' + - 'a7383eb4c41cecb6f3732b702818100a0865b7f8954e7ae587c8e6a89e391e82657c5' + - '8f05ccd94de61748e89e217efab3d9b5fa842ebc62525966916ad2b7af422a9b24078' + - '17a5b382b6581434fd1a169c75ad4d0e3862a3f484e9f9f2a816f943a8e6060f26fe2' + - '7c533587b765e57948439084e76fd6a4fd004f5c78d972cf7f100ec9494a902645bac' + - 'a4b4c6f399303818500028181009a8df69f2fe321869e2094e387bc1dc2b5f3bff2a2' + - 'e23cfba51d3c119fba6b4c15a49485fa811b6955d91d28c9e2e0445a79ddc5426b2fe' + - '44e00a6c9254c776f13fd10dbc934262077b1df72c16bc848817c61fb6a607abe60c7' + - 'd11528ab9bdf55de45495733a047bd75a48b8166f1aa3deab681a2574a4f35106f0d7' + - '8b641d7', 'hex'), - pkcs8: Buffer.from( - '3082015b0201003082013406072a8648ce3804013082012702818100d5f35aa5730e2' + - '6166fd3ea81f8f0eeb05bd1250e164b7c76b180b6dae95096d13dee6956e15a9aea7c' + - 'f18a0df7c5dc326ccef1cbf97636d22f870b76f2607f9a867db2756aecf65505aa48f' + - 'dea5f5ee54f508a05d9dae76bf262b4ca3662cc176b7c628c7bee2076df07f9a64e04' + - '02630dfee63eaf0ed64d48b469fe1c9ac4a1021d00b14213226cfcfb59e3a0379e559' + - 'c74ff8a7383eb4c41cecb6f3732b702818100a0865b7f8954e7ae587c8e6a89e391e8' + - '2657c58f05ccd94de61748e89e217efab3d9b5fa842ebc62525966916ad2b7af422a9' + - 'b2407817a5b382b6581434fd1a169c75ad4d0e3862a3f484e9f9f2a816f943a8e6060' + - 'f26fe27c533587b765e57948439084e76fd6a4fd004f5c78d972cf7f100ec9494a902' + - '645baca4b4c6f3993041e021c600daa0a9c4cc674c98bb07956374c84ac1c33af8816' + - '3ea7e2587876', 'hex'), - }, -}; - -async function testImportSpki({ name, publicUsages }, size, hash, extractable) { - const key = await subtle.importKey( - 'spki', - keyData[size].spki, - { name, hash }, - extractable, - publicUsages); - - assert.strictEqual(key.type, 'public'); - assert.strictEqual(key.extractable, extractable); - assert.deepStrictEqual(key.usages, publicUsages); - assert.strictEqual(key.algorithm.name, name); - assert.strictEqual(key.algorithm.modulusLength, size); - assert.strictEqual(key.algorithm.hash.name, hash); - - if (extractable) { - const spki = await subtle.exportKey('spki', key); - assert.strictEqual( - Buffer.from(spki).toString('hex'), - keyData[size].spki.toString('hex')); - } else { - await assert.rejects( - subtle.exportKey('spki', key), { - message: /key is not extractable/ - }); - } -} - -async function testImportPkcs8( - { name, privateUsages }, - size, - hash, - extractable) { - const key = await subtle.importKey( - 'pkcs8', - keyData[size].pkcs8, - { name, hash }, - extractable, - privateUsages); - - assert.strictEqual(key.type, 'private'); - assert.strictEqual(key.extractable, extractable); - assert.deepStrictEqual(key.usages, privateUsages); - assert.strictEqual(key.algorithm.name, name); - assert.strictEqual(key.algorithm.modulusLength, size); - assert.strictEqual(key.algorithm.hash.name, hash); - - if (extractable) { - const pkcs8 = await subtle.exportKey('pkcs8', key); - assert.strictEqual( - Buffer.from(pkcs8).toString('hex'), - keyData[size].pkcs8.toString('hex')); - } else { - await assert.rejects( - subtle.exportKey('pkcs8', key), { - message: /key is not extractable/ - }); - } -} - -// combinations to test -const testVectors = [ - { - name: 'NODE-DSA', - privateUsages: ['sign'], - publicUsages: ['verify'] - }, -]; - -(async function() { - const variations = []; - sizes.forEach((size) => { - hashes.forEach((hash) => { - [true, false].forEach((extractable) => { - testVectors.forEach((vector) => { - variations.push(testImportSpki(vector, size, hash, extractable)); - variations.push(testImportPkcs8(vector, size, hash, extractable)); - }); - }); - }); - }); - await Promise.all(variations); -})().then(common.mustCall()); - -{ - const ecPublic = crypto.createPublicKey( - fixtures.readKey('ec_p256_public.pem')); - const ecPrivate = crypto.createPrivateKey( - fixtures.readKey('ec_p256_private.pem')); - - assert.rejects(subtle.importKey( - 'node.keyObject', - ecPublic, - { name: 'NODE-DSA', hash: 'SHA-256' }, - true, ['verify']), { message: /Invalid key type/ }); - assert.rejects(subtle.importKey( - 'node.keyObject', - ecPrivate, - { name: 'NODE-DSA', hash: 'SHA-256' }, - true, ['sign']), { message: /Invalid key type/ }); - assert.rejects(subtle.importKey( - 'spki', - ecPublic.export({ format: 'der', type: 'spki' }), - { name: 'NODE-DSA', hash: 'SHA-256' }, - true, ['verify']), { message: /Invalid key type/ }); - assert.rejects(subtle.importKey( - 'pkcs8', - ecPrivate.export({ format: 'der', type: 'pkcs8' }), - { name: 'NODE-DSA', hash: 'SHA-256' }, - true, ['sign']), { message: /Invalid key type/ }); -} diff --git a/test/parallel/test-webcrypto-export-import-ec.js b/test/parallel/test-webcrypto-export-import-ec.js index 682d5f54be5563..79f82a3d4adc26 100644 --- a/test/parallel/test-webcrypto-export-import-ec.js +++ b/test/parallel/test-webcrypto-export-import-ec.js @@ -260,6 +260,55 @@ async function testImportJwk( message: /key is not extractable/ }); } + + for (const crv of [undefined, namedCurve === 'P-256' ? 'P-384' : 'P-256']) { + await assert.rejects( + subtle.importKey( + 'jwk', + { kty: jwk.kty, x: jwk.x, y: jwk.y, crv }, + { name, namedCurve }, + extractable, + publicUsages), + { message: /Named curve mismatch/ }); + + await assert.rejects( + subtle.importKey( + 'jwk', + { kty: jwk.kty, d: jwk.d, x: jwk.x, y: jwk.y, crv }, + { name, namedCurve }, + extractable, + publicUsages), + { message: /Named curve mismatch/ }); + } +} + +async function testImportRaw({ name, publicUsages }, namedCurve) { + const jwk = keyData[namedCurve].jwk; + + const [publicKey] = await Promise.all([ + subtle.importKey( + 'raw', + Buffer.concat([ + Buffer.alloc(1, 0x04), + Buffer.from(jwk.x, 'base64url'), + Buffer.from(jwk.y, 'base64url'), + ]), + { name, namedCurve }, + true, publicUsages), + subtle.importKey( + 'raw', + Buffer.concat([ + Buffer.alloc(1, 0x03), + Buffer.from(jwk.x, 'base64url'), + ]), + { name, namedCurve }, + true, publicUsages), + ]); + + assert.strictEqual(publicKey.type, 'public'); + assert.deepStrictEqual(publicKey.usages, publicUsages); + assert.strictEqual(publicKey.algorithm.name, name); + assert.strictEqual(publicKey.algorithm.namedCurve, namedCurve); } (async function() { @@ -271,6 +320,7 @@ async function testImportJwk( tests.push(testImportPkcs8(vector, namedCurve, extractable)); tests.push(testImportJwk(vector, namedCurve, extractable)); }); + tests.push(testImportRaw(vector, namedCurve)); }); }); @@ -287,16 +337,6 @@ async function testImportJwk( 'ECDSA': ['verify', 'sign'], 'ECDH': ['deriveBits', 'deriveBits'], })) { - assert.rejects(subtle.importKey( - 'node.keyObject', - rsaPublic, - { name, hash: 'SHA-256', namedCurve: 'P-256' }, - true, [publicUsage]), { message: /Invalid key type/ }); - assert.rejects(subtle.importKey( - 'node.keyObject', - rsaPrivate, - { name, hash: 'SHA-256', namedCurve: 'P-256' }, - true, [privateUsage]), { message: /Invalid key type/ }); assert.rejects(subtle.importKey( 'spki', rsaPublic.export({ format: 'der', type: 'spki' }), diff --git a/test/parallel/test-webcrypto-export-import-rsa.js b/test/parallel/test-webcrypto-export-import-rsa.js index ab7aa77394ac99..1efc69b70aa971 100644 --- a/test/parallel/test-webcrypto-export-import-rsa.js +++ b/test/parallel/test-webcrypto-export-import-rsa.js @@ -481,48 +481,6 @@ const testVectors = [ await Promise.all(variations); })().then(common.mustCall()); -{ - const publicPem = fixtures.readKey('rsa_pss_public_2048.pem', 'ascii'); - const privatePem = fixtures.readKey('rsa_pss_private_2048.pem', 'ascii'); - - const publicDer = Buffer.from( - publicPem.replace( - /(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g, - '' - ), - 'base64' - ); - const privateDer = Buffer.from( - privatePem.replace( - /(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g, - '' - ), - 'base64' - ); - - (async () => { - const key = await subtle.importKey( - 'spki', - publicDer, - { name: 'RSA-PSS', hash: 'SHA-256' }, - true, - ['verify']); - const jwk = await subtle.exportKey('jwk', key); - assert.strictEqual(jwk.alg, 'PS256'); - })().then(common.mustCall()); - - (async () => { - const key = await subtle.importKey( - 'pkcs8', - privateDer, - { name: 'RSA-PSS', hash: 'SHA-256' }, - true, - ['sign']); - const jwk = await subtle.exportKey('jwk', key); - assert.strictEqual(jwk.alg, 'PS256'); - })().then(common.mustCall()); -} - { const ecPublic = crypto.createPublicKey( fixtures.readKey('ec_p256_public.pem')); @@ -534,16 +492,6 @@ const testVectors = [ 'RSASSA-PKCS1-v1_5': ['verify', 'sign'], 'RSA-OAEP': ['encrypt', 'decrypt'], })) { - assert.rejects(subtle.importKey( - 'node.keyObject', - ecPublic, - { name, hash: 'SHA-256' }, - true, [publicUsage]), { message: /Invalid key type/ }); - assert.rejects(subtle.importKey( - 'node.keyObject', - ecPrivate, - { name, hash: 'SHA-256' }, - true, [privateUsage]), { message: /Invalid key type/ }); assert.rejects(subtle.importKey( 'spki', ecPublic.export({ format: 'der', type: 'spki' }), diff --git a/test/parallel/test-webcrypto-export-import.js b/test/parallel/test-webcrypto-export-import.js index b4fd26b0cda6ae..02e178f72628d5 100644 --- a/test/parallel/test-webcrypto-export-import.js +++ b/test/parallel/test-webcrypto-export-import.js @@ -42,13 +42,6 @@ const { subtle } = webcrypto; name: 'SyntaxError', message: 'Unsupported key usage for an HMAC key' }); - await assert.rejects( - subtle.importKey('node.keyObject', '', { - name: 'HMAC', - hash: 'SHA-256' - }, false, ['sign', 'verify']), { - code: 'ERR_INVALID_ARG_TYPE' - }); await assert.rejects( subtle.importKey('raw', keyData, { name: 'HMAC', diff --git a/test/parallel/test-webcrypto-keygen.js b/test/parallel/test-webcrypto-keygen.js index 502c86cf32abf3..5d039fdf036344 100644 --- a/test/parallel/test-webcrypto-keygen.js +++ b/test/parallel/test-webcrypto-keygen.js @@ -1,3 +1,4 @@ +// Flags: --expose-internals 'use strict'; const common = require('../common'); @@ -10,8 +11,11 @@ const { types: { isCryptoKey } } = require('util'); const { webcrypto: { subtle, CryptoKey }, createSecretKey, + KeyObject, } = require('crypto'); +const { bigIntArrayToUnsignedBigInt } = require('internal/crypto/util'); + const allUsages = [ 'encrypt', 'decrypt', @@ -129,17 +133,40 @@ const vectors = { 'deriveBits', ] }, - 'NODE-DSA': { - algorithm: { modulusLength: 1024, hash: 'SHA-256' }, + 'Ed25519': { usages: [ 'sign', 'verify', ], - mandatoryUsages: [ + mandatoryUsages: ['sign'] + }, + 'Ed448': { + usages: [ 'sign', 'verify', + ], + mandatoryUsages: ['sign'] + }, + 'X25519': { + usages: [ + 'deriveKey', + 'deriveBits', + ], + mandatoryUsages: [ + 'deriveKey', + 'deriveBits', ] - } + }, + 'X448': { + usages: [ + 'deriveKey', + 'deriveBits', + ], + mandatoryUsages: [ + 'deriveKey', + 'deriveBits', + ] + }, }; // Test invalid algorithms @@ -183,19 +210,30 @@ const vectors = { // Test bad usages { async function test(name) { - const invalidUsages = []; - allUsages.forEach((usage) => { - if (!vectors[name].usages.includes(usage)) - invalidUsages.push(usage); - }); - return assert.rejects( + await assert.rejects( subtle.generateKey( { name, ...vectors[name].algorithm }, true, - invalidUsages), - { message: /Unsupported key usage/ }); + []), + { message: /Usages cannot be empty/ }); + + const invalidUsages = []; + allUsages.forEach((usage) => { + if (!vectors[name].usages.includes(usage)) + invalidUsages.push(usage); + }); + for (const invalidUsage of invalidUsages) { + await assert.rejects( + subtle.generateKey( + { + name, ...vectors[name].algorithm + }, + true, + [...vectors[name].usages, invalidUsage]), + { message: /Unsupported key usage/ }); + } } const tests = Object.keys(vectors).map(test); @@ -239,10 +277,16 @@ const vectors = { assert.strictEqual(publicKey.algorithm.name, name); assert.strictEqual(publicKey.algorithm.modulusLength, modulusLength); assert.deepStrictEqual(publicKey.algorithm.publicExponent, publicExponent); + assert.strictEqual( + KeyObject.from(publicKey).asymmetricKeyDetails.publicExponent, + bigIntArrayToUnsignedBigInt(publicExponent)); assert.strictEqual(publicKey.algorithm.hash.name, hash); assert.strictEqual(privateKey.algorithm.name, name); assert.strictEqual(privateKey.algorithm.modulusLength, modulusLength); assert.deepStrictEqual(privateKey.algorithm.publicExponent, publicExponent); + assert.strictEqual( + KeyObject.from(privateKey).asymmetricKeyDetails.publicExponent, + bigIntArrayToUnsignedBigInt(publicExponent)); assert.strictEqual(privateKey.algorithm.hash.name, hash); // Missing parameters @@ -319,6 +363,17 @@ const vectors = { code: 'ERR_INVALID_ARG_TYPE' }); })); + + await Promise.all([[1], [1, 0, 0]].map((publicExponent) => { + return assert.rejects(subtle.generateKey({ + name, + modulusLength, + publicExponent: new Uint8Array(publicExponent), + hash + }, true, usages), { + name: 'OperationError', + }); + })); } const kTests = [ @@ -535,21 +590,29 @@ const vectors = { tests.then(common.mustCall()); } -// Test NODE-DSA key generation +// End user code cannot create CryptoKey directly +assert.throws(() => new CryptoKey(), { code: 'ERR_ILLEGAL_CONSTRUCTOR' }); + +{ + const buffer = Buffer.from('Hello World'); + const keyObject = createSecretKey(buffer); + assert(!isCryptoKey(buffer)); + assert(!isCryptoKey(keyObject)); +} + +// Test OKP Key Generation { async function test( name, - modulusLength, - hash, privateUsages, publicUsages = privateUsages) { + let usages = privateUsages; if (publicUsages !== privateUsages) usages = usages.concat(publicUsages); + const { publicKey, privateKey } = await subtle.generateKey({ name, - modulusLength, - hash }, true, usages); assert(publicKey); @@ -564,104 +627,35 @@ const vectors = { assert.deepStrictEqual(publicKey.usages, publicUsages); assert.deepStrictEqual(privateKey.usages, privateUsages); assert.strictEqual(publicKey.algorithm.name, name); - assert.strictEqual(publicKey.algorithm.modulusLength, modulusLength); - assert.strictEqual(publicKey.algorithm.hash.name, hash); assert.strictEqual(privateKey.algorithm.name, name); - assert.strictEqual(privateKey.algorithm.modulusLength, modulusLength); - assert.strictEqual(privateKey.algorithm.hash.name, hash); - - // Missing parameters - await assert.rejects( - subtle.generateKey({ name, hash }, true, usages), { - code: 'ERR_INVALID_ARG_TYPE' - }); - - await assert.rejects( - subtle.generateKey({ name, modulusLength }, true, usages), { - code: 'ERR_MISSING_OPTION' - }); - - await Promise.all(['', true, {}].map((modulusLength) => { - return assert.rejects(subtle.generateKey({ - name, - modulusLength, - hash - }, true, usages), { - code: 'ERR_INVALID_ARG_TYPE' - }); - })); - - await Promise.all([true, {}, 1, []].map((hash) => { - return assert.rejects(subtle.generateKey({ - name, - modulusLength, - hash - }, true, usages), { - message: /Unrecognized name/ - }); - })); - - await Promise.all(['', {}, 1, []].map((extractable) => { - return assert.rejects(subtle.generateKey({ - name, - modulusLength, - hash - }, extractable, usages), { - code: 'ERR_INVALID_ARG_TYPE' - }); - })); - - await Promise.all(['', {}, 1, false].map((usages) => { - return assert.rejects(subtle.generateKey({ - name, - modulusLength, - hash - }, true, usages), { - code: 'ERR_INVALID_ARG_TYPE' - }); - })); } const kTests = [ [ - 'NODE-DSA', - 1024, - 'SHA-256', + 'Ed25519', ['sign'], ['verify'], ], + [ + 'Ed448', + ['sign'], + ['verify'], + ], + [ + 'X25519', + ['deriveKey', 'deriveBits'], + [], + ], + [ + 'X448', + ['deriveKey', 'deriveBits'], + [], + ], ]; const tests = kTests.map((args) => test(...args)); - Promise.all(tests).then(common.mustCall()); -} - -// Test NODE-DH key generation -(async function() { - const { publicKey, privateKey } = - await subtle.generateKey({ - name: 'NODE-DH', - group: 'modp15' - }, true, ['deriveKey']); - assert(publicKey); - assert(privateKey); - assert(isCryptoKey(publicKey)); - assert(isCryptoKey(privateKey)); - assert.strictEqual(publicKey.type, 'public'); - assert.strictEqual(privateKey.type, 'private'); - assert.strictEqual(publicKey.algorithm.name, 'NODE-DH'); - assert.strictEqual(privateKey.algorithm.name, 'NODE-DH'); - assert.strictEqual(publicKey.algorithm.group, 'modp15'); - assert.strictEqual(privateKey.algorithm.group, 'modp15'); -})().then(common.mustCall()); - -// End user code cannot create CryptoKey directly -assert.throws(() => new CryptoKey(), { code: 'ERR_ILLEGAL_CONSTRUCTOR' }); + // Test bad parameters -{ - const buffer = Buffer.from('Hello World'); - const keyObject = createSecretKey(buffer); - assert(!isCryptoKey(buffer)); - assert(!isCryptoKey(keyObject)); + Promise.all(tests).then(common.mustCall()); } diff --git a/test/parallel/test-webcrypto-rsa-pss-params.js b/test/parallel/test-webcrypto-rsa-pss-params.js deleted file mode 100644 index 964eaf32e890fd..00000000000000 --- a/test/parallel/test-webcrypto-rsa-pss-params.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -const common = require('../common'); - -if (!common.hasCrypto) - common.skip('missing crypto'); - -const { - createPrivateKey, - createPublicKey, - webcrypto: { - subtle - } -} = require('crypto'); - -const fixtures = require('../common/fixtures'); - -{ - const rsaPssKeyWithoutParams = fixtures.readKey('rsa_pss_private_2048.pem'); - - const pkcs8 = createPrivateKey(rsaPssKeyWithoutParams).export({ - type: 'pkcs8', - format: 'der' - }); - const spki = createPublicKey(rsaPssKeyWithoutParams).export({ - type: 'spki', - format: 'der' - }); - - const hashes = ['SHA-1', 'SHA-256', 'SHA-384', 'SHA-512']; - - const tasks = []; - for (const hash of hashes) { - const algorithm = { name: 'RSA-PSS', hash }; - tasks.push(subtle.importKey('pkcs8', pkcs8, algorithm, true, ['sign'])); - tasks.push(subtle.importKey('spki', spki, algorithm, true, ['verify'])); - } - - Promise.all(tasks).then(common.mustCall()); -} diff --git a/test/parallel/test-webcrypto-sign-verify-ecdsa.js b/test/parallel/test-webcrypto-sign-verify-ecdsa.js index 2f8f3a2fd229bd..4e79e4d4f846d6 100644 --- a/test/parallel/test-webcrypto-sign-verify-ecdsa.js +++ b/test/parallel/test-webcrypto-sign-verify-ecdsa.js @@ -23,6 +23,7 @@ async function testVerify({ name, privateKey, hmacKey, rsaKeys, + okpKeys, ] = await Promise.all([ subtle.importKey( 'spki', @@ -55,6 +56,12 @@ async function testVerify({ name, }, false, ['sign']), + subtle.generateKey( + { + name: 'Ed25519', + }, + false, + ['sign']), ]); assert(await subtle.verify({ name, hash }, publicKey, signature, plaintext)); @@ -89,6 +96,11 @@ async function testVerify({ name, message: /Unable to use this key to verify/ }); + await assert.rejects( + subtle.verify({ name, hash }, okpKeys.publicKey, signature, plaintext), { + message: /Unable to use this key to verify/ + }); + // Test failure when signature is altered { const copy = Buffer.from(signature); @@ -140,6 +152,7 @@ async function testSign({ name, privateKey, hmacKey, rsaKeys, + okpKeys, ] = await Promise.all([ subtle.importKey( 'spki', @@ -172,6 +185,12 @@ async function testSign({ name, }, false, ['sign']), + subtle.generateKey( + { + name: 'Ed25519', + }, + false, + ['sign']), ]); { @@ -210,6 +229,11 @@ async function testSign({ name, subtle.sign({ name, hash }, rsaKeys.privateKey, plaintext), { message: /Unable to use this key to sign/ }); + + await assert.rejects( + subtle.sign({ name, hash }, okpKeys.privateKey, plaintext), { + message: /Unable to use this key to sign/ + }); } (async function() { diff --git a/test/parallel/test-webcrypto-sign-verify-eddsa.js b/test/parallel/test-webcrypto-sign-verify-eddsa.js new file mode 100644 index 00000000000000..cec4f57a41a2a4 --- /dev/null +++ b/test/parallel/test-webcrypto-sign-verify-eddsa.js @@ -0,0 +1,263 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const { subtle } = require('crypto').webcrypto; + +const vectors = require('../fixtures/crypto/eddsa')(); + +async function testVerify({ name, + publicKeyBuffer, + privateKeyBuffer, + signature, + data }) { + const [ + publicKey, + noVerifyPublicKey, + privateKey, + hmacKey, + rsaKeys, + ecKeys, + ] = await Promise.all([ + subtle.importKey( + 'spki', + publicKeyBuffer, + { name }, + false, + ['verify']), + subtle.importKey( + 'spki', + publicKeyBuffer, + { name }, + false, + [ /* No usages */ ]), + subtle.importKey( + 'pkcs8', + privateKeyBuffer, + { name }, + false, + ['sign']), + subtle.generateKey( + { name: 'HMAC', hash: 'SHA-256' }, + false, + ['sign']), + subtle.generateKey( + { + name: 'RSA-PSS', + modulusLength: 1024, + publicExponent: new Uint8Array([1, 0, 1]), + hash: 'SHA-256', + }, + false, + ['sign']), + subtle.generateKey( + { + name: 'ECDSA', + namedCurve: 'P-256' + }, + false, + ['sign']), + ]); + + assert(await subtle.verify({ name }, publicKey, signature, data)); + + // Test verification with altered buffers + const copy = Buffer.from(data); + const sigcopy = Buffer.from(signature); + const p = subtle.verify({ name }, publicKey, sigcopy, copy); + copy[0] = 255 - copy[0]; + sigcopy[0] = 255 - sigcopy[0]; + assert(await p); + + // Test failure when using wrong key + await assert.rejects( + subtle.verify({ name }, privateKey, signature, data), { + message: /Unable to use this key to verify/ + }); + + await assert.rejects( + subtle.verify({ name }, noVerifyPublicKey, signature, data), { + message: /Unable to use this key to verify/ + }); + + // Test failure when using the wrong algorithms + await assert.rejects( + subtle.verify({ name }, hmacKey, signature, data), { + message: /Unable to use this key to verify/ + }); + + await assert.rejects( + subtle.verify({ name }, rsaKeys.publicKey, signature, data), { + message: /Unable to use this key to verify/ + }); + + await assert.rejects( + subtle.verify({ name }, ecKeys.publicKey, signature, data), { + message: /Unable to use this key to verify/ + }); + + // Test failure when signature is altered + { + const copy = Buffer.from(signature); + copy[0] = 255 - copy[0]; + assert(!(await subtle.verify( + { name }, + publicKey, + copy, + data))); + assert(!(await subtle.verify( + { name }, + publicKey, + copy.slice(1), + data))); + } + + // Test failure when data is altered + { + const copy = Buffer.from(data); + copy[0] = 255 - copy[0]; + assert(!(await subtle.verify({ name }, publicKey, signature, copy))); + } +} + +async function testSign({ name, + publicKeyBuffer, + privateKeyBuffer, + signature, + data }) { + const [ + publicKey, + noSignPrivateKey, + privateKey, + hmacKey, + rsaKeys, + ecKeys, + ] = await Promise.all([ + subtle.importKey( + 'spki', + publicKeyBuffer, + { name }, + false, + ['verify']), + subtle.importKey( + 'pkcs8', + privateKeyBuffer, + { name }, + false, + [ /* No usages */ ]), + subtle.importKey( + 'pkcs8', + privateKeyBuffer, + { name }, + false, + ['sign']), + subtle.generateKey( + { name: 'HMAC', hash: 'SHA-256' }, + false, + ['sign']), + subtle.generateKey( + { + name: 'RSA-PSS', + modulusLength: 1024, + publicExponent: new Uint8Array([1, 0, 1]), + hash: 'SHA-256', + }, + false, + ['sign']), + subtle.generateKey( + { + name: 'ECDSA', + namedCurve: 'P-256' + }, + false, + ['sign']), + ]); + + { + const sig = await subtle.sign({ name }, privateKey, data); + assert.strictEqual(sig.byteLength, signature.byteLength); + assert(await subtle.verify({ name }, publicKey, sig, data)); + } + + { + const copy = Buffer.from(data); + const p = subtle.sign({ name }, privateKey, copy); + copy[0] = 255 - copy[0]; + const sig = await p; + assert(await subtle.verify({ name }, publicKey, sig, data)); + } + + // Test failure when using wrong key + await assert.rejects( + subtle.sign({ name }, publicKey, data), { + message: /Unable to use this key to sign/ + }); + + // Test failure when no sign usage + await assert.rejects( + subtle.sign({ name }, noSignPrivateKey, data), { + message: /Unable to use this key to sign/ + }); + + // Test failure when using the wrong algorithms + await assert.rejects( + subtle.sign({ name }, hmacKey, data), { + message: /Unable to use this key to sign/ + }); + + await assert.rejects( + subtle.sign({ name }, rsaKeys.privateKey, data), { + message: /Unable to use this key to sign/ + }); + + await assert.rejects( + subtle.sign({ name }, ecKeys.privateKey, data), { + message: /Unable to use this key to sign/ + }); +} + +(async function() { + const variations = []; + + vectors.forEach((vector) => { + variations.push(testVerify(vector)); + variations.push(testSign(vector)); + }); + + await Promise.all(variations); +})().then(common.mustCall()); + +// Ed448 context +{ + const vector = vectors.find(({ name }) => name === 'Ed448'); + Promise.all([ + subtle.importKey( + 'pkcs8', + vector.privateKeyBuffer, + { name: 'Ed448' }, + false, + ['sign']), + subtle.importKey( + 'spki', + vector.publicKeyBuffer, + { name: 'Ed448' }, + false, + ['verify']), + ]).then(async ([privateKey, publicKey]) => { + const sig = await subtle.sign({ name: 'Ed448', context: Buffer.alloc(0) }, privateKey, vector.data); + assert.deepStrictEqual(Buffer.from(sig), vector.signature); + assert.strictEqual( + await subtle.verify({ name: 'Ed448', context: Buffer.alloc(0) }, publicKey, sig, vector.data), true); + + await assert.rejects(subtle.sign({ name: 'Ed448', context: Buffer.alloc(1) }, privateKey, vector.data), { + message: /Non zero-length context is not yet supported/ + }); + await assert.rejects(subtle.verify({ name: 'Ed448', context: Buffer.alloc(1) }, publicKey, sig, vector.data), { + message: /Non zero-length context is not yet supported/ + }); + }).then(common.mustCall()); +} diff --git a/test/parallel/test-webcrypto-sign-verify-hmac.js b/test/parallel/test-webcrypto-sign-verify-hmac.js index 3028816054ca76..0962773b132768 100644 --- a/test/parallel/test-webcrypto-sign-verify-hmac.js +++ b/test/parallel/test-webcrypto-sign-verify-hmac.js @@ -153,7 +153,7 @@ async function testSign({ hash, } await assert.rejects( - subtle.generateKey({ name }, false, []), { + subtle.generateKey({ name }, false, ['sign', 'verify']), { name: 'TypeError', code: 'ERR_MISSING_OPTION', message: 'algorithm.hash is required' diff --git a/test/parallel/test-webcrypto-sign-verify-node-dsa.js b/test/parallel/test-webcrypto-sign-verify-node-dsa.js deleted file mode 100644 index 73b006b9236249..00000000000000 --- a/test/parallel/test-webcrypto-sign-verify-node-dsa.js +++ /dev/null @@ -1,220 +0,0 @@ -'use strict'; - -const common = require('../common'); - -if (!common.hasCrypto) - common.skip('missing crypto'); - -const assert = require('assert'); -const { subtle } = require('crypto').webcrypto; - -const dsa = require('../fixtures/crypto/dsa'); - -async function testVerify({ algorithm, - hash, - publicKeyBuffer, - privateKeyBuffer, - signature, - plaintext }) { - const [ - publicKey, - noVerifyPublicKey, - privateKey, - hmacKey, - wrongKeys, - ] = await Promise.all([ - subtle.importKey( - 'spki', - publicKeyBuffer, - { name: algorithm.name, hash }, - false, - ['verify']), - subtle.importKey( - 'spki', - publicKeyBuffer, - { name: algorithm.name, hash }, - false, - [ /* No usages */ ]), - subtle.importKey( - 'pkcs8', - privateKeyBuffer, - { name: algorithm.name, hash }, - false, - ['sign']), - subtle.generateKey( - { name: 'HMAC', hash: 'SHA-256' }, - false, - ['sign']), - subtle.generateKey( - { - name: 'ECDSA', - namedCurve: 'P-521', - hash: 'SHA-256', - }, - false, - ['sign']), - ]); - - assert(await subtle.verify(algorithm, publicKey, signature, plaintext)); - - // Test verification with altered buffers - const copy = Buffer.from(plaintext); - const sigcopy = Buffer.from(signature); - const p = subtle.verify(algorithm, publicKey, sigcopy, copy); - copy[0] = 255 - copy[0]; - sigcopy[0] = 255 - sigcopy[0]; - assert(await p); - - // Test failure when using wrong key - await assert.rejects( - subtle.verify(algorithm, privateKey, signature, plaintext), { - message: /Unable to use this key to verify/ - }); - - await assert.rejects( - subtle.verify(algorithm, noVerifyPublicKey, signature, plaintext), { - message: /Unable to use this key to verify/ - }); - - // Test failure when using the wrong algorithms - await assert.rejects( - subtle.verify(algorithm, hmacKey, signature, plaintext), { - message: /Unable to use this key to verify/ - }); - - await assert.rejects( - subtle.verify(algorithm, wrongKeys.publicKey, signature, plaintext), { - message: /Unable to use this key to verify/ - }); - - // Test failure when signature is altered - { - const copy = Buffer.from(signature); - copy[0] = 255 - copy[0]; - assert(!(await subtle.verify(algorithm, publicKey, copy, plaintext))); - assert(!(await subtle.verify( - algorithm, - publicKey, - copy.slice(1), - plaintext))); - } - - // Test failure when data is altered - { - const copy = Buffer.from(plaintext); - copy[0] = 255 - copy[0]; - assert(!(await subtle.verify(algorithm, publicKey, signature, copy))); - } - - // Test failure when wrong hash is used - { - const otherhash = hash === 'SHA-1' ? 'SHA-256' : 'SHA-1'; - assert(!(await subtle.verify({ - ...algorithm, - hash: otherhash - }, publicKey, signature, copy))); - } - - await assert.rejects( - subtle.verify( - { ...algorithm, hash: 'sha256' }, - publicKey, - signature, - copy), - { message: /Unrecognized name/ }); -} - -async function testSign({ - algorithm, - hash, - publicKeyBuffer, - privateKeyBuffer, - signature, - plaintext, -}) { - const [ - publicKey, - noSignPrivateKey, - privateKey, - hmacKey, - wrongKeys, - ] = await Promise.all([ - subtle.importKey( - 'spki', - publicKeyBuffer, - { name: algorithm.name, hash }, - false, - ['verify']), - subtle.importKey( - 'pkcs8', - privateKeyBuffer, - { name: algorithm.name, hash }, - false, - [ /* No usages */ ]), - subtle.importKey( - 'pkcs8', - privateKeyBuffer, - { name: algorithm.name, hash }, - false, - ['sign']), - subtle.generateKey( - { name: 'HMAC', hash: 'SHA-256' }, - false, - ['sign']), - subtle.generateKey( - { - name: 'ECDSA', - namedCurve: 'P-521', - hash: 'SHA-256', - }, - false, - ['sign']), - ]); - - { - const sig = await subtle.sign(algorithm, privateKey, plaintext); - assert(await subtle.verify(algorithm, publicKey, sig, plaintext)); - } - - { - const copy = Buffer.from(plaintext); - const p = subtle.sign(algorithm, privateKey, copy); - copy[0] = 255 - copy[0]; - const sig = await p; - assert(await subtle.verify(algorithm, publicKey, sig, plaintext)); - } - - // Test failure when using wrong key - await assert.rejects( - subtle.sign(algorithm, publicKey, plaintext), { - message: /Unable to use this key to sign/ - }); - - // Test failure when no sign usage - await assert.rejects( - subtle.sign(algorithm, noSignPrivateKey, plaintext), { - message: /Unable to use this key to sign/ - }); - - // Test failure when using the wrong algorithms - await assert.rejects( - subtle.sign(algorithm, hmacKey, plaintext), { - message: /Unable to use this key to sign/ - }); - - await assert.rejects( - subtle.sign(algorithm, wrongKeys.privateKey, plaintext), { - message: /Unable to use this key to sign/ - }); -} - -(async function() { - const variations = []; - - dsa().forEach((vector) => { - variations.push(testVerify(vector)); - variations.push(testSign(vector)); - }); - - await Promise.all(variations); -})().then(common.mustCall()); diff --git a/test/parallel/test-webcrypto-sign-verify.js b/test/parallel/test-webcrypto-sign-verify.js index 71e357fedb7fc0..6c6b15781549a4 100644 --- a/test/parallel/test-webcrypto-sign-verify.js +++ b/test/parallel/test-webcrypto-sign-verify.js @@ -104,3 +104,43 @@ const { subtle } = require('crypto').webcrypto; test('hello world').then(common.mustCall()); } + +// Test Sign/Verify Ed25519 +{ + async function test(data) { + const ec = new TextEncoder(); + const { publicKey, privateKey } = await subtle.generateKey({ + name: 'Ed25519', + }, true, ['sign', 'verify']); + + const signature = await subtle.sign({ + name: 'Ed25519', + }, privateKey, ec.encode(data)); + + assert(await subtle.verify({ + name: 'Ed25519', + }, publicKey, signature, ec.encode(data))); + } + + test('hello world').then(common.mustCall()); +} + +// Test Sign/Verify Ed448 +{ + async function test(data) { + const ec = new TextEncoder(); + const { publicKey, privateKey } = await subtle.generateKey({ + name: 'Ed448', + }, true, ['sign', 'verify']); + + const signature = await subtle.sign({ + name: 'Ed448', + }, privateKey, ec.encode(data)); + + assert(await subtle.verify({ + name: 'Ed448', + }, publicKey, signature, ec.encode(data))); + } + + test('hello world').then(common.mustCall()); +} diff --git a/test/parallel/test-webcrypto-x25519-x448.js b/test/parallel/test-webcrypto-x25519-x448.js deleted file mode 100644 index 89716e5d302a16..00000000000000 --- a/test/parallel/test-webcrypto-x25519-x448.js +++ /dev/null @@ -1,315 +0,0 @@ -'use strict'; - -const common = require('../common'); - -if (!common.hasCrypto) - common.skip('missing crypto'); - -const assert = require('assert'); - -const { - generateKeyPairSync, - webcrypto: { subtle } -} = require('crypto'); - -// X25519 and X448 are ECDH named curves that should work -// with the existing ECDH mechanisms with no additional -// changes. - -async function generateKeys(namedCurve, ...usages) { - return subtle.generateKey( - { - name: 'ECDH', - namedCurve - }, - true, - usages); -} - -async function deriveKey(publicKey, privateKey, length = 256) { - return subtle.deriveKey( - { - name: 'ECDH', - public: publicKey, - }, - privateKey, - { - name: 'HMAC', - length, - hash: 'SHA-512', - }, - true, - ['sign', 'verify'] - ); -} - -async function exportKey(secretKey) { - return subtle.exportKey('raw', secretKey); -} - -async function importKey(namedCurve, keyData, isPublic = false) { - return subtle.importKey( - 'raw', - keyData, - { name: 'ECDH', namedCurve, public: isPublic }, - true, - ['deriveKey'] - ); -} - -assert.rejects(importKey('NODE-X25519', Buffer.alloc(10), true), { - message: /NODE-X25519 raw keys must be exactly 32-bytes/ -}).then(common.mustCall()); -assert.rejects(importKey('NODE-X448', Buffer.alloc(10), true), { - message: /NODE-X448 raw keys must be exactly 56-bytes/ -}).then(common.mustCall()); - -async function test1(namedCurve) { - const { - publicKey: publicKey1, - privateKey: privateKey1, - } = await generateKeys(namedCurve, 'deriveKey', 'deriveBits'); - - const { - publicKey: publicKey2, - privateKey: privateKey2, - } = await generateKeys(namedCurve, 'deriveKey', 'deriveBits'); - - assert(publicKey1); - assert(privateKey1); - assert(publicKey2); - assert(privateKey2); - - assert.strictEqual(publicKey1.algorithm.namedCurve, namedCurve); - assert.strictEqual(privateKey1.algorithm.namedCurve, namedCurve); - assert.strictEqual(publicKey2.algorithm.namedCurve, namedCurve); - assert.strictEqual(privateKey2.algorithm.namedCurve, namedCurve); - - const [key1, key2] = await Promise.all([ - deriveKey(publicKey1, privateKey2), - deriveKey(publicKey2, privateKey1), - ]); - - assert(key1); - assert(key2); - - const [secret1, secret2] = await Promise.all([ - exportKey(key1), - exportKey(key2), - ]); - - assert.deepStrictEqual(secret1, secret2); -} - -Promise.all([ - test1('NODE-X25519'), - test1('NODE-X448'), -]).then(common.mustCall()); - -const testVectors = { - 'NODE-X25519': { - alice: { - privateKey: - Buffer.from( - '77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a', - 'hex'), - publicKey: - Buffer.from( - '8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a', - 'hex'), - }, - bob: { - privateKey: - Buffer.from( - '5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb', - 'hex'), - publicKey: - Buffer.from( - 'de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f', - 'hex'), - }, - sharedSecret: - Buffer.from( - '4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742', - 'hex'), - }, - 'NODE-X448': { - alice: { - privateKey: - Buffer.from( - '9a8f4925d1519f5775cf46b04b5800d4ee9ee8bae8bc5565d498c28d' + - 'd9c9baf574a9419744897391006382a6f127ab1d9ac2d8c0a598726b', - 'hex'), - publicKey: - Buffer.from( - '9b08f7cc31b7e3e67d22d5aea121074a273bd2b83de09c63faa73d2c' + - '22c5d9bbc836647241d953d40c5b12da88120d53177f80e532c41fa0', - 'hex'), - }, - bob: { - privateKey: - Buffer.from( - '1c306a7ac2a0e2e0990b294470cba339e6453772b075811d8fad0d1d' + - '6927c120bb5ee8972b0d3e21374c9c921b09d1b0366f10b65173992d', - 'hex'), - publicKey: - Buffer.from( - '3eb7a829b0cd20f5bcfc0b599b6feccf6da4627107bdb0d4f345b430' + - '27d8b972fc3e34fb4232a13ca706dcb57aec3dae07bdc1c67bf33609', - 'hex'), - }, - sharedSecret: - Buffer.from( - '07fff4181ac6cc95ec1c16a94a0f74d12da232ce40a77552281d282b' + - 'b60c0b56fd2464c335543936521c24403085d59a449a5037514a879d', - 'hex'), - }, -}; - -async function test2(namedCurve, length) { - const [ - publicKey1, - publicKey2, - privateKey1, - privateKey2, - ] = await Promise.all([ - importKey(namedCurve, testVectors[namedCurve].alice.publicKey, true), - importKey(namedCurve, testVectors[namedCurve].bob.publicKey, true), - importKey(namedCurve, testVectors[namedCurve].alice.privateKey), - importKey(namedCurve, testVectors[namedCurve].bob.privateKey), - ]); - - const [key1, key2] = await Promise.all([ - deriveKey(publicKey1, privateKey2, length), - deriveKey(publicKey2, privateKey1, length), - ]); - - assert(key1); - assert(key2); - - const [secret1, secret2] = await Promise.all([ - exportKey(key1), - exportKey(key2), - ]); - - assert.deepStrictEqual(secret1, secret2); - - assert.deepStrictEqual( - Buffer.from(secret1), - testVectors[namedCurve].sharedSecret); - - const [ - publicKeyJwk, - privateKeyJwk, - ] = await Promise.all([ - subtle.exportKey('jwk', publicKey1), - subtle.exportKey('jwk', privateKey1), - ]); - assert.strictEqual(publicKeyJwk.kty, 'OKP'); - assert.strictEqual(privateKeyJwk.kty, 'OKP'); - assert.strictEqual(publicKeyJwk.crv, namedCurve.slice(5)); - assert.strictEqual(privateKeyJwk.crv, namedCurve.slice(5)); - assert.deepStrictEqual( - Buffer.from(publicKeyJwk.x, 'base64'), - testVectors[namedCurve].alice.publicKey); - assert.deepStrictEqual( - Buffer.from(privateKeyJwk.x, 'base64'), - testVectors[namedCurve].alice.publicKey); - assert.deepStrictEqual( - Buffer.from(privateKeyJwk.d, 'base64'), - testVectors[namedCurve].alice.privateKey); -} - -Promise.all([ - test2('NODE-X25519', 256), - test2('NODE-X448', 448), -]).then(common.mustCall()); - -assert.rejects( - subtle.generateKey( - { - name: 'ECDH', - namedCurve: 'NODE-ED25519' - }, - true, - ['deriveBits']), - { - message: /Unsupported named curves for ECDH/ - }).then(common.mustCall()); - -assert.rejects( - subtle.generateKey( - { - name: 'ECDH', - namedCurve: 'NODE-ED448' - }, - true, - ['deriveBits']), - { - message: /Unsupported named curves for ECDH/ - }).then(common.mustCall()); - -{ - // Private JWK import - subtle.importKey( - 'jwk', - { - crv: 'X25519', - d: '8CE-XY7cvbR-Pu7mILHq8YZ4hLGAA2-RD01he5q2wUA', - x: '42IbTo34ZYANub5o42547vB6OxdEd44ztwZewoRch0Q', - kty: 'OKP' - }, - { - name: 'ECDH', - namedCurve: 'NODE-X25519' - }, - true, - ['deriveBits']).then(common.mustCall(), common.mustNotCall()); - - // Public JWK import - subtle.importKey( - 'jwk', - { - crv: 'X25519', - x: '42IbTo34ZYANub5o42547vB6OxdEd44ztwZewoRch0Q', - kty: 'OKP' - }, - { - name: 'ECDH', - namedCurve: 'NODE-X25519' - }, - true, - []).then(common.mustCall(), common.mustNotCall()); - - for (const asymmetricKeyType of ['x25519', 'x448']) { - const { publicKey, privateKey } = generateKeyPairSync(asymmetricKeyType); - for (const keyObject of [publicKey, privateKey]) { - const namedCurve = `NODE-${asymmetricKeyType.toUpperCase()}`; - subtle.importKey( - 'node.keyObject', - keyObject, - { name: 'ECDH', namedCurve }, - true, - keyObject.type === 'private' ? ['deriveBits', 'deriveKey'] : [], - ).then((cryptoKey) => { - assert.strictEqual(cryptoKey.type, keyObject.type); - assert.strictEqual(cryptoKey.algorithm.name, 'ECDH'); - }, common.mustNotCall()); - - subtle.importKey( - keyObject.type === 'private' ? 'pkcs8' : 'spki', - keyObject.export({ - format: 'der', - type: keyObject.type === 'private' ? 'pkcs8' : 'spki', - }), - { name: 'ECDH', namedCurve }, - true, - keyObject.type === 'private' ? ['deriveBits'] : [], - ).then((cryptoKey) => { - assert.strictEqual(cryptoKey.type, keyObject.type); - assert.strictEqual(cryptoKey.algorithm.name, 'ECDH'); - assert.strictEqual(cryptoKey.algorithm.namedCurve, namedCurve); - }, common.mustNotCall()); - } - } -} diff --git a/test/parallel/test-webstream-encoding-inspect.js b/test/parallel/test-webstream-encoding-inspect.js new file mode 100644 index 00000000000000..69c947ebc6d990 --- /dev/null +++ b/test/parallel/test-webstream-encoding-inspect.js @@ -0,0 +1,35 @@ +'use strict'; + +require('../common'); + +const { TextEncoderStream, TextDecoderStream } = require('stream/web'); +const util = require('util'); +const assert = require('assert'); + +const textEncoderStream = new TextEncoderStream(); +assert.strictEqual( + util.inspect(textEncoderStream), + `TextEncoderStream { + encoding: 'utf-8', + readable: ReadableStream { locked: false, state: 'readable', supportsBYOB: false }, + writable: WritableStream { locked: false, state: 'writable' } +}` +); +assert.throws(() => textEncoderStream[util.inspect.custom].call(), { + code: 'ERR_INVALID_THIS', +}); + +const textDecoderStream = new TextDecoderStream(); +assert.strictEqual( + util.inspect(textDecoderStream), + `TextDecoderStream { + encoding: 'utf-8', + fatal: false, + ignoreBOM: false, + readable: ReadableStream { locked: false, state: 'readable', supportsBYOB: false }, + writable: WritableStream { locked: false, state: 'writable' } +}` +); +assert.throws(() => textDecoderStream[util.inspect.custom].call(), { + code: 'ERR_INVALID_THIS', +}); diff --git a/test/parallel/test-eventtarget-whatwg-once.js b/test/parallel/test-whatwg-events-add-event-listener-options-once.js similarity index 100% rename from test/parallel/test-eventtarget-whatwg-once.js rename to test/parallel/test-whatwg-events-add-event-listener-options-once.js diff --git a/test/parallel/test-eventtarget-whatwg-passive.js b/test/parallel/test-whatwg-events-add-event-listener-options-passive.js similarity index 100% rename from test/parallel/test-eventtarget-whatwg-passive.js rename to test/parallel/test-whatwg-events-add-event-listener-options-passive.js diff --git a/test/parallel/test-eventtarget-whatwg-signal.js b/test/parallel/test-whatwg-events-add-event-listener-options-signal.js similarity index 100% rename from test/parallel/test-eventtarget-whatwg-signal.js rename to test/parallel/test-whatwg-events-add-event-listener-options-signal.js diff --git a/test/parallel/test-eventtarget-whatwg-customevent.js b/test/parallel/test-whatwg-events-customevent.js similarity index 100% rename from test/parallel/test-eventtarget-whatwg-customevent.js rename to test/parallel/test-whatwg-events-customevent.js diff --git a/test/parallel/test-whatwg-readablebytestream.js b/test/parallel/test-whatwg-readablebytestream.js index 83ec85fae61405..6b305a0d8365f2 100644 --- a/test/parallel/test-whatwg-readablebytestream.js +++ b/test/parallel/test-whatwg-readablebytestream.js @@ -65,6 +65,9 @@ const { defaultReader.releaseLock(); const byobReader = r.getReader({ mode: 'byob' }); assert(byobReader instanceof ReadableStreamBYOBReader); + assert.match( + inspect(byobReader, { depth: 0 }), + /ReadableStreamBYOBReader/); } class Source { @@ -233,6 +236,19 @@ class Source { }); } +{ + let controller; + new ReadableStream({ + type: 'bytes', + start(c) { controller = c; } + }); + controller.enqueue(new Uint8Array(10)); + controller.close(); + assert.throws(() => controller.enqueue(new Uint8Array(10)), { + code: 'ERR_INVALID_STATE', + }); +} + { const stream = new ReadableStream({ type: 'bytes', diff --git a/test/parallel/test-whatwg-readablestream.js b/test/parallel/test-whatwg-readablestream.js index cef3eca6ed2733..9f1cfc60e9a28b 100644 --- a/test/parallel/test-whatwg-readablestream.js +++ b/test/parallel/test-whatwg-readablestream.js @@ -32,6 +32,7 @@ const { readableStreamDefaultControllerCanCloseOrEnqueue, readableByteStreamControllerClose, readableByteStreamControllerRespond, + readableStreamReaderGenericRelease, } = require('internal/webstreams/readablestream'); const { @@ -371,6 +372,24 @@ assert.throws(() => { }); } +{ + const stream = new ReadableStream(); + const iterable = stream.values(); + readableStreamReaderGenericRelease(stream[kState].reader); + assert.rejects(iterable.next(), { + code: 'ERR_INVALID_STATE', + }).then(common.mustCall()); +} + +{ + const stream = new ReadableStream(); + const iterable = stream.values(); + readableStreamReaderGenericRelease(stream[kState].reader); + assert.rejects(iterable.return(), { + code: 'ERR_INVALID_STATE', + }).then(common.mustCall()); +} + { const stream = new ReadableStream({ start(controller) { @@ -1285,7 +1304,6 @@ class Source { }); async function read(stream) { - // eslint-disable-next-line no-unused-vars for await (const _ of stream.values({ preventCancel: true })) return; } @@ -1300,7 +1318,6 @@ class Source { const stream = new ReadableStream(source); async function read(stream) { - // eslint-disable-next-line no-unused-vars for await (const _ of stream.values({ preventCancel: false })) return; } @@ -1357,6 +1374,9 @@ class Source { assert.throws(() => ReadableStream.prototype.tee.call({}), { code: 'ERR_INVALID_THIS', }); + assert.throws(() => ReadableStream.prototype.values.call({}), { + code: 'ERR_INVALID_THIS', + }); assert.throws(() => ReadableStream.prototype[kTransfer].call({}), { code: 'ERR_INVALID_THIS', }); diff --git a/test/parallel/test-whatwg-url-custom-searchparams-inspect.js b/test/parallel/test-whatwg-url-custom-searchparams-inspect.js index c03890938d9cfe..7729a36eb8fd9f 100644 --- a/test/parallel/test-whatwg-url-custom-searchparams-inspect.js +++ b/test/parallel/test-whatwg-url-custom-searchparams-inspect.js @@ -9,12 +9,20 @@ const util = require('util'); const sp = new URLSearchParams('?a=a&b=b&b=c'); assert.strictEqual(util.inspect(sp), "URLSearchParams { 'a' => 'a', 'b' => 'b', 'b' => 'c' }"); +assert.strictEqual(util.inspect(sp, { depth: -1 }), '[Object]'); +assert.strictEqual( + util.inspect(sp, { breakLength: 1 }), + "URLSearchParams {\n 'a' => 'a',\n 'b' => 'b',\n 'b' => 'c' }" +); assert.strictEqual(util.inspect(sp.keys()), "URLSearchParams Iterator { 'a', 'b', 'b' }"); assert.strictEqual(util.inspect(sp.values()), "URLSearchParams Iterator { 'a', 'b', 'c' }"); assert.strictEqual(util.inspect(sp.keys(), { breakLength: 1 }), "URLSearchParams Iterator {\n 'a',\n 'b',\n 'b' }"); +assert.throws(() => sp[util.inspect.custom].call(), { + code: 'ERR_INVALID_THIS', +}); const iterator = sp.entries(); assert.strictEqual(util.inspect(iterator), @@ -27,3 +35,5 @@ iterator.next(); iterator.next(); assert.strictEqual(util.inspect(iterator), 'URLSearchParams Iterator { }'); +const emptySp = new URLSearchParams(); +assert.strictEqual(util.inspect(emptySp), 'URLSearchParams {}'); diff --git a/test/parallel/test-worker-debug.js b/test/parallel/test-worker-debug.js index 758d7acfc3a99f..da8e26b39ca453 100644 --- a/test/parallel/test-worker-debug.js +++ b/test/parallel/test-worker-debug.js @@ -6,7 +6,6 @@ common.skipIfInspectorDisabled(); const assert = require('assert'); const EventEmitter = require('events'); const { Session } = require('inspector'); -const { pathToFileURL } = require('url'); const { Worker, isMainThread, parentPort, workerData } = require('worker_threads'); @@ -106,7 +105,6 @@ class WorkerSession extends EventEmitter { this.post(command); const notification = await notificationPromise; const callFrame = notification.params.callFrames[0]; - assert.strictEqual(callFrame.url, pathToFileURL(script).toString()); assert.strictEqual(callFrame.location.lineNumber, line); } @@ -153,7 +151,7 @@ async function testBasicWorkerDebug(session, post) { await workerSession.waitForBreakAfterCommand( 'Runtime.runIfWaitingForDebugger', __filename, 1); await workerSession.waitForBreakAfterCommand( - 'Debugger.resume', __filename, 26); // V8 line number is zero-based + 'Debugger.resume', __filename, 25); // V8 line number is zero-based const msg = await consolePromise; assert.strictEqual(msg, workerMessage); workerSession.post('Debugger.resume'); diff --git a/test/parallel/test-worker-exit-heapsnapshot.js b/test/parallel/test-worker-exit-heapsnapshot.js new file mode 100644 index 00000000000000..a7b7b26ecaefd7 --- /dev/null +++ b/test/parallel/test-worker-exit-heapsnapshot.js @@ -0,0 +1,17 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { getHeapSnapshot } = require('v8'); +const { isMainThread, Worker } = require('worker_threads'); + +// Checks taking heap snapshot at the exit event listener of Worker doesn't +// crash the process. +// Regression for https://github.com/nodejs/node/issues/43122. +if (isMainThread) { + const worker = new Worker(__filename); + + worker.once('exit', common.mustCall((code) => { + assert.strictEqual(code, 0); + getHeapSnapshot().pipe(process.stdout); + })); +} diff --git a/test/parallel/test-worker-fshandles-error-on-termination.js b/test/parallel/test-worker-fshandles-error-on-termination.js new file mode 100644 index 00000000000000..72fb969963a2b0 --- /dev/null +++ b/test/parallel/test-worker-fshandles-error-on-termination.js @@ -0,0 +1,51 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const fs = require('fs/promises'); +const { scheduler } = require('timers/promises'); +const { parentPort, Worker } = require('worker_threads'); + +const MAX_ITERATIONS = 20; +const MAX_THREADS = 10; + +// Do not use isMainThread so that this test itself can be run inside a Worker. +if (!process.env.HAS_STARTED_WORKER) { + process.env.HAS_STARTED_WORKER = 1; + + function spinWorker(iter) { + const w = new Worker(__filename); + w.on('message', common.mustCall((msg) => { + assert.strictEqual(msg, 'terminate'); + w.terminate(); + })); + + w.on('exit', common.mustCall(() => { + if (iter < MAX_ITERATIONS) + spinWorker(++iter); + })); + } + + for (let i = 0; i < MAX_THREADS; i++) { + spinWorker(0); + } +} else { + async function open_nok() { + await assert.rejects( + fs.open('this file does not exist'), + { + code: 'ENOENT', + syscall: 'open' + } + ); + await scheduler.yield(); + await open_nok(); + } + + // These async function calls never return as they are meant to continually + // open nonexistent files until the worker is terminated. + open_nok(); + open_nok(); + + parentPort.postMessage('terminate'); +} diff --git a/test/parallel/test-worker-fshandles-open-close-on-termination.js b/test/parallel/test-worker-fshandles-open-close-on-termination.js new file mode 100644 index 00000000000000..2cbd886b15fe4e --- /dev/null +++ b/test/parallel/test-worker-fshandles-open-close-on-termination.js @@ -0,0 +1,46 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const fs = require('fs/promises'); +const { scheduler } = require('timers/promises'); +const { parentPort, Worker } = require('worker_threads'); + +const MAX_ITERATIONS = 20; +const MAX_THREADS = 10; + +// Do not use isMainThread so that this test itself can be run inside a Worker. +if (!process.env.HAS_STARTED_WORKER) { + process.env.HAS_STARTED_WORKER = 1; + + function spinWorker(iter) { + const w = new Worker(__filename); + w.on('message', common.mustCall((msg) => { + assert.strictEqual(msg, 'terminate'); + w.terminate(); + })); + + w.on('exit', common.mustCall(() => { + if (iter < MAX_ITERATIONS) + spinWorker(++iter); + })); + } + + for (let i = 0; i < MAX_THREADS; i++) { + spinWorker(0); + } +} else { + async function open_close() { + const fh = await fs.open(__filename); + await fh.close(); + await scheduler.yield(); + await open_close(); + } + + // These async function calls never return as they are meant to continually + // open and close files until the worker is terminated. + open_close(); + open_close(); + + parentPort.postMessage('terminate'); +} diff --git a/test/parallel/test-worker-hasref.js b/test/parallel/test-worker-hasref.js new file mode 100644 index 00000000000000..51593b14725f5b --- /dev/null +++ b/test/parallel/test-worker-hasref.js @@ -0,0 +1,33 @@ +'use strict'; +const common = require('../common'); + +const { Worker } = require('worker_threads'); +const { createHook } = require('async_hooks'); +const { strictEqual } = require('assert'); + +let handle; + +createHook({ + init(asyncId, type, triggerAsyncId, resource) { + if (type === 'WORKER') { + handle = resource; + this.disable(); + } + } +}).enable(); + +const w = new Worker('', { eval: true }); + +strictEqual(handle.hasRef(), true); +w.unref(); +strictEqual(handle.hasRef(), false); +w.ref(); +strictEqual(handle.hasRef(), true); + +w.on('exit', common.mustCall((exitCode) => { + strictEqual(exitCode, 0); + strictEqual(handle.hasRef(), true); + setTimeout(common.mustCall(() => { + strictEqual(handle.hasRef(), undefined); + }), 0); +})); diff --git a/test/parallel/test-worker-http2-stream-terminate.js b/test/parallel/test-worker-http2-stream-terminate.js new file mode 100644 index 00000000000000..94e60e773c4b3e --- /dev/null +++ b/test/parallel/test-worker-http2-stream-terminate.js @@ -0,0 +1,63 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); +const http2 = require('http2'); +const makeDuplexPair = require('../common/duplexpair'); +const { Worker, parentPort } = require('worker_threads'); + +// This test ensures that workers can be terminated without error while +// stream activity is ongoing, in particular the C++ function +// ReportWritesToJSStreamListener::OnStreamAfterReqFinished. + +const MAX_ITERATIONS = 20; +const MAX_THREADS = 10; + +// Do not use isMainThread so that this test itself can be run inside a Worker. +if (!process.env.HAS_STARTED_WORKER) { + process.env.HAS_STARTED_WORKER = 1; + + function spinWorker(iter) { + const w = new Worker(__filename); + w.on('message', common.mustCall((msg) => { + assert.strictEqual(msg, 'terminate'); + w.terminate(); + })); + + w.on('exit', common.mustCall(() => { + if (iter < MAX_ITERATIONS) + spinWorker(++iter); + })); + } + + for (let i = 0; i < MAX_THREADS; i++) { + spinWorker(0); + } +} else { + const server = http2.createServer(); + let i = 0; + server.on('stream', (stream, headers) => { + if (i === 1) { + parentPort.postMessage('terminate'); + } + i++; + + stream.end(''); + }); + + const { clientSide, serverSide } = makeDuplexPair(); + server.emit('connection', serverSide); + + const client = http2.connect('http://localhost:80', { + createConnection: () => clientSide, + }); + + function makeRequests() { + for (let i = 0; i < 3; i++) { + client.request().end(); + } + setImmediate(makeRequests); + } + makeRequests(); +} diff --git a/test/parallel/test-worker-init-failure.js b/test/parallel/test-worker-init-failure.js index a15d8a75617a16..078329ee68874f 100644 --- a/test/parallel/test-worker-init-failure.js +++ b/test/parallel/test-worker-init-failure.js @@ -10,6 +10,10 @@ if (common.isWindows) { common.skip('ulimit does not work on Windows.'); } +if (process.config.variables.node_builtin_modules_path) { + common.skip('this test cannot pass when Node.js is built with --node-builtin-modules-path'); +} + // A reasonably low fd count. An empty node process // creates around 30 fds for its internal purposes, // so making it too low will crash the process early, diff --git a/test/parallel/test-worker-message-port.js b/test/parallel/test-worker-message-port.js index ca28f6ccb73247..2663dde2a1b75f 100644 --- a/test/parallel/test-worker-message-port.js +++ b/test/parallel/test-worker-message-port.js @@ -179,7 +179,7 @@ const { MessageChannel, MessagePort } = require('worker_threads'); assert.deepStrictEqual( Object.getOwnPropertyNames(MessagePort.prototype).sort(), [ - 'close', 'constructor', 'onmessage', 'onmessageerror', 'postMessage', - 'ref', 'start', 'unref', + 'close', 'constructor', 'hasRef', 'onmessage', 'onmessageerror', + 'postMessage', 'ref', 'start', 'unref', ]); } diff --git a/test/parallel/test-worker-messageport-hasref.js b/test/parallel/test-worker-messageport-hasref.js new file mode 100644 index 00000000000000..448787742e308d --- /dev/null +++ b/test/parallel/test-worker-messageport-hasref.js @@ -0,0 +1,45 @@ +'use strict'; +const common = require('../common'); + +const { Worker } = require('worker_threads'); +const { createHook } = require('async_hooks'); +const { deepStrictEqual, strictEqual } = require('assert'); + +const m = new Map(); +createHook({ + init(asyncId, type, triggerAsyncId, resource) { + if (['WORKER', 'MESSAGEPORT'].includes(type)) { + m.set(asyncId, { type, resource }); + } + }, + destroy(asyncId) { + m.delete(asyncId); + } +}).enable(); + +function getActiveWorkerAndMessagePortTypes() { + const activeWorkerAndMessagePortTypes = []; + for (const asyncId of m.keys()) { + const { type, resource } = m.get(asyncId); + // Same logic as https://github.com/mafintosh/why-is-node-running/blob/24fb4c878753390a05d00959e6173d0d3c31fddd/index.js#L31-L32. + if (typeof resource.hasRef !== 'function' || resource.hasRef() === true) { + activeWorkerAndMessagePortTypes.push(type); + } + } + return activeWorkerAndMessagePortTypes; +} + +const w = new Worker('', { eval: true }); +deepStrictEqual(getActiveWorkerAndMessagePortTypes(), ['WORKER']); +w.unref(); +deepStrictEqual(getActiveWorkerAndMessagePortTypes(), []); +w.ref(); +deepStrictEqual(getActiveWorkerAndMessagePortTypes(), ['WORKER', 'MESSAGEPORT']); + +w.on('exit', common.mustCall((exitCode) => { + strictEqual(exitCode, 0); + deepStrictEqual(getActiveWorkerAndMessagePortTypes(), ['WORKER']); + setTimeout(common.mustCall(() => { + deepStrictEqual(getActiveWorkerAndMessagePortTypes(), []); + }), 0); +})); diff --git a/test/parallel/test-worker-nearheaplimit-deadlock.js b/test/parallel/test-worker-nearheaplimit-deadlock.js index 1f38bc074da048..b22c86b211611f 100644 --- a/test/parallel/test-worker-nearheaplimit-deadlock.js +++ b/test/parallel/test-worker-nearheaplimit-deadlock.js @@ -1,3 +1,7 @@ +// Flags: --no-node-snapshot +// With node snapshot the OOM can occur during the deserialization of the +// context, so disable it since we want the OOM to occur during the creation of +// the message port. 'use strict'; const common = require('../common'); const assert = require('assert'); @@ -10,7 +14,7 @@ if (!process.env.HAS_STARTED_WORKER) { resourceLimits: { maxYoungGenerationSizeMb: 0, maxOldGenerationSizeMb: 0 - } + }, }; const worker = new Worker(__filename, opts); diff --git a/test/parallel/test-worker-resource-limits.js b/test/parallel/test-worker-resource-limits.js index ffda452f6c6335..f79c31b2a18793 100644 --- a/test/parallel/test-worker-resource-limits.js +++ b/test/parallel/test-worker-resource-limits.js @@ -35,10 +35,10 @@ if (!process.env.HAS_STARTED_WORKER) { assert.deepStrictEqual(resourceLimits, testResourceLimits); const array = []; while (true) { - // Leave 10% wiggle room here, and 20% on debug builds. - const wiggleRoom = common.buildType === 'Release' ? 1.1 : 1.2; const usedMB = v8.getHeapStatistics().used_heap_size / 1024 / 1024; - assert(usedMB < resourceLimits.maxOldGenerationSizeMb * wiggleRoom); + const maxReservedSize = resourceLimits.maxOldGenerationSizeMb + + resourceLimits.maxYoungGenerationSizeMb; + assert(usedMB < maxReservedSize); let seenSpaces = 0; for (const { space_name, space_size } of v8.getHeapSpaceStatistics()) { diff --git a/test/parallel/test-worker-stack-overflow-stack-size.js b/test/parallel/test-worker-stack-overflow-stack-size.js index a079624847bcb7..481ff55100ac76 100644 --- a/test/parallel/test-worker-stack-overflow-stack-size.js +++ b/test/parallel/test-worker-stack-overflow-stack-size.js @@ -23,7 +23,6 @@ async function runWorker(options = {}) { }); const [ error ] = await once(worker, 'error'); - if (!options.skipErrorCheck) { common.expectsError({ constructor: RangeError, @@ -56,7 +55,9 @@ async function runWorker(options = {}) { } // Test that various low stack sizes result in an 'error' event. - for (const stackSizeMb of [ 0.001, 0.01, 0.1, 0.2, 0.3, 0.5 ]) { + // Currently the stack size needs to be at least 0.3MB for the worker to be + // bootstrapped properly. + for (const stackSizeMb of [ 0.3, 0.5, 1 ]) { await runWorker({ resourceLimits: { stackSizeMb }, skipErrorCheck: true }); } })().then(common.mustCall()); diff --git a/test/pseudo-tty/test-handle-wrap-hasref-tty.js b/test/pseudo-tty/test-handle-wrap-hasref-tty.js new file mode 100644 index 00000000000000..16eb7199cf9b5d --- /dev/null +++ b/test/pseudo-tty/test-handle-wrap-hasref-tty.js @@ -0,0 +1,23 @@ +// Flags: --expose-internals --no-warnings +'use strict'; + +// See also test/parallel/test-handle-wrap-hasref.js + +const common = require('../common'); +const strictEqual = require('assert').strictEqual; +const ReadStream = require('tty').ReadStream; +const tty = new ReadStream(0); +const { internalBinding } = require('internal/test/binding'); +const isTTY = internalBinding('tty_wrap').isTTY; +strictEqual(isTTY(0), true, 'tty_wrap: stdin is not a TTY'); +strictEqual(tty._handle.hasRef(), + true, 'tty_wrap: not initially refed'); +tty.unref(); +strictEqual(tty._handle.hasRef(), + false, 'tty_wrap: unref() ineffective'); +tty.ref(); +strictEqual(tty._handle.hasRef(), + true, 'tty_wrap: ref() ineffective'); +tty._handle.close(common.mustCall(() => + strictEqual(tty._handle.hasRef(), + false, 'tty_wrap: not unrefed on close'))); diff --git a/test/pseudo-tty/test-handle-wrap-hasref-tty.out b/test/pseudo-tty/test-handle-wrap-hasref-tty.out new file mode 100644 index 00000000000000..e69de29bb2d1d6 diff --git a/test/pseudo-tty/test-handle-wrap-isrefed-tty.js b/test/pseudo-tty/test-handle-wrap-isrefed-tty.js deleted file mode 100644 index aa6ae341b4b231..00000000000000 --- a/test/pseudo-tty/test-handle-wrap-isrefed-tty.js +++ /dev/null @@ -1,23 +0,0 @@ -// Flags: --expose-internals --no-warnings -'use strict'; - -// See also test/parallel/test-handle-wrap-isrefed.js - -const common = require('../common'); -const strictEqual = require('assert').strictEqual; -const ReadStream = require('tty').ReadStream; -const tty = new ReadStream(0); -const { internalBinding } = require('internal/test/binding'); -const isTTY = internalBinding('tty_wrap').isTTY; -strictEqual(isTTY(0), true, 'tty_wrap: stdin is not a TTY'); -strictEqual(tty._handle.hasRef(), - true, 'tty_wrap: not initially refed'); -tty.unref(); -strictEqual(tty._handle.hasRef(), - false, 'tty_wrap: unref() ineffective'); -tty.ref(); -strictEqual(tty._handle.hasRef(), - true, 'tty_wrap: ref() ineffective'); -tty._handle.close(common.mustCall(() => - strictEqual(tty._handle.hasRef(), - false, 'tty_wrap: not unrefed on close'))); diff --git a/test/pummel/test-crypto-dh-hash-modp18.js b/test/pummel/test-crypto-dh-hash-modp18.js index e2a7f43c45074d..ceb4cbd885c464 100644 --- a/test/pummel/test-crypto-dh-hash-modp18.js +++ b/test/pummel/test-crypto-dh-hash-modp18.js @@ -26,8 +26,8 @@ if (!common.hasCrypto) { common.skip('node compiled without OpenSSL.'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const assert = require('assert'); diff --git a/test/pummel/test-crypto-dh-hash.js b/test/pummel/test-crypto-dh-hash.js index a5932eb764792f..3ad974ff329efd 100644 --- a/test/pummel/test-crypto-dh-hash.js +++ b/test/pummel/test-crypto-dh-hash.js @@ -26,8 +26,8 @@ if (!common.hasCrypto) { common.skip('node compiled without OpenSSL.'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const assert = require('assert'); diff --git a/test/pummel/test-crypto-dh-keys.js b/test/pummel/test-crypto-dh-keys.js index 99be0e517fd640..2caa4e244a9859 100644 --- a/test/pummel/test-crypto-dh-keys.js +++ b/test/pummel/test-crypto-dh-keys.js @@ -26,8 +26,8 @@ if (!common.hasCrypto) { common.skip('node compiled without OpenSSL.'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const assert = require('assert'); diff --git a/test/pummel/test-dh-regr.js b/test/pummel/test-dh-regr.js index 87136a0afeb23d..76686d22a3c7e0 100644 --- a/test/pummel/test-dh-regr.js +++ b/test/pummel/test-dh-regr.js @@ -26,8 +26,8 @@ if (!common.hasCrypto) { common.skip('missing crypto'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const assert = require('assert'); diff --git a/test/pummel/test-fs-watch-system-limit.js b/test/pummel/test-fs-watch-system-limit.js index 20995c514fa569..3486f5372b8d5d 100644 --- a/test/pummel/test-fs-watch-system-limit.js +++ b/test/pummel/test-fs-watch-system-limit.js @@ -9,8 +9,8 @@ if (!common.isLinux) { common.skip('The fs watch limit is OS-dependent'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } try { diff --git a/test/pummel/test-hash-seed.js b/test/pummel/test-hash-seed.js index 42b626b079e873..274183d8ce977e 100644 --- a/test/pummel/test-hash-seed.js +++ b/test/pummel/test-hash-seed.js @@ -3,8 +3,8 @@ // Check that spawn child doesn't create duplicated entries const common = require('../common'); -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const kRepetitions = 2; diff --git a/test/pummel/test-heapdump-worker.js b/test/pummel/test-heapdump-worker.js index 0e8322affb5d64..d494de50922155 100644 --- a/test/pummel/test-heapdump-worker.js +++ b/test/pummel/test-heapdump-worker.js @@ -6,14 +6,6 @@ const { Worker } = require('worker_threads'); validateSnapshotNodes('Node / Worker', []); const worker = new Worker('setInterval(() => {}, 100);', { eval: true }); -validateSnapshotNodes('Node / Worker', [ - { - children: [ - { node_name: 'Node / MessagePort', edge_name: 'parent_port' }, - { node_name: 'Worker', edge_name: 'wrapped' }, - ] - }, -]); validateSnapshotNodes('Node / MessagePort', [ { children: [ diff --git a/test/pummel/test-heapsnapshot-near-heap-limit-bounded.js b/test/pummel/test-heapsnapshot-near-heap-limit-bounded.js index faf5c4755aac75..dd7497d975ab92 100644 --- a/test/pummel/test-heapsnapshot-near-heap-limit-bounded.js +++ b/test/pummel/test-heapsnapshot-near-heap-limit-bounded.js @@ -2,8 +2,8 @@ const common = require('../common'); -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const tmpdir = require('../common/tmpdir'); diff --git a/test/pummel/test-heapsnapshot-near-heap-limit.js b/test/pummel/test-heapsnapshot-near-heap-limit.js index 420ba04205945b..1af4e61e08c028 100644 --- a/test/pummel/test-heapsnapshot-near-heap-limit.js +++ b/test/pummel/test-heapsnapshot-near-heap-limit.js @@ -2,8 +2,8 @@ const common = require('../common'); -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const tmpdir = require('../common/tmpdir'); diff --git a/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js b/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js index f556e9881f728c..b3613110ab5c54 100644 --- a/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js +++ b/test/pummel/test-net-bytes-per-incoming-chunk-overhead.js @@ -7,8 +7,8 @@ if (process.config.variables.asan) { common.skip('ASAN messes with memory measurements'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const assert = require('assert'); diff --git a/test/pummel/test-next-tick-infinite-calls.js b/test/pummel/test-next-tick-infinite-calls.js index bf837f5ebc92c0..d1131066977ea2 100644 --- a/test/pummel/test-next-tick-infinite-calls.js +++ b/test/pummel/test-next-tick-infinite-calls.js @@ -22,8 +22,8 @@ 'use strict'; const common = require('../common'); -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } let complete = 0; diff --git a/test/pummel/test-policy-integrity-dep.js b/test/pummel/test-policy-integrity-dep.js index ec58462335cd56..02f24d02a23544 100644 --- a/test/pummel/test-policy-integrity-dep.js +++ b/test/pummel/test-policy-integrity-dep.js @@ -6,8 +6,8 @@ if (!common.hasCrypto) { common.skip('missing crypto'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } common.requireNoPackageJSONAbove(); diff --git a/test/pummel/test-policy-integrity-parent-commonjs.js b/test/pummel/test-policy-integrity-parent-commonjs.js index 39febab73ee419..425abe38ebd9fb 100644 --- a/test/pummel/test-policy-integrity-parent-commonjs.js +++ b/test/pummel/test-policy-integrity-parent-commonjs.js @@ -6,8 +6,8 @@ if (!common.hasCrypto) { common.skip('missing crypto'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } common.requireNoPackageJSONAbove(); diff --git a/test/pummel/test-policy-integrity-parent-module.js b/test/pummel/test-policy-integrity-parent-module.js index e60a606ea32bbe..dda800dc3652fc 100644 --- a/test/pummel/test-policy-integrity-parent-module.js +++ b/test/pummel/test-policy-integrity-parent-module.js @@ -6,8 +6,8 @@ if (!common.hasCrypto) { common.skip('missing crypto'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } common.requireNoPackageJSONAbove(); diff --git a/test/pummel/test-policy-integrity-parent-no-package-json.js b/test/pummel/test-policy-integrity-parent-no-package-json.js index f2208744447827..a722263e1e484a 100644 --- a/test/pummel/test-policy-integrity-parent-no-package-json.js +++ b/test/pummel/test-policy-integrity-parent-no-package-json.js @@ -6,8 +6,8 @@ if (!common.hasCrypto) { common.skip('missing crypto'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } common.requireNoPackageJSONAbove(); diff --git a/test/pummel/test-policy-integrity-worker-commonjs.js b/test/pummel/test-policy-integrity-worker-commonjs.js index 22a7d762466046..b5d49222a2f01c 100644 --- a/test/pummel/test-policy-integrity-worker-commonjs.js +++ b/test/pummel/test-policy-integrity-worker-commonjs.js @@ -6,8 +6,8 @@ if (!common.hasCrypto) { common.skip('missing crypto'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } common.requireNoPackageJSONAbove(); diff --git a/test/pummel/test-policy-integrity-worker-module.js b/test/pummel/test-policy-integrity-worker-module.js index e5d4e4cd45d300..a8a4fb2c29589f 100644 --- a/test/pummel/test-policy-integrity-worker-module.js +++ b/test/pummel/test-policy-integrity-worker-module.js @@ -6,8 +6,8 @@ if (!common.hasCrypto) { common.skip('missing crypto'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } common.requireNoPackageJSONAbove(); diff --git a/test/pummel/test-policy-integrity-worker-no-package-json.js b/test/pummel/test-policy-integrity-worker-no-package-json.js index 808687f40ea219..e5b3e3ccfabbf6 100644 --- a/test/pummel/test-policy-integrity-worker-no-package-json.js +++ b/test/pummel/test-policy-integrity-worker-no-package-json.js @@ -6,8 +6,8 @@ if (!common.hasCrypto) { common.skip('missing crypto'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } common.requireNoPackageJSONAbove(); diff --git a/test/pummel/test-repl-empty-maybelocal-crash.js b/test/pummel/test-repl-empty-maybelocal-crash.js deleted file mode 100644 index 84686e308c6157..00000000000000 --- a/test/pummel/test-repl-empty-maybelocal-crash.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -const common = require('../common'); - -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); -} - -// The process should not crash when the REPL receives the string, 'ss'. -// Test for https://github.com/nodejs/node/issues/42407. - -const repl = require('repl'); - -const r = repl.start(); - -r.write('var buf = Buffer.from({length:200e6},(_,i) => i%256);\n'); -r.write('var ss = buf.toString("binary");\n'); -r.write('ss'); -r.write('.'); - -r.close(); diff --git a/test/pummel/test-webcrypto-derivebits-pbkdf2.js b/test/pummel/test-webcrypto-derivebits-pbkdf2.js index 512662025c66f7..e7ed4f6bd646dd 100644 --- a/test/pummel/test-webcrypto-derivebits-pbkdf2.js +++ b/test/pummel/test-webcrypto-derivebits-pbkdf2.js @@ -6,8 +6,8 @@ if (!common.hasCrypto) { common.skip('missing crypto'); } -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const assert = require('assert'); diff --git a/test/sequential/test-child-process-pass-fd.js b/test/sequential/test-child-process-pass-fd.js index ad4e5d693ee2e5..86092f56da8565 100644 --- a/test/sequential/test-child-process-pass-fd.js +++ b/test/sequential/test-child-process-pass-fd.js @@ -9,8 +9,8 @@ const common = require('../common'); // This test is basically `test-cluster-net-send` but creating lots of workers // so the issue reproduces on OS X consistently. -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); +if (common.isPi) { + common.skip('Too slow for Raspberry Pi devices'); } const assert = require('assert'); diff --git a/test/sequential/test-crypto-timing-safe-equal.js b/test/sequential/test-crypto-timing-safe-equal.js index a8bd3abf4cf1ae..13190692b84749 100644 --- a/test/sequential/test-crypto-timing-safe-equal.js +++ b/test/sequential/test-crypto-timing-safe-equal.js @@ -32,6 +32,41 @@ assert.strictEqual( } } +{ + // When the inputs are floating-point numbers, timingSafeEqual neither has + // equality nor SameValue semantics. It just compares the underlying bytes, + // ignoring the TypedArray type completely. + + const cmp = (fn) => (a, b) => a.every((x, i) => fn(x, b[i])); + const eq = cmp((a, b) => a === b); + const is = cmp(Object.is); + + function test(a, b, { equal, sameValue, timingSafeEqual }) { + assert.strictEqual(eq(a, b), equal); + assert.strictEqual(is(a, b), sameValue); + assert.strictEqual(crypto.timingSafeEqual(a, b), timingSafeEqual); + } + + test(new Float32Array([NaN]), new Float32Array([NaN]), { + equal: false, + sameValue: true, + timingSafeEqual: true + }); + + test(new Float64Array([0]), new Float64Array([-0]), { + equal: true, + sameValue: false, + timingSafeEqual: false + }); + + const x = new BigInt64Array([0x7ff0000000000001n, 0xfff0000000000001n]); + test(new Float64Array(x.buffer), new Float64Array([NaN, NaN]), { + equal: false, + sameValue: true, + timingSafeEqual: false + }); +} + assert.throws( () => crypto.timingSafeEqual(Buffer.from([1, 2, 3]), Buffer.from([1, 2])), { diff --git a/test/sequential/test-debugger-list.js b/test/sequential/test-debugger-list.js new file mode 100644 index 00000000000000..594874e140b306 --- /dev/null +++ b/test/sequential/test-debugger-list.js @@ -0,0 +1,30 @@ +'use strict'; +const common = require('../common'); + +common.skipIfInspectorDisabled(); + +const fixtures = require('../common/fixtures'); +const startCLI = require('../common/debugger'); + +const assert = require('assert'); + +const cli = startCLI([fixtures.path('debugger/three-lines.js')]); + +(async () => { + await cli.waitForInitialBreak(); + await cli.waitForPrompt(); + await cli.command('list(0)'); + assert.match(cli.output, /> 1 let x = 1;/); + await cli.command('list(1)'); + assert.match(cli.output, /> 1 let x = 1;\r?\n {2}2 x = x \+ 1;/); + await cli.command('list(10)'); + assert.match(cli.output, /> 1 let x = 1;\r?\n {2}2 x = x \+ 1;\r?\n {2}3 module\.exports = x;\r?\n {2}4 /); + await cli.command('c'); + await cli.waitFor(/disconnect/); + await cli.waitFor(/debug> $/); + await cli.command('list()'); + await cli.waitFor(/ERR_DEBUGGER_ERROR/); + assert.match(cli.output, /Uncaught Error \[ERR_DEBUGGER_ERROR\]: Requires execution to be paused/); +})() +.finally(() => cli.quit()) +.then(common.mustCall()); diff --git a/test/sequential/test-debugger-object-type-remote-object.js b/test/sequential/test-debugger-object-type-remote-object.js new file mode 100644 index 00000000000000..7404eae3963447 --- /dev/null +++ b/test/sequential/test-debugger-object-type-remote-object.js @@ -0,0 +1,42 @@ +'use strict'; +const common = require('../common'); + +common.skipIfInspectorDisabled(); + +const fixtures = require('../common/fixtures'); +const startCLI = require('../common/debugger'); + +const assert = require('assert'); + +const cli = startCLI([fixtures.path('debugger/empty.js')]); + +(async () => { + await cli.waitForInitialBreak(); + await cli.waitForPrompt(); + await cli.command('exec new Date(0)'); + assert.match(cli.output, /1970-01-01T00:00:00\.000Z/); + await cli.command('exec null'); + assert.match(cli.output, /null/); + await cli.command('exec /regex/g'); + assert.match(cli.output, /\/regex\/g/); + await cli.command('exec new Map()'); + assert.match(cli.output, /Map\(0\) {}/); + await cli.command('exec new Map([["a",1],["b",2]])'); + assert.match(cli.output, /Map\(2\) { a => 1, b => 2 }/); + await cli.command('exec new Set()'); + assert.match(cli.output, /Set\(0\) {}/); + await cli.command('exec new Set([1,2])'); + assert.match(cli.output, /Set\(2\) { 1, 2 }/); + await cli.command('exec new Set([{a:1},new Set([1])])'); + assert.match(cli.output, /Set\(2\) { { a: 1 }, Set\(1\) { \.\.\. } }/); + await cli.command('exec a={}; a'); + assert.match(cli.output, /{}/); + await cli.command('exec a={a:1,b:{c:1}}; a'); + assert.match(cli.output, /{ a: 1, b: Object }/); + await cli.command('exec a=[]; a'); + assert.match(cli.output, /\[\]/); + await cli.command('exec a=[1,2]; a'); + assert.match(cli.output, /\[ 1, 2 \]/); +})() +.finally(() => cli.quit()) +.then(common.mustCall()); diff --git a/test/wpt/README.md b/test/wpt/README.md index b8ded27ef37d78..6c5ea4d5a41071 100644 --- a/test/wpt/README.md +++ b/test/wpt/README.md @@ -167,4 +167,4 @@ In that case it needs to be marked with `skip` instead of `fail`. [Web Platform Tests]: https://github.com/web-platform-tests/wpt [`test/fixtures/wpt/README.md`]: ../fixtures/wpt/README.md -[git node wpt]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md#git-node-wpt +[git node wpt]: https://github.com/nodejs/node-core-utils/blob/HEAD/docs/git-node.md#git-node-wpt diff --git a/test/wpt/status/wasm/webapi.json b/test/wpt/status/wasm/webapi.json new file mode 100644 index 00000000000000..e89b08d8b7576c --- /dev/null +++ b/test/wpt/status/wasm/webapi.json @@ -0,0 +1,21 @@ +{ + "historical.any.js": { + "skip": "indexedDB is not defined" + }, + "origin.sub.any.js": { + "skip": "CORS not implemented" + }, + + "abort.any.js": { + "skip": "WPTRunner does not support fetch()" + }, + "contenttype.any.js": { + "skip": "WPTRunner does not support fetch()" + }, + "idlharness.any.js": { + "skip": "not configured" + }, + "status.any.js": { + "skip": "WPTRunner does not support fetch()" + } +} diff --git a/test/wpt/test-wasm-webapi.js b/test/wpt/test-wasm-webapi.js new file mode 100644 index 00000000000000..fecc6e89a3fe1a --- /dev/null +++ b/test/wpt/test-wasm-webapi.js @@ -0,0 +1,7 @@ +'use strict'; + +require('../common'); +const { WPTRunner } = require('../common/wpt'); + +const runner = new WPTRunner('wasm/webapi'); +runner.runJsTests(); diff --git a/tools/actions/commit-queue.sh b/tools/actions/commit-queue.sh index 309c1c5406b334..0df819e47ee825 100755 --- a/tools/actions/commit-queue.sh +++ b/tools/actions/commit-queue.sh @@ -7,7 +7,7 @@ REPOSITORY=$2 shift 2 UPSTREAM=origin -DEFAULT_BRANCH=master +DEFAULT_BRANCH=main COMMIT_QUEUE_LABEL="commit-queue" COMMIT_QUEUE_FAILED_LABEL="commit-queue-failed" @@ -86,7 +86,7 @@ for pr in "$@"; do commit_title=$(git log -1 --pretty='format:%s') commit_body=$(git log -1 --pretty='format:%b') commit_head=$(grep 'Fetched commits as' output | cut -d. -f3 | xargs git rev-parse) - + jq -n \ --arg title "${commit_title}" \ --arg body "${commit_body}" \ diff --git a/tools/build-addons.js b/tools/build-addons.js deleted file mode 100644 index 1d4bcbc917972c..00000000000000 --- a/tools/build-addons.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -// Usage: e.g. node build-addons.js - -const child_process = require('child_process'); -const path = require('path'); -const fs = require('fs').promises; -const util = require('util'); - -const execFile = util.promisify(child_process.execFile); - -const parallelization = +process.env.JOBS || require('os').cpus().length; -const nodeGyp = process.argv[2]; - -async function runner(directoryQueue) { - if (directoryQueue.length === 0) - return; - - const dir = directoryQueue.shift(); - const next = () => runner(directoryQueue); - - try { - // Only run for directories that have a `binding.gyp`. - // (https://github.com/nodejs/node/issues/14843) - await fs.stat(path.join(dir, 'binding.gyp')); - } catch (err) { - if (err.code === 'ENOENT' || err.code === 'ENOTDIR') - return next(); - throw err; - } - - console.log(`Building addon in ${dir}`); - const { stdout, stderr } = - await execFile(process.execPath, [nodeGyp, 'rebuild', `--directory=${dir}`], - { - stdio: 'inherit', - env: { ...process.env, MAKEFLAGS: '-j1' } - }); - - // We buffer the output and print it out once the process is done in order - // to avoid interleaved output from multiple builds running at once. - process.stdout.write(stdout); - process.stderr.write(stderr); - - return next(); -} - -async function main(directory) { - const directoryQueue = (await fs.readdir(directory)) - .map((subdir) => path.join(directory, subdir)); - - const runners = []; - for (let i = 0; i < parallelization; ++i) - runners.push(runner(directoryQueue)); - return Promise.all(runners); -} - -main(process.argv[3]).catch((err) => setImmediate(() => { throw err; })); diff --git a/tools/build-addons.mjs b/tools/build-addons.mjs new file mode 100755 index 00000000000000..9f757bd798bcf0 --- /dev/null +++ b/tools/build-addons.mjs @@ -0,0 +1,63 @@ +#!/usr/bin/env node + +// Usage: e.g. node build-addons.mjs + +import child_process from 'node:child_process'; +import path from 'node:path'; +import fs from 'node:fs/promises'; +import util from 'node:util'; +import process from 'node:process'; +import os from 'node:os'; + +const execFile = util.promisify(child_process.execFile); + +const parallelization = +process.env.JOBS || os.cpus().length; +const nodeGyp = process.argv[2]; +const directory = process.argv[3]; + +async function buildAddon(dir) { + try { + // Only run for directories that have a `binding.gyp`. + // (https://github.com/nodejs/node/issues/14843) + await fs.stat(path.join(dir, 'binding.gyp')); + } catch (err) { + if (err.code === 'ENOENT' || err.code === 'ENOTDIR') + return; + throw err; + } + + console.log(`Building addon in ${dir}`); + const { stdout, stderr } = + await execFile(process.execPath, [nodeGyp, 'rebuild', `--directory=${dir}`], + { + stdio: 'inherit', + env: { ...process.env, MAKEFLAGS: '-j1' } + }); + + // We buffer the output and print it out once the process is done in order + // to avoid interleaved output from multiple builds running at once. + process.stdout.write(stdout); + process.stderr.write(stderr); +} + +async function parallel(jobQueue, limit) { + const next = async () => { + if (jobQueue.length === 0) { + return; + } + const job = jobQueue.shift(); + await job(); + await next(); + }; + + const workerCnt = Math.min(limit, jobQueue.length); + await Promise.all(Array.from({ length: workerCnt }, next)); +} + +const jobs = []; +for await (const dirent of await fs.opendir(directory)) { + if (dirent.isDirectory()) { + jobs.push(() => buildAddon(path.join(directory, dirent.name))); + } +} +await parallel(jobs, parallelization); diff --git a/tools/clang-format/package-lock.json b/tools/clang-format/package-lock.json index 61f17967f0e4a5..537314a7cb6727 100644 --- a/tools/clang-format/package-lock.json +++ b/tools/clang-format/package-lock.json @@ -1,18 +1,196 @@ { "name": "node-core-clang-format", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "node-core-clang-format", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "clang-format": "^1.8.0" + } + }, + "node_modules/async": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/clang-format": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.8.0.tgz", + "integrity": "sha512-pK8gzfu55/lHzIpQ1givIbWfn3eXnU7SfxqIwVgnn5jEM6j4ZJYjpFqFs4iSBPNedzRMmfjYjuQhu657WAXHXw==", + "dependencies": { + "async": "^3.2.3", + "glob": "^7.0.0", + "resolve": "^1.1.6" + }, + "bin": { + "check-clang-format": "bin/check-clang-format.js", + "clang-format": "index.js", + "git-clang-format": "bin/git-clang-format" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } + }, "dependencies": { "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "brace-expansion": { "version": "1.1.11", @@ -24,11 +202,11 @@ } }, "clang-format": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.2.3.tgz", - "integrity": "sha512-x90Hac4ERacGDcZSvHKK58Ga0STuMD+Doi5g0iG2zf7wlJef5Huvhs/3BvMRFxwRYyYSdl6mpQNrtfMxE8MQzw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.8.0.tgz", + "integrity": "sha512-pK8gzfu55/lHzIpQ1givIbWfn3eXnU7SfxqIwVgnn5jEM6j4ZJYjpFqFs4iSBPNedzRMmfjYjuQhu657WAXHXw==", "requires": { - "async": "^1.5.2", + "async": "^3.2.3", "glob": "^7.0.0", "resolve": "^1.1.6" } @@ -43,10 +221,15 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -56,6 +239,14 @@ "path-is-absolute": "^1.0.0" } }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -66,14 +257,22 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } @@ -97,13 +296,20 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "requires": { - "path-parse": "^1.0.5" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/tools/clang-format/package.json b/tools/clang-format/package.json index 8432296ed6f1fc..4ae7d36a33c90e 100644 --- a/tools/clang-format/package.json +++ b/tools/clang-format/package.json @@ -4,6 +4,6 @@ "description": "Formatting C++ files for Node.js core", "license": "MIT", "dependencies": { - "clang-format": "1.2.3" + "clang-format": "^1.8.0" } } diff --git a/tools/code_cache/README.md b/tools/code_cache/README.md deleted file mode 100644 index 8feb280caae585..00000000000000 --- a/tools/code_cache/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Node.js code cache builder - -This is the V8 code cache builder of Node.js. It pre-compiles all the -JavaScript native modules of Node.js and serializes the code cache (including -the bytecodes) that will be embedded into the Node.js executable. When a Node.js -JavaScript native module is `require`d at runtime, Node.js can deserialize from -the code cache instead of parsing the source code and generating the bytecode -for it before execution, which should reduce the load time of these JavaScript -native modules. - -## How it's built and used - -The code cache builder is built with the `mkcodecache` target in `node.gyp` -when `node_use_node_code_cache` is set to true, which is currently done by -default. - -In the default build of the Node.js executable, to embed the V8 code cache of -the native modules into the Node.js executable, `libnode` is first built with -these unresolved symbols: - -- `node::native_module::has_code_cache` -- `node::native_module::NativeModuleEnv::InitializeCodeCache` - -Then the `mkcodecache` executable is built with C++ files in this directory, -as well as `src/node_code_cache_stub.cc` which defines the unresolved symbols. - -`mkcodecache` is run to generate a C++ file -`<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc` that is similar to -`src/node_code_cache_stub.cc` in structure, but contains the code cache data -written as static char array literals. Then `libnode` is built with -`node_code_cache.cc` to produce the final Node.js executable with the code -cache data embedded. - -For debugging, Node.js can be built without code cache if -`--without-node-code-cache` is passed to `configure`. Note that even if the -code cache is not pre-compiled and embedded into the Node.js executable, the -internal infrastructure is still used to share code cache between the main -thread and worker threads (if there is any). diff --git a/tools/code_cache/cache_builder.cc b/tools/code_cache/cache_builder.cc deleted file mode 100644 index 837357a0fbda76..00000000000000 --- a/tools/code_cache/cache_builder.cc +++ /dev/null @@ -1,148 +0,0 @@ -#include "cache_builder.h" -#include "debug_utils-inl.h" -#include "node_native_module.h" -#include "util.h" - -#include -#include -#include -#include -#include - -namespace node { -namespace native_module { - -using v8::Context; -using v8::Local; -using v8::ScriptCompiler; - -static std::string GetDefName(const std::string& id) { - char buf[64] = {0}; - size_t size = id.size(); - CHECK_LT(size, sizeof(buf)); - for (size_t i = 0; i < size; ++i) { - char ch = id[i]; - buf[i] = (ch == '-' || ch == '/') ? '_' : ch; - } - return buf; -} - -static std::string FormatSize(size_t size) { - char buf[64] = {0}; - if (size < 1024) { - snprintf(buf, sizeof(buf), "%.2fB", static_cast(size)); - } else if (size < 1024 * 1024) { - snprintf(buf, sizeof(buf), "%.2fKB", static_cast(size / 1024)); - } else { - snprintf( - buf, sizeof(buf), "%.2fMB", static_cast(size / 1024 / 1024)); - } - return buf; -} - -static std::string GetDefinition(const std::string& id, - size_t size, - const uint8_t* data) { - std::stringstream ss; - ss << "static const uint8_t " << GetDefName(id) << "[] = {\n"; - for (size_t i = 0; i < size; ++i) { - uint8_t ch = data[i]; - ss << std::to_string(ch) << (i == size - 1 ? '\n' : ','); - } - ss << "};"; - return ss.str(); -} - -static void GetInitializer(const std::string& id, std::stringstream& ss) { - std::string def_name = GetDefName(id); - ss << " code_cache.emplace(\n"; - ss << " \"" << id << "\",\n"; - ss << " std::make_unique(\n"; - ss << " " << def_name << ",\n"; - ss << " static_cast(arraysize(" << def_name << ")), policy\n"; - ss << " )\n"; - ss << " );"; -} - -static std::string GenerateCodeCache( - const std::map& data) { - std::stringstream ss; - ss << R"(#include -#include "node_native_module_env.h" - -// This file is generated by mkcodecache (tools/code_cache/mkcodecache.cc) - -namespace node { -namespace native_module { - -const bool has_code_cache = true; - -)"; - - size_t total = 0; - for (const auto& x : data) { - const std::string& id = x.first; - ScriptCompiler::CachedData* cached_data = x.second; - total += cached_data->length; - std::string def = GetDefinition(id, cached_data->length, cached_data->data); - ss << def << "\n\n"; - std::string size_str = FormatSize(cached_data->length); - std::string total_str = FormatSize(total); - per_process::Debug(DebugCategory::CODE_CACHE, - "Generated cache for %s, size = %s, total = %s\n", - id.c_str(), - size_str.c_str(), - total_str.c_str()); - } - - ss << R"(void NativeModuleEnv::InitializeCodeCache() { - NativeModuleCacheMap& code_cache = - *NativeModuleLoader::GetInstance()->code_cache(); - CHECK(code_cache.empty()); - auto policy = v8::ScriptCompiler::CachedData::BufferPolicy::BufferNotOwned; -)"; - - for (const auto& x : data) { - GetInitializer(x.first, ss); - ss << "\n\n"; - } - - ss << R"( -} - -} // namespace native_module -} // namespace node -)"; - return ss.str(); -} - -std::string CodeCacheBuilder::Generate(Local context) { - NativeModuleLoader* loader = NativeModuleLoader::GetInstance(); - std::vector ids = loader->GetModuleIds(); - - std::map data; - - for (const auto& id : ids) { - // TODO(joyeecheung): we can only compile the modules that can be - // required here because the parameters for other types of builtins - // are still very flexible. We should look into auto-generating - // the parameters from the source somehow. - if (loader->CanBeRequired(id.c_str())) { - NativeModuleLoader::Result result; - USE(loader->CompileAsModule(context, id.c_str(), &result)); - ScriptCompiler::CachedData* cached_data = - loader->GetCodeCache(id.c_str()); - if (cached_data == nullptr) { - // TODO(joyeecheung): display syntax errors - std::cerr << "Failed to compile " << id << "\n"; - } else { - data.emplace(id, cached_data); - } - } - } - - return GenerateCodeCache(data); -} - -} // namespace native_module -} // namespace node diff --git a/tools/code_cache/cache_builder.h b/tools/code_cache/cache_builder.h deleted file mode 100644 index d5a6cd4241dfb0..00000000000000 --- a/tools/code_cache/cache_builder.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef TOOLS_CODE_CACHE_CACHE_BUILDER_H_ -#define TOOLS_CODE_CACHE_CACHE_BUILDER_H_ - -#include -#include "v8.h" - -namespace node { -namespace native_module { -class CodeCacheBuilder { - public: - static std::string Generate(v8::Local context); -}; -} // namespace native_module -} // namespace node - -#endif // TOOLS_CODE_CACHE_CACHE_BUILDER_H_ diff --git a/tools/code_cache/mkcodecache.cc b/tools/code_cache/mkcodecache.cc deleted file mode 100644 index 5593e14fae3b55..00000000000000 --- a/tools/code_cache/mkcodecache.cc +++ /dev/null @@ -1,73 +0,0 @@ -#include -#include -#include -#include -#include - -#include "cache_builder.h" -#include "debug_utils-inl.h" -#include "libplatform/libplatform.h" -#include "v8.h" - -using node::native_module::CodeCacheBuilder; -using v8::ArrayBuffer; -using v8::Context; -using v8::HandleScope; -using v8::Isolate; -using v8::Local; - -#ifdef _WIN32 -#include -#include -#include - -int wmain(int argc, wchar_t* argv[]) { -#else // UNIX -int main(int argc, char* argv[]) { - argv = uv_setup_args(argc, argv); -#endif // _WIN32 - - v8::V8::SetFlagsFromString("--random_seed=42"); - v8::V8::SetFlagsFromString("--harmony-import-assertions"); - - if (argc < 2) { - std::cerr << "Usage: " << argv[0] << " \n"; - return 1; - } - - std::ofstream out; - out.open(argv[1], std::ios::out | std::ios::binary); - if (!out.is_open()) { - std::cerr << "Cannot open " << argv[1] << "\n"; - return 1; - } - - node::per_process::enabled_debug_list.Parse(nullptr); - - std::unique_ptr platform = v8::platform::NewDefaultPlatform(); - v8::V8::InitializePlatform(platform.get()); - v8::V8::Initialize(); - - // Create a new Isolate and make it the current one. - Isolate::CreateParams create_params; - create_params.array_buffer_allocator_shared.reset( - ArrayBuffer::Allocator::NewDefaultAllocator()); - Isolate* isolate = Isolate::New(create_params); - { - Isolate::Scope isolate_scope(isolate); - v8::HandleScope handle_scope(isolate); - v8::Local context = v8::Context::New(isolate); - v8::Context::Scope context_scope(context); - - // The command line flags are part of the code cache's checksum so reset - // --random_seed= to its default value before creating the code cache. - v8::V8::SetFlagsFromString("--random_seed=0"); - std::string cache = CodeCacheBuilder::Generate(context); - out << cache; - out.close(); - } - isolate->Dispose(); - - v8::V8::DisposePlatform(); - return 0; -} diff --git a/tools/compress_json.py b/tools/compress_json.py index dfe64063aeaead..fdb3d536cf3e3c 100644 --- a/tools/compress_json.py +++ b/tools/compress_json.py @@ -21,7 +21,7 @@ # To make decompression a little easier, we prepend the compressed data # with the size of the uncompressed data as a 24 bits BE unsigned integer. - assert len(text) < 1 << 24, 'Uncompressed JSON must be < 16 MB.' + assert len(text) < 1 << 24, 'Uncompressed JSON must be < 16 MiB.' data = struct.pack('>I', len(text))[1:4] + data step = 20 diff --git a/tools/doc/apilinks.mjs b/tools/doc/apilinks.mjs index a1b660f1cfaf54..749bf7966aa2b0 100644 --- a/tools/doc/apilinks.mjs +++ b/tools/doc/apilinks.mjs @@ -41,7 +41,7 @@ const remoteUrl = execSync(`git config remote.${trackingRemote}.url`); const repo = (remoteUrl.match(/(\w+\/\w+)\.git\r?\n?$/) || ['', 'nodejs/node'])[1]; -const hash = execSync('git log -1 --pretty=%H') || 'master'; +const hash = execSync('git log -1 --pretty=%H') || 'main'; const tag = execSync(`git describe --contains ${hash}`).split('\n')[0] || hash; // Extract definitions from each file specified. diff --git a/tools/doc/html.mjs b/tools/doc/html.mjs index 1c5ad61182bc79..1caffa7158c950 100644 --- a/tools/doc/html.mjs +++ b/tools/doc/html.mjs @@ -522,7 +522,7 @@ function altDocs(filename, docCreated, versions) { } function editOnGitHub(filename) { - return `
  • Edit on GitHub
  • `; + return `
  • Edit on GitHub
  • `; } function gtocPicker(id) { diff --git a/tools/doc/package-lock.json b/tools/doc/package-lock.json index 629441b0bd142f..cb7d7bcfad59be 100644 --- a/tools/doc/package-lock.json +++ b/tools/doc/package-lock.json @@ -11,7 +11,7 @@ "node-doc-generator": "generate.js" }, "devDependencies": { - "highlight.js": "^11.5.0", + "highlight.js": "^11.5.1", "js-yaml": "^4.1.0", "rehype-raw": "^6.1.1", "rehype-stringify": "^9.0.3", @@ -159,9 +159,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -416,9 +416,9 @@ } }, "node_modules/highlight.js": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.0.tgz", - "integrity": "sha512-SM6WDj5/C+VfIY8pZ6yW6Xa0Fm1tniYVYWYW1Q/DcMnISZFrC3aQAZZZFAAZtybKNrGId3p/DNbFTtcTXXgYBw==", + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", + "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", "dev": true, "engines": { "node": ">=12.0.0" @@ -599,16 +599,18 @@ } }, "node_modules/mdast-util-gfm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.0.tgz", - "integrity": "sha512-wMwejlTN3EQADPFuvxe8lmGsay3+f6gSJKdAHR6KBJzpcxvsjJSILB9K6u6G7eQLC7iOTyVIHYGui9uBc9r1Tg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz", + "integrity": "sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==", "dev": true, "dependencies": { + "mdast-util-from-markdown": "^1.0.0", "mdast-util-gfm-autolink-literal": "^1.0.0", "mdast-util-gfm-footnote": "^1.0.0", "mdast-util-gfm-strikethrough": "^1.0.0", "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0" + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" }, "funding": { "type": "opencollective", @@ -661,12 +663,13 @@ } }, "node_modules/mdast-util-gfm-table": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.3.tgz", - "integrity": "sha512-B/tgpJjND1qIZM2WZst+NYnb0notPE6m0J+YOe3NOHXyEmvK38ytxaOsgz4BvrRPQQcNbRrTzSHMPnBkj1fCjg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.4.tgz", + "integrity": "sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w==", "dev": true, "dependencies": { "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", "mdast-util-to-markdown": "^1.3.0" }, "funding": { @@ -867,9 +870,9 @@ } }, "node_modules/micromark-extension-gfm-footnote": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz", - "integrity": "sha512-bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz", + "integrity": "sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==", "dev": true, "dependencies": { "micromark-core-commonmark": "^1.0.0", @@ -878,6 +881,7 @@ "micromark-util-normalize-identifier": "^1.0.0", "micromark-util-sanitize-uri": "^1.0.0", "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", "uvu": "^0.5.0" }, "funding": { @@ -1599,10 +1603,13 @@ } }, "node_modules/unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", + "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", "dev": true, + "dependencies": { + "@types/unist": "^2.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -1871,9 +1878,9 @@ "dev": true }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -2057,9 +2064,9 @@ } }, "highlight.js": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.0.tgz", - "integrity": "sha512-SM6WDj5/C+VfIY8pZ6yW6Xa0Fm1tniYVYWYW1Q/DcMnISZFrC3aQAZZZFAAZtybKNrGId3p/DNbFTtcTXXgYBw==", + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", + "integrity": "sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==", "dev": true }, "html-void-elements": { @@ -2178,16 +2185,18 @@ } }, "mdast-util-gfm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.0.tgz", - "integrity": "sha512-wMwejlTN3EQADPFuvxe8lmGsay3+f6gSJKdAHR6KBJzpcxvsjJSILB9K6u6G7eQLC7iOTyVIHYGui9uBc9r1Tg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.1.tgz", + "integrity": "sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==", "dev": true, "requires": { + "mdast-util-from-markdown": "^1.0.0", "mdast-util-gfm-autolink-literal": "^1.0.0", "mdast-util-gfm-footnote": "^1.0.0", "mdast-util-gfm-strikethrough": "^1.0.0", "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0" + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" } }, "mdast-util-gfm-autolink-literal": { @@ -2224,12 +2233,13 @@ } }, "mdast-util-gfm-table": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.3.tgz", - "integrity": "sha512-B/tgpJjND1qIZM2WZst+NYnb0notPE6m0J+YOe3NOHXyEmvK38ytxaOsgz4BvrRPQQcNbRrTzSHMPnBkj1fCjg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.4.tgz", + "integrity": "sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w==", "dev": true, "requires": { "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", "mdast-util-to-markdown": "^1.3.0" } }, @@ -2378,9 +2388,9 @@ } }, "micromark-extension-gfm-footnote": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz", - "integrity": "sha512-bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz", + "integrity": "sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==", "dev": true, "requires": { "micromark-core-commonmark": "^1.0.0", @@ -2389,6 +2399,7 @@ "micromark-util-normalize-identifier": "^1.0.0", "micromark-util-sanitize-uri": "^1.0.0", "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", "uvu": "^0.5.0" } }, @@ -2827,10 +2838,13 @@ "dev": true }, "unist-util-position": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.1.tgz", - "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==", - "dev": true + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", + "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0" + } }, "unist-util-select": { "version": "4.0.1", diff --git a/tools/doc/package.json b/tools/doc/package.json index 9856d6149845d8..7cc4d7ec85bd9b 100644 --- a/tools/doc/package.json +++ b/tools/doc/package.json @@ -7,7 +7,7 @@ "node": ">=14.8.0" }, "devDependencies": { - "highlight.js": "^11.5.0", + "highlight.js": "^11.5.1", "js-yaml": "^4.1.0", "rehype-raw": "^6.1.1", "rehype-stringify": "^9.0.3", diff --git a/tools/doc/type-parser.mjs b/tools/doc/type-parser.mjs index 7d76d072c34033..09a3cabc57afa0 100644 --- a/tools/doc/type-parser.mjs +++ b/tools/doc/type-parser.mjs @@ -84,10 +84,10 @@ const customTypesMap = { 'Crypto': 'webcrypto.html#class-crypto', 'SubtleCrypto': 'webcrypto.html#class-subtlecrypto', 'RsaOaepParams': 'webcrypto.html#class-rsaoaepparams', + 'AlgorithmIdentifier': 'webcrypto.html#class-algorithmidentifier', 'AesCtrParams': 'webcrypto.html#class-aesctrparams', 'AesCbcParams': 'webcrypto.html#class-aescbcparams', 'AesGcmParams': 'webcrypto.html#class-aesgcmparams', - 'AesKwParams': 'webcrypto.html#class-aeskwparams', 'EcdhKeyDeriveParams': 'webcrypto.html#class-ecdhkeyderiveparams', 'HkdfParams': 'webcrypto.html#class-hkdfparams', 'Pbkdf2Params': 'webcrypto.html#class-pbkdf2params', @@ -100,26 +100,9 @@ const customTypesMap = { 'webcrypto.html#class-rsahashedimportparams', 'EcKeyImportParams': 'webcrypto.html#class-eckeyimportparams', 'HmacImportParams': 'webcrypto.html#class-hmacimportparams', - 'AesImportParams': 'webcrypto.html#class-aesimportparams', - 'Pbkdf2ImportParams': 'webcrypto.html#class-pbkdf2importparams', - 'HmacParams': 'webcrypto.html#class-hmacparams', 'EcdsaParams': 'webcrypto.html#class-ecdsaparams', 'RsaPssParams': 'webcrypto.html#class-rsapssparams', - 'RsaSignParams': 'webcrypto.html#class-rsasignparams', - 'NodeDhImportParams': 'webcrypto.html#class-nodedhimportparams', - 'NodeDhKeyGenParams': 'webcrypto.html#class-nodedhkeygenparams', - 'NodeDhDeriveBitsParams': - 'webcrypto.html#class-nodedhderivebitsparams', - 'NodeDsaImportParams': 'webcrypto.html#class-nodedsaimportparams', - 'NodeDsaKeyGenParams': 'webcrypto.html#class-nodedsakeygenparams', - 'NodeDsaSignParams': 'webcrypto.html#class-nodedsasignparams', - 'NodeScryptImportParams': - 'webcrypto.html#class-nodescryptimportparams', - 'NodeScryptParams': 'webcrypto.html#class-nodescryptparams', - 'NodeEdKeyImportParams': - 'webcrypto.html#class-nodeedkeyimportparams', - 'NodeEdKeyGenParams': - 'webcrypto.html#class-nodeedkeygenparams', + 'Ed448Params': 'webcrypto.html#class-ed448params', 'dgram.Socket': 'dgram.html#class-dgramsocket', @@ -164,6 +147,7 @@ const customTypesMap = { 'Http2Session': 'http2.html#class-http2session', 'Http2Stream': 'http2.html#class-http2stream', 'ServerHttp2Stream': 'http2.html#class-serverhttp2stream', + 'ServerHttp2Session': 'http2.html#class-serverhttp2session', 'https.Server': 'https.html#class-httpsserver', diff --git a/tools/doc/versions.mjs b/tools/doc/versions.mjs index ec623a2dbd206e..8f6c4ef98ad596 100644 --- a/tools/doc/versions.mjs +++ b/tools/doc/versions.mjs @@ -32,7 +32,7 @@ const outFile = (process.argv.length > 2 ? process.argv[2] : undefined); async function versions() { // The CHANGELOG.md on release branches may not reference newer semver - // majors of Node.js so fetch and parse the version from the master branch. + // majors of Node.js so fetch and parse the version from the main branch. const url = 'https://raw.githubusercontent.com/nodejs/node/HEAD/CHANGELOG.md'; let changelog; diff --git a/tools/eslint-rules/avoid-prototype-pollution.js b/tools/eslint-rules/avoid-prototype-pollution.js new file mode 100644 index 00000000000000..1f71272bd7d0b3 --- /dev/null +++ b/tools/eslint-rules/avoid-prototype-pollution.js @@ -0,0 +1,150 @@ +'use strict'; + +function checkProperties(context, node) { + if ( + node.type === 'CallExpression' && + node.callee.name === 'ObjectGetOwnPropertyDescriptors' + ) { + context.report({ + node, + message: + 'Property descriptors inherits from the Object prototype, therefore are subject to prototype pollution', + }); + } + if (node.type !== 'ObjectExpression') return; + for (const { key, value } of node.properties) { + if ( + key != null && value != null && + !(key.type === 'Identifier' && key.name === '__proto__') && + !(key.type === 'Literal' && key.value === '__proto__') + ) { + checkPropertyDescriptor(context, value); + } + } +} + +function checkPropertyDescriptor(context, node) { + if ( + node.type === 'CallExpression' && + (node.callee.name === 'ObjectGetOwnPropertyDescriptor' || + node.callee.name === 'ReflectGetOwnPropertyDescriptor') + ) { + context.report({ + node, + message: + 'Property descriptors inherits from the Object prototype, therefore are subject to prototype pollution', + suggest: [{ + desc: 'Wrap the property descriptor in a null-prototype object', + fix(fixer) { + return [ + fixer.insertTextBefore(node, '{ __proto__: null,...'), + fixer.insertTextAfter(node, ' }'), + ]; + }, + }], + }); + } + if (node.type !== 'ObjectExpression') return; + + for (const { key, value } of node.properties) { + if ( + key != null && value != null && + ((key.type === 'Identifier' && key.name === '__proto__') || + (key.type === 'Literal' && key.value === '__proto__')) && + value.type === 'Literal' && value.value === null + ) { + return true; + } + } + + context.report({ + node, + message: 'Must use null-prototype object for property descriptors', + }); +} + +function createUnsafeStringMethodReport(context, name, lookedUpProperty) { + return { + [`${CallExpression}[expression.callee.name=${JSON.stringify(name)}]`](node) { + context.report({ + node, + message: `${name} looks up the ${lookedUpProperty} property on the first argument`, + }); + } + }; +} + +const CallExpression = 'ExpressionStatement[expression.type="CallExpression"]'; +module.exports = { + meta: { hasSuggestions: true }, + create(context) { + return { + [`${CallExpression}[expression.callee.name=${/^(Object|Reflect)DefinePropert(ies|y)$/}]`]( + node + ) { + switch (node.expression.callee.name) { + case 'ObjectDefineProperties': + checkProperties(context, node.expression.arguments[1]); + break; + case 'ReflectDefineProperty': + case 'ObjectDefineProperty': + checkPropertyDescriptor(context, node.expression.arguments[2]); + break; + default: + throw new Error('Unreachable'); + } + }, + + [`${CallExpression}[expression.callee.name="ObjectCreate"][expression.arguments.length=2]`](node) { + checkProperties(context, node.expression.arguments[1]); + }, + [`${CallExpression}[expression.callee.name="RegExpPrototypeTest"]`](node) { + context.report({ + node, + message: '%RegExp.prototype.test% looks up the "exec" property of `this` value', + suggest: [{ + desc: 'Use RegexpPrototypeExec instead', + fix(fixer) { + const testRange = { ...node.range }; + testRange.start = testRange.start + 'RegexpPrototype'.length; + testRange.end = testRange.start + 'Test'.length; + return [ + fixer.replaceTextRange(node.range, 'Exec'), + fixer.insertTextAfter(node, ' !== null'), + ]; + } + }] + }); + }, + [`${CallExpression}[expression.callee.name=${/^RegExpPrototypeSymbol(Match|MatchAll|Search)$/}]`](node) { + context.report({ + node, + message: node.expression.callee.name + ' looks up the "exec" property of `this` value', + }); + }, + ...createUnsafeStringMethodReport(context, 'StringPrototypeMatch', 'Symbol.match'), + ...createUnsafeStringMethodReport(context, 'StringPrototypeMatchAll', 'Symbol.matchAll'), + ...createUnsafeStringMethodReport(context, 'StringPrototypeReplace', 'Symbol.replace'), + ...createUnsafeStringMethodReport(context, 'StringPrototypeReplaceAll', 'Symbol.replace'), + ...createUnsafeStringMethodReport(context, 'StringPrototypeSearch', 'Symbol.search'), + ...createUnsafeStringMethodReport(context, 'StringPrototypeSplit', 'Symbol.split'), + + 'NewExpression[callee.name="Proxy"][arguments.1.type="ObjectExpression"]'(node) { + for (const { key, value } of node.arguments[1].properties) { + if ( + key != null && value != null && + ((key.type === 'Identifier' && key.name === '__proto__') || + (key.type === 'Literal' && key.value === '__proto__')) && + value.type === 'Literal' && value.value === null + ) { + return; + } + } + context.report({ + node, + message: 'Proxy handler must be a null-prototype object' + }); + } + }; + }, +}; diff --git a/tools/gen_node_def.cc b/tools/gen_node_def.cc new file mode 100644 index 00000000000000..f4cabbd84c1f75 --- /dev/null +++ b/tools/gen_node_def.cc @@ -0,0 +1,197 @@ +#include +#include +#include +#include +#include +#include +#include + +// This executable takes a Windows DLL and uses it to generate +// a module-definition file [1] which forwards all the exported +// symbols from the DLL and redirects them back to the DLL. +// This allows node.exe to export the same symbols as libnode.dll +// when building Node.js as a shared library. This is conceptually +// similary to the create_expfile.sh script used on AIX. +// +// Generating this .def file requires parsing data out of the +// PE32/PE32+ file format. Helper structs are defined in +// hence why this is an executable and not a script. See [2] for +// details on the PE format. +// +// [1]: https://docs.microsoft.com/en-us/cpp/build/reference/module-definition-dot-def-files +// [2]: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format + +// The PE32 format encodes pointers as Relative Virtual Addresses +// which are 32 bit offsets from the start of the image. This helper +// class hides the mess of the pointer arithmetic +struct RelativeAddress { + uintptr_t root; + uintptr_t offset = 0; + + RelativeAddress(HMODULE handle) noexcept + : root(reinterpret_cast(handle)) {} + + RelativeAddress(HMODULE handle, uintptr_t offset) noexcept + : root(reinterpret_cast(handle)), offset(offset) {} + + RelativeAddress(uintptr_t root, uintptr_t offset) noexcept + : root(root), offset(offset) {} + + template + const T* AsPtrTo() const noexcept { + return reinterpret_cast(root + offset); + } + + template + T Read() const noexcept { + return *AsPtrTo(); + } + + RelativeAddress AtOffset(uintptr_t amount) const noexcept { + return {root, offset + amount}; + } + + RelativeAddress operator+(uintptr_t amount) const noexcept { + return {root, offset + amount}; + } + + RelativeAddress ReadRelativeAddress() const noexcept { + return {root, Read()}; + } +}; + +// A wrapper around a dynamically loaded Windows DLL. This steps through the +// PE file structure to find the export directory and pulls out a list of +// all the exported symbol names. +struct Library { + HMODULE library; + std::string libraryName; + std::vector exportedSymbols; + + Library(HMODULE library) : library(library) { + auto libnode = RelativeAddress(library); + + // At relative offset 0x3C is a 32 bit offset to the COFF signature, 4 bytes + // after that is the start of the COFF header. + auto coffHeaderPtr = + libnode.AtOffset(0x3C).ReadRelativeAddress().AtOffset(4); + auto coffHeader = coffHeaderPtr.AsPtrTo(); + + // After the coff header is the Optional Header (which is not optional). We + // don't know what type of optional header we have without examining the + // magic number + auto optionalHeaderPtr = coffHeaderPtr.AtOffset(sizeof(IMAGE_FILE_HEADER)); + auto optionalHeader = optionalHeaderPtr.AsPtrTo(); + + auto exportDirectory = + (optionalHeader->Magic == 0x20b) ? optionalHeaderPtr.AsPtrTo() + ->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT] + : optionalHeaderPtr.AsPtrTo() + ->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]; + + auto exportTable = libnode.AtOffset(exportDirectory.VirtualAddress) + .AsPtrTo(); + + // This is the name of the library without the suffix, this is more robust + // than parsing the filename as this is what the linker uses. + libraryName = libnode.AtOffset(exportTable->Name).AsPtrTo(); + libraryName = libraryName.substr(0, libraryName.size() - 4); + + const uint32_t* functionNameTable = + libnode.AtOffset(exportTable->AddressOfNames).AsPtrTo(); + + // Given an RVA, parse it as a std::string. The resulting string is empty + // if the symbol does not have a name (i.e. it is ordinal only). + auto nameRvaToName = [&](uint32_t rva) -> std::string { + auto namePtr = libnode.AtOffset(rva).AsPtrTo(); + if (namePtr == nullptr) return {}; + return {namePtr}; + }; + std::transform(functionNameTable, + functionNameTable + exportTable->NumberOfNames, + std::back_inserter(exportedSymbols), + nameRvaToName); + } + + ~Library() { FreeLibrary(library); } +}; + +bool IsPageExecutable(void* address) { + MEMORY_BASIC_INFORMATION memoryInformation; + size_t rc = VirtualQuery( + address, &memoryInformation, sizeof(MEMORY_BASIC_INFORMATION)); + + if (rc != 0 && memoryInformation.Protect != 0) { + return memoryInformation.Protect == PAGE_EXECUTE || + memoryInformation.Protect == PAGE_EXECUTE_READ || + memoryInformation.Protect == PAGE_EXECUTE_READWRITE || + memoryInformation.Protect == PAGE_EXECUTE_WRITECOPY; + } + return false; +} + +Library LoadLibraryOrExit(const char* dllPath) { + auto library = LoadLibrary(dllPath); + if (library != nullptr) return library; + + auto error = GetLastError(); + std::cerr << "ERROR: Failed to load " << dllPath << std::endl; + LPCSTR buffer = nullptr; + auto rc = FormatMessageA( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, + nullptr, + error, + LANG_USER_DEFAULT, + (LPSTR)&buffer, + 0, + nullptr); + if (rc != 0) { + std::cerr << buffer << std::endl; + LocalFree((HLOCAL)buffer); + } + exit(1); +} + +int main(int argc, char** argv) { + if (argc != 3) { + std::cerr << "Usage: " << argv[0] + << " path\\to\\libnode.dll path\\to\\node.def" << std::endl; + return 1; + } + + auto libnode = LoadLibraryOrExit(argv[1]); + auto defFile = std::ofstream(argv[2]); + defFile << "EXPORTS" << std::endl; + + for (const std::string& functionName : libnode.exportedSymbols) { + // If a symbol doesn't have a name then it has been exported as an + // ordinal only. We assume that only named symbols are exported. + if (functionName.empty()) continue; + + // Every name in the exported symbols table should be resolvable + // to an address because we have actually loaded the library into + // our address space. + auto address = GetProcAddress(libnode.library, functionName.c_str()); + if (address == nullptr) { + std::cerr << "WARNING: " << functionName + << " appears in export table but is not a valid symbol" + << std::endl; + continue; + } + + defFile << " " << functionName << " = " << libnode.libraryName << "." + << functionName; + + // Nothing distinguishes exported global data from exported functions + // with C linkage. If we do not specify the DATA keyword for such symbols + // then consumers of the .def file will get a linker error. This manifests + // as nodedbg_ symbols not being found. We assert that if the symbol is in + // an executable page in this process then it is a function, not data. + if (!IsPageExecutable(address)) { + defFile << " DATA"; + } + defFile << std::endl; + } + + return 0; +} diff --git a/tools/gyp/pylib/gyp/generator/ninja.py b/tools/gyp/pylib/gyp/generator/ninja.py index d173bf22990116..3db3771ac97855 100644 --- a/tools/gyp/pylib/gyp/generator/ninja.py +++ b/tools/gyp/pylib/gyp/generator/ninja.py @@ -2112,8 +2112,8 @@ class MEMORYSTATUSEX(ctypes.Structure): ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat)) # VS 2015 uses 20% more working set than VS 2013 and can consume all RAM - # on a 64 GB machine. - mem_limit = max(1, stat.ullTotalPhys // (5 * (2 ** 30))) # total / 5GB + # on a 64 GiB machine. + mem_limit = max(1, stat.ullTotalPhys // (5 * (2 ** 30))) # total / 5GiB hard_cap = max(1, int(os.environ.get("GYP_LINK_CONCURRENCY_MAX", 2 ** 32))) return min(mem_limit, hard_cap) elif sys.platform.startswith("linux"): diff --git a/tools/icu/README.md b/tools/icu/README.md index 2e908e2cf44750..0740b718a859c0 100644 --- a/tools/icu/README.md +++ b/tools/icu/README.md @@ -36,4 +36,4 @@ Note: * [The ICU Homepage][ICU] [ICU]: http://icu-project.org -[ICU data slicer]: https://github.com/unicode-org/icu/blob/master/docs/userguide/icu_data/buildtool.md +[ICU data slicer]: https://github.com/unicode-org/icu/blob/HEAD/docs/userguide/icu_data/buildtool.md diff --git a/tools/inspector_protocol/encoding/encoding.h b/tools/inspector_protocol/encoding/encoding.h index 08596e9e1e43f0..14432484d55b9d 100644 --- a/tools/inspector_protocol/encoding/encoding.h +++ b/tools/inspector_protocol/encoding/encoding.h @@ -167,7 +167,7 @@ namespace cbor { // must use a 32 bit wide length. // - At the top level, a message must be an indefinite length map // wrapped by an envelope. -// - Maximal size for messages is 2^32 (4 GB). +// - Maximal size for messages is 2^32 (4 GiB). // - For scalars, we support only the int32_t range, encoded as // UNSIGNED/NEGATIVE (major types 0 / 1). // - UTF16 strings, including with unbalanced surrogate pairs, are encoded diff --git a/tools/inspector_protocol/lib/encoding_h.template b/tools/inspector_protocol/lib/encoding_h.template index 2c6cfc10d594c2..4d9874bfbd5cb4 100644 --- a/tools/inspector_protocol/lib/encoding_h.template +++ b/tools/inspector_protocol/lib/encoding_h.template @@ -176,7 +176,7 @@ namespace cbor { // must use a 32 bit wide length. // - At the top level, a message must be an indefinite length map // wrapped by an envelope. -// - Maximal size for messages is 2^32 (4 GB). +// - Maximal size for messages is 2^32 (4 GiB). // - For scalars, we support only the int32_t range, encoded as // UNSIGNED/NEGATIVE (major types 0 / 1). // - UTF16 strings, including with unbalanced surrogate pairs, are encoded diff --git a/tools/install.py b/tools/install.py index e2440a082f2be7..47e9d8bd7a1ae5 100755 --- a/tools/install.py +++ b/tools/install.py @@ -133,20 +133,17 @@ def files(action): output_file = 'node' output_prefix = 'out/Release/' - if 'false' == variables.get('node_shared'): - if is_windows: - output_file += '.exe' - else: + if is_windows: + output_file += '.exe' + action([output_prefix + output_file], 'bin/' + output_file) + + if 'true' == variables.get('node_shared'): if is_windows: - output_file += '.dll' + action([output_prefix + 'libnode.dll'], 'bin/libnode.dll') + action([output_prefix + 'libnode.lib'], 'lib/libnode.lib') else: - output_file = 'lib' + output_file + '.' + variables.get('shlib_suffix') - - if 'false' == variables.get('node_shared'): - action([output_prefix + output_file], 'bin/' + output_file) - else: - action([output_prefix + output_file], 'lib/' + output_file) - + output_lib = 'libnode.' + variables.get('shlib_suffix') + action([output_prefix + output_lib], 'lib/' + output_lib) if 'true' == variables.get('node_use_dtrace'): action(['out/Release/node.d'], 'lib/dtrace/node.d') diff --git a/tools/lint-md/lint-md.mjs b/tools/lint-md/lint-md.mjs index 29d43585526ca4..e53363715e1bcd 100644 --- a/tools/lint-md/lint-md.mjs +++ b/tools/lint-md/lint-md.mjs @@ -1,7 +1,7 @@ import fs from 'fs'; import path$1 from 'path'; -import { fileURLToPath, pathToFileURL, URL as URL$1 } from 'url'; import proc from 'process'; +import { fileURLToPath, pathToFileURL, URL as URL$1 } from 'url'; import process$1 from 'node:process'; import os from 'node:os'; import tty from 'node:tty'; @@ -14,10 +14,6 @@ function bail(error) { var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; -function commonjsRequire (path) { - throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); -} - /*! * Determine if an object is a Buffer * @@ -4939,7 +4935,6 @@ const htmlBlockNames = [ 'p', 'param', 'section', - 'source', 'summary', 'table', 'tbody', @@ -10801,80 +10796,6 @@ function escapeStringRegexp(string) { .replace(/-/g, '\\x2d'); } -function color$1(d) { - return '\u001B[33m' + d + '\u001B[39m' -} - -const CONTINUE = true; -const SKIP = 'skip'; -const EXIT = false; -const visitParents = - ( - function (tree, test, visitor, reverse) { - if (typeof test === 'function' && typeof visitor !== 'function') { - reverse = visitor; - visitor = test; - test = null; - } - var is = convert(test); - var step = reverse ? -1 : 1; - factory(tree, null, [])(); - function factory(node, index, parents) { - var value = typeof node === 'object' && node !== null ? node : {}; - var name; - if (typeof value.type === 'string') { - name = - typeof value.tagName === 'string' - ? value.tagName - : typeof value.name === 'string' - ? value.name - : undefined; - Object.defineProperty(visit, 'name', { - value: - 'node (' + - color$1(value.type + (name ? '<' + name + '>' : '')) + - ')' - }); - } - return visit - function visit() { - var result = []; - var subresult; - var offset; - var grandparents; - if (!test || is(node, index, parents[parents.length - 1] || null)) { - result = toResult(visitor(node, parents)); - if (result[0] === EXIT) { - return result - } - } - if (node.children && result[0] !== SKIP) { - offset = (reverse ? node.children.length : -1) + step; - grandparents = parents.concat(node); - while (offset > -1 && offset < node.children.length) { - subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT) { - return subresult - } - offset = - typeof subresult[1] === 'number' ? subresult[1] : offset + step; - } - } - return result - } - } - } - ); -function toResult(value) { - if (Array.isArray(value)) { - return value - } - if (typeof value === 'number') { - return [CONTINUE, value] - } - return [value] -} - const own$3 = {}.hasOwnProperty; const findAndReplace = ( @@ -10895,7 +10816,7 @@ const findAndReplace = const pairs = toPairs(schema); let pairIndex = -1; while (++pairIndex < pairs.length) { - visitParents(tree, 'text', visitor); + visitParents$1(tree, 'text', visitor); } return tree function visitor(node, parents) { @@ -10915,28 +10836,33 @@ const findAndReplace = grandparent = parent; } if (grandparent) { - return handler(node, grandparent) + return handler(node, parents) } } - function handler(node, parent) { + function handler(node, parents) { + const parent = parents[parents.length - 1]; const find = pairs[pairIndex][0]; const replace = pairs[pairIndex][1]; let start = 0; - let index = parent.children.indexOf(node); + const index = parent.children.indexOf(node); let nodes = []; let position; find.lastIndex = 0; let match = find.exec(node.value); while (match) { position = match.index; - let value = replace(...match, { + const matchObject = { index: match.index, - input: match.input - }); + input: match.input, + stack: [...parents, node] + }; + let value = replace(...match, matchObject); if (typeof value === 'string') { value = value.length > 0 ? {type: 'text', value} : undefined; } - if (value !== false) { + if (value === false) { + position = undefined; + } else { if (start !== position) { nodes.push({ type: 'text', @@ -10957,14 +10883,13 @@ const findAndReplace = } if (position === undefined) { nodes = [node]; - index--; } else { if (start < node.value.length) { nodes.push({type: 'text', value: node.value.slice(start)}); } parent.children.splice(index, 1, ...nodes); } - return index + nodes.length + 1 + return index + nodes.length } } ); @@ -11751,6 +11676,80 @@ function location(file) { } } +function color$1(d) { + return '\u001B[33m' + d + '\u001B[39m' +} + +const CONTINUE = true; +const SKIP = 'skip'; +const EXIT = false; +const visitParents = + ( + function (tree, test, visitor, reverse) { + if (typeof test === 'function' && typeof visitor !== 'function') { + reverse = visitor; + visitor = test; + test = null; + } + var is = convert(test); + var step = reverse ? -1 : 1; + factory(tree, null, [])(); + function factory(node, index, parents) { + var value = typeof node === 'object' && node !== null ? node : {}; + var name; + if (typeof value.type === 'string') { + name = + typeof value.tagName === 'string' + ? value.tagName + : typeof value.name === 'string' + ? value.name + : undefined; + Object.defineProperty(visit, 'name', { + value: + 'node (' + + color$1(value.type + (name ? '<' + name + '>' : '')) + + ')' + }); + } + return visit + function visit() { + var result = []; + var subresult; + var offset; + var grandparents; + if (!test || is(node, index, parents[parents.length - 1] || null)) { + result = toResult(visitor(node, parents)); + if (result[0] === EXIT) { + return result + } + } + if (node.children && result[0] !== SKIP) { + offset = (reverse ? node.children.length : -1) + step; + grandparents = parents.concat(node); + while (offset > -1 && offset < node.children.length) { + subresult = factory(node.children[offset], offset, grandparents)(); + if (subresult[0] === EXIT) { + return subresult + } + offset = + typeof subresult[1] === 'number' ? subresult[1] : offset + step; + } + } + return result + } + } + } + ); +function toResult(value) { + if (Array.isArray(value)) { + return value + } + if (typeof value === 'number') { + return [CONTINUE, value] + } + return [value] +} + const visit = ( function (tree, test, visitor, reverse) { @@ -12202,334 +12201,337 @@ const remarkLintFinalNewline = lintRule( } } ); -var remarkLintFinalNewline$1 = remarkLintFinalNewline; + +function commonjsRequire(path) { + throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); +} var pluralize = {exports: {}}; (function (module, exports) { -(function (root, pluralize) { - if (typeof commonjsRequire === 'function' && 'object' === 'object' && 'object' === 'object') { - module.exports = pluralize(); - } else { - root.pluralize = pluralize(); - } -})(commonjsGlobal, function () { - var pluralRules = []; - var singularRules = []; - var uncountables = {}; - var irregularPlurals = {}; - var irregularSingles = {}; - function sanitizeRule (rule) { - if (typeof rule === 'string') { - return new RegExp('^' + rule + '$', 'i'); - } - return rule; - } - function restoreCase (word, token) { - if (word === token) return token; - if (word === word.toLowerCase()) return token.toLowerCase(); - if (word === word.toUpperCase()) return token.toUpperCase(); - if (word[0] === word[0].toUpperCase()) { - return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase(); - } - return token.toLowerCase(); - } - function interpolate (str, args) { - return str.replace(/\$(\d{1,2})/g, function (match, index) { - return args[index] || ''; - }); - } - function replace (word, rule) { - return word.replace(rule[0], function (match, index) { - var result = interpolate(rule[1], arguments); - if (match === '') { - return restoreCase(word[index - 1], result); - } - return restoreCase(match, result); - }); - } - function sanitizeWord (token, word, rules) { - if (!token.length || uncountables.hasOwnProperty(token)) { - return word; - } - var len = rules.length; - while (len--) { - var rule = rules[len]; - if (rule[0].test(word)) return replace(word, rule); - } - return word; - } - function replaceWord (replaceMap, keepMap, rules) { - return function (word) { - var token = word.toLowerCase(); - if (keepMap.hasOwnProperty(token)) { - return restoreCase(word, token); - } - if (replaceMap.hasOwnProperty(token)) { - return restoreCase(word, replaceMap[token]); - } - return sanitizeWord(token, word, rules); - }; - } - function checkWord (replaceMap, keepMap, rules, bool) { - return function (word) { - var token = word.toLowerCase(); - if (keepMap.hasOwnProperty(token)) return true; - if (replaceMap.hasOwnProperty(token)) return false; - return sanitizeWord(token, token, rules) === token; - }; - } - function pluralize (word, count, inclusive) { - var pluralized = count === 1 - ? pluralize.singular(word) : pluralize.plural(word); - return (inclusive ? count + ' ' : '') + pluralized; - } - pluralize.plural = replaceWord( - irregularSingles, irregularPlurals, pluralRules - ); - pluralize.isPlural = checkWord( - irregularSingles, irregularPlurals, pluralRules - ); - pluralize.singular = replaceWord( - irregularPlurals, irregularSingles, singularRules - ); - pluralize.isSingular = checkWord( - irregularPlurals, irregularSingles, singularRules - ); - pluralize.addPluralRule = function (rule, replacement) { - pluralRules.push([sanitizeRule(rule), replacement]); - }; - pluralize.addSingularRule = function (rule, replacement) { - singularRules.push([sanitizeRule(rule), replacement]); - }; - pluralize.addUncountableRule = function (word) { - if (typeof word === 'string') { - uncountables[word.toLowerCase()] = true; - return; - } - pluralize.addPluralRule(word, '$0'); - pluralize.addSingularRule(word, '$0'); - }; - pluralize.addIrregularRule = function (single, plural) { - plural = plural.toLowerCase(); - single = single.toLowerCase(); - irregularSingles[single] = plural; - irregularPlurals[plural] = single; - }; - [ - ['I', 'we'], - ['me', 'us'], - ['he', 'they'], - ['she', 'they'], - ['them', 'them'], - ['myself', 'ourselves'], - ['yourself', 'yourselves'], - ['itself', 'themselves'], - ['herself', 'themselves'], - ['himself', 'themselves'], - ['themself', 'themselves'], - ['is', 'are'], - ['was', 'were'], - ['has', 'have'], - ['this', 'these'], - ['that', 'those'], - ['echo', 'echoes'], - ['dingo', 'dingoes'], - ['volcano', 'volcanoes'], - ['tornado', 'tornadoes'], - ['torpedo', 'torpedoes'], - ['genus', 'genera'], - ['viscus', 'viscera'], - ['stigma', 'stigmata'], - ['stoma', 'stomata'], - ['dogma', 'dogmata'], - ['lemma', 'lemmata'], - ['schema', 'schemata'], - ['anathema', 'anathemata'], - ['ox', 'oxen'], - ['axe', 'axes'], - ['die', 'dice'], - ['yes', 'yeses'], - ['foot', 'feet'], - ['eave', 'eaves'], - ['goose', 'geese'], - ['tooth', 'teeth'], - ['quiz', 'quizzes'], - ['human', 'humans'], - ['proof', 'proofs'], - ['carve', 'carves'], - ['valve', 'valves'], - ['looey', 'looies'], - ['thief', 'thieves'], - ['groove', 'grooves'], - ['pickaxe', 'pickaxes'], - ['passerby', 'passersby'] - ].forEach(function (rule) { - return pluralize.addIrregularRule(rule[0], rule[1]); - }); - [ - [/s?$/i, 's'], - [/[^\u0000-\u007F]$/i, '$0'], - [/([^aeiou]ese)$/i, '$1'], - [/(ax|test)is$/i, '$1es'], - [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'], - [/(e[mn]u)s?$/i, '$1s'], - [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'], - [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'], - [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'], - [/(seraph|cherub)(?:im)?$/i, '$1im'], - [/(her|at|gr)o$/i, '$1oes'], - [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'], - [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'], - [/sis$/i, 'ses'], - [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'], - [/([^aeiouy]|qu)y$/i, '$1ies'], - [/([^ch][ieo][ln])ey$/i, '$1ies'], - [/(x|ch|ss|sh|zz)$/i, '$1es'], - [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'], - [/\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'], - [/(pe)(?:rson|ople)$/i, '$1ople'], - [/(child)(?:ren)?$/i, '$1ren'], - [/eaux$/i, '$0'], - [/m[ae]n$/i, 'men'], - ['thou', 'you'] - ].forEach(function (rule) { - return pluralize.addPluralRule(rule[0], rule[1]); - }); - [ - [/s$/i, ''], - [/(ss)$/i, '$1'], - [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i, '$1fe'], - [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'], - [/ies$/i, 'y'], - [/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, '$1ie'], - [/\b(mon|smil)ies$/i, '$1ey'], - [/\b((?:tit)?m|l)ice$/i, '$1ouse'], - [/(seraph|cherub)im$/i, '$1'], - [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'], - [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'], - [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'], - [/(test)(?:is|es)$/i, '$1is'], - [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'], - [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'], - [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'], - [/(alumn|alg|vertebr)ae$/i, '$1a'], - [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'], - [/(matr|append)ices$/i, '$1ix'], - [/(pe)(rson|ople)$/i, '$1rson'], - [/(child)ren$/i, '$1'], - [/(eau)x?$/i, '$1'], - [/men$/i, 'man'] - ].forEach(function (rule) { - return pluralize.addSingularRule(rule[0], rule[1]); - }); - [ - 'adulthood', - 'advice', - 'agenda', - 'aid', - 'aircraft', - 'alcohol', - 'ammo', - 'analytics', - 'anime', - 'athletics', - 'audio', - 'bison', - 'blood', - 'bream', - 'buffalo', - 'butter', - 'carp', - 'cash', - 'chassis', - 'chess', - 'clothing', - 'cod', - 'commerce', - 'cooperation', - 'corps', - 'debris', - 'diabetes', - 'digestion', - 'elk', - 'energy', - 'equipment', - 'excretion', - 'expertise', - 'firmware', - 'flounder', - 'fun', - 'gallows', - 'garbage', - 'graffiti', - 'hardware', - 'headquarters', - 'health', - 'herpes', - 'highjinks', - 'homework', - 'housework', - 'information', - 'jeans', - 'justice', - 'kudos', - 'labour', - 'literature', - 'machinery', - 'mackerel', - 'mail', - 'media', - 'mews', - 'moose', - 'music', - 'mud', - 'manga', - 'news', - 'only', - 'personnel', - 'pike', - 'plankton', - 'pliers', - 'police', - 'pollution', - 'premises', - 'rain', - 'research', - 'rice', - 'salmon', - 'scissors', - 'series', - 'sewage', - 'shambles', - 'shrimp', - 'software', - 'species', - 'staff', - 'swine', - 'tennis', - 'traffic', - 'transportation', - 'trout', - 'tuna', - 'wealth', - 'welfare', - 'whiting', - 'wildebeest', - 'wildlife', - 'you', - /pok[eé]mon$/i, - /[^aeiou]ese$/i, - /deer$/i, - /fish$/i, - /measles$/i, - /o[iu]s$/i, - /pox$/i, - /sheep$/i - ].forEach(pluralize.addUncountableRule); - return pluralize; -}); -}(pluralize)); + (function (root, pluralize) { + if (typeof commonjsRequire === 'function' && 'object' === 'object' && 'object' === 'object') { + module.exports = pluralize(); + } else { + root.pluralize = pluralize(); + } + })(commonjsGlobal, function () { + var pluralRules = []; + var singularRules = []; + var uncountables = {}; + var irregularPlurals = {}; + var irregularSingles = {}; + function sanitizeRule (rule) { + if (typeof rule === 'string') { + return new RegExp('^' + rule + '$', 'i'); + } + return rule; + } + function restoreCase (word, token) { + if (word === token) return token; + if (word === word.toLowerCase()) return token.toLowerCase(); + if (word === word.toUpperCase()) return token.toUpperCase(); + if (word[0] === word[0].toUpperCase()) { + return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase(); + } + return token.toLowerCase(); + } + function interpolate (str, args) { + return str.replace(/\$(\d{1,2})/g, function (match, index) { + return args[index] || ''; + }); + } + function replace (word, rule) { + return word.replace(rule[0], function (match, index) { + var result = interpolate(rule[1], arguments); + if (match === '') { + return restoreCase(word[index - 1], result); + } + return restoreCase(match, result); + }); + } + function sanitizeWord (token, word, rules) { + if (!token.length || uncountables.hasOwnProperty(token)) { + return word; + } + var len = rules.length; + while (len--) { + var rule = rules[len]; + if (rule[0].test(word)) return replace(word, rule); + } + return word; + } + function replaceWord (replaceMap, keepMap, rules) { + return function (word) { + var token = word.toLowerCase(); + if (keepMap.hasOwnProperty(token)) { + return restoreCase(word, token); + } + if (replaceMap.hasOwnProperty(token)) { + return restoreCase(word, replaceMap[token]); + } + return sanitizeWord(token, word, rules); + }; + } + function checkWord (replaceMap, keepMap, rules, bool) { + return function (word) { + var token = word.toLowerCase(); + if (keepMap.hasOwnProperty(token)) return true; + if (replaceMap.hasOwnProperty(token)) return false; + return sanitizeWord(token, token, rules) === token; + }; + } + function pluralize (word, count, inclusive) { + var pluralized = count === 1 + ? pluralize.singular(word) : pluralize.plural(word); + return (inclusive ? count + ' ' : '') + pluralized; + } + pluralize.plural = replaceWord( + irregularSingles, irregularPlurals, pluralRules + ); + pluralize.isPlural = checkWord( + irregularSingles, irregularPlurals, pluralRules + ); + pluralize.singular = replaceWord( + irregularPlurals, irregularSingles, singularRules + ); + pluralize.isSingular = checkWord( + irregularPlurals, irregularSingles, singularRules + ); + pluralize.addPluralRule = function (rule, replacement) { + pluralRules.push([sanitizeRule(rule), replacement]); + }; + pluralize.addSingularRule = function (rule, replacement) { + singularRules.push([sanitizeRule(rule), replacement]); + }; + pluralize.addUncountableRule = function (word) { + if (typeof word === 'string') { + uncountables[word.toLowerCase()] = true; + return; + } + pluralize.addPluralRule(word, '$0'); + pluralize.addSingularRule(word, '$0'); + }; + pluralize.addIrregularRule = function (single, plural) { + plural = plural.toLowerCase(); + single = single.toLowerCase(); + irregularSingles[single] = plural; + irregularPlurals[plural] = single; + }; + [ + ['I', 'we'], + ['me', 'us'], + ['he', 'they'], + ['she', 'they'], + ['them', 'them'], + ['myself', 'ourselves'], + ['yourself', 'yourselves'], + ['itself', 'themselves'], + ['herself', 'themselves'], + ['himself', 'themselves'], + ['themself', 'themselves'], + ['is', 'are'], + ['was', 'were'], + ['has', 'have'], + ['this', 'these'], + ['that', 'those'], + ['echo', 'echoes'], + ['dingo', 'dingoes'], + ['volcano', 'volcanoes'], + ['tornado', 'tornadoes'], + ['torpedo', 'torpedoes'], + ['genus', 'genera'], + ['viscus', 'viscera'], + ['stigma', 'stigmata'], + ['stoma', 'stomata'], + ['dogma', 'dogmata'], + ['lemma', 'lemmata'], + ['schema', 'schemata'], + ['anathema', 'anathemata'], + ['ox', 'oxen'], + ['axe', 'axes'], + ['die', 'dice'], + ['yes', 'yeses'], + ['foot', 'feet'], + ['eave', 'eaves'], + ['goose', 'geese'], + ['tooth', 'teeth'], + ['quiz', 'quizzes'], + ['human', 'humans'], + ['proof', 'proofs'], + ['carve', 'carves'], + ['valve', 'valves'], + ['looey', 'looies'], + ['thief', 'thieves'], + ['groove', 'grooves'], + ['pickaxe', 'pickaxes'], + ['passerby', 'passersby'] + ].forEach(function (rule) { + return pluralize.addIrregularRule(rule[0], rule[1]); + }); + [ + [/s?$/i, 's'], + [/[^\u0000-\u007F]$/i, '$0'], + [/([^aeiou]ese)$/i, '$1'], + [/(ax|test)is$/i, '$1es'], + [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'], + [/(e[mn]u)s?$/i, '$1s'], + [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'], + [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'], + [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'], + [/(seraph|cherub)(?:im)?$/i, '$1im'], + [/(her|at|gr)o$/i, '$1oes'], + [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'], + [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'], + [/sis$/i, 'ses'], + [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'], + [/([^aeiouy]|qu)y$/i, '$1ies'], + [/([^ch][ieo][ln])ey$/i, '$1ies'], + [/(x|ch|ss|sh|zz)$/i, '$1es'], + [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'], + [/\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'], + [/(pe)(?:rson|ople)$/i, '$1ople'], + [/(child)(?:ren)?$/i, '$1ren'], + [/eaux$/i, '$0'], + [/m[ae]n$/i, 'men'], + ['thou', 'you'] + ].forEach(function (rule) { + return pluralize.addPluralRule(rule[0], rule[1]); + }); + [ + [/s$/i, ''], + [/(ss)$/i, '$1'], + [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i, '$1fe'], + [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'], + [/ies$/i, 'y'], + [/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, '$1ie'], + [/\b(mon|smil)ies$/i, '$1ey'], + [/\b((?:tit)?m|l)ice$/i, '$1ouse'], + [/(seraph|cherub)im$/i, '$1'], + [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'], + [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'], + [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'], + [/(test)(?:is|es)$/i, '$1is'], + [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'], + [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'], + [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'], + [/(alumn|alg|vertebr)ae$/i, '$1a'], + [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'], + [/(matr|append)ices$/i, '$1ix'], + [/(pe)(rson|ople)$/i, '$1rson'], + [/(child)ren$/i, '$1'], + [/(eau)x?$/i, '$1'], + [/men$/i, 'man'] + ].forEach(function (rule) { + return pluralize.addSingularRule(rule[0], rule[1]); + }); + [ + 'adulthood', + 'advice', + 'agenda', + 'aid', + 'aircraft', + 'alcohol', + 'ammo', + 'analytics', + 'anime', + 'athletics', + 'audio', + 'bison', + 'blood', + 'bream', + 'buffalo', + 'butter', + 'carp', + 'cash', + 'chassis', + 'chess', + 'clothing', + 'cod', + 'commerce', + 'cooperation', + 'corps', + 'debris', + 'diabetes', + 'digestion', + 'elk', + 'energy', + 'equipment', + 'excretion', + 'expertise', + 'firmware', + 'flounder', + 'fun', + 'gallows', + 'garbage', + 'graffiti', + 'hardware', + 'headquarters', + 'health', + 'herpes', + 'highjinks', + 'homework', + 'housework', + 'information', + 'jeans', + 'justice', + 'kudos', + 'labour', + 'literature', + 'machinery', + 'mackerel', + 'mail', + 'media', + 'mews', + 'moose', + 'music', + 'mud', + 'manga', + 'news', + 'only', + 'personnel', + 'pike', + 'plankton', + 'pliers', + 'police', + 'pollution', + 'premises', + 'rain', + 'research', + 'rice', + 'salmon', + 'scissors', + 'series', + 'sewage', + 'shambles', + 'shrimp', + 'software', + 'species', + 'staff', + 'swine', + 'tennis', + 'traffic', + 'transportation', + 'trout', + 'tuna', + 'wealth', + 'welfare', + 'whiting', + 'wildebeest', + 'wildlife', + 'you', + /pok[eé]mon$/i, + /[^aeiou]ese$/i, + /deer$/i, + /fish$/i, + /measles$/i, + /o[iu]s$/i, + /pox$/i, + /sheep$/i + ].forEach(pluralize.addUncountableRule); + return pluralize; + }); +} (pluralize)); var plural = pluralize.exports; /** @@ -12625,7 +12627,6 @@ const remarkLintListItemBulletIndent = lintRule( }); } ); -var remarkLintListItemBulletIndent$1 = remarkLintListItemBulletIndent; const pointStart = point('start'); const pointEnd = point('end'); @@ -12852,7 +12853,6 @@ const remarkLintListItemIndent = lintRule( }); } ); -var remarkLintListItemIndent$1 = remarkLintListItemIndent; /** * ## When should I use this? @@ -12949,7 +12949,6 @@ const remarkLintNoBlockquoteWithoutMarker = lintRule( }); } ); -var remarkLintNoBlockquoteWithoutMarker$1 = remarkLintNoBlockquoteWithoutMarker; /** * ## When should I use this? @@ -13013,7 +13012,6 @@ const remarkLintNoLiteralUrls = lintRule( }); } ); -var remarkLintNoLiteralUrls$1 = remarkLintNoLiteralUrls; /** * ## When should I use this? @@ -13134,7 +13132,6 @@ const remarkLintOrderedListMarkerStyle = lintRule( }); } ); -var remarkLintOrderedListMarkerStyle$1 = remarkLintOrderedListMarkerStyle; /** * ## When should I use this? @@ -13196,7 +13193,6 @@ const remarkLintHardBreakSpaces = lintRule( }); } ); -var remarkLintHardBreakSpaces$1 = remarkLintHardBreakSpaces; /** * ## When should I use this? @@ -13261,7 +13257,6 @@ const remarkLintNoDuplicateDefinitions = lintRule( }); } ); -var remarkLintNoDuplicateDefinitions$1 = remarkLintNoDuplicateDefinitions; function headingStyle(node, relative) { var last = node.children[node.children.length - 1]; @@ -13400,7 +13395,6 @@ const remarkLintNoHeadingContentIndent = lintRule( }); } ); -var remarkLintNoHeadingContentIndent$1 = remarkLintNoHeadingContentIndent; /** * ## When should I use this? @@ -13454,7 +13448,6 @@ const remarkLintNoInlinePadding = lintRule( }); } ); -var remarkLintNoInlinePadding$1 = remarkLintNoInlinePadding; /** * ## When should I use this? @@ -13512,7 +13505,6 @@ const remarkLintNoShortcutReferenceImage = lintRule( }); } ); -var remarkLintNoShortcutReferenceImage$1 = remarkLintNoShortcutReferenceImage; /** * ## When should I use this? @@ -13570,7 +13562,6 @@ const remarkLintNoShortcutReferenceLink = lintRule( }); } ); -var remarkLintNoShortcutReferenceLink$1 = remarkLintNoShortcutReferenceLink; /** * ## When should I use this? @@ -13807,7 +13798,6 @@ const remarkLintNoUndefinedReferences = lintRule( } } ); -var remarkLintNoUndefinedReferences$1 = remarkLintNoUndefinedReferences; /** * ## When should I use this? @@ -13884,28 +13874,26 @@ const remarkLintNoUnusedDefinitions = lintRule( } } ); -var remarkLintNoUnusedDefinitions$1 = remarkLintNoUnusedDefinitions; const remarkPresetLintRecommended = { plugins: [ remarkLint, - remarkLintFinalNewline$1, - remarkLintListItemBulletIndent$1, - [remarkLintListItemIndent$1, 'tab-size'], - remarkLintNoBlockquoteWithoutMarker$1, - remarkLintNoLiteralUrls$1, - [remarkLintOrderedListMarkerStyle$1, '.'], - remarkLintHardBreakSpaces$1, - remarkLintNoDuplicateDefinitions$1, - remarkLintNoHeadingContentIndent$1, - remarkLintNoInlinePadding$1, - remarkLintNoShortcutReferenceImage$1, - remarkLintNoShortcutReferenceLink$1, - remarkLintNoUndefinedReferences$1, - remarkLintNoUnusedDefinitions$1 + remarkLintFinalNewline, + remarkLintListItemBulletIndent, + [remarkLintListItemIndent, 'tab-size'], + remarkLintNoBlockquoteWithoutMarker, + remarkLintNoLiteralUrls, + [remarkLintOrderedListMarkerStyle, '.'], + remarkLintHardBreakSpaces, + remarkLintNoDuplicateDefinitions, + remarkLintNoHeadingContentIndent, + remarkLintNoInlinePadding, + remarkLintNoShortcutReferenceImage, + remarkLintNoShortcutReferenceLink, + remarkLintNoUndefinedReferences, + remarkLintNoUnusedDefinitions ] }; -var remarkPresetLintRecommended$1 = remarkPresetLintRecommended; /** * ## When should I use this? @@ -14016,7 +14004,6 @@ const remarkLintBlockquoteIndentation = lintRule( }); } ); -var remarkLintBlockquoteIndentation$1 = remarkLintBlockquoteIndentation; function check$1(node) { return pointStart(node.children[0]).column - pointStart(node).column } @@ -14171,7 +14158,6 @@ const remarkLintCheckboxCharacterStyle = lintRule( }); } ); -var remarkLintCheckboxCharacterStyle$1 = remarkLintCheckboxCharacterStyle; /** * ## When should I use this? @@ -14269,7 +14255,6 @@ const remarkLintCheckboxContentIndent = lintRule( }); } ); -var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; /** * @author Titus Wormer @@ -14409,7 +14394,6 @@ const remarkLintCodeBlockStyle = lintRule( }); } ); -var remarkLintCodeBlockStyle$1 = remarkLintCodeBlockStyle; /** * ## When should I use this? @@ -14476,7 +14460,6 @@ const remarkLintDefinitionSpacing = lintRule( }); } ); -var remarkLintDefinitionSpacing$1 = remarkLintDefinitionSpacing; /** * ## When should I use this? @@ -14613,7 +14596,6 @@ const remarkLintFencedCodeFlag = lintRule( }); } ); -var remarkLintFencedCodeFlag$1 = remarkLintFencedCodeFlag; /** * ## When should I use this? @@ -14753,7 +14735,6 @@ const remarkLintFencedCodeMarker = lintRule( }); } ); -var remarkLintFencedCodeMarker$1 = remarkLintFencedCodeMarker; /** * ## When should I use this? @@ -14809,7 +14790,6 @@ const remarkLintFileExtension = lintRule( } } ); -var remarkLintFileExtension$1 = remarkLintFileExtension; /** * ## When should I use this? @@ -14901,7 +14881,6 @@ const remarkLintFinalDefinition = lintRule( ); } ); -var remarkLintFinalDefinition$1 = remarkLintFinalDefinition; /** * ## When should I use this? @@ -15035,7 +15014,6 @@ const remarkLintFirstHeadingLevel = lintRule( }); } ); -var remarkLintFirstHeadingLevel$1 = remarkLintFirstHeadingLevel; function infer(node) { const results = node.value.match(re$3); return results ? Number(results[1]) : undefined @@ -15183,7 +15161,6 @@ const remarkLintHeadingStyle = lintRule( }); } ); -var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; /** * ## When should I use this? @@ -15364,7 +15341,6 @@ const remarkLintMaximumLineLength = lintRule( } } ); -var remarkLintMaximumLineLength$1 = remarkLintMaximumLineLength; /** * ## When should I use this? @@ -15469,7 +15445,6 @@ const remarkLintNoConsecutiveBlankLines = lintRule( } } ); -var remarkLintNoConsecutiveBlankLines$1 = remarkLintNoConsecutiveBlankLines; /** * ## When should I use this? @@ -15522,7 +15497,6 @@ const remarkLintNoFileNameArticles = lintRule( } } ); -var remarkLintNoFileNameArticles$1 = remarkLintNoFileNameArticles; /** * ## When should I use this? @@ -15559,7 +15533,6 @@ const remarkLintNoFileNameConsecutiveDashes = lintRule( } } ); -var remarkLintNoFileNameConsecutiveDashes$1 = remarkLintNoFileNameConsecutiveDashes; /** * ## When should I use this? @@ -15601,7 +15574,6 @@ const remarkLintNofileNameOuterDashes = lintRule( } } ); -var remarkLintNofileNameOuterDashes$1 = remarkLintNofileNameOuterDashes; /** * ## When should I use this? @@ -15698,7 +15670,6 @@ const remarkLintNoHeadingIndent = lintRule( }); } ); -var remarkLintNoHeadingIndent$1 = remarkLintNoHeadingIndent; /** * ## When should I use this? @@ -15764,7 +15735,6 @@ const remarkLintNoMultipleToplevelHeadings = lintRule( }); } ); -var remarkLintNoMultipleToplevelHeadings$1 = remarkLintNoMultipleToplevelHeadings; /** * ## When should I use this? @@ -15875,7 +15845,6 @@ const remarkLintNoShellDollars = lintRule( }); } ); -var remarkLintNoShellDollars$1 = remarkLintNoShellDollars; /** * ## When should I use this? @@ -16000,7 +15969,6 @@ const remarkLintNoTableIndentation = lintRule( }); } ); -var remarkLintNoTableIndentation$1 = remarkLintNoTableIndentation; /** * ## When should I use this? @@ -16109,7 +16077,6 @@ const remarkLintNoTabs = lintRule( } } ); -var remarkLintNoTabs$1 = remarkLintNoTabs; var sliced$1 = function (args, slice, sliceEnd) { var ret = []; @@ -19297,13 +19264,13 @@ var jsYaml = { const SEMVER_SPEC_VERSION = '2.0.0'; const MAX_LENGTH$2 = 256; const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || - 9007199254740991; + 9007199254740991; const MAX_SAFE_COMPONENT_LENGTH = 16; var constants = { SEMVER_SPEC_VERSION, MAX_LENGTH: MAX_LENGTH$2, MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1, - MAX_SAFE_COMPONENT_LENGTH + MAX_SAFE_COMPONENT_LENGTH, }; var re$2 = {exports: {}}; @@ -19318,106 +19285,106 @@ const debug$1 = ( var debug_1 = debug$1; (function (module, exports) { -const { MAX_SAFE_COMPONENT_LENGTH } = constants; -const debug = debug_1; -exports = module.exports = {}; -const re = exports.re = []; -const src = exports.src = []; -const t = exports.t = {}; -let R = 0; -const createToken = (name, value, isGlobal) => { - const index = R++; - debug(index, value); - t[name] = index; - src[index] = value; - re[index] = new RegExp(value, isGlobal ? 'g' : undefined); -}; -createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); -createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); -createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); -createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + - `(${src[t.NUMERICIDENTIFIER]})\\.` + - `(${src[t.NUMERICIDENTIFIER]})`); -createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + - `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + - `(${src[t.NUMERICIDENTIFIERLOOSE]})`); -createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] -}|${src[t.NONNUMERICIDENTIFIER]})`); -createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] -}|${src[t.NONNUMERICIDENTIFIER]})`); -createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] -}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); -createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] -}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); -createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); -createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] -}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); -createToken('FULLPLAIN', `v?${src[t.MAINVERSION] -}${src[t.PRERELEASE]}?${ - src[t.BUILD]}?`); -createToken('FULL', `^${src[t.FULLPLAIN]}$`); -createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] -}${src[t.PRERELEASELOOSE]}?${ - src[t.BUILD]}?`); -createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); -createToken('GTLT', '((?:<|>)?=?)'); -createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); -createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); -createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + - `(?:${src[t.PRERELEASE]})?${ - src[t.BUILD]}?` + - `)?)?`); -createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:${src[t.PRERELEASELOOSE]})?${ - src[t.BUILD]}?` + - `)?)?`); -createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); -createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); -createToken('COERCE', `${'(^|[^\\d])' + - '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:$|[^\\d])`); -createToken('COERCERTL', src[t.COERCE], true); -createToken('LONETILDE', '(?:~>?)'); -createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); -exports.tildeTrimReplace = '$1~'; -createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); -createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); -createToken('LONECARET', '(?:\\^)'); -createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); -exports.caretTrimReplace = '$1^'; -createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); -createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); -createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); -createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); -createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] -}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); -exports.comparatorTrimReplace = '$1$2$3'; -createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + - `\\s+-\\s+` + - `(${src[t.XRANGEPLAIN]})` + - `\\s*$`); -createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + - `\\s+-\\s+` + - `(${src[t.XRANGEPLAINLOOSE]})` + - `\\s*$`); -createToken('STAR', '(<|>)?=?\\s*\\*'); -createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$'); -createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$'); -}(re$2, re$2.exports)); + const { MAX_SAFE_COMPONENT_LENGTH } = constants; + const debug = debug_1; + exports = module.exports = {}; + const re = exports.re = []; + const src = exports.src = []; + const t = exports.t = {}; + let R = 0; + const createToken = (name, value, isGlobal) => { + const index = R++; + debug(name, index, value); + t[name] = index; + src[index] = value; + re[index] = new RegExp(value, isGlobal ? 'g' : undefined); + }; + createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); + createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); + createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); + createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`); + createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); + createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] + }|${src[t.NONNUMERICIDENTIFIER]})`); + createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] + }|${src[t.NONNUMERICIDENTIFIER]})`); + createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] + }(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] + }(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); + createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] + }(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + createToken('FULLPLAIN', `v?${src[t.MAINVERSION] + }${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`); + createToken('FULL', `^${src[t.FULLPLAIN]}$`); + createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] + }${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`); + createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); + createToken('GTLT', '((?:<|>)?=?)'); + createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`); + createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`); + createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); + createToken('COERCE', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:$|[^\\d])`); + createToken('COERCERTL', src[t.COERCE], true); + createToken('LONETILDE', '(?:~>?)'); + createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); + exports.tildeTrimReplace = '$1~'; + createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken('LONECARET', '(?:\\^)'); + createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); + exports.caretTrimReplace = '$1^'; + createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] + }\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); + exports.comparatorTrimReplace = '$1$2$3'; + createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`); + createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`); + createToken('STAR', '(<|>)?=?\\s*\\*'); + createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$'); + createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$'); +} (re$2, re$2.exports)); const opts = ['includePrerelease', 'loose', 'rtl']; const parseOptions$2 = options => !options ? {} : typeof options !== 'object' ? { loose: true } - : opts.filter(k => options[k]).reduce((options, k) => { - options[k] = true; - return options + : opts.filter(k => options[k]).reduce((o, k) => { + o[k] = true; + return o }, {}); var parseOptions_1 = parseOptions$2; @@ -19438,7 +19405,7 @@ const compareIdentifiers$1 = (a, b) => { const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); var identifiers = { compareIdentifiers: compareIdentifiers$1, - rcompareIdentifiers + rcompareIdentifiers, }; const debug = debug_1; @@ -19652,7 +19619,7 @@ class SemVer$2 { } } if (identifier) { - if (this.prerelease[0] === identifier) { + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { if (isNaN(this.prerelease[1])) { this.prerelease = [identifier, 0]; } @@ -19671,7 +19638,7 @@ class SemVer$2 { } var semver = SemVer$2; -const {MAX_LENGTH} = constants; +const { MAX_LENGTH } = constants; const { re, t } = re$2.exports; const SemVer$1 = semver; const parseOptions = parseOptions_1; @@ -20086,7 +20053,6 @@ const remarkLintRuleStyle = lintRule( }); } ); -var remarkLintRuleStyle$1 = remarkLintRuleStyle; /** * ## When should I use this? @@ -20191,7 +20157,6 @@ const remarkLintStrongMarker = lintRule( }); } ); -var remarkLintStrongMarker$1 = remarkLintStrongMarker; /** * ## When should I use this? @@ -20495,7 +20460,6 @@ const remarkLintTableCellPadding = lintRule( } } ); -var remarkLintTableCellPadding$1 = remarkLintTableCellPadding; function size$1(node) { const head = pointStart(node.children[0]).offset; const tail = pointEnd(node.children[node.children.length - 1]).offset; @@ -20584,7 +20548,6 @@ const remarkLintTablePipes = lintRule( }); } ); -var remarkLintTablePipes$1 = remarkLintTablePipes; /** * ## When should I use this? @@ -20714,18 +20677,17 @@ const remarkLintUnorderedListMarkerStyle = lintRule( }); } ); -var remarkLintUnorderedListMarkerStyle$1 = remarkLintUnorderedListMarkerStyle; const plugins = [ remarkGfm, - remarkPresetLintRecommended$1, - [remarkLintBlockquoteIndentation$1, 2], - [remarkLintCheckboxCharacterStyle$1, { checked: "x", unchecked: " " }], - remarkLintCheckboxContentIndent$1, - [remarkLintCodeBlockStyle$1, "fenced"], - remarkLintDefinitionSpacing$1, + remarkPresetLintRecommended, + [remarkLintBlockquoteIndentation, 2], + [remarkLintCheckboxCharacterStyle, { checked: "x", unchecked: " " }], + remarkLintCheckboxContentIndent, + [remarkLintCodeBlockStyle, "fenced"], + remarkLintDefinitionSpacing, [ - remarkLintFencedCodeFlag$1, + remarkLintFencedCodeFlag, { flags: [ "bash", @@ -20747,22 +20709,22 @@ const plugins = [ ], }, ], - [remarkLintFencedCodeMarker$1, "`"], - [remarkLintFileExtension$1, "md"], - remarkLintFinalDefinition$1, - [remarkLintFirstHeadingLevel$1, 1], - [remarkLintHeadingStyle$1, "atx"], - [remarkLintListItemIndent$1, "space"], - remarkLintMaximumLineLength$1, - remarkLintNoConsecutiveBlankLines$1, - remarkLintNoFileNameArticles$1, - remarkLintNoFileNameConsecutiveDashes$1, - remarkLintNofileNameOuterDashes$1, - remarkLintNoHeadingIndent$1, - remarkLintNoMultipleToplevelHeadings$1, - remarkLintNoShellDollars$1, - remarkLintNoTableIndentation$1, - remarkLintNoTabs$1, + [remarkLintFencedCodeMarker, "`"], + [remarkLintFileExtension, "md"], + remarkLintFinalDefinition, + [remarkLintFirstHeadingLevel, 1], + [remarkLintHeadingStyle, "atx"], + [remarkLintListItemIndent, "space"], + remarkLintMaximumLineLength, + remarkLintNoConsecutiveBlankLines, + remarkLintNoFileNameArticles, + remarkLintNoFileNameConsecutiveDashes, + remarkLintNofileNameOuterDashes, + remarkLintNoHeadingIndent, + remarkLintNoMultipleToplevelHeadings, + remarkLintNoShellDollars, + remarkLintNoTableIndentation, + remarkLintNoTabs, remarkLintNoTrailingSpaces, remarkLintNodejsLinks, remarkLintNodejsYamlComments, @@ -20786,11 +20748,11 @@ const plugins = [ { yes: "V8" }, ], ], - remarkLintRuleStyle$1, - [remarkLintStrongMarker$1, "*"], - [remarkLintTableCellPadding$1, "padded"], - remarkLintTablePipes$1, - [remarkLintUnorderedListMarkerStyle$1, "*"], + remarkLintRuleStyle, + [remarkLintStrongMarker, "*"], + [remarkLintTableCellPadding, "padded"], + remarkLintTablePipes, + [remarkLintUnorderedListMarkerStyle, "*"], ]; const settings = { emphasis: "_", @@ -20915,307 +20877,307 @@ function stripAnsi(string) { var eastasianwidth = {exports: {}}; (function (module) { -var eaw = {}; -{ - module.exports = eaw; -} -eaw.eastAsianWidth = function(character) { - var x = character.charCodeAt(0); - var y = (character.length == 2) ? character.charCodeAt(1) : 0; - var codePoint = x; - if ((0xD800 <= x && x <= 0xDBFF) && (0xDC00 <= y && y <= 0xDFFF)) { - x &= 0x3FF; - y &= 0x3FF; - codePoint = (x << 10) | y; - codePoint += 0x10000; - } - if ((0x3000 == codePoint) || - (0xFF01 <= codePoint && codePoint <= 0xFF60) || - (0xFFE0 <= codePoint && codePoint <= 0xFFE6)) { - return 'F'; - } - if ((0x20A9 == codePoint) || - (0xFF61 <= codePoint && codePoint <= 0xFFBE) || - (0xFFC2 <= codePoint && codePoint <= 0xFFC7) || - (0xFFCA <= codePoint && codePoint <= 0xFFCF) || - (0xFFD2 <= codePoint && codePoint <= 0xFFD7) || - (0xFFDA <= codePoint && codePoint <= 0xFFDC) || - (0xFFE8 <= codePoint && codePoint <= 0xFFEE)) { - return 'H'; - } - if ((0x1100 <= codePoint && codePoint <= 0x115F) || - (0x11A3 <= codePoint && codePoint <= 0x11A7) || - (0x11FA <= codePoint && codePoint <= 0x11FF) || - (0x2329 <= codePoint && codePoint <= 0x232A) || - (0x2E80 <= codePoint && codePoint <= 0x2E99) || - (0x2E9B <= codePoint && codePoint <= 0x2EF3) || - (0x2F00 <= codePoint && codePoint <= 0x2FD5) || - (0x2FF0 <= codePoint && codePoint <= 0x2FFB) || - (0x3001 <= codePoint && codePoint <= 0x303E) || - (0x3041 <= codePoint && codePoint <= 0x3096) || - (0x3099 <= codePoint && codePoint <= 0x30FF) || - (0x3105 <= codePoint && codePoint <= 0x312D) || - (0x3131 <= codePoint && codePoint <= 0x318E) || - (0x3190 <= codePoint && codePoint <= 0x31BA) || - (0x31C0 <= codePoint && codePoint <= 0x31E3) || - (0x31F0 <= codePoint && codePoint <= 0x321E) || - (0x3220 <= codePoint && codePoint <= 0x3247) || - (0x3250 <= codePoint && codePoint <= 0x32FE) || - (0x3300 <= codePoint && codePoint <= 0x4DBF) || - (0x4E00 <= codePoint && codePoint <= 0xA48C) || - (0xA490 <= codePoint && codePoint <= 0xA4C6) || - (0xA960 <= codePoint && codePoint <= 0xA97C) || - (0xAC00 <= codePoint && codePoint <= 0xD7A3) || - (0xD7B0 <= codePoint && codePoint <= 0xD7C6) || - (0xD7CB <= codePoint && codePoint <= 0xD7FB) || - (0xF900 <= codePoint && codePoint <= 0xFAFF) || - (0xFE10 <= codePoint && codePoint <= 0xFE19) || - (0xFE30 <= codePoint && codePoint <= 0xFE52) || - (0xFE54 <= codePoint && codePoint <= 0xFE66) || - (0xFE68 <= codePoint && codePoint <= 0xFE6B) || - (0x1B000 <= codePoint && codePoint <= 0x1B001) || - (0x1F200 <= codePoint && codePoint <= 0x1F202) || - (0x1F210 <= codePoint && codePoint <= 0x1F23A) || - (0x1F240 <= codePoint && codePoint <= 0x1F248) || - (0x1F250 <= codePoint && codePoint <= 0x1F251) || - (0x20000 <= codePoint && codePoint <= 0x2F73F) || - (0x2B740 <= codePoint && codePoint <= 0x2FFFD) || - (0x30000 <= codePoint && codePoint <= 0x3FFFD)) { - return 'W'; - } - if ((0x0020 <= codePoint && codePoint <= 0x007E) || - (0x00A2 <= codePoint && codePoint <= 0x00A3) || - (0x00A5 <= codePoint && codePoint <= 0x00A6) || - (0x00AC == codePoint) || - (0x00AF == codePoint) || - (0x27E6 <= codePoint && codePoint <= 0x27ED) || - (0x2985 <= codePoint && codePoint <= 0x2986)) { - return 'Na'; - } - if ((0x00A1 == codePoint) || - (0x00A4 == codePoint) || - (0x00A7 <= codePoint && codePoint <= 0x00A8) || - (0x00AA == codePoint) || - (0x00AD <= codePoint && codePoint <= 0x00AE) || - (0x00B0 <= codePoint && codePoint <= 0x00B4) || - (0x00B6 <= codePoint && codePoint <= 0x00BA) || - (0x00BC <= codePoint && codePoint <= 0x00BF) || - (0x00C6 == codePoint) || - (0x00D0 == codePoint) || - (0x00D7 <= codePoint && codePoint <= 0x00D8) || - (0x00DE <= codePoint && codePoint <= 0x00E1) || - (0x00E6 == codePoint) || - (0x00E8 <= codePoint && codePoint <= 0x00EA) || - (0x00EC <= codePoint && codePoint <= 0x00ED) || - (0x00F0 == codePoint) || - (0x00F2 <= codePoint && codePoint <= 0x00F3) || - (0x00F7 <= codePoint && codePoint <= 0x00FA) || - (0x00FC == codePoint) || - (0x00FE == codePoint) || - (0x0101 == codePoint) || - (0x0111 == codePoint) || - (0x0113 == codePoint) || - (0x011B == codePoint) || - (0x0126 <= codePoint && codePoint <= 0x0127) || - (0x012B == codePoint) || - (0x0131 <= codePoint && codePoint <= 0x0133) || - (0x0138 == codePoint) || - (0x013F <= codePoint && codePoint <= 0x0142) || - (0x0144 == codePoint) || - (0x0148 <= codePoint && codePoint <= 0x014B) || - (0x014D == codePoint) || - (0x0152 <= codePoint && codePoint <= 0x0153) || - (0x0166 <= codePoint && codePoint <= 0x0167) || - (0x016B == codePoint) || - (0x01CE == codePoint) || - (0x01D0 == codePoint) || - (0x01D2 == codePoint) || - (0x01D4 == codePoint) || - (0x01D6 == codePoint) || - (0x01D8 == codePoint) || - (0x01DA == codePoint) || - (0x01DC == codePoint) || - (0x0251 == codePoint) || - (0x0261 == codePoint) || - (0x02C4 == codePoint) || - (0x02C7 == codePoint) || - (0x02C9 <= codePoint && codePoint <= 0x02CB) || - (0x02CD == codePoint) || - (0x02D0 == codePoint) || - (0x02D8 <= codePoint && codePoint <= 0x02DB) || - (0x02DD == codePoint) || - (0x02DF == codePoint) || - (0x0300 <= codePoint && codePoint <= 0x036F) || - (0x0391 <= codePoint && codePoint <= 0x03A1) || - (0x03A3 <= codePoint && codePoint <= 0x03A9) || - (0x03B1 <= codePoint && codePoint <= 0x03C1) || - (0x03C3 <= codePoint && codePoint <= 0x03C9) || - (0x0401 == codePoint) || - (0x0410 <= codePoint && codePoint <= 0x044F) || - (0x0451 == codePoint) || - (0x2010 == codePoint) || - (0x2013 <= codePoint && codePoint <= 0x2016) || - (0x2018 <= codePoint && codePoint <= 0x2019) || - (0x201C <= codePoint && codePoint <= 0x201D) || - (0x2020 <= codePoint && codePoint <= 0x2022) || - (0x2024 <= codePoint && codePoint <= 0x2027) || - (0x2030 == codePoint) || - (0x2032 <= codePoint && codePoint <= 0x2033) || - (0x2035 == codePoint) || - (0x203B == codePoint) || - (0x203E == codePoint) || - (0x2074 == codePoint) || - (0x207F == codePoint) || - (0x2081 <= codePoint && codePoint <= 0x2084) || - (0x20AC == codePoint) || - (0x2103 == codePoint) || - (0x2105 == codePoint) || - (0x2109 == codePoint) || - (0x2113 == codePoint) || - (0x2116 == codePoint) || - (0x2121 <= codePoint && codePoint <= 0x2122) || - (0x2126 == codePoint) || - (0x212B == codePoint) || - (0x2153 <= codePoint && codePoint <= 0x2154) || - (0x215B <= codePoint && codePoint <= 0x215E) || - (0x2160 <= codePoint && codePoint <= 0x216B) || - (0x2170 <= codePoint && codePoint <= 0x2179) || - (0x2189 == codePoint) || - (0x2190 <= codePoint && codePoint <= 0x2199) || - (0x21B8 <= codePoint && codePoint <= 0x21B9) || - (0x21D2 == codePoint) || - (0x21D4 == codePoint) || - (0x21E7 == codePoint) || - (0x2200 == codePoint) || - (0x2202 <= codePoint && codePoint <= 0x2203) || - (0x2207 <= codePoint && codePoint <= 0x2208) || - (0x220B == codePoint) || - (0x220F == codePoint) || - (0x2211 == codePoint) || - (0x2215 == codePoint) || - (0x221A == codePoint) || - (0x221D <= codePoint && codePoint <= 0x2220) || - (0x2223 == codePoint) || - (0x2225 == codePoint) || - (0x2227 <= codePoint && codePoint <= 0x222C) || - (0x222E == codePoint) || - (0x2234 <= codePoint && codePoint <= 0x2237) || - (0x223C <= codePoint && codePoint <= 0x223D) || - (0x2248 == codePoint) || - (0x224C == codePoint) || - (0x2252 == codePoint) || - (0x2260 <= codePoint && codePoint <= 0x2261) || - (0x2264 <= codePoint && codePoint <= 0x2267) || - (0x226A <= codePoint && codePoint <= 0x226B) || - (0x226E <= codePoint && codePoint <= 0x226F) || - (0x2282 <= codePoint && codePoint <= 0x2283) || - (0x2286 <= codePoint && codePoint <= 0x2287) || - (0x2295 == codePoint) || - (0x2299 == codePoint) || - (0x22A5 == codePoint) || - (0x22BF == codePoint) || - (0x2312 == codePoint) || - (0x2460 <= codePoint && codePoint <= 0x24E9) || - (0x24EB <= codePoint && codePoint <= 0x254B) || - (0x2550 <= codePoint && codePoint <= 0x2573) || - (0x2580 <= codePoint && codePoint <= 0x258F) || - (0x2592 <= codePoint && codePoint <= 0x2595) || - (0x25A0 <= codePoint && codePoint <= 0x25A1) || - (0x25A3 <= codePoint && codePoint <= 0x25A9) || - (0x25B2 <= codePoint && codePoint <= 0x25B3) || - (0x25B6 <= codePoint && codePoint <= 0x25B7) || - (0x25BC <= codePoint && codePoint <= 0x25BD) || - (0x25C0 <= codePoint && codePoint <= 0x25C1) || - (0x25C6 <= codePoint && codePoint <= 0x25C8) || - (0x25CB == codePoint) || - (0x25CE <= codePoint && codePoint <= 0x25D1) || - (0x25E2 <= codePoint && codePoint <= 0x25E5) || - (0x25EF == codePoint) || - (0x2605 <= codePoint && codePoint <= 0x2606) || - (0x2609 == codePoint) || - (0x260E <= codePoint && codePoint <= 0x260F) || - (0x2614 <= codePoint && codePoint <= 0x2615) || - (0x261C == codePoint) || - (0x261E == codePoint) || - (0x2640 == codePoint) || - (0x2642 == codePoint) || - (0x2660 <= codePoint && codePoint <= 0x2661) || - (0x2663 <= codePoint && codePoint <= 0x2665) || - (0x2667 <= codePoint && codePoint <= 0x266A) || - (0x266C <= codePoint && codePoint <= 0x266D) || - (0x266F == codePoint) || - (0x269E <= codePoint && codePoint <= 0x269F) || - (0x26BE <= codePoint && codePoint <= 0x26BF) || - (0x26C4 <= codePoint && codePoint <= 0x26CD) || - (0x26CF <= codePoint && codePoint <= 0x26E1) || - (0x26E3 == codePoint) || - (0x26E8 <= codePoint && codePoint <= 0x26FF) || - (0x273D == codePoint) || - (0x2757 == codePoint) || - (0x2776 <= codePoint && codePoint <= 0x277F) || - (0x2B55 <= codePoint && codePoint <= 0x2B59) || - (0x3248 <= codePoint && codePoint <= 0x324F) || - (0xE000 <= codePoint && codePoint <= 0xF8FF) || - (0xFE00 <= codePoint && codePoint <= 0xFE0F) || - (0xFFFD == codePoint) || - (0x1F100 <= codePoint && codePoint <= 0x1F10A) || - (0x1F110 <= codePoint && codePoint <= 0x1F12D) || - (0x1F130 <= codePoint && codePoint <= 0x1F169) || - (0x1F170 <= codePoint && codePoint <= 0x1F19A) || - (0xE0100 <= codePoint && codePoint <= 0xE01EF) || - (0xF0000 <= codePoint && codePoint <= 0xFFFFD) || - (0x100000 <= codePoint && codePoint <= 0x10FFFD)) { - return 'A'; - } - return 'N'; -}; -eaw.characterLength = function(character) { - var code = this.eastAsianWidth(character); - if (code == 'F' || code == 'W' || code == 'A') { - return 2; - } else { - return 1; - } -}; -function stringToArray(string) { - return string.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || []; -} -eaw.length = function(string) { - var characters = stringToArray(string); - var len = 0; - for (var i = 0; i < characters.length; i++) { - len = len + this.characterLength(characters[i]); - } - return len; -}; -eaw.slice = function(text, start, end) { - textLen = eaw.length(text); - start = start ? start : 0; - end = end ? end : 1; - if (start < 0) { - start = textLen + start; - } - if (end < 0) { - end = textLen + end; - } - var result = ''; - var eawLen = 0; - var chars = stringToArray(text); - for (var i = 0; i < chars.length; i++) { - var char = chars[i]; - var charLen = eaw.length(char); - if (eawLen >= start - (charLen == 2 ? 1 : 0)) { - if (eawLen + charLen <= end) { - result += char; - } else { - break; - } - } - eawLen += charLen; - } - return result; -}; -}(eastasianwidth)); + var eaw = {}; + { + module.exports = eaw; + } + eaw.eastAsianWidth = function(character) { + var x = character.charCodeAt(0); + var y = (character.length == 2) ? character.charCodeAt(1) : 0; + var codePoint = x; + if ((0xD800 <= x && x <= 0xDBFF) && (0xDC00 <= y && y <= 0xDFFF)) { + x &= 0x3FF; + y &= 0x3FF; + codePoint = (x << 10) | y; + codePoint += 0x10000; + } + if ((0x3000 == codePoint) || + (0xFF01 <= codePoint && codePoint <= 0xFF60) || + (0xFFE0 <= codePoint && codePoint <= 0xFFE6)) { + return 'F'; + } + if ((0x20A9 == codePoint) || + (0xFF61 <= codePoint && codePoint <= 0xFFBE) || + (0xFFC2 <= codePoint && codePoint <= 0xFFC7) || + (0xFFCA <= codePoint && codePoint <= 0xFFCF) || + (0xFFD2 <= codePoint && codePoint <= 0xFFD7) || + (0xFFDA <= codePoint && codePoint <= 0xFFDC) || + (0xFFE8 <= codePoint && codePoint <= 0xFFEE)) { + return 'H'; + } + if ((0x1100 <= codePoint && codePoint <= 0x115F) || + (0x11A3 <= codePoint && codePoint <= 0x11A7) || + (0x11FA <= codePoint && codePoint <= 0x11FF) || + (0x2329 <= codePoint && codePoint <= 0x232A) || + (0x2E80 <= codePoint && codePoint <= 0x2E99) || + (0x2E9B <= codePoint && codePoint <= 0x2EF3) || + (0x2F00 <= codePoint && codePoint <= 0x2FD5) || + (0x2FF0 <= codePoint && codePoint <= 0x2FFB) || + (0x3001 <= codePoint && codePoint <= 0x303E) || + (0x3041 <= codePoint && codePoint <= 0x3096) || + (0x3099 <= codePoint && codePoint <= 0x30FF) || + (0x3105 <= codePoint && codePoint <= 0x312D) || + (0x3131 <= codePoint && codePoint <= 0x318E) || + (0x3190 <= codePoint && codePoint <= 0x31BA) || + (0x31C0 <= codePoint && codePoint <= 0x31E3) || + (0x31F0 <= codePoint && codePoint <= 0x321E) || + (0x3220 <= codePoint && codePoint <= 0x3247) || + (0x3250 <= codePoint && codePoint <= 0x32FE) || + (0x3300 <= codePoint && codePoint <= 0x4DBF) || + (0x4E00 <= codePoint && codePoint <= 0xA48C) || + (0xA490 <= codePoint && codePoint <= 0xA4C6) || + (0xA960 <= codePoint && codePoint <= 0xA97C) || + (0xAC00 <= codePoint && codePoint <= 0xD7A3) || + (0xD7B0 <= codePoint && codePoint <= 0xD7C6) || + (0xD7CB <= codePoint && codePoint <= 0xD7FB) || + (0xF900 <= codePoint && codePoint <= 0xFAFF) || + (0xFE10 <= codePoint && codePoint <= 0xFE19) || + (0xFE30 <= codePoint && codePoint <= 0xFE52) || + (0xFE54 <= codePoint && codePoint <= 0xFE66) || + (0xFE68 <= codePoint && codePoint <= 0xFE6B) || + (0x1B000 <= codePoint && codePoint <= 0x1B001) || + (0x1F200 <= codePoint && codePoint <= 0x1F202) || + (0x1F210 <= codePoint && codePoint <= 0x1F23A) || + (0x1F240 <= codePoint && codePoint <= 0x1F248) || + (0x1F250 <= codePoint && codePoint <= 0x1F251) || + (0x20000 <= codePoint && codePoint <= 0x2F73F) || + (0x2B740 <= codePoint && codePoint <= 0x2FFFD) || + (0x30000 <= codePoint && codePoint <= 0x3FFFD)) { + return 'W'; + } + if ((0x0020 <= codePoint && codePoint <= 0x007E) || + (0x00A2 <= codePoint && codePoint <= 0x00A3) || + (0x00A5 <= codePoint && codePoint <= 0x00A6) || + (0x00AC == codePoint) || + (0x00AF == codePoint) || + (0x27E6 <= codePoint && codePoint <= 0x27ED) || + (0x2985 <= codePoint && codePoint <= 0x2986)) { + return 'Na'; + } + if ((0x00A1 == codePoint) || + (0x00A4 == codePoint) || + (0x00A7 <= codePoint && codePoint <= 0x00A8) || + (0x00AA == codePoint) || + (0x00AD <= codePoint && codePoint <= 0x00AE) || + (0x00B0 <= codePoint && codePoint <= 0x00B4) || + (0x00B6 <= codePoint && codePoint <= 0x00BA) || + (0x00BC <= codePoint && codePoint <= 0x00BF) || + (0x00C6 == codePoint) || + (0x00D0 == codePoint) || + (0x00D7 <= codePoint && codePoint <= 0x00D8) || + (0x00DE <= codePoint && codePoint <= 0x00E1) || + (0x00E6 == codePoint) || + (0x00E8 <= codePoint && codePoint <= 0x00EA) || + (0x00EC <= codePoint && codePoint <= 0x00ED) || + (0x00F0 == codePoint) || + (0x00F2 <= codePoint && codePoint <= 0x00F3) || + (0x00F7 <= codePoint && codePoint <= 0x00FA) || + (0x00FC == codePoint) || + (0x00FE == codePoint) || + (0x0101 == codePoint) || + (0x0111 == codePoint) || + (0x0113 == codePoint) || + (0x011B == codePoint) || + (0x0126 <= codePoint && codePoint <= 0x0127) || + (0x012B == codePoint) || + (0x0131 <= codePoint && codePoint <= 0x0133) || + (0x0138 == codePoint) || + (0x013F <= codePoint && codePoint <= 0x0142) || + (0x0144 == codePoint) || + (0x0148 <= codePoint && codePoint <= 0x014B) || + (0x014D == codePoint) || + (0x0152 <= codePoint && codePoint <= 0x0153) || + (0x0166 <= codePoint && codePoint <= 0x0167) || + (0x016B == codePoint) || + (0x01CE == codePoint) || + (0x01D0 == codePoint) || + (0x01D2 == codePoint) || + (0x01D4 == codePoint) || + (0x01D6 == codePoint) || + (0x01D8 == codePoint) || + (0x01DA == codePoint) || + (0x01DC == codePoint) || + (0x0251 == codePoint) || + (0x0261 == codePoint) || + (0x02C4 == codePoint) || + (0x02C7 == codePoint) || + (0x02C9 <= codePoint && codePoint <= 0x02CB) || + (0x02CD == codePoint) || + (0x02D0 == codePoint) || + (0x02D8 <= codePoint && codePoint <= 0x02DB) || + (0x02DD == codePoint) || + (0x02DF == codePoint) || + (0x0300 <= codePoint && codePoint <= 0x036F) || + (0x0391 <= codePoint && codePoint <= 0x03A1) || + (0x03A3 <= codePoint && codePoint <= 0x03A9) || + (0x03B1 <= codePoint && codePoint <= 0x03C1) || + (0x03C3 <= codePoint && codePoint <= 0x03C9) || + (0x0401 == codePoint) || + (0x0410 <= codePoint && codePoint <= 0x044F) || + (0x0451 == codePoint) || + (0x2010 == codePoint) || + (0x2013 <= codePoint && codePoint <= 0x2016) || + (0x2018 <= codePoint && codePoint <= 0x2019) || + (0x201C <= codePoint && codePoint <= 0x201D) || + (0x2020 <= codePoint && codePoint <= 0x2022) || + (0x2024 <= codePoint && codePoint <= 0x2027) || + (0x2030 == codePoint) || + (0x2032 <= codePoint && codePoint <= 0x2033) || + (0x2035 == codePoint) || + (0x203B == codePoint) || + (0x203E == codePoint) || + (0x2074 == codePoint) || + (0x207F == codePoint) || + (0x2081 <= codePoint && codePoint <= 0x2084) || + (0x20AC == codePoint) || + (0x2103 == codePoint) || + (0x2105 == codePoint) || + (0x2109 == codePoint) || + (0x2113 == codePoint) || + (0x2116 == codePoint) || + (0x2121 <= codePoint && codePoint <= 0x2122) || + (0x2126 == codePoint) || + (0x212B == codePoint) || + (0x2153 <= codePoint && codePoint <= 0x2154) || + (0x215B <= codePoint && codePoint <= 0x215E) || + (0x2160 <= codePoint && codePoint <= 0x216B) || + (0x2170 <= codePoint && codePoint <= 0x2179) || + (0x2189 == codePoint) || + (0x2190 <= codePoint && codePoint <= 0x2199) || + (0x21B8 <= codePoint && codePoint <= 0x21B9) || + (0x21D2 == codePoint) || + (0x21D4 == codePoint) || + (0x21E7 == codePoint) || + (0x2200 == codePoint) || + (0x2202 <= codePoint && codePoint <= 0x2203) || + (0x2207 <= codePoint && codePoint <= 0x2208) || + (0x220B == codePoint) || + (0x220F == codePoint) || + (0x2211 == codePoint) || + (0x2215 == codePoint) || + (0x221A == codePoint) || + (0x221D <= codePoint && codePoint <= 0x2220) || + (0x2223 == codePoint) || + (0x2225 == codePoint) || + (0x2227 <= codePoint && codePoint <= 0x222C) || + (0x222E == codePoint) || + (0x2234 <= codePoint && codePoint <= 0x2237) || + (0x223C <= codePoint && codePoint <= 0x223D) || + (0x2248 == codePoint) || + (0x224C == codePoint) || + (0x2252 == codePoint) || + (0x2260 <= codePoint && codePoint <= 0x2261) || + (0x2264 <= codePoint && codePoint <= 0x2267) || + (0x226A <= codePoint && codePoint <= 0x226B) || + (0x226E <= codePoint && codePoint <= 0x226F) || + (0x2282 <= codePoint && codePoint <= 0x2283) || + (0x2286 <= codePoint && codePoint <= 0x2287) || + (0x2295 == codePoint) || + (0x2299 == codePoint) || + (0x22A5 == codePoint) || + (0x22BF == codePoint) || + (0x2312 == codePoint) || + (0x2460 <= codePoint && codePoint <= 0x24E9) || + (0x24EB <= codePoint && codePoint <= 0x254B) || + (0x2550 <= codePoint && codePoint <= 0x2573) || + (0x2580 <= codePoint && codePoint <= 0x258F) || + (0x2592 <= codePoint && codePoint <= 0x2595) || + (0x25A0 <= codePoint && codePoint <= 0x25A1) || + (0x25A3 <= codePoint && codePoint <= 0x25A9) || + (0x25B2 <= codePoint && codePoint <= 0x25B3) || + (0x25B6 <= codePoint && codePoint <= 0x25B7) || + (0x25BC <= codePoint && codePoint <= 0x25BD) || + (0x25C0 <= codePoint && codePoint <= 0x25C1) || + (0x25C6 <= codePoint && codePoint <= 0x25C8) || + (0x25CB == codePoint) || + (0x25CE <= codePoint && codePoint <= 0x25D1) || + (0x25E2 <= codePoint && codePoint <= 0x25E5) || + (0x25EF == codePoint) || + (0x2605 <= codePoint && codePoint <= 0x2606) || + (0x2609 == codePoint) || + (0x260E <= codePoint && codePoint <= 0x260F) || + (0x2614 <= codePoint && codePoint <= 0x2615) || + (0x261C == codePoint) || + (0x261E == codePoint) || + (0x2640 == codePoint) || + (0x2642 == codePoint) || + (0x2660 <= codePoint && codePoint <= 0x2661) || + (0x2663 <= codePoint && codePoint <= 0x2665) || + (0x2667 <= codePoint && codePoint <= 0x266A) || + (0x266C <= codePoint && codePoint <= 0x266D) || + (0x266F == codePoint) || + (0x269E <= codePoint && codePoint <= 0x269F) || + (0x26BE <= codePoint && codePoint <= 0x26BF) || + (0x26C4 <= codePoint && codePoint <= 0x26CD) || + (0x26CF <= codePoint && codePoint <= 0x26E1) || + (0x26E3 == codePoint) || + (0x26E8 <= codePoint && codePoint <= 0x26FF) || + (0x273D == codePoint) || + (0x2757 == codePoint) || + (0x2776 <= codePoint && codePoint <= 0x277F) || + (0x2B55 <= codePoint && codePoint <= 0x2B59) || + (0x3248 <= codePoint && codePoint <= 0x324F) || + (0xE000 <= codePoint && codePoint <= 0xF8FF) || + (0xFE00 <= codePoint && codePoint <= 0xFE0F) || + (0xFFFD == codePoint) || + (0x1F100 <= codePoint && codePoint <= 0x1F10A) || + (0x1F110 <= codePoint && codePoint <= 0x1F12D) || + (0x1F130 <= codePoint && codePoint <= 0x1F169) || + (0x1F170 <= codePoint && codePoint <= 0x1F19A) || + (0xE0100 <= codePoint && codePoint <= 0xE01EF) || + (0xF0000 <= codePoint && codePoint <= 0xFFFFD) || + (0x100000 <= codePoint && codePoint <= 0x10FFFD)) { + return 'A'; + } + return 'N'; + }; + eaw.characterLength = function(character) { + var code = this.eastAsianWidth(character); + if (code == 'F' || code == 'W' || code == 'A') { + return 2; + } else { + return 1; + } + }; + function stringToArray(string) { + return string.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || []; + } + eaw.length = function(string) { + var characters = stringToArray(string); + var len = 0; + for (var i = 0; i < characters.length; i++) { + len = len + this.characterLength(characters[i]); + } + return len; + }; + eaw.slice = function(text, start, end) { + textLen = eaw.length(text); + start = start ? start : 0; + end = end ? end : 1; + if (start < 0) { + start = textLen + start; + } + if (end < 0) { + end = textLen + end; + } + var result = ''; + var eawLen = 0; + var chars = stringToArray(text); + for (var i = 0; i < chars.length; i++) { + var char = chars[i]; + var charLen = eaw.length(char); + if (eawLen >= start - (charLen == 2 ? 1 : 0)) { + if (eawLen + charLen <= end) { + result += char; + } else { + break; + } + } + eawLen += charLen; + } + return result; + }; +} (eastasianwidth)); var eastAsianWidth = eastasianwidth.exports; var emojiRegex = function () { diff --git a/tools/lint-md/package-lock.json b/tools/lint-md/package-lock.json index 7eb51dbcbe396f..7b9f7076fbd4b4 100644 --- a/tools/lint-md/package-lock.json +++ b/tools/lint-md/package-lock.json @@ -16,16 +16,16 @@ "vfile-reporter": "^7.0.4" }, "devDependencies": { - "@rollup/plugin-commonjs": "^21.0.3", - "@rollup/plugin-node-resolve": "^13.1.3", - "rollup": "^2.70.1", + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "rollup": "^2.75.6", "rollup-plugin-cleanup": "^3.2.1" } }, "node_modules/@rollup/plugin-commonjs": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.3.tgz", - "integrity": "sha512-ThGfwyvcLc6cfP/MWxA5ACF+LZCvsuhUq7V5134Az1oQWsiC7lNpLT4mJI86WQunK7BYmpUiHmMk2Op6OAHs0g==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", + "integrity": "sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -37,22 +37,22 @@ "resolve": "^1.17.0" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 12.0.0" }, "peerDependencies": { - "rollup": "^2.38.3" + "rollup": "^2.68.0" } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.3.tgz", - "integrity": "sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", "is-module": "^1.0.0", "resolve": "^1.19.0" }, @@ -129,9 +129,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "node_modules/@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", + "version": "17.0.42", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz", + "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==", "dev": true }, "node_modules/@types/resolve": { @@ -195,9 +195,9 @@ } }, "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true, "engines": { "node": ">=6" @@ -227,18 +227,18 @@ "node_modules/co": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", - "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=" + "integrity": "sha512-CQsjCRiNObI8AtTsNIBDRMQ4oMR83CzEswHYahClvul7gKk+lDQiOKv+5qh7LQWf5sh6jkZNispz/QlsZxyNgA==" }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/debug": { @@ -258,9 +258,9 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", - "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dependencies": { "character-entities": "^2.0.0" }, @@ -287,9 +287,9 @@ } }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "engines": { "node": ">=0.3.1" } @@ -329,7 +329,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { @@ -353,15 +353,15 @@ "dev": true }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -387,7 +387,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -422,10 +422,22 @@ "node": ">=4" } }, + "node_modules/is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -437,7 +449,7 @@ "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, "node_modules/is-plain-obj": { @@ -544,13 +556,13 @@ } }, "node_modules/mdast-util-find-and-replace": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.1.0.tgz", - "integrity": "sha512-1w1jbqAd13oU78QPBf5223+xB+37ecNtQ1JElq2feWols5oEYAl+SgNDnOZipe7NfLemoEt362yUS15/wip4mw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.0.tgz", + "integrity": "sha512-bz8hUWkMX7UcasORORcyBEsTKJ+dBiFwRPrm43hHC9NMRylIMLbfO5rwfeCN+UtY4AAi7s8WqXftb9eX6ZsqCg==", "dependencies": { "escape-string-regexp": "^5.0.0", "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^4.0.0" + "unist-util-visit-parents": "^5.0.0" }, "funding": { "type": "opencollective", @@ -680,9 +692,9 @@ } }, "node_modules/mdast-util-mdx-expression": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.2.0.tgz", - "integrity": "sha512-wb36oi09XxqO9RVqgfD+xo8a7xaNgS+01+k3v0GKW0X0bYbeBmUZz22Z/IJ8SuphVlG+DNgNo9VoEaUJ3PKfJQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.2.1.tgz", + "integrity": "sha512-BtQwyalaq6jRjx0pagtuAwGrmzL1yInrfA4EJv7GOoiPOUbR4gr6h65I+G3WTh1/Cag2Eda4ip400Ch6CFmWiA==", "dependencies": { "@types/estree-jsx": "^0.0.1", "@types/hast": "^2.0.0", @@ -1138,9 +1150,9 @@ ] }, "node_modules/micromark-util-html-tag-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz", - "integrity": "sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", + "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", "funding": [ { "type": "GitHub Sponsors", @@ -1287,7 +1299,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" @@ -1296,7 +1308,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2197,9 +2209,9 @@ } }, "node_modules/rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.75.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.6.tgz", + "integrity": "sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -2254,9 +2266,9 @@ } }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2279,7 +2291,7 @@ "node_modules/sliced": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" }, "node_modules/sourcemap-codec": { "version": "1.4.8", @@ -2426,6 +2438,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unified-message-control/node_modules/unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-generated": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", @@ -2483,19 +2508,6 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", - "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", @@ -2526,9 +2538,9 @@ } }, "node_modules/vfile": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.2.tgz", - "integrity": "sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.3.tgz", + "integrity": "sha512-xwALvwUKmXzHOri5dGXqXNN8JDEvxPhf8avC+E+pJEl32e4/grLdRdsgx23HpK7QI0cwgR4+QfaM8D5KUnki3g==", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -2610,7 +2622,7 @@ "node_modules/wrapped": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz", - "integrity": "sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI=", + "integrity": "sha512-ZTKuqiTu3WXtL72UKCCnQLRax2IScKH7oQ+mvjbpvNE+NJxIWIemDqqM2GxNr4N16NCjOYpIgpin5pStM7kM5g==", "dependencies": { "co": "3.1.0", "sliced": "^1.0.1" @@ -2619,7 +2631,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/yallist": { @@ -2639,9 +2651,9 @@ }, "dependencies": { "@rollup/plugin-commonjs": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.3.tgz", - "integrity": "sha512-ThGfwyvcLc6cfP/MWxA5ACF+LZCvsuhUq7V5134Az1oQWsiC7lNpLT4mJI86WQunK7BYmpUiHmMk2Op6OAHs0g==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz", + "integrity": "sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -2654,15 +2666,15 @@ } }, "@rollup/plugin-node-resolve": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.3.tgz", - "integrity": "sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", "is-module": "^1.0.0", "resolve": "^1.19.0" } @@ -2729,9 +2741,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "@types/node": { - "version": "17.0.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", - "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", + "version": "17.0.42", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz", + "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==", "dev": true }, "@types/resolve": { @@ -2785,9 +2797,9 @@ } }, "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true }, "ccount": { @@ -2803,18 +2815,18 @@ "co": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", - "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=" + "integrity": "sha512-CQsjCRiNObI8AtTsNIBDRMQ4oMR83CzEswHYahClvul7gKk+lDQiOKv+5qh7LQWf5sh6jkZNispz/QlsZxyNgA==" }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "debug": { @@ -2826,9 +2838,9 @@ } }, "decode-named-character-reference": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", - "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "requires": { "character-entities": "^2.0.0" } @@ -2845,9 +2857,9 @@ "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" }, "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" }, "eastasianwidth": { "version": "0.2.0", @@ -2878,7 +2890,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { @@ -2895,15 +2907,15 @@ "dev": true }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -2920,7 +2932,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -2938,10 +2950,19 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" }, + "is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "requires": { + "builtin-modules": "^3.0.0" + } + }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", "dev": true, "requires": { "has": "^1.0.3" @@ -2950,7 +2971,7 @@ "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "dev": true }, "is-plain-obj": { @@ -3027,13 +3048,13 @@ } }, "mdast-util-find-and-replace": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.1.0.tgz", - "integrity": "sha512-1w1jbqAd13oU78QPBf5223+xB+37ecNtQ1JElq2feWols5oEYAl+SgNDnOZipe7NfLemoEt362yUS15/wip4mw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.0.tgz", + "integrity": "sha512-bz8hUWkMX7UcasORORcyBEsTKJ+dBiFwRPrm43hHC9NMRylIMLbfO5rwfeCN+UtY4AAi7s8WqXftb9eX6ZsqCg==", "requires": { "escape-string-regexp": "^5.0.0", "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^4.0.0" + "unist-util-visit-parents": "^5.0.0" } }, "mdast-util-from-markdown": { @@ -3127,9 +3148,9 @@ } }, "mdast-util-mdx-expression": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.2.0.tgz", - "integrity": "sha512-wb36oi09XxqO9RVqgfD+xo8a7xaNgS+01+k3v0GKW0X0bYbeBmUZz22Z/IJ8SuphVlG+DNgNo9VoEaUJ3PKfJQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.2.1.tgz", + "integrity": "sha512-BtQwyalaq6jRjx0pagtuAwGrmzL1yInrfA4EJv7GOoiPOUbR4gr6h65I+G3WTh1/Cag2Eda4ip400Ch6CFmWiA==", "requires": { "@types/estree-jsx": "^0.0.1", "@types/hast": "^2.0.0", @@ -3405,9 +3426,9 @@ "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==" }, "micromark-util-html-tag-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz", - "integrity": "sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", + "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==" }, "micromark-util-normalize-identifier": { "version": "1.0.0", @@ -3478,7 +3499,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" @@ -3487,7 +3508,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-parse": { @@ -4178,9 +4199,9 @@ } }, "rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.75.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.6.tgz", + "integrity": "sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -4222,9 +4243,9 @@ } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "requires": { "lru-cache": "^6.0.0" } @@ -4238,7 +4259,7 @@ "sliced": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + "integrity": "sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==" }, "sourcemap-codec": { "version": "1.4.8", @@ -4336,6 +4357,15 @@ "unist-util-is": "^5.0.0", "unist-util-visit-parents": "^4.0.0" } + }, + "unist-util-visit-parents": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", + "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + } } } }, @@ -4373,23 +4403,12 @@ "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", "unist-util-visit-parents": "^5.0.0" - }, - "dependencies": { - "unist-util-visit-parents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", - "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - } } }, "unist-util-visit-parents": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz", - "integrity": "sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", + "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" @@ -4407,9 +4426,9 @@ } }, "vfile": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.2.tgz", - "integrity": "sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.3.tgz", + "integrity": "sha512-xwALvwUKmXzHOri5dGXqXNN8JDEvxPhf8avC+E+pJEl32e4/grLdRdsgx23HpK7QI0cwgR4+QfaM8D5KUnki3g==", "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -4467,7 +4486,7 @@ "wrapped": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz", - "integrity": "sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI=", + "integrity": "sha512-ZTKuqiTu3WXtL72UKCCnQLRax2IScKH7oQ+mvjbpvNE+NJxIWIemDqqM2GxNr4N16NCjOYpIgpin5pStM7kM5g==", "requires": { "co": "3.1.0", "sliced": "^1.0.1" @@ -4476,7 +4495,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "yallist": { diff --git a/tools/lint-md/package.json b/tools/lint-md/package.json index 1c270668421b2d..3db7e3d473dea1 100644 --- a/tools/lint-md/package.json +++ b/tools/lint-md/package.json @@ -14,9 +14,9 @@ "vfile-reporter": "^7.0.4" }, "devDependencies": { - "@rollup/plugin-commonjs": "^21.0.3", - "@rollup/plugin-node-resolve": "^13.1.3", - "rollup": "^2.70.1", + "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "rollup": "^2.75.6", "rollup-plugin-cleanup": "^3.2.1" } } diff --git a/tools/lint-pr-url.mjs b/tools/lint-pr-url.mjs index 0ebbfdd079671d..c32473ccb89d84 100755 --- a/tools/lint-pr-url.mjs +++ b/tools/lint-pr-url.mjs @@ -1,7 +1,7 @@ #!/usr/bin/env node // Usage: -// git diff upstream/master...HEAD -G"pr-url:" -- "*.md" | \ +// git diff upstream/main...HEAD -G"pr-url:" -- "*.md" | \ // ./tools/lint-pr-url.mjs import process from 'node:process'; diff --git a/tools/lint-sh.js b/tools/lint-sh.js deleted file mode 100755 index 378cb38af28744..00000000000000 --- a/tools/lint-sh.js +++ /dev/null @@ -1,184 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -const { execSync, spawn } = require('child_process'); -const { promises: fs, readdirSync, statSync } = require('fs'); -const { extname, join, relative, resolve } = require('path'); - -const FIX_MODE_ENABLED = process.argv.includes('--fix'); -const USE_NPX = process.argv.includes('--from-npx'); - -const SHELLCHECK_EXE_NAME = 'shellcheck'; -const SHELLCHECK_OPTIONS = ['--shell=sh', '--severity=info', '--enable=all']; -if (FIX_MODE_ENABLED) SHELLCHECK_OPTIONS.push('--format=diff'); -else if (process.env.GITHUB_ACTIONS) SHELLCHECK_OPTIONS.push('--format=json'); - -const SPAWN_OPTIONS = { - cwd: null, - shell: false, - stdio: ['pipe', 'pipe', 'inherit'], -}; - -function* findScriptFilesRecursively(dirPath) { - const entries = readdirSync(dirPath, { withFileTypes: true }); - - for (const entry of entries) { - const path = join(dirPath, entry.name); - - if ( - entry.isDirectory() && - entry.name !== 'build' && - entry.name !== 'changelogs' && - entry.name !== 'deps' && - entry.name !== 'fixtures' && - entry.name !== 'gyp' && - entry.name !== 'inspector_protocol' && - entry.name !== 'node_modules' && - entry.name !== 'out' && - entry.name !== 'tmp' - ) { - yield* findScriptFilesRecursively(path); - } else if (entry.isFile() && extname(entry.name) === '.sh') { - yield path; - } - } -} - -const expectedHashBang = Buffer.from('#!/bin/sh\n'); -async function hasInvalidHashBang(fd) { - const { length } = expectedHashBang; - - const actual = Buffer.allocUnsafe(length); - await fd.read(actual, 0, length, 0); - - return Buffer.compare(actual, expectedHashBang); -} - -async function checkFiles(...files) { - const flags = FIX_MODE_ENABLED ? 'r+' : 'r'; - await Promise.all( - files.map(async (file) => { - const fd = await fs.open(file, flags); - if (await hasInvalidHashBang(fd)) { - if (FIX_MODE_ENABLED) { - const file = await fd.readFile(); - - const fileContent = - file[0] === '#'.charCodeAt() ? - file.subarray(file.indexOf('\n') + 1) : - file; - - const toWrite = Buffer.concat([expectedHashBang, fileContent]); - await fd.truncate(toWrite.length); - await fd.write(toWrite, 0, toWrite.length, 0); - } else { - if (!process.exitCode) process.exitCode = 1; - console.error( - (process.env.GITHUB_ACTIONS ? - `::error file=${file},line=1,col=1::` : - 'Fixable with --fix: ') + - `Invalid hashbang for ${file} (expected /bin/sh).` - ); - } - } - await fd.close(); - }) - ); - - const stdout = await new Promise((resolve, reject) => { - const SHELLCHECK_EXE = - process.env.SHELLCHECK || - execSync('command -v ' + (USE_NPX ? 'npx' : SHELLCHECK_EXE_NAME)) - .toString() - .trim(); - const NPX_OPTIONS = USE_NPX ? [SHELLCHECK_EXE_NAME] : []; - - const shellcheck = spawn( - SHELLCHECK_EXE, - [ - ...NPX_OPTIONS, - ...SHELLCHECK_OPTIONS, - ...(FIX_MODE_ENABLED ? - files.map((filePath) => relative(SPAWN_OPTIONS.cwd, filePath)) : - files), - ], - SPAWN_OPTIONS - ); - shellcheck.once('error', reject); - - let json = ''; - let childProcess = shellcheck; - if (FIX_MODE_ENABLED) { - const GIT_EXE = - process.env.GIT || execSync('command -v git').toString().trim(); - - const gitApply = spawn(GIT_EXE, ['apply'], SPAWN_OPTIONS); - shellcheck.stdout.pipe(gitApply.stdin); - shellcheck.once('exit', (code) => { - if (!process.exitCode && code) process.exitCode = code; - }); - gitApply.stdout.pipe(process.stdout); - - gitApply.once('error', reject); - childProcess = gitApply; - } else if (process.env.GITHUB_ACTIONS) { - shellcheck.stdout.on('data', (chunk) => { - json += chunk; - }); - } else { - shellcheck.stdout.pipe(process.stdout); - } - childProcess.once('exit', (code) => { - if (!process.exitCode && code) process.exitCode = code; - resolve(json); - }); - }); - - if (!FIX_MODE_ENABLED && process.env.GITHUB_ACTIONS) { - const data = JSON.parse(stdout); - for (const { file, line, column, message } of data) { - console.error( - `::error file=${file},line=${line},col=${column}::${file}:${line}:${column}: ${message}` - ); - } - } -} - -const USAGE_STR = - `Usage: ${process.argv[1]} [--fix] [--from-npx]\n` + - '\n' + - 'Environment variables:\n' + - ' - SHELLCHECK: absolute path to `shellcheck`. If not provided, the\n' + - ' script will use the result of `command -v shellcheck`, or\n' + - ' `$(command -v npx) shellcheck` if the flag `--from-npx` is provided\n' + - ' (may require an internet connection).\n' + - ' - GIT: absolute path to `git`. If not provided, the \n' + - ' script will use the result of `command -v git`.\n'; - -if ( - process.argv.length < 3 || - process.argv.includes('-h') || - process.argv.includes('--help') -) { - console.log(USAGE_STR); -} else { - console.log('Running Shell scripts checker...'); - const entryPoint = resolve(process.argv[2]); - const stats = statSync(entryPoint, { throwIfNoEntry: false }); - - const onError = (e) => { - console.log(USAGE_STR); - console.error(e); - process.exitCode = 1; - }; - if (stats?.isDirectory()) { - SPAWN_OPTIONS.cwd = entryPoint; - checkFiles(...findScriptFilesRecursively(entryPoint)).catch(onError); - } else if (stats?.isFile()) { - SPAWN_OPTIONS.cwd = process.cwd(); - checkFiles(entryPoint).catch(onError); - } else { - onError(new Error('You must provide a valid directory or file path. ' + - `Received '${process.argv[2]}'.`)); - } -} diff --git a/tools/lint-sh.mjs b/tools/lint-sh.mjs new file mode 100755 index 00000000000000..681c7cd5665dce --- /dev/null +++ b/tools/lint-sh.mjs @@ -0,0 +1,184 @@ +#!/usr/bin/env node + +import { execSync, spawn } from 'node:child_process'; +import { promises as fs, readdirSync, statSync } from 'node:fs'; +import { extname, join, relative, resolve } from 'node:path'; +import process from 'node:process'; + +const FIX_MODE_ENABLED = process.argv.includes('--fix'); +const USE_NPX = process.argv.includes('--from-npx'); + +const SHELLCHECK_EXE_NAME = 'shellcheck'; +const SHELLCHECK_OPTIONS = ['--shell=sh', '--severity=info', '--enable=all']; +if (FIX_MODE_ENABLED) SHELLCHECK_OPTIONS.push('--format=diff'); +else if (process.env.GITHUB_ACTIONS) SHELLCHECK_OPTIONS.push('--format=json'); + +const SPAWN_OPTIONS = { + cwd: null, + shell: false, + stdio: ['pipe', 'pipe', 'inherit'], +}; + +function* findScriptFilesRecursively(dirPath) { + const entries = readdirSync(dirPath, { withFileTypes: true }); + + for (const entry of entries) { + const path = join(dirPath, entry.name); + + if ( + entry.isDirectory() && + entry.name !== 'build' && + entry.name !== 'changelogs' && + entry.name !== 'deps' && + entry.name !== 'fixtures' && + entry.name !== 'gyp' && + entry.name !== 'inspector_protocol' && + entry.name !== 'node_modules' && + entry.name !== 'out' && + entry.name !== 'tmp' + ) { + yield* findScriptFilesRecursively(path); + } else if (entry.isFile() && extname(entry.name) === '.sh') { + yield path; + } + } +} + +const expectedHashBang = Buffer.from('#!/bin/sh\n'); +async function hasInvalidHashBang(fd) { + const { length } = expectedHashBang; + + const actual = Buffer.allocUnsafe(length); + await fd.read(actual, 0, length, 0); + + return Buffer.compare(actual, expectedHashBang); +} + +async function checkFiles(...files) { + const flags = FIX_MODE_ENABLED ? 'r+' : 'r'; + await Promise.all( + files.map(async (file) => { + const fd = await fs.open(file, flags); + if (await hasInvalidHashBang(fd)) { + if (FIX_MODE_ENABLED) { + const file = await fd.readFile(); + + const fileContent = + file[0] === '#'.charCodeAt() ? + file.subarray(file.indexOf('\n') + 1) : + file; + + const toWrite = Buffer.concat([expectedHashBang, fileContent]); + await fd.truncate(toWrite.length); + await fd.write(toWrite, 0, toWrite.length, 0); + } else { + if (!process.exitCode) process.exitCode = 1; + console.error( + (process.env.GITHUB_ACTIONS ? + `::error file=${file},line=1,col=1::` : + 'Fixable with --fix: ') + + `Invalid hashbang for ${file} (expected /bin/sh).` + ); + } + } + await fd.close(); + }) + ); + + const stdout = await new Promise((resolve, reject) => { + const SHELLCHECK_EXE = + process.env.SHELLCHECK || + execSync('command -v ' + (USE_NPX ? 'npx' : SHELLCHECK_EXE_NAME)) + .toString() + .trim(); + const NPX_OPTIONS = USE_NPX ? [SHELLCHECK_EXE_NAME] : []; + + const shellcheck = spawn( + SHELLCHECK_EXE, + [ + ...NPX_OPTIONS, + ...SHELLCHECK_OPTIONS, + ...(FIX_MODE_ENABLED ? + files.map((filePath) => relative(SPAWN_OPTIONS.cwd, filePath)) : + files), + ], + SPAWN_OPTIONS + ); + shellcheck.once('error', reject); + + let json = ''; + let childProcess = shellcheck; + if (FIX_MODE_ENABLED) { + const GIT_EXE = + process.env.GIT || execSync('command -v git').toString().trim(); + + const gitApply = spawn(GIT_EXE, ['apply'], SPAWN_OPTIONS); + shellcheck.stdout.pipe(gitApply.stdin); + shellcheck.once('exit', (code) => { + if (!process.exitCode && code) process.exitCode = code; + }); + gitApply.stdout.pipe(process.stdout); + + gitApply.once('error', reject); + childProcess = gitApply; + } else if (process.env.GITHUB_ACTIONS) { + shellcheck.stdout.on('data', (chunk) => { + json += chunk; + }); + } else { + shellcheck.stdout.pipe(process.stdout); + } + childProcess.once('exit', (code) => { + if (!process.exitCode && code) process.exitCode = code; + resolve(json); + }); + }); + + if (!FIX_MODE_ENABLED && process.env.GITHUB_ACTIONS) { + const data = JSON.parse(stdout); + for (const { file, line, column, message } of data) { + console.error( + `::error file=${file},line=${line},col=${column}::${file}:${line}:${column}: ${message}` + ); + } + } +} + +const USAGE_STR = + `Usage: ${process.argv[1]} [--fix] [--from-npx]\n` + + '\n' + + 'Environment variables:\n' + + ' - SHELLCHECK: absolute path to `shellcheck`. If not provided, the\n' + + ' script will use the result of `command -v shellcheck`, or\n' + + ' `$(command -v npx) shellcheck` if the flag `--from-npx` is provided\n' + + ' (may require an internet connection).\n' + + ' - GIT: absolute path to `git`. If not provided, the \n' + + ' script will use the result of `command -v git`.\n'; + +if ( + process.argv.length < 3 || + process.argv.includes('-h') || + process.argv.includes('--help') +) { + console.log(USAGE_STR); +} else { + console.log('Running Shell scripts checker...'); + const entryPoint = resolve(process.argv[2]); + const stats = statSync(entryPoint, { throwIfNoEntry: false }); + + const onError = (e) => { + console.log(USAGE_STR); + console.error(e); + process.exitCode = 1; + }; + if (stats?.isDirectory()) { + SPAWN_OPTIONS.cwd = entryPoint; + checkFiles(...findScriptFilesRecursively(entryPoint)).catch(onError); + } else if (stats?.isFile()) { + SPAWN_OPTIONS.cwd = process.cwd(); + checkFiles(entryPoint).catch(onError); + } else { + onError(new Error('You must provide a valid directory or file path. ' + + `Received '${process.argv[2]}'.`)); + } +} diff --git a/tools/macos-firewall.sh b/tools/macos-firewall.sh index b6050aaf3450bd..4dfa849bc3ace8 100755 --- a/tools/macos-firewall.sh +++ b/tools/macos-firewall.sh @@ -3,16 +3,16 @@ # popups asking to accept incoming network connections when # running tests. SFW="/usr/libexec/ApplicationFirewall/socketfilterfw" -TOOLSDIR="`dirname \"$0\"`" -TOOLSDIR="`( cd \"$TOOLSDIR\" && pwd) `" -ROOTDIR="`( cd \"$TOOLSDIR/..\" && pwd) `" +TOOLSDIR="$(dirname "$0")" +TOOLSDIR="$(cd "$TOOLSDIR" && pwd)" +ROOTDIR="$(cd "$TOOLSDIR/.." && pwd)" OUTDIR="$TOOLSDIR/../out" # Using cd and pwd here so that the path used for socketfilterfw does not # contain a '..', which seems to cause the rules to be incorrectly added # and they are not removed when this script is re-run. Instead the new # rules are simply appended. By using pwd we can get the full path # without '..' and things work as expected. -OUTDIR="`( cd \"$OUTDIR\" && pwd) `" +OUTDIR="$(cd "$OUTDIR" && pwd)" NODE_RELEASE="$OUTDIR/Release/node" NODE_DEBUG="$OUTDIR/Debug/node" NODE_LINK="$ROOTDIR/node" diff --git a/tools/msvs/find_python.cmd b/tools/msvs/find_python.cmd index 06e41fe06cd6ab..00fb6c9afbf1fc 100644 --- a/tools/msvs/find_python.cmd +++ b/tools/msvs/find_python.cmd @@ -46,7 +46,7 @@ exit /b 1 :found-python echo Python found in %p%\python.exe -call :check-python %p%\python.exe +call :check-python "%p%\python.exe" if errorlevel 1 goto :no-python endlocal ^ & set "pt=%p%" ^ @@ -57,7 +57,7 @@ set "need_path_ext=" exit /b 0 :check-python -%~1 -V +%1 -V :: 9009 means error file not found if %errorlevel% equ 9009 ( echo Not an executable Python program diff --git a/tools/msvs/install_tools/install_tools.bat b/tools/msvs/install_tools/install_tools.bat index 46ba93c8b890c9..18f92a981003f2 100644 --- a/tools/msvs/install_tools/install_tools.bat +++ b/tools/msvs/install_tools/install_tools.bat @@ -13,7 +13,7 @@ echo This script will install Python and the Visual Studio Build Tools, necessar echo to compile Node.js native modules. Note that Chocolatey and required Windows echo updates will also be installed. echo. -echo This will require about 3 Gb of free disk space, plus any space necessary to +echo This will require about 3 GiB of free disk space, plus any space necessary to echo install Windows updates. This will take a while to run. echo. echo Please close all open programs for the duration of the installation. If the diff --git a/tools/node_modules/eslint/bin/eslint.js b/tools/node_modules/eslint/bin/eslint.js index d00a870c089cf7..0f76fc92e1f35d 100755 --- a/tools/node_modules/eslint/bin/eslint.js +++ b/tools/node_modules/eslint/bin/eslint.js @@ -69,7 +69,7 @@ function getErrorMessage(error) { // Lazy loading because this is used only if an error happened. const util = require("util"); - // Foolproof -- thirdparty module might throw non-object. + // Foolproof -- third-party module might throw non-object. if (typeof error !== "object" || error === null) { return String(error); } diff --git a/tools/node_modules/eslint/lib/cli-engine/cli-engine.js b/tools/node_modules/eslint/lib/cli-engine/cli-engine.js index f7aa9e2242aa6f..fdc66198809c91 100644 --- a/tools/node_modules/eslint/lib/cli-engine/cli-engine.js +++ b/tools/node_modules/eslint/lib/cli-engine/cli-engine.js @@ -366,9 +366,7 @@ function *iterateRuleDeprecationWarnings(usedConfigArrays) { // Flatten used configs. /** @type {ExtractedConfig[]} */ - const configs = [].concat( - ...usedConfigArrays.map(getUsedExtractedConfigs) - ); + const configs = usedConfigArrays.flatMap(getUsedExtractedConfigs); // Traverse rule configs. for (const config of configs) { @@ -1023,7 +1021,7 @@ class CLIEngine { let formatterPath; // if there's a slash, then it's a file (TODO: this check seems dubious for scoped npm packages) - if (!namespace && normalizedFormatName.indexOf("/") > -1) { + if (!namespace && normalizedFormatName.includes("/")) { formatterPath = path.resolve(cwd, normalizedFormatName); } else { try { diff --git a/tools/node_modules/eslint/lib/cli-engine/lint-result-cache.js b/tools/node_modules/eslint/lib/cli-engine/lint-result-cache.js index 3304d429debe85..e36eb74badaad7 100644 --- a/tools/node_modules/eslint/lib/cli-engine/lint-result-cache.js +++ b/tools/node_modules/eslint/lib/cli-engine/lint-result-cache.js @@ -36,7 +36,7 @@ const invalidCacheStrategyErrorMessage = `Cache strategy must be one of: ${valid */ function isValidCacheStrategy(cacheStrategy) { return ( - validCacheStrategies.indexOf(cacheStrategy) !== -1 + validCacheStrategies.includes(cacheStrategy) ); } diff --git a/tools/node_modules/eslint/lib/eslint/eslint.js b/tools/node_modules/eslint/lib/eslint/eslint.js index 927b60802a3109..9a3bd66e487479 100644 --- a/tools/node_modules/eslint/lib/eslint/eslint.js +++ b/tools/node_modules/eslint/lib/eslint/eslint.js @@ -104,9 +104,9 @@ function isNonEmptyString(x) { } /** - * Check if a given value is an array of non-empty stringss or not. + * Check if a given value is an array of non-empty strings or not. * @param {any} x The value to check. - * @returns {boolean} `true` if `x` is an array of non-empty stringss. + * @returns {boolean} `true` if `x` is an array of non-empty strings. */ function isArrayOfNonEmptyString(x) { return Array.isArray(x) && x.every(isNonEmptyString); @@ -599,7 +599,7 @@ class ESLint { * The following values are allowed: * - `undefined` ... Load `stylish` builtin formatter. * - A builtin formatter name ... Load the builtin formatter. - * - A thirdparty formatter name: + * - A third-party formatter name: * - `foo` → `eslint-formatter-foo` * - `@foo` → `@foo/eslint-formatter` * - `@foo/bar` → `@foo/eslint-formatter-bar` diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js index fad559a2ad23e1..eeedd27524b026 100644 --- a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js +++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-segment.js @@ -100,7 +100,7 @@ class CodePathSegment { * @returns {boolean} `true` if the segment is coming from the end of a loop. */ isLoopedPrevSegment(segment) { - return this.internal.loopedPrevSegments.indexOf(segment) !== -1; + return this.internal.loopedPrevSegments.includes(segment); } /** diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js index 118f70a170756b..426da8d492eaf5 100644 --- a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js +++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path-state.js @@ -33,7 +33,7 @@ function addToReturnedOrThrown(dest, others, all, segments) { const segment = segments[i]; dest.push(segment); - if (others.indexOf(segment) === -1) { + if (!others.includes(segment)) { all.push(segment); } } diff --git a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js index 0e666277094355..a028ca69481c09 100644 --- a/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js +++ b/tools/node_modules/eslint/lib/linter/code-path-analysis/code-path.js @@ -212,7 +212,7 @@ class CodePath { } // Reset the flag of skipping if all branches have been skipped. - if (skippedSegment && segment.prevSegments.indexOf(skippedSegment) !== -1) { + if (skippedSegment && segment.prevSegments.includes(skippedSegment)) { skippedSegment = null; } visited[segment.id] = true; diff --git a/tools/node_modules/eslint/lib/linter/linter.js b/tools/node_modules/eslint/lib/linter/linter.js index 5304a612a5952a..bd1bbb7ca8219f 100644 --- a/tools/node_modules/eslint/lib/linter/linter.js +++ b/tools/node_modules/eslint/lib/linter/linter.js @@ -1101,7 +1101,7 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserName, languageO ) ); - const ruleListeners = createRuleListeners(rule, ruleContext); + const ruleListeners = timing.enabled ? timing.time(ruleId, createRuleListeners)(rule, ruleContext) : createRuleListeners(rule, ruleContext); /** * Include `ruleId` in error logs diff --git a/tools/node_modules/eslint/lib/linter/timing.js b/tools/node_modules/eslint/lib/linter/timing.js index c9ab01ec649067..914cbf05591441 100644 --- a/tools/node_modules/eslint/lib/linter/timing.js +++ b/tools/node_modules/eslint/lib/linter/timing.js @@ -138,10 +138,11 @@ module.exports = (function() { return function(...args) { let t = process.hrtime(); + const result = fn(...args); - fn(...args); t = process.hrtime(t); data[key] += t[0] * 1e3 + t[1] / 1e6; + return result; }; } diff --git a/tools/node_modules/eslint/lib/rules/accessor-pairs.js b/tools/node_modules/eslint/lib/rules/accessor-pairs.js index 2fcf1535290352..33887affef2204 100644 --- a/tools/node_modules/eslint/lib/rules/accessor-pairs.js +++ b/tools/node_modules/eslint/lib/rules/accessor-pairs.js @@ -299,12 +299,12 @@ module.exports = { * @private */ function checkPropertyDescriptor(node) { - const namesToCheck = node.properties + const namesToCheck = new Set(node.properties .filter(p => p.type === "Property" && p.kind === "init" && !p.computed) - .map(({ key }) => key.name); + .map(({ key }) => key.name)); - const hasGetter = namesToCheck.includes("get"); - const hasSetter = namesToCheck.includes("set"); + const hasGetter = namesToCheck.has("get"); + const hasSetter = namesToCheck.has("set"); if (checkSetWithoutGet && hasSetter && !hasGetter) { report(node, "missingGetter"); diff --git a/tools/node_modules/eslint/lib/rules/callback-return.js b/tools/node_modules/eslint/lib/rules/callback-return.js index 532faee45187ca..34b74631f0c81e 100644 --- a/tools/node_modules/eslint/lib/rules/callback-return.js +++ b/tools/node_modules/eslint/lib/rules/callback-return.js @@ -53,7 +53,7 @@ module.exports = { if (!node.parent) { return null; } - if (types.indexOf(node.parent.type) === -1) { + if (!types.includes(node.parent.type)) { return findClosestParentOfType(node.parent, types); } return node.parent; @@ -87,7 +87,7 @@ module.exports = { * @returns {boolean} Whether or not this function matches our callback name. */ function isCallback(node) { - return containsOnlyIdentifiers(node.callee) && callbacks.indexOf(sourceCode.getText(node.callee)) > -1; + return containsOnlyIdentifiers(node.callee) && callbacks.includes(sourceCode.getText(node.callee)); } /** diff --git a/tools/node_modules/eslint/lib/rules/capitalized-comments.js b/tools/node_modules/eslint/lib/rules/capitalized-comments.js index 6ea87a70a814ed..dffe956500334d 100644 --- a/tools/node_modules/eslint/lib/rules/capitalized-comments.js +++ b/tools/node_modules/eslint/lib/rules/capitalized-comments.js @@ -185,7 +185,7 @@ module.exports = { return Boolean( previousTokenOrComment && - ["Block", "Line"].indexOf(previousTokenOrComment.type) !== -1 + ["Block", "Line"].includes(previousTokenOrComment.type) ); } diff --git a/tools/node_modules/eslint/lib/rules/consistent-this.js b/tools/node_modules/eslint/lib/rules/consistent-this.js index a613f992d7a222..2aa079146385fb 100644 --- a/tools/node_modules/eslint/lib/rules/consistent-this.js +++ b/tools/node_modules/eslint/lib/rules/consistent-this.js @@ -65,7 +65,7 @@ module.exports = { function checkAssignment(node, name, value) { const isThis = value.type === "ThisExpression"; - if (aliases.indexOf(name) !== -1) { + if (aliases.includes(name)) { if (!isThis || node.operator && node.operator !== "=") { reportBadAssignment(node, name); } diff --git a/tools/node_modules/eslint/lib/rules/dot-notation.js b/tools/node_modules/eslint/lib/rules/dot-notation.js index 6f6b5166f76438..90ba6d83b7638c 100644 --- a/tools/node_modules/eslint/lib/rules/dot-notation.js +++ b/tools/node_modules/eslint/lib/rules/dot-notation.js @@ -76,7 +76,7 @@ module.exports = { function checkComputedProperty(node, value) { if ( validIdentifier.test(value) && - (allowKeywords || keywords.indexOf(String(value)) === -1) && + (allowKeywords || !keywords.includes(String(value))) && !(allowPattern && allowPattern.test(value)) ) { const formattedValue = node.property.type === "Literal" ? JSON.stringify(value) : `\`${value}\``; @@ -142,7 +142,7 @@ module.exports = { !allowKeywords && !node.computed && node.property.type === "Identifier" && - keywords.indexOf(String(node.property.name)) !== -1 + keywords.includes(String(node.property.name)) ) { context.report({ node: node.property, diff --git a/tools/node_modules/eslint/lib/rules/function-paren-newline.js b/tools/node_modules/eslint/lib/rules/function-paren-newline.js index 898e113ee8ecd8..cad27b9927d1ef 100644 --- a/tools/node_modules/eslint/lib/rules/function-paren-newline.js +++ b/tools/node_modules/eslint/lib/rules/function-paren-newline.js @@ -183,7 +183,7 @@ module.exports = { /** * Gets the left paren and right paren tokens of a node. * @param {ASTNode} node The node with parens - * @throws {TypeError} Unexecpted node type. + * @throws {TypeError} Unexpected node type. * @returns {Object} An object with keys `leftParen` for the left paren token, and `rightParen` for the right paren token. * Can also return `null` if an expression has no parens (e.g. a NewExpression with no arguments, or an ArrowFunctionExpression * with a single parameter) @@ -191,10 +191,13 @@ module.exports = { function getParenTokens(node) { switch (node.type) { case "NewExpression": - if (!node.arguments.length && !( - astUtils.isOpeningParenToken(sourceCode.getLastToken(node, { skip: 1 })) && - astUtils.isClosingParenToken(sourceCode.getLastToken(node)) - )) { + if (!node.arguments.length && + !( + astUtils.isOpeningParenToken(sourceCode.getLastToken(node, { skip: 1 })) && + astUtils.isClosingParenToken(sourceCode.getLastToken(node)) && + node.callee.range[1] < node.range[1] + ) + ) { // If the NewExpression does not have parens (e.g. `new Foo`), return null. return null; diff --git a/tools/node_modules/eslint/lib/rules/global-require.js b/tools/node_modules/eslint/lib/rules/global-require.js index f00ca9bf6dd6d8..71a2bf1ac493d8 100644 --- a/tools/node_modules/eslint/lib/rules/global-require.js +++ b/tools/node_modules/eslint/lib/rules/global-require.js @@ -6,7 +6,7 @@ "use strict"; -const ACCEPTABLE_PARENTS = [ +const ACCEPTABLE_PARENTS = new Set([ "AssignmentExpression", "VariableDeclarator", "MemberExpression", @@ -16,7 +16,7 @@ const ACCEPTABLE_PARENTS = [ "Program", "VariableDeclaration", "ChainExpression" -]; +]); /** * Finds the eslint-scope reference in the given scope. @@ -75,7 +75,7 @@ module.exports = { const currentScope = context.getScope(); if (node.callee.name === "require" && !isShadowed(currentScope, node.callee)) { - const isGoodRequire = context.getAncestors().every(parent => ACCEPTABLE_PARENTS.indexOf(parent.type) > -1); + const isGoodRequire = context.getAncestors().every(parent => ACCEPTABLE_PARENTS.has(parent.type)); if (!isGoodRequire) { context.report({ node, messageId: "unexpected" }); diff --git a/tools/node_modules/eslint/lib/rules/indent-legacy.js b/tools/node_modules/eslint/lib/rules/indent-legacy.js index bd61f6f843121b..c5be4a5d13494d 100644 --- a/tools/node_modules/eslint/lib/rules/indent-legacy.js +++ b/tools/node_modules/eslint/lib/rules/indent-legacy.js @@ -753,7 +753,7 @@ module.exports = { if (typeof options.CallExpression.arguments === "number") { nodeIndent += options.CallExpression.arguments * indentSize; } else if (options.CallExpression.arguments === "first") { - if (parent.arguments.indexOf(node) !== -1) { + if (parent.arguments.includes(node)) { nodeIndent = parent.arguments[0].loc.start.column; } } else { @@ -840,7 +840,7 @@ module.exports = { "IfStatement", "WhileStatement", "ForStatement", "ForInStatement", "ForOfStatement", "DoWhileStatement", "ClassDeclaration", "TryStatement" ]; - if (node.parent && statementsWithProperties.indexOf(node.parent.type) !== -1 && isNodeBodyBlock(node)) { + if (node.parent && statementsWithProperties.includes(node.parent.type) && isNodeBodyBlock(node)) { indent = getNodeIndent(node.parent).goodChar; } else if (node.parent && node.parent.type === "CatchClause") { indent = getNodeIndent(node.parent.parent).goodChar; diff --git a/tools/node_modules/eslint/lib/rules/indent.js b/tools/node_modules/eslint/lib/rules/indent.js index 6152bc561f9a81..bc6aa9e5c0ce86 100644 --- a/tools/node_modules/eslint/lib/rules/indent.js +++ b/tools/node_modules/eslint/lib/rules/indent.js @@ -796,7 +796,7 @@ module.exports = { let statement = node.parent && node.parent.parent; while ( - statement.type === "UnaryExpression" && ["!", "~", "+", "-"].indexOf(statement.operator) > -1 || + statement.type === "UnaryExpression" && ["!", "~", "+", "-"].includes(statement.operator) || statement.type === "AssignmentExpression" || statement.type === "LogicalExpression" || statement.type === "SequenceExpression" || @@ -916,18 +916,6 @@ module.exports = { } offsets.setDesiredOffsets([firstBodyToken.range[0], lastBodyToken.range[1]], lastParentToken, 1); - - /* - * For blockless nodes with semicolon-first style, don't indent the semicolon. - * e.g. - * if (foo) bar() - * ; [1, 2, 3].map(foo) - */ - const lastToken = sourceCode.getLastToken(node); - - if (node.type !== "EmptyStatement" && astUtils.isSemicolonToken(lastToken)) { - offsets.setDesiredOffset(lastToken, lastParentToken, 0); - } } } @@ -1271,6 +1259,50 @@ module.exports = { } }, + /* + * For blockless nodes with semicolon-first style, don't indent the semicolon. + * e.g. + * if (foo) + * bar() + * ; [1, 2, 3].map(foo) + * + * Traversal into the node sets indentation of the semicolon, so we need to override it on exit. + */ + ":matches(DoWhileStatement, ForStatement, ForInStatement, ForOfStatement, IfStatement, WhileStatement):exit"(node) { + let nodesToCheck; + + if (node.type === "IfStatement") { + nodesToCheck = [node.consequent]; + if (node.alternate) { + nodesToCheck.push(node.alternate); + } + } else { + nodesToCheck = [node.body]; + } + + for (const nodeToCheck of nodesToCheck) { + const lastToken = sourceCode.getLastToken(nodeToCheck); + + if (astUtils.isSemicolonToken(lastToken)) { + const tokenBeforeLast = sourceCode.getTokenBefore(lastToken); + const tokenAfterLast = sourceCode.getTokenAfter(lastToken); + + // override indentation of `;` only if its line looks like a semicolon-first style line + if ( + !astUtils.isTokenOnSameLine(tokenBeforeLast, lastToken) && + tokenAfterLast && + astUtils.isTokenOnSameLine(lastToken, tokenAfterLast) + ) { + offsets.setDesiredOffset( + lastToken, + sourceCode.getFirstToken(node), + 0 + ); + } + } + } + }, + ImportDeclaration(node) { if (node.specifiers.some(specifier => specifier.type === "ImportSpecifier")) { const openingCurly = sourceCode.getFirstToken(node, astUtils.isOpeningBraceToken); diff --git a/tools/node_modules/eslint/lib/rules/index.js b/tools/node_modules/eslint/lib/rules/index.js index 130b635c972716..aef47f5cadcf9e 100644 --- a/tools/node_modules/eslint/lib/rules/index.js +++ b/tools/node_modules/eslint/lib/rules/index.js @@ -103,6 +103,7 @@ module.exports = new LazyLoadingRuleMap(Object.entries({ "no-confusing-arrow": () => require("./no-confusing-arrow"), "no-console": () => require("./no-console"), "no-const-assign": () => require("./no-const-assign"), + "no-constant-binary-expression": () => require("./no-constant-binary-expression"), "no-constant-condition": () => require("./no-constant-condition"), "no-constructor-return": () => require("./no-constructor-return"), "no-continue": () => require("./no-continue"), diff --git a/tools/node_modules/eslint/lib/rules/jsx-quotes.js b/tools/node_modules/eslint/lib/rules/jsx-quotes.js index a0cdfaa62bedb8..f63dfd608bc057 100644 --- a/tools/node_modules/eslint/lib/rules/jsx-quotes.js +++ b/tools/node_modules/eslint/lib/rules/jsx-quotes.js @@ -70,7 +70,7 @@ module.exports = { * @public */ function usesExpectedQuotes(node) { - return node.value.indexOf(setting.quote) !== -1 || astUtils.isSurroundedBy(node.raw, setting.quote); + return node.value.includes(setting.quote) || astUtils.isSurroundedBy(node.raw, setting.quote); } return { diff --git a/tools/node_modules/eslint/lib/rules/lines-around-comment.js b/tools/node_modules/eslint/lib/rules/lines-around-comment.js index 74df09b01bd2b4..6b1cd5f848bd2c 100644 --- a/tools/node_modules/eslint/lib/rules/lines-around-comment.js +++ b/tools/node_modules/eslint/lib/rules/lines-around-comment.js @@ -141,7 +141,7 @@ module.exports = { comments = sourceCode.getAllComments(), commentLines = getCommentLineNums(comments), emptyLines = getEmptyLineNums(lines), - commentAndEmptyLines = commentLines.concat(emptyLines); + commentAndEmptyLines = new Set(commentLines.concat(emptyLines)); /** * Returns whether or not comments are on lines starting with or ending with code @@ -393,7 +393,7 @@ module.exports = { const nextTokenOrComment = sourceCode.getTokenAfter(token, { includeComments: true }); // check for newline before - if (!exceptionStartAllowed && before && !commentAndEmptyLines.includes(prevLineNum) && + if (!exceptionStartAllowed && before && !commentAndEmptyLines.has(prevLineNum) && !(astUtils.isCommentToken(previousTokenOrComment) && astUtils.isTokenOnSameLine(previousTokenOrComment, token))) { const lineStart = token.range[0] - token.loc.start.column; const range = [lineStart, lineStart]; @@ -408,7 +408,7 @@ module.exports = { } // check for newline after - if (!exceptionEndAllowed && after && !commentAndEmptyLines.includes(nextLineNum) && + if (!exceptionEndAllowed && after && !commentAndEmptyLines.has(nextLineNum) && !(astUtils.isCommentToken(nextTokenOrComment) && astUtils.isTokenOnSameLine(token, nextTokenOrComment))) { context.report({ node: token, diff --git a/tools/node_modules/eslint/lib/rules/max-lines.js b/tools/node_modules/eslint/lib/rules/max-lines.js index 31fc657a63c16e..772f02aff08c09 100644 --- a/tools/node_modules/eslint/lib/rules/max-lines.js +++ b/tools/node_modules/eslint/lib/rules/max-lines.js @@ -159,10 +159,10 @@ module.exports = { if (skipComments) { const comments = sourceCode.getAllComments(); - const commentLines = comments.flatMap(getLinesWithoutCode); + const commentLines = new Set(comments.flatMap(getLinesWithoutCode)); lines = lines.filter( - l => !commentLines.includes(l.lineNumber) + l => !commentLines.has(l.lineNumber) ); } diff --git a/tools/node_modules/eslint/lib/rules/max-statements.js b/tools/node_modules/eslint/lib/rules/max-statements.js index ac117e92e72593..1f627b6843ee08 100644 --- a/tools/node_modules/eslint/lib/rules/max-statements.js +++ b/tools/node_modules/eslint/lib/rules/max-statements.js @@ -126,7 +126,7 @@ module.exports = { /* * This rule does not apply to class static blocks, but we have to track them so - * that stataments in them do not count as statements in the enclosing function. + * that statements in them do not count as statements in the enclosing function. */ if (node.type === "StaticBlock") { return; diff --git a/tools/node_modules/eslint/lib/rules/newline-before-return.js b/tools/node_modules/eslint/lib/rules/newline-before-return.js index f4aa5166f0e8d1..d07c23658edcf0 100644 --- a/tools/node_modules/eslint/lib/rules/newline-before-return.js +++ b/tools/node_modules/eslint/lib/rules/newline-before-return.js @@ -47,7 +47,7 @@ module.exports = { function isPrecededByTokens(node, testTokens) { const tokenBefore = sourceCode.getTokenBefore(node); - return testTokens.some(token => tokenBefore.value === token); + return testTokens.includes(tokenBefore.value); } /** diff --git a/tools/node_modules/eslint/lib/rules/no-bitwise.js b/tools/node_modules/eslint/lib/rules/no-bitwise.js index 1de1619bffa8a0..43a1e764edc984 100644 --- a/tools/node_modules/eslint/lib/rules/no-bitwise.js +++ b/tools/node_modules/eslint/lib/rules/no-bitwise.js @@ -76,7 +76,7 @@ module.exports = { * @returns {boolean} Whether or not the node has a bitwise operator. */ function hasBitwiseOperator(node) { - return BITWISE_OPERATORS.indexOf(node.operator) !== -1; + return BITWISE_OPERATORS.includes(node.operator); } /** @@ -85,7 +85,7 @@ module.exports = { * @returns {boolean} Whether or not the node has a bitwise operator. */ function allowedOperator(node) { - return allowed.indexOf(node.operator) !== -1; + return allowed.includes(node.operator); } /** diff --git a/tools/node_modules/eslint/lib/rules/no-console.js b/tools/node_modules/eslint/lib/rules/no-console.js index c0802e23dc7240..464d5647cc3626 100644 --- a/tools/node_modules/eslint/lib/rules/no-console.js +++ b/tools/node_modules/eslint/lib/rules/no-console.js @@ -72,7 +72,7 @@ module.exports = { function isAllowed(node) { const propertyName = astUtils.getStaticPropertyName(node); - return propertyName && allowed.indexOf(propertyName) !== -1; + return propertyName && allowed.includes(propertyName); } /** diff --git a/tools/node_modules/eslint/lib/rules/no-constant-binary-expression.js b/tools/node_modules/eslint/lib/rules/no-constant-binary-expression.js new file mode 100644 index 00000000000000..6cad0eff3e56e3 --- /dev/null +++ b/tools/node_modules/eslint/lib/rules/no-constant-binary-expression.js @@ -0,0 +1,500 @@ +/** + * @fileoverview Rule to flag constant comparisons and logical expressions that always/never short circuit + * @author Jordan Eldredge + */ + +"use strict"; + +const globals = require("globals"); +const { isNullLiteral, isConstant, isReferenceToGlobalVariable, isLogicalAssignmentOperator } = require("./utils/ast-utils"); + +const NUMERIC_OR_STRING_BINARY_OPERATORS = new Set(["+", "-", "*", "/", "%", "|", "^", "&", "**", "<<", ">>", ">>>"]); + +//------------------------------------------------------------------------------ +// Helpers +//------------------------------------------------------------------------------ + +/** + * Test if an AST node has a statically knowable constant nullishness. Meaning, + * it will always resolve to a constant value of either: `null`, `undefined` + * or not `null` _or_ `undefined`. An expression that can vary between those + * three states at runtime would return `false`. + * @param {Scope} scope The scope in which the node was found. + * @param {ASTNode} node The AST node being tested. + * @returns {boolean} Does `node` have constant nullishness? + */ +function hasConstantNullishness(scope, node) { + switch (node.type) { + case "ObjectExpression": // Objects are never nullish + case "ArrayExpression": // Arrays are never nullish + case "ArrowFunctionExpression": // Functions never nullish + case "FunctionExpression": // Functions are never nullish + case "ClassExpression": // Classes are never nullish + case "NewExpression": // Objects are never nullish + case "Literal": // Nullish, or non-nullish, literals never change + case "TemplateLiteral": // A string is never nullish + case "UpdateExpression": // Numbers are never nullish + case "BinaryExpression": // Numbers, strings, or booleans are never nullish + return true; + case "CallExpression": { + if (node.callee.type !== "Identifier") { + return false; + } + const functionName = node.callee.name; + + return (functionName === "Boolean" || functionName === "String" || functionName === "Number") && + isReferenceToGlobalVariable(scope, node.callee); + } + case "AssignmentExpression": + if (node.operator === "=") { + return hasConstantNullishness(scope, node.right); + } + + /* + * Handling short-circuiting assignment operators would require + * walking the scope. We won't attempt that (for now...) / + */ + if (isLogicalAssignmentOperator(node.operator)) { + return false; + } + + /* + * The remaining assignment expressions all result in a numeric or + * string (non-nullish) value: + * "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&=" + */ + + return true; + case "UnaryExpression": + + /* + * "void" Always returns `undefined` + * "typeof" All types are strings, and thus non-nullish + * "!" Boolean is never nullish + * "delete" Returns a boolean, which is never nullish + * Math operators always return numbers or strings, neither of which + * are non-nullish "+", "-", "~" + */ + + return true; + case "SequenceExpression": { + const last = node.expressions[node.expressions.length - 1]; + + return hasConstantNullishness(scope, last); + } + case "Identifier": + return node.name === "undefined" && isReferenceToGlobalVariable(scope, node); + case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior. + case "JSXFragment": + return false; + default: + return false; + } +} + +/** + * Test if an AST node is a boolean value that never changes. Specifically we + * test for: + * 1. Literal booleans (`true` or `false`) + * 2. Unary `!` expressions with a constant value + * 3. Constant booleans created via the `Boolean` global function + * @param {Scope} scope The scope in which the node was found. + * @param {ASTNode} node The node to test + * @returns {boolean} Is `node` guaranteed to be a boolean? + */ +function isStaticBoolean(scope, node) { + switch (node.type) { + case "Literal": + return typeof node.value === "boolean"; + case "CallExpression": + return node.callee.type === "Identifier" && node.callee.name === "Boolean" && + isReferenceToGlobalVariable(scope, node.callee) && + (node.arguments.length === 0 || isConstant(scope, node.arguments[0], true)); + case "UnaryExpression": + return node.operator === "!" && isConstant(scope, node.argument, true); + default: + return false; + } +} + + +/** + * Test if an AST node will always give the same result when compared to a + * boolean value. Note that comparison to boolean values is different than + * truthiness. + * https://262.ecma-international.org/5.1/#sec-11.9.3 + * + * Javascript `==` operator works by converting the boolean to `1` (true) or + * `+0` (false) and then checks the values `==` equality to that number. + * @param {Scope} scope The scope in which node was found. + * @param {ASTNode} node The node to test. + * @returns {boolean} Will `node` always coerce to the same boolean value? + */ +function hasConstantLooseBooleanComparison(scope, node) { + switch (node.type) { + case "ObjectExpression": + case "ClassExpression": + + /** + * In theory objects like: + * + * `{toString: () => a}` + * `{valueOf: () => a}` + * + * Or a classes like: + * + * `class { static toString() { return a } }` + * `class { static valueOf() { return a } }` + * + * Are not constant verifiably when `inBooleanPosition` is + * false, but it's an edge case we've opted not to handle. + */ + return true; + case "ArrayExpression": { + const nonSpreadElements = node.elements.filter(e => + + // Elements can be `null` in sparse arrays: `[,,]`; + e !== null && e.type !== "SpreadElement"); + + + /* + * Possible future direction if needed: We could check if the + * single value would result in variable boolean comparison. + * For now we will err on the side of caution since `[x]` could + * evaluate to `[0]` or `[1]`. + */ + return node.elements.length === 0 || nonSpreadElements.length > 1; + } + case "ArrowFunctionExpression": + case "FunctionExpression": + return true; + case "UnaryExpression": + if (node.operator === "void" || // Always returns `undefined` + node.operator === "typeof" // All `typeof` strings, when coerced to number, are not 0 or 1. + ) { + return true; + } + if (node.operator === "!") { + return isConstant(scope, node.argument, true); + } + + /* + * We won't try to reason about +, -, ~, or delete + * In theory, for the mathematical operators, we could look at the + * argument and try to determine if it coerces to a constant numeric + * value. + */ + return false; + case "NewExpression": // Objects might have custom `.valueOf` or `.toString`. + return false; + case "CallExpression": { + if (node.callee.type === "Identifier" && + node.callee.name === "Boolean" && + isReferenceToGlobalVariable(scope, node.callee) + ) { + return node.arguments.length === 0 || isConstant(scope, node.arguments[0], true); + } + return false; + } + case "Literal": // True or false, literals never change + return true; + case "Identifier": + return node.name === "undefined" && isReferenceToGlobalVariable(scope, node); + case "TemplateLiteral": + + /* + * In theory we could try to check if the quasi are sufficient to + * prove that the expression will always be true, but it would be + * tricky to get right. For example: `000.${foo}000` + */ + return node.expressions.length === 0; + case "AssignmentExpression": + if (node.operator === "=") { + return hasConstantLooseBooleanComparison(scope, node.right); + } + + /* + * Handling short-circuiting assignment operators would require + * walking the scope. We won't attempt that (for now...) + * + * The remaining assignment expressions all result in a numeric or + * string (non-nullish) values which could be truthy or falsy: + * "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", "|=", "^=", "&=" + */ + return false; + case "SequenceExpression": { + const last = node.expressions[node.expressions.length - 1]; + + return hasConstantLooseBooleanComparison(scope, last); + } + case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior. + case "JSXFragment": + return false; + default: + return false; + } +} + + +/** + * Test if an AST node will always give the same result when _strictly_ compared + * to a boolean value. This can happen if the expression can never be boolean, or + * if it is always the same boolean value. + * @param {Scope} scope The scope in which the node was found. + * @param {ASTNode} node The node to test + * @returns {boolean} Will `node` always give the same result when compared to a + * static boolean value? + */ +function hasConstantStrictBooleanComparison(scope, node) { + switch (node.type) { + case "ObjectExpression": // Objects are not booleans + case "ArrayExpression": // Arrays are not booleans + case "ArrowFunctionExpression": // Functions are not booleans + case "FunctionExpression": + case "ClassExpression": // Classes are not booleans + case "NewExpression": // Objects are not booleans + case "TemplateLiteral": // Strings are not booleans + case "Literal": // True, false, or not boolean, literals never change. + case "UpdateExpression": // Numbers are not booleans + return true; + case "BinaryExpression": + return NUMERIC_OR_STRING_BINARY_OPERATORS.has(node.operator); + case "UnaryExpression": { + if (node.operator === "delete") { + return false; + } + if (node.operator === "!") { + return isConstant(scope, node.argument, true); + } + + /* + * The remaining operators return either strings or numbers, neither + * of which are boolean. + */ + return true; + } + case "SequenceExpression": { + const last = node.expressions[node.expressions.length - 1]; + + return hasConstantStrictBooleanComparison(scope, last); + } + case "Identifier": + return node.name === "undefined" && isReferenceToGlobalVariable(scope, node); + case "AssignmentExpression": + if (node.operator === "=") { + return hasConstantStrictBooleanComparison(scope, node.right); + } + + /* + * Handling short-circuiting assignment operators would require + * walking the scope. We won't attempt that (for now...) + */ + if (isLogicalAssignmentOperator(node.operator)) { + return false; + } + + /* + * The remaining assignment expressions all result in either a number + * or a string, neither of which can ever be boolean. + */ + return true; + case "CallExpression": { + if (node.callee.type !== "Identifier") { + return false; + } + const functionName = node.callee.name; + + if ( + (functionName === "String" || functionName === "Number") && + isReferenceToGlobalVariable(scope, node.callee) + ) { + return true; + } + if (functionName === "Boolean" && isReferenceToGlobalVariable(scope, node.callee)) { + return ( + node.arguments.length === 0 || isConstant(scope, node.arguments[0], true)); + } + return false; + } + case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior. + case "JSXFragment": + return false; + default: + return false; + } +} + +/** + * Test if an AST node will always result in a newly constructed object + * @param {Scope} scope The scope in which the node was found. + * @param {ASTNode} node The node to test + * @returns {boolean} Will `node` always be new? + */ +function isAlwaysNew(scope, node) { + switch (node.type) { + case "ObjectExpression": + case "ArrayExpression": + case "ArrowFunctionExpression": + case "FunctionExpression": + case "ClassExpression": + return true; + case "NewExpression": { + if (node.callee.type !== "Identifier") { + return false; + } + + /* + * All the built-in constructors are always new, but + * user-defined constructors could return a sentinel + * object. + * + * Catching these is especially useful for primitive constructures + * which return boxed values, a surprising gotcha' in JavaScript. + */ + return Object.hasOwnProperty.call(globals.builtin, node.callee.name) && + isReferenceToGlobalVariable(scope, node.callee); + } + case "Literal": + + // Regular expressions are objects, and thus always new + return typeof node.regex === "object"; + case "SequenceExpression": { + const last = node.expressions[node.expressions.length - 1]; + + return isAlwaysNew(scope, last); + } + case "AssignmentExpression": + if (node.operator === "=") { + return isAlwaysNew(scope, node.right); + } + return false; + case "ConditionalExpression": + return isAlwaysNew(scope, node.consequent) && isAlwaysNew(scope, node.alternate); + case "JSXElement": // ESLint has a policy of not assuming any specific JSX behavior. + case "JSXFragment": + return false; + default: + return false; + } +} + +/** + * Checks whether or not a node is `null` or `undefined`. Similar to the one + * found in ast-utils.js, but this one correctly handles the edge case that + * `undefined` has been redefined. + * @param {Scope} scope Scope in which the expression was found. + * @param {ASTNode} node A node to check. + * @returns {boolean} Whether or not the node is a `null` or `undefined`. + * @public + */ +function isNullOrUndefined(scope, node) { + return ( + isNullLiteral(node) || + (node.type === "Identifier" && node.name === "undefined" && isReferenceToGlobalVariable(scope, node)) || + (node.type === "UnaryExpression" && node.operator === "void") + ); +} + + +/** + * Checks if one operand will cause the result to be constant. + * @param {Scope} scope Scope in which the expression was found. + * @param {ASTNode} a One side of the expression + * @param {ASTNode} b The other side of the expression + * @param {string} operator The binary expression operator + * @returns {ASTNode | null} The node which will cause the expression to have a constant result. + */ +function findBinaryExpressionConstantOperand(scope, a, b, operator) { + if (operator === "==" || operator === "!=") { + if ( + (isNullOrUndefined(scope, a) && hasConstantNullishness(scope, b)) || + (isStaticBoolean(scope, a) && hasConstantLooseBooleanComparison(scope, b)) + ) { + return b; + } + } else if (operator === "===" || operator === "!==") { + if ( + (isNullOrUndefined(scope, a) && hasConstantNullishness(scope, b)) || + (isStaticBoolean(scope, a) && hasConstantStrictBooleanComparison(scope, b)) + ) { + return b; + } + } + return null; +} + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +/** @type {import('../shared/types').Rule} */ +module.exports = { + meta: { + type: "problem", + docs: { + description: "disallow expressions where the operation doesn't affect the value", + recommended: false, + url: "https://eslint.org/docs/rules/no-constant-binary-expression" + }, + schema: [], + messages: { + constantBinaryOperand: "Unexpected constant binary expression. Compares constantly with the {{otherSide}}-hand side of the `{{operator}}`.", + constantShortCircuit: "Unexpected constant {{property}} on the left-hand side of a `{{operator}}` expression.", + alwaysNew: "Unexpected comparison to newly constructed object. These two values can never be equal.", + bothAlwaysNew: "Unexpected comparison of two newly constructed objects. These two values can never be equal." + } + }, + + create(context) { + return { + LogicalExpression(node) { + const { operator, left } = node; + const scope = context.getScope(); + + if ((operator === "&&" || operator === "||") && isConstant(scope, left, true)) { + context.report({ node: left, messageId: "constantShortCircuit", data: { property: "truthiness", operator } }); + } else if (operator === "??" && hasConstantNullishness(scope, left)) { + context.report({ node: left, messageId: "constantShortCircuit", data: { property: "nullishness", operator } }); + } + }, + BinaryExpression(node) { + const scope = context.getScope(); + const { right, left, operator } = node; + const rightConstantOperand = findBinaryExpressionConstantOperand(scope, left, right, operator); + const leftConstantOperand = findBinaryExpressionConstantOperand(scope, right, left, operator); + + if (rightConstantOperand) { + context.report({ node: rightConstantOperand, messageId: "constantBinaryOperand", data: { operator, otherSide: "left" } }); + } else if (leftConstantOperand) { + context.report({ node: leftConstantOperand, messageId: "constantBinaryOperand", data: { operator, otherSide: "right" } }); + } else if (operator === "===" || operator === "!==") { + if (isAlwaysNew(scope, left)) { + context.report({ node: left, messageId: "alwaysNew" }); + } else if (isAlwaysNew(scope, right)) { + context.report({ node: right, messageId: "alwaysNew" }); + } + } else if (operator === "==" || operator === "!=") { + + /* + * If both sides are "new", then both sides are objects and + * therefore they will be compared by reference even with `==` + * equality. + */ + if (isAlwaysNew(scope, left) && isAlwaysNew(scope, right)) { + context.report({ node: left, messageId: "bothAlwaysNew" }); + } + } + + } + + /* + * In theory we could handle short-circuiting assignment operators, + * for some constant values, but that would require walking the + * scope to find the value of the variable being assigned. This is + * dependant on https://github.com/eslint/eslint/issues/13776 + * + * AssignmentExpression() {}, + */ + }; + } +}; diff --git a/tools/node_modules/eslint/lib/rules/no-constant-condition.js b/tools/node_modules/eslint/lib/rules/no-constant-condition.js index 3d08c689aef3f8..a0871fe972d012 100644 --- a/tools/node_modules/eslint/lib/rules/no-constant-condition.js +++ b/tools/node_modules/eslint/lib/rules/no-constant-condition.js @@ -5,6 +5,8 @@ "use strict"; +const { isConstant } = require("./utils/ast-utils"); + //------------------------------------------------------------------------------ // Helpers //------------------------------------------------------------------------------ @@ -53,201 +55,6 @@ module.exports = { // Helpers //-------------------------------------------------------------------------- - /** - * Returns literal's value converted to the Boolean type - * @param {ASTNode} node any `Literal` node - * @returns {boolean | null} `true` when node is truthy, `false` when node is falsy, - * `null` when it cannot be determined. - */ - function getBooleanValue(node) { - if (node.value === null) { - - /* - * it might be a null literal or bigint/regex literal in unsupported environments . - * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es5.md#regexpliteral - * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es2020.md#bigintliteral - */ - - if (node.raw === "null") { - return false; - } - - // regex is always truthy - if (typeof node.regex === "object") { - return true; - } - - return null; - } - - return !!node.value; - } - - /** - * Checks if a branch node of LogicalExpression short circuits the whole condition - * @param {ASTNode} node The branch of main condition which needs to be checked - * @param {string} operator The operator of the main LogicalExpression. - * @returns {boolean} true when condition short circuits whole condition - */ - function isLogicalIdentity(node, operator) { - switch (node.type) { - case "Literal": - return (operator === "||" && getBooleanValue(node) === true) || - (operator === "&&" && getBooleanValue(node) === false); - - case "UnaryExpression": - return (operator === "&&" && node.operator === "void"); - - case "LogicalExpression": - - /* - * handles `a && false || b` - * `false` is an identity element of `&&` but not `||` - */ - return operator === node.operator && - ( - isLogicalIdentity(node.left, operator) || - isLogicalIdentity(node.right, operator) - ); - - case "AssignmentExpression": - return ["||=", "&&="].includes(node.operator) && - operator === node.operator.slice(0, -1) && - isLogicalIdentity(node.right, operator); - - // no default - } - return false; - } - - /** - * Checks if an identifier is a reference to a global variable. - * @param {ASTNode} node An identifier node to check. - * @returns {boolean} `true` if the identifier is a reference to a global variable. - */ - function isReferenceToGlobalVariable(node) { - const scope = context.getScope(); - const reference = scope.references.find(ref => ref.identifier === node); - - return Boolean( - reference && - reference.resolved && - reference.resolved.scope.type === "global" && - reference.resolved.defs.length === 0 - ); - } - - /** - * Checks if a node has a constant truthiness value. - * @param {ASTNode} node The AST node to check. - * @param {boolean} inBooleanPosition `true` if checking the test of a - * condition. `false` in all other cases. When `false`, checks if -- for - * both string and number -- if coerced to that type, the value will - * be constant. - * @returns {Bool} true when node's truthiness is constant - * @private - */ - function isConstant(node, inBooleanPosition) { - - // node.elements can return null values in the case of sparse arrays ex. [,] - if (!node) { - return true; - } - switch (node.type) { - case "Literal": - case "ArrowFunctionExpression": - case "FunctionExpression": - return true; - case "ClassExpression": - case "ObjectExpression": - - /** - * In theory objects like: - * - * `{toString: () => a}` - * `{valueOf: () => a}` - * - * Or a classes like: - * - * `class { static toString() { return a } }` - * `class { static valueOf() { return a } }` - * - * Are not constant verifiably when `inBooleanPosition` is - * false, but it's an edge case we've opted not to handle. - */ - return true; - case "TemplateLiteral": - return (inBooleanPosition && node.quasis.some(quasi => quasi.value.cooked.length)) || - node.expressions.every(exp => isConstant(exp, false)); - - case "ArrayExpression": { - if (!inBooleanPosition) { - return node.elements.every(element => isConstant(element, false)); - } - return true; - } - - case "UnaryExpression": - if ( - node.operator === "void" || - node.operator === "typeof" && inBooleanPosition - ) { - return true; - } - - if (node.operator === "!") { - return isConstant(node.argument, true); - } - - return isConstant(node.argument, false); - - case "BinaryExpression": - return isConstant(node.left, false) && - isConstant(node.right, false) && - node.operator !== "in"; - - case "LogicalExpression": { - const isLeftConstant = isConstant(node.left, inBooleanPosition); - const isRightConstant = isConstant(node.right, inBooleanPosition); - const isLeftShortCircuit = (isLeftConstant && isLogicalIdentity(node.left, node.operator)); - const isRightShortCircuit = (inBooleanPosition && isRightConstant && isLogicalIdentity(node.right, node.operator)); - - return (isLeftConstant && isRightConstant) || - isLeftShortCircuit || - isRightShortCircuit; - } - case "NewExpression": - return inBooleanPosition; - case "AssignmentExpression": - if (node.operator === "=") { - return isConstant(node.right, inBooleanPosition); - } - - if (["||=", "&&="].includes(node.operator) && inBooleanPosition) { - return isLogicalIdentity(node.right, node.operator.slice(0, -1)); - } - - return false; - - case "SequenceExpression": - return isConstant(node.expressions[node.expressions.length - 1], inBooleanPosition); - case "SpreadElement": - return isConstant(node.argument, inBooleanPosition); - case "CallExpression": - if (node.callee.type === "Identifier" && node.callee.name === "Boolean") { - if (node.arguments.length === 0 || isConstant(node.arguments[0], true)) { - return isReferenceToGlobalVariable(node.callee); - } - } - return false; - case "Identifier": - return node.name === "undefined" && isReferenceToGlobalVariable(node); - - // no default - } - return false; - } - /** * Tracks when the given node contains a constant condition. * @param {ASTNode} node The AST node to check. @@ -255,7 +62,7 @@ module.exports = { * @private */ function trackConstantConditionLoop(node) { - if (node.test && isConstant(node.test, true)) { + if (node.test && isConstant(context.getScope(), node.test, true)) { loopsInCurrentScope.add(node); } } @@ -280,7 +87,7 @@ module.exports = { * @private */ function reportIfConstant(node) { - if (node.test && isConstant(node.test, true)) { + if (node.test && isConstant(context.getScope(), node.test, true)) { context.report({ node: node.test, messageId: "unexpected" }); } } diff --git a/tools/node_modules/eslint/lib/rules/no-control-regex.js b/tools/node_modules/eslint/lib/rules/no-control-regex.js index 04f3449fb1931e..00278f5c1451c8 100644 --- a/tools/node_modules/eslint/lib/rules/no-control-regex.js +++ b/tools/node_modules/eslint/lib/rules/no-control-regex.js @@ -30,10 +30,12 @@ const collector = new (class { } } - collectControlChars(regexpStr) { + collectControlChars(regexpStr, flags) { + const uFlag = typeof flags === "string" && flags.includes("u"); + try { this._source = regexpStr; - this._validator.validatePattern(regexpStr); // Call onCharacter hook + this._validator.validatePattern(regexpStr, void 0, void 0, uFlag); // Call onCharacter hook } catch { // Ignore syntax errors in RegExp. @@ -68,13 +70,15 @@ module.exports = { /** * Get the regex expression - * @param {ASTNode} node node to evaluate - * @returns {RegExp|null} Regex if found else null + * @param {ASTNode} node `Literal` node to evaluate + * @returns {{ pattern: string, flags: string | null } | null} Regex if found (the given node is either a regex literal + * or a string literal that is the pattern argument of a RegExp constructor call). Otherwise `null`. If flags cannot be determined, + * the `flags` property will be `null`. * @private */ - function getRegExpPattern(node) { + function getRegExp(node) { if (node.regex) { - return node.regex.pattern; + return node.regex; } if (typeof node.value === "string" && (node.parent.type === "NewExpression" || node.parent.type === "CallExpression") && @@ -82,7 +86,15 @@ module.exports = { node.parent.callee.name === "RegExp" && node.parent.arguments[0] === node ) { - return node.value; + const pattern = node.value; + const flags = + node.parent.arguments.length > 1 && + node.parent.arguments[1].type === "Literal" && + typeof node.parent.arguments[1].value === "string" + ? node.parent.arguments[1].value + : null; + + return { pattern, flags }; } return null; @@ -90,10 +102,11 @@ module.exports = { return { Literal(node) { - const pattern = getRegExpPattern(node); + const regExp = getRegExp(node); - if (pattern) { - const controlCharacters = collector.collectControlChars(pattern); + if (regExp) { + const { pattern, flags } = regExp; + const controlCharacters = collector.collectControlChars(pattern, flags); if (controlCharacters.length > 0) { context.report({ diff --git a/tools/node_modules/eslint/lib/rules/no-empty-function.js b/tools/node_modules/eslint/lib/rules/no-empty-function.js index 6e73d63b98a4fc..e23b69e537b787 100644 --- a/tools/node_modules/eslint/lib/rules/no-empty-function.js +++ b/tools/node_modules/eslint/lib/rules/no-empty-function.js @@ -144,7 +144,7 @@ module.exports = { filter: astUtils.isCommentToken }); - if (allowed.indexOf(kind) === -1 && + if (!allowed.includes(kind) && node.body.type === "BlockStatement" && node.body.body.length === 0 && innerComments.length === 0 diff --git a/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js b/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js index f45ac616ed9077..ddb1d8330d5cf5 100644 --- a/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js +++ b/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js @@ -51,13 +51,13 @@ module.exports = { const sourceCode = context.getSourceCode(); // Node types which have a test which will coerce values to booleans. - const BOOLEAN_NODE_TYPES = [ + const BOOLEAN_NODE_TYPES = new Set([ "IfStatement", "DoWhileStatement", "WhileStatement", "ConditionalExpression", "ForStatement" - ]; + ]); /** * Check if a node is a Boolean function or constructor. @@ -95,7 +95,7 @@ module.exports = { (isBooleanFunctionOrConstructorCall(node.parent) && node === node.parent.arguments[0]) || - (BOOLEAN_NODE_TYPES.indexOf(node.parent.type) !== -1 && + (BOOLEAN_NODE_TYPES.has(node.parent.type) && node === node.parent.test) || // ! diff --git a/tools/node_modules/eslint/lib/rules/no-extra-semi.js b/tools/node_modules/eslint/lib/rules/no-extra-semi.js index 89d9fce57f0576..625310eea69f3c 100644 --- a/tools/node_modules/eslint/lib/rules/no-extra-semi.js +++ b/tools/node_modules/eslint/lib/rules/no-extra-semi.js @@ -98,7 +98,7 @@ module.exports = { "WithStatement" ]; - if (allowedParentTypes.indexOf(parent.type) === -1) { + if (!allowedParentTypes.includes(parent.type)) { report(node); } }, diff --git a/tools/node_modules/eslint/lib/rules/no-global-assign.js b/tools/node_modules/eslint/lib/rules/no-global-assign.js index 340c6c798c39fb..1225baec5ded4e 100644 --- a/tools/node_modules/eslint/lib/rules/no-global-assign.js +++ b/tools/node_modules/eslint/lib/rules/no-global-assign.js @@ -78,7 +78,7 @@ module.exports = { * @returns {void} */ function checkVariable(variable) { - if (variable.writeable === false && exceptions.indexOf(variable.name) === -1) { + if (variable.writeable === false && !exceptions.includes(variable.name)) { variable.references.forEach(checkReference); } } diff --git a/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js b/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js index f646093f55581b..428f63b81db6e6 100644 --- a/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js +++ b/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js @@ -30,9 +30,9 @@ function parseOptions(options) { } /** - * Checks whether or not a node is a double logical nigating. + * Checks whether or not a node is a double logical negating. * @param {ASTNode} node An UnaryExpression node to check. - * @returns {boolean} Whether or not the node is a double logical nigating. + * @returns {boolean} Whether or not the node is a double logical negating. */ function isDoubleLogicalNegating(node) { return ( @@ -257,7 +257,7 @@ module.exports = { let operatorAllowed; // !!foo - operatorAllowed = options.allow.indexOf("!!") >= 0; + operatorAllowed = options.allow.includes("!!"); if (!operatorAllowed && options.boolean && isDoubleLogicalNegating(node)) { const recommendation = `Boolean(${sourceCode.getText(node.argument.argument)})`; @@ -265,7 +265,7 @@ module.exports = { } // ~foo.indexOf(bar) - operatorAllowed = options.allow.indexOf("~") >= 0; + operatorAllowed = options.allow.includes("~"); if (!operatorAllowed && options.boolean && isBinaryNegatingOfIndexOf(node)) { // `foo?.indexOf(bar) !== -1` will be true (== found) if the `foo` is nullish. So use `>= 0` in that case. @@ -276,7 +276,7 @@ module.exports = { } // +foo - operatorAllowed = options.allow.indexOf("+") >= 0; + operatorAllowed = options.allow.includes("+"); if (!operatorAllowed && options.number && node.operator === "+" && !isNumeric(node.argument)) { const recommendation = `Number(${sourceCode.getText(node.argument)})`; @@ -289,7 +289,7 @@ module.exports = { let operatorAllowed; // 1 * foo - operatorAllowed = options.allow.indexOf("*") >= 0; + operatorAllowed = options.allow.includes("*"); const nonNumericOperand = !operatorAllowed && options.number && isMultiplyByOne(node) && getNonNumericOperand(node); if (nonNumericOperand) { @@ -299,7 +299,7 @@ module.exports = { } // "" + foo - operatorAllowed = options.allow.indexOf("+") >= 0; + operatorAllowed = options.allow.includes("+"); if (!operatorAllowed && options.string && isConcatWithEmptyString(node)) { const recommendation = `String(${sourceCode.getText(getNonEmptyOperand(node))})`; @@ -310,7 +310,7 @@ module.exports = { AssignmentExpression(node) { // foo += "" - const operatorAllowed = options.allow.indexOf("+") >= 0; + const operatorAllowed = options.allow.includes("+"); if (!operatorAllowed && options.string && isAppendEmptyString(node)) { const code = sourceCode.getText(getNonEmptyOperand(node)); diff --git a/tools/node_modules/eslint/lib/rules/no-loop-func.js b/tools/node_modules/eslint/lib/rules/no-loop-func.js index c5460616dc13cc..d087974e64bf12 100644 --- a/tools/node_modules/eslint/lib/rules/no-loop-func.js +++ b/tools/node_modules/eslint/lib/rules/no-loop-func.js @@ -125,7 +125,7 @@ function isSafe(loopNode, reference) { * The reference is every reference of the upper scope's variable we are * looking now. * - * It's safeafe if the reference matches one of the following condition. + * It's safe if the reference matches one of the following condition. * - is readonly. * - doesn't exist inside a local function and after the border. * @param {eslint-scope.Reference} upperRef A reference to check. diff --git a/tools/node_modules/eslint/lib/rules/no-magic-numbers.js b/tools/node_modules/eslint/lib/rules/no-magic-numbers.js index dfcd593ecbef51..6b4cf77c32630f 100644 --- a/tools/node_modules/eslint/lib/rules/no-magic-numbers.js +++ b/tools/node_modules/eslint/lib/rules/no-magic-numbers.js @@ -80,7 +80,7 @@ module.exports = { const config = context.options[0] || {}, detectObjects = !!config.detectObjects, enforceConst = !!config.enforceConst, - ignore = (config.ignore || []).map(normalizeIgnoreValue), + ignore = new Set((config.ignore || []).map(normalizeIgnoreValue)), ignoreArrayIndexes = !!config.ignoreArrayIndexes, ignoreDefaultValues = !!config.ignoreDefaultValues; @@ -92,7 +92,7 @@ module.exports = { * @returns {boolean} true if the value is ignored */ function isIgnoredValue(value) { - return ignore.indexOf(value) !== -1; + return ignore.has(value); } /** @@ -209,7 +209,7 @@ module.exports = { }); } } else if ( - okTypes.indexOf(parent.type) === -1 || + !okTypes.includes(parent.type) || (parent.type === "AssignmentExpression" && parent.left.type === "Identifier") ) { context.report({ diff --git a/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js b/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js index 94b28784a1032f..d3d9d382ac58b1 100644 --- a/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js +++ b/tools/node_modules/eslint/lib/rules/no-misleading-character-class.js @@ -4,13 +4,16 @@ "use strict"; const { CALL, CONSTRUCT, ReferenceTracker, getStringIfConstant } = require("eslint-utils"); -const { RegExpParser, visitRegExpAST } = require("regexpp"); +const { RegExpValidator, RegExpParser, visitRegExpAST } = require("regexpp"); const { isCombiningCharacter, isEmojiModifier, isRegionalIndicatorSymbol, isSurrogatePair } = require("./utils/unicode"); +const astUtils = require("./utils/ast-utils.js"); //------------------------------------------------------------------------------ // Helpers //------------------------------------------------------------------------------ +const REGEXPP_LATEST_ECMA_VERSION = 2022; + /** * Iterate character sequences of a given nodes. * @@ -109,6 +112,8 @@ module.exports = { url: "https://eslint.org/docs/rules/no-misleading-character-class" }, + hasSuggestions: true, + schema: [], messages: { @@ -116,10 +121,12 @@ module.exports = { combiningClass: "Unexpected combined character in character class.", emojiModifier: "Unexpected modified Emoji in character class.", regionalIndicatorSymbol: "Unexpected national flag in character class.", - zwj: "Unexpected joined character sequence in character class." + zwj: "Unexpected joined character sequence in character class.", + suggestUnicodeFlag: "Add unicode 'u' flag to regex." } }, create(context) { + const sourceCode = context.getSourceCode(); const parser = new RegExpParser(); /** @@ -127,17 +134,10 @@ module.exports = { * @param {Node} node The node to report. * @param {string} pattern The regular expression pattern to verify. * @param {string} flags The flags of the regular expression. + * @param {Function} unicodeFixer Fixer for missing "u" flag. * @returns {void} */ - function verify(node, pattern, flags) { - const has = { - surrogatePairWithoutUFlag: false, - combiningClass: false, - variationSelector: false, - emojiModifier: false, - regionalIndicatorSymbol: false, - zwj: false - }; + function verify(node, pattern, flags, unicodeFixer) { let patternNode; try { @@ -153,26 +153,75 @@ module.exports = { return; } + const foundKinds = new Set(); + visitRegExpAST(patternNode, { onCharacterClassEnter(ccNode) { for (const chars of iterateCharacterSequence(ccNode.elements)) { for (const kind of kinds) { - has[kind] = has[kind] || hasCharacterSequence[kind](chars); + if (hasCharacterSequence[kind](chars)) { + foundKinds.add(kind); + } } } } }); - for (const kind of kinds) { - if (has[kind]) { - context.report({ node, messageId: kind }); + for (const kind of foundKinds) { + let suggest; + + if (kind === "surrogatePairWithoutUFlag") { + suggest = [{ + messageId: "suggestUnicodeFlag", + fix: unicodeFixer + }]; } + + context.report({ + node, + messageId: kind, + suggest + }); } } + /** + * Checks if the given regular expression pattern would be valid with the `u` flag. + * @param {string} pattern The regular expression pattern to verify. + * @returns {boolean} `true` if the pattern would be valid with the `u` flag. + * `false` if the pattern would be invalid with the `u` flag or the configured + * ecmaVersion doesn't support the `u` flag. + */ + function isValidWithUnicodeFlag(pattern) { + const { ecmaVersion } = context.parserOptions; + + // ecmaVersion is unknown or it doesn't support the 'u' flag + if (typeof ecmaVersion !== "number" || ecmaVersion <= 5) { + return false; + } + + const validator = new RegExpValidator({ + ecmaVersion: Math.min(ecmaVersion + 2009, REGEXPP_LATEST_ECMA_VERSION) + }); + + try { + validator.validatePattern(pattern, void 0, void 0, /* uFlag = */ true); + } catch { + return false; + } + + return true; + } + return { "Literal[regex]"(node) { - verify(node, node.regex.pattern, node.regex.flags); + verify(node, node.regex.pattern, node.regex.flags, fixer => { + if (!isValidWithUnicodeFlag(node.regex.pattern)) { + return null; + } + + return fixer.insertTextAfter(node, "u"); + }); }, "Program"() { const scope = context.getScope(); @@ -191,7 +240,31 @@ module.exports = { const flags = getStringIfConstant(flagsNode, scope); if (typeof pattern === "string") { - verify(node, pattern, flags || ""); + verify(node, pattern, flags || "", fixer => { + + if (!isValidWithUnicodeFlag(pattern)) { + return null; + } + + if (node.arguments.length === 1) { + const penultimateToken = sourceCode.getLastToken(node, { skip: 1 }); // skip closing parenthesis + + return fixer.insertTextAfter( + penultimateToken, + astUtils.isCommaToken(penultimateToken) + ? ' "u",' + : ', "u"' + ); + } + + if ((flagsNode.type === "Literal" && typeof flagsNode.value === "string") || flagsNode.type === "TemplateLiteral") { + const range = [flagsNode.range[0], flagsNode.range[1] - 1]; + + return fixer.insertTextAfterRange(range, "u"); + } + + return null; + }); } } } diff --git a/tools/node_modules/eslint/lib/rules/no-mixed-operators.js b/tools/node_modules/eslint/lib/rules/no-mixed-operators.js index c75d01147c9030..0cace7ea910450 100644 --- a/tools/node_modules/eslint/lib/rules/no-mixed-operators.js +++ b/tools/node_modules/eslint/lib/rules/no-mixed-operators.js @@ -64,7 +64,7 @@ function normalizeOptions(options = {}) { * @returns {boolean} `true` if such group existed. */ function includesBothInAGroup(groups, left, right) { - return groups.some(group => group.indexOf(left) !== -1 && group.indexOf(right) !== -1); + return groups.some(group => group.includes(left) && group.includes(right)); } /** diff --git a/tools/node_modules/eslint/lib/rules/no-mixed-requires.js b/tools/node_modules/eslint/lib/rules/no-mixed-requires.js index 5e05cf7a72adcb..97064243ed3b9c 100644 --- a/tools/node_modules/eslint/lib/rules/no-mixed-requires.js +++ b/tools/node_modules/eslint/lib/rules/no-mixed-requires.js @@ -160,7 +160,7 @@ module.exports = { return REQ_COMPUTED; } - if (BUILTIN_MODULES.indexOf(arg.value) !== -1) { + if (BUILTIN_MODULES.includes(arg.value)) { // "var fs = require('fs');" return REQ_CORE; diff --git a/tools/node_modules/eslint/lib/rules/no-multi-spaces.js b/tools/node_modules/eslint/lib/rules/no-multi-spaces.js index e37aae0a16e9e1..6fac7e3ca7ef05 100644 --- a/tools/node_modules/eslint/lib/rules/no-multi-spaces.js +++ b/tools/node_modules/eslint/lib/rules/no-multi-spaces.js @@ -56,7 +56,7 @@ module.exports = { const options = context.options[0] || {}; const ignoreEOLComments = options.ignoreEOLComments; const exceptions = Object.assign({ Property: true }, options.exceptions); - const hasExceptions = Object.keys(exceptions).filter(key => exceptions[key]).length > 0; + const hasExceptions = Object.keys(exceptions).some(key => exceptions[key]); /** * Formats value of given comment token for error message by truncating its length. diff --git a/tools/node_modules/eslint/lib/rules/no-native-reassign.js b/tools/node_modules/eslint/lib/rules/no-native-reassign.js index 1814a5b3c5b6cc..5f396e404c60b3 100644 --- a/tools/node_modules/eslint/lib/rules/no-native-reassign.js +++ b/tools/node_modules/eslint/lib/rules/no-native-reassign.js @@ -81,7 +81,7 @@ module.exports = { * @returns {void} */ function checkVariable(variable) { - if (variable.writeable === false && exceptions.indexOf(variable.name) === -1) { + if (variable.writeable === false && !exceptions.includes(variable.name)) { variable.references.forEach(checkReference); } } diff --git a/tools/node_modules/eslint/lib/rules/no-new-object.js b/tools/node_modules/eslint/lib/rules/no-new-object.js index 1a5784df24d6a7..02ff772678c9ba 100644 --- a/tools/node_modules/eslint/lib/rules/no-new-object.js +++ b/tools/node_modules/eslint/lib/rules/no-new-object.js @@ -29,7 +29,7 @@ module.exports = { schema: [], messages: { - preferLiteral: "The object literal notation {} is preferrable." + preferLiteral: "The object literal notation {} is preferable." } }, diff --git a/tools/node_modules/eslint/lib/rules/no-new-wrappers.js b/tools/node_modules/eslint/lib/rules/no-new-wrappers.js index 4667d581f65447..1fe06c1943e750 100644 --- a/tools/node_modules/eslint/lib/rules/no-new-wrappers.js +++ b/tools/node_modules/eslint/lib/rules/no-new-wrappers.js @@ -34,7 +34,7 @@ module.exports = { NewExpression(node) { const wrapperObjects = ["String", "Number", "Boolean"]; - if (wrapperObjects.indexOf(node.callee.name) > -1) { + if (wrapperObjects.includes(node.callee.name)) { context.report({ node, messageId: "noConstructor", diff --git a/tools/node_modules/eslint/lib/rules/no-octal.js b/tools/node_modules/eslint/lib/rules/no-octal.js index 44df45fdacda79..9d05455cdac927 100644 --- a/tools/node_modules/eslint/lib/rules/no-octal.js +++ b/tools/node_modules/eslint/lib/rules/no-octal.js @@ -23,7 +23,7 @@ module.exports = { schema: [], messages: { - noOcatal: "Octal literals should not be used." + noOctal: "Octal literals should not be used." } }, @@ -35,7 +35,7 @@ module.exports = { if (typeof node.value === "number" && /^0[0-9]/u.test(node.raw)) { context.report({ node, - messageId: "noOcatal" + messageId: "noOctal" }); } } diff --git a/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js b/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js index ae736981e71865..dc12669c87d1d4 100644 --- a/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js +++ b/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js @@ -33,11 +33,11 @@ module.exports = { }, create(context) { - const DISALLOWED_PROPS = [ + const DISALLOWED_PROPS = new Set([ "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable" - ]; + ]); /** * Reports if a disallowed property is used in a CallExpression @@ -54,7 +54,7 @@ module.exports = { const propName = astUtils.getStaticPropertyName(callee); - if (propName !== null && DISALLOWED_PROPS.indexOf(propName) > -1) { + if (propName !== null && DISALLOWED_PROPS.has(propName)) { context.report({ messageId: "prototypeBuildIn", loc: callee.property.loc, diff --git a/tools/node_modules/eslint/lib/rules/no-shadow.js b/tools/node_modules/eslint/lib/rules/no-shadow.js index 43d7d738e29503..b4ef334efdd3ab 100644 --- a/tools/node_modules/eslint/lib/rules/no-shadow.js +++ b/tools/node_modules/eslint/lib/rules/no-shadow.js @@ -15,8 +15,8 @@ const astUtils = require("./utils/ast-utils"); // Helpers //------------------------------------------------------------------------------ -const FUNC_EXPR_NODE_TYPES = ["ArrowFunctionExpression", "FunctionExpression"]; -const CALL_EXPR_NODE_TYPE = ["CallExpression"]; +const FUNC_EXPR_NODE_TYPES = new Set(["ArrowFunctionExpression", "FunctionExpression"]); +const CALL_EXPR_NODE_TYPE = new Set(["CallExpression"]); const FOR_IN_OF_TYPE = /^For(?:In|Of)Statement$/u; const SENTINEL_TYPE = /^(?:(?:Function|Class)(?:Declaration|Expression)|ArrowFunctionExpression|CatchClause|ImportDeclaration|ExportNamedDeclaration)$/u; @@ -123,7 +123,7 @@ module.exports = { const { variableScope } = variable.scope; - if (!(FUNC_EXPR_NODE_TYPES.includes(variableScope.block.type) && getOuterScope(variableScope) === shadowedVariable.scope)) { + if (!(FUNC_EXPR_NODE_TYPES.has(variableScope.block.type) && getOuterScope(variableScope) === shadowedVariable.scope)) { return false; } @@ -132,7 +132,7 @@ module.exports = { const callExpression = findSelfOrAncestor( parent, - node => CALL_EXPR_NODE_TYPE.includes(node.type) + node => CALL_EXPR_NODE_TYPE.has(node.type) ); if (!callExpression) { @@ -173,7 +173,7 @@ module.exports = { * @returns {boolean} Whether or not the variable name is allowed. */ function isAllowed(variable) { - return options.allow.indexOf(variable.name) !== -1; + return options.allow.includes(variable.name); } /** diff --git a/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js b/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js index c95bc203c4a96c..ff5c2cf997887e 100644 --- a/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js +++ b/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js @@ -37,7 +37,7 @@ module.exports = { ArrayExpression(node) { - const emptySpot = node.elements.indexOf(null) > -1; + const emptySpot = node.elements.includes(null); if (emptySpot) { context.report({ node, messageId: "unexpectedSparseArray" }); diff --git a/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js b/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js index 0ab41feb03c22f..a3a9f65003202e 100644 --- a/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js +++ b/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js @@ -49,6 +49,10 @@ module.exports = { allowFunctionParams: { type: "boolean", default: true + }, + enforceInClassFields: { + type: "boolean", + default: false } }, additionalProperties: false @@ -68,6 +72,7 @@ module.exports = { const allowAfterSuper = typeof options.allowAfterSuper !== "undefined" ? options.allowAfterSuper : false; const allowAfterThisConstructor = typeof options.allowAfterThisConstructor !== "undefined" ? options.allowAfterThisConstructor : false; const enforceInMethodNames = typeof options.enforceInMethodNames !== "undefined" ? options.enforceInMethodNames : false; + const enforceInClassFields = typeof options.enforceInClassFields !== "undefined" ? options.enforceInClassFields : false; const allowFunctionParams = typeof options.allowFunctionParams !== "undefined" ? options.allowFunctionParams : true; //------------------------------------------------------------------------- @@ -81,7 +86,7 @@ module.exports = { * @private */ function isAllowed(identifier) { - return ALLOWED_VARIABLES.some(ident => ident === identifier); + return ALLOWED_VARIABLES.includes(identifier); } /** @@ -261,6 +266,30 @@ module.exports = { } } + /** + * Check if a class field has a dangling underscore + * @param {ASTNode} node node to evaluate + * @returns {void} + * @private + */ + function checkForDanglingUnderscoreInClassField(node) { + const identifier = node.key.name; + + if (typeof identifier !== "undefined" && hasDanglingUnderscore(identifier) && + enforceInClassFields && + !isAllowed(identifier)) { + context.report({ + node, + messageId: "unexpectedUnderscore", + data: { + identifier: node.key.type === "PrivateIdentifier" + ? `#${identifier}` + : identifier + } + }); + } + } + //-------------------------------------------------------------------------- // Public API //-------------------------------------------------------------------------- @@ -270,7 +299,7 @@ module.exports = { VariableDeclarator: checkForDanglingUnderscoreInVariableExpression, MemberExpression: checkForDanglingUnderscoreInMemberExpression, MethodDefinition: checkForDanglingUnderscoreInMethod, - PropertyDefinition: checkForDanglingUnderscoreInMethod, + PropertyDefinition: checkForDanglingUnderscoreInClassField, Property: checkForDanglingUnderscoreInMethod, FunctionExpression: checkForDanglingUnderscoreInFunction, ArrowFunctionExpression: checkForDanglingUnderscoreInFunction diff --git a/tools/node_modules/eslint/lib/rules/no-unused-expressions.js b/tools/node_modules/eslint/lib/rules/no-unused-expressions.js index 68a7ebd5e00cea..e90099d6201eeb 100644 --- a/tools/node_modules/eslint/lib/rules/no-unused-expressions.js +++ b/tools/node_modules/eslint/lib/rules/no-unused-expressions.js @@ -124,7 +124,7 @@ module.exports = { */ return (parent.type === "Program" || parent.type === "BlockStatement" && (/Function/u.test(grandparent.type))) && - directives(parent).indexOf(node) >= 0; + directives(parent).includes(node); } /** diff --git a/tools/node_modules/eslint/lib/rules/no-unused-vars.js b/tools/node_modules/eslint/lib/rules/no-unused-vars.js index 54e33705f7ff14..2114e6f6aacb65 100644 --- a/tools/node_modules/eslint/lib/rules/no-unused-vars.js +++ b/tools/node_modules/eslint/lib/rules/no-unused-vars.js @@ -259,7 +259,7 @@ module.exports = { let scope = ref.from; while (scope) { - if (nodes.indexOf(scope.block) >= 0) { + if (nodes.includes(scope.block)) { return true; } @@ -484,12 +484,12 @@ module.exports = { } /** - * Determine if an identifier is used either in for-in loops. + * Determine if an identifier is used either in for-in or for-of loops. * @param {Reference} ref The reference to check. * @returns {boolean} whether reference is used in the for-in loops * @private */ - function isForInRef(ref) { + function isForInOfRef(ref) { let target = ref.identifier.parent; @@ -498,7 +498,7 @@ module.exports = { target = target.parent.parent; } - if (target.type !== "ForInStatement") { + if (target.type !== "ForInStatement" && target.type !== "ForOfStatement") { return false; } @@ -531,7 +531,7 @@ module.exports = { let rhsNode = null; return variable.references.some(ref => { - if (isForInRef(ref)) { + if (isForInOfRef(ref)) { return true; } diff --git a/tools/node_modules/eslint/lib/rules/no-use-before-define.js b/tools/node_modules/eslint/lib/rules/no-use-before-define.js index 07d035c431ff12..0dc4d76817bb38 100644 --- a/tools/node_modules/eslint/lib/rules/no-use-before-define.js +++ b/tools/node_modules/eslint/lib/rules/no-use-before-define.js @@ -21,6 +21,7 @@ function parseOptions(options) { let functions = true; let classes = true; let variables = true; + let allowNamedExports = false; if (typeof options === "string") { functions = (options !== "nofunc"); @@ -28,9 +29,10 @@ function parseOptions(options) { functions = options.functions !== false; classes = options.classes !== false; variables = options.variables !== false; + allowNamedExports = !!options.allowNamedExports; } - return { functions, classes, variables }; + return { functions, classes, variables, allowNamedExports }; } /** @@ -240,7 +242,8 @@ module.exports = { properties: { functions: { type: "boolean" }, classes: { type: "boolean" }, - variables: { type: "boolean" } + variables: { type: "boolean" }, + allowNamedExports: { type: "boolean" } }, additionalProperties: false } @@ -273,6 +276,16 @@ module.exports = { return false; } + const { identifier } = reference; + + if ( + options.allowNamedExports && + identifier.parent.type === "ExportSpecifier" && + identifier.parent.local === identifier + ) { + return false; + } + const variable = reference.resolved; if (!variable || variable.defs.length === 0) { diff --git a/tools/node_modules/eslint/lib/rules/operator-assignment.js b/tools/node_modules/eslint/lib/rules/operator-assignment.js index 50cdff9f9a0aa9..8b9fb5bd73b800 100644 --- a/tools/node_modules/eslint/lib/rules/operator-assignment.js +++ b/tools/node_modules/eslint/lib/rules/operator-assignment.js @@ -22,7 +22,7 @@ const astUtils = require("./utils/ast-utils"); * shorthand form. */ function isCommutativeOperatorWithShorthand(operator) { - return ["*", "&", "^", "|"].indexOf(operator) >= 0; + return ["*", "&", "^", "|"].includes(operator); } /** @@ -33,7 +33,7 @@ function isCommutativeOperatorWithShorthand(operator) { * a shorthand form. */ function isNonCommutativeOperatorWithShorthand(operator) { - return ["+", "-", "/", "%", "<<", ">>", ">>>", "**"].indexOf(operator) >= 0; + return ["+", "-", "/", "%", "<<", ">>", ">>>", "**"].includes(operator); } //------------------------------------------------------------------------------ diff --git a/tools/node_modules/eslint/lib/rules/prefer-const.js b/tools/node_modules/eslint/lib/rules/prefer-const.js index 190860019d8e8f..cf07d6ce714f52 100644 --- a/tools/node_modules/eslint/lib/rules/prefer-const.js +++ b/tools/node_modules/eslint/lib/rules/prefer-const.js @@ -60,7 +60,7 @@ function canBecomeVariableDeclaration(identifier) { */ function isOuterVariableInDestructing(name, initScope) { - if (initScope.through.find(ref => ref.resolved && ref.resolved.name === name)) { + if (initScope.through.some(ref => ref.resolved && ref.resolved.name === name)) { return true; } diff --git a/tools/node_modules/eslint/lib/rules/prefer-reflect.js b/tools/node_modules/eslint/lib/rules/prefer-reflect.js index 1367a1848df9e2..377268900b4ece 100644 --- a/tools/node_modules/eslint/lib/rules/prefer-reflect.js +++ b/tools/node_modules/eslint/lib/rules/prefer-reflect.js @@ -106,7 +106,7 @@ module.exports = { const methodName = (node.callee.property || {}).name; const isReflectCall = (node.callee.object || {}).name === "Reflect"; const hasReflectSubstitute = Object.prototype.hasOwnProperty.call(reflectSubstitutes, methodName); - const userConfiguredException = exceptions.indexOf(methodName) !== -1; + const userConfiguredException = exceptions.includes(methodName); if (hasReflectSubstitute && !isReflectCall && !userConfiguredException) { report(node, existingNames[methodName], reflectSubstitutes[methodName]); @@ -115,7 +115,7 @@ module.exports = { UnaryExpression(node) { const isDeleteOperator = node.operator === "delete"; const targetsIdentifier = node.argument.type === "Identifier"; - const userConfiguredException = exceptions.indexOf("delete") !== -1; + const userConfiguredException = exceptions.includes("delete"); if (isDeleteOperator && !targetsIdentifier && !userConfiguredException) { report(node, "the delete keyword", "Reflect.deleteProperty"); diff --git a/tools/node_modules/eslint/lib/rules/prefer-regex-literals.js b/tools/node_modules/eslint/lib/rules/prefer-regex-literals.js index 158f84b940d565..aa7258997c54aa 100644 --- a/tools/node_modules/eslint/lib/rules/prefer-regex-literals.js +++ b/tools/node_modules/eslint/lib/rules/prefer-regex-literals.js @@ -47,7 +47,7 @@ function isStaticTemplateLiteral(node) { return node.type === "TemplateLiteral" && node.expressions.length === 0; } -const validPrecedingTokens = [ +const validPrecedingTokens = new Set([ "(", ";", "[", @@ -110,7 +110,7 @@ const validPrecedingTokens = [ "debugger", "case", "throw" -]; +]); //------------------------------------------------------------------------------ @@ -334,7 +334,7 @@ module.exports = { const tokenBefore = sourceCode.getTokenBefore(node); - if (tokenBefore && !validPrecedingTokens.includes(tokenBefore.value)) { + if (tokenBefore && !validPrecedingTokens.has(tokenBefore.value)) { noFix = true; } diff --git a/tools/node_modules/eslint/lib/rules/quote-props.js b/tools/node_modules/eslint/lib/rules/quote-props.js index e57ad6eea294f7..0b66d761c47f82 100644 --- a/tools/node_modules/eslint/lib/rules/quote-props.js +++ b/tools/node_modules/eslint/lib/rules/quote-props.js @@ -95,7 +95,7 @@ module.exports = { * @returns {boolean} `true` if it is an ES3 token. */ function isKeyword(tokenStr) { - return keywords.indexOf(tokenStr) >= 0; + return keywords.includes(tokenStr); } /** @@ -108,7 +108,7 @@ module.exports = { */ function areQuotesRedundant(rawKey, tokens, skipNumberLiterals) { return tokens.length === 1 && tokens[0].start === 0 && tokens[0].end === rawKey.length && - (["Identifier", "Keyword", "Null", "Boolean"].indexOf(tokens[0].type) >= 0 || + (["Identifier", "Keyword", "Null", "Boolean"].includes(tokens[0].type) || (tokens[0].type === "Numeric" && !skipNumberLiterals && String(+tokens[0].value) === tokens[0].value)); } diff --git a/tools/node_modules/eslint/lib/rules/quotes.js b/tools/node_modules/eslint/lib/rules/quotes.js index 41bff3c4ecfd6d..f1d30a044bcbdb 100644 --- a/tools/node_modules/eslint/lib/rules/quotes.js +++ b/tools/node_modules/eslint/lib/rules/quotes.js @@ -283,7 +283,7 @@ module.exports = { astUtils.isSurroundedBy(rawVal, settings.quote); if (!isValid && avoidEscape) { - isValid = astUtils.isSurroundedBy(rawVal, settings.alternateQuote) && rawVal.indexOf(settings.quote) >= 0; + isValid = astUtils.isSurroundedBy(rawVal, settings.alternateQuote) && rawVal.includes(settings.quote); } if (!isValid) { diff --git a/tools/node_modules/eslint/lib/rules/spaced-comment.js b/tools/node_modules/eslint/lib/rules/spaced-comment.js index 674c13cf3807ec..d858fc47cf85b2 100644 --- a/tools/node_modules/eslint/lib/rules/spaced-comment.js +++ b/tools/node_modules/eslint/lib/rules/spaced-comment.js @@ -39,7 +39,7 @@ function escapeAndRepeat(s) { function parseMarkersOption(markers) { // `*` is a marker for JSDoc comments. - if (markers.indexOf("*") === -1) { + if (!markers.includes("*")) { return markers.concat("*"); } diff --git a/tools/node_modules/eslint/lib/rules/utils/ast-utils.js b/tools/node_modules/eslint/lib/rules/utils/ast-utils.js index ecde099fa02de8..f919f5a26c86f8 100644 --- a/tools/node_modules/eslint/lib/rules/utils/ast-utils.js +++ b/tools/node_modules/eslint/lib/rules/utils/ast-utils.js @@ -32,6 +32,7 @@ const thisTagPattern = /^[\s*]*@this/mu; const COMMENTS_IGNORE_PATTERN = /^\s*(?:eslint|jshint\s+|jslint\s+|istanbul\s+|globals?\s+|exported\s+|jscs)/u; +const ESLINT_DIRECTIVE_PATTERN = /^(?:eslint[- ]|(?:globals?|exported) )/u; const LINEBREAKS = new Set(["\r\n", "\r", "\n", "\u2028", "\u2029"]); // A set of node types that can contain a list of statements @@ -788,6 +789,203 @@ function getModuleExportName(node) { return node.value; } +/** + * Returns literal's value converted to the Boolean type + * @param {ASTNode} node any `Literal` node + * @returns {boolean | null} `true` when node is truthy, `false` when node is falsy, + * `null` when it cannot be determined. + */ +function getBooleanValue(node) { + if (node.value === null) { + + /* + * it might be a null literal or bigint/regex literal in unsupported environments . + * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es5.md#regexpliteral + * https://github.com/estree/estree/blob/14df8a024956ea289bd55b9c2226a1d5b8a473ee/es2020.md#bigintliteral + */ + + if (node.raw === "null") { + return false; + } + + // regex is always truthy + if (typeof node.regex === "object") { + return true; + } + + return null; + } + + return !!node.value; +} + +/** + * Checks if a branch node of LogicalExpression short circuits the whole condition + * @param {ASTNode} node The branch of main condition which needs to be checked + * @param {string} operator The operator of the main LogicalExpression. + * @returns {boolean} true when condition short circuits whole condition + */ +function isLogicalIdentity(node, operator) { + switch (node.type) { + case "Literal": + return (operator === "||" && getBooleanValue(node) === true) || + (operator === "&&" && getBooleanValue(node) === false); + + case "UnaryExpression": + return (operator === "&&" && node.operator === "void"); + + case "LogicalExpression": + + /* + * handles `a && false || b` + * `false` is an identity element of `&&` but not `||` + */ + return operator === node.operator && + ( + isLogicalIdentity(node.left, operator) || + isLogicalIdentity(node.right, operator) + ); + + case "AssignmentExpression": + return ["||=", "&&="].includes(node.operator) && + operator === node.operator.slice(0, -1) && + isLogicalIdentity(node.right, operator); + + // no default + } + return false; +} + +/** + * Checks if an identifier is a reference to a global variable. + * @param {Scope} scope The scope in which the identifier is referenced. + * @param {ASTNode} node An identifier node to check. + * @returns {boolean} `true` if the identifier is a reference to a global variable. + */ +function isReferenceToGlobalVariable(scope, node) { + const reference = scope.references.find(ref => ref.identifier === node); + + return Boolean( + reference && + reference.resolved && + reference.resolved.scope.type === "global" && + reference.resolved.defs.length === 0 + ); +} + + +/** + * Checks if a node has a constant truthiness value. + * @param {Scope} scope Scope in which the node appears. + * @param {ASTNode} node The AST node to check. + * @param {boolean} inBooleanPosition `true` if checking the test of a + * condition. `false` in all other cases. When `false`, checks if -- for + * both string and number -- if coerced to that type, the value will + * be constant. + * @returns {boolean} true when node's truthiness is constant + * @private + */ +function isConstant(scope, node, inBooleanPosition) { + + // node.elements can return null values in the case of sparse arrays ex. [,] + if (!node) { + return true; + } + switch (node.type) { + case "Literal": + case "ArrowFunctionExpression": + case "FunctionExpression": + return true; + case "ClassExpression": + case "ObjectExpression": + + /** + * In theory objects like: + * + * `{toString: () => a}` + * `{valueOf: () => a}` + * + * Or a classes like: + * + * `class { static toString() { return a } }` + * `class { static valueOf() { return a } }` + * + * Are not constant verifiably when `inBooleanPosition` is + * false, but it's an edge case we've opted not to handle. + */ + return true; + case "TemplateLiteral": + return (inBooleanPosition && node.quasis.some(quasi => quasi.value.cooked.length)) || + node.expressions.every(exp => isConstant(scope, exp, false)); + + case "ArrayExpression": { + if (!inBooleanPosition) { + return node.elements.every(element => isConstant(scope, element, false)); + } + return true; + } + + case "UnaryExpression": + if ( + node.operator === "void" || + node.operator === "typeof" && inBooleanPosition + ) { + return true; + } + + if (node.operator === "!") { + return isConstant(scope, node.argument, true); + } + + return isConstant(scope, node.argument, false); + + case "BinaryExpression": + return isConstant(scope, node.left, false) && + isConstant(scope, node.right, false) && + node.operator !== "in"; + + case "LogicalExpression": { + const isLeftConstant = isConstant(scope, node.left, inBooleanPosition); + const isRightConstant = isConstant(scope, node.right, inBooleanPosition); + const isLeftShortCircuit = (isLeftConstant && isLogicalIdentity(node.left, node.operator)); + const isRightShortCircuit = (inBooleanPosition && isRightConstant && isLogicalIdentity(node.right, node.operator)); + + return (isLeftConstant && isRightConstant) || + isLeftShortCircuit || + isRightShortCircuit; + } + case "NewExpression": + return inBooleanPosition; + case "AssignmentExpression": + if (node.operator === "=") { + return isConstant(scope, node.right, inBooleanPosition); + } + + if (["||=", "&&="].includes(node.operator) && inBooleanPosition) { + return isLogicalIdentity(node.right, node.operator.slice(0, -1)); + } + + return false; + + case "SequenceExpression": + return isConstant(scope, node.expressions[node.expressions.length - 1], inBooleanPosition); + case "SpreadElement": + return isConstant(scope, node.argument, inBooleanPosition); + case "CallExpression": + if (node.callee.type === "Identifier" && node.callee.name === "Boolean") { + if (node.arguments.length === 0 || isConstant(scope, node.arguments[0], true)) { + return isReferenceToGlobalVariable(scope, node.callee); + } + } + return false; + case "Identifier": + return node.name === "undefined" && isReferenceToGlobalVariable(scope, node); + + // no default + } + return false; +} + //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ @@ -908,12 +1106,8 @@ module.exports = { const comment = node.value.trim(); return ( - node.type === "Line" && comment.indexOf("eslint-") === 0 || - node.type === "Block" && ( - comment.indexOf("global ") === 0 || - comment.indexOf("eslint ") === 0 || - comment.indexOf("eslint-") === 0 - ) + node.type === "Line" && comment.startsWith("eslint-") || + node.type === "Block" && ESLINT_DIRECTIVE_PATTERN.test(comment) ); }, @@ -1905,6 +2099,7 @@ module.exports = { return OCTAL_OR_NON_OCTAL_DECIMAL_ESCAPE_PATTERN.test(rawString); }, + isReferenceToGlobalVariable, isLogicalExpression, isCoalesceExpression, isMixedLogicalAndCoalesceExpressions, @@ -1918,5 +2113,6 @@ module.exports = { isSameReference, isLogicalAssignmentOperator, getSwitchCaseColonToken, - getModuleExportName + getModuleExportName, + isConstant }; diff --git a/tools/node_modules/eslint/lib/rules/valid-jsdoc.js b/tools/node_modules/eslint/lib/rules/valid-jsdoc.js index c118e033dd875a..8662bf0eae704e 100644 --- a/tools/node_modules/eslint/lib/rules/valid-jsdoc.js +++ b/tools/node_modules/eslint/lib/rules/valid-jsdoc.js @@ -405,7 +405,7 @@ module.exports = { loc: getAbsoluteRange(jsdocNode, param), data: { name: param.name } }); - } else if (param.name.indexOf(".") === -1) { + } else if (!param.name.includes(".")) { paramTagsByName[param.name] = param; } }); diff --git a/tools/node_modules/eslint/lib/rules/valid-typeof.js b/tools/node_modules/eslint/lib/rules/valid-typeof.js index cb85cd9cb900ae..2286d8926cc6fe 100644 --- a/tools/node_modules/eslint/lib/rules/valid-typeof.js +++ b/tools/node_modules/eslint/lib/rules/valid-typeof.js @@ -42,8 +42,8 @@ module.exports = { create(context) { - const VALID_TYPES = ["symbol", "undefined", "object", "boolean", "number", "string", "function", "bigint"], - OPERATORS = ["==", "===", "!=", "!=="]; + const VALID_TYPES = new Set(["symbol", "undefined", "object", "boolean", "number", "string", "function", "bigint"]), + OPERATORS = new Set(["==", "===", "!=", "!=="]); const requireStringLiterals = context.options[0] && context.options[0].requireStringLiterals; @@ -85,13 +85,13 @@ module.exports = { if (isTypeofExpression(node)) { const parent = context.getAncestors().pop(); - if (parent.type === "BinaryExpression" && OPERATORS.indexOf(parent.operator) !== -1) { + if (parent.type === "BinaryExpression" && OPERATORS.has(parent.operator)) { const sibling = parent.left === node ? parent.right : parent.left; if (sibling.type === "Literal" || sibling.type === "TemplateLiteral" && !sibling.expressions.length) { const value = sibling.type === "Literal" ? sibling.value : sibling.quasis[0].value.cooked; - if (VALID_TYPES.indexOf(value) === -1) { + if (!VALID_TYPES.has(value)) { context.report({ node: sibling, messageId: "invalidValue" }); } } else if (sibling.type === "Identifier" && sibling.name === "undefined" && isReferenceToGlobalVariable(sibling)) { diff --git a/tools/node_modules/eslint/lib/rules/yoda.js b/tools/node_modules/eslint/lib/rules/yoda.js index f491f756d5463d..5b64287a151b8d 100644 --- a/tools/node_modules/eslint/lib/rules/yoda.js +++ b/tools/node_modules/eslint/lib/rules/yoda.js @@ -39,7 +39,7 @@ function isEqualityOperator(operator) { * @returns {boolean} Whether the operator is used in range tests. */ function isRangeTestOperator(operator) { - return ["<", "<="].indexOf(operator) >= 0; + return ["<", "<="].includes(operator); } /** diff --git a/tools/node_modules/eslint/lib/shared/deprecation-warnings.js b/tools/node_modules/eslint/lib/shared/deprecation-warnings.js index 1a0501ab057a11..d09cafb07fe13f 100644 --- a/tools/node_modules/eslint/lib/shared/deprecation-warnings.js +++ b/tools/node_modules/eslint/lib/shared/deprecation-warnings.js @@ -17,14 +17,7 @@ const path = require("path"); // Definitions for deprecation warnings. const deprecationWarningMessages = { ESLINT_LEGACY_ECMAFEATURES: - "The 'ecmaFeatures' config file property is deprecated and has no effect.", - ESLINT_PERSONAL_CONFIG_LOAD: - "'~/.eslintrc.*' config files have been deprecated. " + - "Please use a config file per project or the '--config' option.", - ESLINT_PERSONAL_CONFIG_SUPPRESS: - "'~/.eslintrc.*' config files have been deprecated. " + - "Please remove it or add 'root:true' to the config files in your " + - "projects in order to avoid loading '~/.eslintrc.*' accidentally." + "The 'ecmaFeatures' config file property is deprecated and has no effect." }; const sourceFileErrorCache = new Set(); diff --git a/tools/node_modules/eslint/lib/shared/types.js b/tools/node_modules/eslint/lib/shared/types.js index 0335423f2846a8..5d9a4e6cf2695c 100644 --- a/tools/node_modules/eslint/lib/shared/types.js +++ b/tools/node_modules/eslint/lib/shared/types.js @@ -136,7 +136,6 @@ module.exports = {}; /** * @typedef {Object} RuleMetaDocs - * @property {string} category The category of the rule. * @property {string} description The description of the rule. * @property {boolean} recommended If `true` then the rule is included in `eslint:recommended` preset. * @property {string} url The URL of the rule documentation. @@ -147,6 +146,7 @@ module.exports = {}; * @property {boolean} [deprecated] If `true` then the rule has been deprecated. * @property {RuleMetaDocs} docs The document information of the rule. * @property {"code"|"whitespace"} [fixable] The autofix type. + * @property {boolean} [hasSuggestions] If `true` then the rule provides suggestions. * @property {Record} [messages] The messages the rule reports. * @property {string[]} [replacedBy] The IDs of the alternative rules. * @property {Array|Object} schema The option schema of the rule. diff --git a/tools/node_modules/eslint/node_modules/@ampproject/remapping/dist/remapping.mjs b/tools/node_modules/eslint/node_modules/@ampproject/remapping/dist/remapping.mjs index 4847e8a8134b9f..c6e66b76f69447 100644 --- a/tools/node_modules/eslint/node_modules/@ampproject/remapping/dist/remapping.mjs +++ b/tools/node_modules/eslint/node_modules/@ampproject/remapping/dist/remapping.mjs @@ -1,170 +1,99 @@ -import { traceSegment, decodedMappings, presortedDecodedMap, TraceMap, encodedMappings } from '@jridgewell/trace-mapping'; +import { decodedMappings, traceSegment, TraceMap } from '@jridgewell/trace-mapping'; +import { GenMapping, addSegment, setSourceContent, decodedMap, encodedMap } from '@jridgewell/gen-mapping'; +const SOURCELESS_MAPPING = { + source: null, + column: null, + line: null, + name: null, + content: null, +}; +const EMPTY_SOURCES = []; +function Source(map, sources, source, content) { + return { + map, + sources, + source, + content, + }; +} /** - * A "leaf" node in the sourcemap tree, representing an original, unmodified - * source file. Recursive segment tracing ends at the `OriginalSource`. + * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes + * (which may themselves be SourceMapTrees). */ -class OriginalSource { - constructor(source, content) { - this.source = source; - this.content = content; - } - /** - * Tracing a `SourceMapSegment` ends when we get to an `OriginalSource`, - * meaning this line/column location originated from this source file. - */ - originalPositionFor(line, column, name) { - return { column, line, name, source: this.source, content: this.content }; - } +function MapSource(map, sources) { + return Source(map, sources, '', null); } - /** - * Puts `key` into the backing array, if it is not already present. Returns - * the index of the `key` in the backing array. + * A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive + * segment tracing ends at the `OriginalSource`. */ -let put; -/** - * FastStringArray acts like a `Set` (allowing only one occurrence of a string - * `key`), but provides the index of the `key` in the backing array. - * - * This is designed to allow synchronizing a second array with the contents of - * the backing array, like how `sourcesContent[i]` is the source content - * associated with `source[i]`, and there are never duplicates. - */ -class FastStringArray { - constructor() { - this.indexes = Object.create(null); - this.array = []; - } +function OriginalSource(source, content) { + return Source(null, EMPTY_SOURCES, source, content); } -(() => { - put = (strarr, key) => { - const { array, indexes } = strarr; - // The key may or may not be present. If it is present, it's a number. - let index = indexes[key]; - // If it's not yet present, we need to insert it and track the index in the - // indexes. - if (index === undefined) { - index = indexes[key] = array.length; - array.push(key); - } - return index; - }; -})(); - -const INVALID_MAPPING = undefined; -const SOURCELESS_MAPPING = null; /** * traceMappings is only called on the root level SourceMapTree, and begins the process of * resolving each mapping in terms of the original source files. */ -let traceMappings; +function traceMappings(tree) { + const gen = new GenMapping({ file: tree.map.file }); + const { sources: rootSources, map } = tree; + const rootNames = map.names; + const rootMappings = decodedMappings(map); + for (let i = 0; i < rootMappings.length; i++) { + const segments = rootMappings[i]; + let lastSource = null; + let lastSourceLine = null; + let lastSourceColumn = null; + for (let j = 0; j < segments.length; j++) { + const segment = segments[j]; + const genCol = segment[0]; + let traced = SOURCELESS_MAPPING; + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length !== 1) { + const source = rootSources[segment[1]]; + traced = originalPositionFor(source, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : ''); + // If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a + // respective segment into an original source. + if (traced == null) + continue; + } + // So we traced a segment down into its original source file. Now push a + // new segment pointing to this location. + const { column, line, name, content, source } = traced; + if (line === lastSourceLine && column === lastSourceColumn && source === lastSource) { + continue; + } + lastSourceLine = line; + lastSourceColumn = column; + lastSource = source; + // Sigh, TypeScript can't figure out source/line/column are either all null, or all non-null... + addSegment(gen, i, genCol, source, line, column, name); + if (content != null) + setSourceContent(gen, source, content); + } + } + return gen; +} /** - * SourceMapTree represents a single sourcemap, with the ability to trace - * mappings into its child nodes (which may themselves be SourceMapTrees). + * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own + * child SourceMapTrees, until we find the original source map. */ -class SourceMapTree { - constructor(map, sources) { - this.map = map; - this.sources = sources; - } - /** - * originalPositionFor is only called on children SourceMapTrees. It recurses down - * into its own child SourceMapTrees, until we find the original source map. - */ - originalPositionFor(line, column, name) { - const segment = traceSegment(this.map, line, column); - // If we couldn't find a segment, then this doesn't exist in the sourcemap. - if (segment == null) - return INVALID_MAPPING; - // 1-length segments only move the current generated column, there's no source information - // to gather from it. - if (segment.length === 1) - return SOURCELESS_MAPPING; - const source = this.sources[segment[1]]; - return source.originalPositionFor(segment[2], segment[3], segment.length === 5 ? this.map.names[segment[4]] : name); +function originalPositionFor(source, line, column, name) { + if (!source.map) { + return { column, line, name, source: source.source, content: source.content }; } + const segment = traceSegment(source.map, line, column); + // If we couldn't find a segment, then this doesn't exist in the sourcemap. + if (segment == null) + return null; + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length === 1) + return SOURCELESS_MAPPING; + return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name); } -(() => { - traceMappings = (tree) => { - const mappings = []; - const names = new FastStringArray(); - const sources = new FastStringArray(); - const sourcesContent = []; - const { sources: rootSources, map } = tree; - const rootNames = map.names; - const rootMappings = decodedMappings(map); - let lastLineWithSegment = -1; - for (let i = 0; i < rootMappings.length; i++) { - const segments = rootMappings[i]; - const tracedSegments = []; - let lastSourcesIndex = -1; - let lastSourceLine = -1; - let lastSourceColumn = -1; - for (let j = 0; j < segments.length; j++) { - const segment = segments[j]; - let traced = SOURCELESS_MAPPING; - // 1-length segments only move the current generated column, there's no source information - // to gather from it. - if (segment.length !== 1) { - const source = rootSources[segment[1]]; - traced = source.originalPositionFor(segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : ''); - // If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a - // respective segment into an original source. - if (traced === INVALID_MAPPING) - continue; - } - const genCol = segment[0]; - if (traced === SOURCELESS_MAPPING) { - if (lastSourcesIndex === -1) { - // This is a consecutive source-less segment, which doesn't carry any new information. - continue; - } - lastSourcesIndex = lastSourceLine = lastSourceColumn = -1; - tracedSegments.push([genCol]); - continue; - } - // So we traced a segment down into its original source file. Now push a - // new segment pointing to this location. - const { column, line, name, content, source } = traced; - // Store the source location, and ensure we keep sourcesContent up to - // date with the sources array. - const sourcesIndex = put(sources, source); - sourcesContent[sourcesIndex] = content; - if (lastSourcesIndex === sourcesIndex && - lastSourceLine === line && - lastSourceColumn === column) { - // This is a duplicate mapping pointing at the exact same starting point in the source - // file. It doesn't carry any new information, and only bloats the sourcemap. - continue; - } - lastLineWithSegment = i; - lastSourcesIndex = sourcesIndex; - lastSourceLine = line; - lastSourceColumn = column; - // This looks like unnecessary duplication, but it noticeably increases performance. If we - // were to push the nameIndex onto length-4 array, v8 would internally allocate 22 slots! - // That's 68 wasted bytes! Array literals have the same capacity as their length, saving - // memory. - tracedSegments.push(name - ? [genCol, sourcesIndex, line, column, put(names, name)] - : [genCol, sourcesIndex, line, column]); - } - mappings.push(tracedSegments); - } - if (mappings.length > lastLineWithSegment + 1) { - mappings.length = lastLineWithSegment + 1; - } - return presortedDecodedMap(Object.assign({}, tree.map, { - mappings, - // TODO: Make all sources relative to the sourceRoot. - sourceRoot: undefined, - names: names.array, - sources: sources.array, - sourcesContent, - })); - }; -})(); function asArray(value) { if (Array.isArray(value)) @@ -193,7 +122,7 @@ function buildSourceMapTree(input, loader) { } let tree = build(map, loader, '', 0); for (let i = maps.length - 1; i >= 0; i--) { - tree = new SourceMapTree(maps[i], [tree]); + tree = MapSource(maps[i], [tree]); } return tree; } @@ -215,19 +144,17 @@ function build(map, loader, importer, importerDepth) { // TODO: We should eventually support async loading of sourcemap files. const sourceMap = loader(ctx.source, ctx); const { source, content } = ctx; - // If there is no sourcemap, then it is an unmodified source file. - if (!sourceMap) { - // The contents of this unmodified source file can be overridden via the loader context, - // allowing it to be explicitly null or a string. If it remains undefined, we fall back to - // the importing sourcemap's `sourcesContent` field. - const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null; - return new OriginalSource(source, sourceContent); - } - // Else, it's a real sourcemap, and we need to recurse into it to load its - // source files. - return build(new TraceMap(sourceMap, source), loader, source, depth); + // If there is a sourcemap, then we need to recurse into it to load its source files. + if (sourceMap) + return build(new TraceMap(sourceMap, source), loader, source, depth); + // Else, it's an an unmodified source file. + // The contents of this unmodified source file can be overridden via the loader context, + // allowing it to be explicitly null or a string. If it remains undefined, we fall back to + // the importing sourcemap's `sourcesContent` field. + const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null; + return OriginalSource(source, sourceContent); }); - return new SourceMapTree(map, children); + return MapSource(map, children); } /** @@ -236,14 +163,15 @@ function build(map, loader, importer, importerDepth) { */ class SourceMap { constructor(map, options) { - this.version = 3; // SourceMap spec says this should be first. - this.file = map.file; - this.mappings = options.decodedMappings ? decodedMappings(map) : encodedMappings(map); - this.names = map.names; - this.sourceRoot = map.sourceRoot; - this.sources = map.sources; - if (!options.excludeContent && 'sourcesContent' in map) { - this.sourcesContent = map.sourcesContent; + const out = options.decodedMappings ? decodedMap(map) : encodedMap(map); + this.version = out.version; // SourceMap spec says this should be first. + this.file = out.file; + this.mappings = out.mappings; + this.names = out.names; + this.sourceRoot = out.sourceRoot; + this.sources = out.sources; + if (!options.excludeContent) { + this.sourcesContent = out.sourcesContent; } } toString() { diff --git a/tools/node_modules/eslint/node_modules/@ampproject/remapping/dist/remapping.umd.js b/tools/node_modules/eslint/node_modules/@ampproject/remapping/dist/remapping.umd.js index d4f3df4e320ebe..593c61d085fa68 100644 --- a/tools/node_modules/eslint/node_modules/@ampproject/remapping/dist/remapping.umd.js +++ b/tools/node_modules/eslint/node_modules/@ampproject/remapping/dist/remapping.umd.js @@ -1,174 +1,102 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@jridgewell/trace-mapping')) : - typeof define === 'function' && define.amd ? define(['@jridgewell/trace-mapping'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.remapping = factory(global.traceMapping)); -})(this, (function (traceMapping) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@jridgewell/trace-mapping'), require('@jridgewell/gen-mapping')) : + typeof define === 'function' && define.amd ? define(['@jridgewell/trace-mapping', '@jridgewell/gen-mapping'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.remapping = factory(global.traceMapping, global.genMapping)); +})(this, (function (traceMapping, genMapping) { 'use strict'; + const SOURCELESS_MAPPING = { + source: null, + column: null, + line: null, + name: null, + content: null, + }; + const EMPTY_SOURCES = []; + function Source(map, sources, source, content) { + return { + map, + sources, + source, + content, + }; + } /** - * A "leaf" node in the sourcemap tree, representing an original, unmodified - * source file. Recursive segment tracing ends at the `OriginalSource`. + * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes + * (which may themselves be SourceMapTrees). */ - class OriginalSource { - constructor(source, content) { - this.source = source; - this.content = content; - } - /** - * Tracing a `SourceMapSegment` ends when we get to an `OriginalSource`, - * meaning this line/column location originated from this source file. - */ - originalPositionFor(line, column, name) { - return { column, line, name, source: this.source, content: this.content }; - } + function MapSource(map, sources) { + return Source(map, sources, '', null); } - /** - * Puts `key` into the backing array, if it is not already present. Returns - * the index of the `key` in the backing array. + * A "leaf" node in the sourcemap tree, representing an original, unmodified source file. Recursive + * segment tracing ends at the `OriginalSource`. */ - let put; - /** - * FastStringArray acts like a `Set` (allowing only one occurrence of a string - * `key`), but provides the index of the `key` in the backing array. - * - * This is designed to allow synchronizing a second array with the contents of - * the backing array, like how `sourcesContent[i]` is the source content - * associated with `source[i]`, and there are never duplicates. - */ - class FastStringArray { - constructor() { - this.indexes = Object.create(null); - this.array = []; - } + function OriginalSource(source, content) { + return Source(null, EMPTY_SOURCES, source, content); } - (() => { - put = (strarr, key) => { - const { array, indexes } = strarr; - // The key may or may not be present. If it is present, it's a number. - let index = indexes[key]; - // If it's not yet present, we need to insert it and track the index in the - // indexes. - if (index === undefined) { - index = indexes[key] = array.length; - array.push(key); - } - return index; - }; - })(); - - const INVALID_MAPPING = undefined; - const SOURCELESS_MAPPING = null; /** * traceMappings is only called on the root level SourceMapTree, and begins the process of * resolving each mapping in terms of the original source files. */ - let traceMappings; + function traceMappings(tree) { + const gen = new genMapping.GenMapping({ file: tree.map.file }); + const { sources: rootSources, map } = tree; + const rootNames = map.names; + const rootMappings = traceMapping.decodedMappings(map); + for (let i = 0; i < rootMappings.length; i++) { + const segments = rootMappings[i]; + let lastSource = null; + let lastSourceLine = null; + let lastSourceColumn = null; + for (let j = 0; j < segments.length; j++) { + const segment = segments[j]; + const genCol = segment[0]; + let traced = SOURCELESS_MAPPING; + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length !== 1) { + const source = rootSources[segment[1]]; + traced = originalPositionFor(source, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : ''); + // If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a + // respective segment into an original source. + if (traced == null) + continue; + } + // So we traced a segment down into its original source file. Now push a + // new segment pointing to this location. + const { column, line, name, content, source } = traced; + if (line === lastSourceLine && column === lastSourceColumn && source === lastSource) { + continue; + } + lastSourceLine = line; + lastSourceColumn = column; + lastSource = source; + // Sigh, TypeScript can't figure out source/line/column are either all null, or all non-null... + genMapping.addSegment(gen, i, genCol, source, line, column, name); + if (content != null) + genMapping.setSourceContent(gen, source, content); + } + } + return gen; + } /** - * SourceMapTree represents a single sourcemap, with the ability to trace - * mappings into its child nodes (which may themselves be SourceMapTrees). + * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own + * child SourceMapTrees, until we find the original source map. */ - class SourceMapTree { - constructor(map, sources) { - this.map = map; - this.sources = sources; - } - /** - * originalPositionFor is only called on children SourceMapTrees. It recurses down - * into its own child SourceMapTrees, until we find the original source map. - */ - originalPositionFor(line, column, name) { - const segment = traceMapping.traceSegment(this.map, line, column); - // If we couldn't find a segment, then this doesn't exist in the sourcemap. - if (segment == null) - return INVALID_MAPPING; - // 1-length segments only move the current generated column, there's no source information - // to gather from it. - if (segment.length === 1) - return SOURCELESS_MAPPING; - const source = this.sources[segment[1]]; - return source.originalPositionFor(segment[2], segment[3], segment.length === 5 ? this.map.names[segment[4]] : name); + function originalPositionFor(source, line, column, name) { + if (!source.map) { + return { column, line, name, source: source.source, content: source.content }; } + const segment = traceMapping.traceSegment(source.map, line, column); + // If we couldn't find a segment, then this doesn't exist in the sourcemap. + if (segment == null) + return null; + // 1-length segments only move the current generated column, there's no source information + // to gather from it. + if (segment.length === 1) + return SOURCELESS_MAPPING; + return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name); } - (() => { - traceMappings = (tree) => { - const mappings = []; - const names = new FastStringArray(); - const sources = new FastStringArray(); - const sourcesContent = []; - const { sources: rootSources, map } = tree; - const rootNames = map.names; - const rootMappings = traceMapping.decodedMappings(map); - let lastLineWithSegment = -1; - for (let i = 0; i < rootMappings.length; i++) { - const segments = rootMappings[i]; - const tracedSegments = []; - let lastSourcesIndex = -1; - let lastSourceLine = -1; - let lastSourceColumn = -1; - for (let j = 0; j < segments.length; j++) { - const segment = segments[j]; - let traced = SOURCELESS_MAPPING; - // 1-length segments only move the current generated column, there's no source information - // to gather from it. - if (segment.length !== 1) { - const source = rootSources[segment[1]]; - traced = source.originalPositionFor(segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : ''); - // If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a - // respective segment into an original source. - if (traced === INVALID_MAPPING) - continue; - } - const genCol = segment[0]; - if (traced === SOURCELESS_MAPPING) { - if (lastSourcesIndex === -1) { - // This is a consecutive source-less segment, which doesn't carry any new information. - continue; - } - lastSourcesIndex = lastSourceLine = lastSourceColumn = -1; - tracedSegments.push([genCol]); - continue; - } - // So we traced a segment down into its original source file. Now push a - // new segment pointing to this location. - const { column, line, name, content, source } = traced; - // Store the source location, and ensure we keep sourcesContent up to - // date with the sources array. - const sourcesIndex = put(sources, source); - sourcesContent[sourcesIndex] = content; - if (lastSourcesIndex === sourcesIndex && - lastSourceLine === line && - lastSourceColumn === column) { - // This is a duplicate mapping pointing at the exact same starting point in the source - // file. It doesn't carry any new information, and only bloats the sourcemap. - continue; - } - lastLineWithSegment = i; - lastSourcesIndex = sourcesIndex; - lastSourceLine = line; - lastSourceColumn = column; - // This looks like unnecessary duplication, but it noticeably increases performance. If we - // were to push the nameIndex onto length-4 array, v8 would internally allocate 22 slots! - // That's 68 wasted bytes! Array literals have the same capacity as their length, saving - // memory. - tracedSegments.push(name - ? [genCol, sourcesIndex, line, column, put(names, name)] - : [genCol, sourcesIndex, line, column]); - } - mappings.push(tracedSegments); - } - if (mappings.length > lastLineWithSegment + 1) { - mappings.length = lastLineWithSegment + 1; - } - return traceMapping.presortedDecodedMap(Object.assign({}, tree.map, { - mappings, - // TODO: Make all sources relative to the sourceRoot. - sourceRoot: undefined, - names: names.array, - sources: sources.array, - sourcesContent, - })); - }; - })(); function asArray(value) { if (Array.isArray(value)) @@ -197,7 +125,7 @@ } let tree = build(map, loader, '', 0); for (let i = maps.length - 1; i >= 0; i--) { - tree = new SourceMapTree(maps[i], [tree]); + tree = MapSource(maps[i], [tree]); } return tree; } @@ -219,19 +147,17 @@ // TODO: We should eventually support async loading of sourcemap files. const sourceMap = loader(ctx.source, ctx); const { source, content } = ctx; - // If there is no sourcemap, then it is an unmodified source file. - if (!sourceMap) { - // The contents of this unmodified source file can be overridden via the loader context, - // allowing it to be explicitly null or a string. If it remains undefined, we fall back to - // the importing sourcemap's `sourcesContent` field. - const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null; - return new OriginalSource(source, sourceContent); - } - // Else, it's a real sourcemap, and we need to recurse into it to load its - // source files. - return build(new traceMapping.TraceMap(sourceMap, source), loader, source, depth); + // If there is a sourcemap, then we need to recurse into it to load its source files. + if (sourceMap) + return build(new traceMapping.TraceMap(sourceMap, source), loader, source, depth); + // Else, it's an an unmodified source file. + // The contents of this unmodified source file can be overridden via the loader context, + // allowing it to be explicitly null or a string. If it remains undefined, we fall back to + // the importing sourcemap's `sourcesContent` field. + const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null; + return OriginalSource(source, sourceContent); }); - return new SourceMapTree(map, children); + return MapSource(map, children); } /** @@ -240,14 +166,15 @@ */ class SourceMap { constructor(map, options) { - this.version = 3; // SourceMap spec says this should be first. - this.file = map.file; - this.mappings = options.decodedMappings ? traceMapping.decodedMappings(map) : traceMapping.encodedMappings(map); - this.names = map.names; - this.sourceRoot = map.sourceRoot; - this.sources = map.sources; - if (!options.excludeContent && 'sourcesContent' in map) { - this.sourcesContent = map.sourcesContent; + const out = options.decodedMappings ? genMapping.decodedMap(map) : genMapping.encodedMap(map); + this.version = out.version; // SourceMap spec says this should be first. + this.file = out.file; + this.mappings = out.mappings; + this.names = out.names; + this.sourceRoot = out.sourceRoot; + this.sources = out.sources; + if (!options.excludeContent) { + this.sourcesContent = out.sourcesContent; } } toString() { diff --git a/tools/node_modules/eslint/node_modules/@ampproject/remapping/package.json b/tools/node_modules/eslint/node_modules/@ampproject/remapping/package.json index 0914a04eb446eb..bf97a85173adf4 100644 --- a/tools/node_modules/eslint/node_modules/@ampproject/remapping/package.json +++ b/tools/node_modules/eslint/node_modules/@ampproject/remapping/package.json @@ -1,6 +1,6 @@ { "name": "@ampproject/remapping", - "version": "2.1.2", + "version": "2.2.0", "description": "Remap sequential sourcemaps through transformations to point at the original source code", "keywords": [ "source", @@ -41,22 +41,23 @@ "test:watch": "jest --coverage --watch" }, "devDependencies": { - "@rollup/plugin-typescript": "8.3.0", - "@types/jest": "27.4.0", - "@typescript-eslint/eslint-plugin": "5.10.2", - "@typescript-eslint/parser": "5.10.2", - "eslint": "8.8.0", - "eslint-config-prettier": "8.3.0", - "jest": "27.4.7", - "jest-config": "27.4.7", + "@rollup/plugin-typescript": "8.3.2", + "@types/jest": "27.4.1", + "@typescript-eslint/eslint-plugin": "5.20.0", + "@typescript-eslint/parser": "5.20.0", + "eslint": "8.14.0", + "eslint-config-prettier": "8.5.0", + "jest": "27.5.1", + "jest-config": "27.5.1", "npm-run-all": "4.1.5", - "prettier": "2.5.1", - "rollup": "2.67.0", - "ts-jest": "27.1.3", - "tslib": "2.3.1", - "typescript": "4.5.5" + "prettier": "2.6.2", + "rollup": "2.70.2", + "ts-jest": "27.1.4", + "tslib": "2.4.0", + "typescript": "4.6.3" }, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } } diff --git a/tools/node_modules/eslint/node_modules/@babel/compat-data/data/corejs2-built-ins.json b/tools/node_modules/eslint/node_modules/@babel/compat-data/data/corejs2-built-ins.json index ab9d30be39a022..b9e4cfe3715958 100644 --- a/tools/node_modules/eslint/node_modules/@babel/compat-data/data/corejs2-built-ins.json +++ b/tools/node_modules/eslint/node_modules/@babel/compat-data/data/corejs2-built-ins.json @@ -17,11 +17,11 @@ "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -90,11 +90,11 @@ "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -114,7 +114,7 @@ "chrome": "47", "opera": "34", "edge": "14", - "firefox": "43", + "firefox": "102", "safari": "10", "node": "6", "ios": "10", @@ -127,11 +127,11 @@ "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -142,11 +142,11 @@ "edge": "12", "firefox": "4", "safari": "4", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -169,11 +169,11 @@ "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -207,11 +207,11 @@ "edge": "12", "firefox": "3", "safari": "4", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -222,11 +222,11 @@ "edge": "12", "firefox": "3", "safari": "4", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -248,11 +248,11 @@ "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -287,11 +287,11 @@ "edge": "12", "firefox": "2", "safari": "4", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -302,11 +302,11 @@ "edge": "12", "firefox": "3.5", "safari": "4", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -317,7 +317,7 @@ "edge": "12", "firefox": "4", "safari": "10", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "10", @@ -342,11 +342,11 @@ "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.10", + "node": "0.4", "ie": "10", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -357,11 +357,11 @@ "edge": "12", "firefox": "4", "safari": "5.1", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -383,10 +383,10 @@ "edge": "14", "firefox": "2", "safari": "4", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -637,7 +637,7 @@ "edge": "12", "firefox": "16", "safari": "9", - "node": "0.12", + "node": "0.8", "android": "4.1", "ios": "9", "samsung": "1.5", @@ -662,7 +662,7 @@ "edge": "12", "firefox": "15", "safari": "9", - "node": "0.12", + "node": "0.8", "android": "4.1", "ios": "9", "samsung": "1.5", @@ -746,11 +746,11 @@ "edge": "12", "firefox": "4", "safari": "4", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -783,11 +783,11 @@ "edge": "12", "firefox": "4", "safari": "5.1", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -798,11 +798,11 @@ "edge": "12", "firefox": "4", "safari": "4", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -929,7 +929,7 @@ "edge": "12", "firefox": "22", "safari": "9", - "node": "0.12", + "node": "0.8", "android": "4.1", "ios": "9", "samsung": "1.5", @@ -1304,10 +1304,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1318,10 +1318,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1332,10 +1332,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1346,10 +1346,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1384,10 +1384,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1398,10 +1398,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1412,10 +1412,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1450,10 +1450,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1476,10 +1476,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1538,10 +1538,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1564,10 +1564,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1578,10 +1578,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1592,10 +1592,10 @@ "edge": "12", "firefox": "17", "safari": "6", - "node": "0.10", + "node": "0.4", "android": "4", "ios": "7", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.14", "electron": "0.20" @@ -1606,11 +1606,11 @@ "edge": "12", "firefox": "3.5", "safari": "4", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -1656,11 +1656,11 @@ "edge": "12", "firefox": "15", "safari": "5.1", - "node": "0.10", + "node": "0.4", "ie": "10", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" diff --git a/tools/node_modules/eslint/node_modules/@babel/compat-data/data/plugins.json b/tools/node_modules/eslint/node_modules/@babel/compat-data/data/plugins.json index b64714c7f0ebb0..96c64cab34f242 100644 --- a/tools/node_modules/eslint/node_modules/@babel/compat-data/data/plugins.json +++ b/tools/node_modules/eslint/node_modules/@babel/compat-data/data/plugins.json @@ -4,7 +4,8 @@ "opera": "80", "edge": "94", "firefox": "93", - "node": "16.11" + "node": "16.11", + "electron": "15.0" }, "proposal-private-property-in-object": { "chrome": "91", @@ -422,11 +423,11 @@ "edge": "12", "firefox": "2", "safari": "5.1", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -437,11 +438,11 @@ "edge": "12", "firefox": "2", "safari": "5.1", - "node": "0.10", + "node": "0.4", "ie": "9", "android": "4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" @@ -452,11 +453,11 @@ "edge": "12", "firefox": "2", "safari": "3.1", - "node": "0.10", + "node": "0.6", "ie": "9", "android": "4.4", "ios": "6", - "phantom": "2", + "phantom": "1.9", "samsung": "1", "rhino": "1.7.13", "electron": "0.20" diff --git a/tools/node_modules/eslint/node_modules/@babel/compat-data/package.json b/tools/node_modules/eslint/node_modules/@babel/compat-data/package.json index 816a335250d29b..512f422d495375 100644 --- a/tools/node_modules/eslint/node_modules/@babel/compat-data/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/compat-data/package.json @@ -1,6 +1,6 @@ { "name": "@babel/compat-data", - "version": "7.17.7", + "version": "7.18.5", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", "description": "", @@ -30,8 +30,8 @@ ], "devDependencies": { "@mdn/browser-compat-data": "^4.0.10", - "core-js-compat": "^3.20.2", - "electron-to-chromium": "^1.3.893" + "core-js-compat": "^3.22.1", + "electron-to-chromium": "^1.4.113" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/config/files/plugins.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/config/files/plugins.js index 8af6e4957c2d7c..5d7f2154303614 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/config/files/plugins.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/config/files/plugins.js @@ -187,7 +187,7 @@ function _tryImportMetaResolve() { return _tryImportMetaResolve.apply(this, arguments); } -function resolveStandardizedNameForRequrie(type, name, dirname) { +function resolveStandardizedNameForRequire(type, name, dirname) { const it = resolveAlternativesHelper(type, name); let res = it.next(); @@ -221,20 +221,20 @@ function _resolveStandardizedNameForImport() { const resolveStandardizedName = _gensync()({ sync(type, name, dirname = process.cwd()) { - return resolveStandardizedNameForRequrie(type, name, dirname); + return resolveStandardizedNameForRequire(type, name, dirname); }, async(type, name, dirname = process.cwd()) { return _asyncToGenerator(function* () { if (!_moduleTypes.supportsESM) { - return resolveStandardizedNameForRequrie(type, name, dirname); + return resolveStandardizedNameForRequire(type, name, dirname); } try { return yield resolveStandardizedNameForImport(type, name, dirname); } catch (e) { try { - return resolveStandardizedNameForRequrie(type, name, dirname); + return resolveStandardizedNameForRequire(type, name, dirname); } catch (e2) { if (e.type === "MODULE_NOT_FOUND") throw e; if (e2.type === "MODULE_NOT_FOUND") throw e2; diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/config/full.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/config/full.js index e1df648ceede02..443fcea5a3696c 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/config/full.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/config/full.js @@ -327,7 +327,7 @@ const instantiatePlugin = (0, _caching.makeWeakCache)(function* ({ const validateIfOptionNeedsFilename = (options, descriptor) => { if (options.test || options.include || options.exclude) { const formattedPresetName = descriptor.name ? `"${descriptor.name}"` : "/* your preset */"; - throw new Error([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transform(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n")); + throw new Error([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n")); } }; diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/config/validation/options.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/config/validation/options.js index 930278cfb9d1ce..5ea3033a5d31f8 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/config/validation/options.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/config/validation/options.js @@ -74,7 +74,8 @@ const COMMON_VALIDATORS = { moduleId: _optionAssertions.assertString }); } -const assumptionsNames = new Set(["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "objectRestNoSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]); +const knownAssumptions = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "objectRestNoSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]; +const assumptionsNames = new Set(knownAssumptions); exports.assumptionsNames = assumptionsNames; function getSource(loc) { diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/index.js index 175e9f9eb9983c..837db96fd78340 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/index.js @@ -247,14 +247,14 @@ var _transformAst = require("./transform-ast"); var _parse = require("./parse"); -const version = "7.17.9"; +const version = "7.18.5"; exports.version = version; const DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS; class OptionManager { init(opts) { - return (0, _config.loadOptions)(opts); + return (0, _config.loadOptionsSync)(opts); } } diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/parse.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/parse.js index 783032ab9375e3..a64d2297e198a5 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/parse.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/parse.js @@ -37,7 +37,12 @@ const parse = function parse(code, opts, callback) { opts = undefined; } - if (callback === undefined) return parseRunner.sync(code, opts); + if (callback === undefined) { + { + return parseRunner.sync(code, opts); + } + } + parseRunner.errback(code, opts, callback); }; diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js index aa6ae3f365c23b..11c4c770483a5c 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js @@ -8,283 +8,283 @@ const pluginNameMap = { asyncDoExpressions: { syntax: { name: "@babel/plugin-syntax-async-do-expressions", - url: "https://git.io/JYer8" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions" } }, classProperties: { syntax: { name: "@babel/plugin-syntax-class-properties", - url: "https://git.io/vb4yQ" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" }, transform: { name: "@babel/plugin-proposal-class-properties", - url: "https://git.io/vb4SL" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties" } }, classPrivateProperties: { syntax: { name: "@babel/plugin-syntax-class-properties", - url: "https://git.io/vb4yQ" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" }, transform: { name: "@babel/plugin-proposal-class-properties", - url: "https://git.io/vb4SL" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-class-properties" } }, classPrivateMethods: { syntax: { name: "@babel/plugin-syntax-class-properties", - url: "https://git.io/vb4yQ" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties" }, transform: { name: "@babel/plugin-proposal-private-methods", - url: "https://git.io/JvpRG" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-methods" } }, classStaticBlock: { syntax: { name: "@babel/plugin-syntax-class-static-block", - url: "https://git.io/JTLB6" + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block" }, transform: { name: "@babel/plugin-proposal-class-static-block", - url: "https://git.io/JTLBP" + url: "https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-class-static-block" } }, decimal: { syntax: { name: "@babel/plugin-syntax-decimal", - url: "https://git.io/JfKOH" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal" } }, decorators: { syntax: { name: "@babel/plugin-syntax-decorators", - url: "https://git.io/vb4y9" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators" }, transform: { name: "@babel/plugin-proposal-decorators", - url: "https://git.io/vb4ST" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators" } }, doExpressions: { syntax: { name: "@babel/plugin-syntax-do-expressions", - url: "https://git.io/vb4yh" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions" }, transform: { name: "@babel/plugin-proposal-do-expressions", - url: "https://git.io/vb4S3" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions" } }, dynamicImport: { syntax: { name: "@babel/plugin-syntax-dynamic-import", - url: "https://git.io/vb4Sv" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import" } }, exportDefaultFrom: { syntax: { name: "@babel/plugin-syntax-export-default-from", - url: "https://git.io/vb4SO" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from" }, transform: { name: "@babel/plugin-proposal-export-default-from", - url: "https://git.io/vb4yH" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from" } }, exportNamespaceFrom: { syntax: { name: "@babel/plugin-syntax-export-namespace-from", - url: "https://git.io/vb4Sf" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from" }, transform: { name: "@babel/plugin-proposal-export-namespace-from", - url: "https://git.io/vb4SG" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-namespace-from" } }, flow: { syntax: { name: "@babel/plugin-syntax-flow", - url: "https://git.io/vb4yb" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow" }, transform: { name: "@babel/preset-flow", - url: "https://git.io/JfeDn" + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-flow" } }, functionBind: { syntax: { name: "@babel/plugin-syntax-function-bind", - url: "https://git.io/vb4y7" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind" }, transform: { name: "@babel/plugin-proposal-function-bind", - url: "https://git.io/vb4St" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind" } }, functionSent: { syntax: { name: "@babel/plugin-syntax-function-sent", - url: "https://git.io/vb4yN" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent" }, transform: { name: "@babel/plugin-proposal-function-sent", - url: "https://git.io/vb4SZ" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent" } }, importMeta: { syntax: { name: "@babel/plugin-syntax-import-meta", - url: "https://git.io/vbKK6" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta" } }, jsx: { syntax: { name: "@babel/plugin-syntax-jsx", - url: "https://git.io/vb4yA" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx" }, transform: { name: "@babel/preset-react", - url: "https://git.io/JfeDR" + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-react" } }, importAssertions: { syntax: { name: "@babel/plugin-syntax-import-assertions", - url: "https://git.io/JUbkv" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions" } }, moduleStringNames: { syntax: { name: "@babel/plugin-syntax-module-string-names", - url: "https://git.io/JTL8G" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names" } }, numericSeparator: { syntax: { name: "@babel/plugin-syntax-numeric-separator", - url: "https://git.io/vb4Sq" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator" }, transform: { name: "@babel/plugin-proposal-numeric-separator", - url: "https://git.io/vb4yS" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-numeric-separator" } }, optionalChaining: { syntax: { name: "@babel/plugin-syntax-optional-chaining", - url: "https://git.io/vb4Sc" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining" }, transform: { name: "@babel/plugin-proposal-optional-chaining", - url: "https://git.io/vb4Sk" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-chaining" } }, pipelineOperator: { syntax: { name: "@babel/plugin-syntax-pipeline-operator", - url: "https://git.io/vb4yj" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator" }, transform: { name: "@babel/plugin-proposal-pipeline-operator", - url: "https://git.io/vb4SU" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator" } }, privateIn: { syntax: { name: "@babel/plugin-syntax-private-property-in-object", - url: "https://git.io/JfK3q" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object" }, transform: { name: "@babel/plugin-proposal-private-property-in-object", - url: "https://git.io/JfK3O" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-private-property-in-object" } }, recordAndTuple: { syntax: { name: "@babel/plugin-syntax-record-and-tuple", - url: "https://git.io/JvKp3" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple" } }, regexpUnicodeSets: { syntax: { name: "@babel/plugin-syntax-unicode-sets-regex", - url: "https://git.io/J9GTd" + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md" }, transform: { name: "@babel/plugin-proposal-unicode-sets-regex", - url: "https://git.io/J9GTQ" + url: "https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md" } }, throwExpressions: { syntax: { name: "@babel/plugin-syntax-throw-expressions", - url: "https://git.io/vb4SJ" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions" }, transform: { name: "@babel/plugin-proposal-throw-expressions", - url: "https://git.io/vb4yF" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions" } }, typescript: { syntax: { name: "@babel/plugin-syntax-typescript", - url: "https://git.io/vb4SC" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript" }, transform: { name: "@babel/preset-typescript", - url: "https://git.io/JfeDz" + url: "https://github.com/babel/babel/tree/main/packages/babel-preset-typescript" } }, asyncGenerators: { syntax: { name: "@babel/plugin-syntax-async-generators", - url: "https://git.io/vb4SY" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators" }, transform: { name: "@babel/plugin-proposal-async-generator-functions", - url: "https://git.io/vb4yp" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-async-generator-functions" } }, logicalAssignment: { syntax: { name: "@babel/plugin-syntax-logical-assignment-operators", - url: "https://git.io/vAlBp" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators" }, transform: { name: "@babel/plugin-proposal-logical-assignment-operators", - url: "https://git.io/vAlRe" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-logical-assignment-operators" } }, nullishCoalescingOperator: { syntax: { name: "@babel/plugin-syntax-nullish-coalescing-operator", - url: "https://git.io/vb4yx" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator" }, transform: { name: "@babel/plugin-proposal-nullish-coalescing-operator", - url: "https://git.io/vb4Se" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator" } }, objectRestSpread: { syntax: { name: "@babel/plugin-syntax-object-rest-spread", - url: "https://git.io/vb4y5" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread" }, transform: { name: "@babel/plugin-proposal-object-rest-spread", - url: "https://git.io/vb4Ss" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-object-rest-spread" } }, optionalCatchBinding: { syntax: { name: "@babel/plugin-syntax-optional-catch-binding", - url: "https://git.io/vb4Sn" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding" }, transform: { name: "@babel/plugin-proposal-optional-catch-binding", - url: "https://git.io/vb4SI" + url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-optional-catch-binding" } } }; diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/transform-ast.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/transform-ast.js index 61fb2224a667ec..5d9184d53c02b8 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/transform-ast.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/transform-ast.js @@ -33,7 +33,9 @@ const transformFromAst = function transformFromAst(ast, code, opts, callback) { } if (callback === undefined) { - return transformFromAstRunner.sync(ast, code, opts); + { + return transformFromAstRunner.sync(ast, code, opts); + } } transformFromAstRunner.errback(ast, code, opts, callback); diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/transform.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/transform.js index 538c3edfe622f0..c7aa407d8ebe75 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/transform.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/transform.js @@ -31,7 +31,12 @@ const transform = function transform(code, opts, callback) { opts = undefined; } - if (callback === undefined) return transformRunner.sync(code, opts); + if (callback === undefined) { + { + return transformRunner.sync(code, opts); + } + } + transformRunner.errback(code, opts, callback); }; diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/file/generate.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/file/generate.js index def05ca4d0d361..20e71be42b08c5 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/file/generate.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/file/generate.js @@ -68,11 +68,15 @@ function generateCode(pluginPasses, file) { let { code: outputCode, - map: outputMap + decodedMap: outputMap = result.map } = result; - if (outputMap && inputMap) { - outputMap = (0, _mergeMap.default)(inputMap.toObject(), outputMap, generatorOpts.sourceFileName); + if (outputMap) { + if (inputMap) { + outputMap = (0, _mergeMap.default)(inputMap.toObject(), outputMap, generatorOpts.sourceFileName); + } else { + outputMap = result.map; + } } if (opts.sourceMaps === "inline" || opts.sourceMaps === "both") { diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/normalize-file.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/normalize-file.js index dc434ed8c7b85f..3b04cc4b077778 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/normalize-file.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/transformation/normalize-file.js @@ -68,7 +68,7 @@ const { const debug = _debug()("babel:transform:file"); -const LARGE_INPUT_SOURCEMAP_THRESHOLD = 1000000; +const LARGE_INPUT_SOURCEMAP_THRESHOLD = 3000000; function* normalizeFile(pluginPasses, options, code, ast) { code = `${code || ""}`; diff --git a/tools/node_modules/eslint/node_modules/@babel/core/lib/vendor/import-meta-resolve.js b/tools/node_modules/eslint/node_modules/@babel/core/lib/vendor/import-meta-resolve.js index ce8d403f2073c6..979d7b8bb36085 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/lib/vendor/import-meta-resolve.js +++ b/tools/node_modules/eslint/node_modules/@babel/core/lib/vendor/import-meta-resolve.js @@ -64,13 +64,9 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function createCommonjsModule(fn) { - var module = { - exports: {} - }; - return fn(module, module.exports), module.exports; -} - +var re$3 = { + exports: {} +}; const SEMVER_SPEC_VERSION = '2.0.0'; const MAX_LENGTH$2 = 256; const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || 9007199254740991; @@ -81,12 +77,14 @@ var constants = { MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1, MAX_SAFE_COMPONENT_LENGTH }; -const debug = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error('SEMVER', ...args) : () => {}; -var debug_1 = debug; -var re_1 = createCommonjsModule(function (module, exports) { +const debug$1 = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error('SEMVER', ...args) : () => {}; +var debug_1 = debug$1; + +(function (module, exports) { const { MAX_SAFE_COMPONENT_LENGTH } = constants; + const debug = debug_1; exports = module.exports = {}; const re = exports.re = []; const src = exports.src = []; @@ -95,7 +93,7 @@ var re_1 = createCommonjsModule(function (module, exports) { const createToken = (name, value, isGlobal) => { const index = R++; - debug_1(index, value); + debug(index, value); t[name] = index; src[index] = value; re[index] = new RegExp(value, isGlobal ? 'g' : undefined); @@ -144,17 +142,18 @@ var re_1 = createCommonjsModule(function (module, exports) { createToken('STAR', '(<|>)?=?\\s*\\*'); createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$'); createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$'); -}); +})(re$3, re$3.exports); + const opts = ['includePrerelease', 'loose', 'rtl']; -const parseOptions = options => !options ? {} : typeof options !== 'object' ? { +const parseOptions$2 = options => !options ? {} : typeof options !== 'object' ? { loose: true } : opts.filter(k => options[k]).reduce((options, k) => { options[k] = true; return options; }, {}); -var parseOptions_1 = parseOptions; +var parseOptions_1 = parseOptions$2; const numeric = /^[0-9]+$/; const compareIdentifiers$1 = (a, b) => { @@ -175,23 +174,25 @@ var identifiers = { compareIdentifiers: compareIdentifiers$1, rcompareIdentifiers }; +const debug = debug_1; const { MAX_LENGTH: MAX_LENGTH$1, MAX_SAFE_INTEGER } = constants; const { - re: re$4, - t: t$4 -} = re_1; + re: re$2, + t: t$2 +} = re$3.exports; +const parseOptions$1 = parseOptions_1; const { compareIdentifiers } = identifiers; -class SemVer { +class SemVer$c { constructor(version, options) { - options = parseOptions_1(options); + options = parseOptions$1(options); - if (version instanceof SemVer) { + if (version instanceof SemVer$c) { if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { return version; } else { @@ -205,11 +206,11 @@ class SemVer { throw new TypeError(`version is longer than ${MAX_LENGTH$1} characters`); } - debug_1('SemVer', version, options); + debug('SemVer', version, options); this.options = options; this.loose = !!options.loose; this.includePrerelease = !!options.includePrerelease; - const m = version.trim().match(options.loose ? re$4[t$4.LOOSE] : re$4[t$4.FULL]); + const m = version.trim().match(options.loose ? re$2[t$2.LOOSE] : re$2[t$2.FULL]); if (!m) { throw new TypeError(`Invalid Version: ${version}`); @@ -267,14 +268,14 @@ class SemVer { } compare(other) { - debug_1('SemVer.compare', this.version, this.options, other); + debug('SemVer.compare', this.version, this.options, other); - if (!(other instanceof SemVer)) { + if (!(other instanceof SemVer$c)) { if (typeof other === 'string' && other === this.version) { return 0; } - other = new SemVer(other, this.options); + other = new SemVer$c(other, this.options); } if (other.version === this.version) { @@ -285,16 +286,16 @@ class SemVer { } compareMain(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); + if (!(other instanceof SemVer$c)) { + other = new SemVer$c(other, this.options); } return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); } comparePre(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); + if (!(other instanceof SemVer$c)) { + other = new SemVer$c(other, this.options); } if (this.prerelease.length && !other.prerelease.length) { @@ -310,7 +311,7 @@ class SemVer { do { const a = this.prerelease[i]; const b = other.prerelease[i]; - debug_1('prerelease compare', i, a, b); + debug('prerelease compare', i, a, b); if (a === undefined && b === undefined) { return 0; @@ -327,8 +328,8 @@ class SemVer { } compareBuild(other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options); + if (!(other instanceof SemVer$c)) { + other = new SemVer$c(other, this.options); } let i = 0; @@ -336,7 +337,7 @@ class SemVer { do { const a = this.build[i]; const b = other.build[i]; - debug_1('prerelease compare', i, a, b); + debug('prerelease compare', i, a, b); if (a === undefined && b === undefined) { return 0; @@ -451,19 +452,21 @@ class SemVer { } -var semver$1 = SemVer; +var semver$2 = SemVer$c; const { MAX_LENGTH } = constants; const { - re: re$3, - t: t$3 -} = re_1; + re: re$1, + t: t$1 +} = re$3.exports; +const SemVer$b = semver$2; +const parseOptions = parseOptions_1; -const parse = (version, options) => { - options = parseOptions_1(options); +const parse$5 = (version, options) => { + options = parseOptions(options); - if (version instanceof semver$1) { + if (version instanceof SemVer$b) { return version; } @@ -475,34 +478,37 @@ const parse = (version, options) => { return null; } - const r = options.loose ? re$3[t$3.LOOSE] : re$3[t$3.FULL]; + const r = options.loose ? re$1[t$1.LOOSE] : re$1[t$1.FULL]; if (!r.test(version)) { return null; } try { - return new semver$1(version, options); + return new SemVer$b(version, options); } catch (er) { return null; } }; -var parse_1 = parse; +var parse_1 = parse$5; +const parse$4 = parse_1; const valid$1 = (version, options) => { - const v = parse_1(version, options); + const v = parse$4(version, options); return v ? v.version : null; }; var valid_1 = valid$1; +const parse$3 = parse_1; const clean = (version, options) => { - const s = parse_1(version.trim().replace(/^[=v]+/, ''), options); + const s = parse$3(version.trim().replace(/^[=v]+/, ''), options); return s ? s.version : null; }; var clean_1 = clean; +const SemVer$a = semver$2; const inc = (version, release, options, identifier) => { if (typeof options === 'string') { @@ -511,28 +517,32 @@ const inc = (version, release, options, identifier) => { } try { - return new semver$1(version, options).inc(release, identifier).version; + return new SemVer$a(version, options).inc(release, identifier).version; } catch (er) { return null; } }; var inc_1 = inc; +const SemVer$9 = semver$2; -const compare = (a, b, loose) => new semver$1(a, loose).compare(new semver$1(b, loose)); +const compare$a = (a, b, loose) => new SemVer$9(a, loose).compare(new SemVer$9(b, loose)); -var compare_1 = compare; +var compare_1 = compare$a; +const compare$9 = compare_1; -const eq = (a, b, loose) => compare_1(a, b, loose) === 0; +const eq$2 = (a, b, loose) => compare$9(a, b, loose) === 0; -var eq_1 = eq; +var eq_1 = eq$2; +const parse$2 = parse_1; +const eq$1 = eq_1; const diff = (version1, version2) => { - if (eq_1(version1, version2)) { + if (eq$1(version1, version2)) { return null; } else { - const v1 = parse_1(version1); - const v2 = parse_1(version2); + const v1 = parse$2(version1); + const v2 = parse$2(version2); const hasPre = v1.prerelease.length || v2.prerelease.length; const prefix = hasPre ? 'pre' : ''; const defaultResult = hasPre ? 'prerelease' : ''; @@ -550,69 +560,89 @@ const diff = (version1, version2) => { }; var diff_1 = diff; +const SemVer$8 = semver$2; -const major = (a, loose) => new semver$1(a, loose).major; +const major = (a, loose) => new SemVer$8(a, loose).major; var major_1 = major; +const SemVer$7 = semver$2; -const minor = (a, loose) => new semver$1(a, loose).minor; +const minor = (a, loose) => new SemVer$7(a, loose).minor; var minor_1 = minor; +const SemVer$6 = semver$2; -const patch = (a, loose) => new semver$1(a, loose).patch; +const patch = (a, loose) => new SemVer$6(a, loose).patch; var patch_1 = patch; +const parse$1 = parse_1; const prerelease = (version, options) => { - const parsed = parse_1(version, options); + const parsed = parse$1(version, options); return parsed && parsed.prerelease.length ? parsed.prerelease : null; }; var prerelease_1 = prerelease; +const compare$8 = compare_1; -const rcompare = (a, b, loose) => compare_1(b, a, loose); +const rcompare = (a, b, loose) => compare$8(b, a, loose); var rcompare_1 = rcompare; +const compare$7 = compare_1; -const compareLoose = (a, b) => compare_1(a, b, true); +const compareLoose = (a, b) => compare$7(a, b, true); var compareLoose_1 = compareLoose; +const SemVer$5 = semver$2; -const compareBuild = (a, b, loose) => { - const versionA = new semver$1(a, loose); - const versionB = new semver$1(b, loose); +const compareBuild$2 = (a, b, loose) => { + const versionA = new SemVer$5(a, loose); + const versionB = new SemVer$5(b, loose); return versionA.compare(versionB) || versionA.compareBuild(versionB); }; -var compareBuild_1 = compareBuild; +var compareBuild_1 = compareBuild$2; +const compareBuild$1 = compareBuild_1; -const sort = (list, loose) => list.sort((a, b) => compareBuild_1(a, b, loose)); +const sort = (list, loose) => list.sort((a, b) => compareBuild$1(a, b, loose)); var sort_1 = sort; +const compareBuild = compareBuild_1; -const rsort = (list, loose) => list.sort((a, b) => compareBuild_1(b, a, loose)); +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); var rsort_1 = rsort; +const compare$6 = compare_1; -const gt = (a, b, loose) => compare_1(a, b, loose) > 0; +const gt$3 = (a, b, loose) => compare$6(a, b, loose) > 0; -var gt_1 = gt; +var gt_1 = gt$3; +const compare$5 = compare_1; -const lt = (a, b, loose) => compare_1(a, b, loose) < 0; +const lt$2 = (a, b, loose) => compare$5(a, b, loose) < 0; -var lt_1 = lt; +var lt_1 = lt$2; +const compare$4 = compare_1; -const neq = (a, b, loose) => compare_1(a, b, loose) !== 0; +const neq$1 = (a, b, loose) => compare$4(a, b, loose) !== 0; -var neq_1 = neq; +var neq_1 = neq$1; +const compare$3 = compare_1; -const gte = (a, b, loose) => compare_1(a, b, loose) >= 0; +const gte$2 = (a, b, loose) => compare$3(a, b, loose) >= 0; -var gte_1 = gte; +var gte_1 = gte$2; +const compare$2 = compare_1; -const lte = (a, b, loose) => compare_1(a, b, loose) <= 0; +const lte$2 = (a, b, loose) => compare$2(a, b, loose) <= 0; -var lte_1 = lte; +var lte_1 = lte$2; +const eq = eq_1; +const neq = neq_1; +const gt$2 = gt_1; +const gte$1 = gte_1; +const lt$1 = lt_1; +const lte$1 = lte_1; const cmp = (a, op, b, loose) => { switch (op) { @@ -629,22 +659,22 @@ const cmp = (a, op, b, loose) => { case '': case '=': case '==': - return eq_1(a, b, loose); + return eq(a, b, loose); case '!=': - return neq_1(a, b, loose); + return neq(a, b, loose); case '>': - return gt_1(a, b, loose); + return gt$2(a, b, loose); case '>=': - return gte_1(a, b, loose); + return gte$1(a, b, loose); case '<': - return lt_1(a, b, loose); + return lt$1(a, b, loose); case '<=': - return lte_1(a, b, loose); + return lte$1(a, b, loose); default: throw new TypeError(`Invalid operator: ${op}`); @@ -652,13 +682,15 @@ const cmp = (a, op, b, loose) => { }; var cmp_1 = cmp; +const SemVer$4 = semver$2; +const parse = parse_1; const { - re: re$2, - t: t$2 -} = re_1; + re, + t +} = re$3.exports; const coerce = (version, options) => { - if (version instanceof semver$1) { + if (version instanceof SemVer$4) { return version; } @@ -674,1345 +706,1405 @@ const coerce = (version, options) => { let match = null; if (!options.rtl) { - match = version.match(re$2[t$2.COERCE]); + match = version.match(re[t.COERCE]); } else { let next; - while ((next = re$2[t$2.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)) { + while ((next = re[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)) { if (!match || next.index + next[0].length !== match.index + match[0].length) { match = next; } - re$2[t$2.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; + re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; } - re$2[t$2.COERCERTL].lastIndex = -1; + re[t.COERCERTL].lastIndex = -1; } if (match === null) return null; - return parse_1(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options); + return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options); }; var coerce_1 = coerce; +var iterator; +var hasRequiredIterator; -var iterator = function (Yallist) { - Yallist.prototype[Symbol.iterator] = function* () { - for (let walker = this.head; walker; walker = walker.next) { - yield walker.value; - } +function requireIterator() { + if (hasRequiredIterator) return iterator; + hasRequiredIterator = 1; + + iterator = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value; + } + }; }; -}; -var yallist = Yallist; -Yallist.Node = Node; -Yallist.create = Yallist; + return iterator; +} -function Yallist(list) { - var self = this; +var yallist; +var hasRequiredYallist; - if (!(self instanceof Yallist)) { - self = new Yallist(); - } +function requireYallist() { + if (hasRequiredYallist) return yallist; + hasRequiredYallist = 1; + yallist = Yallist; + Yallist.Node = Node; + Yallist.create = Yallist; - self.tail = null; - self.head = null; - self.length = 0; + function Yallist(list) { + var self = this; - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item); - }); - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]); + if (!(self instanceof Yallist)) { + self = new Yallist(); } - } - return self; -} - -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list'); - } + self.tail = null; + self.head = null; + self.length = 0; - var next = node.next; - var prev = node.prev; + if (list && typeof list.forEach === 'function') { + list.forEach(function (item) { + self.push(item); + }); + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self.push(arguments[i]); + } + } - if (next) { - next.prev = prev; + return self; } - if (prev) { - prev.next = next; - } + Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list'); + } - if (node === this.head) { - this.head = next; - } + var next = node.next; + var prev = node.prev; - if (node === this.tail) { - this.tail = prev; - } + if (next) { + next.prev = prev; + } - node.list.length--; - node.next = null; - node.prev = null; - node.list = null; - return next; -}; + if (prev) { + prev.next = next; + } -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return; - } + if (node === this.head) { + this.head = next; + } - if (node.list) { - node.list.removeNode(node); - } + if (node === this.tail) { + this.tail = prev; + } - var head = this.head; - node.list = this; - node.next = head; + node.list.length--; + node.next = null; + node.prev = null; + node.list = null; + return next; + }; - if (head) { - head.prev = node; - } + Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return; + } - this.head = node; + if (node.list) { + node.list.removeNode(node); + } - if (!this.tail) { - this.tail = node; - } + var head = this.head; + node.list = this; + node.next = head; - this.length++; -}; + if (head) { + head.prev = node; + } -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return; - } + this.head = node; - if (node.list) { - node.list.removeNode(node); - } + if (!this.tail) { + this.tail = node; + } - var tail = this.tail; - node.list = this; - node.prev = tail; + this.length++; + }; - if (tail) { - tail.next = node; - } + Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return; + } - this.tail = node; + if (node.list) { + node.list.removeNode(node); + } - if (!this.head) { - this.head = node; - } + var tail = this.tail; + node.list = this; + node.prev = tail; - this.length++; -}; + if (tail) { + tail.next = node; + } -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]); - } + this.tail = node; - return this.length; -}; + if (!this.head) { + this.head = node; + } -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]); - } + this.length++; + }; - return this.length; -}; + Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]); + } -Yallist.prototype.pop = function () { - if (!this.tail) { - return undefined; - } + return this.length; + }; - var res = this.tail.value; - this.tail = this.tail.prev; + Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]); + } - if (this.tail) { - this.tail.next = null; - } else { - this.head = null; - } + return this.length; + }; - this.length--; - return res; -}; + Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined; + } -Yallist.prototype.shift = function () { - if (!this.head) { - return undefined; - } + var res = this.tail.value; + this.tail = this.tail.prev; - var res = this.head.value; - this.head = this.head.next; + if (this.tail) { + this.tail.next = null; + } else { + this.head = null; + } - if (this.head) { - this.head.prev = null; - } else { - this.tail = null; - } + this.length--; + return res; + }; - this.length--; - return res; -}; + Yallist.prototype.shift = function () { + if (!this.head) { + return undefined; + } -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this; + var res = this.head.value; + this.head = this.head.next; - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this); - walker = walker.next; - } -}; + if (this.head) { + this.head.prev = null; + } else { + this.tail = null; + } -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this; + this.length--; + return res; + }; - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this); - walker = walker.prev; - } -}; + Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this; -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - walker = walker.next; - } + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this); + walker = walker.next; + } + }; - if (i === n && walker !== null) { - return walker.value; - } -}; + Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this; -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - walker = walker.prev; - } + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this); + walker = walker.prev; + } + }; - if (i === n && walker !== null) { - return walker.value; - } -}; + Yallist.prototype.get = function (n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + walker = walker.next; + } -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this; - var res = new Yallist(); + if (i === n && walker !== null) { + return walker.value; + } + }; - for (var walker = this.head; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)); - walker = walker.next; - } + Yallist.prototype.getReverse = function (n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + walker = walker.prev; + } - return res; -}; + if (i === n && walker !== null) { + return walker.value; + } + }; -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this; - var res = new Yallist(); + Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)); - walker = walker.prev; - } + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.next; + } - return res; -}; + return res; + }; -Yallist.prototype.reduce = function (fn, initial) { - var acc; - var walker = this.head; + Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this; + var res = new Yallist(); - if (arguments.length > 1) { - acc = initial; - } else if (this.head) { - walker = this.head.next; - acc = this.head.value; - } else { - throw new TypeError('Reduce of empty list with no initial value'); - } + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)); + walker = walker.prev; + } - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i); - walker = walker.next; - } + return res; + }; - return acc; -}; + Yallist.prototype.reduce = function (fn, initial) { + var acc; + var walker = this.head; -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc; - var walker = this.tail; + if (arguments.length > 1) { + acc = initial; + } else if (this.head) { + walker = this.head.next; + acc = this.head.value; + } else { + throw new TypeError('Reduce of empty list with no initial value'); + } - if (arguments.length > 1) { - acc = initial; - } else if (this.tail) { - walker = this.tail.prev; - acc = this.tail.value; - } else { - throw new TypeError('Reduce of empty list with no initial value'); - } + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i); + walker = walker.next; + } - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i); - walker = walker.prev; - } + return acc; + }; - return acc; -}; + Yallist.prototype.reduceReverse = function (fn, initial) { + var acc; + var walker = this.tail; -Yallist.prototype.toArray = function () { - var arr = new Array(this.length); + if (arguments.length > 1) { + acc = initial; + } else if (this.tail) { + walker = this.tail.prev; + acc = this.tail.value; + } else { + throw new TypeError('Reduce of empty list with no initial value'); + } - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value; - walker = walker.next; - } + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i); + walker = walker.prev; + } - return arr; -}; + return acc; + }; -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length); + Yallist.prototype.toArray = function () { + var arr = new Array(this.length); - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value; - walker = walker.prev; - } + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.next; + } - return arr; -}; + return arr; + }; -Yallist.prototype.slice = function (from, to) { - to = to || this.length; + Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length); - if (to < 0) { - to += this.length; - } + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value; + walker = walker.prev; + } - from = from || 0; + return arr; + }; - if (from < 0) { - from += this.length; - } + Yallist.prototype.slice = function (from, to) { + to = to || this.length; - var ret = new Yallist(); + if (to < 0) { + to += this.length; + } - if (to < from || to < 0) { - return ret; - } + from = from || 0; - if (from < 0) { - from = 0; - } + if (from < 0) { + from += this.length; + } - if (to > this.length) { - to = this.length; - } + var ret = new Yallist(); - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next; - } + if (to < from || to < 0) { + return ret; + } - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value); - } + if (from < 0) { + from = 0; + } - return ret; -}; + if (to > this.length) { + to = this.length; + } -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length; + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next; + } - if (to < 0) { - to += this.length; - } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value); + } - from = from || 0; + return ret; + }; - if (from < 0) { - from += this.length; - } + Yallist.prototype.sliceReverse = function (from, to) { + to = to || this.length; - var ret = new Yallist(); + if (to < 0) { + to += this.length; + } - if (to < from || to < 0) { - return ret; - } + from = from || 0; - if (from < 0) { - from = 0; - } + if (from < 0) { + from += this.length; + } - if (to > this.length) { - to = this.length; - } + var ret = new Yallist(); - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev; - } + if (to < from || to < 0) { + return ret; + } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value); - } + if (from < 0) { + from = 0; + } - return ret; -}; + if (to > this.length) { + to = this.length; + } -Yallist.prototype.splice = function (start, deleteCount, ...nodes) { - if (start > this.length) { - start = this.length - 1; - } + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev; + } - if (start < 0) { - start = this.length + start; - } + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value); + } - for (var i = 0, walker = this.head; walker !== null && i < start; i++) { - walker = walker.next; - } + return ret; + }; - var ret = []; + Yallist.prototype.splice = function (start, deleteCount, ...nodes) { + if (start > this.length) { + start = this.length - 1; + } - for (var i = 0; walker && i < deleteCount; i++) { - ret.push(walker.value); - walker = this.removeNode(walker); - } + if (start < 0) { + start = this.length + start; + } - if (walker === null) { - walker = this.tail; - } + for (var i = 0, walker = this.head; walker !== null && i < start; i++) { + walker = walker.next; + } - if (walker !== this.head && walker !== this.tail) { - walker = walker.prev; - } + var ret = []; - for (var i = 0; i < nodes.length; i++) { - walker = insert(this, walker, nodes[i]); - } + for (var i = 0; walker && i < deleteCount; i++) { + ret.push(walker.value); + walker = this.removeNode(walker); + } - return ret; -}; + if (walker === null) { + walker = this.tail; + } -Yallist.prototype.reverse = function () { - var head = this.head; - var tail = this.tail; + if (walker !== this.head && walker !== this.tail) { + walker = walker.prev; + } - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev; - walker.prev = walker.next; - walker.next = p; - } + for (var i = 0; i < nodes.length; i++) { + walker = insert(this, walker, nodes[i]); + } - this.head = tail; - this.tail = head; - return this; -}; + return ret; + }; -function insert(self, node, value) { - var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self); + Yallist.prototype.reverse = function () { + var head = this.head; + var tail = this.tail; - if (inserted.next === null) { - self.tail = inserted; - } + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev; + walker.prev = walker.next; + walker.next = p; + } - if (inserted.prev === null) { - self.head = inserted; - } + this.head = tail; + this.tail = head; + return this; + }; - self.length++; - return inserted; -} + function insert(self, node, value) { + var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self); + + if (inserted.next === null) { + self.tail = inserted; + } -function push(self, item) { - self.tail = new Node(item, self.tail, null, self); + if (inserted.prev === null) { + self.head = inserted; + } - if (!self.head) { - self.head = self.tail; + self.length++; + return inserted; } - self.length++; -} + function push(self, item) { + self.tail = new Node(item, self.tail, null, self); -function unshift(self, item) { - self.head = new Node(item, null, self.head, self); + if (!self.head) { + self.head = self.tail; + } - if (!self.tail) { - self.tail = self.head; + self.length++; } - self.length++; -} - -function Node(value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list); - } + function unshift(self, item) { + self.head = new Node(item, null, self.head, self); - this.list = list; - this.value = value; + if (!self.tail) { + self.tail = self.head; + } - if (prev) { - prev.next = this; - this.prev = prev; - } else { - this.prev = null; + self.length++; } - if (next) { - next.prev = this; - this.next = next; - } else { - this.next = null; - } -} + function Node(value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list); + } -try { - iterator(Yallist); -} catch (er) {} - -const MAX = Symbol('max'); -const LENGTH = Symbol('length'); -const LENGTH_CALCULATOR = Symbol('lengthCalculator'); -const ALLOW_STALE = Symbol('allowStale'); -const MAX_AGE = Symbol('maxAge'); -const DISPOSE = Symbol('dispose'); -const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet'); -const LRU_LIST = Symbol('lruList'); -const CACHE = Symbol('cache'); -const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet'); - -const naiveLength = () => 1; - -class LRUCache { - constructor(options) { - if (typeof options === 'number') options = { - max: options - }; - if (!options) options = {}; - if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number'); - this[MAX] = options.max || Infinity; - const lc = options.length || naiveLength; - this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc; - this[ALLOW_STALE] = options.stale || false; - if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number'); - this[MAX_AGE] = options.maxAge || 0; - this[DISPOSE] = options.dispose; - this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; - this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false; - this.reset(); - } + this.list = list; + this.value = value; - set max(mL) { - if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number'); - this[MAX] = mL || Infinity; - trim(this); - } + if (prev) { + prev.next = this; + this.prev = prev; + } else { + this.prev = null; + } - get max() { - return this[MAX]; + if (next) { + next.prev = this; + this.next = next; + } else { + this.next = null; + } } - set allowStale(allowStale) { - this[ALLOW_STALE] = !!allowStale; - } + try { + requireIterator()(Yallist); + } catch (er) {} - get allowStale() { - return this[ALLOW_STALE]; - } + return yallist; +} - set maxAge(mA) { - if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number'); - this[MAX_AGE] = mA; - trim(this); - } +var lruCache; +var hasRequiredLruCache; + +function requireLruCache() { + if (hasRequiredLruCache) return lruCache; + hasRequiredLruCache = 1; + const Yallist = requireYallist(); + const MAX = Symbol('max'); + const LENGTH = Symbol('length'); + const LENGTH_CALCULATOR = Symbol('lengthCalculator'); + const ALLOW_STALE = Symbol('allowStale'); + const MAX_AGE = Symbol('maxAge'); + const DISPOSE = Symbol('dispose'); + const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet'); + const LRU_LIST = Symbol('lruList'); + const CACHE = Symbol('cache'); + const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet'); + + const naiveLength = () => 1; + + class LRUCache { + constructor(options) { + if (typeof options === 'number') options = { + max: options + }; + if (!options) options = {}; + if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number'); + this[MAX] = options.max || Infinity; + const lc = options.length || naiveLength; + this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc; + this[ALLOW_STALE] = options.stale || false; + if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number'); + this[MAX_AGE] = options.maxAge || 0; + this[DISPOSE] = options.dispose; + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; + this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false; + this.reset(); + } + + set max(mL) { + if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number'); + this[MAX] = mL || Infinity; + trim(this); + } - get maxAge() { - return this[MAX_AGE]; - } + get max() { + return this[MAX]; + } - set lengthCalculator(lC) { - if (typeof lC !== 'function') lC = naiveLength; + set allowStale(allowStale) { + this[ALLOW_STALE] = !!allowStale; + } - if (lC !== this[LENGTH_CALCULATOR]) { - this[LENGTH_CALCULATOR] = lC; - this[LENGTH] = 0; - this[LRU_LIST].forEach(hit => { - hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); - this[LENGTH] += hit.length; - }); + get allowStale() { + return this[ALLOW_STALE]; } - trim(this); - } + set maxAge(mA) { + if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number'); + this[MAX_AGE] = mA; + trim(this); + } - get lengthCalculator() { - return this[LENGTH_CALCULATOR]; - } + get maxAge() { + return this[MAX_AGE]; + } - get length() { - return this[LENGTH]; - } + set lengthCalculator(lC) { + if (typeof lC !== 'function') lC = naiveLength; - get itemCount() { - return this[LRU_LIST].length; - } + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC; + this[LENGTH] = 0; + this[LRU_LIST].forEach(hit => { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); + this[LENGTH] += hit.length; + }); + } - rforEach(fn, thisp) { - thisp = thisp || this; + trim(this); + } - for (let walker = this[LRU_LIST].tail; walker !== null;) { - const prev = walker.prev; - forEachStep(this, fn, walker, thisp); - walker = prev; + get lengthCalculator() { + return this[LENGTH_CALCULATOR]; } - } - forEach(fn, thisp) { - thisp = thisp || this; + get length() { + return this[LENGTH]; + } - for (let walker = this[LRU_LIST].head; walker !== null;) { - const next = walker.next; - forEachStep(this, fn, walker, thisp); - walker = next; + get itemCount() { + return this[LRU_LIST].length; } - } - keys() { - return this[LRU_LIST].toArray().map(k => k.key); - } + rforEach(fn, thisp) { + thisp = thisp || this; - values() { - return this[LRU_LIST].toArray().map(k => k.value); - } + for (let walker = this[LRU_LIST].tail; walker !== null;) { + const prev = walker.prev; + forEachStep(this, fn, walker, thisp); + walker = prev; + } + } + + forEach(fn, thisp) { + thisp = thisp || this; - reset() { - if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { - this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)); + for (let walker = this[LRU_LIST].head; walker !== null;) { + const next = walker.next; + forEachStep(this, fn, walker, thisp); + walker = next; + } } - this[CACHE] = new Map(); - this[LRU_LIST] = new yallist(); - this[LENGTH] = 0; - } + keys() { + return this[LRU_LIST].toArray().map(k => k.key); + } - dump() { - return this[LRU_LIST].map(hit => isStale(this, hit) ? false : { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - }).toArray().filter(h => h); - } + values() { + return this[LRU_LIST].toArray().map(k => k.value); + } - dumpLru() { - return this[LRU_LIST]; - } + reset() { + if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { + this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)); + } + + this[CACHE] = new Map(); + this[LRU_LIST] = new Yallist(); + this[LENGTH] = 0; + } - set(key, value, maxAge) { - maxAge = maxAge || this[MAX_AGE]; - if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number'); - const now = maxAge ? Date.now() : 0; - const len = this[LENGTH_CALCULATOR](value, key); + dump() { + return this[LRU_LIST].map(hit => isStale(this, hit) ? false : { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }).toArray().filter(h => h); + } - if (this[CACHE].has(key)) { - if (len > this[MAX]) { - del(this, this[CACHE].get(key)); - return false; + dumpLru() { + return this[LRU_LIST]; + } + + set(key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE]; + if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number'); + const now = maxAge ? Date.now() : 0; + const len = this[LENGTH_CALCULATOR](value, key); + + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)); + return false; + } + + const node = this[CACHE].get(key); + const item = node.value; + + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value); + } + + item.now = now; + item.maxAge = maxAge; + item.value = value; + this[LENGTH] += len - item.length; + item.length = len; + this.get(key); + trim(this); + return true; } - const node = this[CACHE].get(key); - const item = node.value; + const hit = new Entry(key, value, len, now, maxAge); - if (this[DISPOSE]) { - if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value); + if (hit.length > this[MAX]) { + if (this[DISPOSE]) this[DISPOSE](key, value); + return false; } - item.now = now; - item.maxAge = maxAge; - item.value = value; - this[LENGTH] += len - item.length; - item.length = len; - this.get(key); + this[LENGTH] += hit.length; + this[LRU_LIST].unshift(hit); + this[CACHE].set(key, this[LRU_LIST].head); trim(this); return true; } - const hit = new Entry(key, value, len, now, maxAge); - - if (hit.length > this[MAX]) { - if (this[DISPOSE]) this[DISPOSE](key, value); - return false; + has(key) { + if (!this[CACHE].has(key)) return false; + const hit = this[CACHE].get(key).value; + return !isStale(this, hit); } - this[LENGTH] += hit.length; - this[LRU_LIST].unshift(hit); - this[CACHE].set(key, this[LRU_LIST].head); - trim(this); - return true; - } - - has(key) { - if (!this[CACHE].has(key)) return false; - const hit = this[CACHE].get(key).value; - return !isStale(this, hit); - } - - get(key) { - return get(this, key, true); - } + get(key) { + return get(this, key, true); + } - peek(key) { - return get(this, key, false); - } + peek(key) { + return get(this, key, false); + } - pop() { - const node = this[LRU_LIST].tail; - if (!node) return null; - del(this, node); - return node.value; - } + pop() { + const node = this[LRU_LIST].tail; + if (!node) return null; + del(this, node); + return node.value; + } - del(key) { - del(this, this[CACHE].get(key)); - } + del(key) { + del(this, this[CACHE].get(key)); + } - load(arr) { - this.reset(); - const now = Date.now(); + load(arr) { + this.reset(); + const now = Date.now(); - for (let l = arr.length - 1; l >= 0; l--) { - const hit = arr[l]; - const expiresAt = hit.e || 0; - if (expiresAt === 0) this.set(hit.k, hit.v);else { - const maxAge = expiresAt - now; + for (let l = arr.length - 1; l >= 0; l--) { + const hit = arr[l]; + const expiresAt = hit.e || 0; + if (expiresAt === 0) this.set(hit.k, hit.v);else { + const maxAge = expiresAt - now; - if (maxAge > 0) { - this.set(hit.k, hit.v, maxAge); + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge); + } } } } - } - prune() { - this[CACHE].forEach((value, key) => get(this, key, false)); - } + prune() { + this[CACHE].forEach((value, key) => get(this, key, false)); + } -} + } -const get = (self, key, doUse) => { - const node = self[CACHE].get(key); + const get = (self, key, doUse) => { + const node = self[CACHE].get(key); - if (node) { - const hit = node.value; + if (node) { + const hit = node.value; - if (isStale(self, hit)) { - del(self, node); - if (!self[ALLOW_STALE]) return undefined; - } else { - if (doUse) { - if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now(); - self[LRU_LIST].unshiftNode(node); + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) return undefined; + } else { + if (doUse) { + if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now(); + self[LRU_LIST].unshiftNode(node); + } } + + return hit.value; } + }; - return hit.value; - } -}; + const isStale = (self, hit) => { + if (!hit || !hit.maxAge && !self[MAX_AGE]) return false; + const diff = Date.now() - hit.now; + return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE]; + }; -const isStale = (self, hit) => { - if (!hit || !hit.maxAge && !self[MAX_AGE]) return false; - const diff = Date.now() - hit.now; - return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE]; -}; + const trim = self => { + if (self[LENGTH] > self[MAX]) { + for (let walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) { + const prev = walker.prev; + del(self, walker); + walker = prev; + } + } + }; -const trim = self => { - if (self[LENGTH] > self[MAX]) { - for (let walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) { - const prev = walker.prev; - del(self, walker); - walker = prev; + const del = (self, node) => { + if (node) { + const hit = node.value; + if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value); + self[LENGTH] -= hit.length; + self[CACHE].delete(hit.key); + self[LRU_LIST].removeNode(node); } - } -}; + }; -const del = (self, node) => { - if (node) { - const hit = node.value; - if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value); - self[LENGTH] -= hit.length; - self[CACHE].delete(hit.key); - self[LRU_LIST].removeNode(node); - } -}; + class Entry { + constructor(key, value, length, now, maxAge) { + this.key = key; + this.value = value; + this.length = length; + this.now = now; + this.maxAge = maxAge || 0; + } -class Entry { - constructor(key, value, length, now, maxAge) { - this.key = key; - this.value = value; - this.length = length; - this.now = now; - this.maxAge = maxAge || 0; } -} + const forEachStep = (self, fn, node, thisp) => { + let hit = node.value; -const forEachStep = (self, fn, node, thisp) => { - let hit = node.value; + if (isStale(self, hit)) { + del(self, node); + if (!self[ALLOW_STALE]) hit = undefined; + } - if (isStale(self, hit)) { - del(self, node); - if (!self[ALLOW_STALE]) hit = undefined; - } + if (hit) fn.call(thisp, hit.value, hit.key, self); + }; - if (hit) fn.call(thisp, hit.value, hit.key, self); -}; + lruCache = LRUCache; + return lruCache; +} -var lruCache = LRUCache; +var range; +var hasRequiredRange; -class Range { - constructor(range, options) { - options = parseOptions_1(options); +function requireRange() { + if (hasRequiredRange) return range; + hasRequiredRange = 1; - if (range instanceof Range) { - if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { - return range; - } else { - return new Range(range.raw, options); + class Range { + constructor(range, options) { + options = parseOptions(options); + + if (range instanceof Range) { + if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { + return range; + } else { + return new Range(range.raw, options); + } } - } - if (range instanceof comparator) { - this.raw = range.value; - this.set = [[range]]; - this.format(); - return this; - } + if (range instanceof Comparator) { + this.raw = range.value; + this.set = [[range]]; + this.format(); + return this; + } - this.options = options; - this.loose = !!options.loose; - this.includePrerelease = !!options.includePrerelease; - this.raw = range; - this.set = range.split(/\s*\|\|\s*/).map(range => this.parseRange(range.trim())).filter(c => c.length); + this.options = options; + this.loose = !!options.loose; + this.includePrerelease = !!options.includePrerelease; + this.raw = range; + this.set = range.split(/\s*\|\|\s*/).map(range => this.parseRange(range.trim())).filter(c => c.length); - if (!this.set.length) { - throw new TypeError(`Invalid SemVer Range: ${range}`); - } + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${range}`); + } - if (this.set.length > 1) { - const first = this.set[0]; - this.set = this.set.filter(c => !isNullSet(c[0])); - if (this.set.length === 0) this.set = [first];else if (this.set.length > 1) { - for (const c of this.set) { - if (c.length === 1 && isAny(c[0])) { - this.set = [c]; - break; + if (this.set.length > 1) { + const first = this.set[0]; + this.set = this.set.filter(c => !isNullSet(c[0])); + if (this.set.length === 0) this.set = [first];else if (this.set.length > 1) { + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c]; + break; + } } } } - } - this.format(); - } - - format() { - this.range = this.set.map(comps => { - return comps.join(' ').trim(); - }).join('||').trim(); - return this.range; - } + this.format(); + } - toString() { - return this.range; - } - - parseRange(range) { - range = range.trim(); - const memoOpts = Object.keys(this.options).join(','); - const memoKey = `parseRange:${memoOpts}:${range}`; - const cached = cache.get(memoKey); - if (cached) return cached; - const loose = this.options.loose; - const hr = loose ? re$1[t$1.HYPHENRANGELOOSE] : re$1[t$1.HYPHENRANGE]; - range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); - debug_1('hyphen replace', range); - range = range.replace(re$1[t$1.COMPARATORTRIM], comparatorTrimReplace); - debug_1('comparator trim', range, re$1[t$1.COMPARATORTRIM]); - range = range.replace(re$1[t$1.TILDETRIM], tildeTrimReplace); - range = range.replace(re$1[t$1.CARETTRIM], caretTrimReplace); - range = range.split(/\s+/).join(' '); - const compRe = loose ? re$1[t$1.COMPARATORLOOSE] : re$1[t$1.COMPARATOR]; - const rangeList = range.split(' ').map(comp => parseComparator(comp, this.options)).join(' ').split(/\s+/).map(comp => replaceGTE0(comp, this.options)).filter(this.options.loose ? comp => !!comp.match(compRe) : () => true).map(comp => new comparator(comp, this.options)); - rangeList.length; - const rangeMap = new Map(); - - for (const comp of rangeList) { - if (isNullSet(comp)) return [comp]; - rangeMap.set(comp.value, comp); - } - - if (rangeMap.size > 1 && rangeMap.has('')) rangeMap.delete(''); - const result = [...rangeMap.values()]; - cache.set(memoKey, result); - return result; - } + format() { + this.range = this.set.map(comps => { + return comps.join(' ').trim(); + }).join('||').trim(); + return this.range; + } + + toString() { + return this.range; + } + + parseRange(range) { + range = range.trim(); + const memoOpts = Object.keys(this.options).join(','); + const memoKey = `parseRange:${memoOpts}:${range}`; + const cached = cache.get(memoKey); + if (cached) return cached; + const loose = this.options.loose; + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); + debug('hyphen replace', range); + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace); + debug('comparator trim', range, re[t.COMPARATORTRIM]); + range = range.replace(re[t.TILDETRIM], tildeTrimReplace); + range = range.replace(re[t.CARETTRIM], caretTrimReplace); + range = range.split(/\s+/).join(' '); + const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + const rangeList = range.split(' ').map(comp => parseComparator(comp, this.options)).join(' ').split(/\s+/).map(comp => replaceGTE0(comp, this.options)).filter(this.options.loose ? comp => !!comp.match(compRe) : () => true).map(comp => new Comparator(comp, this.options)); + rangeList.length; + const rangeMap = new Map(); + + for (const comp of rangeList) { + if (isNullSet(comp)) return [comp]; + rangeMap.set(comp.value, comp); + } - intersects(range, options) { - if (!(range instanceof Range)) { - throw new TypeError('a Range is required'); + if (rangeMap.size > 1 && rangeMap.has('')) rangeMap.delete(''); + const result = [...rangeMap.values()]; + cache.set(memoKey, result); + return result; } - return this.set.some(thisComparators => { - return isSatisfiable(thisComparators, options) && range.set.some(rangeComparators => { - return isSatisfiable(rangeComparators, options) && thisComparators.every(thisComparator => { - return rangeComparators.every(rangeComparator => { - return thisComparator.intersects(rangeComparator, options); + intersects(range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required'); + } + + return this.set.some(thisComparators => { + return isSatisfiable(thisComparators, options) && range.set.some(rangeComparators => { + return isSatisfiable(rangeComparators, options) && thisComparators.every(thisComparator => { + return rangeComparators.every(rangeComparator => { + return thisComparator.intersects(rangeComparator, options); + }); }); }); }); - }); - } - - test(version) { - if (!version) { - return false; } - if (typeof version === 'string') { - try { - version = new semver$1(version, this.options); - } catch (er) { + test(version) { + if (!version) { return false; } - } - for (let i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version, this.options)) { - return true; + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } } + + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true; + } + } + + return false; } - return false; } -} - -var range = Range; -const cache = new lruCache({ - max: 1000 -}); -const { - re: re$1, - t: t$1, - comparatorTrimReplace, - tildeTrimReplace, - caretTrimReplace -} = re_1; + range = Range; + const LRU = requireLruCache(); + const cache = new LRU({ + max: 1000 + }); + const parseOptions = parseOptions_1; + const Comparator = requireComparator(); + const debug = debug_1; + const SemVer = semver$2; + const { + re, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace + } = re$3.exports; -const isNullSet = c => c.value === '<0.0.0-0'; + const isNullSet = c => c.value === '<0.0.0-0'; -const isAny = c => c.value === ''; + const isAny = c => c.value === ''; -const isSatisfiable = (comparators, options) => { - let result = true; - const remainingComparators = comparators.slice(); - let testComparator = remainingComparators.pop(); + const isSatisfiable = (comparators, options) => { + let result = true; + const remainingComparators = comparators.slice(); + let testComparator = remainingComparators.pop(); - while (result && remainingComparators.length) { - result = remainingComparators.every(otherComparator => { - return testComparator.intersects(otherComparator, options); - }); - testComparator = remainingComparators.pop(); - } + while (result && remainingComparators.length) { + result = remainingComparators.every(otherComparator => { + return testComparator.intersects(otherComparator, options); + }); + testComparator = remainingComparators.pop(); + } - return result; -}; + return result; + }; -const parseComparator = (comp, options) => { - debug_1('comp', comp, options); - comp = replaceCarets(comp, options); - debug_1('caret', comp); - comp = replaceTildes(comp, options); - debug_1('tildes', comp); - comp = replaceXRanges(comp, options); - debug_1('xrange', comp); - comp = replaceStars(comp, options); - debug_1('stars', comp); - return comp; -}; + const parseComparator = (comp, options) => { + debug('comp', comp, options); + comp = replaceCarets(comp, options); + debug('caret', comp); + comp = replaceTildes(comp, options); + debug('tildes', comp); + comp = replaceXRanges(comp, options); + debug('xrange', comp); + comp = replaceStars(comp, options); + debug('stars', comp); + return comp; + }; -const isX = id => !id || id.toLowerCase() === 'x' || id === '*'; - -const replaceTildes = (comp, options) => comp.trim().split(/\s+/).map(comp => { - return replaceTilde(comp, options); -}).join(' '); - -const replaceTilde = (comp, options) => { - const r = options.loose ? re$1[t$1.TILDELOOSE] : re$1[t$1.TILDE]; - return comp.replace(r, (_, M, m, p, pr) => { - debug_1('tilde', comp, _, M, m, p, pr); - let ret; - - if (isX(M)) { - ret = ''; - } else if (isX(m)) { - ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; - } else if (isX(p)) { - ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; - } else if (pr) { - debug_1('replaceTilde pr', pr); - ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; - } else { - ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; - } + const isX = id => !id || id.toLowerCase() === 'x' || id === '*'; - debug_1('tilde return', ret); - return ret; - }); -}; + const replaceTildes = (comp, options) => comp.trim().split(/\s+/).map(comp => { + return replaceTilde(comp, options); + }).join(' '); -const replaceCarets = (comp, options) => comp.trim().split(/\s+/).map(comp => { - return replaceCaret(comp, options); -}).join(' '); - -const replaceCaret = (comp, options) => { - debug_1('caret', comp, options); - const r = options.loose ? re$1[t$1.CARETLOOSE] : re$1[t$1.CARET]; - const z = options.includePrerelease ? '-0' : ''; - return comp.replace(r, (_, M, m, p, pr) => { - debug_1('caret', comp, _, M, m, p, pr); - let ret; - - if (isX(M)) { - ret = ''; - } else if (isX(m)) { - ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; - } else if (isX(p)) { - if (M === '0') { - ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; + const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr); + let ret; + + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; + } else if (isX(p)) { + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; + } else if (pr) { + debug('replaceTilde pr', pr); + ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; } else { - ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; + ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; } - } else if (pr) { - debug_1('replaceCaret pr', pr); - if (M === '0') { - if (m === '0') { - ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`; + debug('tilde return', ret); + return ret; + }); + }; + + const replaceCarets = (comp, options) => comp.trim().split(/\s+/).map(comp => { + return replaceCaret(comp, options); + }).join(' '); + + const replaceCaret = (comp, options) => { + debug('caret', comp, options); + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]; + const z = options.includePrerelease ? '-0' : ''; + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr); + let ret; + + if (isX(M)) { + ret = ''; + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; } else { - ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; } - } else { - ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`; - } - } else { - debug_1('no pr'); + } else if (pr) { + debug('replaceCaret pr', pr); - if (M === '0') { - if (m === '0') { - ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`; + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; + } } else { - ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`; + ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`; } } else { - ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`; - } - } - - debug_1('caret return', ret); - return ret; - }); -}; + debug('no pr'); -const replaceXRanges = (comp, options) => { - debug_1('replaceXRanges', comp, options); - return comp.split(/\s+/).map(comp => { - return replaceXRange(comp, options); - }).join(' '); -}; - -const replaceXRange = (comp, options) => { - comp = comp.trim(); - const r = options.loose ? re$1[t$1.XRANGELOOSE] : re$1[t$1.XRANGE]; - return comp.replace(r, (ret, gtlt, M, m, p, pr) => { - debug_1('xRange', comp, ret, gtlt, M, m, p, pr); - const xM = isX(M); - const xm = xM || isX(m); - const xp = xm || isX(p); - const anyX = xp; + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`; + } else { + ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`; + } + } else { + ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`; + } + } - if (gtlt === '=' && anyX) { - gtlt = ''; - } + debug('caret return', ret); + return ret; + }); + }; - pr = options.includePrerelease ? '-0' : ''; + const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options); + return comp.split(/\s+/).map(comp => { + return replaceXRange(comp, options); + }).join(' '); + }; - if (xM) { - if (gtlt === '>' || gtlt === '<') { - ret = '<0.0.0-0'; - } else { - ret = '*'; + const replaceXRange = (comp, options) => { + comp = comp.trim(); + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr); + const xM = isX(M); + const xm = xM || isX(m); + const xp = xm || isX(p); + const anyX = xp; + + if (gtlt === '=' && anyX) { + gtlt = ''; } - } else if (gtlt && anyX) { - if (xm) { - m = 0; - } - - p = 0; - if (gtlt === '>') { - gtlt = '>='; + pr = options.includePrerelease ? '-0' : ''; - if (xm) { - M = +M + 1; - m = 0; - p = 0; + if (xM) { + if (gtlt === '>' || gtlt === '<') { + ret = '<0.0.0-0'; } else { - m = +m + 1; - p = 0; + ret = '*'; } - } else if (gtlt === '<=') { - gtlt = '<'; - + } else if (gtlt && anyX) { if (xm) { - M = +M + 1; - } else { - m = +m + 1; + m = 0; } - } - if (gtlt === '<') pr = '-0'; - ret = `${gtlt + M}.${m}.${p}${pr}`; - } else if (xm) { - ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; - } else if (xp) { - ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`; - } + p = 0; - debug_1('xRange return', ret); - return ret; - }); -}; + if (gtlt === '>') { + gtlt = '>='; -const replaceStars = (comp, options) => { - debug_1('replaceStars', comp, options); - return comp.trim().replace(re$1[t$1.STAR], ''); -}; + if (xm) { + M = +M + 1; + m = 0; + p = 0; + } else { + m = +m + 1; + p = 0; + } + } else if (gtlt === '<=') { + gtlt = '<'; -const replaceGTE0 = (comp, options) => { - debug_1('replaceGTE0', comp, options); - return comp.trim().replace(re$1[options.includePrerelease ? t$1.GTE0PRE : t$1.GTE0], ''); -}; + if (xm) { + M = +M + 1; + } else { + m = +m + 1; + } + } -const hyphenReplace = incPr => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) => { - if (isX(fM)) { - from = ''; - } else if (isX(fm)) { - from = `>=${fM}.0.0${incPr ? '-0' : ''}`; - } else if (isX(fp)) { - from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`; - } else if (fpr) { - from = `>=${from}`; - } else { - from = `>=${from}${incPr ? '-0' : ''}`; - } - - if (isX(tM)) { - to = ''; - } else if (isX(tm)) { - to = `<${+tM + 1}.0.0-0`; - } else if (isX(tp)) { - to = `<${tM}.${+tm + 1}.0-0`; - } else if (tpr) { - to = `<=${tM}.${tm}.${tp}-${tpr}`; - } else if (incPr) { - to = `<${tM}.${tm}.${+tp + 1}-0`; - } else { - to = `<=${to}`; - } + if (gtlt === '<') pr = '-0'; + ret = `${gtlt + M}.${m}.${p}${pr}`; + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; + } else if (xp) { + ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`; + } - return `${from} ${to}`.trim(); -}; + debug('xRange return', ret); + return ret; + }); + }; -const testSet = (set, version, options) => { - for (let i = 0; i < set.length; i++) { - if (!set[i].test(version)) { - return false; + const replaceStars = (comp, options) => { + debug('replaceStars', comp, options); + return comp.trim().replace(re[t.STAR], ''); + }; + + const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options); + return comp.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], ''); + }; + + const hyphenReplace = incPr => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) => { + if (isX(fM)) { + from = ''; + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}`; + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`; + } else if (fpr) { + from = `>=${from}`; + } else { + from = `>=${from}${incPr ? '-0' : ''}`; + } + + if (isX(tM)) { + to = ''; + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0`; + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0`; + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}`; + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0`; + } else { + to = `<=${to}`; } - } - if (version.prerelease.length && !options.includePrerelease) { - for (let i = 0; i < set.length; i++) { - debug_1(set[i].semver); + return `${from} ${to}`.trim(); + }; - if (set[i].semver === comparator.ANY) { - continue; + const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false; } + } - if (set[i].semver.prerelease.length > 0) { - const allowed = set[i].semver; + if (version.prerelease.length && !options.includePrerelease) { + for (let i = 0; i < set.length; i++) { + debug(set[i].semver); - if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { - return true; + if (set[i].semver === Comparator.ANY) { + continue; + } + + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver; + + if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { + return true; + } } } + + return false; } - return false; - } + return true; + }; - return true; -}; + return range; +} -const ANY$2 = Symbol('SemVer ANY'); +var comparator; +var hasRequiredComparator; -class Comparator { - static get ANY() { - return ANY$2; - } +function requireComparator() { + if (hasRequiredComparator) return comparator; + hasRequiredComparator = 1; + const ANY = Symbol('SemVer ANY'); - constructor(comp, options) { - options = parseOptions_1(options); - - if (comp instanceof Comparator) { - if (comp.loose === !!options.loose) { - return comp; - } else { - comp = comp.value; - } + class Comparator { + static get ANY() { + return ANY; } - debug_1('comparator', comp, options); - this.options = options; - this.loose = !!options.loose; - this.parse(comp); + constructor(comp, options) { + options = parseOptions(options); - if (this.semver === ANY$2) { - this.value = ''; - } else { - this.value = this.operator + this.semver.version; - } + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp; + } else { + comp = comp.value; + } + } - debug_1('comp', this); - } + debug('comparator', comp, options); + this.options = options; + this.loose = !!options.loose; + this.parse(comp); - parse(comp) { - const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; - const m = comp.match(r); + if (this.semver === ANY) { + this.value = ''; + } else { + this.value = this.operator + this.semver.version; + } - if (!m) { - throw new TypeError(`Invalid comparator: ${comp}`); + debug('comp', this); } - this.operator = m[1] !== undefined ? m[1] : ''; + parse(comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; + const m = comp.match(r); - if (this.operator === '=') { - this.operator = ''; - } + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`); + } - if (!m[2]) { - this.semver = ANY$2; - } else { - this.semver = new semver$1(m[2], this.options.loose); - } - } + this.operator = m[1] !== undefined ? m[1] : ''; - toString() { - return this.value; - } + if (this.operator === '=') { + this.operator = ''; + } - test(version) { - debug_1('Comparator.test', version, this.options.loose); + if (!m[2]) { + this.semver = ANY; + } else { + this.semver = new SemVer(m[2], this.options.loose); + } + } - if (this.semver === ANY$2 || version === ANY$2) { - return true; + toString() { + return this.value; } - if (typeof version === 'string') { - try { - version = new semver$1(version, this.options); - } catch (er) { - return false; + test(version) { + debug('Comparator.test', version, this.options.loose); + + if (this.semver === ANY || version === ANY) { + return true; } - } - return cmp_1(version, this.operator, this.semver, this.options); - } + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options); + } catch (er) { + return false; + } + } - intersects(comp, options) { - if (!(comp instanceof Comparator)) { - throw new TypeError('a Comparator is required'); + return cmp(version, this.operator, this.semver, this.options); } - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false - }; - } + intersects(comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required'); + } - if (this.operator === '') { - if (this.value === '') { - return true; + if (!options || typeof options !== 'object') { + options = { + loose: !!options, + includePrerelease: false + }; } - return new range(comp.value, options).test(this.value); - } else if (comp.operator === '') { - if (comp.value === '') { - return true; + if (this.operator === '') { + if (this.value === '') { + return true; + } + + return new Range(comp.value, options).test(this.value); + } else if (comp.operator === '') { + if (comp.value === '') { + return true; + } + + return new Range(this.value, options).test(comp.semver); } - return new range(this.value, options).test(comp.semver); + const sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>'); + const sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<'); + const sameSemVer = this.semver.version === comp.semver.version; + const differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<='); + const oppositeDirectionsLessThan = cmp(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<'); + const oppositeDirectionsGreaterThan = cmp(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>'); + return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; } - const sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>'); - const sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<'); - const sameSemVer = this.semver.version === comp.semver.version; - const differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<='); - const oppositeDirectionsLessThan = cmp_1(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<'); - const oppositeDirectionsGreaterThan = cmp_1(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>'); - return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; } + comparator = Comparator; + const parseOptions = parseOptions_1; + const { + re, + t + } = re$3.exports; + const cmp = cmp_1; + const debug = debug_1; + const SemVer = semver$2; + const Range = requireRange(); + return comparator; } -var comparator = Comparator; -const { - re, - t -} = re_1; +const Range$8 = requireRange(); -const satisfies = (version, range$1, options) => { +const satisfies$3 = (version, range, options) => { try { - range$1 = new range(range$1, options); + range = new Range$8(range, options); } catch (er) { return false; } - return range$1.test(version); + return range.test(version); }; -var satisfies_1 = satisfies; +var satisfies_1 = satisfies$3; +const Range$7 = requireRange(); -const toComparators = (range$1, options) => new range(range$1, options).set.map(comp => comp.map(c => c.value).join(' ').trim().split(' ')); +const toComparators = (range, options) => new Range$7(range, options).set.map(comp => comp.map(c => c.value).join(' ').trim().split(' ')); var toComparators_1 = toComparators; +const SemVer$3 = semver$2; +const Range$6 = requireRange(); -const maxSatisfying = (versions, range$1, options) => { +const maxSatisfying = (versions, range, options) => { let max = null; let maxSV = null; let rangeObj = null; try { - rangeObj = new range(range$1, options); + rangeObj = new Range$6(range, options); } catch (er) { return null; } @@ -2021,7 +2113,7 @@ const maxSatisfying = (versions, range$1, options) => { if (rangeObj.test(v)) { if (!max || maxSV.compare(v) === -1) { max = v; - maxSV = new semver$1(max, options); + maxSV = new SemVer$3(max, options); } } }); @@ -2029,14 +2121,16 @@ const maxSatisfying = (versions, range$1, options) => { }; var maxSatisfying_1 = maxSatisfying; +const SemVer$2 = semver$2; +const Range$5 = requireRange(); -const minSatisfying = (versions, range$1, options) => { +const minSatisfying = (versions, range, options) => { let min = null; let minSV = null; let rangeObj = null; try { - rangeObj = new range(range$1, options); + rangeObj = new Range$5(range, options); } catch (er) { return null; } @@ -2045,7 +2139,7 @@ const minSatisfying = (versions, range$1, options) => { if (rangeObj.test(v)) { if (!min || minSV.compare(v) === 1) { min = v; - minSV = new semver$1(min, options); + minSV = new SemVer$2(min, options); } } }); @@ -2053,28 +2147,31 @@ const minSatisfying = (versions, range$1, options) => { }; var minSatisfying_1 = minSatisfying; +const SemVer$1 = semver$2; +const Range$4 = requireRange(); +const gt$1 = gt_1; -const minVersion = (range$1, loose) => { - range$1 = new range(range$1, loose); - let minver = new semver$1('0.0.0'); +const minVersion = (range, loose) => { + range = new Range$4(range, loose); + let minver = new SemVer$1('0.0.0'); - if (range$1.test(minver)) { + if (range.test(minver)) { return minver; } - minver = new semver$1('0.0.0-0'); + minver = new SemVer$1('0.0.0-0'); - if (range$1.test(minver)) { + if (range.test(minver)) { return minver; } minver = null; - for (let i = 0; i < range$1.set.length; ++i) { - const comparators = range$1.set[i]; + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; let setMin = null; comparators.forEach(comparator => { - const compver = new semver$1(comparator.semver.version); + const compver = new SemVer$1(comparator.semver.version); switch (comparator.operator) { case '>': @@ -2088,7 +2185,7 @@ const minVersion = (range$1, loose) => { case '': case '>=': - if (!setMin || gt_1(compver, setMin)) { + if (!setMin || gt$1(compver, setMin)) { setMin = compver; } @@ -2102,10 +2199,10 @@ const minVersion = (range$1, loose) => { throw new Error(`Unexpected operation: ${comparator.operator}`); } }); - if (setMin && (!minver || gt_1(minver, setMin))) minver = setMin; + if (setMin && (!minver || gt$1(minver, setMin))) minver = setMin; } - if (minver && range$1.test(minver)) { + if (minver && range.test(minver)) { return minver; } @@ -2113,38 +2210,47 @@ const minVersion = (range$1, loose) => { }; var minVersion_1 = minVersion; +const Range$3 = requireRange(); -const validRange = (range$1, options) => { +const validRange = (range, options) => { try { - return new range(range$1, options).range || '*'; + return new Range$3(range, options).range || '*'; } catch (er) { return null; } }; var valid = validRange; +const SemVer = semver$2; +const Comparator$1 = requireComparator(); const { ANY: ANY$1 -} = comparator; - -const outside = (version, range$1, hilo, options) => { - version = new semver$1(version, options); - range$1 = new range(range$1, options); +} = Comparator$1; +const Range$2 = requireRange(); +const satisfies$2 = satisfies_1; +const gt = gt_1; +const lt = lt_1; +const lte = lte_1; +const gte = gte_1; + +const outside$2 = (version, range, hilo, options) => { + version = new SemVer(version, options); + range = new Range$2(range, options); let gtfn, ltefn, ltfn, comp, ecomp; switch (hilo) { case '>': - gtfn = gt_1; - ltefn = lte_1; - ltfn = lt_1; + gtfn = gt; + ltefn = lte; + ltfn = lt; comp = '>'; ecomp = '>='; break; case '<': - gtfn = lt_1; - ltefn = gte_1; - ltfn = gt_1; + gtfn = lt; + ltefn = gte; + ltfn = gt; comp = '<'; ecomp = '<='; break; @@ -2153,26 +2259,26 @@ const outside = (version, range$1, hilo, options) => { throw new TypeError('Must provide a hilo val of "<" or ">"'); } - if (satisfies_1(version, range$1, options)) { + if (satisfies$2(version, range, options)) { return false; } - for (let i = 0; i < range$1.set.length; ++i) { - const comparators = range$1.set[i]; + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i]; let high = null; let low = null; - comparators.forEach(comparator$1 => { - if (comparator$1.semver === ANY$1) { - comparator$1 = new comparator('>=0.0.0'); + comparators.forEach(comparator => { + if (comparator.semver === ANY$1) { + comparator = new Comparator$1('>=0.0.0'); } - high = high || comparator$1; - low = low || comparator$1; + high = high || comparator; + low = low || comparator; - if (gtfn(comparator$1.semver, high.semver, options)) { - high = comparator$1; - } else if (ltfn(comparator$1.semver, low.semver, options)) { - low = comparator$1; + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator; + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator; } }); @@ -2190,32 +2296,37 @@ const outside = (version, range$1, hilo, options) => { return true; }; -var outside_1 = outside; +var outside_1 = outside$2; +const outside$1 = outside_1; -const gtr = (version, range, options) => outside_1(version, range, '>', options); +const gtr = (version, range, options) => outside$1(version, range, '>', options); var gtr_1 = gtr; +const outside = outside_1; -const ltr = (version, range, options) => outside_1(version, range, '<', options); +const ltr = (version, range, options) => outside(version, range, '<', options); var ltr_1 = ltr; +const Range$1 = requireRange(); const intersects = (r1, r2, options) => { - r1 = new range(r1, options); - r2 = new range(r2, options); + r1 = new Range$1(r1, options); + r2 = new Range$1(r2, options); return r1.intersects(r2); }; var intersects_1 = intersects; +const satisfies$1 = satisfies_1; +const compare$1 = compare_1; var simplify = (versions, range, options) => { const set = []; let min = null; let prev = null; - const v = versions.sort((a, b) => compare_1(a, b, options)); + const v = versions.sort((a, b) => compare$1(a, b, options)); for (const version of v) { - const included = satisfies_1(version, range, options); + const included = satisfies$1(version, range, options); if (included) { prev = version; @@ -2242,14 +2353,18 @@ var simplify = (versions, range, options) => { return simplified.length < original.length ? simplified : range; }; +const Range = requireRange(); +const Comparator = requireComparator(); const { ANY -} = comparator; +} = Comparator; +const satisfies = satisfies_1; +const compare = compare_1; const subset = (sub, dom, options = {}) => { if (sub === dom) return true; - sub = new range(sub, options); - dom = new range(dom, options); + sub = new Range(sub, options); + dom = new Range(dom, options); let sawNonNull = false; OUTER: for (const simpleSub of sub.set) { @@ -2269,11 +2384,11 @@ const simpleSubset = (sub, dom, options) => { if (sub === dom) return true; if (sub.length === 1 && sub[0].semver === ANY) { - if (dom.length === 1 && dom[0].semver === ANY) return true;else if (options.includePrerelease) sub = [new comparator('>=0.0.0-0')];else sub = [new comparator('>=0.0.0')]; + if (dom.length === 1 && dom[0].semver === ANY) return true;else if (options.includePrerelease) sub = [new Comparator('>=0.0.0-0')];else sub = [new Comparator('>=0.0.0')]; } if (dom.length === 1 && dom[0].semver === ANY) { - if (options.includePrerelease) return true;else dom = [new comparator('>=0.0.0')]; + if (options.includePrerelease) return true;else dom = [new Comparator('>=0.0.0')]; } const eqSet = new Set(); @@ -2287,16 +2402,16 @@ const simpleSubset = (sub, dom, options) => { let gtltComp; if (gt && lt) { - gtltComp = compare_1(gt.semver, lt.semver, options); + gtltComp = compare(gt.semver, lt.semver, options); if (gtltComp > 0) return null;else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) return null; } for (const eq of eqSet) { - if (gt && !satisfies_1(eq, String(gt), options)) return null; - if (lt && !satisfies_1(eq, String(lt), options)) return null; + if (gt && !satisfies(eq, String(gt), options)) return null; + if (lt && !satisfies(eq, String(lt), options)) return null; for (const c of dom) { - if (!satisfies_1(eq, String(c), options)) return false; + if (!satisfies(eq, String(c), options)) return false; } return true; @@ -2325,7 +2440,7 @@ const simpleSubset = (sub, dom, options) => { if (c.operator === '>' || c.operator === '>=') { higher = higherGT(gt, c, options); if (higher === c && higher !== gt) return false; - } else if (gt.operator === '>=' && !satisfies_1(gt.semver, String(c), options)) return false; + } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) return false; } if (lt) { @@ -2338,7 +2453,7 @@ const simpleSubset = (sub, dom, options) => { if (c.operator === '<' || c.operator === '<=') { lower = lowerLT(lt, c, options); if (lower === c && lower !== lt) return false; - } else if (lt.operator === '<=' && !satisfies_1(lt.semver, String(c), options)) return false; + } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) return false; } if (!c.operator && (lt || gt) && gtltComp !== 0) return false; @@ -2352,23 +2467,24 @@ const simpleSubset = (sub, dom, options) => { const higherGT = (a, b, options) => { if (!a) return b; - const comp = compare_1(a.semver, b.semver, options); + const comp = compare(a.semver, b.semver, options); return comp > 0 ? a : comp < 0 ? b : b.operator === '>' && a.operator === '>=' ? b : a; }; const lowerLT = (a, b, options) => { if (!a) return b; - const comp = compare_1(a.semver, b.semver, options); + const comp = compare(a.semver, b.semver, options); return comp < 0 ? a : comp > 0 ? b : b.operator === '<' && a.operator === '<=' ? b : a; }; var subset_1 = subset; -var semver = { - re: re_1.re, - src: re_1.src, - tokens: re_1.t, +const internalRe = re$3.exports; +var semver$1 = { + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, - SemVer: semver$1, + SemVer: semver$2, compareIdentifiers: identifiers.compareIdentifiers, rcompareIdentifiers: identifiers.rcompareIdentifiers, parse: parse_1, @@ -2394,8 +2510,8 @@ var semver = { lte: lte_1, cmp: cmp_1, coerce: coerce_1, - Comparator: comparator, - Range: range, + Comparator: requireComparator(), + Range: requireRange(), satisfies: satisfies_1, toComparators: toComparators_1, maxSatisfying: maxSatisfying_1, @@ -2409,6 +2525,7 @@ var semver = { simplifyRange: simplify, subset: subset_1 }; +var semver = semver$1; var builtins = function ({ version = process.version, diff --git a/tools/node_modules/eslint/node_modules/@babel/core/package.json b/tools/node_modules/eslint/node_modules/@babel/core/package.json index 542f4badac671f..761e9e510d6583 100644 --- a/tools/node_modules/eslint/node_modules/@babel/core/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/core/package.json @@ -1,6 +1,6 @@ { "name": "@babel/core", - "version": "7.17.9", + "version": "7.18.5", "description": "Babel compiler core.", "main": "./lib/index.js", "author": "The Babel Team (https://babel.dev/team)", @@ -50,14 +50,14 @@ "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.9", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -65,12 +65,13 @@ "semver": "^6.3.0" }, "devDependencies": { - "@babel/helper-transform-fixture-test-runner": "^7.17.9", - "@babel/plugin-transform-modules-commonjs": "^7.17.9", - "@jridgewell/trace-mapping": "^0.3.4", + "@babel/helper-transform-fixture-test-runner": "^7.18.5", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", + "@jridgewell/trace-mapping": "^0.3.8", "@types/convert-source-map": "^1.5.1", "@types/debug": "^4.1.0", "@types/resolve": "^1.3.2", - "@types/semver": "^5.4.0" + "@types/semver": "^5.4.0", + "rimraf": "^3.0.0" } } \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/client.cjs b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/client.cjs index da6c2b0a185e63..09fd8b42a265e2 100644 --- a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/client.cjs +++ b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/client.cjs @@ -1,4 +1,4 @@ -var _class, _worker, _signal, _temp, _worker_threads, _worker_threads_cache; +var _class, _worker, _worker_threads, _worker_threads_cache; function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { _classCheckPrivateStaticAccess(receiver, classConstructor); _classCheckPrivateStaticFieldDescriptor(descriptor, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } @@ -106,20 +106,20 @@ class Client { } -exports.WorkerClient = (_temp = (_worker = new WeakMap(), _signal = new WeakMap(), _class = class WorkerClient extends Client { +exports.WorkerClient = (_worker = new WeakMap(), (_class = class WorkerClient extends Client { constructor() { super((action, payload) => { - _classPrivateFieldGet(this, _signal)[0] = 0; + const signal = new Int32Array(new SharedArrayBuffer(8)); const subChannel = new (_classStaticPrivateFieldSpecGet(WorkerClient, _class, _worker_threads).MessageChannel)(); _classPrivateFieldGet(this, _worker).postMessage({ - signal: _classPrivateFieldGet(this, _signal), + signal, port: subChannel.port1, action, payload }, [subChannel.port1]); - Atomics.wait(_classPrivateFieldGet(this, _signal), 0, 0); + Atomics.wait(signal, 0, 0); const { message @@ -135,21 +135,16 @@ exports.WorkerClient = (_temp = (_worker = new WeakMap(), _signal = new WeakMap( }) }); - _classPrivateFieldInitSpec(this, _signal, { - writable: true, - value: new Int32Array(new SharedArrayBuffer(4)) - }); - _classPrivateFieldGet(this, _worker).unref(); } -}), _worker_threads = { +}, _worker_threads = { get: _get_worker_threads, set: void 0 }, _worker_threads_cache = { writable: true, value: void 0 -}, _temp); +}, _class)); function _get_worker_threads() { var _classStaticPrivateFi2; @@ -158,9 +153,9 @@ function _get_worker_threads() { } { - var _class2, _temp2, _handleMessage; + var _class2, _handleMessage; - exports.LocalClient = (_temp2 = _class2 = class LocalClient extends Client { + exports.LocalClient = (_class2 = class LocalClient extends Client { constructor() { var _classStaticPrivateFi; @@ -173,5 +168,5 @@ function _get_worker_threads() { }, _handleMessage = { writable: true, value: void 0 - }, _temp2); + }, _class2); } \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/parse.cjs b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/parse.cjs index 2af4be31ab9a06..855ec1080d3c53 100644 --- a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/parse.cjs +++ b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/parse.cjs @@ -27,7 +27,7 @@ module.exports = function parse(code, options, client) { } if (!isRunningMinSupportedCoreVersion) { - throw new Error(`@babel/eslint-parser@${"7.17.0"} does not support @babel/core@${client.getVersion()}. Please upgrade to @babel/core@${minSupportedCoreVersion}.`); + throw new Error(`@babel/eslint-parser@${"7.18.2"} does not support @babel/core@${client.getVersion()}. Please upgrade to @babel/core@${minSupportedCoreVersion}.`); } const { diff --git a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/worker/configuration.cjs b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/worker/configuration.cjs index 4118434a2d8a46..af7065d69d3ee4 100644 --- a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/worker/configuration.cjs +++ b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/worker/configuration.cjs @@ -80,17 +80,11 @@ function getDefaultParserOptions(options) { }); } -exports.normalizeBabelParseConfig = function () { - var _ref = _asyncToGenerator(function* (options) { - const parseOptions = normalizeParserOptions(options); - const config = yield babel.loadPartialConfigAsync(parseOptions); - return validateResolvedConfig(config, options, parseOptions); - }); - - return function (_x) { - return _ref.apply(this, arguments); - }; -}(); +exports.normalizeBabelParseConfig = _asyncToGenerator(function* (options) { + const parseOptions = normalizeParserOptions(options); + const config = yield babel.loadPartialConfigAsync(parseOptions); + return validateResolvedConfig(config, options, parseOptions); +}); exports.normalizeBabelParseConfigSync = function (options) { const parseOptions = normalizeParserOptions(options); diff --git a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/worker/index.cjs b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/worker/index.cjs index 86ae5fee7929e8..1ffae936321617 100644 --- a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/worker/index.cjs +++ b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/lib/worker/index.cjs @@ -10,41 +10,35 @@ const { parentPort } = require("worker_threads"); -parentPort.addListener("message", function () { - var _ref = _asyncToGenerator(function* ({ - signal, - port, - action, - payload - }) { - let response; - - try { - if (babel.init) yield babel.init; - response = { - result: yield handleMessage(action, payload) - }; - } catch (error) { - response = { - error, - errorData: Object.assign({}, error) - }; - } - - try { - port.postMessage(response); - } catch (_unused) { - port.postMessage({ - error: new Error("Cannot serialize worker response") - }); - } finally { - port.close(); - Atomics.store(signal, 0, 1); - Atomics.notify(signal, 0); - } - }); - - return function (_x) { - return _ref.apply(this, arguments); - }; -}()); \ No newline at end of file +parentPort.addListener("message", _asyncToGenerator(function* ({ + signal, + port, + action, + payload +}) { + let response; + + try { + if (babel.init) yield babel.init; + response = { + result: yield handleMessage(action, payload) + }; + } catch (error) { + response = { + error, + errorData: Object.assign({}, error) + }; + } + + try { + port.postMessage(response); + } catch (_unused) { + port.postMessage({ + error: new Error("Cannot serialize worker response") + }); + } finally { + port.close(); + Atomics.store(signal, 0, 1); + Atomics.notify(signal, 0); + } +})); \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/package.json b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/package.json index 5a9219530996c5..7434b7ebe17690 100644 --- a/tools/node_modules/eslint/node_modules/@babel/eslint-parser/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/eslint-parser/package.json @@ -1,6 +1,6 @@ { "name": "@babel/eslint-parser", - "version": "7.17.0", + "version": "7.18.2", "description": "ESLint parser that allows for linting of experimental syntax transformed by Babel", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", @@ -36,7 +36,7 @@ "semver": "^6.3.0" }, "devDependencies": { - "@babel/core": "^7.17.0", + "@babel/core": "^7.18.2", "dedent": "^0.7.0", "eslint": "^7.27.0", "eslint-8": "npm:eslint@^8.0.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/lib/buffer.js b/tools/node_modules/eslint/node_modules/@babel/generator/lib/buffer.js index 1445813969095f..99d9afea853a2a 100644 --- a/tools/node_modules/eslint/node_modules/@babel/generator/lib/buffer.js +++ b/tools/node_modules/eslint/node_modules/@babel/generator/lib/buffer.js @@ -4,6 +4,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; + +function SourcePos() { + return { + identifierName: undefined, + line: undefined, + column: undefined, + filename: undefined + }; +} + const SPACES_RE = /^[ \t]+$/; class Buffer { @@ -16,12 +26,7 @@ class Buffer { line: 1, column: 0 }; - this._sourcePosition = { - identifierName: null, - line: null, - column: null, - filename: null - }; + this._sourcePosition = SourcePos(); this._disallowedPop = null; this._map = map; } @@ -32,29 +37,31 @@ class Buffer { const map = this._map; const result = { code: this._buf.trimRight(), - map: null, - rawMappings: map == null ? void 0 : map.getRawMappings() - }; - - if (map) { - Object.defineProperty(result, "map", { - configurable: true, - enumerable: true, - - get() { - return this.map = map.get(); - }, - - set(value) { - Object.defineProperty(this, "map", { - value, - writable: true - }); - } - - }); - } + decodedMap: map == null ? void 0 : map.getDecoded(), + + get map() { + return result.map = map ? map.get() : null; + }, + + set map(value) { + Object.defineProperty(result, "map", { + value, + writable: true + }); + }, + + get rawMappings() { + return result.rawMappings = map == null ? void 0 : map.getRawMappings(); + }, + + set rawMappings(value) { + Object.defineProperty(result, "rawMappings", { + value, + writable: true + }); + } + }; return result; } @@ -65,11 +72,10 @@ class Buffer { line, column, filename, - identifierName, - force + identifierName } = this._sourcePosition; - this._append(str, line, column, identifierName, filename, force); + this._append(str, line, column, identifierName, filename); } queue(str) { @@ -83,11 +89,14 @@ class Buffer { line, column, filename, - identifierName, - force + identifierName } = this._sourcePosition; - this._queue.unshift([str, line, column, identifierName, filename, force]); + this._queue.unshift([str, line, column, identifierName, filename]); + } + + queueIndentation(str) { + this._queue.unshift([str, undefined, undefined, undefined, undefined]); } _flush() { @@ -98,14 +107,14 @@ class Buffer { } } - _append(str, line, column, identifierName, filename, force) { + _append(str, line, column, identifierName, filename) { this._buf += str; this._last = str.charCodeAt(str.length - 1); let i = str.indexOf("\n"); let last = 0; if (i !== 0) { - this._mark(line, column, identifierName, filename, force); + this._mark(line, column, identifierName, filename); } while (i !== -1) { @@ -114,7 +123,7 @@ class Buffer { last = i + 1; if (last < str.length) { - this._mark(++line, 0, identifierName, filename, force); + this._mark(++line, 0, identifierName, filename); } i = str.indexOf("\n", last); @@ -123,10 +132,10 @@ class Buffer { this._position.column += str.length - last; } - _mark(line, column, identifierName, filename, force) { + _mark(line, column, identifierName, filename) { var _this$_map; - (_this$_map = this._map) == null ? void 0 : _this$_map.mark(this._position.line, this._position.column, line, column, identifierName, filename, force); + (_this$_map = this._map) == null ? void 0 : _this$_map.mark(this._position, line, column, identifierName, filename); } removeTrailingNewline() { @@ -176,17 +185,17 @@ class Buffer { } exactSource(loc, cb) { - this.source("start", loc, true); + this.source("start", loc); cb(); this.source("end", loc); this._disallowPop("start", loc); } - source(prop, loc, force) { + source(prop, loc) { if (prop && !loc) return; - this._normalizePosition(prop, loc, this._sourcePosition, force); + this._normalizePosition(prop, loc, this._sourcePosition); } withSource(prop, loc, cb) { @@ -198,46 +207,26 @@ class Buffer { this.source(prop, loc); cb(); - if ((!this._sourcePosition.force || this._sourcePosition.line !== originalLine || this._sourcePosition.column !== originalColumn || this._sourcePosition.filename !== originalFilename) && (!this._disallowedPop || this._disallowedPop.line !== originalLine || this._disallowedPop.column !== originalColumn || this._disallowedPop.filename !== originalFilename)) { + if (!this._disallowedPop || this._disallowedPop.line !== originalLine || this._disallowedPop.column !== originalColumn || this._disallowedPop.filename !== originalFilename) { this._sourcePosition.line = originalLine; this._sourcePosition.column = originalColumn; this._sourcePosition.filename = originalFilename; this._sourcePosition.identifierName = originalIdentifierName; - this._sourcePosition.force = false; this._disallowedPop = null; } } _disallowPop(prop, loc) { if (prop && !loc) return; - this._disallowedPop = this._normalizePosition(prop, loc); + this._disallowedPop = this._normalizePosition(prop, loc, SourcePos()); } - _normalizePosition(prop, loc, targetObj, force) { + _normalizePosition(prop, loc, targetObj) { const pos = loc ? loc[prop] : null; - - if (targetObj === undefined) { - targetObj = { - identifierName: null, - line: null, - column: null, - filename: null, - force: false - }; - } - - const origLine = targetObj.line; - const origColumn = targetObj.column; - const origFilename = targetObj.filename; - targetObj.identifierName = prop === "start" && (loc == null ? void 0 : loc.identifierName) || null; + targetObj.identifierName = prop === "start" && (loc == null ? void 0 : loc.identifierName) || undefined; targetObj.line = pos == null ? void 0 : pos.line; targetObj.column = pos == null ? void 0 : pos.column; targetObj.filename = loc == null ? void 0 : loc.filename; - - if (force || targetObj.line !== origLine || targetObj.column !== origColumn || targetObj.filename !== origFilename) { - targetObj.force = force; - } - return targetObj; } diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/typescript.js b/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/typescript.js index 010d86d0a1d704..1ab647141f4d50 100644 --- a/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/typescript.js +++ b/tools/node_modules/eslint/node_modules/@babel/generator/lib/generators/typescript.js @@ -25,6 +25,7 @@ exports.TSImportType = TSImportType; exports.TSIndexSignature = TSIndexSignature; exports.TSIndexedAccessType = TSIndexedAccessType; exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; exports.TSInterfaceBody = TSInterfaceBody; exports.TSInterfaceDeclaration = TSInterfaceDeclaration; exports.TSIntersectionType = TSIntersectionType; @@ -92,6 +93,16 @@ function TSTypeParameterInstantiation(node, parent) { } function TSTypeParameter(node) { + if (node.in) { + this.word("in"); + this.space(); + } + + if (node.out) { + this.word("out"); + this.space(); + } + this.word(node.name); if (node.constraint) { @@ -352,6 +363,10 @@ function TSTypeQuery(node) { this.word("typeof"); this.space(); this.print(node.exprName); + + if (node.typeParameters) { + this.print(node.typeParameters, node); + } } function TSTypeLiteral(node) { @@ -611,6 +626,11 @@ function TSTypeAssertion(node) { this.print(expression, node); } +function TSInstantiationExpression(node) { + this.print(node.expression, node); + this.print(node.typeParameters, node); +} + function TSEnumDeclaration(node) { const { declare, diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/lib/node/parentheses.js b/tools/node_modules/eslint/node_modules/@babel/generator/lib/node/parentheses.js index 5761a58d984871..8ba2e644d79324 100644 --- a/tools/node_modules/eslint/node_modules/@babel/generator/lib/node/parentheses.js +++ b/tools/node_modules/eslint/node_modules/@babel/generator/lib/node/parentheses.js @@ -21,6 +21,7 @@ exports.OptionalCallExpression = exports.OptionalMemberExpression = OptionalMemb exports.SequenceExpression = SequenceExpression; exports.TSAsExpression = TSAsExpression; exports.TSInferType = TSInferType; +exports.TSInstantiationExpression = TSInstantiationExpression; exports.TSTypeAssertion = TSTypeAssertion; exports.TSIntersectionType = exports.TSUnionType = TSUnionType; exports.UnaryLike = UnaryLike; @@ -37,6 +38,7 @@ const { isAwaitExpression, isBinary, isBinaryExpression, + isUpdateExpression, isCallExpression, isClassDeclaration, isClassExpression, @@ -49,6 +51,7 @@ const { isForInStatement, isForOfStatement, isForStatement, + isFunctionExpression, isIfStatement, isIndexedAccessType, isIntersectionTypeAnnotation, @@ -64,6 +67,7 @@ const { isSwitchStatement, isTSArrayType, isTSAsExpression, + isTSInstantiationExpression, isTSIntersectionType, isTSNonNullExpression, isTSOptionalType, @@ -189,6 +193,10 @@ function TSInferType(node, parent) { return isTSArrayType(parent) || isTSOptionalType(parent); } +function TSInstantiationExpression(node, parent) { + return (isCallExpression(parent) || isOptionalCallExpression(parent) || isNewExpression(parent) || isTSInstantiationExpression(parent)) && !!parent.typeParameters; +} + function BinaryExpression(node, parent) { return node.operator === "in" && (isVariableDeclarator(parent) || isFor(parent)); } @@ -273,6 +281,14 @@ function LogicalExpression(node, parent) { } function Identifier(node, parent, printStack) { + var _node$extra; + + if ((_node$extra = node.extra) != null && _node$extra.parenthesized && isAssignmentExpression(parent, { + left: node + }) && (isFunctionExpression(parent.right) || isClassExpression(parent.right)) && parent.right.id == null) { + return true; + } + if (node.name === "let") { const isFollowedByBracket = isMemberExpression(parent, { object: node, @@ -323,7 +339,7 @@ function isFirstInContext(printStack, { return true; } - if (hasPostfixPart(node, parent) && !isNewExpression(parent) || isSequenceExpression(parent) && parent.expressions[0] === node || isConditional(parent, { + if (hasPostfixPart(node, parent) && !isNewExpression(parent) || isSequenceExpression(parent) && parent.expressions[0] === node || isUpdateExpression(parent) && !parent.prefix || isConditional(parent, { test: node }) || isBinary(parent, { left: node diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/lib/printer.js b/tools/node_modules/eslint/node_modules/@babel/generator/lib/printer.js index 0decd212cb25d2..011460b7609c4d 100644 --- a/tools/node_modules/eslint/node_modules/@babel/generator/lib/printer.js +++ b/tools/node_modules/eslint/node_modules/@babel/generator/lib/printer.js @@ -196,7 +196,7 @@ class Printer { _maybeIndent(str) { if (this._indent && this.endsWith(10) && str.charCodeAt(0) !== 10) { - this._buf.queue(this._getIndent()); + this._buf.queueIndentation(this._getIndent()); } } diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/lib/source-map.js b/tools/node_modules/eslint/node_modules/@babel/generator/lib/source-map.js index 99da1defd77e35..e61177810610b2 100644 --- a/tools/node_modules/eslint/node_modules/@babel/generator/lib/source-map.js +++ b/tools/node_modules/eslint/node_modules/@babel/generator/lib/source-map.js @@ -5,67 +5,51 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; -var _sourceMap = require("source-map"); +var _genMapping = require("@jridgewell/gen-mapping"); class SourceMap { constructor(opts, code) { - this._cachedMap = void 0; - this._code = void 0; - this._opts = void 0; + var _opts$sourceFileName; + + this._map = void 0; this._rawMappings = void 0; - this._lastGenLine = void 0; - this._lastSourceLine = void 0; - this._lastSourceColumn = void 0; - this._cachedMap = null; - this._code = code; - this._opts = opts; - this._rawMappings = []; + this._sourceFileName = void 0; + this._lastGenLine = 0; + this._lastSourceLine = 0; + this._lastSourceColumn = 0; + const map = this._map = new _genMapping.GenMapping({ + sourceRoot: opts.sourceRoot + }); + this._sourceFileName = (_opts$sourceFileName = opts.sourceFileName) == null ? void 0 : _opts$sourceFileName.replace(/\\/g, "/"); + this._rawMappings = undefined; + + if (typeof code === "string") { + (0, _genMapping.setSourceContent)(map, this._sourceFileName, code); + } else if (typeof code === "object") { + Object.keys(code).forEach(sourceFileName => { + (0, _genMapping.setSourceContent)(map, sourceFileName.replace(/\\/g, "/"), code[sourceFileName]); + }); + } } get() { - if (!this._cachedMap) { - const map = this._cachedMap = new _sourceMap.SourceMapGenerator({ - sourceRoot: this._opts.sourceRoot - }); - const code = this._code; - - if (typeof code === "string") { - map.setSourceContent(this._opts.sourceFileName.replace(/\\/g, "/"), code); - } else if (typeof code === "object") { - Object.keys(code).forEach(sourceFileName => { - map.setSourceContent(sourceFileName.replace(/\\/g, "/"), code[sourceFileName]); - }); - } - - this._rawMappings.forEach(mapping => map.addMapping(mapping), map); - } + return (0, _genMapping.toEncodedMap)(this._map); + } - return this._cachedMap.toJSON(); + getDecoded() { + return (0, _genMapping.toDecodedMap)(this._map); } getRawMappings() { - return this._rawMappings.slice(); + return this._rawMappings || (this._rawMappings = (0, _genMapping.allMappings)(this._map)); } - mark(generatedLine, generatedColumn, line, column, identifierName, filename, force) { - if (this._lastGenLine !== generatedLine && line === null) return; - - if (!force && this._lastGenLine === generatedLine && this._lastSourceLine === line && this._lastSourceColumn === column) { - return; - } - - this._cachedMap = null; - this._lastGenLine = generatedLine; - this._lastSourceLine = line; - this._lastSourceColumn = column; - - this._rawMappings.push({ - name: identifierName || undefined, - generated: { - line: generatedLine, - column: generatedColumn - }, - source: line == null ? undefined : (filename || this._opts.sourceFileName).replace(/\\/g, "/"), + mark(generated, line, column, identifierName, filename) { + this._rawMappings = undefined; + (0, _genMapping.maybeAddMapping)(this._map, { + name: identifierName, + generated, + source: line == null ? undefined : (filename == null ? void 0 : filename.replace(/\\/g, "/")) || this._sourceFileName, original: line == null ? undefined : { line: line, column: column diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/LICENSE b/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/LICENSE new file mode 100644 index 00000000000000..352f0715f391f0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/LICENSE @@ -0,0 +1,19 @@ +Copyright 2022 Justin Ridgewell + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs b/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs new file mode 100644 index 00000000000000..5aeb5ccc98ff7f --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs @@ -0,0 +1,230 @@ +import { SetArray, put } from '@jridgewell/set-array'; +import { encode } from '@jridgewell/sourcemap-codec'; +import { TraceMap, decodedMappings } from '@jridgewell/trace-mapping'; + +const COLUMN = 0; +const SOURCES_INDEX = 1; +const SOURCE_LINE = 2; +const SOURCE_COLUMN = 3; +const NAMES_INDEX = 4; + +const NO_NAME = -1; +/** + * A low-level API to associate a generated position with an original source position. Line and + * column here are 0-based, unlike `addMapping`. + */ +let addSegment; +/** + * A high-level API to associate a generated position with an original source position. Line is + * 1-based, but column is 0-based, due to legacy behavior in `source-map` library. + */ +let addMapping; +/** + * Same as `addSegment`, but will only add the segment if it generates useful information in the + * resulting map. This only works correctly if segments are added **in order**, meaning you should + * not add a segment with a lower generated line/column than one that came before. + */ +let maybeAddSegment; +/** + * Same as `addMapping`, but will only add the mapping if it generates useful information in the + * resulting map. This only works correctly if mappings are added **in order**, meaning you should + * not add a mapping with a lower generated line/column than one that came before. + */ +let maybeAddMapping; +/** + * Adds/removes the content of the source file to the source map. + */ +let setSourceContent; +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +let toDecodedMap; +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +let toEncodedMap; +/** + * Constructs a new GenMapping, using the already present mappings of the input. + */ +let fromMap; +/** + * Returns an array of high-level mapping objects for every recorded segment, which could then be + * passed to the `source-map` library. + */ +let allMappings; +// This split declaration is only so that terser can elminiate the static initialization block. +let addSegmentInternal; +/** + * Provides the state to generate a sourcemap. + */ +class GenMapping { + constructor({ file, sourceRoot } = {}) { + this._names = new SetArray(); + this._sources = new SetArray(); + this._sourcesContent = []; + this._mappings = []; + this.file = file; + this.sourceRoot = sourceRoot; + } +} +(() => { + addSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { + return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content); + }; + maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { + return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content); + }; + addMapping = (map, mapping) => { + return addMappingInternal(false, map, mapping); + }; + maybeAddMapping = (map, mapping) => { + return addMappingInternal(true, map, mapping); + }; + setSourceContent = (map, source, content) => { + const { _sources: sources, _sourcesContent: sourcesContent } = map; + sourcesContent[put(sources, source)] = content; + }; + toDecodedMap = (map) => { + const { file, sourceRoot, _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map; + removeEmptyFinalLines(mappings); + return { + version: 3, + file: file || undefined, + names: names.array, + sourceRoot: sourceRoot || undefined, + sources: sources.array, + sourcesContent, + mappings, + }; + }; + toEncodedMap = (map) => { + const decoded = toDecodedMap(map); + return Object.assign(Object.assign({}, decoded), { mappings: encode(decoded.mappings) }); + }; + allMappings = (map) => { + const out = []; + const { _mappings: mappings, _sources: sources, _names: names } = map; + for (let i = 0; i < mappings.length; i++) { + const line = mappings[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const generated = { line: i + 1, column: seg[COLUMN] }; + let source = undefined; + let original = undefined; + let name = undefined; + if (seg.length !== 1) { + source = sources.array[seg[SOURCES_INDEX]]; + original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] }; + if (seg.length === 5) + name = names.array[seg[NAMES_INDEX]]; + } + out.push({ generated, source, original, name }); + } + } + return out; + }; + fromMap = (input) => { + const map = new TraceMap(input); + const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot }); + putAll(gen._names, map.names); + putAll(gen._sources, map.sources); + gen._sourcesContent = map.sourcesContent || map.sources.map(() => null); + gen._mappings = decodedMappings(map); + return gen; + }; + // Internal helpers + addSegmentInternal = (skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { + const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map; + const line = getLine(mappings, genLine); + const index = getColumnIndex(line, genColumn); + if (!source) { + if (skipable && skipSourceless(line, index)) + return; + return insert(line, index, [genColumn]); + } + const sourcesIndex = put(sources, source); + const namesIndex = name ? put(names, name) : NO_NAME; + if (sourcesIndex === sourcesContent.length) + sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null; + if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) { + return; + } + return insert(line, index, name + ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] + : [genColumn, sourcesIndex, sourceLine, sourceColumn]); + }; +})(); +function getLine(mappings, index) { + for (let i = mappings.length; i <= index; i++) { + mappings[i] = []; + } + return mappings[index]; +} +function getColumnIndex(line, genColumn) { + let index = line.length; + for (let i = index - 1; i >= 0; index = i--) { + const current = line[i]; + if (genColumn >= current[COLUMN]) + break; + } + return index; +} +function insert(array, index, value) { + for (let i = array.length; i > index; i--) { + array[i] = array[i - 1]; + } + array[index] = value; +} +function removeEmptyFinalLines(mappings) { + const { length } = mappings; + let len = length; + for (let i = len - 1; i >= 0; len = i, i--) { + if (mappings[i].length > 0) + break; + } + if (len < length) + mappings.length = len; +} +function putAll(strarr, array) { + for (let i = 0; i < array.length; i++) + put(strarr, array[i]); +} +function skipSourceless(line, index) { + // The start of a line is already sourceless, so adding a sourceless segment to the beginning + // doesn't generate any useful information. + if (index === 0) + return true; + const prev = line[index - 1]; + // If the previous segment is also sourceless, then adding another sourceless segment doesn't + // genrate any new information. Else, this segment will end the source/named segment and point to + // a sourceless position, which is useful. + return prev.length === 1; +} +function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) { + // A source/named segment at the start of a line gives position at that genColumn + if (index === 0) + return false; + const prev = line[index - 1]; + // If the previous segment is sourceless, then we're transitioning to a source. + if (prev.length === 1) + return false; + // If the previous segment maps to the exact same source position, then this segment doesn't + // provide any new position information. + return (sourcesIndex === prev[SOURCES_INDEX] && + sourceLine === prev[SOURCE_LINE] && + sourceColumn === prev[SOURCE_COLUMN] && + namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME)); +} +function addMappingInternal(skipable, map, mapping) { + const { generated, source, original, name, content } = mapping; + if (!source) { + return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null); + } + const s = source; + return addSegmentInternal(skipable, map, generated.line - 1, generated.column, s, original.line - 1, original.column, name, content); +} + +export { GenMapping, addMapping, addSegment, allMappings, fromMap, maybeAddMapping, maybeAddSegment, setSourceContent, toDecodedMap, toEncodedMap }; +//# sourceMappingURL=gen-mapping.mjs.map diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js b/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js new file mode 100644 index 00000000000000..d9fcf5cff5957b --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js @@ -0,0 +1,236 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/set-array'), require('@jridgewell/sourcemap-codec'), require('@jridgewell/trace-mapping')) : + typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/set-array', '@jridgewell/sourcemap-codec', '@jridgewell/trace-mapping'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.genMapping = {}, global.setArray, global.sourcemapCodec, global.traceMapping)); +})(this, (function (exports, setArray, sourcemapCodec, traceMapping) { 'use strict'; + + const COLUMN = 0; + const SOURCES_INDEX = 1; + const SOURCE_LINE = 2; + const SOURCE_COLUMN = 3; + const NAMES_INDEX = 4; + + const NO_NAME = -1; + /** + * A low-level API to associate a generated position with an original source position. Line and + * column here are 0-based, unlike `addMapping`. + */ + exports.addSegment = void 0; + /** + * A high-level API to associate a generated position with an original source position. Line is + * 1-based, but column is 0-based, due to legacy behavior in `source-map` library. + */ + exports.addMapping = void 0; + /** + * Same as `addSegment`, but will only add the segment if it generates useful information in the + * resulting map. This only works correctly if segments are added **in order**, meaning you should + * not add a segment with a lower generated line/column than one that came before. + */ + exports.maybeAddSegment = void 0; + /** + * Same as `addMapping`, but will only add the mapping if it generates useful information in the + * resulting map. This only works correctly if mappings are added **in order**, meaning you should + * not add a mapping with a lower generated line/column than one that came before. + */ + exports.maybeAddMapping = void 0; + /** + * Adds/removes the content of the source file to the source map. + */ + exports.setSourceContent = void 0; + /** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ + exports.toDecodedMap = void 0; + /** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ + exports.toEncodedMap = void 0; + /** + * Constructs a new GenMapping, using the already present mappings of the input. + */ + exports.fromMap = void 0; + /** + * Returns an array of high-level mapping objects for every recorded segment, which could then be + * passed to the `source-map` library. + */ + exports.allMappings = void 0; + // This split declaration is only so that terser can elminiate the static initialization block. + let addSegmentInternal; + /** + * Provides the state to generate a sourcemap. + */ + class GenMapping { + constructor({ file, sourceRoot } = {}) { + this._names = new setArray.SetArray(); + this._sources = new setArray.SetArray(); + this._sourcesContent = []; + this._mappings = []; + this.file = file; + this.sourceRoot = sourceRoot; + } + } + (() => { + exports.addSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { + return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content); + }; + exports.maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { + return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content); + }; + exports.addMapping = (map, mapping) => { + return addMappingInternal(false, map, mapping); + }; + exports.maybeAddMapping = (map, mapping) => { + return addMappingInternal(true, map, mapping); + }; + exports.setSourceContent = (map, source, content) => { + const { _sources: sources, _sourcesContent: sourcesContent } = map; + sourcesContent[setArray.put(sources, source)] = content; + }; + exports.toDecodedMap = (map) => { + const { file, sourceRoot, _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map; + removeEmptyFinalLines(mappings); + return { + version: 3, + file: file || undefined, + names: names.array, + sourceRoot: sourceRoot || undefined, + sources: sources.array, + sourcesContent, + mappings, + }; + }; + exports.toEncodedMap = (map) => { + const decoded = exports.toDecodedMap(map); + return Object.assign(Object.assign({}, decoded), { mappings: sourcemapCodec.encode(decoded.mappings) }); + }; + exports.allMappings = (map) => { + const out = []; + const { _mappings: mappings, _sources: sources, _names: names } = map; + for (let i = 0; i < mappings.length; i++) { + const line = mappings[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const generated = { line: i + 1, column: seg[COLUMN] }; + let source = undefined; + let original = undefined; + let name = undefined; + if (seg.length !== 1) { + source = sources.array[seg[SOURCES_INDEX]]; + original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] }; + if (seg.length === 5) + name = names.array[seg[NAMES_INDEX]]; + } + out.push({ generated, source, original, name }); + } + } + return out; + }; + exports.fromMap = (input) => { + const map = new traceMapping.TraceMap(input); + const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot }); + putAll(gen._names, map.names); + putAll(gen._sources, map.sources); + gen._sourcesContent = map.sourcesContent || map.sources.map(() => null); + gen._mappings = traceMapping.decodedMappings(map); + return gen; + }; + // Internal helpers + addSegmentInternal = (skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => { + const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map; + const line = getLine(mappings, genLine); + const index = getColumnIndex(line, genColumn); + if (!source) { + if (skipable && skipSourceless(line, index)) + return; + return insert(line, index, [genColumn]); + } + const sourcesIndex = setArray.put(sources, source); + const namesIndex = name ? setArray.put(names, name) : NO_NAME; + if (sourcesIndex === sourcesContent.length) + sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null; + if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) { + return; + } + return insert(line, index, name + ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] + : [genColumn, sourcesIndex, sourceLine, sourceColumn]); + }; + })(); + function getLine(mappings, index) { + for (let i = mappings.length; i <= index; i++) { + mappings[i] = []; + } + return mappings[index]; + } + function getColumnIndex(line, genColumn) { + let index = line.length; + for (let i = index - 1; i >= 0; index = i--) { + const current = line[i]; + if (genColumn >= current[COLUMN]) + break; + } + return index; + } + function insert(array, index, value) { + for (let i = array.length; i > index; i--) { + array[i] = array[i - 1]; + } + array[index] = value; + } + function removeEmptyFinalLines(mappings) { + const { length } = mappings; + let len = length; + for (let i = len - 1; i >= 0; len = i, i--) { + if (mappings[i].length > 0) + break; + } + if (len < length) + mappings.length = len; + } + function putAll(strarr, array) { + for (let i = 0; i < array.length; i++) + setArray.put(strarr, array[i]); + } + function skipSourceless(line, index) { + // The start of a line is already sourceless, so adding a sourceless segment to the beginning + // doesn't generate any useful information. + if (index === 0) + return true; + const prev = line[index - 1]; + // If the previous segment is also sourceless, then adding another sourceless segment doesn't + // genrate any new information. Else, this segment will end the source/named segment and point to + // a sourceless position, which is useful. + return prev.length === 1; + } + function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) { + // A source/named segment at the start of a line gives position at that genColumn + if (index === 0) + return false; + const prev = line[index - 1]; + // If the previous segment is sourceless, then we're transitioning to a source. + if (prev.length === 1) + return false; + // If the previous segment maps to the exact same source position, then this segment doesn't + // provide any new position information. + return (sourcesIndex === prev[SOURCES_INDEX] && + sourceLine === prev[SOURCE_LINE] && + sourceColumn === prev[SOURCE_COLUMN] && + namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME)); + } + function addMappingInternal(skipable, map, mapping) { + const { generated, source, original, name, content } = mapping; + if (!source) { + return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null); + } + const s = source; + return addSegmentInternal(skipable, map, generated.line - 1, generated.column, s, original.line - 1, original.column, name, content); + } + + exports.GenMapping = GenMapping; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=gen-mapping.umd.js.map diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/package.json b/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/package.json new file mode 100644 index 00000000000000..3b709f65688023 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping/package.json @@ -0,0 +1,74 @@ +{ + "name": "@jridgewell/gen-mapping", + "version": "0.3.1", + "description": "Generate source maps", + "keywords": [ + "source", + "map" + ], + "author": "Justin Ridgewell ", + "license": "MIT", + "repository": "https://github.com/jridgewell/gen-mapping", + "main": "dist/gen-mapping.umd.js", + "module": "dist/gen-mapping.mjs", + "typings": "dist/types/gen-mapping.d.ts", + "exports": { + ".": { + "types": "./dist/types/gen-mapping.d.ts", + "browser": "./dist/gen-mapping.umd.js", + "require": "./dist/gen-mapping.umd.js", + "import": "./dist/gen-mapping.mjs" + }, + "./package.json": "./package.json" + }, + "files": [ + "dist" + ], + "engines": { + "node": ">=6.0.0" + }, + "scripts": { + "benchmark": "run-s build:rollup benchmark:*", + "benchmark:install": "cd benchmark && npm install", + "benchmark:only": "node benchmark/index.mjs", + "prebuild": "rm -rf dist", + "build": "run-s -n build:*", + "build:rollup": "rollup -c rollup.config.js", + "build:ts": "tsc --project tsconfig.build.json", + "lint": "run-s -n lint:*", + "lint:prettier": "npm run test:lint:prettier -- --write", + "lint:ts": "npm run test:lint:ts -- --fix", + "pretest": "run-s build:rollup", + "test": "run-s -n test:lint test:coverage", + "test:debug": "mocha --inspect-brk", + "test:lint": "run-s -n test:lint:*", + "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'", + "test:lint:ts": "eslint '{src,test}/**/*.ts'", + "test:only": "mocha", + "test:coverage": "c8 mocha", + "test:watch": "run-p 'build:rollup -- --watch' 'test:only -- --watch'", + "prepublishOnly": "npm run preversion", + "preversion": "run-s test build" + }, + "devDependencies": { + "@rollup/plugin-typescript": "8.3.2", + "@types/mocha": "9.1.1", + "@types/node": "17.0.29", + "@typescript-eslint/eslint-plugin": "5.21.0", + "@typescript-eslint/parser": "5.21.0", + "benchmark": "2.1.4", + "c8": "7.11.2", + "eslint": "8.14.0", + "eslint-config-prettier": "8.5.0", + "mocha": "9.2.2", + "npm-run-all": "4.1.5", + "prettier": "2.6.2", + "rollup": "2.70.2", + "typescript": "4.6.3" + }, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } +} diff --git a/tools/node_modules/eslint/node_modules/@babel/generator/package.json b/tools/node_modules/eslint/node_modules/@babel/generator/package.json index 71b4a82aac3c10..07f8154b7a58a5 100644 --- a/tools/node_modules/eslint/node_modules/@babel/generator/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/generator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/generator", - "version": "7.17.9", + "version": "7.18.2", "description": "Turns an AST into code.", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", @@ -19,16 +19,15 @@ "lib" ], "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" }, "devDependencies": { - "@babel/helper-fixtures": "^7.17.0", - "@babel/parser": "^7.17.9", - "@jridgewell/trace-mapping": "^0.3.4", + "@babel/helper-fixtures": "^7.17.10", + "@babel/parser": "^7.18.0", + "@jridgewell/trace-mapping": "^0.3.8", "@types/jsesc": "^2.5.0", - "@types/source-map": "^0.5.0", "charcodes": "^0.2.0" }, "engines": { diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-compilation-targets/package.json b/tools/node_modules/eslint/node_modules/@babel/helper-compilation-targets/package.json index 9581c6c63fbc57..50abfaaf40ea38 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-compilation-targets/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helper-compilation-targets/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-compilation-targets", - "version": "7.17.7", + "version": "7.18.2", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", "description": "Helper functions on Babel compilation targets", @@ -22,16 +22,16 @@ "babel-plugin" ], "dependencies": { - "@babel/compat-data": "^7.17.7", + "@babel/compat-data": "^7.17.10", "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "browserslist": "^4.20.2", "semver": "^6.3.0" }, "peerDependencies": { "@babel/core": "^7.0.0" }, "devDependencies": { - "@babel/core": "^7.17.7", + "@babel/core": "^7.18.2", "@babel/helper-plugin-test-runner": "^7.16.7", "@types/semver": "^5.5.0" }, diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/lib/index.js index e85bf132e8ff77..bf1a3038b93f2d 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/lib/index.js @@ -4,35 +4,56 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; +exports.requeueComputedKeyAndDecorators = requeueComputedKeyAndDecorators; exports.skipAllButComputedKey = skipAllButComputedKey; -var _t = require("@babel/types"); - -const { - VISITOR_KEYS, - staticBlock -} = _t; - function skipAllButComputedKey(path) { - if (!path.node.computed) { - path.skip(); - return; + path.skip(); + + if (path.node.computed) { + path.context.maybeQueue(path.get("key")); } +} - const keys = VISITOR_KEYS[path.type]; +function requeueComputedKeyAndDecorators(path) { + const { + context, + node + } = path; - for (const key of keys) { - if (key !== "key") path.skipKey(key); + if (node.computed) { + context.maybeQueue(path.get("key")); + } + + if (node.decorators) { + for (const decorator of path.get("decorators")) { + context.maybeQueue(decorator); + } } } -const skipKey = (staticBlock ? "StaticBlock|" : "") + "ClassPrivateProperty|TypeAnnotation|FunctionDeclaration|FunctionExpression"; -var _default = { - [skipKey]: path => path.skip(), +const visitor = { + FunctionParent(path) { + if (path.isArrowFunctionExpression()) { + return; + } else { + path.skip(); + + if (path.isMethod()) { + requeueComputedKeyAndDecorators(path); + } + } + }, - "Method|ClassProperty"(path) { - skipAllButComputedKey(path); + Property(path) { + if (path.isObjectProperty()) { + return; + } + + path.skip(); + requeueComputedKeyAndDecorators(path); } }; +var _default = visitor; exports.default = _default; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/package.json b/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/package.json index ffc31a3ca891db..820c9df7845209 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helper-environment-visitor/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-environment-visitor", - "version": "7.16.7", + "version": "7.18.2", "description": "Helper visitor to only visit nodes in the current 'this' context", "repository": { "type": "git", @@ -17,11 +17,9 @@ ".": "./lib/index.js", "./package.json": "./package.json" }, - "dependencies": { - "@babel/types": "^7.16.7" - }, "devDependencies": { - "@babel/traverse": "^7.16.7" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/index.js index aa555182deb2b8..9a4b68d65dc31e 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/index.js @@ -80,6 +80,7 @@ function rewriteModuleStatementsAndPrepareHeader(path, { importInterop = noInterop ? "none" : "babel", lazy, esNamespaceOnly, + filename, constantReexports = loose, enumerableModuleMeta = loose, noIncompleteNsImportDetection @@ -93,7 +94,8 @@ function rewriteModuleStatementsAndPrepareHeader(path, { importInterop, initializeReexports: constantReexports, lazy, - esNamespaceOnly + esNamespaceOnly, + filename }); if (!allowTopLevelThis) { diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js index f98ee95e0f7c01..af3b3a6c087b57 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/lib/normalize-and-load-metadata.js @@ -30,9 +30,9 @@ function validateImportInteropOption(importInterop) { return importInterop; } -function resolveImportInterop(importInterop, source) { +function resolveImportInterop(importInterop, source, filename) { if (typeof importInterop === "function") { - return validateImportInteropOption(importInterop(source)); + return validateImportInteropOption(importInterop(source, filename)); } return importInterop; @@ -42,7 +42,8 @@ function normalizeModuleAndLoadMetadata(programPath, exportName, { importInterop, initializeReexports = false, lazy = false, - esNamespaceOnly = false + esNamespaceOnly = false, + filename }) { if (!exportName) { exportName = programPath.scope.generateUidIdentifier("exports").name; @@ -65,7 +66,7 @@ function normalizeModuleAndLoadMetadata(programPath, exportName, { metadata.name = metadata.importsNamespace.values().next().value; } - const resolvedInterop = resolveImportInterop(importInterop, metadata.source); + const resolvedInterop = resolveImportInterop(importInterop, metadata.source, filename); if (resolvedInterop === "none") { metadata.interop = "none"; diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/package.json b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/package.json index 67de31dcb6a9b1..eb8b4c11036686 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helper-module-transforms/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-module-transforms", - "version": "7.17.7", + "version": "7.18.0", "description": "Babel helper functions for implementing ES6 module transformations", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-helper-module-transforms", @@ -21,8 +21,8 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-plugin-utils/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/helper-plugin-utils/lib/index.js index 0ba1be02219558..7acf144ea362fd 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-plugin-utils/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/helper-plugin-utils/lib/index.js @@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.declare = declare; +exports.declarePreset = void 0; function declare(builder) { return (api, options, dirname) => { @@ -23,6 +24,8 @@ function declare(builder) { }; } +const declarePreset = declare; +exports.declarePreset = declarePreset; const apiPolyfills = { assertVersion: api => range => { throwVersionError(range, api.version); diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-plugin-utils/package.json b/tools/node_modules/eslint/node_modules/@babel/helper-plugin-utils/package.json index 740d52ac36056a..859134ebc94faf 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-plugin-utils/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helper-plugin-utils/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-plugin-utils", - "version": "7.16.7", + "version": "7.17.12", "description": "General utilities for plugins to use", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-helper-plugin-utils", diff --git a/tools/node_modules/eslint/node_modules/@babel/helper-simple-access/package.json b/tools/node_modules/eslint/node_modules/@babel/helper-simple-access/package.json index a44a37dabbaf80..f6520705c9d16b 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helper-simple-access/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helper-simple-access/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-simple-access", - "version": "7.17.7", + "version": "7.18.2", "description": "Babel helper for ensuring that access to a given value is performed through simple accesses", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-helper-simple-access", @@ -15,10 +15,10 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.2" }, "devDependencies": { - "@babel/traverse": "^7.17.3" + "@babel/traverse": "^7.18.2" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers-generated.js b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers-generated.js index cb4e5f86cce524..29d2c5c12170f3 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers-generated.js +++ b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers-generated.js @@ -10,7 +10,9 @@ var _template = require("@babel/template"); function helper(minVersion, source) { return Object.freeze({ minVersion, - ast: () => _template.default.program.ast(source) + ast: () => _template.default.program.ast(source, { + preserveComments: true + }) }); } @@ -19,6 +21,7 @@ var _default = Object.freeze({ asyncIterator: helper("7.15.9", 'export default function _asyncIterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then((function(value){return{value:value,done:done}}))}return AsyncFromSyncIterator=function(s){this.s=s,this.n=s.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(value){var ret=this.s.return;return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments))},throw:function(value){var thr=this.s.return;return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments))}},new AsyncFromSyncIterator(s)}'), jsx: helper("7.0.0-beta.0", 'var REACT_ELEMENT_TYPE;export default function _createRawReactElement(type,props,key,children){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103);var defaultProps=type&&type.defaultProps,childrenLength=arguments.length-3;if(props||0===childrenLength||(props={children:void 0}),1===childrenLength)props.children=children;else if(childrenLength>1){for(var childArray=new Array(childrenLength),i=0;i=0;--i){var entry=this.tryEntries[i],record=entry.completion;if("root"===entry.tryLoc)return handle("end");if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc"),hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc)return this.complete(entry.completion,entry.afterLoc),resetTryEntry(entry),ContinueSentinel}},catch:function(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if("throw"===record.type){var thrown=record.arg;resetTryEntry(entry)}return thrown}}throw new Error("illegal catch attempt")},delegateYield:function(iterable,resultName,nextLoc){return this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc},"next"===this.method&&(this.arg=undefined),ContinueSentinel}},exports}'), typeof: helper("7.0.0-beta.0", 'export default function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}'), wrapRegExp: helper("7.2.6", 'import setPrototypeOf from"setPrototypeOf";import inherits from"inherits";export default function _wrapRegExp(){_wrapRegExp=function(re,groups){return new BabelRegExp(re,void 0,groups)};var _super=RegExp.prototype,_groups=new WeakMap;function BabelRegExp(re,flags,groups){var _this=new RegExp(re,flags);return _groups.set(_this,groups||_groups.get(re)),setPrototypeOf(_this,BabelRegExp.prototype)}function buildGroups(result,re){var g=_groups.get(re);return Object.keys(g).reduce((function(groups,name){return groups[name]=result[g[name]],groups}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(str){var result=_super.exec.call(this,str);return result&&(result.groups=buildGroups(result,this)),result},BabelRegExp.prototype[Symbol.replace]=function(str,substitution){if("string"==typeof substitution){var groups=_groups.get(this);return _super[Symbol.replace].call(this,str,substitution.replace(/\\$<([^>]+)>/g,(function(_,name){return"$"+groups[name]})))}if("function"==typeof substitution){var _this=this;return _super[Symbol.replace].call(this,str,(function(){var args=arguments;return"object"!=typeof args[args.length-1]&&(args=[].slice.call(args)).push(buildGroups(args,_this)),substitution.apply(this,args)}))}return _super[Symbol.replace].call(this,str,substitution)},_wrapRegExp.apply(this,arguments)}') }); diff --git a/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers.js b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers.js index 3b8eea2437efd0..500240336b7ae2 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers.js +++ b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers.js @@ -284,7 +284,7 @@ helpers.defineProperty = helper("7.0.0-beta.0")` `; helpers.extends = helper("7.0.0-beta.0")` export default function _extends() { - _extends = Object.assign || function (target) { + _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { @@ -351,7 +351,7 @@ helpers.inheritsLoose = helper("7.0.0-beta.0")` helpers.getPrototypeOf = helper("7.0.0-beta.0")` export default function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf - ? Object.getPrototypeOf + ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; @@ -360,10 +360,12 @@ helpers.getPrototypeOf = helper("7.0.0-beta.0")` `; helpers.setPrototypeOf = helper("7.0.0-beta.0")` export default function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; + _setPrototypeOf = Object.setPrototypeOf + ? Object.setPrototypeOf.bind() + : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; return _setPrototypeOf(o, p); } `; @@ -400,7 +402,7 @@ helpers.construct = helper("7.0.0-beta.0")` export default function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { - _construct = Reflect.construct; + _construct = Reflect.construct.bind(); } else { // NOTE: If Parent !== Class, the correct __proto__ is set *after* // calling the constructor. @@ -630,7 +632,7 @@ helpers.get = helper("7.0.0-beta.0")` export default function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { - _get = Reflect.get; + _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = superPropBase(target, property); diff --git a/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers/regeneratorRuntime.js b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers/regeneratorRuntime.js new file mode 100644 index 00000000000000..225ca44bcdb9fd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/helpers/lib/helpers/regeneratorRuntime.js @@ -0,0 +1,587 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _regeneratorRuntime; + +function _regeneratorRuntime() { + "use strict"; + + exports.default = _regeneratorRuntime = function () { + return exports; + }; + + var exports = {}; + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function define(obj, key, value) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + return obj[key]; + } + + try { + define({}, ""); + } catch (err) { + define = function (obj, key, value) { + return obj[key] = value; + }; + } + + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + generator._invoke = makeInvokeMethod(innerFn, self, context); + return generator; + } + + exports.wrap = wrap; + + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + var ContinueSentinel = {}; + + function Generator() {} + + function GeneratorFunction() {} + + function GeneratorFunctionPrototype() {} + + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + + if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = GeneratorFunctionPrototype; + define(Gp, "constructor", GeneratorFunctionPrototype); + define(GeneratorFunctionPrototype, "constructor", GeneratorFunction); + GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"); + + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + + exports.isGeneratorFunction = function (genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; + }; + + exports.mark = function (genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + define(genFun, toStringTagSymbol, "GeneratorFunction"); + } + + genFun.prototype = Object.create(Gp); + return genFun; + }; + + exports.awrap = function (arg) { + return { + __await: arg + }; + }; + + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + + if (value && typeof value === "object" && hasOwn.call(value, "__await")) { + return PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }); + } + + return PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped; + resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }); + exports.AsyncIterator = AsyncIterator; + + exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + if (PromiseImpl === void 0) PromiseImpl = Promise; + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + context.sent = context._sent = context.arg; + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + var record = tryCatch(innerFn, self, context); + + if (record.type === "normal") { + state = context.done ? GenStateCompleted : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + } else if (record.type === "throw") { + state = GenStateCompleted; + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + + if (method === undefined) { + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator["return"]) { + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError("The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (!info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + context[delegate.resultName] = info.value; + context.next = delegate.nextLoc; + + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + } else { + return info; + } + + context.delegate = null; + return ContinueSentinel; + } + + defineIteratorMethods(Gp); + define(Gp, toStringTagSymbol, "Generator"); + define(Gp, iteratorSymbol, function () { + return this; + }); + define(Gp, "toString", function () { + return "[object Generator]"; + }); + + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function (object) { + var keys = []; + + for (var key in object) { + keys.push(key); + } + + keys.reverse(); + return function next() { + while (keys.length) { + var key = keys.pop(); + + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + return next; + }; + + return next.next = next; + } + } + + return { + next: doneResult + }; + } + + exports.values = values; + + function doneResult() { + return { + value: undefined, + done: true + }; + } + + Context.prototype = { + constructor: Context, + reset: function (skipTempReset) { + this.prev = 0; + this.next = 0; + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + this.method = "next"; + this.arg = undefined; + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + stop: function () { + this.done = true; + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + dispatchException: function (exception) { + if (this.done) { + throw exception; + } + + var context = this; + + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + context.method = "next"; + context.arg = undefined; + } + + return !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + abrupt: function (type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + complete: function (record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + finish: function (finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + catch: function (tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + + return thrown; + } + } + + throw new Error("illegal catch attempt"); + }, + delegateYield: function (iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + return exports; +} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/helpers/package.json b/tools/node_modules/eslint/node_modules/@babel/helpers/package.json index 7f2a2a94bcd063..3113bf3077a1de 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helpers/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helpers", - "version": "7.17.9", + "version": "7.18.2", "description": "Collection of helper functions used by Babel transforms.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-helpers", @@ -16,11 +16,14 @@ "main": "./lib/index.js", "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" }, "devDependencies": { + "@babel/generator": "^7.18.2", "@babel/helper-plugin-test-runner": "^7.16.7", + "@babel/parser": "^7.18.0", + "regenerator-runtime": "^0.13.9", "terser": "^5.9.0" }, "engines": { diff --git a/tools/node_modules/eslint/node_modules/@babel/helpers/scripts/generate-helpers.js b/tools/node_modules/eslint/node_modules/@babel/helpers/scripts/generate-helpers.js index 1c59746df9c32f..aadc9786f4d343 100644 --- a/tools/node_modules/eslint/node_modules/@babel/helpers/scripts/generate-helpers.js +++ b/tools/node_modules/eslint/node_modules/@babel/helpers/scripts/generate-helpers.js @@ -1,7 +1,7 @@ import fs from "fs"; import { join } from "path"; import { URL, fileURLToPath } from "url"; -import { minify } from "terser"; // eslint-disable-line +import { minify } from "terser"; // eslint-disable-line import/no-extraneous-dependencies const HELPERS_FOLDER = new URL("../src/helpers", import.meta.url); const IGNORED_FILES = new Set(["package.json"]); @@ -17,7 +17,7 @@ import template from "@babel/template"; function helper(minVersion, source) { return Object.freeze({ minVersion, - ast: () => template.program.ast(source), + ast: () => template.program.ast(source, { preserveComments: true }), }) } diff --git a/tools/node_modules/eslint/node_modules/@babel/helpers/scripts/generate-regenerator-runtime.js b/tools/node_modules/eslint/node_modules/@babel/helpers/scripts/generate-regenerator-runtime.js new file mode 100644 index 00000000000000..91694b2cd9f28a --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/helpers/scripts/generate-regenerator-runtime.js @@ -0,0 +1,64 @@ +/* eslint-disable import/no-extraneous-dependencies */ + +import fs from "fs"; +import { createRequire } from "module"; + +const [parse, generate] = await Promise.all([ + import("@babel/parser").then(ns => ns.parse), + import("@babel/generator").then(ns => ns.default.default), +]).catch(error => + Promise.reject( + new Error( + "Before running generate-helpers.js you must compile @babel/parser and @babel/generator.", + { cause: error } + ) + ) +); + +const REGENERATOR_RUNTIME_IN_FILE = fs.readFileSync( + createRequire(import.meta.url).resolve("regenerator-runtime"), + "utf8" +); + +const MIN_VERSION = "7.18.0"; + +const HEADER = `/* @minVersion ${MIN_VERSION} */ +/* + * This file is auto-generated! Do not modify it directly. + * To re-generate, update the regenerator-runtime dependency of + * @babel/helpers and run 'yarn gulp generate-runtime-helpers'. + */ + +/* eslint-disable */ +`; + +const COPYRIGHT = `/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */`; + +export default function generateRegeneratorRuntimeHelper() { + const ast = parse(REGENERATOR_RUNTIME_IN_FILE, { sourceType: "script" }); + + const factoryFunction = ast.program.body[0].declarations[0].init.callee; + factoryFunction.type = "FunctionDeclaration"; + factoryFunction.id = { type: "Identifier", name: "_regeneratorRuntime" }; + factoryFunction.params = []; + factoryFunction.body.body.unshift( + ...stmts(` + ${COPYRIGHT} + _regeneratorRuntime = function () { return exports; }; + var exports = {}; + `) + ); + + const { code } = generate({ + type: "ExportDefaultDeclaration", + declaration: factoryFunction, + }); + + return HEADER + code; +} + +function stmts(code) { + return parse(`function _() { ${code} }`, { + sourceType: "script", + }).program.body[0].body.body; +} diff --git a/tools/node_modules/eslint/node_modules/@babel/highlight/package.json b/tools/node_modules/eslint/node_modules/@babel/highlight/package.json index 80a43353e51ae5..2aa44e3422e980 100644 --- a/tools/node_modules/eslint/node_modules/@babel/highlight/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/highlight/package.json @@ -1,6 +1,6 @@ { "name": "@babel/highlight", - "version": "7.17.9", + "version": "7.17.12", "description": "Syntax highlight JavaScript strings for output in terminals.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-highlight", diff --git a/tools/node_modules/eslint/node_modules/@babel/parser/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/parser/lib/index.js index 810a4f874ae058..7fe93e65b3fab8 100644 --- a/tools/node_modules/eslint/node_modules/@babel/parser/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/parser/lib/index.js @@ -430,8 +430,8 @@ const toUnenumerable = (object, key) => defineProperty(object, key, { }); function toESTreeLocation(node) { - toUnenumerable(node.loc.start, "index"); - toUnenumerable(node.loc.end, "index"); + node.loc.start && toUnenumerable(node.loc.start, "index"); + node.loc.end && toUnenumerable(node.loc.end, "index"); return node; } @@ -692,13 +692,12 @@ var estree = (superClass => class extends superClass { } this.toAssignable(value, isLHS); - return node; + } else { + super.toAssignable(node, isLHS); } - - return super.toAssignable(node, isLHS); } - toAssignableObjectExpressionProp(prop, ...args) { + toAssignableObjectExpressionProp(prop) { if (prop.kind === "get" || prop.kind === "set") { this.raise(Errors.PatternHasAccessor, { at: prop.key @@ -708,7 +707,7 @@ var estree = (superClass => class extends superClass { at: prop.key }); } else { - super.toAssignableObjectExpressionProp(prop, ...args); + super.toAssignableObjectExpressionProp(...arguments); } } @@ -805,6 +804,11 @@ var estree = (superClass => class extends superClass { return toESTreeLocation(super.finishNodeAt(node, type, endLoc)); } + resetStartLocation(node, start, startLoc) { + super.resetStartLocation(node, start, startLoc); + toESTreeLocation(node); + } + resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { super.resetEndLocation(node, endLoc); toESTreeLocation(node); @@ -943,9 +947,7 @@ const tt = { beforeExpr, startsExpr }), - braceR: createToken("}", { - beforeExpr - }), + braceR: createToken("}"), braceBarR: createToken("|}"), parenL: createToken("(", { beforeExpr, @@ -1352,6 +1354,9 @@ function tokenLabelName(token) { function tokenOperatorPrecedence(token) { return tokenBinops[token]; } +function tokenIsBinaryOperator(token) { + return tokenBinops[token] !== -1; +} function tokenIsRightAssociative(token) { return token === 57; } @@ -1804,6 +1809,7 @@ class State { this.hasFlowComment = false; this.isAmbientContext = false; this.inAbstractClass = false; + this.inDisallowConditionalTypesContext = false; this.topicContext = { maxNumOfResolvableTopics: 0, maxTopicIndex: null @@ -3801,7 +3807,7 @@ class ExpressionScopeHandler { this.parser.raise(toParseError, origin); } - recordParenthesizedIdentifierError({ + recordArrowParemeterBindingError(error, { at: node }) { const { @@ -3813,9 +3819,9 @@ class ExpressionScopeHandler { }; if (scope.isCertainlyParameterDeclaration()) { - this.parser.raise(Errors.InvalidParenthesizedAssignment, origin); + this.parser.raise(error, origin); } else if (scope.canBeArrowParameterDeclaration()) { - scope.recordDeclarationError(Errors.InvalidParenthesizedAssignment, origin); + scope.recordDeclarationError(error, origin); } else { return; } @@ -6191,11 +6197,11 @@ var flow = (superClass => class extends superClass { } toAssignable(node, isLHS = false) { - if (node.type === "TypeCastExpression") { - return super.toAssignable(this.typeCastToParameter(node), isLHS); - } else { - return super.toAssignable(node, isLHS); + if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") { + node.left = this.typeCastToParameter(node.left); } + + super.toAssignable(...arguments); } toAssignableList(exprList, trailingCommaLoc, isLHS) { @@ -6207,7 +6213,7 @@ var flow = (superClass => class extends superClass { } } - return super.toAssignableList(exprList, trailingCommaLoc, isLHS); + super.toAssignableList(exprList, trailingCommaLoc, isLHS); } toReferencedList(exprList, isParenthesizedExpr) { @@ -6781,7 +6787,8 @@ var flow = (superClass => class extends superClass { return super.parseSubscript(base, startPos, startLoc, noCalls, subscriptState); } - parseNewArguments(node) { + parseNewCallee(node) { + super.parseNewCallee(node); let targs = null; if (this.shouldParseTypes() && this.match(47)) { @@ -6789,7 +6796,6 @@ var flow = (superClass => class extends superClass { } node.typeArguments = targs; - super.parseNewArguments(node); } parseAsyncArrowWithTypeParameters(startPos, startLoc) { @@ -7851,6 +7857,7 @@ var jsx = (superClass => class extends superClass { this.next(); node.expression = this.parseExpression(); this.setContext(types.j_oTag); + this.state.canStartJSXElement = true; this.expect(8); return this.finishNode(node, "JSXSpreadChild"); } @@ -7864,6 +7871,7 @@ var jsx = (superClass => class extends superClass { } this.setContext(previousContext); + this.state.canStartJSXElement = true; this.expect(8); return this.finishNode(node, "JSXExpressionContainer"); } @@ -7877,6 +7885,7 @@ var jsx = (superClass => class extends superClass { this.expect(21); node.argument = this.parseMaybeAssignAllowIn(); this.setContext(types.j_oTag); + this.state.canStartJSXElement = true; this.expect(8); return this.finishNode(node, "JSXSpreadAttribute"); } @@ -7889,8 +7898,7 @@ var jsx = (superClass => class extends superClass { jsxParseOpeningElementAt(startPos, startLoc) { const node = this.startNodeAt(startPos, startLoc); - if (this.match(139)) { - this.expect(139); + if (this.eat(139)) { return this.finishNode(node, "JSXOpeningFragment"); } @@ -7914,8 +7922,7 @@ var jsx = (superClass => class extends superClass { jsxParseClosingElementAt(startPos, startLoc) { const node = this.startNodeAt(startPos, startLoc); - if (this.match(139)) { - this.expect(139); + if (this.eat(139)) { return this.finishNode(node, "JSXClosingFragment"); } @@ -8195,6 +8202,10 @@ function assert(x) { } } +function tsTokenCanStartExpression(token) { + return tokenCanStartExpression(token) || tokenIsBinaryOperator(token); +} + const TSErrors = ParseErrorEnum`typescript`(_ => ({ AbstractMethodHasImplementation: _(({ methodName @@ -8243,6 +8254,12 @@ const TSErrors = ParseErrorEnum`typescript`(_ => ({ InvalidModifierOnTypeMember: _(({ modifier }) => `'${modifier}' modifier cannot appear on a type member.`), + InvalidModifierOnTypeParameter: _(({ + modifier + }) => `'${modifier}' modifier cannot appear on a type parameter.`), + InvalidModifierOnTypeParameterPositions: _(({ + modifier + }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`), InvalidModifiersOrder: _(({ orderedModifiers }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`), @@ -8324,6 +8341,10 @@ function tsIsAccessModifier(modifier) { return modifier === "private" || modifier === "public" || modifier === "protected"; } +function tsIsVarianceAnnotations(modifier) { + return modifier === "in" || modifier === "out"; +} + var typescript = (superClass => class extends superClass { getScopeHandler() { return TypeScriptScopeHandler; @@ -8343,7 +8364,7 @@ var typescript = (superClass => class extends superClass { } tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock) { - if (!tokenIsIdentifier(this.state.type)) { + if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58) { return undefined; } @@ -8366,7 +8387,8 @@ var typescript = (superClass => class extends superClass { modified, allowedModifiers, disallowedModifiers, - stopOnStartOfClassStaticBlock + stopOnStartOfClassStaticBlock, + errorTemplate = TSErrors.InvalidModifierOnTypeMember }) { const enforceOrder = (loc, modifier, before, after) => { if (modifier === before && modified[after]) { @@ -8405,6 +8427,16 @@ var typescript = (superClass => class extends superClass { enforceOrder(startLoc, modifier, modifier, "readonly"); modified.accessibility = modifier; } + } else if (tsIsVarianceAnnotations(modifier)) { + if (modified[modifier]) { + this.raise(TSErrors.DuplicateModifier, { + at: startLoc, + modifier + }); + } + + modified[modifier] = true; + enforceOrder(startLoc, modifier, "in", "out"); } else { if (Object.hasOwnProperty.call(modified, modifier)) { this.raise(TSErrors.DuplicateModifier, { @@ -8424,7 +8456,7 @@ var typescript = (superClass => class extends superClass { } if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { - this.raise(TSErrors.InvalidModifierOnTypeMember, { + this.raise(errorTemplate, { at: startLoc, modifier }); @@ -8600,24 +8632,47 @@ var typescript = (superClass => class extends superClass { node.exprName = this.tsParseEntityName(); } + if (!this.hasPrecedingLineBreak() && this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + return this.finishNode(node, "TSTypeQuery"); } - tsParseTypeParameter() { + tsParseInOutModifiers(node) { + this.tsParseModifiers({ + modified: node, + allowedModifiers: ["in", "out"], + disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameter + }); + } + + tsParseNoneModifiers(node) { + this.tsParseModifiers({ + modified: node, + allowedModifiers: [], + disallowedModifiers: ["in", "out"], + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions + }); + } + + tsParseTypeParameter(parseModifiers = this.tsParseNoneModifiers.bind(this)) { const node = this.startNode(); + parseModifiers(node); node.name = this.tsParseTypeParameterName(); node.constraint = this.tsEatThenParseType(81); node.default = this.tsEatThenParseType(29); return this.finishNode(node, "TSTypeParameter"); } - tsTryParseTypeParameters() { + tsTryParseTypeParameters(parseModifiers) { if (this.match(47)) { - return this.tsParseTypeParameters(); + return this.tsParseTypeParameters(parseModifiers); } } - tsParseTypeParameters() { + tsParseTypeParameters(parseModifiers) { const node = this.startNode(); if (this.match(47) || this.match(138)) { @@ -8629,7 +8684,7 @@ var typescript = (superClass => class extends superClass { const refTrailingCommaPos = { value: -1 }; - node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this), false, true, refTrailingCommaPos); + node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos); if (node.params.length === 0) { this.raise(TSErrors.EmptyTypeParameters, { @@ -9020,7 +9075,7 @@ var typescript = (superClass => class extends superClass { this.next(); } - this.tsFillSignature(19, node); + this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, node)); return this.finishNode(node, type); } @@ -9187,13 +9242,24 @@ var typescript = (superClass => class extends superClass { this.expectContextual(112); const typeParameter = this.startNode(); typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType()); node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); return this.finishNode(node, "TSInferType"); } + tsParseConstraintForInferType() { + if (this.eat(81)) { + const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType()); + + if (this.state.inDisallowConditionalTypesContext || !this.match(17)) { + return constraint; + } + } + } + tsParseTypeOperatorOrHigher() { const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc; - return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(112) ? this.tsParseInferType() : this.tsParseArrayTypeOrHigher(); + return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(112) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher()); } tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { @@ -9393,17 +9459,17 @@ var typescript = (superClass => class extends superClass { assert(this.state.inType); const type = this.tsParseNonConditionalType(); - if (this.hasPrecedingLineBreak() || !this.eat(81)) { + if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) { return type; } const node = this.startNodeAtNode(type); node.checkType = type; - node.extendsType = this.tsParseNonConditionalType(); + node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType()); this.expect(17); - node.trueType = this.tsParseType(); + node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); this.expect(14); - node.falseType = this.tsParseType(); + node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType()); return this.finishNode(node, "TSConditionalType"); } @@ -9444,7 +9510,16 @@ var typescript = (superClass => class extends superClass { tsParseHeritageClause(token) { const originalStartLoc = this.state.startLoc; - const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", this.tsParseExpressionWithTypeArguments.bind(this)); + const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", () => { + const node = this.startNode(); + node.expression = this.tsParseEntityName(); + + if (this.match(47)) { + node.typeParameters = this.tsParseTypeArguments(); + } + + return this.finishNode(node, "TSExpressionWithTypeArguments"); + }); if (!delimitedList.length) { this.raise(TSErrors.EmptyHeritageClauseType, { @@ -9456,17 +9531,6 @@ var typescript = (superClass => class extends superClass { return delimitedList; } - tsParseExpressionWithTypeArguments() { - const node = this.startNode(); - node.expression = this.tsParseEntityName(); - - if (this.match(47)) { - node.typeParameters = this.tsParseTypeArguments(); - } - - return this.finishNode(node, "TSExpressionWithTypeArguments"); - } - tsParseInterfaceDeclaration(node, properties = {}) { if (this.hasFollowingLineBreak()) return null; this.expectContextual(125); @@ -9482,7 +9546,7 @@ var typescript = (superClass => class extends superClass { }); } - node.typeParameters = this.tsTryParseTypeParameters(); + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)); if (this.eat(81)) { node.extends = this.tsParseHeritageClause("extends"); @@ -9498,7 +9562,7 @@ var typescript = (superClass => class extends superClass { node.id = this.parseIdentifier(); this.checkIdentifier(node.id, BIND_TS_TYPE); node.typeAnnotation = this.tsInType(() => { - node.typeParameters = this.tsTryParseTypeParameters(); + node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)); this.expect(29); if (this.isContextual(111) && this.lookahead().type !== 16) { @@ -9535,6 +9599,28 @@ var typescript = (superClass => class extends superClass { } } + tsInDisallowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = true; + + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + + tsInAllowConditionalTypesContext(cb) { + const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext; + this.state.inDisallowConditionalTypesContext = false; + + try { + return cb(); + } finally { + this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext; + } + } + tsEatThenParseType(token) { return !this.match(token) ? undefined : this.tsNextThenParseType(); } @@ -10050,34 +10136,42 @@ var typescript = (superClass => class extends superClass { } } - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; const typeArguments = this.tsParseTypeArgumentsInExpression(); + if (!typeArguments) throw this.unexpected(); - if (typeArguments) { - if (isOptionalCall && !this.match(10)) { - missingParenErrorLoc = this.state.curPosition(); - this.unexpected(); - } + if (isOptionalCall && !this.match(10)) { + missingParenErrorLoc = this.state.curPosition(); + throw this.unexpected(); + } - if (!noCalls && this.eat(10)) { - node.arguments = this.parseCallExpressionArguments(11, false); - this.tsCheckForInvalidTypeCasts(node.arguments); - node.typeParameters = typeArguments; + if (tokenIsTemplate(this.state.type)) { + const result = this.parseTaggedTemplateExpression(base, startPos, startLoc, state); + result.typeParameters = typeArguments; + return result; + } - if (state.optionalChainMember) { - node.optional = isOptionalCall; - } + if (!noCalls && this.eat(10)) { + const node = this.startNodeAt(startPos, startLoc); + node.callee = base; + node.arguments = this.parseCallExpressionArguments(11, false); + this.tsCheckForInvalidTypeCasts(node.arguments); + node.typeParameters = typeArguments; - return this.finishCallExpression(node, state.optionalChainMember); - } else if (tokenIsTemplate(this.state.type)) { - const result = this.parseTaggedTemplateExpression(base, startPos, startLoc, state); - result.typeParameters = typeArguments; - return result; + if (state.optionalChainMember) { + node.optional = isOptionalCall; } + + return this.finishCallExpression(node, state.optionalChainMember); } - this.unexpected(); + if (tsTokenCanStartExpression(this.state.type) && this.state.type !== 10) { + throw this.unexpected(); + } + + const node = this.startNodeAt(startPos, startLoc); + node.expression = base; + node.typeParameters = typeArguments; + return this.finishNode(node, "TSInstantiationExpression"); }); if (missingParenErrorLoc) { @@ -10090,20 +10184,18 @@ var typescript = (superClass => class extends superClass { return super.parseSubscript(base, startPos, startLoc, noCalls, state); } - parseNewArguments(node) { - if (this.match(47) || this.match(51)) { - const typeParameters = this.tsTryParseAndCatch(() => { - const args = this.tsParseTypeArgumentsInExpression(); - if (!this.match(10)) this.unexpected(); - return args; - }); + parseNewCallee(node) { + var _callee$extra; - if (typeParameters) { - node.typeParameters = typeParameters; - } - } + super.parseNewCallee(node); + const { + callee + } = node; - super.parseNewArguments(node); + if (callee.type === "TSInstantiationExpression" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) { + node.typeParameters = callee.typeParameters; + node.callee = callee.expression; + } } parseExprOp(left, leftStartPos, leftStartLoc, minPrec) { @@ -10290,7 +10382,9 @@ var typescript = (superClass => class extends superClass { this.tsParseModifiers({ modified: member, allowedModifiers: modifiers, - stopOnStartOfClassStaticBlock: true + disallowedModifiers: ["in", "out"], + stopOnStartOfClassStaticBlock: true, + errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions }); const callParseClassMemberWithIsStatic = () => { @@ -10469,7 +10563,7 @@ var typescript = (superClass => class extends superClass { } super.parseClassId(node, isStatement, optionalId, node.declare ? BIND_TS_AMBIENT : BIND_CLASS); - const typeParameters = this.tsTryParseTypeParameters(); + const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers.bind(this)); if (typeParameters) node.typeParameters = typeParameters; } @@ -10631,10 +10725,10 @@ var typescript = (superClass => class extends superClass { return super.parseMaybeAssign(...args); } + if (!state || state === this.state) state = this.state.clone(); let typeParameters; - state = state || this.state.clone(); const arrow = this.tryParse(abort => { - var _expr$extra, _typeParameters, _expr$typeParameters$; + var _expr$extra, _typeParameters; typeParameters = this.tsParseTypeParameters(); const expr = super.parseMaybeAssign(...args); @@ -10648,13 +10742,6 @@ var typescript = (superClass => class extends superClass { } expr.typeParameters = typeParameters; - - if (this.hasPlugin("jsx") && expr.typeParameters.params.length === 1 && !((_expr$typeParameters$ = expr.typeParameters.extra) != null && _expr$typeParameters$.trailingComma)) { - const parameter = expr.typeParameters.params[0]; - - if (!parameter.constraint) ; - } - return expr; }, state); @@ -10759,23 +10846,33 @@ var typescript = (superClass => class extends superClass { toAssignable(node, isLHS = false) { switch (node.type) { - case "TSTypeCastExpression": - return super.toAssignable(this.typeCastToParameter(node), isLHS); - - case "TSParameterProperty": - return super.toAssignable(node, isLHS); - case "ParenthesizedExpression": - return this.toAssignableParenthesizedExpression(node, isLHS); + this.toAssignableParenthesizedExpression(node, isLHS); + break; case "TSAsExpression": case "TSNonNullExpression": case "TSTypeAssertion": - node.expression = this.toAssignable(node.expression, isLHS); - return node; + if (isLHS) { + this.expressionScope.recordArrowParemeterBindingError(TSErrors.UnexpectedTypeCastInParameter, { + at: node + }); + } else { + this.raise(TSErrors.UnexpectedTypeCastInParameter, { + at: node + }); + } + + this.toAssignable(node.expression, isLHS); + break; + + case "AssignmentExpression": + if (!isLHS && node.left.type === "TSTypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } default: - return super.toAssignable(node, isLHS); + super.toAssignable(node, isLHS); } } @@ -10785,22 +10882,35 @@ var typescript = (superClass => class extends superClass { case "TSNonNullExpression": case "TSTypeAssertion": case "ParenthesizedExpression": - node.expression = this.toAssignable(node.expression, isLHS); - return node; + this.toAssignable(node.expression, isLHS); + break; default: - return super.toAssignable(node, isLHS); + super.toAssignable(node, isLHS); } } - isValidLVal(type, isParenthesized, binding) { + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "TSAsExpression": + case "TSTypeAssertion": + case "TSNonNullExpression": + this.checkToRestConversion(node.expression, false); + break; + + default: + super.checkToRestConversion(node, allowPattern); + } + } + + isValidLVal(type, isUnparenthesizedInAssign, binding) { return getOwn$1({ TSTypeCastExpression: true, TSParameterProperty: "parameter", TSNonNullExpression: "expression", - TSAsExpression: (binding !== BIND_NONE || isParenthesized) && ["expression", true], - TSTypeAssertion: (binding !== BIND_NONE || isParenthesized) && ["expression", true] - }, type) || super.isValidLVal(type, isParenthesized, binding); + TSAsExpression: (binding !== BIND_NONE || !isUnparenthesizedInAssign) && ["expression", true], + TSTypeAssertion: (binding !== BIND_NONE || !isUnparenthesizedInAssign) && ["expression", true] + }, type) || super.isValidLVal(type, isUnparenthesizedInAssign, binding); } parseBindingAtom() { @@ -10903,28 +11013,13 @@ var typescript = (superClass => class extends superClass { toAssignableList(exprList) { for (let i = 0; i < exprList.length; i++) { const expr = exprList[i]; - if (!expr) continue; - - switch (expr.type) { - case "TSTypeCastExpression": - exprList[i] = this.typeCastToParameter(expr); - break; - case "TSAsExpression": - case "TSTypeAssertion": - if (!this.state.maybeInArrowParameters) { - exprList[i] = this.typeCastToParameter(expr); - } else { - this.raise(TSErrors.UnexpectedTypeCastInParameter, { - at: expr - }); - } - - break; + if ((expr == null ? void 0 : expr.type) === "TSTypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); } } - return super.toAssignableList(...arguments); + super.toAssignableList(...arguments); } typeCastToParameter(node) { @@ -11115,7 +11210,16 @@ var typescript = (superClass => class extends superClass { } } else if (tokenIsKeywordOrIdentifier(this.state.type)) { hasTypeSpecifier = true; - leftOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName(); + + if (isImport) { + leftOfAs = this.parseIdentifier(true); + + if (!this.isContextual(93)) { + this.checkReservedWord(leftOfAs.name, leftOfAs.loc.start, true, true); + } + } else { + leftOfAs = this.parseModuleExportName(); + } } if (hasTypeSpecifier && isInTypeOnlyImportExport) { @@ -11219,10 +11323,9 @@ var placeholders = (superClass => class extends superClass { toAssignable(node) { if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { node.expectedNode = "Pattern"; - return node; + } else { + super.toAssignable(...arguments); } - - return super.toAssignable(...arguments); } isLet(context) { @@ -11531,9 +11634,9 @@ function validatePlugins(plugins) { throw new Error("Cannot combine importAssertions and moduleAttributes plugins."); } - const moduleAttributesVerionPluginOption = getPluginOption(plugins, "moduleAttributes", "version"); + const moduleAttributesVersionPluginOption = getPluginOption(plugins, "moduleAttributes", "version"); - if (moduleAttributesVerionPluginOption !== "may-2020") { + if (moduleAttributesVersionPluginOption !== "may-2020") { throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); } } @@ -11604,7 +11707,7 @@ class LValParser extends NodeUtils { if (isLHS) { if (parenthesized.type === "Identifier") { - this.expressionScope.recordParenthesizedIdentifierError({ + this.expressionScope.recordArrowParemeterBindingError(Errors.InvalidParenthesizedAssignment, { at: node }); } else if (parenthesized.type !== "MemberExpression") { @@ -11663,11 +11766,7 @@ class LValParser extends NodeUtils { case "SpreadElement": { - this.checkToRestConversion(node); - node.type = "RestElement"; - const arg = node.argument; - this.toAssignable(arg, isLHS); - break; + throw new Error("Internal @babel/parser error (this is a bug, please report it)." + " SpreadElement should be converted by .toAssignable's caller."); } case "ArrayExpression": @@ -11691,8 +11790,6 @@ class LValParser extends NodeUtils { this.toAssignable(parenthesized, isLHS); break; } - - return node; } toAssignableObjectExpressionProp(prop, isLast, isLHS) { @@ -11700,58 +11797,50 @@ class LValParser extends NodeUtils { this.raise(prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, { at: prop.key }); - } else if (prop.type === "SpreadElement" && !isLast) { - this.raise(Errors.RestTrailingComma, { - at: prop - }); + } else if (prop.type === "SpreadElement") { + prop.type = "RestElement"; + const arg = prop.argument; + this.checkToRestConversion(arg, false); + this.toAssignable(arg, isLHS); + + if (!isLast) { + this.raise(Errors.RestTrailingComma, { + at: prop + }); + } } else { this.toAssignable(prop, isLHS); } } toAssignableList(exprList, trailingCommaLoc, isLHS) { - let end = exprList.length; - - if (end) { - const last = exprList[end - 1]; - - if ((last == null ? void 0 : last.type) === "RestElement") { - --end; - } else if ((last == null ? void 0 : last.type) === "SpreadElement") { - last.type = "RestElement"; - let arg = last.argument; - this.toAssignable(arg, isLHS); - arg = unwrapParenthesizedExpression(arg); - - if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern" && arg.type !== "ObjectPattern") { - this.unexpected(arg.start); - } - - if (trailingCommaLoc) { - this.raise(Errors.RestTrailingComma, { - at: trailingCommaLoc - }); - } + const end = exprList.length - 1; - --end; - } - } - - for (let i = 0; i < end; i++) { + for (let i = 0; i <= end; i++) { const elt = exprList[i]; + if (!elt) continue; - if (elt) { + if (elt.type === "SpreadElement") { + elt.type = "RestElement"; + const arg = elt.argument; + this.checkToRestConversion(arg, true); + this.toAssignable(arg, isLHS); + } else { this.toAssignable(elt, isLHS); + } - if (elt.type === "RestElement") { + if (elt.type === "RestElement") { + if (i < end) { this.raise(Errors.RestTrailingComma, { at: elt }); + } else if (trailingCommaLoc) { + this.raise(Errors.RestTrailingComma, { + at: trailingCommaLoc + }); } } } - - return exprList; } isAssignable(node, isBinding) { @@ -11941,7 +12030,7 @@ class LValParser extends NodeUtils { return this.finishNode(node, "AssignmentPattern"); } - isValidLVal(type, isParenthesized, binding) { + isValidLVal(type, isUnparenthesizedInAssign, binding) { return getOwn({ AssignmentPattern: "left", RestElement: "argument", @@ -11994,7 +12083,7 @@ class LValParser extends NodeUtils { return; } - const validity = this.isValidLVal(expression.type, hasParenthesizedAncestor || ((_expression$extra = expression.extra) == null ? void 0 : _expression$extra.parenthesized), binding); + const validity = this.isValidLVal(expression.type, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding); if (validity === true) return; if (validity === false) { @@ -12058,11 +12147,24 @@ class LValParser extends NodeUtils { this.scope.declareName(identifier.name, binding, identifier.loc.start); } - checkToRestConversion(node) { - if (node.argument.type !== "Identifier" && node.argument.type !== "MemberExpression") { - this.raise(Errors.InvalidRestAssignmentPattern, { - at: node.argument - }); + checkToRestConversion(node, allowPattern) { + switch (node.type) { + case "ParenthesizedExpression": + this.checkToRestConversion(node.expression, allowPattern); + break; + + case "Identifier": + case "MemberExpression": + break; + + case "ArrayExpression": + case "ObjectExpression": + if (allowPattern) break; + + default: + this.raise(Errors.InvalidRestAssignmentPattern, { + at: node + }); } } @@ -12223,7 +12325,8 @@ class ExpressionParser extends LValParser { node.operator = operator; if (this.match(29)) { - node.left = this.toAssignable(left, true); + this.toAssignable(left, true); + node.left = left; if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startPos) { refExpressionErrors.doubleProtoLoc = null; @@ -13385,6 +13488,20 @@ class ExpressionParser extends LValParser { } parseNew(node) { + this.parseNewCallee(node); + + if (this.eat(10)) { + const args = this.parseExprList(11); + this.toReferencedList(args); + node.arguments = args; + } else { + node.arguments = []; + } + + return this.finishNode(node, "NewExpression"); + } + + parseNewCallee(node) { node.callee = this.parseNoCallExpr(); if (node.callee.type === "Import") { @@ -13400,19 +13517,6 @@ class ExpressionParser extends LValParser { at: this.state.startLoc }); } - - this.parseNewArguments(node); - return this.finishNode(node, "NewExpression"); - } - - parseNewArguments(node) { - if (this.eat(10)) { - const args = this.parseExprList(11); - this.toReferencedList(args); - node.arguments = args; - } else { - node.arguments = []; - } } parseTemplateElement(isTagged) { @@ -13818,7 +13922,8 @@ class ExpressionParser extends LValParser { } setArrowFunctionParameters(node, params, trailingCommaLoc) { - node.params = this.toAssignableList(params, trailingCommaLoc, false); + this.toAssignableList(params, trailingCommaLoc, false); + node.params = params; } parseFunctionBodyAndFinish(node, type, isMethod = false) { diff --git a/tools/node_modules/eslint/node_modules/@babel/parser/package.json b/tools/node_modules/eslint/node_modules/@babel/parser/package.json index 12dd53b2f15ae3..ae72de5b409ef2 100644 --- a/tools/node_modules/eslint/node_modules/@babel/parser/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/parser/package.json @@ -1,6 +1,6 @@ { "name": "@babel/parser", - "version": "7.17.9", + "version": "7.18.5", "description": "A JavaScript parser", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-parser", @@ -34,8 +34,8 @@ }, "devDependencies": { "@babel/code-frame": "^7.16.7", - "@babel/helper-check-duplicate-nodes": "^7.17.9", - "@babel/helper-fixtures": "^7.17.0", + "@babel/helper-check-duplicate-nodes": "^7.18.4", + "@babel/helper-fixtures": "^7.17.10", "@babel/helper-validator-identifier": "^7.16.7", "charcodes": "^0.2.0" }, diff --git a/tools/node_modules/eslint/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js b/tools/node_modules/eslint/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js index b17617b9f6069e..8b9e9b984a5082 100644 --- a/tools/node_modules/eslint/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js @@ -13,7 +13,7 @@ var _default = (0, _helperPluginUtils.declare)(api => { name: "syntax-import-assertions", manipulateOptions(opts, parserOpts) { - parserOpts.plugins.push(["importAssertions"]); + parserOpts.plugins.push("importAssertions"); } }; diff --git a/tools/node_modules/eslint/node_modules/@babel/plugin-syntax-import-assertions/package.json b/tools/node_modules/eslint/node_modules/@babel/plugin-syntax-import-assertions/package.json index ae76e86ac1cab0..eb31cea1b3091c 100644 --- a/tools/node_modules/eslint/node_modules/@babel/plugin-syntax-import-assertions/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/plugin-syntax-import-assertions/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-syntax-import-assertions", - "version": "7.16.7", + "version": "7.17.12", "description": "Allow parsing of the module assertion attributes in the import statement", "repository": { "type": "git", @@ -16,13 +16,13 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.16.7" + "@babel/core": "^7.17.12" }, "engines": { "node": ">=6.9.0" diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/context.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/context.js index b11f08dc6046ea..6a3ed54a97f5e5 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/context.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/context.js @@ -129,7 +129,11 @@ function stop() { function setScope() { if (this.opts && this.opts.noScope) return; let path = this.parentPath; - if (this.key === "key" && path.isMethod()) path = path.parentPath; + + if ((this.key === "key" || this.listKey === "decorators") && path.isMethod()) { + path = path.parentPath; + } + let target; while (path && !target) { diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/index.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/index.js index 93602608eeecb8..aa02ce04b913bb 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/index.js @@ -227,6 +227,9 @@ class NodePath { } Object.assign(NodePath.prototype, NodePath_ancestry, NodePath_inference, NodePath_replacement, NodePath_evaluation, NodePath_conversion, NodePath_introspection, NodePath_context, NodePath_removal, NodePath_modification, NodePath_family, NodePath_comments); +{ + NodePath.prototype._guessExecutionStatusRelativeToDifferentFunctions = NodePath_introspection._guessExecutionStatusRelativeTo; +} for (const type of t.TYPES) { const typeKey = `is${type}`; diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/inference/index.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/inference/index.js index f7fef255a1591f..0f9ba34a4bb74e 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/inference/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/inference/index.js @@ -33,10 +33,16 @@ const { } = _t; function getTypeAnnotation() { - if (this.typeAnnotation) return this.typeAnnotation; - let type = this._getTypeAnnotation() || anyTypeAnnotation(); + let type = this.getData("typeAnnotation"); + + if (type != null) { + return type; + } + + type = this._getTypeAnnotation() || anyTypeAnnotation(); if (isTypeAnnotation(type)) type = type.typeAnnotation; - return this.typeAnnotation = type; + this.setData("typeAnnotation", type); + return type; } const typeAnnotationInferringNodes = new WeakSet(); diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/introspection.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/introspection.js index 175ef2d7713c95..e0dbd719fb60df 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/introspection.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/introspection.js @@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports._guessExecutionStatusRelativeTo = _guessExecutionStatusRelativeTo; -exports._guessExecutionStatusRelativeToDifferentFunctions = _guessExecutionStatusRelativeToDifferentFunctions; exports._resolve = _resolve; exports.canHaveVariableDeclarationOrExpression = canHaveVariableDeclarationOrExpression; exports.canSwapBetweenExpressionAndStatement = canSwapBetweenExpressionAndStatement; @@ -94,9 +93,12 @@ function isCompletionRecord(allowInsideFunction) { let first = true; do { - const container = path.container; + const { + type, + container + } = path; - if (path.isFunction() && !first) { + if (!first && (path.isFunction() || type === "StaticBlock")) { return !!allowInsideFunction; } @@ -105,7 +107,7 @@ function isCompletionRecord(allowInsideFunction) { if (Array.isArray(container) && path.key !== container.length - 1) { return false; } - } while ((path = path.parentPath) && !path.isProgram()); + } while ((path = path.parentPath) && !path.isProgram() && !path.isDoExpression()); return true; } @@ -229,20 +231,24 @@ function isExecutionUncertainInList(paths, maxIndex) { } function _guessExecutionStatusRelativeTo(target) { + return _guessExecutionStatusRelativeToCached(this, target, new Map()); +} + +function _guessExecutionStatusRelativeToCached(base, target, cache) { const funcParent = { - this: getOuterFunction(this), + this: getOuterFunction(base), target: getOuterFunction(target) }; if (funcParent.target.node !== funcParent.this.node) { - return this._guessExecutionStatusRelativeToDifferentFunctions(funcParent.target); + return _guessExecutionStatusRelativeToDifferentFunctionsCached(base, funcParent.target, cache); } const paths = { target: target.getAncestry(), - this: this.getAncestry() + this: base.getAncestry() }; - if (paths.target.indexOf(this) >= 0) return "after"; + if (paths.target.indexOf(base) >= 0) return "after"; if (paths.this.indexOf(target) >= 0) return "before"; let commonPath; const commonIndex = { @@ -286,9 +292,9 @@ function _guessExecutionStatusRelativeTo(target) { return keyPosition.target > keyPosition.this ? "before" : "after"; } -const executionOrderCheckedNodes = new WeakSet(); +const executionOrderCheckedNodes = new Set(); -function _guessExecutionStatusRelativeToDifferentFunctions(target) { +function _guessExecutionStatusRelativeToDifferentFunctionsInternal(base, target, cache) { if (!target.isFunctionDeclaration() || target.parentPath.isExportDeclaration()) { return "unknown"; } @@ -309,20 +315,37 @@ function _guessExecutionStatusRelativeToDifferentFunctions(target) { if (executionOrderCheckedNodes.has(path.node)) continue; executionOrderCheckedNodes.add(path.node); - const status = this._guessExecutionStatusRelativeTo(path); - - executionOrderCheckedNodes.delete(path.node); + try { + const status = _guessExecutionStatusRelativeToCached(base, path, cache); - if (allStatus && allStatus !== status) { - return "unknown"; - } else { - allStatus = status; + if (allStatus && allStatus !== status) { + return "unknown"; + } else { + allStatus = status; + } + } finally { + executionOrderCheckedNodes.delete(path.node); } } return allStatus; } +function _guessExecutionStatusRelativeToDifferentFunctionsCached(base, target, cache) { + let nodeMap = cache.get(base.node); + + if (!nodeMap) { + cache.set(base.node, nodeMap = new Map()); + } else if (nodeMap.has(target.node)) { + return nodeMap.get(target.node); + } + + const result = _guessExecutionStatusRelativeToDifferentFunctionsInternal(base, target, cache); + + nodeMap.set(target.node, result); + return result; +} + function resolve(dangerous, resolved) { return this._resolve(dangerous, resolved) || this; } diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/lib/virtual-types.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/lib/virtual-types.js index 871cb249d37b31..062a996e81990c 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/lib/virtual-types.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/path/lib/virtual-types.js @@ -164,8 +164,8 @@ const Generated = { }; exports.Generated = Generated; const Pure = { - checkPath(path, opts) { - return path.scope.isPure(path.node, opts); + checkPath(path, constantsOnly) { + return path.scope.isPure(path.node, constantsOnly); } }; diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/index.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/index.js index ee376a88f558e5..b38b165d56754e 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/index.js @@ -53,7 +53,13 @@ const { toIdentifier, unaryExpression, variableDeclaration, - variableDeclarator + variableDeclarator, + isRecordExpression, + isTupleExpression, + isObjectProperty, + isTopicReference, + isMetaProperty, + isPrivateName } = _t; function gatherNodeParts(node, parts) { @@ -362,9 +368,9 @@ class Scope { path = this.path; do { - const isKey = path.key === "key"; + const shouldSkip = path.key === "key" || path.listKey === "decorators"; path = path.parentPath; - if (isKey && path.isMethod()) path = path.parentPath; + if (shouldSkip && path.isMethod()) path = path.parentPath; if (path && path.isScope()) parent = path; } while (path && !parent); @@ -430,7 +436,7 @@ class Scope { } isStatic(node) { - if (isThisExpression(node) || isSuper(node)) { + if (isThisExpression(node) || isSuper(node) || isTopicReference(node)) { return true; } @@ -682,11 +688,19 @@ class Scope { if (!binding) return false; if (constantsOnly) return binding.constant; return true; + } else if (isThisExpression(node) || isMetaProperty(node) || isTopicReference(node) || isPrivateName(node)) { + return true; } else if (isClass(node)) { + var _node$decorators; + if (node.superClass && !this.isPure(node.superClass, constantsOnly)) { return false; } + if (((_node$decorators = node.decorators) == null ? void 0 : _node$decorators.length) > 0) { + return false; + } + return this.isPure(node.body, constantsOnly); } else if (isClassBody(node)) { for (const method of node.body) { @@ -696,25 +710,44 @@ class Scope { return true; } else if (isBinary(node)) { return this.isPure(node.left, constantsOnly) && this.isPure(node.right, constantsOnly); - } else if (isArrayExpression(node)) { + } else if (isArrayExpression(node) || isTupleExpression(node)) { for (const elem of node.elements) { - if (!this.isPure(elem, constantsOnly)) return false; + if (elem !== null && !this.isPure(elem, constantsOnly)) return false; } return true; - } else if (isObjectExpression(node)) { + } else if (isObjectExpression(node) || isRecordExpression(node)) { for (const prop of node.properties) { if (!this.isPure(prop, constantsOnly)) return false; } return true; } else if (isMethod(node)) { + var _node$decorators2; + if (node.computed && !this.isPure(node.key, constantsOnly)) return false; - if (node.kind === "get" || node.kind === "set") return false; + + if (((_node$decorators2 = node.decorators) == null ? void 0 : _node$decorators2.length) > 0) { + return false; + } + return true; } else if (isProperty(node)) { + var _node$decorators3; + if (node.computed && !this.isPure(node.key, constantsOnly)) return false; - return this.isPure(node.value, constantsOnly); + + if (((_node$decorators3 = node.decorators) == null ? void 0 : _node$decorators3.length) > 0) { + return false; + } + + if (isObjectProperty(node) || node.static) { + if (node.value !== null && !this.isPure(node.value, constantsOnly)) { + return false; + } + } + + return true; } else if (isUnaryExpression(node)) { return this.isPure(node.argument, constantsOnly); } else if (isTaggedTemplateExpression(node)) { @@ -821,7 +854,9 @@ class Scope { push(opts) { let path = this.path; - if (!path.isBlockStatement() && !path.isProgram()) { + if (path.isPattern()) { + path = this.getPatternParent().path; + } else if (!path.isBlockStatement() && !path.isProgram()) { path = this.getBlockParent().path; } @@ -888,6 +923,18 @@ class Scope { throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program..."); } + getPatternParent() { + let scope = this; + + do { + if (!scope.path.isPattern()) { + return scope.getBlockParent(); + } + } while (scope = scope.parent.parent); + + throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program..."); + } + getAllBindings() { const ids = Object.create(null); let scope = this; diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/lib/renamer.js b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/lib/renamer.js index f11bbb7006614b..dffc2909c06cd7 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/lib/renamer.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/lib/scope/lib/renamer.js @@ -11,8 +11,9 @@ var _helperSplitExportDeclaration = require("@babel/helper-split-export-declarat var _t = require("@babel/types"); +var _helperEnvironmentVisitor = require("@babel/helper-environment-visitor"); + const { - VISITOR_KEYS, assignmentExpression, identifier, toExpression, @@ -30,7 +31,11 @@ const renameVisitor = { Scope(path, state) { if (!path.scope.bindingIdentifierEquals(state.oldName, state.binding.identifier)) { - skipAllButComputedMethodKey(path); + path.skip(); + + if (path.isMethod()) { + (0, _helperEnvironmentVisitor.requeueComputedKeyAndDecorators)(path); + } } }, @@ -130,17 +135,4 @@ class Renamer { } -exports.default = Renamer; - -function skipAllButComputedMethodKey(path) { - if (!path.isMethod() || !path.node.computed) { - path.skip(); - return; - } - - const keys = VISITOR_KEYS[path.type]; - - for (const key of keys) { - if (key !== "key") path.skipKey(key); - } -} \ No newline at end of file +exports.default = Renamer; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/package.json b/tools/node_modules/eslint/node_modules/@babel/traverse/package.json index cc858eb579b4bd..e874255cc3adb6 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/package.json @@ -1,6 +1,6 @@ { "name": "@babel/traverse", - "version": "7.17.9", + "version": "7.18.5", "description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-traverse", @@ -17,13 +17,13 @@ "main": "./lib/index.js", "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.9", - "@babel/helper-environment-visitor": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", "@babel/helper-function-name": "^7.17.9", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.9", - "@babel/types": "^7.17.0", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" }, diff --git a/tools/node_modules/eslint/node_modules/@babel/traverse/scripts/generators/validators.js b/tools/node_modules/eslint/node_modules/@babel/traverse/scripts/generators/validators.js index f806fc76c724a6..f0e4e239d72c6b 100644 --- a/tools/node_modules/eslint/node_modules/@babel/traverse/scripts/generators/validators.js +++ b/tools/node_modules/eslint/node_modules/@babel/traverse/scripts/generators/validators.js @@ -24,6 +24,8 @@ export interface NodePathValidators { output += `is${type}(opts?: object): this is NodePath;`; } else if (types /* in VirtualTypeAliases */) { output += `is${type}(opts?: object): this is NodePath;`; + } else if (type === "Pure") { + output += `isPure(constantsOnly?: boolean): boolean;`; } else { // if it don't have types, then VirtualTypeAliases[type] is t.Node // which TS marked as always true diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/asserts/generated/index.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/asserts/generated/index.js index 53a55168dafaf2..b75a4e936654d0 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/asserts/generated/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/asserts/generated/index.js @@ -227,6 +227,7 @@ exports.assertTSImportType = assertTSImportType; exports.assertTSIndexSignature = assertTSIndexSignature; exports.assertTSIndexedAccessType = assertTSIndexedAccessType; exports.assertTSInferType = assertTSInferType; +exports.assertTSInstantiationExpression = assertTSInstantiationExpression; exports.assertTSInterfaceBody = assertTSInterfaceBody; exports.assertTSInterfaceDeclaration = assertTSInterfaceDeclaration; exports.assertTSIntersectionType = assertTSIntersectionType; @@ -1236,6 +1237,10 @@ function assertTSTypeAliasDeclaration(node, opts) { assert("TSTypeAliasDeclaration", node, opts); } +function assertTSInstantiationExpression(node, opts) { + assert("TSInstantiationExpression", node, opts); +} + function assertTSAsExpression(node, opts) { assert("TSAsExpression", node, opts); } diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/builder.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/builder.js deleted file mode 100644 index c28edb62506ef8..00000000000000 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/builder.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = builder; - -var _definitions = require("../definitions"); - -var _validate = require("../validators/validate"); - -function builder() { - const type = this; - const keys = _definitions.BUILDER_KEYS[type]; - const countArgs = arguments.length; - - if (countArgs > keys.length) { - throw new Error(`${type}: Too many arguments passed. Received ${countArgs} but can receive no more than ${keys.length}`); - } - - const node = { - type - }; - - for (let i = 0; i < keys.length; ++i) { - const key = keys[i]; - const field = _definitions.NODE_FIELDS[type][key]; - let arg; - if (i < countArgs) arg = arguments[i]; - - if (arg === undefined) { - arg = Array.isArray(field.default) ? [] : field.default; - } - - node[key] = arg; - } - - for (const key in node) { - (0, _validate.default)(node, key, node[key]); - } - - return node; -} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/index.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/index.js index 99851ee0bf9c8e..35a8e143bb974e 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/index.js @@ -193,6 +193,7 @@ exports.tSImportType = exports.tsImportType = tsImportType; exports.tSIndexSignature = exports.tsIndexSignature = tsIndexSignature; exports.tSIndexedAccessType = exports.tsIndexedAccessType = tsIndexedAccessType; exports.tSInferType = exports.tsInferType = tsInferType; +exports.tSInstantiationExpression = exports.tsInstantiationExpression = tsInstantiationExpression; exports.tSInterfaceBody = exports.tsInterfaceBody = tsInterfaceBody; exports.tSInterfaceDeclaration = exports.tsInterfaceDeclaration = tsInterfaceDeclaration; exports.tSIntersectionType = exports.tsIntersectionType = tsIntersectionType; @@ -255,1012 +256,1972 @@ exports.whileStatement = whileStatement; exports.withStatement = withStatement; exports.yieldExpression = yieldExpression; -var _builder = require("../builder"); +var _validateNode = require("../validateNode"); -function arrayExpression(elements) { - return _builder.default.apply("ArrayExpression", arguments); +function arrayExpression(elements = []) { + return (0, _validateNode.default)({ + type: "ArrayExpression", + elements + }); } function assignmentExpression(operator, left, right) { - return _builder.default.apply("AssignmentExpression", arguments); + return (0, _validateNode.default)({ + type: "AssignmentExpression", + operator, + left, + right + }); } function binaryExpression(operator, left, right) { - return _builder.default.apply("BinaryExpression", arguments); + return (0, _validateNode.default)({ + type: "BinaryExpression", + operator, + left, + right + }); } function interpreterDirective(value) { - return _builder.default.apply("InterpreterDirective", arguments); + return (0, _validateNode.default)({ + type: "InterpreterDirective", + value + }); } function directive(value) { - return _builder.default.apply("Directive", arguments); + return (0, _validateNode.default)({ + type: "Directive", + value + }); } function directiveLiteral(value) { - return _builder.default.apply("DirectiveLiteral", arguments); + return (0, _validateNode.default)({ + type: "DirectiveLiteral", + value + }); } -function blockStatement(body, directives) { - return _builder.default.apply("BlockStatement", arguments); +function blockStatement(body, directives = []) { + return (0, _validateNode.default)({ + type: "BlockStatement", + body, + directives + }); } -function breakStatement(label) { - return _builder.default.apply("BreakStatement", arguments); +function breakStatement(label = null) { + return (0, _validateNode.default)({ + type: "BreakStatement", + label + }); } function callExpression(callee, _arguments) { - return _builder.default.apply("CallExpression", arguments); + return (0, _validateNode.default)({ + type: "CallExpression", + callee, + arguments: _arguments + }); } -function catchClause(param, body) { - return _builder.default.apply("CatchClause", arguments); +function catchClause(param = null, body) { + return (0, _validateNode.default)({ + type: "CatchClause", + param, + body + }); } function conditionalExpression(test, consequent, alternate) { - return _builder.default.apply("ConditionalExpression", arguments); + return (0, _validateNode.default)({ + type: "ConditionalExpression", + test, + consequent, + alternate + }); } -function continueStatement(label) { - return _builder.default.apply("ContinueStatement", arguments); +function continueStatement(label = null) { + return (0, _validateNode.default)({ + type: "ContinueStatement", + label + }); } function debuggerStatement() { - return _builder.default.apply("DebuggerStatement", arguments); + return { + type: "DebuggerStatement" + }; } function doWhileStatement(test, body) { - return _builder.default.apply("DoWhileStatement", arguments); + return (0, _validateNode.default)({ + type: "DoWhileStatement", + test, + body + }); } function emptyStatement() { - return _builder.default.apply("EmptyStatement", arguments); + return { + type: "EmptyStatement" + }; } function expressionStatement(expression) { - return _builder.default.apply("ExpressionStatement", arguments); + return (0, _validateNode.default)({ + type: "ExpressionStatement", + expression + }); } -function file(program, comments, tokens) { - return _builder.default.apply("File", arguments); +function file(program, comments = null, tokens = null) { + return (0, _validateNode.default)({ + type: "File", + program, + comments, + tokens + }); } function forInStatement(left, right, body) { - return _builder.default.apply("ForInStatement", arguments); -} - -function forStatement(init, test, update, body) { - return _builder.default.apply("ForStatement", arguments); -} - -function functionDeclaration(id, params, body, generator, async) { - return _builder.default.apply("FunctionDeclaration", arguments); -} - -function functionExpression(id, params, body, generator, async) { - return _builder.default.apply("FunctionExpression", arguments); + return (0, _validateNode.default)({ + type: "ForInStatement", + left, + right, + body + }); +} + +function forStatement(init = null, test = null, update = null, body) { + return (0, _validateNode.default)({ + type: "ForStatement", + init, + test, + update, + body + }); +} + +function functionDeclaration(id = null, params, body, generator = false, async = false) { + return (0, _validateNode.default)({ + type: "FunctionDeclaration", + id, + params, + body, + generator, + async + }); +} + +function functionExpression(id = null, params, body, generator = false, async = false) { + return (0, _validateNode.default)({ + type: "FunctionExpression", + id, + params, + body, + generator, + async + }); } function identifier(name) { - return _builder.default.apply("Identifier", arguments); + return (0, _validateNode.default)({ + type: "Identifier", + name + }); } -function ifStatement(test, consequent, alternate) { - return _builder.default.apply("IfStatement", arguments); +function ifStatement(test, consequent, alternate = null) { + return (0, _validateNode.default)({ + type: "IfStatement", + test, + consequent, + alternate + }); } function labeledStatement(label, body) { - return _builder.default.apply("LabeledStatement", arguments); + return (0, _validateNode.default)({ + type: "LabeledStatement", + label, + body + }); } function stringLiteral(value) { - return _builder.default.apply("StringLiteral", arguments); + return (0, _validateNode.default)({ + type: "StringLiteral", + value + }); } function numericLiteral(value) { - return _builder.default.apply("NumericLiteral", arguments); + return (0, _validateNode.default)({ + type: "NumericLiteral", + value + }); } function nullLiteral() { - return _builder.default.apply("NullLiteral", arguments); + return { + type: "NullLiteral" + }; } function booleanLiteral(value) { - return _builder.default.apply("BooleanLiteral", arguments); + return (0, _validateNode.default)({ + type: "BooleanLiteral", + value + }); } -function regExpLiteral(pattern, flags) { - return _builder.default.apply("RegExpLiteral", arguments); +function regExpLiteral(pattern, flags = "") { + return (0, _validateNode.default)({ + type: "RegExpLiteral", + pattern, + flags + }); } function logicalExpression(operator, left, right) { - return _builder.default.apply("LogicalExpression", arguments); + return (0, _validateNode.default)({ + type: "LogicalExpression", + operator, + left, + right + }); } -function memberExpression(object, property, computed, optional) { - return _builder.default.apply("MemberExpression", arguments); +function memberExpression(object, property, computed = false, optional = null) { + return (0, _validateNode.default)({ + type: "MemberExpression", + object, + property, + computed, + optional + }); } function newExpression(callee, _arguments) { - return _builder.default.apply("NewExpression", arguments); + return (0, _validateNode.default)({ + type: "NewExpression", + callee, + arguments: _arguments + }); } -function program(body, directives, sourceType, interpreter) { - return _builder.default.apply("Program", arguments); +function program(body, directives = [], sourceType = "script", interpreter = null) { + return (0, _validateNode.default)({ + type: "Program", + body, + directives, + sourceType, + interpreter, + sourceFile: null + }); } function objectExpression(properties) { - return _builder.default.apply("ObjectExpression", arguments); -} - -function objectMethod(kind, key, params, body, computed, generator, async) { - return _builder.default.apply("ObjectMethod", arguments); -} - -function objectProperty(key, value, computed, shorthand, decorators) { - return _builder.default.apply("ObjectProperty", arguments); + return (0, _validateNode.default)({ + type: "ObjectExpression", + properties + }); +} + +function objectMethod(kind = "method", key, params, body, computed = false, generator = false, async = false) { + return (0, _validateNode.default)({ + type: "ObjectMethod", + kind, + key, + params, + body, + computed, + generator, + async + }); +} + +function objectProperty(key, value, computed = false, shorthand = false, decorators = null) { + return (0, _validateNode.default)({ + type: "ObjectProperty", + key, + value, + computed, + shorthand, + decorators + }); } function restElement(argument) { - return _builder.default.apply("RestElement", arguments); + return (0, _validateNode.default)({ + type: "RestElement", + argument + }); } -function returnStatement(argument) { - return _builder.default.apply("ReturnStatement", arguments); +function returnStatement(argument = null) { + return (0, _validateNode.default)({ + type: "ReturnStatement", + argument + }); } function sequenceExpression(expressions) { - return _builder.default.apply("SequenceExpression", arguments); + return (0, _validateNode.default)({ + type: "SequenceExpression", + expressions + }); } function parenthesizedExpression(expression) { - return _builder.default.apply("ParenthesizedExpression", arguments); + return (0, _validateNode.default)({ + type: "ParenthesizedExpression", + expression + }); } -function switchCase(test, consequent) { - return _builder.default.apply("SwitchCase", arguments); +function switchCase(test = null, consequent) { + return (0, _validateNode.default)({ + type: "SwitchCase", + test, + consequent + }); } function switchStatement(discriminant, cases) { - return _builder.default.apply("SwitchStatement", arguments); + return (0, _validateNode.default)({ + type: "SwitchStatement", + discriminant, + cases + }); } function thisExpression() { - return _builder.default.apply("ThisExpression", arguments); + return { + type: "ThisExpression" + }; } function throwStatement(argument) { - return _builder.default.apply("ThrowStatement", arguments); + return (0, _validateNode.default)({ + type: "ThrowStatement", + argument + }); } -function tryStatement(block, handler, finalizer) { - return _builder.default.apply("TryStatement", arguments); +function tryStatement(block, handler = null, finalizer = null) { + return (0, _validateNode.default)({ + type: "TryStatement", + block, + handler, + finalizer + }); } -function unaryExpression(operator, argument, prefix) { - return _builder.default.apply("UnaryExpression", arguments); +function unaryExpression(operator, argument, prefix = true) { + return (0, _validateNode.default)({ + type: "UnaryExpression", + operator, + argument, + prefix + }); } -function updateExpression(operator, argument, prefix) { - return _builder.default.apply("UpdateExpression", arguments); +function updateExpression(operator, argument, prefix = false) { + return (0, _validateNode.default)({ + type: "UpdateExpression", + operator, + argument, + prefix + }); } function variableDeclaration(kind, declarations) { - return _builder.default.apply("VariableDeclaration", arguments); + return (0, _validateNode.default)({ + type: "VariableDeclaration", + kind, + declarations + }); } -function variableDeclarator(id, init) { - return _builder.default.apply("VariableDeclarator", arguments); +function variableDeclarator(id, init = null) { + return (0, _validateNode.default)({ + type: "VariableDeclarator", + id, + init + }); } function whileStatement(test, body) { - return _builder.default.apply("WhileStatement", arguments); + return (0, _validateNode.default)({ + type: "WhileStatement", + test, + body + }); } function withStatement(object, body) { - return _builder.default.apply("WithStatement", arguments); + return (0, _validateNode.default)({ + type: "WithStatement", + object, + body + }); } function assignmentPattern(left, right) { - return _builder.default.apply("AssignmentPattern", arguments); + return (0, _validateNode.default)({ + type: "AssignmentPattern", + left, + right + }); } function arrayPattern(elements) { - return _builder.default.apply("ArrayPattern", arguments); + return (0, _validateNode.default)({ + type: "ArrayPattern", + elements + }); } -function arrowFunctionExpression(params, body, async) { - return _builder.default.apply("ArrowFunctionExpression", arguments); +function arrowFunctionExpression(params, body, async = false) { + return (0, _validateNode.default)({ + type: "ArrowFunctionExpression", + params, + body, + async, + expression: null + }); } function classBody(body) { - return _builder.default.apply("ClassBody", arguments); + return (0, _validateNode.default)({ + type: "ClassBody", + body + }); } -function classExpression(id, superClass, body, decorators) { - return _builder.default.apply("ClassExpression", arguments); +function classExpression(id = null, superClass = null, body, decorators = null) { + return (0, _validateNode.default)({ + type: "ClassExpression", + id, + superClass, + body, + decorators + }); } -function classDeclaration(id, superClass, body, decorators) { - return _builder.default.apply("ClassDeclaration", arguments); +function classDeclaration(id, superClass = null, body, decorators = null) { + return (0, _validateNode.default)({ + type: "ClassDeclaration", + id, + superClass, + body, + decorators + }); } function exportAllDeclaration(source) { - return _builder.default.apply("ExportAllDeclaration", arguments); + return (0, _validateNode.default)({ + type: "ExportAllDeclaration", + source + }); } function exportDefaultDeclaration(declaration) { - return _builder.default.apply("ExportDefaultDeclaration", arguments); + return (0, _validateNode.default)({ + type: "ExportDefaultDeclaration", + declaration + }); } -function exportNamedDeclaration(declaration, specifiers, source) { - return _builder.default.apply("ExportNamedDeclaration", arguments); +function exportNamedDeclaration(declaration = null, specifiers = [], source = null) { + return (0, _validateNode.default)({ + type: "ExportNamedDeclaration", + declaration, + specifiers, + source + }); } function exportSpecifier(local, exported) { - return _builder.default.apply("ExportSpecifier", arguments); + return (0, _validateNode.default)({ + type: "ExportSpecifier", + local, + exported + }); } -function forOfStatement(left, right, body, _await) { - return _builder.default.apply("ForOfStatement", arguments); +function forOfStatement(left, right, body, _await = false) { + return (0, _validateNode.default)({ + type: "ForOfStatement", + left, + right, + body, + await: _await + }); } function importDeclaration(specifiers, source) { - return _builder.default.apply("ImportDeclaration", arguments); + return (0, _validateNode.default)({ + type: "ImportDeclaration", + specifiers, + source + }); } function importDefaultSpecifier(local) { - return _builder.default.apply("ImportDefaultSpecifier", arguments); + return (0, _validateNode.default)({ + type: "ImportDefaultSpecifier", + local + }); } function importNamespaceSpecifier(local) { - return _builder.default.apply("ImportNamespaceSpecifier", arguments); + return (0, _validateNode.default)({ + type: "ImportNamespaceSpecifier", + local + }); } function importSpecifier(local, imported) { - return _builder.default.apply("ImportSpecifier", arguments); + return (0, _validateNode.default)({ + type: "ImportSpecifier", + local, + imported + }); } function metaProperty(meta, property) { - return _builder.default.apply("MetaProperty", arguments); -} - -function classMethod(kind, key, params, body, computed, _static, generator, async) { - return _builder.default.apply("ClassMethod", arguments); + return (0, _validateNode.default)({ + type: "MetaProperty", + meta, + property + }); +} + +function classMethod(kind = "method", key, params, body, computed = false, _static = false, generator = false, async = false) { + return (0, _validateNode.default)({ + type: "ClassMethod", + kind, + key, + params, + body, + computed, + static: _static, + generator, + async + }); } function objectPattern(properties) { - return _builder.default.apply("ObjectPattern", arguments); + return (0, _validateNode.default)({ + type: "ObjectPattern", + properties + }); } function spreadElement(argument) { - return _builder.default.apply("SpreadElement", arguments); + return (0, _validateNode.default)({ + type: "SpreadElement", + argument + }); } function _super() { - return _builder.default.apply("Super", arguments); + return { + type: "Super" + }; } function taggedTemplateExpression(tag, quasi) { - return _builder.default.apply("TaggedTemplateExpression", arguments); + return (0, _validateNode.default)({ + type: "TaggedTemplateExpression", + tag, + quasi + }); } -function templateElement(value, tail) { - return _builder.default.apply("TemplateElement", arguments); +function templateElement(value, tail = false) { + return (0, _validateNode.default)({ + type: "TemplateElement", + value, + tail + }); } function templateLiteral(quasis, expressions) { - return _builder.default.apply("TemplateLiteral", arguments); + return (0, _validateNode.default)({ + type: "TemplateLiteral", + quasis, + expressions + }); } -function yieldExpression(argument, delegate) { - return _builder.default.apply("YieldExpression", arguments); +function yieldExpression(argument = null, delegate = false) { + return (0, _validateNode.default)({ + type: "YieldExpression", + argument, + delegate + }); } function awaitExpression(argument) { - return _builder.default.apply("AwaitExpression", arguments); + return (0, _validateNode.default)({ + type: "AwaitExpression", + argument + }); } function _import() { - return _builder.default.apply("Import", arguments); + return { + type: "Import" + }; } function bigIntLiteral(value) { - return _builder.default.apply("BigIntLiteral", arguments); + return (0, _validateNode.default)({ + type: "BigIntLiteral", + value + }); } function exportNamespaceSpecifier(exported) { - return _builder.default.apply("ExportNamespaceSpecifier", arguments); + return (0, _validateNode.default)({ + type: "ExportNamespaceSpecifier", + exported + }); } -function optionalMemberExpression(object, property, computed, optional) { - return _builder.default.apply("OptionalMemberExpression", arguments); +function optionalMemberExpression(object, property, computed = false, optional) { + return (0, _validateNode.default)({ + type: "OptionalMemberExpression", + object, + property, + computed, + optional + }); } function optionalCallExpression(callee, _arguments, optional) { - return _builder.default.apply("OptionalCallExpression", arguments); -} - -function classProperty(key, value, typeAnnotation, decorators, computed, _static) { - return _builder.default.apply("ClassProperty", arguments); -} - -function classAccessorProperty(key, value, typeAnnotation, decorators, computed, _static) { - return _builder.default.apply("ClassAccessorProperty", arguments); -} - -function classPrivateProperty(key, value, decorators, _static) { - return _builder.default.apply("ClassPrivateProperty", arguments); -} - -function classPrivateMethod(kind, key, params, body, _static) { - return _builder.default.apply("ClassPrivateMethod", arguments); + return (0, _validateNode.default)({ + type: "OptionalCallExpression", + callee, + arguments: _arguments, + optional + }); +} + +function classProperty(key, value = null, typeAnnotation = null, decorators = null, computed = false, _static = false) { + return (0, _validateNode.default)({ + type: "ClassProperty", + key, + value, + typeAnnotation, + decorators, + computed, + static: _static + }); +} + +function classAccessorProperty(key, value = null, typeAnnotation = null, decorators = null, computed = false, _static = false) { + return (0, _validateNode.default)({ + type: "ClassAccessorProperty", + key, + value, + typeAnnotation, + decorators, + computed, + static: _static + }); +} + +function classPrivateProperty(key, value = null, decorators = null, _static) { + return (0, _validateNode.default)({ + type: "ClassPrivateProperty", + key, + value, + decorators, + static: _static + }); +} + +function classPrivateMethod(kind = "method", key, params, body, _static = false) { + return (0, _validateNode.default)({ + type: "ClassPrivateMethod", + kind, + key, + params, + body, + static: _static + }); } function privateName(id) { - return _builder.default.apply("PrivateName", arguments); + return (0, _validateNode.default)({ + type: "PrivateName", + id + }); } function staticBlock(body) { - return _builder.default.apply("StaticBlock", arguments); + return (0, _validateNode.default)({ + type: "StaticBlock", + body + }); } function anyTypeAnnotation() { - return _builder.default.apply("AnyTypeAnnotation", arguments); + return { + type: "AnyTypeAnnotation" + }; } function arrayTypeAnnotation(elementType) { - return _builder.default.apply("ArrayTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "ArrayTypeAnnotation", + elementType + }); } function booleanTypeAnnotation() { - return _builder.default.apply("BooleanTypeAnnotation", arguments); + return { + type: "BooleanTypeAnnotation" + }; } function booleanLiteralTypeAnnotation(value) { - return _builder.default.apply("BooleanLiteralTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "BooleanLiteralTypeAnnotation", + value + }); } function nullLiteralTypeAnnotation() { - return _builder.default.apply("NullLiteralTypeAnnotation", arguments); + return { + type: "NullLiteralTypeAnnotation" + }; } -function classImplements(id, typeParameters) { - return _builder.default.apply("ClassImplements", arguments); +function classImplements(id, typeParameters = null) { + return (0, _validateNode.default)({ + type: "ClassImplements", + id, + typeParameters + }); } -function declareClass(id, typeParameters, _extends, body) { - return _builder.default.apply("DeclareClass", arguments); +function declareClass(id, typeParameters = null, _extends = null, body) { + return (0, _validateNode.default)({ + type: "DeclareClass", + id, + typeParameters, + extends: _extends, + body + }); } function declareFunction(id) { - return _builder.default.apply("DeclareFunction", arguments); + return (0, _validateNode.default)({ + type: "DeclareFunction", + id + }); } -function declareInterface(id, typeParameters, _extends, body) { - return _builder.default.apply("DeclareInterface", arguments); +function declareInterface(id, typeParameters = null, _extends = null, body) { + return (0, _validateNode.default)({ + type: "DeclareInterface", + id, + typeParameters, + extends: _extends, + body + }); } -function declareModule(id, body, kind) { - return _builder.default.apply("DeclareModule", arguments); +function declareModule(id, body, kind = null) { + return (0, _validateNode.default)({ + type: "DeclareModule", + id, + body, + kind + }); } function declareModuleExports(typeAnnotation) { - return _builder.default.apply("DeclareModuleExports", arguments); + return (0, _validateNode.default)({ + type: "DeclareModuleExports", + typeAnnotation + }); } -function declareTypeAlias(id, typeParameters, right) { - return _builder.default.apply("DeclareTypeAlias", arguments); +function declareTypeAlias(id, typeParameters = null, right) { + return (0, _validateNode.default)({ + type: "DeclareTypeAlias", + id, + typeParameters, + right + }); } -function declareOpaqueType(id, typeParameters, supertype) { - return _builder.default.apply("DeclareOpaqueType", arguments); +function declareOpaqueType(id, typeParameters = null, supertype = null) { + return (0, _validateNode.default)({ + type: "DeclareOpaqueType", + id, + typeParameters, + supertype + }); } function declareVariable(id) { - return _builder.default.apply("DeclareVariable", arguments); + return (0, _validateNode.default)({ + type: "DeclareVariable", + id + }); } -function declareExportDeclaration(declaration, specifiers, source) { - return _builder.default.apply("DeclareExportDeclaration", arguments); +function declareExportDeclaration(declaration = null, specifiers = null, source = null) { + return (0, _validateNode.default)({ + type: "DeclareExportDeclaration", + declaration, + specifiers, + source + }); } function declareExportAllDeclaration(source) { - return _builder.default.apply("DeclareExportAllDeclaration", arguments); + return (0, _validateNode.default)({ + type: "DeclareExportAllDeclaration", + source + }); } function declaredPredicate(value) { - return _builder.default.apply("DeclaredPredicate", arguments); + return (0, _validateNode.default)({ + type: "DeclaredPredicate", + value + }); } function existsTypeAnnotation() { - return _builder.default.apply("ExistsTypeAnnotation", arguments); + return { + type: "ExistsTypeAnnotation" + }; } -function functionTypeAnnotation(typeParameters, params, rest, returnType) { - return _builder.default.apply("FunctionTypeAnnotation", arguments); +function functionTypeAnnotation(typeParameters = null, params, rest = null, returnType) { + return (0, _validateNode.default)({ + type: "FunctionTypeAnnotation", + typeParameters, + params, + rest, + returnType + }); } -function functionTypeParam(name, typeAnnotation) { - return _builder.default.apply("FunctionTypeParam", arguments); +function functionTypeParam(name = null, typeAnnotation) { + return (0, _validateNode.default)({ + type: "FunctionTypeParam", + name, + typeAnnotation + }); } -function genericTypeAnnotation(id, typeParameters) { - return _builder.default.apply("GenericTypeAnnotation", arguments); +function genericTypeAnnotation(id, typeParameters = null) { + return (0, _validateNode.default)({ + type: "GenericTypeAnnotation", + id, + typeParameters + }); } function inferredPredicate() { - return _builder.default.apply("InferredPredicate", arguments); + return { + type: "InferredPredicate" + }; } -function interfaceExtends(id, typeParameters) { - return _builder.default.apply("InterfaceExtends", arguments); +function interfaceExtends(id, typeParameters = null) { + return (0, _validateNode.default)({ + type: "InterfaceExtends", + id, + typeParameters + }); } -function interfaceDeclaration(id, typeParameters, _extends, body) { - return _builder.default.apply("InterfaceDeclaration", arguments); +function interfaceDeclaration(id, typeParameters = null, _extends = null, body) { + return (0, _validateNode.default)({ + type: "InterfaceDeclaration", + id, + typeParameters, + extends: _extends, + body + }); } -function interfaceTypeAnnotation(_extends, body) { - return _builder.default.apply("InterfaceTypeAnnotation", arguments); +function interfaceTypeAnnotation(_extends = null, body) { + return (0, _validateNode.default)({ + type: "InterfaceTypeAnnotation", + extends: _extends, + body + }); } function intersectionTypeAnnotation(types) { - return _builder.default.apply("IntersectionTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "IntersectionTypeAnnotation", + types + }); } function mixedTypeAnnotation() { - return _builder.default.apply("MixedTypeAnnotation", arguments); + return { + type: "MixedTypeAnnotation" + }; } function emptyTypeAnnotation() { - return _builder.default.apply("EmptyTypeAnnotation", arguments); + return { + type: "EmptyTypeAnnotation" + }; } function nullableTypeAnnotation(typeAnnotation) { - return _builder.default.apply("NullableTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "NullableTypeAnnotation", + typeAnnotation + }); } function numberLiteralTypeAnnotation(value) { - return _builder.default.apply("NumberLiteralTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "NumberLiteralTypeAnnotation", + value + }); } function numberTypeAnnotation() { - return _builder.default.apply("NumberTypeAnnotation", arguments); + return { + type: "NumberTypeAnnotation" + }; } -function objectTypeAnnotation(properties, indexers, callProperties, internalSlots, exact) { - return _builder.default.apply("ObjectTypeAnnotation", arguments); +function objectTypeAnnotation(properties, indexers = [], callProperties = [], internalSlots = [], exact = false) { + return (0, _validateNode.default)({ + type: "ObjectTypeAnnotation", + properties, + indexers, + callProperties, + internalSlots, + exact + }); } function objectTypeInternalSlot(id, value, optional, _static, method) { - return _builder.default.apply("ObjectTypeInternalSlot", arguments); + return (0, _validateNode.default)({ + type: "ObjectTypeInternalSlot", + id, + value, + optional, + static: _static, + method + }); } function objectTypeCallProperty(value) { - return _builder.default.apply("ObjectTypeCallProperty", arguments); -} - -function objectTypeIndexer(id, key, value, variance) { - return _builder.default.apply("ObjectTypeIndexer", arguments); -} - -function objectTypeProperty(key, value, variance) { - return _builder.default.apply("ObjectTypeProperty", arguments); + return (0, _validateNode.default)({ + type: "ObjectTypeCallProperty", + value, + static: null + }); +} + +function objectTypeIndexer(id = null, key, value, variance = null) { + return (0, _validateNode.default)({ + type: "ObjectTypeIndexer", + id, + key, + value, + variance, + static: null + }); +} + +function objectTypeProperty(key, value, variance = null) { + return (0, _validateNode.default)({ + type: "ObjectTypeProperty", + key, + value, + variance, + kind: null, + method: null, + optional: null, + proto: null, + static: null + }); } function objectTypeSpreadProperty(argument) { - return _builder.default.apply("ObjectTypeSpreadProperty", arguments); + return (0, _validateNode.default)({ + type: "ObjectTypeSpreadProperty", + argument + }); } -function opaqueType(id, typeParameters, supertype, impltype) { - return _builder.default.apply("OpaqueType", arguments); +function opaqueType(id, typeParameters = null, supertype = null, impltype) { + return (0, _validateNode.default)({ + type: "OpaqueType", + id, + typeParameters, + supertype, + impltype + }); } function qualifiedTypeIdentifier(id, qualification) { - return _builder.default.apply("QualifiedTypeIdentifier", arguments); + return (0, _validateNode.default)({ + type: "QualifiedTypeIdentifier", + id, + qualification + }); } function stringLiteralTypeAnnotation(value) { - return _builder.default.apply("StringLiteralTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "StringLiteralTypeAnnotation", + value + }); } function stringTypeAnnotation() { - return _builder.default.apply("StringTypeAnnotation", arguments); + return { + type: "StringTypeAnnotation" + }; } function symbolTypeAnnotation() { - return _builder.default.apply("SymbolTypeAnnotation", arguments); + return { + type: "SymbolTypeAnnotation" + }; } function thisTypeAnnotation() { - return _builder.default.apply("ThisTypeAnnotation", arguments); + return { + type: "ThisTypeAnnotation" + }; } function tupleTypeAnnotation(types) { - return _builder.default.apply("TupleTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "TupleTypeAnnotation", + types + }); } function typeofTypeAnnotation(argument) { - return _builder.default.apply("TypeofTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "TypeofTypeAnnotation", + argument + }); } -function typeAlias(id, typeParameters, right) { - return _builder.default.apply("TypeAlias", arguments); +function typeAlias(id, typeParameters = null, right) { + return (0, _validateNode.default)({ + type: "TypeAlias", + id, + typeParameters, + right + }); } function typeAnnotation(typeAnnotation) { - return _builder.default.apply("TypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "TypeAnnotation", + typeAnnotation + }); } function typeCastExpression(expression, typeAnnotation) { - return _builder.default.apply("TypeCastExpression", arguments); + return (0, _validateNode.default)({ + type: "TypeCastExpression", + expression, + typeAnnotation + }); } -function typeParameter(bound, _default, variance) { - return _builder.default.apply("TypeParameter", arguments); +function typeParameter(bound = null, _default = null, variance = null) { + return (0, _validateNode.default)({ + type: "TypeParameter", + bound, + default: _default, + variance, + name: null + }); } function typeParameterDeclaration(params) { - return _builder.default.apply("TypeParameterDeclaration", arguments); + return (0, _validateNode.default)({ + type: "TypeParameterDeclaration", + params + }); } function typeParameterInstantiation(params) { - return _builder.default.apply("TypeParameterInstantiation", arguments); + return (0, _validateNode.default)({ + type: "TypeParameterInstantiation", + params + }); } function unionTypeAnnotation(types) { - return _builder.default.apply("UnionTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "UnionTypeAnnotation", + types + }); } function variance(kind) { - return _builder.default.apply("Variance", arguments); + return (0, _validateNode.default)({ + type: "Variance", + kind + }); } function voidTypeAnnotation() { - return _builder.default.apply("VoidTypeAnnotation", arguments); + return { + type: "VoidTypeAnnotation" + }; } function enumDeclaration(id, body) { - return _builder.default.apply("EnumDeclaration", arguments); + return (0, _validateNode.default)({ + type: "EnumDeclaration", + id, + body + }); } function enumBooleanBody(members) { - return _builder.default.apply("EnumBooleanBody", arguments); + return (0, _validateNode.default)({ + type: "EnumBooleanBody", + members, + explicitType: null, + hasUnknownMembers: null + }); } function enumNumberBody(members) { - return _builder.default.apply("EnumNumberBody", arguments); + return (0, _validateNode.default)({ + type: "EnumNumberBody", + members, + explicitType: null, + hasUnknownMembers: null + }); } function enumStringBody(members) { - return _builder.default.apply("EnumStringBody", arguments); + return (0, _validateNode.default)({ + type: "EnumStringBody", + members, + explicitType: null, + hasUnknownMembers: null + }); } function enumSymbolBody(members) { - return _builder.default.apply("EnumSymbolBody", arguments); + return (0, _validateNode.default)({ + type: "EnumSymbolBody", + members, + hasUnknownMembers: null + }); } function enumBooleanMember(id) { - return _builder.default.apply("EnumBooleanMember", arguments); + return (0, _validateNode.default)({ + type: "EnumBooleanMember", + id, + init: null + }); } function enumNumberMember(id, init) { - return _builder.default.apply("EnumNumberMember", arguments); + return (0, _validateNode.default)({ + type: "EnumNumberMember", + id, + init + }); } function enumStringMember(id, init) { - return _builder.default.apply("EnumStringMember", arguments); + return (0, _validateNode.default)({ + type: "EnumStringMember", + id, + init + }); } function enumDefaultedMember(id) { - return _builder.default.apply("EnumDefaultedMember", arguments); + return (0, _validateNode.default)({ + type: "EnumDefaultedMember", + id + }); } function indexedAccessType(objectType, indexType) { - return _builder.default.apply("IndexedAccessType", arguments); + return (0, _validateNode.default)({ + type: "IndexedAccessType", + objectType, + indexType + }); } function optionalIndexedAccessType(objectType, indexType) { - return _builder.default.apply("OptionalIndexedAccessType", arguments); + return (0, _validateNode.default)({ + type: "OptionalIndexedAccessType", + objectType, + indexType, + optional: null + }); } -function jsxAttribute(name, value) { - return _builder.default.apply("JSXAttribute", arguments); +function jsxAttribute(name, value = null) { + return (0, _validateNode.default)({ + type: "JSXAttribute", + name, + value + }); } function jsxClosingElement(name) { - return _builder.default.apply("JSXClosingElement", arguments); + return (0, _validateNode.default)({ + type: "JSXClosingElement", + name + }); } -function jsxElement(openingElement, closingElement, children, selfClosing) { - return _builder.default.apply("JSXElement", arguments); +function jsxElement(openingElement, closingElement = null, children, selfClosing = null) { + return (0, _validateNode.default)({ + type: "JSXElement", + openingElement, + closingElement, + children, + selfClosing + }); } function jsxEmptyExpression() { - return _builder.default.apply("JSXEmptyExpression", arguments); + return { + type: "JSXEmptyExpression" + }; } function jsxExpressionContainer(expression) { - return _builder.default.apply("JSXExpressionContainer", arguments); + return (0, _validateNode.default)({ + type: "JSXExpressionContainer", + expression + }); } function jsxSpreadChild(expression) { - return _builder.default.apply("JSXSpreadChild", arguments); + return (0, _validateNode.default)({ + type: "JSXSpreadChild", + expression + }); } function jsxIdentifier(name) { - return _builder.default.apply("JSXIdentifier", arguments); + return (0, _validateNode.default)({ + type: "JSXIdentifier", + name + }); } function jsxMemberExpression(object, property) { - return _builder.default.apply("JSXMemberExpression", arguments); + return (0, _validateNode.default)({ + type: "JSXMemberExpression", + object, + property + }); } function jsxNamespacedName(namespace, name) { - return _builder.default.apply("JSXNamespacedName", arguments); + return (0, _validateNode.default)({ + type: "JSXNamespacedName", + namespace, + name + }); } -function jsxOpeningElement(name, attributes, selfClosing) { - return _builder.default.apply("JSXOpeningElement", arguments); +function jsxOpeningElement(name, attributes, selfClosing = false) { + return (0, _validateNode.default)({ + type: "JSXOpeningElement", + name, + attributes, + selfClosing + }); } function jsxSpreadAttribute(argument) { - return _builder.default.apply("JSXSpreadAttribute", arguments); + return (0, _validateNode.default)({ + type: "JSXSpreadAttribute", + argument + }); } function jsxText(value) { - return _builder.default.apply("JSXText", arguments); + return (0, _validateNode.default)({ + type: "JSXText", + value + }); } function jsxFragment(openingFragment, closingFragment, children) { - return _builder.default.apply("JSXFragment", arguments); + return (0, _validateNode.default)({ + type: "JSXFragment", + openingFragment, + closingFragment, + children + }); } function jsxOpeningFragment() { - return _builder.default.apply("JSXOpeningFragment", arguments); + return { + type: "JSXOpeningFragment" + }; } function jsxClosingFragment() { - return _builder.default.apply("JSXClosingFragment", arguments); + return { + type: "JSXClosingFragment" + }; } function noop() { - return _builder.default.apply("Noop", arguments); + return { + type: "Noop" + }; } function placeholder(expectedNode, name) { - return _builder.default.apply("Placeholder", arguments); + return (0, _validateNode.default)({ + type: "Placeholder", + expectedNode, + name + }); } function v8IntrinsicIdentifier(name) { - return _builder.default.apply("V8IntrinsicIdentifier", arguments); + return (0, _validateNode.default)({ + type: "V8IntrinsicIdentifier", + name + }); } function argumentPlaceholder() { - return _builder.default.apply("ArgumentPlaceholder", arguments); + return { + type: "ArgumentPlaceholder" + }; } function bindExpression(object, callee) { - return _builder.default.apply("BindExpression", arguments); + return (0, _validateNode.default)({ + type: "BindExpression", + object, + callee + }); } function importAttribute(key, value) { - return _builder.default.apply("ImportAttribute", arguments); + return (0, _validateNode.default)({ + type: "ImportAttribute", + key, + value + }); } function decorator(expression) { - return _builder.default.apply("Decorator", arguments); + return (0, _validateNode.default)({ + type: "Decorator", + expression + }); } -function doExpression(body, async) { - return _builder.default.apply("DoExpression", arguments); +function doExpression(body, async = false) { + return (0, _validateNode.default)({ + type: "DoExpression", + body, + async + }); } function exportDefaultSpecifier(exported) { - return _builder.default.apply("ExportDefaultSpecifier", arguments); + return (0, _validateNode.default)({ + type: "ExportDefaultSpecifier", + exported + }); } function recordExpression(properties) { - return _builder.default.apply("RecordExpression", arguments); + return (0, _validateNode.default)({ + type: "RecordExpression", + properties + }); } -function tupleExpression(elements) { - return _builder.default.apply("TupleExpression", arguments); +function tupleExpression(elements = []) { + return (0, _validateNode.default)({ + type: "TupleExpression", + elements + }); } function decimalLiteral(value) { - return _builder.default.apply("DecimalLiteral", arguments); + return (0, _validateNode.default)({ + type: "DecimalLiteral", + value + }); } function moduleExpression(body) { - return _builder.default.apply("ModuleExpression", arguments); + return (0, _validateNode.default)({ + type: "ModuleExpression", + body + }); } function topicReference() { - return _builder.default.apply("TopicReference", arguments); + return { + type: "TopicReference" + }; } function pipelineTopicExpression(expression) { - return _builder.default.apply("PipelineTopicExpression", arguments); + return (0, _validateNode.default)({ + type: "PipelineTopicExpression", + expression + }); } function pipelineBareFunction(callee) { - return _builder.default.apply("PipelineBareFunction", arguments); + return (0, _validateNode.default)({ + type: "PipelineBareFunction", + callee + }); } function pipelinePrimaryTopicReference() { - return _builder.default.apply("PipelinePrimaryTopicReference", arguments); + return { + type: "PipelinePrimaryTopicReference" + }; } function tsParameterProperty(parameter) { - return _builder.default.apply("TSParameterProperty", arguments); + return (0, _validateNode.default)({ + type: "TSParameterProperty", + parameter + }); } -function tsDeclareFunction(id, typeParameters, params, returnType) { - return _builder.default.apply("TSDeclareFunction", arguments); +function tsDeclareFunction(id = null, typeParameters = null, params, returnType = null) { + return (0, _validateNode.default)({ + type: "TSDeclareFunction", + id, + typeParameters, + params, + returnType + }); } -function tsDeclareMethod(decorators, key, typeParameters, params, returnType) { - return _builder.default.apply("TSDeclareMethod", arguments); +function tsDeclareMethod(decorators = null, key, typeParameters = null, params, returnType = null) { + return (0, _validateNode.default)({ + type: "TSDeclareMethod", + decorators, + key, + typeParameters, + params, + returnType + }); } function tsQualifiedName(left, right) { - return _builder.default.apply("TSQualifiedName", arguments); -} - -function tsCallSignatureDeclaration(typeParameters, parameters, typeAnnotation) { - return _builder.default.apply("TSCallSignatureDeclaration", arguments); -} - -function tsConstructSignatureDeclaration(typeParameters, parameters, typeAnnotation) { - return _builder.default.apply("TSConstructSignatureDeclaration", arguments); -} - -function tsPropertySignature(key, typeAnnotation, initializer) { - return _builder.default.apply("TSPropertySignature", arguments); -} - -function tsMethodSignature(key, typeParameters, parameters, typeAnnotation) { - return _builder.default.apply("TSMethodSignature", arguments); -} - -function tsIndexSignature(parameters, typeAnnotation) { - return _builder.default.apply("TSIndexSignature", arguments); + return (0, _validateNode.default)({ + type: "TSQualifiedName", + left, + right + }); +} + +function tsCallSignatureDeclaration(typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSCallSignatureDeclaration", + typeParameters, + parameters, + typeAnnotation + }); +} + +function tsConstructSignatureDeclaration(typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSConstructSignatureDeclaration", + typeParameters, + parameters, + typeAnnotation + }); +} + +function tsPropertySignature(key, typeAnnotation = null, initializer = null) { + return (0, _validateNode.default)({ + type: "TSPropertySignature", + key, + typeAnnotation, + initializer, + kind: null + }); +} + +function tsMethodSignature(key, typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSMethodSignature", + key, + typeParameters, + parameters, + typeAnnotation, + kind: null + }); +} + +function tsIndexSignature(parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSIndexSignature", + parameters, + typeAnnotation + }); } function tsAnyKeyword() { - return _builder.default.apply("TSAnyKeyword", arguments); + return { + type: "TSAnyKeyword" + }; } function tsBooleanKeyword() { - return _builder.default.apply("TSBooleanKeyword", arguments); + return { + type: "TSBooleanKeyword" + }; } function tsBigIntKeyword() { - return _builder.default.apply("TSBigIntKeyword", arguments); + return { + type: "TSBigIntKeyword" + }; } function tsIntrinsicKeyword() { - return _builder.default.apply("TSIntrinsicKeyword", arguments); + return { + type: "TSIntrinsicKeyword" + }; } function tsNeverKeyword() { - return _builder.default.apply("TSNeverKeyword", arguments); + return { + type: "TSNeverKeyword" + }; } function tsNullKeyword() { - return _builder.default.apply("TSNullKeyword", arguments); + return { + type: "TSNullKeyword" + }; } function tsNumberKeyword() { - return _builder.default.apply("TSNumberKeyword", arguments); + return { + type: "TSNumberKeyword" + }; } function tsObjectKeyword() { - return _builder.default.apply("TSObjectKeyword", arguments); + return { + type: "TSObjectKeyword" + }; } function tsStringKeyword() { - return _builder.default.apply("TSStringKeyword", arguments); + return { + type: "TSStringKeyword" + }; } function tsSymbolKeyword() { - return _builder.default.apply("TSSymbolKeyword", arguments); + return { + type: "TSSymbolKeyword" + }; } function tsUndefinedKeyword() { - return _builder.default.apply("TSUndefinedKeyword", arguments); + return { + type: "TSUndefinedKeyword" + }; } function tsUnknownKeyword() { - return _builder.default.apply("TSUnknownKeyword", arguments); + return { + type: "TSUnknownKeyword" + }; } function tsVoidKeyword() { - return _builder.default.apply("TSVoidKeyword", arguments); + return { + type: "TSVoidKeyword" + }; } function tsThisType() { - return _builder.default.apply("TSThisType", arguments); + return { + type: "TSThisType" + }; } -function tsFunctionType(typeParameters, parameters, typeAnnotation) { - return _builder.default.apply("TSFunctionType", arguments); +function tsFunctionType(typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSFunctionType", + typeParameters, + parameters, + typeAnnotation + }); } -function tsConstructorType(typeParameters, parameters, typeAnnotation) { - return _builder.default.apply("TSConstructorType", arguments); +function tsConstructorType(typeParameters = null, parameters, typeAnnotation = null) { + return (0, _validateNode.default)({ + type: "TSConstructorType", + typeParameters, + parameters, + typeAnnotation + }); } -function tsTypeReference(typeName, typeParameters) { - return _builder.default.apply("TSTypeReference", arguments); +function tsTypeReference(typeName, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSTypeReference", + typeName, + typeParameters + }); } -function tsTypePredicate(parameterName, typeAnnotation, asserts) { - return _builder.default.apply("TSTypePredicate", arguments); +function tsTypePredicate(parameterName, typeAnnotation = null, asserts = null) { + return (0, _validateNode.default)({ + type: "TSTypePredicate", + parameterName, + typeAnnotation, + asserts + }); } -function tsTypeQuery(exprName) { - return _builder.default.apply("TSTypeQuery", arguments); +function tsTypeQuery(exprName, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSTypeQuery", + exprName, + typeParameters + }); } function tsTypeLiteral(members) { - return _builder.default.apply("TSTypeLiteral", arguments); + return (0, _validateNode.default)({ + type: "TSTypeLiteral", + members + }); } function tsArrayType(elementType) { - return _builder.default.apply("TSArrayType", arguments); + return (0, _validateNode.default)({ + type: "TSArrayType", + elementType + }); } function tsTupleType(elementTypes) { - return _builder.default.apply("TSTupleType", arguments); + return (0, _validateNode.default)({ + type: "TSTupleType", + elementTypes + }); } function tsOptionalType(typeAnnotation) { - return _builder.default.apply("TSOptionalType", arguments); + return (0, _validateNode.default)({ + type: "TSOptionalType", + typeAnnotation + }); } function tsRestType(typeAnnotation) { - return _builder.default.apply("TSRestType", arguments); + return (0, _validateNode.default)({ + type: "TSRestType", + typeAnnotation + }); } -function tsNamedTupleMember(label, elementType, optional) { - return _builder.default.apply("TSNamedTupleMember", arguments); +function tsNamedTupleMember(label, elementType, optional = false) { + return (0, _validateNode.default)({ + type: "TSNamedTupleMember", + label, + elementType, + optional + }); } function tsUnionType(types) { - return _builder.default.apply("TSUnionType", arguments); + return (0, _validateNode.default)({ + type: "TSUnionType", + types + }); } function tsIntersectionType(types) { - return _builder.default.apply("TSIntersectionType", arguments); + return (0, _validateNode.default)({ + type: "TSIntersectionType", + types + }); } function tsConditionalType(checkType, extendsType, trueType, falseType) { - return _builder.default.apply("TSConditionalType", arguments); + return (0, _validateNode.default)({ + type: "TSConditionalType", + checkType, + extendsType, + trueType, + falseType + }); } function tsInferType(typeParameter) { - return _builder.default.apply("TSInferType", arguments); + return (0, _validateNode.default)({ + type: "TSInferType", + typeParameter + }); } function tsParenthesizedType(typeAnnotation) { - return _builder.default.apply("TSParenthesizedType", arguments); + return (0, _validateNode.default)({ + type: "TSParenthesizedType", + typeAnnotation + }); } function tsTypeOperator(typeAnnotation) { - return _builder.default.apply("TSTypeOperator", arguments); + return (0, _validateNode.default)({ + type: "TSTypeOperator", + typeAnnotation, + operator: null + }); } function tsIndexedAccessType(objectType, indexType) { - return _builder.default.apply("TSIndexedAccessType", arguments); + return (0, _validateNode.default)({ + type: "TSIndexedAccessType", + objectType, + indexType + }); } -function tsMappedType(typeParameter, typeAnnotation, nameType) { - return _builder.default.apply("TSMappedType", arguments); +function tsMappedType(typeParameter, typeAnnotation = null, nameType = null) { + return (0, _validateNode.default)({ + type: "TSMappedType", + typeParameter, + typeAnnotation, + nameType + }); } function tsLiteralType(literal) { - return _builder.default.apply("TSLiteralType", arguments); + return (0, _validateNode.default)({ + type: "TSLiteralType", + literal + }); } -function tsExpressionWithTypeArguments(expression, typeParameters) { - return _builder.default.apply("TSExpressionWithTypeArguments", arguments); +function tsExpressionWithTypeArguments(expression, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSExpressionWithTypeArguments", + expression, + typeParameters + }); } -function tsInterfaceDeclaration(id, typeParameters, _extends, body) { - return _builder.default.apply("TSInterfaceDeclaration", arguments); +function tsInterfaceDeclaration(id, typeParameters = null, _extends = null, body) { + return (0, _validateNode.default)({ + type: "TSInterfaceDeclaration", + id, + typeParameters, + extends: _extends, + body + }); } function tsInterfaceBody(body) { - return _builder.default.apply("TSInterfaceBody", arguments); + return (0, _validateNode.default)({ + type: "TSInterfaceBody", + body + }); +} + +function tsTypeAliasDeclaration(id, typeParameters = null, typeAnnotation) { + return (0, _validateNode.default)({ + type: "TSTypeAliasDeclaration", + id, + typeParameters, + typeAnnotation + }); } -function tsTypeAliasDeclaration(id, typeParameters, typeAnnotation) { - return _builder.default.apply("TSTypeAliasDeclaration", arguments); +function tsInstantiationExpression(expression, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSInstantiationExpression", + expression, + typeParameters + }); } function tsAsExpression(expression, typeAnnotation) { - return _builder.default.apply("TSAsExpression", arguments); + return (0, _validateNode.default)({ + type: "TSAsExpression", + expression, + typeAnnotation + }); } function tsTypeAssertion(typeAnnotation, expression) { - return _builder.default.apply("TSTypeAssertion", arguments); + return (0, _validateNode.default)({ + type: "TSTypeAssertion", + typeAnnotation, + expression + }); } function tsEnumDeclaration(id, members) { - return _builder.default.apply("TSEnumDeclaration", arguments); + return (0, _validateNode.default)({ + type: "TSEnumDeclaration", + id, + members + }); } -function tsEnumMember(id, initializer) { - return _builder.default.apply("TSEnumMember", arguments); +function tsEnumMember(id, initializer = null) { + return (0, _validateNode.default)({ + type: "TSEnumMember", + id, + initializer + }); } function tsModuleDeclaration(id, body) { - return _builder.default.apply("TSModuleDeclaration", arguments); + return (0, _validateNode.default)({ + type: "TSModuleDeclaration", + id, + body + }); } function tsModuleBlock(body) { - return _builder.default.apply("TSModuleBlock", arguments); + return (0, _validateNode.default)({ + type: "TSModuleBlock", + body + }); } -function tsImportType(argument, qualifier, typeParameters) { - return _builder.default.apply("TSImportType", arguments); +function tsImportType(argument, qualifier = null, typeParameters = null) { + return (0, _validateNode.default)({ + type: "TSImportType", + argument, + qualifier, + typeParameters + }); } function tsImportEqualsDeclaration(id, moduleReference) { - return _builder.default.apply("TSImportEqualsDeclaration", arguments); + return (0, _validateNode.default)({ + type: "TSImportEqualsDeclaration", + id, + moduleReference, + isExport: null + }); } function tsExternalModuleReference(expression) { - return _builder.default.apply("TSExternalModuleReference", arguments); + return (0, _validateNode.default)({ + type: "TSExternalModuleReference", + expression + }); } function tsNonNullExpression(expression) { - return _builder.default.apply("TSNonNullExpression", arguments); + return (0, _validateNode.default)({ + type: "TSNonNullExpression", + expression + }); } function tsExportAssignment(expression) { - return _builder.default.apply("TSExportAssignment", arguments); + return (0, _validateNode.default)({ + type: "TSExportAssignment", + expression + }); } function tsNamespaceExportDeclaration(id) { - return _builder.default.apply("TSNamespaceExportDeclaration", arguments); + return (0, _validateNode.default)({ + type: "TSNamespaceExportDeclaration", + id + }); } function tsTypeAnnotation(typeAnnotation) { - return _builder.default.apply("TSTypeAnnotation", arguments); + return (0, _validateNode.default)({ + type: "TSTypeAnnotation", + typeAnnotation + }); } function tsTypeParameterInstantiation(params) { - return _builder.default.apply("TSTypeParameterInstantiation", arguments); + return (0, _validateNode.default)({ + type: "TSTypeParameterInstantiation", + params + }); } function tsTypeParameterDeclaration(params) { - return _builder.default.apply("TSTypeParameterDeclaration", arguments); + return (0, _validateNode.default)({ + type: "TSTypeParameterDeclaration", + params + }); } -function tsTypeParameter(constraint, _default, name) { - return _builder.default.apply("TSTypeParameter", arguments); +function tsTypeParameter(constraint = null, _default = null, name) { + return (0, _validateNode.default)({ + type: "TSTypeParameter", + constraint, + default: _default, + name + }); } function NumberLiteral(value) { console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); - return _builder.default.apply("NumberLiteral", arguments); + return numericLiteral(value); } -function RegexLiteral(pattern, flags) { +function RegexLiteral(pattern, flags = "") { console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); - return _builder.default.apply("RegexLiteral", arguments); + return regExpLiteral(pattern, flags); } function RestProperty(argument) { console.trace("The node type RestProperty has been renamed to RestElement"); - return _builder.default.apply("RestProperty", arguments); + return restElement(argument); } function SpreadProperty(argument) { console.trace("The node type SpreadProperty has been renamed to SpreadElement"); - return _builder.default.apply("SpreadProperty", arguments); + return spreadElement(argument); } \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/uppercase.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/uppercase.js index 95c9a5258a7745..0c49f05c4410e9 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/uppercase.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/generated/uppercase.js @@ -1095,6 +1095,12 @@ Object.defineProperty(exports, "TSInferType", { return _index.tsInferType; } }); +Object.defineProperty(exports, "TSInstantiationExpression", { + enumerable: true, + get: function () { + return _index.tsInstantiationExpression; + } +}); Object.defineProperty(exports, "TSInterfaceBody", { enumerable: true, get: function () { diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/validateNode.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/validateNode.js new file mode 100644 index 00000000000000..aa11e9afc75e53 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/builders/validateNode.js @@ -0,0 +1,20 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = validateNode; + +var _validate = require("../validators/validate"); + +var _ = require(".."); + +function validateNode(node) { + const keys = _.BUILDER_KEYS[node.type]; + + for (const key of keys) { + (0, _validate.default)(node, key, node[key]); + } + + return node; +} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/clone/cloneNode.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/clone/cloneNode.js index 5980f2d1ba904e..aa27dad8971974 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/clone/cloneNode.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/clone/cloneNode.js @@ -11,23 +11,27 @@ var _generated = require("../validators/generated"); const has = Function.call.bind(Object.prototype.hasOwnProperty); -function cloneIfNode(obj, deep, withoutLoc) { +function cloneIfNode(obj, deep, withoutLoc, commentsCache) { if (obj && typeof obj.type === "string") { - return cloneNode(obj, deep, withoutLoc); + return cloneNodeInternal(obj, deep, withoutLoc, commentsCache); } return obj; } -function cloneIfNodeOrArray(obj, deep, withoutLoc) { +function cloneIfNodeOrArray(obj, deep, withoutLoc, commentsCache) { if (Array.isArray(obj)) { - return obj.map(node => cloneIfNode(node, deep, withoutLoc)); + return obj.map(node => cloneIfNode(node, deep, withoutLoc, commentsCache)); } - return cloneIfNode(obj, deep, withoutLoc); + return cloneIfNode(obj, deep, withoutLoc, commentsCache); } function cloneNode(node, deep = true, withoutLoc = false) { + return cloneNodeInternal(node, deep, withoutLoc, new Map()); +} + +function cloneNodeInternal(node, deep = true, withoutLoc = false, commentsCache) { if (!node) return node; const { type @@ -44,7 +48,7 @@ function cloneNode(node, deep = true, withoutLoc = false) { } if (has(node, "typeAnnotation")) { - newNode.typeAnnotation = deep ? cloneIfNodeOrArray(node.typeAnnotation, true, withoutLoc) : node.typeAnnotation; + newNode.typeAnnotation = deep ? cloneIfNodeOrArray(node.typeAnnotation, true, withoutLoc, commentsCache) : node.typeAnnotation; } } else if (!has(_definitions.NODE_FIELDS, type)) { throw new Error(`Unknown node type: "${type}"`); @@ -52,7 +56,7 @@ function cloneNode(node, deep = true, withoutLoc = false) { for (const field of Object.keys(_definitions.NODE_FIELDS[type])) { if (has(node, field)) { if (deep) { - newNode[field] = (0, _generated.isFile)(node) && field === "comments" ? maybeCloneComments(node.comments, deep, withoutLoc) : cloneIfNodeOrArray(node[field], true, withoutLoc); + newNode[field] = (0, _generated.isFile)(node) && field === "comments" ? maybeCloneComments(node.comments, deep, withoutLoc, commentsCache) : cloneIfNodeOrArray(node[field], true, withoutLoc, commentsCache); } else { newNode[field] = node[field]; } @@ -69,15 +73,15 @@ function cloneNode(node, deep = true, withoutLoc = false) { } if (has(node, "leadingComments")) { - newNode.leadingComments = maybeCloneComments(node.leadingComments, deep, withoutLoc); + newNode.leadingComments = maybeCloneComments(node.leadingComments, deep, withoutLoc, commentsCache); } if (has(node, "innerComments")) { - newNode.innerComments = maybeCloneComments(node.innerComments, deep, withoutLoc); + newNode.innerComments = maybeCloneComments(node.innerComments, deep, withoutLoc, commentsCache); } if (has(node, "trailingComments")) { - newNode.trailingComments = maybeCloneComments(node.trailingComments, deep, withoutLoc); + newNode.trailingComments = maybeCloneComments(node.trailingComments, deep, withoutLoc, commentsCache); } if (has(node, "extra")) { @@ -87,28 +91,30 @@ function cloneNode(node, deep = true, withoutLoc = false) { return newNode; } -function maybeCloneComments(comments, deep, withoutLoc) { +function maybeCloneComments(comments, deep, withoutLoc, commentsCache) { if (!comments || !deep) { return comments; } - return comments.map(({ - type, - value, - loc - }) => { - if (withoutLoc) { - return { - type, - value, - loc: null - }; - } - - return { + return comments.map(comment => { + const cache = commentsCache.get(comment); + if (cache) return cache; + const { + type, + value, + loc + } = comment; + const ret = { type, value, loc }; + + if (withoutLoc) { + ret.loc = null; + } + + commentsCache.set(comment, ret); + return ret; }); } \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/constants/index.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/constants/index.js index 3caa4387998e60..0199ec4c0c647e 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/constants/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/constants/index.js @@ -26,7 +26,7 @@ const BOOLEAN_BINARY_OPERATORS = [...COMPARISON_BINARY_OPERATORS, ...BOOLEAN_NUM exports.BOOLEAN_BINARY_OPERATORS = BOOLEAN_BINARY_OPERATORS; const NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"]; exports.NUMBER_BINARY_OPERATORS = NUMBER_BINARY_OPERATORS; -const BINARY_OPERATORS = ["+", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS]; +const BINARY_OPERATORS = ["+", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS, "|>"]; exports.BINARY_OPERATORS = BINARY_OPERATORS; const ASSIGNMENT_OPERATORS = ["=", "+=", ...NUMBER_BINARY_OPERATORS.map(op => op + "="), ...LOGICAL_OPERATORS.map(op => op + "=")]; exports.ASSIGNMENT_OPERATORS = ASSIGNMENT_OPERATORS; diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/core.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/core.js index 1c46733926b80c..285fcfeffabe04 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/core.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/core.js @@ -43,7 +43,7 @@ defineType("AssignmentExpression", { }() }, left: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern") + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSTypeAssertion", "TSNonNullExpression") }, right: { validate: (0, _utils.assertNodeType)("Expression") @@ -248,7 +248,7 @@ defineType("ForInStatement", { aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], fields: { left: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("VariableDeclaration", "LVal") : (0, _utils.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern") + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("VariableDeclaration", "LVal") : (0, _utils.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSTypeAssertion", "TSNonNullExpression") }, right: { validate: (0, _utils.assertNodeType)("Expression") @@ -319,6 +319,10 @@ defineType("FunctionDeclaration", { fields: Object.assign({}, functionDeclarationCommon, functionTypeAnnotationCommon, { body: { validate: (0, _utils.assertNodeType)("BlockStatement") + }, + predicate: { + validate: (0, _utils.assertNodeType)("DeclaredPredicate", "InferredPredicate"), + optional: true } }), aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"], @@ -342,6 +346,10 @@ defineType("FunctionExpression", { }, body: { validate: (0, _utils.assertNodeType)("BlockStatement") + }, + predicate: { + validate: (0, _utils.assertNodeType)("DeclaredPredicate", "InferredPredicate"), + optional: true } }) }); @@ -622,7 +630,7 @@ defineType("ObjectProperty", { }, key: { validate: function () { - const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral"); + const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"); const computed = (0, _utils.assertNodeType)("Expression"); const validator = function (node, key, val) { @@ -630,7 +638,7 @@ defineType("ObjectProperty", { validator(node, key, val); }; - validator.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral"]; + validator.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral", "DecimalLiteral", "PrivateName"]; return validator; }() }, @@ -663,7 +671,7 @@ defineType("ObjectProperty", { visitor: ["key", "value", "decorators"], aliases: ["UserWhitespacable", "Property", "ObjectMember"], validate: function () { - const pattern = (0, _utils.assertNodeType)("Identifier", "Pattern"); + const pattern = (0, _utils.assertNodeType)("Identifier", "Pattern", "TSAsExpression", "TSNonNullExpression", "TSTypeAssertion"); const expression = (0, _utils.assertNodeType)("Expression"); return function (parent, key, node) { if (!process.env.BABEL_TYPES_8_BREAKING) return; @@ -679,7 +687,7 @@ defineType("RestElement", { deprecatedAlias: "RestProperty", fields: Object.assign({}, patternLikeCommon, { argument: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpression") + validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpression", "TSAsExpression", "TSTypeAssertion", "TSNonNullExpression") }, optional: { validate: (0, _utils.assertValueType)("boolean"), @@ -906,7 +914,7 @@ defineType("AssignmentPattern", { aliases: ["Pattern", "PatternLike", "LVal"], fields: Object.assign({}, patternLikeCommon, { left: { - validate: (0, _utils.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression") + validate: (0, _utils.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression", "TSAsExpression", "TSTypeAssertion", "TSNonNullExpression") }, right: { validate: (0, _utils.assertNodeType)("Expression") @@ -945,6 +953,10 @@ defineType("ArrowFunctionExpression", { }, body: { validate: (0, _utils.assertNodeType)("BlockStatement", "Expression") + }, + predicate: { + validate: (0, _utils.assertNodeType)("DeclaredPredicate", "InferredPredicate"), + optional: true } }) }); @@ -1067,7 +1079,7 @@ defineType("ExportDefaultDeclaration", { aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], fields: { declaration: { - validate: (0, _utils.assertNodeType)("FunctionDeclaration", "TSDeclareFunction", "ClassDeclaration", "Expression") + validate: (0, _utils.assertNodeType)("FunctionDeclaration", "ClassDeclaration", "Expression") }, exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("value")) } @@ -1145,7 +1157,7 @@ defineType("ForOfStatement", { } const declaration = (0, _utils.assertNodeType)("VariableDeclaration"); - const lval = (0, _utils.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern"); + const lval = (0, _utils.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern", "TSAsExpression", "TSTypeAssertion", "TSNonNullExpression"); return function (node, key, val) { if ((0, _is.default)("VariableDeclaration", val)) { declaration(node, key, val); diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/flow.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/flow.js index 706de242523ec7..5bf3b1fb8368eb 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/flow.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/flow.js @@ -213,9 +213,21 @@ defineType("ObjectTypeAnnotation", { builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"], fields: { properties: (0, _utils.validate)((0, _utils.arrayOfType)(["ObjectTypeProperty", "ObjectTypeSpreadProperty"])), - indexers: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ObjectTypeIndexer")), - callProperties: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ObjectTypeCallProperty")), - internalSlots: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ObjectTypeInternalSlot")), + indexers: { + validate: (0, _utils.arrayOfType)("ObjectTypeIndexer"), + optional: true, + default: [] + }, + callProperties: { + validate: (0, _utils.arrayOfType)("ObjectTypeCallProperty"), + optional: true, + default: [] + }, + internalSlots: { + validate: (0, _utils.arrayOfType)("ObjectTypeInternalSlot"), + optional: true, + default: [] + }, exact: { validate: (0, _utils.assertValueType)("boolean"), default: false diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/jsx.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/jsx.js index 4d7fb75f722781..9754fa4e999d88 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/jsx.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/jsx.js @@ -29,7 +29,7 @@ defineType("JSXElement", { builder: ["openingElement", "closingElement", "children", "selfClosing"], visitor: ["openingElement", "children", "closingElement"], aliases: ["Immutable", "Expression"], - fields: { + fields: Object.assign({ openingElement: { validate: (0, _utils.assertNodeType)("JSXOpeningElement") }, @@ -39,12 +39,13 @@ defineType("JSXElement", { }, children: { validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment"))) - }, + } + }, { selfClosing: { validate: (0, _utils.assertValueType)("boolean"), optional: true } - } + }) }); defineType("JSXEmptyExpression", {}); defineType("JSXExpressionContainer", { diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/typescript.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/typescript.js index 3f4382a695c372..38dbbe12a6d429 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/typescript.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/definitions/typescript.js @@ -155,9 +155,10 @@ defineType("TSTypePredicate", { }); defineType("TSTypeQuery", { aliases: ["TSType"], - visitor: ["exprName"], + visitor: ["exprName", "typeParameters"], fields: { - exprName: (0, _utils.validateType)(["TSEntityName", "TSImportType"]) + exprName: (0, _utils.validateType)(["TSEntityName", "TSImportType"]), + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") } }); defineType("TSTypeLiteral", { @@ -327,8 +328,16 @@ defineType("TSTypeAliasDeclaration", { typeAnnotation: (0, _utils.validateType)("TSType") } }); -defineType("TSAsExpression", { +defineType("TSInstantiationExpression", { aliases: ["Expression"], + visitor: ["expression", "typeParameters"], + fields: { + expression: (0, _utils.validateType)("Expression"), + typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") + } +}); +defineType("TSAsExpression", { + aliases: ["Expression", "LVal", "PatternLike"], visitor: ["expression", "typeAnnotation"], fields: { expression: (0, _utils.validateType)("Expression"), @@ -336,7 +345,7 @@ defineType("TSAsExpression", { } }); defineType("TSTypeAssertion", { - aliases: ["Expression"], + aliases: ["Expression", "LVal", "PatternLike"], visitor: ["typeAnnotation", "expression"], fields: { typeAnnotation: (0, _utils.validateType)("TSType"), @@ -407,7 +416,7 @@ defineType("TSExternalModuleReference", { } }); defineType("TSNonNullExpression", { - aliases: ["Expression"], + aliases: ["Expression", "LVal", "PatternLike"], visitor: ["expression"], fields: { expression: (0, _utils.validateType)("Expression") @@ -458,6 +467,14 @@ defineType("TSTypeParameter", { name: { validate: (0, _utils.assertValueType)("string") }, + in: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, + out: { + validate: (0, _utils.assertValueType)("boolean"), + optional: true + }, constraint: { validate: (0, _utils.assertNodeType)("TSType"), optional: true diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js.flow b/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js.flow index 331add0f3c81d2..9ba004a71a5264 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js.flow +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/index.js.flow @@ -52,7 +52,7 @@ declare class BabelNodeAssignmentExpression extends BabelNode { declare class BabelNodeBinaryExpression extends BabelNode { type: "BinaryExpression"; - operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<="; + operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=" | "|>"; left: BabelNodeExpression | BabelNodePrivateName; right: BabelNodeExpression; } @@ -159,6 +159,7 @@ declare class BabelNodeFunctionDeclaration extends BabelNode { generator?: boolean; async?: boolean; declare?: boolean; + predicate?: BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } @@ -170,6 +171,7 @@ declare class BabelNodeFunctionExpression extends BabelNode { body: BabelNodeBlockStatement; generator?: boolean; async?: boolean; + predicate?: BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } @@ -274,7 +276,7 @@ declare class BabelNodeObjectMethod extends BabelNode { declare class BabelNodeObjectProperty extends BabelNode { type: "ObjectProperty"; - key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral; + key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeDecimalLiteral | BabelNodePrivateName; value: BabelNodeExpression | BabelNodePatternLike; computed?: boolean; shorthand?: boolean; @@ -374,7 +376,7 @@ declare class BabelNodeWithStatement extends BabelNode { declare class BabelNodeAssignmentPattern extends BabelNode { type: "AssignmentPattern"; - left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern | BabelNodeMemberExpression; + left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern | BabelNodeMemberExpression | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; right: BabelNodeExpression; decorators?: Array; typeAnnotation?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; @@ -395,6 +397,7 @@ declare class BabelNodeArrowFunctionExpression extends BabelNode { async?: boolean; expression: boolean; generator?: boolean; + predicate?: BabelNodeDeclaredPredicate | BabelNodeInferredPredicate; returnType?: BabelNodeTypeAnnotation | BabelNodeTSTypeAnnotation | BabelNodeNoop; typeParameters?: BabelNodeTypeParameterDeclaration | BabelNodeTSTypeParameterDeclaration | BabelNodeNoop; } @@ -437,7 +440,7 @@ declare class BabelNodeExportAllDeclaration extends BabelNode { declare class BabelNodeExportDefaultDeclaration extends BabelNode { type: "ExportDefaultDeclaration"; - declaration: BabelNodeFunctionDeclaration | BabelNodeTSDeclareFunction | BabelNodeClassDeclaration | BabelNodeExpression; + declaration: BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression; exportKind?: "value"; } @@ -1388,6 +1391,7 @@ declare class BabelNodeTSTypePredicate extends BabelNode { declare class BabelNodeTSTypeQuery extends BabelNode { type: "TSTypeQuery"; exprName: BabelNodeTSEntityName | BabelNodeTSImportType; + typeParameters?: BabelNodeTSTypeParameterInstantiation; } declare class BabelNodeTSTypeLiteral extends BabelNode { @@ -1503,6 +1507,12 @@ declare class BabelNodeTSTypeAliasDeclaration extends BabelNode { declare?: boolean; } +declare class BabelNodeTSInstantiationExpression extends BabelNode { + type: "TSInstantiationExpression"; + expression: BabelNodeExpression; + typeParameters?: BabelNodeTSTypeParameterInstantiation; +} + declare class BabelNodeTSAsExpression extends BabelNode { type: "TSAsExpression"; expression: BabelNodeExpression; @@ -1596,10 +1606,11 @@ declare class BabelNodeTSTypeParameter extends BabelNode { type: "TSTypeParameter"; constraint?: BabelNodeTSType; name: string; + out?: boolean; } type BabelNodeStandardized = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeInterpreterDirective | BabelNodeDirective | BabelNodeDirectiveLiteral | BabelNodeBlockStatement | BabelNodeBreakStatement | BabelNodeCallExpression | BabelNodeCatchClause | BabelNodeConditionalExpression | BabelNodeContinueStatement | BabelNodeDebuggerStatement | BabelNodeDoWhileStatement | BabelNodeEmptyStatement | BabelNodeExpressionStatement | BabelNodeFile | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeIfStatement | BabelNodeLabeledStatement | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeProgram | BabelNodeObjectExpression | BabelNodeObjectMethod | BabelNodeObjectProperty | BabelNodeRestElement | BabelNodeReturnStatement | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeSwitchCase | BabelNodeSwitchStatement | BabelNodeThisExpression | BabelNodeThrowStatement | BabelNodeTryStatement | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeVariableDeclaration | BabelNodeVariableDeclarator | BabelNodeWhileStatement | BabelNodeWithStatement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeArrowFunctionExpression | BabelNodeClassBody | BabelNodeClassExpression | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeExportSpecifier | BabelNodeForOfStatement | BabelNodeImportDeclaration | BabelNodeImportDefaultSpecifier | BabelNodeImportNamespaceSpecifier | BabelNodeImportSpecifier | BabelNodeMetaProperty | BabelNodeClassMethod | BabelNodeObjectPattern | BabelNodeSpreadElement | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateElement | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeExportNamespaceSpecifier | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeClassProperty | BabelNodeClassAccessorProperty | BabelNodeClassPrivateProperty | BabelNodeClassPrivateMethod | BabelNodePrivateName | BabelNodeStaticBlock; -type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeBindExpression | BabelNodeDoExpression | BabelNodeRecordExpression | BabelNodeTupleExpression | BabelNodeDecimalLiteral | BabelNodeModuleExpression | BabelNodeTopicReference | BabelNodePipelineTopicExpression | BabelNodePipelineBareFunction | BabelNodePipelinePrimaryTopicReference | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; +type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeParenthesizedExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeAwaitExpression | BabelNodeImport | BabelNodeBigIntLiteral | BabelNodeOptionalMemberExpression | BabelNodeOptionalCallExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeBindExpression | BabelNodeDoExpression | BabelNodeRecordExpression | BabelNodeTupleExpression | BabelNodeDecimalLiteral | BabelNodeModuleExpression | BabelNodeTopicReference | BabelNodePipelineTopicExpression | BabelNodePipelineBareFunction | BabelNodePipelinePrimaryTopicReference | BabelNodeTSInstantiationExpression | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; type BabelNodeBinary = BabelNodeBinaryExpression | BabelNodeLogicalExpression; type BabelNodeScopable = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeClassDeclaration | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeClassPrivateMethod | BabelNodeStaticBlock | BabelNodeTSModuleBlock; type BabelNodeBlockParent = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeForOfStatement | BabelNodeClassMethod | BabelNodeClassPrivateMethod | BabelNodeStaticBlock | BabelNodeTSModuleBlock; @@ -1617,8 +1628,8 @@ type BabelNodeFunction = BabelNodeFunctionDeclaration | BabelNodeFunctionExpress type BabelNodeFunctionParent = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeObjectMethod | BabelNodeArrowFunctionExpression | BabelNodeClassMethod | BabelNodeClassPrivateMethod | BabelNodeStaticBlock; type BabelNodePureish = BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeArrowFunctionExpression | BabelNodeBigIntLiteral | BabelNodeDecimalLiteral; type BabelNodeDeclaration = BabelNodeFunctionDeclaration | BabelNodeVariableDeclaration | BabelNodeClassDeclaration | BabelNodeExportAllDeclaration | BabelNodeExportDefaultDeclaration | BabelNodeExportNamedDeclaration | BabelNodeImportDeclaration | BabelNodeDeclareClass | BabelNodeDeclareFunction | BabelNodeDeclareInterface | BabelNodeDeclareModule | BabelNodeDeclareModuleExports | BabelNodeDeclareTypeAlias | BabelNodeDeclareOpaqueType | BabelNodeDeclareVariable | BabelNodeDeclareExportDeclaration | BabelNodeDeclareExportAllDeclaration | BabelNodeInterfaceDeclaration | BabelNodeOpaqueType | BabelNodeTypeAlias | BabelNodeEnumDeclaration | BabelNodeTSDeclareFunction | BabelNodeTSInterfaceDeclaration | BabelNodeTSTypeAliasDeclaration | BabelNodeTSEnumDeclaration | BabelNodeTSModuleDeclaration; -type BabelNodePatternLike = BabelNodeIdentifier | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern; -type BabelNodeLVal = BabelNodeIdentifier | BabelNodeMemberExpression | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern | BabelNodeTSParameterProperty; +type BabelNodePatternLike = BabelNodeIdentifier | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; +type BabelNodeLVal = BabelNodeIdentifier | BabelNodeMemberExpression | BabelNodeRestElement | BabelNodeAssignmentPattern | BabelNodeArrayPattern | BabelNodeObjectPattern | BabelNodeTSParameterProperty | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression; type BabelNodeTSEntityName = BabelNodeIdentifier | BabelNodeTSQualifiedName; type BabelNodeLiteral = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeTemplateLiteral | BabelNodeBigIntLiteral | BabelNodeDecimalLiteral; type BabelNodeImmutable = BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeBigIntLiteral | BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXOpeningElement | BabelNodeJSXText | BabelNodeJSXFragment | BabelNodeJSXOpeningFragment | BabelNodeJSXClosingFragment | BabelNodeDecimalLiteral; @@ -1643,7 +1654,7 @@ type BabelNodeEnumBody = BabelNodeEnumBooleanBody | BabelNodeEnumNumberBody | Ba type BabelNodeEnumMember = BabelNodeEnumBooleanMember | BabelNodeEnumNumberMember | BabelNodeEnumStringMember | BabelNodeEnumDefaultedMember; type BabelNodeJSX = BabelNodeJSXAttribute | BabelNodeJSXClosingElement | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXExpressionContainer | BabelNodeJSXSpreadChild | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXNamespacedName | BabelNodeJSXOpeningElement | BabelNodeJSXSpreadAttribute | BabelNodeJSXText | BabelNodeJSXFragment | BabelNodeJSXOpeningFragment | BabelNodeJSXClosingFragment; type BabelNodeMiscellaneous = BabelNodeNoop | BabelNodePlaceholder | BabelNodeV8IntrinsicIdentifier; -type BabelNodeTypeScript = BabelNodeTSParameterProperty | BabelNodeTSDeclareFunction | BabelNodeTSDeclareMethod | BabelNodeTSQualifiedName | BabelNodeTSCallSignatureDeclaration | BabelNodeTSConstructSignatureDeclaration | BabelNodeTSPropertySignature | BabelNodeTSMethodSignature | BabelNodeTSIndexSignature | BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSBigIntKeyword | BabelNodeTSIntrinsicKeyword | BabelNodeTSNeverKeyword | BabelNodeTSNullKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSUnknownKeyword | BabelNodeTSVoidKeyword | BabelNodeTSThisType | BabelNodeTSFunctionType | BabelNodeTSConstructorType | BabelNodeTSTypeReference | BabelNodeTSTypePredicate | BabelNodeTSTypeQuery | BabelNodeTSTypeLiteral | BabelNodeTSArrayType | BabelNodeTSTupleType | BabelNodeTSOptionalType | BabelNodeTSRestType | BabelNodeTSNamedTupleMember | BabelNodeTSUnionType | BabelNodeTSIntersectionType | BabelNodeTSConditionalType | BabelNodeTSInferType | BabelNodeTSParenthesizedType | BabelNodeTSTypeOperator | BabelNodeTSIndexedAccessType | BabelNodeTSMappedType | BabelNodeTSLiteralType | BabelNodeTSExpressionWithTypeArguments | BabelNodeTSInterfaceDeclaration | BabelNodeTSInterfaceBody | BabelNodeTSTypeAliasDeclaration | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSEnumDeclaration | BabelNodeTSEnumMember | BabelNodeTSModuleDeclaration | BabelNodeTSModuleBlock | BabelNodeTSImportType | BabelNodeTSImportEqualsDeclaration | BabelNodeTSExternalModuleReference | BabelNodeTSNonNullExpression | BabelNodeTSExportAssignment | BabelNodeTSNamespaceExportDeclaration | BabelNodeTSTypeAnnotation | BabelNodeTSTypeParameterInstantiation | BabelNodeTSTypeParameterDeclaration | BabelNodeTSTypeParameter; +type BabelNodeTypeScript = BabelNodeTSParameterProperty | BabelNodeTSDeclareFunction | BabelNodeTSDeclareMethod | BabelNodeTSQualifiedName | BabelNodeTSCallSignatureDeclaration | BabelNodeTSConstructSignatureDeclaration | BabelNodeTSPropertySignature | BabelNodeTSMethodSignature | BabelNodeTSIndexSignature | BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSBigIntKeyword | BabelNodeTSIntrinsicKeyword | BabelNodeTSNeverKeyword | BabelNodeTSNullKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSUnknownKeyword | BabelNodeTSVoidKeyword | BabelNodeTSThisType | BabelNodeTSFunctionType | BabelNodeTSConstructorType | BabelNodeTSTypeReference | BabelNodeTSTypePredicate | BabelNodeTSTypeQuery | BabelNodeTSTypeLiteral | BabelNodeTSArrayType | BabelNodeTSTupleType | BabelNodeTSOptionalType | BabelNodeTSRestType | BabelNodeTSNamedTupleMember | BabelNodeTSUnionType | BabelNodeTSIntersectionType | BabelNodeTSConditionalType | BabelNodeTSInferType | BabelNodeTSParenthesizedType | BabelNodeTSTypeOperator | BabelNodeTSIndexedAccessType | BabelNodeTSMappedType | BabelNodeTSLiteralType | BabelNodeTSExpressionWithTypeArguments | BabelNodeTSInterfaceDeclaration | BabelNodeTSInterfaceBody | BabelNodeTSTypeAliasDeclaration | BabelNodeTSInstantiationExpression | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSEnumDeclaration | BabelNodeTSEnumMember | BabelNodeTSModuleDeclaration | BabelNodeTSModuleBlock | BabelNodeTSImportType | BabelNodeTSImportEqualsDeclaration | BabelNodeTSExternalModuleReference | BabelNodeTSNonNullExpression | BabelNodeTSExportAssignment | BabelNodeTSNamespaceExportDeclaration | BabelNodeTSTypeAnnotation | BabelNodeTSTypeParameterInstantiation | BabelNodeTSTypeParameterDeclaration | BabelNodeTSTypeParameter; type BabelNodeTSTypeElement = BabelNodeTSCallSignatureDeclaration | BabelNodeTSConstructSignatureDeclaration | BabelNodeTSPropertySignature | BabelNodeTSMethodSignature | BabelNodeTSIndexSignature; type BabelNodeTSType = BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSBigIntKeyword | BabelNodeTSIntrinsicKeyword | BabelNodeTSNeverKeyword | BabelNodeTSNullKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSUnknownKeyword | BabelNodeTSVoidKeyword | BabelNodeTSThisType | BabelNodeTSFunctionType | BabelNodeTSConstructorType | BabelNodeTSTypeReference | BabelNodeTSTypePredicate | BabelNodeTSTypeQuery | BabelNodeTSTypeLiteral | BabelNodeTSArrayType | BabelNodeTSTupleType | BabelNodeTSOptionalType | BabelNodeTSRestType | BabelNodeTSUnionType | BabelNodeTSIntersectionType | BabelNodeTSConditionalType | BabelNodeTSInferType | BabelNodeTSParenthesizedType | BabelNodeTSTypeOperator | BabelNodeTSIndexedAccessType | BabelNodeTSMappedType | BabelNodeTSLiteralType | BabelNodeTSExpressionWithTypeArguments | BabelNodeTSImportType; type BabelNodeTSBaseType = BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | BabelNodeTSBigIntKeyword | BabelNodeTSIntrinsicKeyword | BabelNodeTSNeverKeyword | BabelNodeTSNullKeyword | BabelNodeTSNumberKeyword | BabelNodeTSObjectKeyword | BabelNodeTSStringKeyword | BabelNodeTSSymbolKeyword | BabelNodeTSUndefinedKeyword | BabelNodeTSUnknownKeyword | BabelNodeTSVoidKeyword | BabelNodeTSThisType | BabelNodeTSLiteralType; @@ -1651,7 +1662,7 @@ type BabelNodeTSBaseType = BabelNodeTSAnyKeyword | BabelNodeTSBooleanKeyword | B declare module "@babel/types" { declare export function arrayExpression(elements?: Array): BabelNodeArrayExpression; declare export function assignmentExpression(operator: string, left: BabelNodeLVal, right: BabelNodeExpression): BabelNodeAssignmentExpression; - declare export function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=", left: BabelNodeExpression | BabelNodePrivateName, right: BabelNodeExpression): BabelNodeBinaryExpression; + declare export function binaryExpression(operator: "+" | "-" | "/" | "%" | "*" | "**" | "&" | "|" | ">>" | ">>>" | "<<" | "^" | "==" | "===" | "!=" | "!==" | "in" | "instanceof" | ">" | "<" | ">=" | "<=" | "|>", left: BabelNodeExpression | BabelNodePrivateName, right: BabelNodeExpression): BabelNodeBinaryExpression; declare export function interpreterDirective(value: string): BabelNodeInterpreterDirective; declare export function directive(value: BabelNodeDirectiveLiteral): BabelNodeDirective; declare export function directiveLiteral(value: string): BabelNodeDirectiveLiteral; @@ -1684,7 +1695,7 @@ declare module "@babel/types" { declare export function program(body: Array, directives?: Array, sourceType?: "script" | "module", interpreter?: BabelNodeInterpreterDirective): BabelNodeProgram; declare export function objectExpression(properties: Array): BabelNodeObjectExpression; declare export function objectMethod(kind?: "method" | "get" | "set", key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral, params: Array, body: BabelNodeBlockStatement, computed?: boolean, generator?: boolean, async?: boolean): BabelNodeObjectMethod; - declare export function objectProperty(key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral, value: BabelNodeExpression | BabelNodePatternLike, computed?: boolean, shorthand?: boolean, decorators?: Array): BabelNodeObjectProperty; + declare export function objectProperty(key: BabelNodeExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeBigIntLiteral | BabelNodeDecimalLiteral | BabelNodePrivateName, value: BabelNodeExpression | BabelNodePatternLike, computed?: boolean, shorthand?: boolean, decorators?: Array): BabelNodeObjectProperty; declare export function restElement(argument: BabelNodeLVal): BabelNodeRestElement; declare export function returnStatement(argument?: BabelNodeExpression): BabelNodeReturnStatement; declare export function sequenceExpression(expressions: Array): BabelNodeSequenceExpression; @@ -1700,14 +1711,14 @@ declare module "@babel/types" { declare export function variableDeclarator(id: BabelNodeLVal, init?: BabelNodeExpression): BabelNodeVariableDeclarator; declare export function whileStatement(test: BabelNodeExpression, body: BabelNodeStatement): BabelNodeWhileStatement; declare export function withStatement(object: BabelNodeExpression, body: BabelNodeStatement): BabelNodeWithStatement; - declare export function assignmentPattern(left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern | BabelNodeMemberExpression, right: BabelNodeExpression): BabelNodeAssignmentPattern; + declare export function assignmentPattern(left: BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeArrayPattern | BabelNodeMemberExpression | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression, right: BabelNodeExpression): BabelNodeAssignmentPattern; declare export function arrayPattern(elements: Array): BabelNodeArrayPattern; declare export function arrowFunctionExpression(params: Array, body: BabelNodeBlockStatement | BabelNodeExpression, async?: boolean): BabelNodeArrowFunctionExpression; declare export function classBody(body: Array): BabelNodeClassBody; declare export function classExpression(id?: BabelNodeIdentifier, superClass?: BabelNodeExpression, body: BabelNodeClassBody, decorators?: Array): BabelNodeClassExpression; declare export function classDeclaration(id: BabelNodeIdentifier, superClass?: BabelNodeExpression, body: BabelNodeClassBody, decorators?: Array): BabelNodeClassDeclaration; declare export function exportAllDeclaration(source: BabelNodeStringLiteral): BabelNodeExportAllDeclaration; - declare export function exportDefaultDeclaration(declaration: BabelNodeFunctionDeclaration | BabelNodeTSDeclareFunction | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration; + declare export function exportDefaultDeclaration(declaration: BabelNodeFunctionDeclaration | BabelNodeClassDeclaration | BabelNodeExpression): BabelNodeExportDefaultDeclaration; declare export function exportNamedDeclaration(declaration?: BabelNodeDeclaration, specifiers?: Array, source?: BabelNodeStringLiteral): BabelNodeExportNamedDeclaration; declare export function exportSpecifier(local: BabelNodeIdentifier, exported: BabelNodeIdentifier | BabelNodeStringLiteral): BabelNodeExportSpecifier; declare export function forOfStatement(left: BabelNodeVariableDeclaration | BabelNodeLVal, right: BabelNodeExpression, body: BabelNodeStatement, _await?: boolean): BabelNodeForOfStatement; @@ -1862,7 +1873,7 @@ declare module "@babel/types" { declare export function tsConstructorType(typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters: Array, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSConstructorType; declare export function tsTypeReference(typeName: BabelNodeTSEntityName, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSTypeReference; declare export function tsTypePredicate(parameterName: BabelNodeIdentifier | BabelNodeTSThisType, typeAnnotation?: BabelNodeTSTypeAnnotation, asserts?: boolean): BabelNodeTSTypePredicate; - declare export function tsTypeQuery(exprName: BabelNodeTSEntityName | BabelNodeTSImportType): BabelNodeTSTypeQuery; + declare export function tsTypeQuery(exprName: BabelNodeTSEntityName | BabelNodeTSImportType, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSTypeQuery; declare export function tsTypeLiteral(members: Array): BabelNodeTSTypeLiteral; declare export function tsArrayType(elementType: BabelNodeTSType): BabelNodeTSArrayType; declare export function tsTupleType(elementTypes: Array): BabelNodeTSTupleType; @@ -1882,6 +1893,7 @@ declare module "@babel/types" { declare export function tsInterfaceDeclaration(id: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration, _extends?: Array, body: BabelNodeTSInterfaceBody): BabelNodeTSInterfaceDeclaration; declare export function tsInterfaceBody(body: Array): BabelNodeTSInterfaceBody; declare export function tsTypeAliasDeclaration(id: BabelNodeIdentifier, typeParameters?: BabelNodeTSTypeParameterDeclaration, typeAnnotation: BabelNodeTSType): BabelNodeTSTypeAliasDeclaration; + declare export function tsInstantiationExpression(expression: BabelNodeExpression, typeParameters?: BabelNodeTSTypeParameterInstantiation): BabelNodeTSInstantiationExpression; declare export function tsAsExpression(expression: BabelNodeExpression, typeAnnotation: BabelNodeTSType): BabelNodeTSAsExpression; declare export function tsTypeAssertion(typeAnnotation: BabelNodeTSType, expression: BabelNodeExpression): BabelNodeTSTypeAssertion; declare export function tsEnumDeclaration(id: BabelNodeIdentifier, members: Array): BabelNodeTSEnumDeclaration; @@ -2360,6 +2372,8 @@ declare module "@babel/types" { declare export function assertTSInterfaceBody(node: ?Object, opts?: ?Object): void declare export function isTSTypeAliasDeclaration(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeAliasDeclaration) declare export function assertTSTypeAliasDeclaration(node: ?Object, opts?: ?Object): void + declare export function isTSInstantiationExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSInstantiationExpression) + declare export function assertTSInstantiationExpression(node: ?Object, opts?: ?Object): void declare export function isTSAsExpression(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSAsExpression) declare export function assertTSAsExpression(node: ?Object, opts?: ?Object): void declare export function isTSTypeAssertion(node: ?Object, opts?: ?Object): boolean %checks (node instanceof BabelNodeTSTypeAssertion) diff --git a/tools/node_modules/eslint/node_modules/@babel/types/lib/validators/generated/index.js b/tools/node_modules/eslint/node_modules/@babel/types/lib/validators/generated/index.js index f2956ec0120fff..f175aa495033c1 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/lib/validators/generated/index.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/lib/validators/generated/index.js @@ -227,6 +227,7 @@ exports.isTSImportType = isTSImportType; exports.isTSIndexSignature = isTSIndexSignature; exports.isTSIndexedAccessType = isTSIndexedAccessType; exports.isTSInferType = isTSInferType; +exports.isTSInstantiationExpression = isTSInstantiationExpression; exports.isTSInterfaceBody = isTSInterfaceBody; exports.isTSInterfaceDeclaration = isTSInterfaceDeclaration; exports.isTSIntersectionType = isTSIntersectionType; @@ -3771,6 +3772,21 @@ function isTSTypeAliasDeclaration(node, opts) { return false; } +function isTSInstantiationExpression(node, opts) { + if (!node) return false; + const nodeType = node.type; + + if (nodeType === "TSInstantiationExpression") { + if (typeof opts === "undefined") { + return true; + } else { + return (0, _shallowEqual.default)(node, opts); + } + } + + return false; +} + function isTSAsExpression(node, opts) { if (!node) return false; const nodeType = node.type; @@ -4030,7 +4046,7 @@ function isExpression(node, opts) { if (!node) return false; const nodeType = node.type; - if ("ArrayExpression" === nodeType || "AssignmentExpression" === nodeType || "BinaryExpression" === nodeType || "CallExpression" === nodeType || "ConditionalExpression" === nodeType || "FunctionExpression" === nodeType || "Identifier" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "LogicalExpression" === nodeType || "MemberExpression" === nodeType || "NewExpression" === nodeType || "ObjectExpression" === nodeType || "SequenceExpression" === nodeType || "ParenthesizedExpression" === nodeType || "ThisExpression" === nodeType || "UnaryExpression" === nodeType || "UpdateExpression" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassExpression" === nodeType || "MetaProperty" === nodeType || "Super" === nodeType || "TaggedTemplateExpression" === nodeType || "TemplateLiteral" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType || "Import" === nodeType || "BigIntLiteral" === nodeType || "OptionalMemberExpression" === nodeType || "OptionalCallExpression" === nodeType || "TypeCastExpression" === nodeType || "JSXElement" === nodeType || "JSXFragment" === nodeType || "BindExpression" === nodeType || "DoExpression" === nodeType || "RecordExpression" === nodeType || "TupleExpression" === nodeType || "DecimalLiteral" === nodeType || "ModuleExpression" === nodeType || "TopicReference" === nodeType || "PipelineTopicExpression" === nodeType || "PipelineBareFunction" === nodeType || "PipelinePrimaryTopicReference" === nodeType || "TSAsExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Expression" === node.expectedNode || "Identifier" === node.expectedNode || "StringLiteral" === node.expectedNode)) { + if ("ArrayExpression" === nodeType || "AssignmentExpression" === nodeType || "BinaryExpression" === nodeType || "CallExpression" === nodeType || "ConditionalExpression" === nodeType || "FunctionExpression" === nodeType || "Identifier" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "LogicalExpression" === nodeType || "MemberExpression" === nodeType || "NewExpression" === nodeType || "ObjectExpression" === nodeType || "SequenceExpression" === nodeType || "ParenthesizedExpression" === nodeType || "ThisExpression" === nodeType || "UnaryExpression" === nodeType || "UpdateExpression" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassExpression" === nodeType || "MetaProperty" === nodeType || "Super" === nodeType || "TaggedTemplateExpression" === nodeType || "TemplateLiteral" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType || "Import" === nodeType || "BigIntLiteral" === nodeType || "OptionalMemberExpression" === nodeType || "OptionalCallExpression" === nodeType || "TypeCastExpression" === nodeType || "JSXElement" === nodeType || "JSXFragment" === nodeType || "BindExpression" === nodeType || "DoExpression" === nodeType || "RecordExpression" === nodeType || "TupleExpression" === nodeType || "DecimalLiteral" === nodeType || "ModuleExpression" === nodeType || "TopicReference" === nodeType || "PipelineTopicExpression" === nodeType || "PipelineBareFunction" === nodeType || "PipelinePrimaryTopicReference" === nodeType || "TSInstantiationExpression" === nodeType || "TSAsExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Expression" === node.expectedNode || "Identifier" === node.expectedNode || "StringLiteral" === node.expectedNode)) { if (typeof opts === "undefined") { return true; } else { @@ -4300,7 +4316,7 @@ function isPatternLike(node, opts) { if (!node) return false; const nodeType = node.type; - if ("Identifier" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { + if ("Identifier" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || "TSAsExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { if (typeof opts === "undefined") { return true; } else { @@ -4315,7 +4331,7 @@ function isLVal(node, opts) { if (!node) return false; const nodeType = node.type; - if ("Identifier" === nodeType || "MemberExpression" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || "TSParameterProperty" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { + if ("Identifier" === nodeType || "MemberExpression" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || "TSParameterProperty" === nodeType || "TSAsExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { if (typeof opts === "undefined") { return true; } else { @@ -4690,7 +4706,7 @@ function isTypeScript(node, opts) { if (!node) return false; const nodeType = node.type; - if ("TSParameterProperty" === nodeType || "TSDeclareFunction" === nodeType || "TSDeclareMethod" === nodeType || "TSQualifiedName" === nodeType || "TSCallSignatureDeclaration" === nodeType || "TSConstructSignatureDeclaration" === nodeType || "TSPropertySignature" === nodeType || "TSMethodSignature" === nodeType || "TSIndexSignature" === nodeType || "TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSFunctionType" === nodeType || "TSConstructorType" === nodeType || "TSTypeReference" === nodeType || "TSTypePredicate" === nodeType || "TSTypeQuery" === nodeType || "TSTypeLiteral" === nodeType || "TSArrayType" === nodeType || "TSTupleType" === nodeType || "TSOptionalType" === nodeType || "TSRestType" === nodeType || "TSNamedTupleMember" === nodeType || "TSUnionType" === nodeType || "TSIntersectionType" === nodeType || "TSConditionalType" === nodeType || "TSInferType" === nodeType || "TSParenthesizedType" === nodeType || "TSTypeOperator" === nodeType || "TSIndexedAccessType" === nodeType || "TSMappedType" === nodeType || "TSLiteralType" === nodeType || "TSExpressionWithTypeArguments" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSInterfaceBody" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSAsExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSEnumDeclaration" === nodeType || "TSEnumMember" === nodeType || "TSModuleDeclaration" === nodeType || "TSModuleBlock" === nodeType || "TSImportType" === nodeType || "TSImportEqualsDeclaration" === nodeType || "TSExternalModuleReference" === nodeType || "TSNonNullExpression" === nodeType || "TSExportAssignment" === nodeType || "TSNamespaceExportDeclaration" === nodeType || "TSTypeAnnotation" === nodeType || "TSTypeParameterInstantiation" === nodeType || "TSTypeParameterDeclaration" === nodeType || "TSTypeParameter" === nodeType) { + if ("TSParameterProperty" === nodeType || "TSDeclareFunction" === nodeType || "TSDeclareMethod" === nodeType || "TSQualifiedName" === nodeType || "TSCallSignatureDeclaration" === nodeType || "TSConstructSignatureDeclaration" === nodeType || "TSPropertySignature" === nodeType || "TSMethodSignature" === nodeType || "TSIndexSignature" === nodeType || "TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSFunctionType" === nodeType || "TSConstructorType" === nodeType || "TSTypeReference" === nodeType || "TSTypePredicate" === nodeType || "TSTypeQuery" === nodeType || "TSTypeLiteral" === nodeType || "TSArrayType" === nodeType || "TSTupleType" === nodeType || "TSOptionalType" === nodeType || "TSRestType" === nodeType || "TSNamedTupleMember" === nodeType || "TSUnionType" === nodeType || "TSIntersectionType" === nodeType || "TSConditionalType" === nodeType || "TSInferType" === nodeType || "TSParenthesizedType" === nodeType || "TSTypeOperator" === nodeType || "TSIndexedAccessType" === nodeType || "TSMappedType" === nodeType || "TSLiteralType" === nodeType || "TSExpressionWithTypeArguments" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSInterfaceBody" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSInstantiationExpression" === nodeType || "TSAsExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSEnumDeclaration" === nodeType || "TSEnumMember" === nodeType || "TSModuleDeclaration" === nodeType || "TSModuleBlock" === nodeType || "TSImportType" === nodeType || "TSImportEqualsDeclaration" === nodeType || "TSExternalModuleReference" === nodeType || "TSNonNullExpression" === nodeType || "TSExportAssignment" === nodeType || "TSNamespaceExportDeclaration" === nodeType || "TSTypeAnnotation" === nodeType || "TSTypeParameterInstantiation" === nodeType || "TSTypeParameterDeclaration" === nodeType || "TSTypeParameter" === nodeType) { if (typeof opts === "undefined") { return true; } else { diff --git a/tools/node_modules/eslint/node_modules/@babel/types/package.json b/tools/node_modules/eslint/node_modules/@babel/types/package.json index bf92dacb575bf8..3fbb85f04afd7d 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/package.json +++ b/tools/node_modules/eslint/node_modules/@babel/types/package.json @@ -1,6 +1,6 @@ { "name": "@babel/types", - "version": "7.17.0", + "version": "7.18.4", "description": "Babel Types is a Lodash-esque utility library for AST nodes", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-types", @@ -28,8 +28,8 @@ "to-fast-properties": "^2.0.0" }, "devDependencies": { - "@babel/generator": "^7.17.0", - "@babel/parser": "^7.17.0", + "@babel/generator": "^7.18.2", + "@babel/parser": "^7.18.4", "chalk": "^4.1.0", "glob": "^7.1.7" }, diff --git a/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/ast-types.js b/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/ast-types.js index 3bf42869f1278d..49b67bba38a8ed 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/ast-types.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/ast-types.js @@ -36,13 +36,13 @@ export interface SourceLocation { } interface BaseNode { - leadingComments: ReadonlyArray | null; - innerComments: ReadonlyArray | null; - trailingComments: ReadonlyArray | null; - start: number | null; - end: number | null; - loc: SourceLocation | null; type: Node["type"]; + leadingComments?: ReadonlyArray | null; + innerComments?: ReadonlyArray | null; + trailingComments?: ReadonlyArray | null; + start?: number | null; + end?: number | null; + loc?: SourceLocation | null; range?: [number, number]; extra?: Record; } diff --git a/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/builders.js b/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/builders.js index 13e772eb43d0bd..0576b8b72ecaf5 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/builders.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/builders.js @@ -51,20 +51,23 @@ function generateBuilderArgs(type) { } if (builderNames.includes(fieldName)) { + const field = definitions.NODE_FIELDS[type][fieldName]; + const def = JSON.stringify(field.default); const bindingIdentifierName = t.toBindingIdentifierName(fieldName); + let arg; if (areAllRemainingFieldsNullable(fieldName, builderNames, fields)) { - args.push( - `${bindingIdentifierName}${ - isNullable(field) ? "?:" : ":" - } ${typeAnnotation}` - ); + arg = `${bindingIdentifierName}${ + isNullable(field) && !def ? "?:" : ":" + } ${typeAnnotation}`; } else { - args.push( - `${bindingIdentifierName}: ${typeAnnotation}${ - isNullable(field) ? " | undefined" : "" - }` - ); + arg = `${bindingIdentifierName}: ${typeAnnotation}${ + isNullable(field) ? " | undefined" : "" + }`; } + if (def !== "null" || isNullable(field)) { + arg += `= ${def}`; + } + args.push(arg); } }); @@ -82,11 +85,8 @@ function generateLowercaseBuilders() { * This file is auto-generated! Do not modify it directly. * To re-generate run 'make build' */ -import builder from "../builder"; +import validateNode from "../validateNode"; import type * as t from "../.."; - -/* eslint-disable @typescript-eslint/no-unused-vars */ - `; const reservedNames = new Set(["super", "import"]); @@ -96,11 +96,39 @@ import type * as t from "../.."; const formatedBuilderNameLocal = reservedNames.has(formatedBuilderName) ? `_${formatedBuilderName}` : formatedBuilderName; + + const fieldNames = sortFieldNames( + Object.keys(definitions.NODE_FIELDS[type]), + type + ); + const builderNames = definitions.BUILDER_KEYS[type]; + const objectFields = [["type", JSON.stringify(type)]]; + fieldNames.forEach(fieldName => { + const field = definitions.NODE_FIELDS[type][fieldName]; + if (builderNames.includes(fieldName)) { + const bindingIdentifierName = t.toBindingIdentifierName(fieldName); + objectFields.push([fieldName, bindingIdentifierName]); + } else if (!field.optional) { + const def = JSON.stringify(field.default); + objectFields.push([fieldName, def]); + } + }); + output += `${ formatedBuilderNameLocal === formatedBuilderName ? "export " : "" - }function ${formatedBuilderNameLocal}(${defArgs.join( - ", " - )}): t.${type} { return builder.apply("${type}", arguments); }\n`; + }function ${formatedBuilderNameLocal}(${defArgs.join(", ")}): t.${type} {`; + + const nodeObjectExpression = `{\n${objectFields + .map(([k, v]) => (k === v ? ` ${k},` : ` ${k}: ${v},`)) + .join("\n")}\n }`; + + if (builderNames.length > 0) { + output += `\n return validateNode(${nodeObjectExpression});`; + } else { + output += `\n return ${nodeObjectExpression};`; + } + output += `\n}\n`; + if (formatedBuilderNameLocal !== formatedBuilderName) { output += `export { ${formatedBuilderNameLocal} as ${formatedBuilderName} };\n`; } @@ -118,10 +146,11 @@ import type * as t from "../.."; Object.keys(definitions.DEPRECATED_KEYS).forEach(type => { const newType = definitions.DEPRECATED_KEYS[type]; const formatedBuilderName = formatBuilderName(type); + const formatedNewBuilderName = formatBuilderName(newType); output += `/** @deprecated */ -function ${type}(${generateBuilderArgs(newType).join(", ")}): t.${type} { +function ${type}(${generateBuilderArgs(newType).join(", ")}) { console.trace("The node type ${type} has been renamed to ${newType}"); - return builder.apply("${type}", arguments); + return ${formatedNewBuilderName}(${t.BUILDER_KEYS[newType].join(", ")}); } export { ${type} as ${formatedBuilderName} };\n`; // This is needed for backwards compatibility. diff --git a/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/docs.js b/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/docs.js index 95e4815fb03f74..eda0feda03e18d 100644 --- a/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/docs.js +++ b/tools/node_modules/eslint/node_modules/@babel/types/scripts/generators/docs.js @@ -176,6 +176,7 @@ function generateMapAliasToNodeTypes() { return result; } const aliasDescriptions = { + Accessor: "Deprecated. Will be removed in Babel 8.", Binary: "A cover of BinaryExpression and LogicalExpression, which share the same AST shape.", Block: "Deprecated. Will be removed in Babel 8.", diff --git a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/dist/index.cjs.cjs b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/dist/index.cjs.cjs index 38d08a8f8f470f..f5708666719128 100644 --- a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/dist/index.cjs.cjs +++ b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/dist/index.cjs.cjs @@ -41,7 +41,7 @@ const stripEncapsulatingBrackets = (container, isArr) => { * delimiter: string, * postDelimiter: string, * rawType: string, - * start: string, + * initial: string, * type: "JsdocTypeLine" * }} JsdocTypeLine */ @@ -51,7 +51,7 @@ const stripEncapsulatingBrackets = (container, isArr) => { * delimiter: string, * description: string, * postDelimiter: string, - * start: string, + * initial: string, * type: "JsdocDescriptionLine" * }} JsdocDescriptionLine */ @@ -61,9 +61,9 @@ const stripEncapsulatingBrackets = (container, isArr) => { * delimiter: string, * description: string, * postDelimiter: string, - * start: string, + * initial: string, * tag: string, - * end: string, + * terminal: string, * type: string, * descriptionLines: JsdocDescriptionLine[], * rawType: string, @@ -77,7 +77,8 @@ const stripEncapsulatingBrackets = (container, isArr) => { * delimiter: string, * description: string, * descriptionLines: JsdocDescriptionLine[], - * end: string, + * initial: string, + * terminal: string, * postDelimiter: string, * lineEnd: string, * type: "JsdocBlock", @@ -137,6 +138,7 @@ const commentParserToESTree = (jsdoc, mode, { delimiter: delimiterRoot, lineEnd: lineEndRoot, postDelimiter: postDelimiterRoot, + start: startRoot, end: endRoot, description: descriptionRoot } @@ -146,8 +148,9 @@ const commentParserToESTree = (jsdoc, mode, { delimiter: delimiterRoot, description: descriptionRoot, descriptionLines: [], - // `end` will be overwritten if there are other entries - end: endRoot, + initial: startRoot, + // `terminal` will be overwritten if there are other entries + terminal: endRoot, endLine, postDelimiter: postDelimiterRoot, lineEnd: lineEndRoot, @@ -164,7 +167,7 @@ const commentParserToESTree = (jsdoc, mode, { delimiter, description, postDelimiter, - start, + start: initial, tag, end, type: rawType @@ -184,7 +187,7 @@ const commentParserToESTree = (jsdoc, mode, { if (end && !tag) { - ast.end = end; + ast.terminal = end; return; } @@ -192,21 +195,29 @@ const commentParserToESTree = (jsdoc, mode, { end: ed, delimiter: de, postDelimiter: pd, + start: init, ...tkns } = tokens; if (!tokens.name) { - let i = 0; + let i = 1; while (source[idx + i]) { const { tokens: { name, - postName + postName, + postType, + tag: tg } } = source[idx + i]; + if (tg) { + break; + } + if (name) { + tkns.postType = postType; tkns.name = name; tkns.postName = postName; break; @@ -217,6 +228,7 @@ const commentParserToESTree = (jsdoc, mode, { } const tagObj = { ...tkns, + initial: endLine ? init : '', postDelimiter: lastDescriptionLine ? pd : '', delimiter: lastDescriptionLine ? de : '', descriptionLines: [], @@ -235,13 +247,13 @@ const commentParserToESTree = (jsdoc, mode, { delimiter, postDelimiter, rawType, - start, + initial, type: 'JsdocTypeLine' } : { delimiter: '', postDelimiter: '', rawType, - start: '', + initial: '', type: 'JsdocTypeLine' }); lastTag.rawType += lastTag.rawType ? '\n' + rawType : rawType; @@ -253,13 +265,19 @@ const commentParserToESTree = (jsdoc, mode, { delimiter, description, postDelimiter, - start, + initial, type: 'JsdocDescriptionLine' - } : { + } : lastTag ? { delimiter: '', description, postDelimiter: '', - start: '', + initial: '', + type: 'JsdocDescriptionLine' + } : { + delimiter, + description, + postDelimiter, + initial, type: 'JsdocDescriptionLine' }); holder.description += holder.description ? '\n' + description : description; @@ -267,7 +285,7 @@ const commentParserToESTree = (jsdoc, mode, { if (end && tag) { - ast.end = end; + ast.terminal = end; cleanUpLastTag(lastTag); } }); @@ -335,6 +353,10 @@ const hasSeeWithLink = spec => { }; const defaultNoTypes = ['default', 'defaultvalue', 'see']; const defaultNoNames = ['access', 'author', 'default', 'defaultvalue', 'description', 'example', 'exception', 'kind', 'license', 'return', 'returns', 'since', 'summary', 'throws', 'version', 'variation']; +const optionalBrackets = /^\[(?[^=]*)=[^\]]*\]/u; +const preserveTypeTokenizer = typeTokenizer('preserve'); +const preserveDescriptionTokenizer = descriptionTokenizer('preserve'); +const plainNameTokenizer = nameTokenizer(); const getTokenizers = ({ noTypes = defaultNoTypes, @@ -348,14 +370,14 @@ const getTokenizers = ({ return spec; } - return typeTokenizer()(spec); + return preserveTypeTokenizer(spec); }, // Name spec => { if (spec.tag === 'template') { // const preWS = spec.postTag; const remainder = spec.source[0].tokens.description; const pos = remainder.search(/(? { - return descriptionTokenizer('preserve')(spec); + return preserveDescriptionTokenizer(spec); }]; }; /** @@ -397,7 +427,7 @@ const getTokenizers = ({ const parseComment = (commentNode, indent = '') => { // Preserve JSDoc block start/end indentation. - return commentParser.parse(`/*${commentNode.value}*/`, { + return commentParser.parse(`${indent}/*${commentNode.value}*/`, { // @see https://github.com/yavorskiy/comment-parser/issues/21 tokenizers: getTokenizers() })[0]; @@ -557,6 +587,22 @@ const getReducedASTNode = function (node, sourceCode) { case 'TSEmptyBodyFunctionExpression': case 'FunctionExpression': if (!invokedExpression.has(parent.type)) { + let token = node; + + do { + token = sourceCode.getTokenBefore(token, { + includeComments: true + }); + } while (token && token.type === 'Punctuator' && token.value === '('); + + if (token && token.type === 'Block') { + return node; + } + + if (sourceCode.getCommentsBefore(node).length) { + return node; + } + while (!sourceCode.getCommentsBefore(parent).length && !/Function/u.test(parent.type) && !allowableCommentNode.has(parent.type)) { ({ parent @@ -660,53 +706,56 @@ const stringifiers = { delimiter, postDelimiter, lineEnd, - end, + initial, + terminal, endLine - }, descriptionLines, tags) { - return `${delimiter}${postDelimiter}${endLine ? ` + }, opts, descriptionLines, tags) { + const alreadyHasLine = descriptionLines.length && !tags.length && descriptionLines[descriptionLines.length - 1].endsWith('\n') || tags.length && tags[tags.length - 1].endsWith('\n'); + return `${initial}${delimiter}${postDelimiter}${endLine ? ` ` : ''}${// Could use `node.description` (and `node.lineEnd`), but lines may have // been modified - descriptionLines.length ? descriptionLines.join('') + lineEnd : ''}${tags.length ? tags.join('\n') + lineEnd : ''}${endLine ? ` - ` : ''}${end}`; + descriptionLines.length ? descriptionLines.join(lineEnd + '\n') + (tags.length ? lineEnd + '\n' : '') : ''}${tags.length ? tags.join(lineEnd + '\n') : ''}${endLine && !alreadyHasLine ? `${lineEnd} + ${initial}` : endLine ? ` ${initial}` : ''}${terminal}`; }, JsdocDescriptionLine({ - start, + initial, delimiter, postDelimiter, description }) { - return `${start}${delimiter}${postDelimiter}${description}`; + return `${initial}${delimiter}${postDelimiter}${description}`; }, JsdocTypeLine({ - start, + initial, delimiter, postDelimiter, - rawType + rawType, + parsedType }) { - return `${delimiter}${postDelimiter}{${rawType}}`; + return `${initial}${delimiter}${postDelimiter}${rawType}`; }, - JsdocTag(node, parsedType, typeLines, descriptionLines) { + JsdocTag(node, opts, parsedType, typeLines, descriptionLines) { const { description, name, postName, postTag, postType, - start, + initial, delimiter, postDelimiter, tag // , rawType } = node; - return `${start}${delimiter}${postDelimiter}@${tag}${postTag}${// Could do `rawType` but may have been changed; could also do + return `${initial}${delimiter}${postDelimiter}@${tag}${postTag}${// Could do `rawType` but may have been changed; could also do // `typeLines` but not as likely to be changed // parsedType // Comment this out later in favor of `parsedType` // We can't use raw `typeLines` as first argument has delimiter on it - typeLines}${postType}${name ? `${name}${postName || (description ? '\n' : '')}` : ''}${descriptionLines.join('\n')}`; + opts.preferRawType || !parsedType ? typeLines.length ? `{${typeLines.join('\n')}}` : '' : parsedType}${postType}${name ? `${name}${postName || (description ? '\n' : '')}` : ''}${descriptionLines.join('\n')}`; } }; @@ -717,24 +766,25 @@ const visitorKeys = { ...jsdocVisitorKeys, * @todo convert for use by escodegen (until may be patched to support * custom entries?). * @param {Node} node + * @param {{preferRawType: boolean}} opts * @throws {Error} * @returns {string} */ -function estreeToString(node) { +function estreeToString(node, opts = {}) { if (Object.prototype.hasOwnProperty.call(stringifiers, node.type)) { const childNodeOrArray = visitorKeys[node.type]; const args = childNodeOrArray.map(key => { return Array.isArray(node[key]) ? node[key].map(item => { - return estreeToString(item); - }) : node[key] === undefined || node[key] === null ? [] : [estreeToString(node[key])]; + return estreeToString(item, opts); + }) : node[key] === undefined || node[key] === null ? null : estreeToString(node[key], opts); }); - return stringifiers[node.type](node, ...args); + return stringifiers[node.type](node, opts, ...args); } // We use raw type instead but it is a key as other apps may wish to traverse if (node.type.startsWith('JsdocType')) { - return ''; + return opts.preferRawType ? '' : `{${jsdocTypePrattParser.stringify(node)}}`; } throw new Error(`Unhandled node type: ${node.type}`); diff --git a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/package.json b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/package.json index 88861cf3233815..a3e526ea4107f0 100644 --- a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/package.json +++ b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/package.json @@ -1,6 +1,6 @@ { "name": "@es-joy/jsdoccomment", - "version": "0.22.1", + "version": "0.31.0", "author": "Brett Zamir ", "contributors": [], "description": "Maintained replacement for ESLint's deprecated SourceCode#getJSDocComment along with other jsdoc utilities", @@ -38,41 +38,41 @@ }, "homepage": "https://github.com/es-joy/jsdoccomment", "engines": { - "node": "^12 || ^14 || ^16 || ^17" + "node": "^14 || ^16 || ^17 || ^18" }, "dependencies": { "comment-parser": "1.3.1", "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~2.2.5" + "jsdoc-type-pratt-parser": "~3.1.0" }, "devDependencies": { - "@babel/core": "^7.17.8", + "@babel/core": "^7.17.12", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/preset-env": "^7.16.11", + "@babel/preset-env": "^7.17.12", "@brettz9/eslint-plugin": "^1.0.4", "@rollup/plugin-babel": "^5.3.1", - "c8": "^7.11.0", + "c8": "^7.11.3", "chai": "^4.3.6", - "eslint": "^8.11.0", - "eslint-config-ash-nazg": "32.7.1", - "eslint-config-standard": "^16.0.3", + "eslint": "^8.15.0", + "eslint-config-ash-nazg": "33.1.0", + "eslint-config-standard": "^17.0.0", "eslint-plugin-array-func": "^3.1.7", "eslint-plugin-compat": "^4.0.2", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-html": "^6.2.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jsdoc": "^38.0.4", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jsdoc": "^39.2.9", "eslint-plugin-markdown": "^2.2.1", + "eslint-plugin-n": "^15.2.0", "eslint-plugin-no-unsanitized": "^4.0.1", "eslint-plugin-no-use-extend-native": "^0.5.0", - "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.0.0", - "eslint-plugin-sonarjs": "^0.12.0", - "eslint-plugin-unicorn": "^41.0.1", - "espree": "^9.3.1", + "eslint-plugin-sonarjs": "^0.13.0", + "eslint-plugin-unicorn": "^42.0.0", + "espree": "^9.3.2", "estraverse": "^5.3.0", - "mocha": "^9.2.2", - "rollup": "^2.70.1" + "mocha": "^10.0.0", + "rollup": "^2.74.0" }, "scripts": { "open": "open ./coverage/lcov-report/index.html", @@ -83,5 +83,5 @@ "c8": "c8 npm run mocha", "test": "npm run lint && npm run rollup && npm run c8" }, - "readme": "# @es-joy/jsdoccomment\n\n[![Node.js CI status](https://github.com/brettz9/getJSDocComment/workflows/Node.js%20CI/badge.svg)](https://github.com/brettz9/getJSDocComment/actions)\n\nThis project aims to preserve and expand upon the\n`SourceCode#getJSDocComment` functionality of the deprecated ESLint method.\n\nIt also exports a number of functions currently for working with JSDoc:\n\n## API\n\n### `parseComment`\n\nFor parsing `comment-parser` in a JSDoc-specific manner.\nMight wish to have tags with or without tags, etc. derived from a split off\nJSON file.\n\n### `commentParserToESTree`\n\nConverts [comment-parser](https://github.com/syavorsky/comment-parser)\nAST to ESTree/ESLint/Babel friendly AST. See the \"ESLint AST...\" section below.\n\n### `jsdocVisitorKeys`\n\nThe [VisitorKeys](https://github.com/eslint/eslint-visitor-keys)\nfor `JsdocBlock`, `JsdocDescriptionLine`, and `JsdocTag`. More likely to be\nsubject to change or dropped in favor of another type parser.\n\n### `jsdocTypeVisitorKeys`\n\nJust a re-export of [VisitorKeys](https://github.com/eslint/eslint-visitor-keys)\nfrom [`jsdoc-type-pratt-parser`](https://github.com/simonseyock/jsdoc-type-pratt-parser/).\n\n### `getDefaultTagStructureForMode`\n\nProvides info on JSDoc tags:\n\n- `nameContents` ('namepath-referencing'|'namepath-defining'|\n 'dual-namepath-referencing'|false) - Whether and how a name is allowed\n following any type. Tags without a proper name (value `false`) may still\n have a description (which can appear like a name); `descriptionAllowed`\n in such cases would be `true`.\n The presence of a truthy `nameContents` value is therefore only intended\n to signify whether separate parsing should occur for a name vs. a\n description, and what its nature should be.\n- `nameRequired` (boolean) - Whether a name must be present following any type.\n- `descriptionAllowed` (boolean) - Whether a description (following any name)\n is allowed.\n- `typeAllowed` (boolean) - Whether the tag accepts a curly bracketed portion.\n Even without a type, a tag may still have a name and/or description.\n- `typeRequired` (boolean) - Whether a curly bracketed type must be present.\n- `typeOrNameRequired` (boolean) - Whether either a curly bracketed type is\n required or a name, but not necessarily both.\n\n### Miscellaneous\n\nAlso currently exports these utilities, though they might be removed in the\nfuture:\n\n- `getTokenizers` - Used with `parseComment` (its main core)\n- `toCamelCase` - Convert to CamelCase.\n- `hasSeeWithLink` - A utility to detect if a tag is `@see` and has a `@link`\n- `commentHandler` - Used by `eslint-plugin-jsdoc`. Might be removed in future.\n- `commentParserToESTree`- Converts [comment-parser](https://github.com/syavorsky/comment-parser)\n AST to ESTree/ESLint/Babel friendly AST\n- `jsdocVisitorKeys` - The [VisitorKeys](https://github.com/eslint/eslint-visitor-keys)\n for `JSDocBlock`, `JSDocDescriptionLine`, and `JSDocTag`. Might change.\n- `jsdocTypeVisitorKeys` - [VisitorKeys](https://github.com/eslint/eslint-visitor-keys)\n for `jsdoc-type-pratt-parser`.\n- `getTokenizers` - A utility. Might be removed in future.\n- `toCamelCase` - A utility. Might be removed in future.\n- `hasSeeWithLink` - A utility to detect if a tag is `@see` and has a `@link`\n- `defaultNoTypes` = The tags which allow no types by default:\n `default`, `defaultvalue`, `see`;\n- `defaultNoNames` - The tags which allow no names by default:\n `access`, `author`, `default`, `defaultvalue`, `description`, `example`,\n `exception`, `kind`, `license`, `return`, `returns`, `since`, `summary`,\n `throws`, `version`, `variation`\n\n## ESLint AST produced for `comment-parser` nodes (`JsdocBlock`, `JsdocTag`, and `JsdocDescriptionLine`)\n\nNote: Although not added in this package, `@es-joy/jsdoc-eslint-parser` adds\na `jsdoc` property to other ES nodes (using this project's `getJSDocComment`\nto determine the specific comment-block that will be attached as AST).\n\n### `JsdocBlock`\n\nHas two visitable properties:\n\n1. `tags` (an array of `JsdocTag`; see below)\n2. `descriptionLines` (an array of `JsdocDescriptionLine` for multiline\n descriptions).\n\nHas the following custom non-visitable property:\n\n1. `lastDescriptionLine` - A number\n2. `endLine` - A number representing the line number with `end`\n\nMay also have the following non-visitable properties from `comment-parser`:\n\n1. `description` - Same as `descriptionLines` but as a string with newlines.\n2. `delimiter`\n3. `postDelimiter`\n4. `lineEnd`\n5. `end`\n\n### `JsdocTag`\n\nHas three visitable properties:\n\n1. `parsedType` (the `jsdoc-type-pratt-parser` AST representation of the tag's\n type (see the `jsdoc-type-pratt-parser` section below)).\n2. `descriptionLines` (an array of `JsdocDescriptionLine` for multiline\n descriptions)\n3. `typeLines` (an array of `JsdocTypeLine` for multiline type strings)\n\nMay also have the following non-visitable properties from `comment-parser`\n(note that all are included from `comment-parser` except `end` as that is only\nfor JSDoc blocks and note that `type` is renamed to `rawType`):\n\n1. `description` - Same as `descriptionLines` but as a string with newlines.\n2. `rawType` - `comment-parser` has this named as `type`, but because of a\n conflict with ESTree using `type` for Node type, we renamed it to\n `rawType`. It is otherwise the same as in `comment-parser`, i.e., a string\n with newlines, though with the initial `{` and final `}` stripped out.\n See `typeLines` for the array version of this property.\n3. `start`\n4. `delimiter`\n5. `postDelimiter`\n6. `tag` (this does differ from `comment-parser` now in terms of our stripping\n the initial `@`)\n7. `postTag`\n8. `name`\n9. `postName`\n10. `postType`\n\n### `JsdocDescriptionLine`\n\nNo visitable properties.\n\nMay also have the following non-visitable properties from `comment-parser`:\n\n1. `delimiter`\n2. `postDelimiter`\n3. `start`\n4. `description`\n\n### `JsdocTypeLine`\n\nNo visitable properties.\n\nMay also have the following non-visitable properties from `comment-parser`:\n\n1. `delimiter`\n2. `postDelimiter`\n3. `start`\n4. `rawType` - Renamed from `comment-parser` to avoid a conflict. See\n explanation under `JsdocTag`\n\n## ESLint AST produced for `jsdoc-type-pratt-parser`\n\nThe AST, including `type`, remains as is from [jsdoc-type-pratt-parser](https://github.com/simonseyock/jsdoc-type-pratt-parser/).\n\nThe type will always begin with a `JsdocType` prefix added, along with a\ncamel-cased type name, e.g., `JsdocTypeUnion`.\n\nThe `jsdoc-type-pratt-parser` visitor keys are also preserved without change.\n\n## Installation\n\n```shell\nnpm i @es-joy/jsdoccomment\n```\n\n## Changelog\n\nThe changelog can be found on the [CHANGES.md](./CHANGES.md).\n\n## Authors and license\n\n[Brett Zamir](http://brett-zamir.me/) and\n[contributors](https://github.com/es-joy/jsdoc-eslint-parser/graphs/contributors).\n\nMIT License, see the included [LICENSE-MIT.txt](LICENSE-MIT.txt) file.\n\n## To-dos\n\n1. Get complete code coverage\n" + "readme": "# @es-joy/jsdoccomment\n\n[![Node.js CI status](https://github.com/brettz9/getJSDocComment/workflows/Node.js%20CI/badge.svg)](https://github.com/brettz9/getJSDocComment/actions)\n\nThis project aims to preserve and expand upon the\n`SourceCode#getJSDocComment` functionality of the deprecated ESLint method.\n\nIt also exports a number of functions currently for working with JSDoc:\n\n## API\n\n### `parseComment`\n\nFor parsing `comment-parser` in a JSDoc-specific manner.\nMight wish to have tags with or without tags, etc. derived from a split off\nJSON file.\n\n### `commentParserToESTree`\n\nConverts [comment-parser](https://github.com/syavorsky/comment-parser)\nAST to ESTree/ESLint/Babel friendly AST. See the \"ESLint AST...\" section below.\n\n### `estreeToString`\n\nStringifies. In addition to the node argument, it accepts an optional second\noptions object with a single `preferRawType` key. If you don't need to modify\nJSDoc type AST, you might wish to set this to `true` to get the benefits of\npreserving the raw form, but for AST-based stringification of JSDoc types,\nkeep it `false` (the default).\n\n### `jsdocVisitorKeys`\n\nThe [VisitorKeys](https://github.com/eslint/eslint-visitor-keys)\nfor `JsdocBlock`, `JsdocDescriptionLine`, and `JsdocTag`. More likely to be\nsubject to change or dropped in favor of another type parser.\n\n### `jsdocTypeVisitorKeys`\n\nJust a re-export of [VisitorKeys](https://github.com/eslint/eslint-visitor-keys)\nfrom [`jsdoc-type-pratt-parser`](https://github.com/simonseyock/jsdoc-type-pratt-parser/).\n\n### `getDefaultTagStructureForMode`\n\nProvides info on JSDoc tags:\n\n- `nameContents` ('namepath-referencing'|'namepath-defining'|\n 'dual-namepath-referencing'|false) - Whether and how a name is allowed\n following any type. Tags without a proper name (value `false`) may still\n have a description (which can appear like a name); `descriptionAllowed`\n in such cases would be `true`.\n The presence of a truthy `nameContents` value is therefore only intended\n to signify whether separate parsing should occur for a name vs. a\n description, and what its nature should be.\n- `nameRequired` (boolean) - Whether a name must be present following any type.\n- `descriptionAllowed` (boolean) - Whether a description (following any name)\n is allowed.\n- `typeAllowed` (boolean) - Whether the tag accepts a curly bracketed portion.\n Even without a type, a tag may still have a name and/or description.\n- `typeRequired` (boolean) - Whether a curly bracketed type must be present.\n- `typeOrNameRequired` (boolean) - Whether either a curly bracketed type is\n required or a name, but not necessarily both.\n\n### Miscellaneous\n\nAlso currently exports these utilities, though they might be removed in the\nfuture:\n\n- `getTokenizers` - Used with `parseComment` (its main core)\n- `toCamelCase` - Convert to CamelCase.\n- `hasSeeWithLink` - A utility to detect if a tag is `@see` and has a `@link`\n- `commentHandler` - Used by `eslint-plugin-jsdoc`. Might be removed in future.\n- `commentParserToESTree`- Converts [comment-parser](https://github.com/syavorsky/comment-parser)\n AST to ESTree/ESLint/Babel friendly AST\n- `jsdocVisitorKeys` - The [VisitorKeys](https://github.com/eslint/eslint-visitor-keys)\n for `JSDocBlock`, `JSDocDescriptionLine`, and `JSDocTag`. Might change.\n- `jsdocTypeVisitorKeys` - [VisitorKeys](https://github.com/eslint/eslint-visitor-keys)\n for `jsdoc-type-pratt-parser`.\n- `getTokenizers` - A utility. Might be removed in future.\n- `toCamelCase` - A utility. Might be removed in future.\n- `hasSeeWithLink` - A utility to detect if a tag is `@see` and has a `@link`\n- `defaultNoTypes` = The tags which allow no types by default:\n `default`, `defaultvalue`, `see`;\n- `defaultNoNames` - The tags which allow no names by default:\n `access`, `author`, `default`, `defaultvalue`, `description`, `example`,\n `exception`, `kind`, `license`, `return`, `returns`, `since`, `summary`,\n `throws`, `version`, `variation`\n\n## ESLint AST produced for `comment-parser` nodes (`JsdocBlock`, `JsdocTag`, and `JsdocDescriptionLine`)\n\nNote: Although not added in this package, `@es-joy/jsdoc-eslint-parser` adds\na `jsdoc` property to other ES nodes (using this project's `getJSDocComment`\nto determine the specific comment-block that will be attached as AST).\n\n### `JsdocBlock`\n\nHas two visitable properties:\n\n1. `tags` (an array of `JsdocTag`; see below)\n2. `descriptionLines` (an array of `JsdocDescriptionLine` for multiline\n descriptions).\n\nHas the following custom non-visitable property:\n\n1. `lastDescriptionLine` - A number\n2. `endLine` - A number representing the line number with `end`/`terminal`\n\nMay also have the following non-visitable properties from `comment-parser`:\n\n1. `description` - Same as `descriptionLines` but as a string with newlines.\n2. `delimiter`\n3. `postDelimiter`\n4. `lineEnd`\n5. `initial` (from `start`)\n6. `terminal` (from `end`)\n\n### `JsdocTag`\n\nHas three visitable properties:\n\n1. `parsedType` (the `jsdoc-type-pratt-parser` AST representation of the tag's\n type (see the `jsdoc-type-pratt-parser` section below)).\n2. `descriptionLines` (an array of `JsdocDescriptionLine` for multiline\n descriptions)\n3. `typeLines` (an array of `JsdocTypeLine` for multiline type strings)\n\nMay also have the following non-visitable properties from `comment-parser`\n(note that all are included from `comment-parser` except `end` as that is only\nfor JSDoc blocks and note that `type` is renamed to `rawType` and `start` to\n`initial`):\n\n1. `description` - Same as `descriptionLines` but as a string with newlines.\n2. `rawType` - `comment-parser` has this named as `type`, but because of a\n conflict with ESTree using `type` for Node type, we renamed it to\n `rawType`. It is otherwise the same as in `comment-parser`, i.e., a string\n with newlines, though with the initial `{` and final `}` stripped out.\n See `typeLines` for the array version of this property.\n3. `initial` - Renamed from `start` to avoid potential conflicts with\n Acorn-style parser processing tools\n4. `delimiter`\n5. `postDelimiter`\n6. `tag` (this does differ from `comment-parser` now in terms of our stripping\n the initial `@`)\n7. `postTag`\n8. `name`\n9. `postName`\n10. `postType`\n\n### `JsdocDescriptionLine`\n\nNo visitable properties.\n\nMay also have the following non-visitable properties from `comment-parser`:\n\n1. `delimiter`\n2. `postDelimiter`\n3. `initial` (from `start`)\n4. `description`\n\n### `JsdocTypeLine`\n\nNo visitable properties.\n\nMay also have the following non-visitable properties from `comment-parser`:\n\n1. `delimiter`\n2. `postDelimiter`\n3. `initial` (from `start`)\n4. `rawType` - Renamed from `comment-parser` to avoid a conflict. See\n explanation under `JsdocTag`\n\n## ESLint AST produced for `jsdoc-type-pratt-parser`\n\nThe AST, including `type`, remains as is from [jsdoc-type-pratt-parser](https://github.com/simonseyock/jsdoc-type-pratt-parser/).\n\nThe type will always begin with a `JsdocType` prefix added, along with a\ncamel-cased type name, e.g., `JsdocTypeUnion`.\n\nThe `jsdoc-type-pratt-parser` visitor keys are also preserved without change.\n\n## Installation\n\n```shell\nnpm i @es-joy/jsdoccomment\n```\n\n## Changelog\n\nThe changelog can be found on the [CHANGES.md](./CHANGES.md).\n\n## Authors and license\n\n[Brett Zamir](http://brett-zamir.me/) and\n[contributors](https://github.com/es-joy/jsdoc-eslint-parser/graphs/contributors).\n\nMIT License, see the included [LICENSE-MIT.txt](LICENSE-MIT.txt) file.\n\n## To-dos\n\n1. Get complete code coverage\n2. Might add `trailing` for `JsdocBlock` to know whether it is followed by a\n line break or what not; `comment-parser` does not provide, however\n3. Fix and properly utilize `indent` argument (challenging for\n `eslint-plugin-jsdoc` but needed for `jsdoc-eslint-parser` stringifiers\n to be more faithful); should also then use the proposed `trailing` as well\n" } \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/commentParserToESTree.js b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/commentParserToESTree.js index 09e1c406711ff3..43587807406b49 100644 --- a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/commentParserToESTree.js +++ b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/commentParserToESTree.js @@ -36,7 +36,7 @@ const stripEncapsulatingBrackets = (container, isArr) => { * delimiter: string, * postDelimiter: string, * rawType: string, - * start: string, + * initial: string, * type: "JsdocTypeLine" * }} JsdocTypeLine */ @@ -46,7 +46,7 @@ const stripEncapsulatingBrackets = (container, isArr) => { * delimiter: string, * description: string, * postDelimiter: string, - * start: string, + * initial: string, * type: "JsdocDescriptionLine" * }} JsdocDescriptionLine */ @@ -56,9 +56,9 @@ const stripEncapsulatingBrackets = (container, isArr) => { * delimiter: string, * description: string, * postDelimiter: string, - * start: string, + * initial: string, * tag: string, - * end: string, + * terminal: string, * type: string, * descriptionLines: JsdocDescriptionLine[], * rawType: string, @@ -72,7 +72,8 @@ const stripEncapsulatingBrackets = (container, isArr) => { * delimiter: string, * description: string, * descriptionLines: JsdocDescriptionLine[], - * end: string, + * initial: string, + * terminal: string, * postDelimiter: string, * lineEnd: string, * type: "JsdocBlock", @@ -128,6 +129,7 @@ const commentParserToESTree = (jsdoc, mode, { delimiter: delimiterRoot, lineEnd: lineEndRoot, postDelimiter: postDelimiterRoot, + start: startRoot, end: endRoot, description: descriptionRoot }} = source[0]; @@ -139,8 +141,9 @@ const commentParserToESTree = (jsdoc, mode, { descriptionLines: [], - // `end` will be overwritten if there are other entries - end: endRoot, + initial: startRoot, + // `terminal` will be overwritten if there are other entries + terminal: endRoot, endLine, postDelimiter: postDelimiterRoot, lineEnd: lineEndRoot, @@ -158,7 +161,7 @@ const commentParserToESTree = (jsdoc, mode, { delimiter, description, postDelimiter, - start, + start: initial, tag, end, type: rawType @@ -178,7 +181,7 @@ const commentParserToESTree = (jsdoc, mode, { // but only when there is no tag earlier in the line // to still process if (end && !tag) { - ast.end = end; + ast.terminal = end; return; } @@ -187,17 +190,24 @@ const commentParserToESTree = (jsdoc, mode, { end: ed, delimiter: de, postDelimiter: pd, + start: init, ...tkns } = tokens; if (!tokens.name) { - let i = 0; + let i = 1; while (source[idx + i]) { const {tokens: { name, - postName + postName, + postType, + tag: tg }} = source[idx + i]; + if (tg) { + break; + } if (name) { + tkns.postType = postType; tkns.name = name; tkns.postName = postName; break; @@ -208,6 +218,7 @@ const commentParserToESTree = (jsdoc, mode, { const tagObj = { ...tkns, + initial: endLine ? init : '', postDelimiter: lastDescriptionLine ? pd : '', delimiter: lastDescriptionLine ? de : '', descriptionLines: [], @@ -230,14 +241,14 @@ const commentParserToESTree = (jsdoc, mode, { delimiter, postDelimiter, rawType, - start, + initial, type: 'JsdocTypeLine' } : { delimiter: '', postDelimiter: '', rawType, - start: '', + initial: '', type: 'JsdocTypeLine' } ); @@ -252,16 +263,24 @@ const commentParserToESTree = (jsdoc, mode, { delimiter, description, postDelimiter, - start, - type: 'JsdocDescriptionLine' - } - : { - delimiter: '', - description, - postDelimiter: '', - start: '', + initial, type: 'JsdocDescriptionLine' } + : lastTag + ? { + delimiter: '', + description, + postDelimiter: '', + initial: '', + type: 'JsdocDescriptionLine' + } + : { + delimiter, + description, + postDelimiter, + initial, + type: 'JsdocDescriptionLine' + } ); holder.description += holder.description ? '\n' + description @@ -270,7 +289,7 @@ const commentParserToESTree = (jsdoc, mode, { // Clean-up where last line itself has tag content if (end && tag) { - ast.end = end; + ast.terminal = end; cleanUpLastTag(lastTag); } diff --git a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/estreeToString.js b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/estreeToString.js index a0217f69507d61..a2fe703e53265f 100644 --- a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/estreeToString.js +++ b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/estreeToString.js @@ -1,52 +1,63 @@ import { - visitorKeys as jsdocTypePrattParserVisitorKeys + visitorKeys as jsdocTypePrattParserVisitorKeys, + stringify } from 'jsdoc-type-pratt-parser'; import {jsdocVisitorKeys} from './commentParserToESTree.js'; const stringifiers = { JsdocBlock ({ - delimiter, postDelimiter, lineEnd, end, endLine - }, descriptionLines, tags) { - return `${delimiter}${postDelimiter}${endLine + delimiter, postDelimiter, lineEnd, initial, terminal, endLine + }, opts, descriptionLines, tags) { + const alreadyHasLine = + (descriptionLines.length && !tags.length && + descriptionLines[descriptionLines.length - 1].endsWith('\n')) || + (tags.length && tags[tags.length - 1].endsWith('\n')); + return `${initial}${delimiter}${postDelimiter}${endLine ? ` ` : ''}${ // Could use `node.description` (and `node.lineEnd`), but lines may have // been modified - descriptionLines.length ? descriptionLines.join('') + lineEnd : '' + descriptionLines.length + ? descriptionLines.join( + lineEnd + '\n' + ) + (tags.length ? lineEnd + '\n' : '') + : '' }${ - tags.length ? tags.join('\n') + lineEnd : '' - }${endLine - ? ` - ` - : ''}${end}`; + tags.length ? tags.join(lineEnd + '\n') : '' + }${endLine && !alreadyHasLine + ? `${lineEnd} + ${initial}` + : endLine ? ` ${initial}` : ''}${terminal}`; }, JsdocDescriptionLine ({ - start, delimiter, postDelimiter, description + initial, delimiter, postDelimiter, description }) { - return `${start}${delimiter}${postDelimiter}${description}`; + return `${initial}${delimiter}${postDelimiter}${description}`; }, JsdocTypeLine ({ - start, delimiter, postDelimiter, rawType + initial, delimiter, postDelimiter, rawType, parsedType }) { - return `${delimiter}${postDelimiter}{${rawType}}`; + return `${initial}${delimiter}${postDelimiter}${rawType}`; }, - JsdocTag (node, parsedType, typeLines, descriptionLines) { + JsdocTag (node, opts, parsedType, typeLines, descriptionLines) { const { description, name, postName, postTag, postType, - start, delimiter, postDelimiter, tag + initial, delimiter, postDelimiter, tag // , rawType } = node; - return `${start}${delimiter}${postDelimiter}@${tag}${postTag}${ + return `${initial}${delimiter}${postDelimiter}@${tag}${postTag}${ // Could do `rawType` but may have been changed; could also do // `typeLines` but not as likely to be changed // parsedType // Comment this out later in favor of `parsedType` // We can't use raw `typeLines` as first argument has delimiter on it - typeLines + (opts.preferRawType || !parsedType) + ? typeLines.length ? `{${typeLines.join('\n')}}` : '' + : parsedType }${postType}${ name ? `${name}${postName || (description ? '\n' : '')}` : '' }${descriptionLines.join('\n')}`; @@ -59,29 +70,29 @@ const visitorKeys = {...jsdocVisitorKeys, ...jsdocTypePrattParserVisitorKeys}; * @todo convert for use by escodegen (until may be patched to support * custom entries?). * @param {Node} node + * @param {{preferRawType: boolean}} opts * @throws {Error} * @returns {string} */ -function estreeToString (node) { +function estreeToString (node, opts = {}) { if (Object.prototype.hasOwnProperty.call(stringifiers, node.type)) { const childNodeOrArray = visitorKeys[node.type]; const args = childNodeOrArray.map((key) => { return Array.isArray(node[key]) ? node[key].map((item) => { - return estreeToString(item); + return estreeToString(item, opts); }) : (node[key] === undefined || node[key] === null - ? [] - : [estreeToString(node[key])]); + ? null + : estreeToString(node[key], opts)); }); - - return stringifiers[node.type](node, ...args); + return stringifiers[node.type](node, opts, ...args); } // We use raw type instead but it is a key as other apps may wish to traverse if (node.type.startsWith('JsdocType')) { - return ''; + return opts.preferRawType ? '' : `{${stringify(node)}}`; } throw new Error(`Unhandled node type: ${node.type}`); diff --git a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/jsdoccomment.js b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/jsdoccomment.js index 295b3a807afb10..7a20d23ca437f4 100644 --- a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/jsdoccomment.js +++ b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/jsdoccomment.js @@ -160,6 +160,18 @@ const getReducedASTNode = function (node, sourceCode) { if ( !invokedExpression.has(parent.type) ) { + let token = node; + do { + token = sourceCode.getTokenBefore(token, {includeComments: true}); + } while (token && token.type === 'Punctuator' && token.value === '('); + + if (token && token.type === 'Block') { + return node; + } + + if (sourceCode.getCommentsBefore(node).length) { + return node; + } while ( !sourceCode.getCommentsBefore(parent).length && !(/Function/u).test(parent.type) && diff --git a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/parseComment.js b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/parseComment.js index bd8df053dd0ef2..e6a9c8283efc2a 100644 --- a/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/parseComment.js +++ b/tools/node_modules/eslint/node_modules/@es-joy/jsdoccomment/src/parseComment.js @@ -29,6 +29,11 @@ export const defaultNoNames = [ 'version', 'variation' ]; +const optionalBrackets = /^\[(?[^=]*)=[^\]]*\]/u; +const preserveTypeTokenizer = typeTokenizer('preserve'); +const preserveDescriptionTokenizer = descriptionTokenizer('preserve'); +const plainNameTokenizer = nameTokenizer(); + const getTokenizers = ({ noTypes = defaultNoTypes, noNames = defaultNoNames @@ -44,7 +49,7 @@ const getTokenizers = ({ return spec; } - return typeTokenizer()(spec); + return preserveTypeTokenizer(spec); }, // Name @@ -55,15 +60,21 @@ const getTokenizers = ({ const pos = remainder.search(/(? -1) { [, postName, description, lineEnd] = extra.match(/(\s*)([^\r]*)(\r)?/u); } + if (optionalBrackets.test(name)) { + name = name.match(optionalBrackets)?.groups?.name; + spec.optional = true; + } else { + spec.optional = false; + } + spec.name = name; - spec.optional = false; const {tokens} = spec.source[0]; tokens.name = name; tokens.postName = postName; @@ -77,12 +88,12 @@ const getTokenizers = ({ return spec; } - return nameTokenizer()(spec); + return plainNameTokenizer(spec); }, // Description (spec) => { - return descriptionTokenizer('preserve')(spec); + return preserveDescriptionTokenizer(spec); } ]; }; @@ -95,7 +106,7 @@ const getTokenizers = ({ */ const parseComment = (commentNode, indent = '') => { // Preserve JSDoc block start/end indentation. - return commentParser(`/*${commentNode.value}*/`, { + return commentParser(`${indent}/*${commentNode.value}*/`, { // @see https://github.com/yavorskiy/comment-parser/issues/21 tokenizers: getTokenizers() })[0]; diff --git a/tools/node_modules/eslint/node_modules/@eslint/eslintrc/LICENSE b/tools/node_modules/eslint/node_modules/@eslint/eslintrc/LICENSE index f9556ee619d820..b607bb36e96c33 100644 --- a/tools/node_modules/eslint/node_modules/@eslint/eslintrc/LICENSE +++ b/tools/node_modules/eslint/node_modules/@eslint/eslintrc/LICENSE @@ -1,6 +1,4 @@ -MIT License - -Copyright (c) 2020 ESLint +Copyright OpenJS Foundation and other contributors, Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -9,13 +7,13 @@ 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: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. THE 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. +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs b/tools/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs index 50dd6abf59dbaf..8b07ba16516e5b 100644 --- a/tools/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs +++ b/tools/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs @@ -2380,7 +2380,7 @@ var ModuleResolver = { * @author Toru Nagashima */ -const require$1 = Module.createRequire((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('eslintrc.cjs', document.baseURI).href))); +const require$1 = Module.createRequire(require('url').pathToFileURL(__filename).toString()); const debug$2 = debugOrig__default["default"]("eslintrc:config-array-factory"); diff --git a/tools/node_modules/eslint/node_modules/@eslint/eslintrc/package.json b/tools/node_modules/eslint/node_modules/@eslint/eslintrc/package.json index 892991a7872290..397ae855789b19 100644 --- a/tools/node_modules/eslint/node_modules/@eslint/eslintrc/package.json +++ b/tools/node_modules/eslint/node_modules/@eslint/eslintrc/package.json @@ -1,6 +1,6 @@ { "name": "@eslint/eslintrc", - "version": "1.2.1", + "version": "1.3.0", "description": "The legacy ESLintRC config file format for ESLint", "type": "module", "main": "./dist/eslintrc.cjs", @@ -59,7 +59,7 @@ "eslint-release": "^3.2.0", "fs-teardown": "^0.1.3", "mocha": "^9.0.3", - "rollup": "^2.54.0", + "rollup": "^2.70.1", "shelljs": "^0.8.4", "sinon": "^11.1.2", "temp-dir": "^2.0.0" @@ -67,12 +67,12 @@ "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", + "espree": "^9.3.2", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/LICENSE b/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/LICENSE new file mode 100644 index 00000000000000..352f0715f391f0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/LICENSE @@ -0,0 +1,19 @@ +Copyright 2022 Justin Ridgewell + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs b/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs new file mode 100644 index 00000000000000..31f9c5c3873cbc --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.mjs @@ -0,0 +1,167 @@ +import { SetArray, put } from '@jridgewell/set-array'; +import { encode } from '@jridgewell/sourcemap-codec'; + +/** + * A low-level API to associate a generated position with an original source position. Line and + * column here are 0-based, unlike `addMapping`. + */ +let addSegment; +/** + * A high-level API to associate a generated position with an original source position. Line is + * 1-based, but column is 0-based, due to legacy behavior in `source-map` library. + */ +let addMapping; +/** + * Adds/removes the content of the source file to the source map. + */ +let setSourceContent; +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +let decodedMap; +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +let encodedMap; +/** + * Returns an array of high-level mapping objects for every recorded segment, which could then be + * passed to the `source-map` library. + */ +let allMappings; +/** + * Provides the state to generate a sourcemap. + */ +class GenMapping { + constructor({ file, sourceRoot } = {}) { + this._names = new SetArray(); + this._sources = new SetArray(); + this._sourcesContent = []; + this._mappings = []; + this.file = file; + this.sourceRoot = sourceRoot; + } +} +(() => { + addSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name) => { + const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map; + const line = getLine(mappings, genLine); + if (source == null) { + const seg = [genColumn]; + const index = getColumnIndex(line, genColumn, seg); + return insert(line, index, seg); + } + const sourcesIndex = put(sources, source); + const seg = name + ? [genColumn, sourcesIndex, sourceLine, sourceColumn, put(names, name)] + : [genColumn, sourcesIndex, sourceLine, sourceColumn]; + const index = getColumnIndex(line, genColumn, seg); + if (sourcesIndex === sourcesContent.length) + sourcesContent[sourcesIndex] = null; + insert(line, index, seg); + }; + addMapping = (map, mapping) => { + const { generated, source, original, name } = mapping; + return addSegment(map, generated.line - 1, generated.column, source, original == null ? undefined : original.line - 1, original === null || original === void 0 ? void 0 : original.column, name); + }; + setSourceContent = (map, source, content) => { + const { _sources: sources, _sourcesContent: sourcesContent } = map; + sourcesContent[put(sources, source)] = content; + }; + decodedMap = (map) => { + const { file, sourceRoot, _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map; + return { + version: 3, + file, + names: names.array, + sourceRoot: sourceRoot || undefined, + sources: sources.array, + sourcesContent, + mappings, + }; + }; + encodedMap = (map) => { + const decoded = decodedMap(map); + return Object.assign(Object.assign({}, decoded), { mappings: encode(decoded.mappings) }); + }; + allMappings = (map) => { + const out = []; + const { _mappings: mappings, _sources: sources, _names: names } = map; + for (let i = 0; i < mappings.length; i++) { + const line = mappings[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const generated = { line: i + 1, column: seg[0] }; + let source = undefined; + let original = undefined; + let name = undefined; + if (seg.length !== 1) { + source = sources.array[seg[1]]; + original = { line: seg[2] + 1, column: seg[3] }; + if (seg.length === 5) + name = names.array[seg[4]]; + } + out.push({ generated, source, original, name }); + } + } + return out; + }; +})(); +function getLine(mappings, index) { + for (let i = mappings.length; i <= index; i++) { + mappings[i] = []; + } + return mappings[index]; +} +function getColumnIndex(line, column, seg) { + let index = line.length; + for (let i = index - 1; i >= 0; i--, index--) { + const current = line[i]; + const col = current[0]; + if (col > column) + continue; + if (col < column) + break; + const cmp = compare(current, seg); + if (cmp === 0) + return index; + if (cmp < 0) + break; + } + return index; +} +function compare(a, b) { + let cmp = compareNum(a.length, b.length); + if (cmp !== 0) + return cmp; + // We've already checked genColumn + if (a.length === 1) + return 0; + cmp = compareNum(a[1], b[1]); + if (cmp !== 0) + return cmp; + cmp = compareNum(a[2], b[2]); + if (cmp !== 0) + return cmp; + cmp = compareNum(a[3], b[3]); + if (cmp !== 0) + return cmp; + if (a.length === 4) + return 0; + return compareNum(a[4], b[4]); +} +function compareNum(a, b) { + return a - b; +} +function insert(array, index, value) { + if (index === -1) + return; + for (let i = array.length; i > index; i--) { + array[i] = array[i - 1]; + } + array[index] = value; +} + +export { GenMapping, addMapping, addSegment, allMappings, decodedMap, encodedMap, setSourceContent }; +//# sourceMappingURL=gen-mapping.mjs.map diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js b/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js new file mode 100644 index 00000000000000..46ecab77aa6bd6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/dist/gen-mapping.umd.js @@ -0,0 +1,174 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/set-array'), require('@jridgewell/sourcemap-codec')) : + typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/set-array', '@jridgewell/sourcemap-codec'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.genMapping = {}, global.setArray, global.sourcemapCodec)); +})(this, (function (exports, setArray, sourcemapCodec) { 'use strict'; + + /** + * A low-level API to associate a generated position with an original source position. Line and + * column here are 0-based, unlike `addMapping`. + */ + exports.addSegment = void 0; + /** + * A high-level API to associate a generated position with an original source position. Line is + * 1-based, but column is 0-based, due to legacy behavior in `source-map` library. + */ + exports.addMapping = void 0; + /** + * Adds/removes the content of the source file to the source map. + */ + exports.setSourceContent = void 0; + /** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ + exports.decodedMap = void 0; + /** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ + exports.encodedMap = void 0; + /** + * Returns an array of high-level mapping objects for every recorded segment, which could then be + * passed to the `source-map` library. + */ + exports.allMappings = void 0; + /** + * Provides the state to generate a sourcemap. + */ + class GenMapping { + constructor({ file, sourceRoot } = {}) { + this._names = new setArray.SetArray(); + this._sources = new setArray.SetArray(); + this._sourcesContent = []; + this._mappings = []; + this.file = file; + this.sourceRoot = sourceRoot; + } + } + (() => { + exports.addSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name) => { + const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map; + const line = getLine(mappings, genLine); + if (source == null) { + const seg = [genColumn]; + const index = getColumnIndex(line, genColumn, seg); + return insert(line, index, seg); + } + const sourcesIndex = setArray.put(sources, source); + const seg = name + ? [genColumn, sourcesIndex, sourceLine, sourceColumn, setArray.put(names, name)] + : [genColumn, sourcesIndex, sourceLine, sourceColumn]; + const index = getColumnIndex(line, genColumn, seg); + if (sourcesIndex === sourcesContent.length) + sourcesContent[sourcesIndex] = null; + insert(line, index, seg); + }; + exports.addMapping = (map, mapping) => { + const { generated, source, original, name } = mapping; + return exports.addSegment(map, generated.line - 1, generated.column, source, original == null ? undefined : original.line - 1, original === null || original === void 0 ? void 0 : original.column, name); + }; + exports.setSourceContent = (map, source, content) => { + const { _sources: sources, _sourcesContent: sourcesContent } = map; + sourcesContent[setArray.put(sources, source)] = content; + }; + exports.decodedMap = (map) => { + const { file, sourceRoot, _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map; + return { + version: 3, + file, + names: names.array, + sourceRoot: sourceRoot || undefined, + sources: sources.array, + sourcesContent, + mappings, + }; + }; + exports.encodedMap = (map) => { + const decoded = exports.decodedMap(map); + return Object.assign(Object.assign({}, decoded), { mappings: sourcemapCodec.encode(decoded.mappings) }); + }; + exports.allMappings = (map) => { + const out = []; + const { _mappings: mappings, _sources: sources, _names: names } = map; + for (let i = 0; i < mappings.length; i++) { + const line = mappings[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const generated = { line: i + 1, column: seg[0] }; + let source = undefined; + let original = undefined; + let name = undefined; + if (seg.length !== 1) { + source = sources.array[seg[1]]; + original = { line: seg[2] + 1, column: seg[3] }; + if (seg.length === 5) + name = names.array[seg[4]]; + } + out.push({ generated, source, original, name }); + } + } + return out; + }; + })(); + function getLine(mappings, index) { + for (let i = mappings.length; i <= index; i++) { + mappings[i] = []; + } + return mappings[index]; + } + function getColumnIndex(line, column, seg) { + let index = line.length; + for (let i = index - 1; i >= 0; i--, index--) { + const current = line[i]; + const col = current[0]; + if (col > column) + continue; + if (col < column) + break; + const cmp = compare(current, seg); + if (cmp === 0) + return index; + if (cmp < 0) + break; + } + return index; + } + function compare(a, b) { + let cmp = compareNum(a.length, b.length); + if (cmp !== 0) + return cmp; + // We've already checked genColumn + if (a.length === 1) + return 0; + cmp = compareNum(a[1], b[1]); + if (cmp !== 0) + return cmp; + cmp = compareNum(a[2], b[2]); + if (cmp !== 0) + return cmp; + cmp = compareNum(a[3], b[3]); + if (cmp !== 0) + return cmp; + if (a.length === 4) + return 0; + return compareNum(a[4], b[4]); + } + function compareNum(a, b) { + return a - b; + } + function insert(array, index, value) { + if (index === -1) + return; + for (let i = array.length; i > index; i--) { + array[i] = array[i - 1]; + } + array[index] = value; + } + + exports.GenMapping = GenMapping; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=gen-mapping.umd.js.map diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/package.json b/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/package.json new file mode 100644 index 00000000000000..e614b615a5e22d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@jridgewell/gen-mapping/package.json @@ -0,0 +1,72 @@ +{ + "name": "@jridgewell/gen-mapping", + "version": "0.1.1", + "description": "Generate source maps", + "keywords": [ + "source", + "map" + ], + "author": "Justin Ridgewell ", + "license": "MIT", + "repository": "https://github.com/jridgewell/gen-mapping", + "main": "dist/gen-mapping.umd.js", + "module": "dist/gen-mapping.mjs", + "typings": "dist/types/gen-mapping.d.ts", + "exports": { + ".": { + "browser": "./dist/gen-mapping.umd.js", + "require": "./dist/gen-mapping.umd.js", + "import": "./dist/gen-mapping.mjs" + }, + "./package.json": "./package.json" + }, + "files": [ + "dist" + ], + "engines": { + "node": ">=6.0.0" + }, + "scripts": { + "benchmark": "run-s build:rollup benchmark:*", + "benchmark:install": "cd benchmark && npm install", + "benchmark:only": "node benchmark/index.mjs", + "prebuild": "rm -rf dist", + "build": "run-s -n build:*", + "build:rollup": "rollup -c rollup.config.js", + "build:ts": "tsc --project tsconfig.build.json", + "lint": "run-s -n lint:*", + "lint:prettier": "npm run test:lint:prettier -- --write", + "lint:ts": "npm run test:lint:ts -- --fix", + "pretest": "run-s build:rollup", + "test": "run-s -n test:lint test:coverage", + "test:debug": "mocha --inspect-brk", + "test:lint": "run-s -n test:lint:*", + "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'", + "test:lint:ts": "eslint '{src,test}/**/*.ts'", + "test:only": "mocha", + "test:coverage": "c8 mocha", + "test:watch": "run-p 'build:rollup -- --watch' 'test:only -- --watch'", + "prepublishOnly": "npm run preversion", + "preversion": "run-s test build" + }, + "devDependencies": { + "@rollup/plugin-typescript": "8.3.2", + "@types/mocha": "9.1.1", + "@types/node": "17.0.29", + "@typescript-eslint/eslint-plugin": "5.21.0", + "@typescript-eslint/parser": "5.21.0", + "benchmark": "2.1.4", + "c8": "7.11.2", + "eslint": "8.14.0", + "eslint-config-prettier": "8.5.0", + "mocha": "9.2.2", + "npm-run-all": "4.1.5", + "prettier": "2.6.2", + "rollup": "2.70.2", + "typescript": "4.6.3" + }, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } +} diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs b/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs index b7fa4bd8208cc2..d551aad64121af 100644 --- a/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs +++ b/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs @@ -9,6 +9,14 @@ const schemeRegex = /^[\w+.-]+:\/\//; * 5. Path, including "/", optional. */ const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?/; +/** + * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start + * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive). + * + * 1. Host, optional. + * 2. Path, which may inclue "/", guaranteed. + */ +const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/]*)?)?(\/?.*)/i; function isAbsoluteUrl(input) { return schemeRegex.test(input); } @@ -18,14 +26,25 @@ function isSchemeRelativeUrl(input) { function isAbsolutePath(input) { return input.startsWith('/'); } +function isFileUrl(input) { + return input.startsWith('file:'); +} function parseAbsoluteUrl(input) { const match = urlRegex.exec(input); + return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/'); +} +function parseFileUrl(input) { + const match = fileRegex.exec(input); + const path = match[2]; + return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path); +} +function makeUrl(scheme, user, host, port, path) { return { - scheme: match[1], - user: match[2] || '', - host: match[3], - port: match[4] || '', - path: match[5] || '/', + scheme, + user, + host, + port, + path, relativePath: false, }; } @@ -41,14 +60,15 @@ function parseUrl(input) { url.host = ''; return url; } - if (!isAbsoluteUrl(input)) { - const url = parseAbsoluteUrl('http://foo.com/' + input); - url.scheme = ''; - url.host = ''; - url.relativePath = true; - return url; - } - return parseAbsoluteUrl(input); + if (isFileUrl(input)) + return parseFileUrl(input); + if (isAbsoluteUrl(input)) + return parseAbsoluteUrl(input); + const url = parseAbsoluteUrl('http://foo.com/' + input); + url.scheme = ''; + url.host = ''; + url.relativePath = true; + return url; } function stripPathFilename(path) { // If a path ends with a parent directory "..", then it's a relative path with excess parent @@ -145,7 +165,7 @@ function resolve(input, base) { const baseUrl = parseUrl(base); url.scheme = baseUrl.scheme; // If there's no host, then we were just a path. - if (!url.host || baseUrl.scheme === 'file:') { + if (!url.host) { // The host, user, and port are joined, you can't copy one without the others. url.user = baseUrl.user; url.host = baseUrl.host; diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js b/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js index 015f1af3264e39..9b132d96caf112 100644 --- a/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js +++ b/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js @@ -15,6 +15,14 @@ * 5. Path, including "/", optional. */ const urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?/; + /** + * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start + * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive). + * + * 1. Host, optional. + * 2. Path, which may inclue "/", guaranteed. + */ + const fileRegex = /^file:(?:\/\/((?![a-z]:)[^/]*)?)?(\/?.*)/i; function isAbsoluteUrl(input) { return schemeRegex.test(input); } @@ -24,14 +32,25 @@ function isAbsolutePath(input) { return input.startsWith('/'); } + function isFileUrl(input) { + return input.startsWith('file:'); + } function parseAbsoluteUrl(input) { const match = urlRegex.exec(input); + return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/'); + } + function parseFileUrl(input) { + const match = fileRegex.exec(input); + const path = match[2]; + return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path); + } + function makeUrl(scheme, user, host, port, path) { return { - scheme: match[1], - user: match[2] || '', - host: match[3], - port: match[4] || '', - path: match[5] || '/', + scheme, + user, + host, + port, + path, relativePath: false, }; } @@ -47,14 +66,15 @@ url.host = ''; return url; } - if (!isAbsoluteUrl(input)) { - const url = parseAbsoluteUrl('http://foo.com/' + input); - url.scheme = ''; - url.host = ''; - url.relativePath = true; - return url; - } - return parseAbsoluteUrl(input); + if (isFileUrl(input)) + return parseFileUrl(input); + if (isAbsoluteUrl(input)) + return parseAbsoluteUrl(input); + const url = parseAbsoluteUrl('http://foo.com/' + input); + url.scheme = ''; + url.host = ''; + url.relativePath = true; + return url; } function stripPathFilename(path) { // If a path ends with a parent directory "..", then it's a relative path with excess parent @@ -151,7 +171,7 @@ const baseUrl = parseUrl(base); url.scheme = baseUrl.scheme; // If there's no host, then we were just a path. - if (!url.host || baseUrl.scheme === 'file:') { + if (!url.host) { // The host, user, and port are joined, you can't copy one without the others. url.user = baseUrl.user; url.host = baseUrl.host; diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/package.json b/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/package.json index 40266386cb1ade..00cf2a47e73881 100644 --- a/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/package.json +++ b/tools/node_modules/eslint/node_modules/@jridgewell/resolve-uri/package.json @@ -1,6 +1,6 @@ { "name": "@jridgewell/resolve-uri", - "version": "3.0.5", + "version": "3.0.7", "description": "Resolve a URI relative to an optional base URI", "keywords": [ "resolve", @@ -16,6 +16,7 @@ "typings": "dist/types/resolve-uri.d.ts", "exports": { ".": { + "types": "./dist/types/resolve-uri.d.ts", "browser": "./dist/resolve-uri.umd.js", "require": "./dist/resolve-uri.umd.js", "import": "./dist/resolve-uri.mjs" diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/set-array/LICENSE b/tools/node_modules/eslint/node_modules/@jridgewell/set-array/LICENSE new file mode 100644 index 00000000000000..352f0715f391f0 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@jridgewell/set-array/LICENSE @@ -0,0 +1,19 @@ +Copyright 2022 Justin Ridgewell + +Permission 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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE 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. diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/set-array/dist/set-array.mjs b/tools/node_modules/eslint/node_modules/@jridgewell/set-array/dist/set-array.mjs new file mode 100644 index 00000000000000..b7f1a9cc688cf4 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@jridgewell/set-array/dist/set-array.mjs @@ -0,0 +1,48 @@ +/** + * Gets the index associated with `key` in the backing array, if it is already present. + */ +let get; +/** + * Puts `key` into the backing array, if it is not already present. Returns + * the index of the `key` in the backing array. + */ +let put; +/** + * Pops the last added item out of the SetArray. + */ +let pop; +/** + * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the + * index of the `key` in the backing array. + * + * This is designed to allow synchronizing a second array with the contents of the backing array, + * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, + * and there are never duplicates. + */ +class SetArray { + constructor() { + this._indexes = { __proto__: null }; + this.array = []; + } +} +(() => { + get = (strarr, key) => strarr._indexes[key]; + put = (strarr, key) => { + // The key may or may not be present. If it is present, it's a number. + const index = get(strarr, key); + if (index !== undefined) + return index; + const { array, _indexes: indexes } = strarr; + return (indexes[key] = array.push(key) - 1); + }; + pop = (strarr) => { + const { array, _indexes: indexes } = strarr; + if (array.length === 0) + return; + const last = array.pop(); + indexes[last] = undefined; + }; +})(); + +export { SetArray, get, pop, put }; +//# sourceMappingURL=set-array.mjs.map diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/set-array/dist/set-array.umd.js b/tools/node_modules/eslint/node_modules/@jridgewell/set-array/dist/set-array.umd.js new file mode 100644 index 00000000000000..a1c200a1cb7e83 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@jridgewell/set-array/dist/set-array.umd.js @@ -0,0 +1,58 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.setArray = {})); +})(this, (function (exports) { 'use strict'; + + /** + * Gets the index associated with `key` in the backing array, if it is already present. + */ + exports.get = void 0; + /** + * Puts `key` into the backing array, if it is not already present. Returns + * the index of the `key` in the backing array. + */ + exports.put = void 0; + /** + * Pops the last added item out of the SetArray. + */ + exports.pop = void 0; + /** + * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the + * index of the `key` in the backing array. + * + * This is designed to allow synchronizing a second array with the contents of the backing array, + * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`, + * and there are never duplicates. + */ + class SetArray { + constructor() { + this._indexes = { __proto__: null }; + this.array = []; + } + } + (() => { + exports.get = (strarr, key) => strarr._indexes[key]; + exports.put = (strarr, key) => { + // The key may or may not be present. If it is present, it's a number. + const index = exports.get(strarr, key); + if (index !== undefined) + return index; + const { array, _indexes: indexes } = strarr; + return (indexes[key] = array.push(key) - 1); + }; + exports.pop = (strarr) => { + const { array, _indexes: indexes } = strarr; + if (array.length === 0) + return; + const last = array.pop(); + indexes[last] = undefined; + }; + })(); + + exports.SetArray = SetArray; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=set-array.umd.js.map diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/set-array/package.json b/tools/node_modules/eslint/node_modules/@jridgewell/set-array/package.json new file mode 100644 index 00000000000000..0f0e5b59a2ae75 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/@jridgewell/set-array/package.json @@ -0,0 +1,62 @@ +{ + "name": "@jridgewell/set-array", + "version": "1.1.1", + "description": "Like a Set, but provides the index of the `key` in the backing array", + "keywords": [], + "author": "Justin Ridgewell ", + "license": "MIT", + "repository": "https://github.com/jridgewell/set-array", + "main": "dist/set-array.umd.js", + "module": "dist/set-array.mjs", + "typings": "dist/types/set-array.d.ts", + "exports": { + ".": { + "types": "./dist/types/set-array.d.ts", + "browser": "./dist/set-array.umd.js", + "require": "./dist/set-array.umd.js", + "import": "./dist/set-array.mjs" + }, + "./package.json": "./package.json" + }, + "files": [ + "dist" + ], + "engines": { + "node": ">=6.0.0" + }, + "scripts": { + "prebuild": "rm -rf dist", + "build": "run-s -n build:*", + "build:rollup": "rollup -c rollup.config.js", + "build:ts": "tsc --project tsconfig.build.json", + "lint": "run-s -n lint:*", + "lint:prettier": "npm run test:lint:prettier -- --write", + "lint:ts": "npm run test:lint:ts -- --fix", + "pretest": "run-s build:rollup", + "test": "run-s -n test:lint test:only", + "test:debug": "mocha --inspect-brk", + "test:lint": "run-s -n test:lint:*", + "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'", + "test:lint:ts": "eslint '{src,test}/**/*.ts'", + "test:only": "mocha", + "test:coverage": "c8 mocha", + "test:watch": "mocha --watch", + "prepublishOnly": "npm run preversion", + "preversion": "run-s test build" + }, + "devDependencies": { + "@rollup/plugin-typescript": "8.3.0", + "@types/mocha": "9.1.1", + "@types/node": "17.0.29", + "@typescript-eslint/eslint-plugin": "5.10.0", + "@typescript-eslint/parser": "5.10.0", + "c8": "7.11.0", + "eslint": "8.7.0", + "eslint-config-prettier": "8.3.0", + "mocha": "9.2.0", + "npm-run-all": "4.1.5", + "prettier": "2.5.1", + "rollup": "2.66.0", + "typescript": "4.5.5" + } +} diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs b/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs index 4e92c1e658ccd5..3dff372170b960 100644 --- a/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs +++ b/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs @@ -2,15 +2,15 @@ const comma = ','.charCodeAt(0); const semicolon = ';'.charCodeAt(0); const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; const intToChar = new Uint8Array(64); // 64 possible chars. -const charToInteger = new Uint8Array(128); // z is 122 in ASCII +const charToInt = new Uint8Array(128); // z is 122 in ASCII for (let i = 0; i < chars.length; i++) { const c = chars.charCodeAt(i); - charToInteger[c] = i; intToChar[i] = c; + charToInt[c] = i; } // Provide a fallback for older environments. const td = typeof TextDecoder !== 'undefined' - ? new TextDecoder() + ? /* #__PURE__ */ new TextDecoder() : typeof Buffer !== 'undefined' ? { decode(buf) { @@ -30,56 +30,55 @@ const td = typeof TextDecoder !== 'undefined' function decode(mappings) { const state = new Int32Array(5); const decoded = []; - let line = []; - let sorted = true; - let lastCol = 0; - for (let i = 0; i < mappings.length;) { - const c = mappings.charCodeAt(i); - if (c === comma) { - i++; - } - else if (c === semicolon) { - state[0] = lastCol = 0; - if (!sorted) - sort(line); - sorted = true; - decoded.push(line); - line = []; - i++; - } - else { - i = decodeInteger(mappings, i, state, 0); // generatedCodeColumn + let index = 0; + do { + const semi = indexOf(mappings, index); + const line = []; + let sorted = true; + let lastCol = 0; + state[0] = 0; + for (let i = index; i < semi; i++) { + let seg; + i = decodeInteger(mappings, i, state, 0); // genColumn const col = state[0]; if (col < lastCol) sorted = false; lastCol = col; - if (!hasMoreSegments(mappings, i)) { - line.push([col]); - continue; + if (hasMoreVlq(mappings, i, semi)) { + i = decodeInteger(mappings, i, state, 1); // sourcesIndex + i = decodeInteger(mappings, i, state, 2); // sourceLine + i = decodeInteger(mappings, i, state, 3); // sourceColumn + if (hasMoreVlq(mappings, i, semi)) { + i = decodeInteger(mappings, i, state, 4); // namesIndex + seg = [col, state[1], state[2], state[3], state[4]]; + } + else { + seg = [col, state[1], state[2], state[3]]; + } } - i = decodeInteger(mappings, i, state, 1); // sourceFileIndex - i = decodeInteger(mappings, i, state, 2); // sourceCodeLine - i = decodeInteger(mappings, i, state, 3); // sourceCodeColumn - if (!hasMoreSegments(mappings, i)) { - line.push([col, state[1], state[2], state[3]]); - continue; + else { + seg = [col]; } - i = decodeInteger(mappings, i, state, 4); // nameIndex - line.push([col, state[1], state[2], state[3], state[4]]); + line.push(seg); } - } - if (!sorted) - sort(line); - decoded.push(line); + if (!sorted) + sort(line); + decoded.push(line); + index = semi + 1; + } while (index <= mappings.length); return decoded; } +function indexOf(mappings, index) { + const idx = mappings.indexOf(';', index); + return idx === -1 ? mappings.length : idx; +} function decodeInteger(mappings, pos, state, j) { let value = 0; let shift = 0; let integer = 0; do { const c = mappings.charCodeAt(pos++); - integer = charToInteger[c]; + integer = charToInt[c]; value |= (integer & 31) << shift; shift += 5; } while (integer & 32); @@ -91,13 +90,10 @@ function decodeInteger(mappings, pos, state, j) { state[j] += value; return pos; } -function hasMoreSegments(mappings, i) { - if (i >= mappings.length) - return false; - const c = mappings.charCodeAt(i); - if (c === comma || c === semicolon) +function hasMoreVlq(mappings, i, length) { + if (i >= length) return false; - return true; + return mappings.charCodeAt(i) !== comma; } function sort(line) { line.sort(sortComparator); @@ -107,12 +103,19 @@ function sortComparator(a, b) { } function encode(decoded) { const state = new Int32Array(5); - let buf = new Uint8Array(1024); + const bufLength = 1024 * 16; + const subLength = bufLength - 36; + const buf = new Uint8Array(bufLength); + const sub = buf.subarray(0, subLength); let pos = 0; + let out = ''; for (let i = 0; i < decoded.length; i++) { const line = decoded[i]; if (i > 0) { - buf = reserve(buf, pos, 1); + if (pos === bufLength) { + out += td.decode(buf); + pos = 0; + } buf[pos++] = semicolon; } if (line.length === 0) @@ -122,28 +125,25 @@ function encode(decoded) { const segment = line[j]; // We can push up to 5 ints, each int can take at most 7 chars, and we // may push a comma. - buf = reserve(buf, pos, 36); + if (pos > subLength) { + out += td.decode(sub); + buf.copyWithin(0, subLength, pos); + pos -= subLength; + } if (j > 0) buf[pos++] = comma; - pos = encodeInteger(buf, pos, state, segment, 0); // generatedCodeColumn + pos = encodeInteger(buf, pos, state, segment, 0); // genColumn if (segment.length === 1) continue; - pos = encodeInteger(buf, pos, state, segment, 1); // sourceFileIndex - pos = encodeInteger(buf, pos, state, segment, 2); // sourceCodeLine - pos = encodeInteger(buf, pos, state, segment, 3); // sourceCodeColumn + pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex + pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine + pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn if (segment.length === 4) continue; - pos = encodeInteger(buf, pos, state, segment, 4); // nameIndex + pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex } } - return td.decode(buf.subarray(0, pos)); -} -function reserve(buf, pos, count) { - if (buf.length > pos + count) - return buf; - const swap = new Uint8Array(buf.length * 2); - swap.set(buf); - return swap; + return out + td.decode(buf.subarray(0, pos)); } function encodeInteger(buf, pos, state, segment, j) { const next = segment[j]; diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js b/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js index b5aa0c43c3e8e7..bec92a9c61a0cd 100644 --- a/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js +++ b/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js @@ -8,15 +8,15 @@ const semicolon = ';'.charCodeAt(0); const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; const intToChar = new Uint8Array(64); // 64 possible chars. - const charToInteger = new Uint8Array(128); // z is 122 in ASCII + const charToInt = new Uint8Array(128); // z is 122 in ASCII for (let i = 0; i < chars.length; i++) { const c = chars.charCodeAt(i); - charToInteger[c] = i; intToChar[i] = c; + charToInt[c] = i; } // Provide a fallback for older environments. const td = typeof TextDecoder !== 'undefined' - ? new TextDecoder() + ? /* #__PURE__ */ new TextDecoder() : typeof Buffer !== 'undefined' ? { decode(buf) { @@ -36,56 +36,55 @@ function decode(mappings) { const state = new Int32Array(5); const decoded = []; - let line = []; - let sorted = true; - let lastCol = 0; - for (let i = 0; i < mappings.length;) { - const c = mappings.charCodeAt(i); - if (c === comma) { - i++; - } - else if (c === semicolon) { - state[0] = lastCol = 0; - if (!sorted) - sort(line); - sorted = true; - decoded.push(line); - line = []; - i++; - } - else { - i = decodeInteger(mappings, i, state, 0); // generatedCodeColumn + let index = 0; + do { + const semi = indexOf(mappings, index); + const line = []; + let sorted = true; + let lastCol = 0; + state[0] = 0; + for (let i = index; i < semi; i++) { + let seg; + i = decodeInteger(mappings, i, state, 0); // genColumn const col = state[0]; if (col < lastCol) sorted = false; lastCol = col; - if (!hasMoreSegments(mappings, i)) { - line.push([col]); - continue; + if (hasMoreVlq(mappings, i, semi)) { + i = decodeInteger(mappings, i, state, 1); // sourcesIndex + i = decodeInteger(mappings, i, state, 2); // sourceLine + i = decodeInteger(mappings, i, state, 3); // sourceColumn + if (hasMoreVlq(mappings, i, semi)) { + i = decodeInteger(mappings, i, state, 4); // namesIndex + seg = [col, state[1], state[2], state[3], state[4]]; + } + else { + seg = [col, state[1], state[2], state[3]]; + } } - i = decodeInteger(mappings, i, state, 1); // sourceFileIndex - i = decodeInteger(mappings, i, state, 2); // sourceCodeLine - i = decodeInteger(mappings, i, state, 3); // sourceCodeColumn - if (!hasMoreSegments(mappings, i)) { - line.push([col, state[1], state[2], state[3]]); - continue; + else { + seg = [col]; } - i = decodeInteger(mappings, i, state, 4); // nameIndex - line.push([col, state[1], state[2], state[3], state[4]]); + line.push(seg); } - } - if (!sorted) - sort(line); - decoded.push(line); + if (!sorted) + sort(line); + decoded.push(line); + index = semi + 1; + } while (index <= mappings.length); return decoded; } + function indexOf(mappings, index) { + const idx = mappings.indexOf(';', index); + return idx === -1 ? mappings.length : idx; + } function decodeInteger(mappings, pos, state, j) { let value = 0; let shift = 0; let integer = 0; do { const c = mappings.charCodeAt(pos++); - integer = charToInteger[c]; + integer = charToInt[c]; value |= (integer & 31) << shift; shift += 5; } while (integer & 32); @@ -97,13 +96,10 @@ state[j] += value; return pos; } - function hasMoreSegments(mappings, i) { - if (i >= mappings.length) - return false; - const c = mappings.charCodeAt(i); - if (c === comma || c === semicolon) + function hasMoreVlq(mappings, i, length) { + if (i >= length) return false; - return true; + return mappings.charCodeAt(i) !== comma; } function sort(line) { line.sort(sortComparator); @@ -113,12 +109,19 @@ } function encode(decoded) { const state = new Int32Array(5); - let buf = new Uint8Array(1024); + const bufLength = 1024 * 16; + const subLength = bufLength - 36; + const buf = new Uint8Array(bufLength); + const sub = buf.subarray(0, subLength); let pos = 0; + let out = ''; for (let i = 0; i < decoded.length; i++) { const line = decoded[i]; if (i > 0) { - buf = reserve(buf, pos, 1); + if (pos === bufLength) { + out += td.decode(buf); + pos = 0; + } buf[pos++] = semicolon; } if (line.length === 0) @@ -128,28 +131,25 @@ const segment = line[j]; // We can push up to 5 ints, each int can take at most 7 chars, and we // may push a comma. - buf = reserve(buf, pos, 36); + if (pos > subLength) { + out += td.decode(sub); + buf.copyWithin(0, subLength, pos); + pos -= subLength; + } if (j > 0) buf[pos++] = comma; - pos = encodeInteger(buf, pos, state, segment, 0); // generatedCodeColumn + pos = encodeInteger(buf, pos, state, segment, 0); // genColumn if (segment.length === 1) continue; - pos = encodeInteger(buf, pos, state, segment, 1); // sourceFileIndex - pos = encodeInteger(buf, pos, state, segment, 2); // sourceCodeLine - pos = encodeInteger(buf, pos, state, segment, 3); // sourceCodeColumn + pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex + pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine + pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn if (segment.length === 4) continue; - pos = encodeInteger(buf, pos, state, segment, 4); // nameIndex + pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex } } - return td.decode(buf.subarray(0, pos)); - } - function reserve(buf, pos, count) { - if (buf.length > pos + count) - return buf; - const swap = new Uint8Array(buf.length * 2); - swap.set(buf); - return swap; + return out + td.decode(buf.subarray(0, pos)); } function encodeInteger(buf, pos, state, segment, j) { const next = segment[j]; diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/package.json b/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/package.json index 0dc07c9103776a..f110ec0648cdfa 100644 --- a/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/package.json +++ b/tools/node_modules/eslint/node_modules/@jridgewell/sourcemap-codec/package.json @@ -1,6 +1,6 @@ { "name": "@jridgewell/sourcemap-codec", - "version": "1.4.11", + "version": "1.4.13", "description": "Encode/decode sourcemap mappings", "keywords": [ "sourcemap", @@ -14,6 +14,7 @@ ], "exports": { ".": { + "types": "./dist/types/sourcemap-codec.d.ts", "browser": "./dist/sourcemap-codec.umd.js", "import": "./dist/sourcemap-codec.mjs", "require": "./dist/sourcemap-codec.umd.js" @@ -21,8 +22,9 @@ "./package.json": "./package.json" }, "scripts": { - "benchmark": "run-s build:rollup benchmark:only", - "benchmark:only": "node benchmark/index.js", + "benchmark": "run-s build:rollup benchmark:*", + "benchmark:install": "cd benchmark && npm install", + "benchmark:only": "node --expose-gc benchmark/index.js", "build": "run-s -n build:*", "build:rollup": "rollup -c rollup.config.js", "build:ts": "tsc --project tsconfig.build.json", @@ -54,7 +56,7 @@ "@typescript-eslint/eslint-plugin": "5.10.0", "@typescript-eslint/parser": "5.10.0", "benchmark": "2.1.4", - "c8": "7.11.0", + "c8": "7.11.2", "eslint": "8.7.0", "eslint-config-prettier": "8.3.0", "mocha": "9.2.0", diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs b/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs index fd59d7605634cb..38ad09ab19da81 100644 --- a/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs +++ b/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs @@ -1,4 +1,4 @@ -import { decode, encode } from '@jridgewell/sourcemap-codec'; +import { encode, decode } from '@jridgewell/sourcemap-codec'; import resolveUri from '@jridgewell/resolve-uri'; function resolve(input, base) { @@ -20,6 +20,14 @@ function stripFilename(path) { return path.slice(0, index + 1); } +const COLUMN = 0; +const SOURCES_INDEX = 1; +const SOURCE_LINE = 2; +const SOURCE_COLUMN = 3; +const NAMES_INDEX = 4; +const REV_GENERATED_LINE = 1; +const REV_GENERATED_COLUMN = 2; + function maybeSort(mappings, owned) { const unsortedIndex = nextUnsortedSegmentLine(mappings, 0); if (unsortedIndex === mappings.length) @@ -42,7 +50,7 @@ function nextUnsortedSegmentLine(mappings, start) { } function isSorted(line) { for (let j = 1; j < line.length; j++) { - if (line[j][0] < line[j - 1][0]) { + if (line[j][COLUMN] < line[j - 1][COLUMN]) { return false; } } @@ -54,9 +62,10 @@ function sortSegments(line, owned) { return line.sort(sortComparator); } function sortComparator(a, b) { - return a[0] - b[0]; + return a[COLUMN] - b[COLUMN]; } +let found = false; /** * A binary search implementation that returns the index if a match is found. * If no match is found, then the left-index (the index associated with the item that comes just @@ -76,8 +85,9 @@ function sortComparator(a, b) { function binarySearch(haystack, needle, low, high) { while (low <= high) { const mid = low + ((high - low) >> 1); - const cmp = haystack[mid][0] - needle; + const cmp = haystack[mid][COLUMN] - needle; if (cmp === 0) { + found = true; return mid; } if (cmp < 0) { @@ -87,8 +97,23 @@ function binarySearch(haystack, needle, low, high) { high = mid - 1; } } + found = false; return low - 1; } +function upperBound(haystack, needle, index) { + for (let i = index + 1; i < haystack.length; index = i++) { + if (haystack[i][COLUMN] !== needle) + break; + } + return index; +} +function lowerBound(haystack, needle, index) { + for (let i = index - 1; i >= 0; index = i--) { + if (haystack[i][COLUMN] !== needle) + break; + } + return index; +} function memoizedState() { return { lastKey: -1, @@ -106,11 +131,12 @@ function memoizedBinarySearch(haystack, needle, state, key) { let high = haystack.length - 1; if (key === lastKey) { if (needle === lastNeedle) { + found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle; return lastIndex; } if (needle >= lastNeedle) { // lastIndex may be -1 if the previous needle was not found. - low = Math.max(lastIndex, 0); + low = lastIndex === -1 ? 0 : lastIndex; } else { high = lastIndex; @@ -121,12 +147,149 @@ function memoizedBinarySearch(haystack, needle, state, key) { return (state.lastIndex = binarySearch(haystack, needle, low, high)); } -const INVALID_MAPPING = Object.freeze({ - source: null, - line: null, - column: null, - name: null, -}); +// Rebuilds the original source files, with mappings that are ordered by source line/column instead +// of generated line/column. +function buildBySources(decoded, memos) { + const sources = memos.map(buildNullArray); + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + if (seg.length === 1) + continue; + const sourceIndex = seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + const originalSource = sources[sourceIndex]; + const originalLine = (originalSource[sourceLine] || (originalSource[sourceLine] = [])); + const memo = memos[sourceIndex]; + // The binary search either found a match, or it found the left-index just before where the + // segment should go. Either way, we want to insert after that. And there may be multiple + // generated segments associated with an original location, so there may need to move several + // indexes before we find where we need to insert. + const index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine)); + insert(originalLine, (memo.lastIndex = index + 1), [sourceColumn, i, seg[COLUMN]]); + } + } + return sources; +} +function insert(array, index, value) { + for (let i = array.length; i > index; i--) { + array[i] = array[i - 1]; + } + array[index] = value; +} +// Null arrays allow us to use ordered index keys without actually allocating contiguous memory like +// a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations. +// Numeric properties on objects are magically sorted in ascending order by the engine regardless of +// the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending +// order when iterating with for-in. +function buildNullArray() { + return { __proto__: null }; +} + +const AnyMap = function (map, mapUrl) { + const parsed = typeof map === 'string' ? JSON.parse(map) : map; + if (!('sections' in parsed)) + return new TraceMap(parsed, mapUrl); + const mappings = []; + const sources = []; + const sourcesContent = []; + const names = []; + recurse(parsed, mapUrl, mappings, sources, sourcesContent, names, 0, 0, Infinity, Infinity); + const joined = { + version: 3, + file: parsed.file, + names, + sources, + sourcesContent, + mappings, + }; + return presortedDecodedMap(joined); +}; +function recurse(input, mapUrl, mappings, sources, sourcesContent, names, lineOffset, columnOffset, stopLine, stopColumn) { + const { sections } = input; + for (let i = 0; i < sections.length; i++) { + const { map, offset } = sections[i]; + let sl = stopLine; + let sc = stopColumn; + if (i + 1 < sections.length) { + const nextOffset = sections[i + 1].offset; + sl = Math.min(stopLine, lineOffset + nextOffset.line); + if (sl === stopLine) { + sc = Math.min(stopColumn, columnOffset + nextOffset.column); + } + else if (sl < stopLine) { + sc = columnOffset + nextOffset.column; + } + } + addSection(map, mapUrl, mappings, sources, sourcesContent, names, lineOffset + offset.line, columnOffset + offset.column, sl, sc); + } +} +function addSection(input, mapUrl, mappings, sources, sourcesContent, names, lineOffset, columnOffset, stopLine, stopColumn) { + if ('sections' in input) + return recurse(...arguments); + const map = new TraceMap(input, mapUrl); + const sourcesOffset = sources.length; + const namesOffset = names.length; + const decoded = decodedMappings(map); + const { resolvedSources, sourcesContent: contents } = map; + append(sources, resolvedSources); + append(names, map.names); + if (contents) + append(sourcesContent, contents); + else + for (let i = 0; i < resolvedSources.length; i++) + sourcesContent.push(null); + for (let i = 0; i < decoded.length; i++) { + const lineI = lineOffset + i; + // We can only add so many lines before we step into the range that the next section's map + // controls. When we get to the last line, then we'll start checking the segments to see if + // they've crossed into the column range. But it may not have any columns that overstep, so we + // still need to check that we don't overstep lines, too. + if (lineI > stopLine) + return; + // The out line may already exist in mappings (if we're continuing the line started by a + // previous section). Or, we may have jumped ahead several lines to start this section. + const out = getLine(mappings, lineI); + // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the + // map can be multiple lines), it doesn't. + const cOffset = i === 0 ? columnOffset : 0; + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const column = cOffset + seg[COLUMN]; + // If this segment steps into the column range that the next section's map controls, we need + // to stop early. + if (lineI === stopLine && column >= stopColumn) + return; + if (seg.length === 1) { + out.push([column]); + continue; + } + const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + out.push(seg.length === 4 + ? [column, sourcesIndex, sourceLine, sourceColumn] + : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]); + } + } +} +function append(arr, other) { + for (let i = 0; i < other.length; i++) + arr.push(other[i]); +} +function getLine(arr, index) { + for (let i = arr.length; i <= index; i++) + arr[i] = []; + return arr[index]; +} + +const LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)'; +const COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)'; +const LEAST_UPPER_BOUND = -1; +const GREATEST_LOWER_BOUND = 1; /** * Returns the encoded (VLQ string) form of the SourceMap's mappings field. */ @@ -146,20 +309,46 @@ let traceSegment; * `source-map` library. */ let originalPositionFor; +/** + * Finds the source/line/column directly after the mapping returned by originalPositionFor, provided + * the found mapping is from the same source and line as the originalPositionFor mapping. + * + * Eg, in the code `let id = 1`, `originalPositionAfter` could find the mapping associated with `1` + * using the same needle that would return `id` when calling `originalPositionFor`. + */ +let generatedPositionFor; /** * Iterates each mapping in generated position order. */ let eachMapping; +/** + * Retrieves the source content for a particular source, if its found. Returns null if not. + */ +let sourceContentFor; /** * A helper that skips sorting of the input map's mappings array, which can be expensive for larger * maps. */ let presortedDecodedMap; +/** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +let decodedMap; +/** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ +let encodedMap; class TraceMap { constructor(map, mapUrl) { - this._binarySearchMemo = memoizedState(); + this._decodedMemo = memoizedState(); + this._bySources = undefined; + this._bySourceMemos = undefined; const isString = typeof map === 'string'; - const parsed = isString ? JSON.parse(map) : map; + if (!isString && map._decodedMemo) + return map; + const parsed = (isString ? JSON.parse(map) : map); const { version, file, names, sourceRoot, sources, sourcesContent } = parsed; this.version = version; this.file = file; @@ -167,17 +356,12 @@ class TraceMap { this.sourceRoot = sourceRoot; this.sources = sources; this.sourcesContent = sourcesContent; - if (sourceRoot || mapUrl) { - const from = resolve(sourceRoot || '', stripFilename(mapUrl)); - this.resolvedSources = sources.map((s) => resolve(s || '', from)); - } - else { - this.resolvedSources = sources.map((s) => s || ''); - } + const from = resolve(sourceRoot || '', stripFilename(mapUrl)); + this.resolvedSources = sources.map((s) => resolve(s || '', from)); const { mappings } = parsed; if (typeof mappings === 'string') { this._encoded = mappings; - this._decoded = decode(mappings); + this._decoded = undefined; } else { this._encoded = undefined; @@ -191,42 +375,59 @@ class TraceMap { return ((_a = map._encoded) !== null && _a !== void 0 ? _a : (map._encoded = encode(map._decoded))); }; decodedMappings = (map) => { - return map._decoded; + return (map._decoded || (map._decoded = decode(map._encoded))); }; traceSegment = (map, line, column) => { - const decoded = map._decoded; + const decoded = decodedMappings(map); // It's common for parent source maps to have pointers to lines that have no // mapping (like a "//# sourceMappingURL=") at the end of the child file. if (line >= decoded.length) return null; - const segments = decoded[line]; - const index = memoizedBinarySearch(segments, column, map._binarySearchMemo, line); - // we come before any mapped segment - if (index < 0) - return null; - return segments[index]; + return traceSegmentInternal(decoded[line], map._decodedMemo, line, column, GREATEST_LOWER_BOUND); }; - originalPositionFor = (map, { line, column }) => { - if (line < 1) - throw new Error('`line` must be greater than 0 (lines start at line 1)'); - if (column < 0) { - throw new Error('`column` must be greater than or equal to 0 (columns start at column 0)'); - } - const segment = traceSegment(map, line - 1, column); + originalPositionFor = (map, { line, column, bias }) => { + line--; + if (line < 0) + throw new Error(LINE_GTR_ZERO); + if (column < 0) + throw new Error(COL_GTR_EQ_ZERO); + const decoded = decodedMappings(map); + // It's common for parent source maps to have pointers to lines that have no + // mapping (like a "//# sourceMappingURL=") at the end of the child file. + if (line >= decoded.length) + return OMapping(null, null, null, null); + const segment = traceSegmentInternal(decoded[line], map._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND); if (segment == null) - return INVALID_MAPPING; + return OMapping(null, null, null, null); if (segment.length == 1) - return INVALID_MAPPING; + return OMapping(null, null, null, null); const { names, resolvedSources } = map; - return { - source: resolvedSources[segment[1]], - line: segment[2] + 1, - column: segment[3], - name: segment.length === 5 ? names[segment[4]] : null, - }; + return OMapping(resolvedSources[segment[SOURCES_INDEX]], segment[SOURCE_LINE] + 1, segment[SOURCE_COLUMN], segment.length === 5 ? names[segment[NAMES_INDEX]] : null); + }; + generatedPositionFor = (map, { source, line, column, bias }) => { + line--; + if (line < 0) + throw new Error(LINE_GTR_ZERO); + if (column < 0) + throw new Error(COL_GTR_EQ_ZERO); + const { sources, resolvedSources } = map; + let sourceIndex = sources.indexOf(source); + if (sourceIndex === -1) + sourceIndex = resolvedSources.indexOf(source); + if (sourceIndex === -1) + return GMapping(null, null); + const generated = (map._bySources || (map._bySources = buildBySources(decodedMappings(map), (map._bySourceMemos = sources.map(memoizedState))))); + const memos = map._bySourceMemos; + const segments = generated[sourceIndex][line]; + if (segments == null) + return GMapping(null, null); + const segment = traceSegmentInternal(segments, memos[sourceIndex], line, column, bias || GREATEST_LOWER_BOUND); + if (segment == null) + return GMapping(null, null); + return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]); }; eachMapping = (map, cb) => { - const decoded = map._decoded; + const decoded = decodedMappings(map); const { names, resolvedSources } = map; for (let i = 0; i < decoded.length; i++) { const line = decoded[i]; @@ -256,6 +457,15 @@ class TraceMap { } } }; + sourceContentFor = (map, source) => { + const { sources, resolvedSources, sourcesContent } = map; + if (sourcesContent == null) + return null; + let index = sources.indexOf(source); + if (index === -1) + index = resolvedSources.indexOf(source); + return index === -1 ? null : sourcesContent[index]; + }; presortedDecodedMap = (map, mapUrl) => { const clone = Object.assign({}, map); clone.mappings = []; @@ -263,7 +473,46 @@ class TraceMap { tracer._decoded = map.mappings; return tracer; }; + decodedMap = (map) => { + return { + version: 3, + file: map.file, + names: map.names, + sourceRoot: map.sourceRoot, + sources: map.sources, + sourcesContent: map.sourcesContent, + mappings: decodedMappings(map), + }; + }; + encodedMap = (map) => { + return { + version: 3, + file: map.file, + names: map.names, + sourceRoot: map.sourceRoot, + sources: map.sources, + sourcesContent: map.sourcesContent, + mappings: encodedMappings(map), + }; + }; })(); +function OMapping(source, line, column, name) { + return { source, line, column, name }; +} +function GMapping(line, column) { + return { line, column }; +} +function traceSegmentInternal(segments, memo, line, column, bias) { + let index = memoizedBinarySearch(segments, column, memo, line); + if (found) { + index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index); + } + else if (bias === LEAST_UPPER_BOUND) + index++; + if (index === -1 || index === segments.length) + return null; + return segments[index]; +} -export { TraceMap, decodedMappings, eachMapping, encodedMappings, originalPositionFor, presortedDecodedMap, traceSegment }; +export { AnyMap, GREATEST_LOWER_BOUND, LEAST_UPPER_BOUND, TraceMap, decodedMap, decodedMappings, eachMapping, encodedMap, encodedMappings, generatedPositionFor, originalPositionFor, presortedDecodedMap, sourceContentFor, traceSegment }; //# sourceMappingURL=trace-mapping.mjs.map diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js b/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js index 19f8f26a3e3cb6..1b30d8fbac8338 100644 --- a/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js +++ b/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js @@ -27,6 +27,14 @@ return path.slice(0, index + 1); } + const COLUMN = 0; + const SOURCES_INDEX = 1; + const SOURCE_LINE = 2; + const SOURCE_COLUMN = 3; + const NAMES_INDEX = 4; + const REV_GENERATED_LINE = 1; + const REV_GENERATED_COLUMN = 2; + function maybeSort(mappings, owned) { const unsortedIndex = nextUnsortedSegmentLine(mappings, 0); if (unsortedIndex === mappings.length) @@ -49,7 +57,7 @@ } function isSorted(line) { for (let j = 1; j < line.length; j++) { - if (line[j][0] < line[j - 1][0]) { + if (line[j][COLUMN] < line[j - 1][COLUMN]) { return false; } } @@ -61,9 +69,10 @@ return line.sort(sortComparator); } function sortComparator(a, b) { - return a[0] - b[0]; + return a[COLUMN] - b[COLUMN]; } + let found = false; /** * A binary search implementation that returns the index if a match is found. * If no match is found, then the left-index (the index associated with the item that comes just @@ -83,8 +92,9 @@ function binarySearch(haystack, needle, low, high) { while (low <= high) { const mid = low + ((high - low) >> 1); - const cmp = haystack[mid][0] - needle; + const cmp = haystack[mid][COLUMN] - needle; if (cmp === 0) { + found = true; return mid; } if (cmp < 0) { @@ -94,8 +104,23 @@ high = mid - 1; } } + found = false; return low - 1; } + function upperBound(haystack, needle, index) { + for (let i = index + 1; i < haystack.length; index = i++) { + if (haystack[i][COLUMN] !== needle) + break; + } + return index; + } + function lowerBound(haystack, needle, index) { + for (let i = index - 1; i >= 0; index = i--) { + if (haystack[i][COLUMN] !== needle) + break; + } + return index; + } function memoizedState() { return { lastKey: -1, @@ -113,11 +138,12 @@ let high = haystack.length - 1; if (key === lastKey) { if (needle === lastNeedle) { + found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle; return lastIndex; } if (needle >= lastNeedle) { // lastIndex may be -1 if the previous needle was not found. - low = Math.max(lastIndex, 0); + low = lastIndex === -1 ? 0 : lastIndex; } else { high = lastIndex; @@ -128,12 +154,149 @@ return (state.lastIndex = binarySearch(haystack, needle, low, high)); } - const INVALID_MAPPING = Object.freeze({ - source: null, - line: null, - column: null, - name: null, - }); + // Rebuilds the original source files, with mappings that are ordered by source line/column instead + // of generated line/column. + function buildBySources(decoded, memos) { + const sources = memos.map(buildNullArray); + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + if (seg.length === 1) + continue; + const sourceIndex = seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + const originalSource = sources[sourceIndex]; + const originalLine = (originalSource[sourceLine] || (originalSource[sourceLine] = [])); + const memo = memos[sourceIndex]; + // The binary search either found a match, or it found the left-index just before where the + // segment should go. Either way, we want to insert after that. And there may be multiple + // generated segments associated with an original location, so there may need to move several + // indexes before we find where we need to insert. + const index = upperBound(originalLine, sourceColumn, memoizedBinarySearch(originalLine, sourceColumn, memo, sourceLine)); + insert(originalLine, (memo.lastIndex = index + 1), [sourceColumn, i, seg[COLUMN]]); + } + } + return sources; + } + function insert(array, index, value) { + for (let i = array.length; i > index; i--) { + array[i] = array[i - 1]; + } + array[index] = value; + } + // Null arrays allow us to use ordered index keys without actually allocating contiguous memory like + // a real array. We use a null-prototype object to avoid prototype pollution and deoptimizations. + // Numeric properties on objects are magically sorted in ascending order by the engine regardless of + // the insertion order. So, by setting any numeric keys, even out of order, we'll get ascending + // order when iterating with for-in. + function buildNullArray() { + return { __proto__: null }; + } + + const AnyMap = function (map, mapUrl) { + const parsed = typeof map === 'string' ? JSON.parse(map) : map; + if (!('sections' in parsed)) + return new TraceMap(parsed, mapUrl); + const mappings = []; + const sources = []; + const sourcesContent = []; + const names = []; + recurse(parsed, mapUrl, mappings, sources, sourcesContent, names, 0, 0, Infinity, Infinity); + const joined = { + version: 3, + file: parsed.file, + names, + sources, + sourcesContent, + mappings, + }; + return exports.presortedDecodedMap(joined); + }; + function recurse(input, mapUrl, mappings, sources, sourcesContent, names, lineOffset, columnOffset, stopLine, stopColumn) { + const { sections } = input; + for (let i = 0; i < sections.length; i++) { + const { map, offset } = sections[i]; + let sl = stopLine; + let sc = stopColumn; + if (i + 1 < sections.length) { + const nextOffset = sections[i + 1].offset; + sl = Math.min(stopLine, lineOffset + nextOffset.line); + if (sl === stopLine) { + sc = Math.min(stopColumn, columnOffset + nextOffset.column); + } + else if (sl < stopLine) { + sc = columnOffset + nextOffset.column; + } + } + addSection(map, mapUrl, mappings, sources, sourcesContent, names, lineOffset + offset.line, columnOffset + offset.column, sl, sc); + } + } + function addSection(input, mapUrl, mappings, sources, sourcesContent, names, lineOffset, columnOffset, stopLine, stopColumn) { + if ('sections' in input) + return recurse(...arguments); + const map = new TraceMap(input, mapUrl); + const sourcesOffset = sources.length; + const namesOffset = names.length; + const decoded = exports.decodedMappings(map); + const { resolvedSources, sourcesContent: contents } = map; + append(sources, resolvedSources); + append(names, map.names); + if (contents) + append(sourcesContent, contents); + else + for (let i = 0; i < resolvedSources.length; i++) + sourcesContent.push(null); + for (let i = 0; i < decoded.length; i++) { + const lineI = lineOffset + i; + // We can only add so many lines before we step into the range that the next section's map + // controls. When we get to the last line, then we'll start checking the segments to see if + // they've crossed into the column range. But it may not have any columns that overstep, so we + // still need to check that we don't overstep lines, too. + if (lineI > stopLine) + return; + // The out line may already exist in mappings (if we're continuing the line started by a + // previous section). Or, we may have jumped ahead several lines to start this section. + const out = getLine(mappings, lineI); + // On the 0th loop, the section's column offset shifts us forward. On all other lines (since the + // map can be multiple lines), it doesn't. + const cOffset = i === 0 ? columnOffset : 0; + const line = decoded[i]; + for (let j = 0; j < line.length; j++) { + const seg = line[j]; + const column = cOffset + seg[COLUMN]; + // If this segment steps into the column range that the next section's map controls, we need + // to stop early. + if (lineI === stopLine && column >= stopColumn) + return; + if (seg.length === 1) { + out.push([column]); + continue; + } + const sourcesIndex = sourcesOffset + seg[SOURCES_INDEX]; + const sourceLine = seg[SOURCE_LINE]; + const sourceColumn = seg[SOURCE_COLUMN]; + out.push(seg.length === 4 + ? [column, sourcesIndex, sourceLine, sourceColumn] + : [column, sourcesIndex, sourceLine, sourceColumn, namesOffset + seg[NAMES_INDEX]]); + } + } + } + function append(arr, other) { + for (let i = 0; i < other.length; i++) + arr.push(other[i]); + } + function getLine(arr, index) { + for (let i = arr.length; i <= index; i++) + arr[i] = []; + return arr[index]; + } + + const LINE_GTR_ZERO = '`line` must be greater than 0 (lines start at line 1)'; + const COL_GTR_EQ_ZERO = '`column` must be greater than or equal to 0 (columns start at column 0)'; + const LEAST_UPPER_BOUND = -1; + const GREATEST_LOWER_BOUND = 1; /** * Returns the encoded (VLQ string) form of the SourceMap's mappings field. */ @@ -153,20 +316,46 @@ * `source-map` library. */ exports.originalPositionFor = void 0; + /** + * Finds the source/line/column directly after the mapping returned by originalPositionFor, provided + * the found mapping is from the same source and line as the originalPositionFor mapping. + * + * Eg, in the code `let id = 1`, `originalPositionAfter` could find the mapping associated with `1` + * using the same needle that would return `id` when calling `originalPositionFor`. + */ + exports.generatedPositionFor = void 0; /** * Iterates each mapping in generated position order. */ exports.eachMapping = void 0; + /** + * Retrieves the source content for a particular source, if its found. Returns null if not. + */ + exports.sourceContentFor = void 0; /** * A helper that skips sorting of the input map's mappings array, which can be expensive for larger * maps. */ exports.presortedDecodedMap = void 0; + /** + * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ + exports.decodedMap = void 0; + /** + * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects + * a sourcemap, or to JSON.stringify. + */ + exports.encodedMap = void 0; class TraceMap { constructor(map, mapUrl) { - this._binarySearchMemo = memoizedState(); + this._decodedMemo = memoizedState(); + this._bySources = undefined; + this._bySourceMemos = undefined; const isString = typeof map === 'string'; - const parsed = isString ? JSON.parse(map) : map; + if (!isString && map._decodedMemo) + return map; + const parsed = (isString ? JSON.parse(map) : map); const { version, file, names, sourceRoot, sources, sourcesContent } = parsed; this.version = version; this.file = file; @@ -174,17 +363,12 @@ this.sourceRoot = sourceRoot; this.sources = sources; this.sourcesContent = sourcesContent; - if (sourceRoot || mapUrl) { - const from = resolve(sourceRoot || '', stripFilename(mapUrl)); - this.resolvedSources = sources.map((s) => resolve(s || '', from)); - } - else { - this.resolvedSources = sources.map((s) => s || ''); - } + const from = resolve(sourceRoot || '', stripFilename(mapUrl)); + this.resolvedSources = sources.map((s) => resolve(s || '', from)); const { mappings } = parsed; if (typeof mappings === 'string') { this._encoded = mappings; - this._decoded = sourcemapCodec.decode(mappings); + this._decoded = undefined; } else { this._encoded = undefined; @@ -198,42 +382,59 @@ return ((_a = map._encoded) !== null && _a !== void 0 ? _a : (map._encoded = sourcemapCodec.encode(map._decoded))); }; exports.decodedMappings = (map) => { - return map._decoded; + return (map._decoded || (map._decoded = sourcemapCodec.decode(map._encoded))); }; exports.traceSegment = (map, line, column) => { - const decoded = map._decoded; + const decoded = exports.decodedMappings(map); // It's common for parent source maps to have pointers to lines that have no // mapping (like a "//# sourceMappingURL=") at the end of the child file. if (line >= decoded.length) return null; - const segments = decoded[line]; - const index = memoizedBinarySearch(segments, column, map._binarySearchMemo, line); - // we come before any mapped segment - if (index < 0) - return null; - return segments[index]; + return traceSegmentInternal(decoded[line], map._decodedMemo, line, column, GREATEST_LOWER_BOUND); }; - exports.originalPositionFor = (map, { line, column }) => { - if (line < 1) - throw new Error('`line` must be greater than 0 (lines start at line 1)'); - if (column < 0) { - throw new Error('`column` must be greater than or equal to 0 (columns start at column 0)'); - } - const segment = exports.traceSegment(map, line - 1, column); + exports.originalPositionFor = (map, { line, column, bias }) => { + line--; + if (line < 0) + throw new Error(LINE_GTR_ZERO); + if (column < 0) + throw new Error(COL_GTR_EQ_ZERO); + const decoded = exports.decodedMappings(map); + // It's common for parent source maps to have pointers to lines that have no + // mapping (like a "//# sourceMappingURL=") at the end of the child file. + if (line >= decoded.length) + return OMapping(null, null, null, null); + const segment = traceSegmentInternal(decoded[line], map._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND); if (segment == null) - return INVALID_MAPPING; + return OMapping(null, null, null, null); if (segment.length == 1) - return INVALID_MAPPING; + return OMapping(null, null, null, null); const { names, resolvedSources } = map; - return { - source: resolvedSources[segment[1]], - line: segment[2] + 1, - column: segment[3], - name: segment.length === 5 ? names[segment[4]] : null, - }; + return OMapping(resolvedSources[segment[SOURCES_INDEX]], segment[SOURCE_LINE] + 1, segment[SOURCE_COLUMN], segment.length === 5 ? names[segment[NAMES_INDEX]] : null); + }; + exports.generatedPositionFor = (map, { source, line, column, bias }) => { + line--; + if (line < 0) + throw new Error(LINE_GTR_ZERO); + if (column < 0) + throw new Error(COL_GTR_EQ_ZERO); + const { sources, resolvedSources } = map; + let sourceIndex = sources.indexOf(source); + if (sourceIndex === -1) + sourceIndex = resolvedSources.indexOf(source); + if (sourceIndex === -1) + return GMapping(null, null); + const generated = (map._bySources || (map._bySources = buildBySources(exports.decodedMappings(map), (map._bySourceMemos = sources.map(memoizedState))))); + const memos = map._bySourceMemos; + const segments = generated[sourceIndex][line]; + if (segments == null) + return GMapping(null, null); + const segment = traceSegmentInternal(segments, memos[sourceIndex], line, column, bias || GREATEST_LOWER_BOUND); + if (segment == null) + return GMapping(null, null); + return GMapping(segment[REV_GENERATED_LINE] + 1, segment[REV_GENERATED_COLUMN]); }; exports.eachMapping = (map, cb) => { - const decoded = map._decoded; + const decoded = exports.decodedMappings(map); const { names, resolvedSources } = map; for (let i = 0; i < decoded.length; i++) { const line = decoded[i]; @@ -263,6 +464,15 @@ } } }; + exports.sourceContentFor = (map, source) => { + const { sources, resolvedSources, sourcesContent } = map; + if (sourcesContent == null) + return null; + let index = sources.indexOf(source); + if (index === -1) + index = resolvedSources.indexOf(source); + return index === -1 ? null : sourcesContent[index]; + }; exports.presortedDecodedMap = (map, mapUrl) => { const clone = Object.assign({}, map); clone.mappings = []; @@ -270,8 +480,50 @@ tracer._decoded = map.mappings; return tracer; }; + exports.decodedMap = (map) => { + return { + version: 3, + file: map.file, + names: map.names, + sourceRoot: map.sourceRoot, + sources: map.sources, + sourcesContent: map.sourcesContent, + mappings: exports.decodedMappings(map), + }; + }; + exports.encodedMap = (map) => { + return { + version: 3, + file: map.file, + names: map.names, + sourceRoot: map.sourceRoot, + sources: map.sources, + sourcesContent: map.sourcesContent, + mappings: exports.encodedMappings(map), + }; + }; })(); + function OMapping(source, line, column, name) { + return { source, line, column, name }; + } + function GMapping(line, column) { + return { line, column }; + } + function traceSegmentInternal(segments, memo, line, column, bias) { + let index = memoizedBinarySearch(segments, column, memo, line); + if (found) { + index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index); + } + else if (bias === LEAST_UPPER_BOUND) + index++; + if (index === -1 || index === segments.length) + return null; + return segments[index]; + } + exports.AnyMap = AnyMap; + exports.GREATEST_LOWER_BOUND = GREATEST_LOWER_BOUND; + exports.LEAST_UPPER_BOUND = LEAST_UPPER_BOUND; exports.TraceMap = TraceMap; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/package.json b/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/package.json index 4e51edd88c9c41..76a17b80b0fcf9 100644 --- a/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/package.json +++ b/tools/node_modules/eslint/node_modules/@jridgewell/trace-mapping/package.json @@ -1,6 +1,6 @@ { "name": "@jridgewell/trace-mapping", - "version": "0.3.4", + "version": "0.3.13", "description": "Trace the original position through a source map", "keywords": [ "source", @@ -14,6 +14,7 @@ ], "exports": { ".": { + "types": "./dist/types/trace-mapping.d.ts", "browser": "./dist/trace-mapping.umd.js", "require": "./dist/trace-mapping.umd.js", "import": "./dist/trace-mapping.mjs" @@ -27,8 +28,9 @@ }, "license": "MIT", "scripts": { - "benchmark": "run-s build:rollup benchmark:only", - "benchmark:only": "node benchmark/index.mjs", + "benchmark": "run-s build:rollup benchmark:*", + "benchmark:install": "cd benchmark && npm install", + "benchmark:only": "node --expose-gc benchmark/index.mjs", "build": "run-s -n build:*", "build:rollup": "rollup -c rollup.config.js", "build:ts": "tsc --project tsconfig.build.json", @@ -41,28 +43,27 @@ "test": "run-s -n test:lint test:only", "test:debug": "ava debug", "test:lint": "run-s -n test:lint:*", - "test:lint:prettier": "prettier --check '{src,test}/**/*.ts'", + "test:lint:prettier": "prettier --check '{src,test}/**/*.ts' '**/*.md'", "test:lint:ts": "eslint '{src,test}/**/*.ts'", "test:only": "c8 ava", "test:watch": "ava --watch" }, "devDependencies": { - "@rollup/plugin-typescript": "8.3.0", - "@typescript-eslint/eslint-plugin": "5.10.0", - "@typescript-eslint/parser": "5.10.0", - "ava": "4.0.1", + "@rollup/plugin-typescript": "8.3.2", + "@typescript-eslint/eslint-plugin": "5.23.0", + "@typescript-eslint/parser": "5.23.0", + "ava": "4.2.0", "benchmark": "2.1.4", - "c8": "7.11.0", - "esbuild": "0.14.14", - "esbuild-node-loader": "0.6.4", - "eslint": "8.7.0", - "eslint-config-prettier": "8.3.0", + "c8": "7.11.2", + "esbuild": "0.14.38", + "esbuild-node-loader": "0.8.0", + "eslint": "8.15.0", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-no-only-tests": "2.6.0", "npm-run-all": "4.1.5", - "prettier": "2.5.1", - "rollup": "2.64.0", - "source-map": "0.6.1", - "source-map-js": "1.0.2", - "typescript": "4.5.4" + "prettier": "2.6.2", + "rollup": "2.72.1", + "typescript": "4.6.4" }, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", diff --git a/tools/node_modules/eslint/node_modules/acorn/LICENSE b/tools/node_modules/eslint/node_modules/acorn/LICENSE index d6be6db2cfff57..9d71cc63a35e7d 100644 --- a/tools/node_modules/eslint/node_modules/acorn/LICENSE +++ b/tools/node_modules/eslint/node_modules/acorn/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (C) 2012-2020 by various contributors (see AUTHORS) +Copyright (C) 2012-2022 by various contributors (see AUTHORS) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/tools/node_modules/eslint/node_modules/acorn/bin/acorn b/tools/node_modules/eslint/node_modules/acorn/bin/acorn index cf7df46890fdd4..3ef3c124b08bd4 100755 --- a/tools/node_modules/eslint/node_modules/acorn/bin/acorn +++ b/tools/node_modules/eslint/node_modules/acorn/bin/acorn @@ -1,4 +1,4 @@ #!/usr/bin/env node -'use strict'; +"use strict" -require('../dist/bin.js'); +require("../dist/bin.js") diff --git a/tools/node_modules/eslint/node_modules/acorn/dist/acorn.js b/tools/node_modules/eslint/node_modules/acorn/dist/acorn.js index 2d279e9fa8417d..1ccee2097cff35 100644 --- a/tools/node_modules/eslint/node_modules/acorn/dist/acorn.js +++ b/tools/node_modules/eslint/node_modules/acorn/dist/acorn.js @@ -4,6 +4,20 @@ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.acorn = {})); })(this, (function (exports) { 'use strict'; + // This file was generated. Do not modify manually! + var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + + // This file was generated. Do not modify manually! + var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; + + // This file was generated. Do not modify manually! + var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; + + // This file was generated. Do not modify manually! + var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; + + // These are a run-length and offset encoded representation of the + // Reserved word lists for various dialects of the language var reservedWords = { @@ -28,31 +42,9 @@ // ## Character categories - // Big ugly regular expressions that match characters in the - // whitespace, identifier, and identifier-start categories. These - // are only applied when a character is found to actually have a - // code point above 128. - // Generated by `bin/generate-identifier-regex.js`. - var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; - var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; - var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); - nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; - - // These are a run-length and offset encoded representation of the - // >0xffff code points that are a valid part of identifiers. The - // offset starts at 0x10000, and each pair of numbers represents an - // offset to the next range, and then a size of the range. They were - // generated by bin/generate-identifier-regex.js - - // eslint-disable-next-line comma-spacing - var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938]; - - // eslint-disable-next-line comma-spacing - var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239]; - // This has a complexity linear to the value of the code. The // assumption is that looking up astral identifier characters is // rare. @@ -287,6 +279,13 @@ return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$") } + function codePointToString(code) { + // UTF-16 Decoding + if (code <= 0xFFFF) { return String.fromCharCode(code) } + code -= 0x10000; + return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00) + } + var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/; // These are used when `options.locations` is on, for the @@ -654,6 +653,7 @@ var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; pp$9.strictDirective = function(start) { + if (this.options.ecmaVersion < 5) { return false } for (;;) { // Try to find string literal. skipWhiteSpace.lastIndex = start; @@ -756,14 +756,14 @@ this.raise(pos != null ? pos : this.start, "Unexpected token"); }; - function DestructuringErrors() { + var DestructuringErrors = function DestructuringErrors() { this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1; - } + }; pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) { if (!refDestructuringErrors) { return } @@ -1644,7 +1644,7 @@ if (this.options.ecmaVersion >= 11) { if (this.eatContextual("as")) { node.exported = this.parseModuleExportName(); - this.checkExport(exports, node.exported.name, this.lastTokStart); + this.checkExport(exports, node.exported, this.lastTokStart); } else { node.exported = null; } @@ -1678,7 +1678,7 @@ if (node.declaration.type === "VariableDeclaration") { this.checkVariableExport(exports, node.declaration.declarations); } else - { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); } + { this.checkExport(exports, node.declaration.id, node.declaration.id.start); } node.specifiers = []; node.source = null; } else { // export { x, y as z } [from '...'] @@ -1710,6 +1710,8 @@ pp$8.checkExport = function(exports, name, pos) { if (!exports) { return } + if (typeof name !== "string") + { name = name.type === "Identifier" ? name.name : name.value; } if (hasOwn(exports, name)) { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } exports[name] = true; @@ -1718,7 +1720,7 @@ pp$8.checkPatternExport = function(exports, pat) { var type = pat.type; if (type === "Identifier") - { this.checkExport(exports, pat.name, pat.start); } + { this.checkExport(exports, pat, pat.start); } else if (type === "ObjectPattern") { for (var i = 0, list = pat.properties; i < list.length; i += 1) { @@ -1778,7 +1780,7 @@ node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local; this.checkExport( exports, - node.exported[node.exported.type === "Identifier" ? "name" : "value"], + node.exported, node.exported.start ); nodes.push(this.finishNode(node, "ExportSpecifier")); @@ -3768,12 +3770,6 @@ return false }; - function codePointToString$1(ch) { - if (ch <= 0xFFFF) { return String.fromCharCode(ch) } - ch -= 0x10000; - return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00) - } - /** * Validate the flags part of a given RegExpLiteral. * @@ -4138,9 +4134,9 @@ pp$1.regexp_eatRegExpIdentifierName = function(state) { state.lastStringValue = ""; if (this.regexp_eatRegExpIdentifierStart(state)) { - state.lastStringValue += codePointToString$1(state.lastIntValue); + state.lastStringValue += codePointToString(state.lastIntValue); while (this.regexp_eatRegExpIdentifierPart(state)) { - state.lastStringValue += codePointToString$1(state.lastIntValue); + state.lastStringValue += codePointToString(state.lastIntValue); } return true } @@ -4492,7 +4488,7 @@ var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyNameCharacter(ch = state.current())) { - state.lastStringValue += codePointToString$1(ch); + state.lastStringValue += codePointToString(ch); state.advance(); } return state.lastStringValue !== "" @@ -4507,7 +4503,7 @@ var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyValueCharacter(ch = state.current())) { - state.lastStringValue += codePointToString$1(ch); + state.lastStringValue += codePointToString(ch); state.advance(); } return state.lastStringValue !== "" @@ -5290,13 +5286,6 @@ return code }; - function codePointToString(code) { - // UTF-16 Decoding - if (code <= 0xFFFF) { return String.fromCharCode(code) } - code -= 0x10000; - return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00) - } - pp.readString = function(quote) { var out = "", chunkStart = ++this.pos; for (;;) { @@ -5541,7 +5530,7 @@ // Acorn is a tiny, fast JavaScript parser written in JavaScript. - var version = "8.7.0"; + var version = "8.7.1"; Parser.acorn = { Parser: Parser, diff --git a/tools/node_modules/eslint/node_modules/acorn/dist/acorn.mjs b/tools/node_modules/eslint/node_modules/acorn/dist/acorn.mjs index e99e9b30e1b635..6fbb1dc8f3a7ba 100644 --- a/tools/node_modules/eslint/node_modules/acorn/dist/acorn.mjs +++ b/tools/node_modules/eslint/node_modules/acorn/dist/acorn.mjs @@ -1,3 +1,17 @@ +// This file was generated. Do not modify manually! +var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; + +// This file was generated. Do not modify manually! +var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; + +// This file was generated. Do not modify manually! +var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; + +// This file was generated. Do not modify manually! +var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; + +// These are a run-length and offset encoded representation of the + // Reserved word lists for various dialects of the language var reservedWords = { @@ -22,31 +36,9 @@ var keywordRelationalOperator = /^in(stanceof)?$/; // ## Character categories -// Big ugly regular expressions that match characters in the -// whitespace, identifier, and identifier-start categories. These -// are only applied when a character is found to actually have a -// code point above 128. -// Generated by `bin/generate-identifier-regex.js`. -var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; -var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; - var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); -nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; - -// These are a run-length and offset encoded representation of the -// >0xffff code points that are a valid part of identifiers. The -// offset starts at 0x10000, and each pair of numbers represents an -// offset to the next range, and then a size of the range. They were -// generated by bin/generate-identifier-regex.js - -// eslint-disable-next-line comma-spacing -var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938]; - -// eslint-disable-next-line comma-spacing -var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239]; - // This has a complexity linear to the value of the code. The // assumption is that looking up astral identifier characters is // rare. @@ -281,6 +273,13 @@ function wordsRegexp(words) { return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$") } +function codePointToString(code) { + // UTF-16 Decoding + if (code <= 0xFFFF) { return String.fromCharCode(code) } + code -= 0x10000; + return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00) +} + var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/; // These are used when `options.locations` is on, for the @@ -648,6 +647,7 @@ var pp$9 = Parser.prototype; var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; pp$9.strictDirective = function(start) { + if (this.options.ecmaVersion < 5) { return false } for (;;) { // Try to find string literal. skipWhiteSpace.lastIndex = start; @@ -750,14 +750,14 @@ pp$9.unexpected = function(pos) { this.raise(pos != null ? pos : this.start, "Unexpected token"); }; -function DestructuringErrors() { +var DestructuringErrors = function DestructuringErrors() { this.shorthandAssign = this.trailingComma = this.parenthesizedAssign = this.parenthesizedBind = this.doubleProto = -1; -} +}; pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) { if (!refDestructuringErrors) { return } @@ -1638,7 +1638,7 @@ pp$8.parseExport = function(node, exports) { if (this.options.ecmaVersion >= 11) { if (this.eatContextual("as")) { node.exported = this.parseModuleExportName(); - this.checkExport(exports, node.exported.name, this.lastTokStart); + this.checkExport(exports, node.exported, this.lastTokStart); } else { node.exported = null; } @@ -1672,7 +1672,7 @@ pp$8.parseExport = function(node, exports) { if (node.declaration.type === "VariableDeclaration") { this.checkVariableExport(exports, node.declaration.declarations); } else - { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); } + { this.checkExport(exports, node.declaration.id, node.declaration.id.start); } node.specifiers = []; node.source = null; } else { // export { x, y as z } [from '...'] @@ -1704,6 +1704,8 @@ pp$8.parseExport = function(node, exports) { pp$8.checkExport = function(exports, name, pos) { if (!exports) { return } + if (typeof name !== "string") + { name = name.type === "Identifier" ? name.name : name.value; } if (hasOwn(exports, name)) { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } exports[name] = true; @@ -1712,7 +1714,7 @@ pp$8.checkExport = function(exports, name, pos) { pp$8.checkPatternExport = function(exports, pat) { var type = pat.type; if (type === "Identifier") - { this.checkExport(exports, pat.name, pat.start); } + { this.checkExport(exports, pat, pat.start); } else if (type === "ObjectPattern") { for (var i = 0, list = pat.properties; i < list.length; i += 1) { @@ -1772,7 +1774,7 @@ pp$8.parseExportSpecifiers = function(exports) { node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local; this.checkExport( exports, - node.exported[node.exported.type === "Identifier" ? "name" : "value"], + node.exported, node.exported.start ); nodes.push(this.finishNode(node, "ExportSpecifier")); @@ -3762,12 +3764,6 @@ RegExpValidationState.prototype.eat = function eat (ch, forceU) { return false }; -function codePointToString$1(ch) { - if (ch <= 0xFFFF) { return String.fromCharCode(ch) } - ch -= 0x10000; - return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00) -} - /** * Validate the flags part of a given RegExpLiteral. * @@ -4132,9 +4128,9 @@ pp$1.regexp_eatGroupName = function(state) { pp$1.regexp_eatRegExpIdentifierName = function(state) { state.lastStringValue = ""; if (this.regexp_eatRegExpIdentifierStart(state)) { - state.lastStringValue += codePointToString$1(state.lastIntValue); + state.lastStringValue += codePointToString(state.lastIntValue); while (this.regexp_eatRegExpIdentifierPart(state)) { - state.lastStringValue += codePointToString$1(state.lastIntValue); + state.lastStringValue += codePointToString(state.lastIntValue); } return true } @@ -4486,7 +4482,7 @@ pp$1.regexp_eatUnicodePropertyName = function(state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyNameCharacter(ch = state.current())) { - state.lastStringValue += codePointToString$1(ch); + state.lastStringValue += codePointToString(ch); state.advance(); } return state.lastStringValue !== "" @@ -4501,7 +4497,7 @@ pp$1.regexp_eatUnicodePropertyValue = function(state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyValueCharacter(ch = state.current())) { - state.lastStringValue += codePointToString$1(ch); + state.lastStringValue += codePointToString(ch); state.advance(); } return state.lastStringValue !== "" @@ -5284,13 +5280,6 @@ pp.readCodePoint = function() { return code }; -function codePointToString(code) { - // UTF-16 Decoding - if (code <= 0xFFFF) { return String.fromCharCode(code) } - code -= 0x10000; - return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00) -} - pp.readString = function(quote) { var out = "", chunkStart = ++this.pos; for (;;) { @@ -5535,7 +5524,7 @@ pp.readWord = function() { // Acorn is a tiny, fast JavaScript parser written in JavaScript. -var version = "8.7.0"; +var version = "8.7.1"; Parser.acorn = { Parser: Parser, diff --git a/tools/node_modules/eslint/node_modules/acorn/package.json b/tools/node_modules/eslint/node_modules/acorn/package.json index 8e2edc65cff81c..1741697462e8e3 100644 --- a/tools/node_modules/eslint/node_modules/acorn/package.json +++ b/tools/node_modules/eslint/node_modules/acorn/package.json @@ -16,8 +16,10 @@ ], "./package.json": "./package.json" }, - "version": "8.7.0", - "engines": {"node": ">=0.4.0"}, + "version": "8.7.1", + "engines": { + "node": ">=0.4.0" + }, "maintainers": [ { "name": "Marijn Haverbeke", @@ -42,5 +44,7 @@ "scripts": { "prepare": "cd ..; npm run build:main" }, - "bin": {"acorn": "./bin/acorn"} + "bin": { + "acorn": "./bin/acorn" + } } diff --git a/tools/node_modules/eslint/node_modules/browserslist/index.js b/tools/node_modules/eslint/node_modules/browserslist/index.js index 8c09141c696faa..e28d5e2154adef 100644 --- a/tools/node_modules/eslint/node_modules/browserslist/index.js +++ b/tools/node_modules/eslint/node_modules/browserslist/index.js @@ -229,7 +229,7 @@ function mapVersions(data, map) { data.versions = data.versions.map(function (i) { return map[i] || i }) - data.released = data.versions.map(function (i) { + data.released = data.released.map(function (i) { return map[i] || i }) var fixedDate = {} @@ -1175,6 +1175,7 @@ var QUERIES = [ regexp: /^dead$/i, select: function (context) { var dead = [ + 'Baidu >= 0', 'ie <= 10', 'ie_mob <= 11', 'bb <= 10', diff --git a/tools/node_modules/eslint/node_modules/browserslist/package.json b/tools/node_modules/eslint/node_modules/browserslist/package.json index 483db2c28bd6a0..d0e1265a1d6fa8 100644 --- a/tools/node_modules/eslint/node_modules/browserslist/package.json +++ b/tools/node_modules/eslint/node_modules/browserslist/package.json @@ -1,6 +1,6 @@ { "name": "browserslist", - "version": "4.20.2", + "version": "4.20.4", "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", "keywords": [ "caniuse", @@ -21,10 +21,10 @@ "license": "MIT", "repository": "browserslist/browserslist", "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", + "caniuse-lite": "^1.0.30001349", + "electron-to-chromium": "^1.4.147", "escalade": "^3.1.1", - "node-releases": "^2.0.2", + "node-releases": "^2.0.5", "picocolors": "^1.0.0" }, "engines": { diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/agents.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/agents.js index 076626e640faea..3e31ff66cfa057 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/agents.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/agents.js @@ -1 +1 @@ -module.exports={A:{A:{I:0.0131217,D:0.00621152,E:0.0289618,F:0.0579235,A:0.0144809,B:0.557514,sB:0.009298},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","sB","I","D","E","F","A","B","","",""],E:"IE",F:{sB:962323200,I:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{C:0.004118,J:0.004267,K:0.004268,G:0.04118,L:0.004118,M:0.008236,N:0.024708,O:0,P:0.004298,Q:0.00944,R:0.004043,V:0.004118,W:0.004118,X:0.004118,Y:0.008236,Z:0.004318,a:0.004118,b:0.004118,c:0.004118,d:0.012354,e:0.004118,f:0.008236,g:0.012354,h:0.024708,i:0.06177,S:0.765948,T:3.03908},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","J","K","G","L","M","N","O","P","Q","R","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","S","T","","",""],E:"Edge",F:{C:1438128000,J:1447286400,K:1470096000,G:1491868800,L:1508198400,M:1525046400,N:1542067200,O:1579046400,P:1581033600,Q:1586736000,R:1590019200,V:1594857600,W:1598486400,X:1602201600,Y:1605830400,Z:1611360000,a:1614816000,b:1618358400,c:1622073600,d:1626912000,e:1630627200,f:1632441600,g:1634774400,h:1637539200,i:1641427200,S:1643932800,T:1646265600},D:{C:"ms",J:"ms",K:"ms",G:"ms",L:"ms",M:"ms",N:"ms"}},C:{A:{"0":0.009076,"1":0.008236,"2":0.004783,"3":0.004271,"4":0.004783,"5":0.00487,"6":0.005029,"7":0.0047,"8":0.049416,"9":0.008236,tB:0.004118,iB:0.004271,H:0.016472,j:0.004879,I:0.020136,D:0.005725,E:0.004525,F:0.00533,A:0.004283,B:0.004318,C:0.004471,J:0.004486,K:0.00453,G:0.008322,L:0.004417,M:0.004425,N:0.004161,k:0.004443,l:0.004283,m:0.008322,n:0.013698,o:0.004161,p:0.008786,q:0.004118,r:0.004317,s:0.004393,t:0.004418,u:0.008834,v:0.008322,w:0.008928,x:0.004471,y:0.009284,z:0.004707,AB:0.004356,BB:0.004525,CB:0.004293,DB:0.004118,EB:0.004538,FB:0.008282,GB:0.012354,HB:0.070006,IB:0.008236,JB:0.008236,KB:0.012354,LB:0.012354,MB:0.008236,NB:0.004356,jB:0.008236,OB:0.008236,kB:0.004356,PB:0.004425,QB:0.008322,U:0.00415,RB:0.004267,SB:0.004118,TB:0.004267,UB:0.008236,VB:0.00415,WB:0.004293,XB:0.004425,YB:0.004118,ZB:0.00415,aB:0.00415,bB:0.004318,cB:0.004356,dB:0.004118,eB:0.053534,O:0.008236,P:0.008236,Q:0.012354,lB:0.004118,R:0.004118,V:0.008236,W:0.004268,X:0.004118,Y:0.012354,Z:0.012354,a:0.012354,b:0.02059,c:0.098832,d:0.008236,e:0.012354,f:0.04118,g:0.04118,h:0.037062,i:0.856544,S:1.47424,T:0.016472,fB:0,uB:0.008786,vB:0.00487},B:"moz",C:["tB","iB","uB","vB","H","j","I","D","E","F","A","B","C","J","K","G","L","M","N","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","jB","OB","kB","PB","QB","U","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","O","P","Q","lB","R","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","S","T","fB",""],E:"Firefox",F:{"0":1421107200,"1":1424736000,"2":1428278400,"3":1431475200,"4":1435881600,"5":1439251200,"6":1442880000,"7":1446508800,"8":1450137600,"9":1453852800,tB:1161648000,iB:1213660800,uB:1246320000,vB:1264032000,H:1300752000,j:1308614400,I:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,J:1335225600,K:1338854400,G:1342483200,L:1346112000,M:1349740800,N:1353628800,k:1357603200,l:1361232000,m:1364860800,n:1368489600,o:1372118400,p:1375747200,q:1379376000,r:1386633600,s:1391472000,t:1395100800,u:1398729600,v:1402358400,w:1405987200,x:1409616000,y:1413244800,z:1417392000,AB:1457395200,BB:1461628800,CB:1465257600,DB:1470096000,EB:1474329600,FB:1479168000,GB:1485216000,HB:1488844800,IB:1492560000,JB:1497312000,KB:1502150400,LB:1506556800,MB:1510617600,NB:1516665600,jB:1520985600,OB:1525824000,kB:1529971200,PB:1536105600,QB:1540252800,U:1544486400,RB:1548720000,SB:1552953600,TB:1558396800,UB:1562630400,VB:1567468800,WB:1571788800,XB:1575331200,YB:1578355200,ZB:1581379200,aB:1583798400,bB:1586304000,cB:1588636800,dB:1591056000,eB:1593475200,O:1595894400,P:1598313600,Q:1600732800,lB:1603152000,R:1605571200,V:1607990400,W:1611619200,X:1614038400,Y:1616457600,Z:1618790400,a:1622505600,b:1626134400,c:1628553600,d:1630972800,e:1633392000,f:1635811200,g:1638835200,h:1641859200,i:1644364800,S:1646697600,T:null,fB:null}},D:{A:{"0":0.012354,"1":0.004335,"2":0.004464,"3":0.02059,"4":0.004464,"5":0.016472,"6":0.004118,"7":0.004118,"8":0.012354,"9":0.004465,H:0.004706,j:0.004879,I:0.004879,D:0.005591,E:0.005591,F:0.005591,A:0.004534,B:0.004464,C:0.010424,J:0.0083,K:0.004706,G:0.015087,L:0.004393,M:0.004393,N:0.008652,k:0.008322,l:0.004393,m:0.004317,n:0.008236,o:0.008786,p:0.008236,q:0.004461,r:0.004141,s:0.004326,t:0.0047,u:0.004538,v:0.008322,w:0.008596,x:0.004566,y:0.004118,z:0.008236,AB:0.004118,BB:0.008236,CB:0.012354,DB:0.024708,EB:0.070006,FB:0.004293,GB:0.012354,HB:0.008236,IB:0.012354,JB:0.008236,KB:0.012354,LB:0.045298,MB:0.008236,NB:0.008236,jB:0.008236,OB:0.016472,kB:0.016472,PB:0.012354,QB:0.012354,U:0.012354,RB:0.016472,SB:0.024708,TB:0.012354,UB:0.008236,VB:0.057652,WB:0.032944,XB:0.016472,YB:0.057652,ZB:0.008236,aB:0.02059,bB:0.049416,cB:0.065888,dB:0.016472,eB:0.04118,O:0.189428,P:0.053534,Q:0.037062,R:0.10295,V:0.065888,W:0.065888,X:0.070006,Y:0.111186,Z:0.028826,a:0.057652,b:0.045298,c:0.107068,d:0.094714,e:0.304732,f:0.127658,g:0.065888,h:0.32944,i:0.506514,S:5.45223,T:17.5468,fB:0.172956,wB:0.02059,xB:0.004118,yB:0},B:"webkit",C:["","","","H","j","I","D","E","F","A","B","C","J","K","G","L","M","N","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","jB","OB","kB","PB","QB","U","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","O","P","Q","R","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","S","T","fB","wB","xB","yB"],E:"Chrome",F:{"0":1400544000,"1":1405468800,"2":1409011200,"3":1412640000,"4":1416268800,"5":1421798400,"6":1425513600,"7":1429401600,"8":1432080000,"9":1437523200,H:1264377600,j:1274745600,I:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,J:1312243200,K:1316131200,G:1316131200,L:1319500800,M:1323734400,N:1328659200,k:1332892800,l:1337040000,m:1340668800,n:1343692800,o:1348531200,p:1352246400,q:1357862400,r:1361404800,s:1364428800,t:1369094400,u:1374105600,v:1376956800,w:1384214400,x:1389657600,y:1392940800,z:1397001600,AB:1441152000,BB:1444780800,CB:1449014400,DB:1453248000,EB:1456963200,FB:1460592000,GB:1464134400,HB:1469059200,IB:1472601600,JB:1476230400,KB:1480550400,LB:1485302400,MB:1489017600,NB:1492560000,jB:1496707200,OB:1500940800,kB:1504569600,PB:1508198400,QB:1512518400,U:1516752000,RB:1520294400,SB:1523923200,TB:1527552000,UB:1532390400,VB:1536019200,WB:1539648000,XB:1543968000,YB:1548720000,ZB:1552348800,aB:1555977600,bB:1559606400,cB:1564444800,dB:1568073600,eB:1571702400,O:1575936000,P:1580860800,Q:1586304000,R:1589846400,V:1594684800,W:1598313600,X:1601942400,Y:1605571200,Z:1611014400,a:1614556800,b:1618272000,c:1621987200,d:1626739200,e:1630368000,f:1632268800,g:1634601600,h:1637020800,i:1641340800,S:1643673600,T:1646092800,fB:1648512000,wB:null,xB:null,yB:null}},E:{A:{H:0,j:0.008322,I:0.004656,D:0.004465,E:0.004356,F:0.004891,A:0.004425,B:0.004318,C:0.004118,J:0.045298,K:0.2059,G:0.098832,zB:0,mB:0.008692,"0B":0.008236,"1B":0.00456,"2B":0.004283,"3B":0.016472,nB:0.012354,gB:0.028826,hB:0.057652,"4B":0.461216,"5B":0.687706,"6B":0.2059,oB:0.24708,pB:0.168838,"7B":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","zB","mB","H","j","0B","I","1B","D","2B","E","F","3B","A","nB","B","gB","C","hB","J","4B","K","5B","G","6B","oB","pB","7B","",""],E:"Safari",F:{zB:1205798400,mB:1226534400,H:1244419200,j:1275868800,"0B":1311120000,I:1343174400,"1B":1382400000,D:1382400000,"2B":1410998400,E:1413417600,F:1443657600,"3B":1458518400,A:1474329600,nB:1490572800,B:1505779200,gB:1522281600,C:1537142400,hB:1553472000,J:1568851200,"4B":1585008000,K:1600214400,"5B":1619395200,G:1632096000,"6B":1635292800,oB:1639353600,pB:1647216000,"7B":null}},F:{A:{"0":0.004879,"1":0.004118,"2":0.004283,"3":0.004367,"4":0.004534,"5":0.008236,"6":0.004227,"7":0.004418,"8":0.004161,"9":0.004227,F:0.0082,B:0.016581,C:0.004317,G:0.00685,L:0.00685,M:0.00685,N:0.005014,k:0.006015,l:0.004879,m:0.006597,n:0.006597,o:0.013434,p:0.006702,q:0.006015,r:0.005595,s:0.004393,t:0.004118,u:0.004879,v:0.004879,w:0.004118,x:0.005152,y:0.005014,z:0.009758,AB:0.004725,BB:0.008236,CB:0.008942,DB:0.004707,EB:0.004827,FB:0.004707,GB:0.004707,HB:0.004326,IB:0.008922,JB:0.014349,KB:0.004425,LB:0.00472,MB:0.004425,NB:0.004425,OB:0.00472,PB:0.004532,QB:0.004566,U:0.02283,RB:0.00867,SB:0.004656,TB:0.004642,UB:0.004118,VB:0.00944,WB:0.004293,XB:0.004293,YB:0.004298,ZB:0.096692,aB:0.004201,bB:0.004141,cB:0.004257,dB:0.008236,eB:0.008236,O:0.008236,P:0.008236,Q:0.008514,lB:0.012354,R:0.28826,"8B":0.00685,"9B":0,AC:0.008392,BC:0.004706,gB:0.006229,qB:0.004879,CC:0.008786,hB:0.00472},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","F","8B","9B","AC","BC","B","gB","qB","CC","C","hB","G","L","M","N","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","U","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","O","P","Q","lB","R","","",""],E:"Opera",F:{"0":1454371200,"1":1457308800,"2":1462320000,"3":1465344000,"4":1470096000,"5":1474329600,"6":1477267200,"7":1481587200,"8":1486425600,"9":1490054400,F:1150761600,"8B":1223424000,"9B":1251763200,AC:1267488000,BC:1277942400,B:1292457600,gB:1302566400,qB:1309219200,CC:1323129600,C:1323129600,hB:1352073600,G:1372723200,L:1377561600,M:1381104000,N:1386288000,k:1390867200,l:1393891200,m:1399334400,n:1401753600,o:1405987200,p:1409616000,q:1413331200,r:1417132800,s:1422316800,t:1425945600,u:1430179200,v:1433808000,w:1438646400,x:1442448000,y:1445904000,z:1449100800,AB:1494374400,BB:1498003200,CB:1502236800,DB:1506470400,EB:1510099200,FB:1515024000,GB:1517961600,HB:1521676800,IB:1525910400,JB:1530144000,KB:1534982400,LB:1537833600,MB:1543363200,NB:1548201600,OB:1554768000,PB:1561593600,QB:1566259200,U:1570406400,RB:1573689600,SB:1578441600,TB:1583971200,UB:1587513600,VB:1592956800,WB:1595894400,XB:1600128000,YB:1603238400,ZB:1613520000,aB:1612224000,bB:1616544000,cB:1619568000,dB:1623715200,eB:1627948800,O:1631577600,P:1633392000,Q:1635984000,lB:1638403200,R:1642550400},D:{F:"o",B:"o",C:"o","8B":"o","9B":"o",AC:"o",BC:"o",gB:"o",qB:"o",CC:"o",hB:"o"}},G:{A:{E:0,mB:0,DC:0,rB:0.00291884,EC:0.00437827,FC:0.0612957,GC:0.0175131,HC:0.00729711,IC:0.0175131,JC:0.0817276,KC:0.0248102,LC:0.0948624,MC:0.0539986,NC:0.0350261,OC:0.0350261,PC:0.553121,QC:0.0306479,RC:0.0131348,SC:0.0700523,TC:0.218913,UC:0.680091,VC:2.07092,WC:0.963218,oB:8.72442,pB:0.828952},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mB","DC","rB","EC","FC","GC","E","HC","IC","JC","KC","LC","MC","NC","OC","PC","QC","RC","SC","TC","UC","VC","WC","oB","pB","","",""],E:"Safari on iOS",F:{mB:1270252800,DC:1283904000,rB:1299628800,EC:1331078400,FC:1359331200,GC:1394409600,E:1410912000,HC:1413763200,IC:1442361600,JC:1458518400,KC:1473724800,LC:1490572800,MC:1505779200,NC:1522281600,OC:1537142400,PC:1553472000,QC:1568851200,RC:1572220800,SC:1580169600,TC:1585008000,UC:1600214400,VC:1619395200,WC:1632096000,oB:1639353600,pB:1647216000}},H:{A:{XC:1.03595},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","XC","","",""],E:"Opera Mini",F:{XC:1426464000}},I:{A:{iB:0,H:0.0150411,T:0,YC:0,ZC:0,aC:0,bC:0.0150411,rB:0.0639246,cC:0,dC:0.270739},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","YC","ZC","aC","iB","H","bC","rB","cC","dC","T","","",""],E:"Android Browser",F:{YC:1256515200,ZC:1274313600,aC:1291593600,iB:1298332800,H:1318896000,bC:1341792000,rB:1374624000,cC:1386547200,dC:1401667200,T:1646092800}},J:{A:{D:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","A","","",""],E:"Blackberry Browser",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,U:0.0111391,gB:0,qB:0,hB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","gB","qB","C","hB","U","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,gB:1314835200,qB:1318291200,C:1330300800,hB:1349740800,U:1613433600},D:{U:"webkit"}},L:{A:{fB:38.4736},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","fB","","",""],E:"Chrome for Android",F:{fB:1648684800}},M:{A:{S:0.29415},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","S","","",""],E:"Firefox for Android",F:{S:1646697600}},N:{A:{A:0.0115934,B:0.022664},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{eC:0.829503},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","eC","","",""],E:"UC Browser for Android",F:{eC:1471392000},D:{eC:"webkit"}},P:{A:{H:0.21861,fC:0.0103543,gC:0.010304,hC:0.0832799,iC:0.0103584,jC:0.02082,nB:0.0105043,kC:0.0520499,lC:0.03123,mC:0.1041,nC:0.12492,oC:0.11451,pC:2.1861},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","H","fC","gC","hC","iC","jC","nB","kC","lC","mC","nC","oC","pC","","",""],E:"Samsung Internet",F:{H:1461024000,fC:1481846400,gC:1509408000,hC:1528329600,iC:1546128000,jC:1554163200,nB:1567900800,kC:1582588800,lC:1593475200,mC:1605657600,nC:1618531200,oC:1629072000,pC:1640736000}},Q:{A:{qC:0.164724},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","qC","","",""],E:"QQ Browser",F:{qC:1589846400}},R:{A:{rC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","rC","","",""],E:"Baidu Browser",F:{rC:1491004800}},S:{A:{sC:0.082362},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","sC","","",""],E:"KaiOS Browser",F:{sC:1527811200}}}; +module.exports={A:{A:{J:0.0131217,D:0.00621152,E:0.0166941,F:0.038953,A:0.00556471,B:0.8514,xB:0.009298},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","xB","J","D","E","F","A","B","","",""],E:"IE",F:{xB:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{C:0.007734,K:0.004267,L:0.004268,G:0.058005,M:0.003867,N:0.007734,O:0.023202,P:0,Q:0.004298,R:0.00944,S:0.004043,T:0.007734,U:0.007734,V:0.003867,W:0.011601,Z:0.004318,a:0.007734,b:0.004118,c:0.003939,d:0.007734,e:0.004118,f:0.003939,g:0.007734,h:0.011601,i:0.015468,j:0.015468,k:0.054138,l:0.212685,H:3.52284,X:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","G","M","N","O","P","Q","R","S","T","U","V","W","Z","a","b","c","d","e","f","g","h","i","j","k","l","H","X","","",""],E:"Edge",F:{C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,Z:1611360000,a:1614816000,b:1618358400,c:1622073600,d:1626912000,e:1630627200,f:1632441600,g:1634774400,h:1637539200,i:1641427200,j:1643932800,k:1646265600,l:1649635200,H:1651190400,X:1653955200},D:{C:"ms",K:"ms",L:"ms",G:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0.004471,"1":0.009284,"2":0.004707,"3":0.009076,"4":0.003867,"5":0.004783,"6":0.004271,"7":0.004783,"8":0.00487,"9":0.005029,yB:0.004118,lB:0.004271,I:0.019335,m:0.004879,J:0.020136,D:0.005725,E:0.004525,F:0.00533,A:0.004283,B:0.007734,C:0.004471,K:0.004486,L:0.00453,G:0.008322,M:0.004417,N:0.004425,O:0.004161,n:0.004443,o:0.004283,p:0.008322,q:0.013698,r:0.004161,s:0.008786,t:0.004118,u:0.004317,v:0.004393,w:0.004418,x:0.008834,y:0.008322,z:0.008928,AB:0.0047,BB:0.023202,CB:0.007734,DB:0.003867,EB:0.004525,FB:0.004293,GB:0.003867,HB:0.004538,IB:0.008282,JB:0.011601,KB:0.069606,LB:0.011601,MB:0.007734,NB:0.015468,OB:0.011601,PB:0.011601,QB:0.003939,mB:0.007734,RB:0.003867,nB:0.004356,SB:0.004425,TB:0.008322,Y:0.00415,UB:0.004267,VB:0.003867,WB:0.004267,XB:0.007734,YB:0.00415,ZB:0.004293,aB:0.004425,bB:0.003867,cB:0.00415,dB:0.00415,eB:0.004318,fB:0.004356,gB:0.003867,hB:0.042537,P:0.007734,Q:0.007734,R:0.011601,oB:0.007734,S:0.003867,T:0.003867,U:0.004268,V:0.003867,W:0.011601,Z:0.011601,a:0.007734,b:0.007734,c:0.096675,d:0.003867,e:0.007734,f:0.03867,g:0.011601,h:0.015468,i:0.015468,j:0.034803,k:0.421503,l:1.84456,H:0.023202,X:0,pB:0,zB:0.008786,"0B":0.00487},B:"moz",C:["yB","lB","zB","0B","I","m","J","D","E","F","A","B","C","K","L","G","M","N","O","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","mB","RB","nB","SB","TB","Y","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","P","Q","R","oB","S","T","U","V","W","Z","a","b","c","d","e","f","g","h","i","j","k","l","H","X","pB",""],E:"Firefox",F:{"0":1409616000,"1":1413244800,"2":1417392000,"3":1421107200,"4":1424736000,"5":1428278400,"6":1431475200,"7":1435881600,"8":1439251200,"9":1442880000,yB:1161648000,lB:1213660800,zB:1246320000,"0B":1264032000,I:1300752000,m:1308614400,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,n:1357603200,o:1361232000,p:1364860800,q:1368489600,r:1372118400,s:1375747200,t:1379376000,u:1386633600,v:1391472000,w:1395100800,x:1398729600,y:1402358400,z:1405987200,AB:1446508800,BB:1450137600,CB:1453852800,DB:1457395200,EB:1461628800,FB:1465257600,GB:1470096000,HB:1474329600,IB:1479168000,JB:1485216000,KB:1488844800,LB:1492560000,MB:1497312000,NB:1502150400,OB:1506556800,PB:1510617600,QB:1516665600,mB:1520985600,RB:1525824000,nB:1529971200,SB:1536105600,TB:1540252800,Y:1544486400,UB:1548720000,VB:1552953600,WB:1558396800,XB:1562630400,YB:1567468800,ZB:1571788800,aB:1575331200,bB:1578355200,cB:1581379200,dB:1583798400,eB:1586304000,fB:1588636800,gB:1591056000,hB:1593475200,P:1595894400,Q:1598313600,R:1600732800,oB:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,Z:1618790400,a:1622505600,b:1626134400,c:1628553600,d:1630972800,e:1633392000,f:1635811200,g:1638835200,h:1641859200,i:1644364800,j:1646697600,k:1649116800,l:1651536000,H:1653955200,X:null,pB:null}},D:{A:{"0":0.004566,"1":0.004118,"2":0.007734,"3":0.007878,"4":0.004335,"5":0.004464,"6":0.019335,"7":0.003867,"8":0.019335,"9":0.007734,I:0.004706,m:0.004879,J:0.004879,D:0.005591,E:0.005591,F:0.005591,A:0.004534,B:0.004464,C:0.010424,K:0.0083,L:0.004706,G:0.015087,M:0.004393,N:0.004393,O:0.008652,n:0.008322,o:0.004393,p:0.004317,q:0.007734,r:0.008786,s:0.003939,t:0.004461,u:0.004141,v:0.004326,w:0.0047,x:0.004538,y:0.008322,z:0.008596,AB:0.007734,BB:0.011601,CB:0.003867,DB:0.003867,EB:0.003867,FB:0.015468,GB:0.023202,HB:0.061872,IB:0.003867,JB:0.007734,KB:0.007734,LB:0.015468,MB:0.003867,NB:0.007734,OB:0.027069,PB:0.007734,QB:0.011601,mB:0.007734,RB:0.015468,nB:0.015468,SB:0.015468,TB:0.015468,Y:0.007734,UB:0.015468,VB:0.027069,WB:0.023202,XB:0.007734,YB:0.046404,ZB:0.019335,aB:0.011601,bB:0.019335,cB:0.007734,dB:0.023202,eB:0.058005,fB:0.073473,gB:0.011601,hB:0.030936,P:0.204951,Q:0.042537,R:0.03867,S:0.131478,T:0.081207,U:0.088941,V:0.092808,W:0.104409,Z:0.019335,a:0.058005,b:0.034803,c:0.081207,d:0.065739,e:0.054138,f:0.061872,g:0.042537,h:0.143079,i:0.143079,j:0.204951,k:0.351897,l:4.17636,H:15.4487,X:1.5468,pB:0.015468,"1B":0.007734,"2B":0},B:"webkit",C:["","","","","I","m","J","D","E","F","A","B","C","K","L","G","M","N","O","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","mB","RB","nB","SB","TB","Y","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","P","Q","R","S","T","U","V","W","Z","a","b","c","d","e","f","g","h","i","j","k","l","H","X","pB","1B","2B"],E:"Chrome",F:{"0":1389657600,"1":1392940800,"2":1397001600,"3":1400544000,"4":1405468800,"5":1409011200,"6":1412640000,"7":1416268800,"8":1421798400,"9":1425513600,I:1264377600,m:1274745600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,n:1332892800,o:1337040000,p:1340668800,q:1343692800,r:1348531200,s:1352246400,t:1357862400,u:1361404800,v:1364428800,w:1369094400,x:1374105600,y:1376956800,z:1384214400,AB:1429401600,BB:1432080000,CB:1437523200,DB:1441152000,EB:1444780800,FB:1449014400,GB:1453248000,HB:1456963200,IB:1460592000,JB:1464134400,KB:1469059200,LB:1472601600,MB:1476230400,NB:1480550400,OB:1485302400,PB:1489017600,QB:1492560000,mB:1496707200,RB:1500940800,nB:1504569600,SB:1508198400,TB:1512518400,Y:1516752000,UB:1520294400,VB:1523923200,WB:1527552000,XB:1532390400,YB:1536019200,ZB:1539648000,aB:1543968000,bB:1548720000,cB:1552348800,dB:1555977600,eB:1559606400,fB:1564444800,gB:1568073600,hB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,Z:1611014400,a:1614556800,b:1618272000,c:1621987200,d:1626739200,e:1630368000,f:1632268800,g:1634601600,h:1637020800,i:1641340800,j:1643673600,k:1646092800,l:1648512000,H:1650931200,X:1653350400,pB:null,"1B":null,"2B":null}},E:{A:{I:0,m:0.008322,J:0.004656,D:0.004465,E:0.004356,F:0.004891,A:0.004425,B:0.004318,C:0.003867,K:0.034803,L:0.158547,G:0.058005,"3B":0,qB:0.008692,"4B":0.007734,"5B":0.00456,"6B":0.004283,"7B":0.015468,rB:0.007734,iB:0.023202,jB:0.046404,"8B":0.266823,"9B":0.491109,AC:0.108276,sB:0.108276,tB:1.67054,uB:0.189483,kB:0,BC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","3B","qB","I","m","4B","J","5B","D","6B","E","F","7B","A","rB","B","iB","C","jB","K","8B","L","9B","G","AC","sB","tB","uB","kB","BC",""],E:"Safari",F:{"3B":1205798400,qB:1226534400,I:1244419200,m:1275868800,"4B":1311120000,J:1343174400,"5B":1382400000,D:1382400000,"6B":1410998400,E:1413417600,F:1443657600,"7B":1458518400,A:1474329600,rB:1490572800,B:1505779200,iB:1522281600,C:1537142400,jB:1553472000,K:1568851200,"8B":1585008000,L:1600214400,"9B":1619395200,G:1632096000,AC:1635292800,sB:1639353600,tB:1647216000,uB:1652745600,kB:null,BC:null}},F:{A:{"0":0.005152,"1":0.005014,"2":0.009758,"3":0.004879,"4":0.003867,"5":0.004283,"6":0.004367,"7":0.004534,"8":0.007734,"9":0.004227,F:0.0082,B:0.016581,C:0.004317,G:0.00685,M:0.00685,N:0.00685,O:0.005014,n:0.006015,o:0.004879,p:0.006597,q:0.006597,r:0.013434,s:0.006702,t:0.006015,u:0.005595,v:0.004393,w:0.007734,x:0.004879,y:0.004879,z:0.003867,AB:0.004418,BB:0.004161,CB:0.004227,DB:0.004725,EB:0.011601,FB:0.008942,GB:0.004707,HB:0.004827,IB:0.004707,JB:0.004707,KB:0.004326,LB:0.008922,MB:0.014349,NB:0.004425,OB:0.00472,PB:0.004425,QB:0.004425,RB:0.00472,SB:0.004532,TB:0.004566,Y:0.02283,UB:0.00867,VB:0.004656,WB:0.004642,XB:0.003867,YB:0.00944,ZB:0.004293,aB:0.003867,bB:0.004298,cB:0.096692,dB:0.004201,eB:0.004141,fB:0.004257,gB:0.003939,hB:0.008236,P:0.003939,Q:0.003939,R:0.008514,oB:0.003939,S:0.003939,T:0.007734,U:0.448572,V:0.475641,W:0.027069,CC:0.00685,DC:0,EC:0.008392,FC:0.004706,iB:0.006229,vB:0.004879,GC:0.008786,jB:0.00472},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","F","CC","DC","EC","FC","B","iB","vB","GC","C","jB","G","M","N","O","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","Y","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","P","Q","R","oB","S","T","U","V","W","",""],E:"Opera",F:{"0":1442448000,"1":1445904000,"2":1449100800,"3":1454371200,"4":1457308800,"5":1462320000,"6":1465344000,"7":1470096000,"8":1474329600,"9":1477267200,F:1150761600,CC:1223424000,DC:1251763200,EC:1267488000,FC:1277942400,B:1292457600,iB:1302566400,vB:1309219200,GC:1323129600,C:1323129600,jB:1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,n:1390867200,o:1393891200,p:1399334400,q:1401753600,r:1405987200,s:1409616000,t:1413331200,u:1417132800,v:1422316800,w:1425945600,x:1430179200,y:1433808000,z:1438646400,AB:1481587200,BB:1486425600,CB:1490054400,DB:1494374400,EB:1498003200,FB:1502236800,GB:1506470400,HB:1510099200,IB:1515024000,JB:1517961600,KB:1521676800,LB:1525910400,MB:1530144000,NB:1534982400,OB:1537833600,PB:1543363200,QB:1548201600,RB:1554768000,SB:1561593600,TB:1566259200,Y:1570406400,UB:1573689600,VB:1578441600,WB:1583971200,XB:1587513600,YB:1592956800,ZB:1595894400,aB:1600128000,bB:1603238400,cB:1613520000,dB:1612224000,eB:1616544000,fB:1619568000,gB:1623715200,hB:1627948800,P:1631577600,Q:1633392000,R:1635984000,oB:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:null},D:{F:"o",B:"o",C:"o",CC:"o",DC:"o",EC:"o",FC:"o",iB:"o",vB:"o",GC:"o",jB:"o"}},G:{A:{E:0,qB:0.00303644,HC:0,wB:0.00151822,IC:0.00455466,JC:0.00455466,KC:0.0167004,LC:0.00759111,MC:0.0197369,NC:0.0774293,OC:0.013664,PC:0.0926115,QC:0.0379555,RC:0.0318826,SC:0.0303644,TC:0.57996,UC:0.0288462,VC:0.0121458,WC:0.0607288,XC:0.189778,YC:0.592106,ZC:1.50911,aC:0.513159,sB:1.20395,tB:10.1478,uB:0,kB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","qB","HC","wB","IC","JC","KC","E","LC","MC","NC","OC","PC","QC","RC","SC","TC","UC","VC","WC","XC","YC","ZC","aC","sB","tB","uB","kB","",""],E:"Safari on iOS",F:{qB:1270252800,HC:1283904000,wB:1299628800,IC:1331078400,JC:1359331200,KC:1394409600,E:1410912000,LC:1413763200,MC:1442361600,NC:1458518400,OC:1473724800,PC:1490572800,QC:1505779200,RC:1522281600,SC:1537142400,TC:1553472000,UC:1568851200,VC:1572220800,WC:1580169600,XC:1585008000,YC:1600214400,ZC:1619395200,aC:1632096000,sB:1639353600,tB:1647216000,uB:1652659200,kB:null}},H:{A:{bC:0.998688},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bC","","",""],E:"Opera Mini",F:{bC:1426464000}},I:{A:{lB:0,I:0.0149357,H:0,cC:0,dC:0,eC:0,fC:0.0199142,wB:0.0597426,gC:0,hC:0.328584},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","cC","dC","eC","lB","I","fC","wB","gC","hC","H","","",""],E:"Android Browser",F:{cC:1256515200,dC:1274313600,eC:1291593600,lB:1298332800,I:1318896000,fC:1341792000,wB:1374624000,gC:1386547200,hC:1401667200,H:1651017600}},J:{A:{D:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","A","","",""],E:"Blackberry Browser",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,Y:0.0111391,iB:0,vB:0,jB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","iB","vB","C","jB","Y","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,iB:1314835200,vB:1318291200,C:1330300800,jB:1349740800,Y:1613433600},D:{Y:"webkit"}},L:{A:{X:41.3354},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","X","","",""],E:"Chrome for Android",F:{X:1653350400}},M:{A:{H:0.30665},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","H","","",""],E:"Firefox for Android",F:{H:1653955200}},N:{A:{A:0.0115934,B:0.022664},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{iC:0.766625},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","iC","","",""],E:"UC Browser for Android",F:{iC:1471392000},D:{iC:"webkit"}},P:{A:{I:0.209346,jC:0.0103543,kC:0.010304,lC:0.0628037,mC:0.0103584,nC:0.0104673,rB:0.0105043,oC:0.0418691,pC:0.0209346,qC:0.0942055,rC:0.0942055,sC:0.0942055,kB:0.889718,tC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","jC","kC","lC","mC","nC","rB","oC","pC","qC","rC","sC","kB","tC","","",""],E:"Samsung Internet",F:{I:1461024000,jC:1481846400,kC:1509408000,lC:1528329600,mC:1546128000,nC:1554163200,rB:1567900800,oC:1582588800,pC:1593475200,qC:1605657600,rC:1618531200,sC:1629072000,kB:1640736000,tC:1651708800}},Q:{A:{uC:0.153325},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uC","","",""],E:"QQ Browser",F:{uC:1589846400}},R:{A:{vC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","vC","","",""],E:"Baidu Browser",F:{vC:1491004800}},S:{A:{wC:0.073596},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","wC","","",""],E:"KaiOS Browser",F:{wC:1527811200}}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/browserVersions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/browserVersions.js index 8ebfe067d69299..1d2ffab820acb5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/browserVersions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/browserVersions.js @@ -1 +1 @@ -module.exports={"0":"35","1":"36","2":"37","3":"38","4":"39","5":"40","6":"41","7":"42","8":"43","9":"44",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"4",I:"6",J:"13",K:"14",L:"16",M:"17",N:"18",O:"79",P:"80",Q:"81",R:"83",S:"98",T:"99",U:"64",V:"84",W:"85",X:"86",Y:"87",Z:"88",a:"89",b:"90",c:"91",d:"92",e:"93",f:"94",g:"95",h:"96",i:"97",j:"5",k:"19",l:"20",m:"21",n:"22",o:"23",p:"24",q:"25",r:"26",s:"27",t:"28",u:"29",v:"30",w:"31",x:"32",y:"33",z:"34",AB:"45",BB:"46",CB:"47",DB:"48",EB:"49",FB:"50",GB:"51",HB:"52",IB:"53",JB:"54",KB:"55",LB:"56",MB:"57",NB:"58",OB:"60",PB:"62",QB:"63",RB:"65",SB:"66",TB:"67",UB:"68",VB:"69",WB:"70",XB:"71",YB:"72",ZB:"73",aB:"74",bB:"75",cB:"76",dB:"77",eB:"78",fB:"100",gB:"11.1",hB:"12.1",iB:"3",jB:"59",kB:"61",lB:"82",mB:"3.2",nB:"10.1",oB:"15.2-15.3",pB:"15.4",qB:"11.5",rB:"4.2-4.3",sB:"5.5",tB:"2",uB:"3.5",vB:"3.6",wB:"101",xB:"102",yB:"103",zB:"3.1","0B":"5.1","1B":"6.1","2B":"7.1","3B":"9.1","4B":"13.1","5B":"14.1","6B":"15.1","7B":"TP","8B":"9.5-9.6","9B":"10.0-10.1",AC:"10.5",BC:"10.6",CC:"11.6",DC:"4.0-4.1",EC:"5.0-5.1",FC:"6.0-6.1",GC:"7.0-7.1",HC:"8.1-8.4",IC:"9.0-9.2",JC:"9.3",KC:"10.0-10.2",LC:"10.3",MC:"11.0-11.2",NC:"11.3-11.4",OC:"12.0-12.1",PC:"12.2-12.5",QC:"13.0-13.1",RC:"13.2",SC:"13.3",TC:"13.4-13.7",UC:"14.0-14.4",VC:"14.5-14.8",WC:"15.0-15.1",XC:"all",YC:"2.1",ZC:"2.2",aC:"2.3",bC:"4.1",cC:"4.4",dC:"4.4.3-4.4.4",eC:"12.12",fC:"5.0-5.4",gC:"6.2-6.4",hC:"7.2-7.4",iC:"8.2",jC:"9.2",kC:"11.1-11.2",lC:"12.0",mC:"13.0",nC:"14.0",oC:"15.0",pC:"16.0",qC:"10.4",rC:"7.12",sC:"2.5"}; +module.exports={"0":"32","1":"33","2":"34","3":"35","4":"36","5":"37","6":"38","7":"39","8":"40","9":"41",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"101",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"102",Y:"64",Z:"88",a:"89",b:"90",c:"91",d:"92",e:"93",f:"94",g:"95",h:"96",i:"97",j:"98",k:"99",l:"100",m:"5",n:"19",o:"20",p:"21",q:"22",r:"23",s:"24",t:"25",u:"26",v:"27",w:"28",x:"29",y:"30",z:"31",AB:"42",BB:"43",CB:"44",DB:"45",EB:"46",FB:"47",GB:"48",HB:"49",IB:"50",JB:"51",KB:"52",LB:"53",MB:"54",NB:"55",OB:"56",PB:"57",QB:"58",RB:"60",SB:"62",TB:"63",UB:"65",VB:"66",WB:"67",XB:"68",YB:"69",ZB:"70",aB:"71",bB:"72",cB:"73",dB:"74",eB:"75",fB:"76",gB:"77",hB:"78",iB:"11.1",jB:"12.1",kB:"16.0",lB:"3",mB:"59",nB:"61",oB:"82",pB:"103",qB:"3.2",rB:"10.1",sB:"15.2-15.3",tB:"15.4",uB:"15.5",vB:"11.5",wB:"4.2-4.3",xB:"5.5",yB:"2",zB:"3.5","0B":"3.6","1B":"104","2B":"105","3B":"3.1","4B":"5.1","5B":"6.1","6B":"7.1","7B":"9.1","8B":"13.1","9B":"14.1",AC:"15.1",BC:"TP",CC:"9.5-9.6",DC:"10.0-10.1",EC:"10.5",FC:"10.6",GC:"11.6",HC:"4.0-4.1",IC:"5.0-5.1",JC:"6.0-6.1",KC:"7.0-7.1",LC:"8.1-8.4",MC:"9.0-9.2",NC:"9.3",OC:"10.0-10.2",PC:"10.3",QC:"11.0-11.2",RC:"11.3-11.4",SC:"12.0-12.1",TC:"12.2-12.5",UC:"13.0-13.1",VC:"13.2",WC:"13.3",XC:"13.4-13.7",YC:"14.0-14.4",ZC:"14.5-14.8",aC:"15.0-15.1",bC:"all",cC:"2.1",dC:"2.2",eC:"2.3",fC:"4.1",gC:"4.4",hC:"4.4.3-4.4.4",iC:"12.12",jC:"5.0-5.4",kC:"6.2-6.4",lC:"7.2-7.4",mC:"8.2",nC:"9.2",oC:"11.1-11.2",pC:"12.0",qC:"13.0",rC:"14.0",sC:"15.0",tC:"17.0",uC:"10.4",vC:"7.12",wC:"2.5"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features.js index 98260903a5baca..18e48829431444 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features.js @@ -1 +1 @@ -module.exports={"aac":require("./features/aac"),"abortcontroller":require("./features/abortcontroller"),"ac3-ec3":require("./features/ac3-ec3"),"accelerometer":require("./features/accelerometer"),"addeventlistener":require("./features/addeventlistener"),"alternate-stylesheet":require("./features/alternate-stylesheet"),"ambient-light":require("./features/ambient-light"),"apng":require("./features/apng"),"array-find-index":require("./features/array-find-index"),"array-find":require("./features/array-find"),"array-flat":require("./features/array-flat"),"array-includes":require("./features/array-includes"),"arrow-functions":require("./features/arrow-functions"),"asmjs":require("./features/asmjs"),"async-clipboard":require("./features/async-clipboard"),"async-functions":require("./features/async-functions"),"atob-btoa":require("./features/atob-btoa"),"audio-api":require("./features/audio-api"),"audio":require("./features/audio"),"audiotracks":require("./features/audiotracks"),"autofocus":require("./features/autofocus"),"auxclick":require("./features/auxclick"),"av1":require("./features/av1"),"avif":require("./features/avif"),"background-attachment":require("./features/background-attachment"),"background-clip-text":require("./features/background-clip-text"),"background-img-opts":require("./features/background-img-opts"),"background-position-x-y":require("./features/background-position-x-y"),"background-repeat-round-space":require("./features/background-repeat-round-space"),"background-sync":require("./features/background-sync"),"battery-status":require("./features/battery-status"),"beacon":require("./features/beacon"),"beforeafterprint":require("./features/beforeafterprint"),"bigint":require("./features/bigint"),"blobbuilder":require("./features/blobbuilder"),"bloburls":require("./features/bloburls"),"border-image":require("./features/border-image"),"border-radius":require("./features/border-radius"),"broadcastchannel":require("./features/broadcastchannel"),"brotli":require("./features/brotli"),"calc":require("./features/calc"),"canvas-blending":require("./features/canvas-blending"),"canvas-text":require("./features/canvas-text"),"canvas":require("./features/canvas"),"ch-unit":require("./features/ch-unit"),"chacha20-poly1305":require("./features/chacha20-poly1305"),"channel-messaging":require("./features/channel-messaging"),"childnode-remove":require("./features/childnode-remove"),"classlist":require("./features/classlist"),"client-hints-dpr-width-viewport":require("./features/client-hints-dpr-width-viewport"),"clipboard":require("./features/clipboard"),"colr-v1":require("./features/colr-v1"),"colr":require("./features/colr"),"comparedocumentposition":require("./features/comparedocumentposition"),"console-basic":require("./features/console-basic"),"console-time":require("./features/console-time"),"const":require("./features/const"),"constraint-validation":require("./features/constraint-validation"),"contenteditable":require("./features/contenteditable"),"contentsecuritypolicy":require("./features/contentsecuritypolicy"),"contentsecuritypolicy2":require("./features/contentsecuritypolicy2"),"cookie-store-api":require("./features/cookie-store-api"),"cors":require("./features/cors"),"createimagebitmap":require("./features/createimagebitmap"),"credential-management":require("./features/credential-management"),"cryptography":require("./features/cryptography"),"css-all":require("./features/css-all"),"css-animation":require("./features/css-animation"),"css-any-link":require("./features/css-any-link"),"css-appearance":require("./features/css-appearance"),"css-at-counter-style":require("./features/css-at-counter-style"),"css-autofill":require("./features/css-autofill"),"css-backdrop-filter":require("./features/css-backdrop-filter"),"css-background-offsets":require("./features/css-background-offsets"),"css-backgroundblendmode":require("./features/css-backgroundblendmode"),"css-boxdecorationbreak":require("./features/css-boxdecorationbreak"),"css-boxshadow":require("./features/css-boxshadow"),"css-canvas":require("./features/css-canvas"),"css-caret-color":require("./features/css-caret-color"),"css-cascade-layers":require("./features/css-cascade-layers"),"css-case-insensitive":require("./features/css-case-insensitive"),"css-clip-path":require("./features/css-clip-path"),"css-color-adjust":require("./features/css-color-adjust"),"css-color-function":require("./features/css-color-function"),"css-conic-gradients":require("./features/css-conic-gradients"),"css-container-queries":require("./features/css-container-queries"),"css-containment":require("./features/css-containment"),"css-content-visibility":require("./features/css-content-visibility"),"css-counters":require("./features/css-counters"),"css-crisp-edges":require("./features/css-crisp-edges"),"css-cross-fade":require("./features/css-cross-fade"),"css-default-pseudo":require("./features/css-default-pseudo"),"css-descendant-gtgt":require("./features/css-descendant-gtgt"),"css-deviceadaptation":require("./features/css-deviceadaptation"),"css-dir-pseudo":require("./features/css-dir-pseudo"),"css-display-contents":require("./features/css-display-contents"),"css-element-function":require("./features/css-element-function"),"css-env-function":require("./features/css-env-function"),"css-exclusions":require("./features/css-exclusions"),"css-featurequeries":require("./features/css-featurequeries"),"css-file-selector-button":require("./features/css-file-selector-button"),"css-filter-function":require("./features/css-filter-function"),"css-filters":require("./features/css-filters"),"css-first-letter":require("./features/css-first-letter"),"css-first-line":require("./features/css-first-line"),"css-fixed":require("./features/css-fixed"),"css-focus-visible":require("./features/css-focus-visible"),"css-focus-within":require("./features/css-focus-within"),"css-font-palette":require("./features/css-font-palette"),"css-font-rendering-controls":require("./features/css-font-rendering-controls"),"css-font-stretch":require("./features/css-font-stretch"),"css-gencontent":require("./features/css-gencontent"),"css-gradients":require("./features/css-gradients"),"css-grid":require("./features/css-grid"),"css-hanging-punctuation":require("./features/css-hanging-punctuation"),"css-has":require("./features/css-has"),"css-hyphenate":require("./features/css-hyphenate"),"css-hyphens":require("./features/css-hyphens"),"css-image-orientation":require("./features/css-image-orientation"),"css-image-set":require("./features/css-image-set"),"css-in-out-of-range":require("./features/css-in-out-of-range"),"css-indeterminate-pseudo":require("./features/css-indeterminate-pseudo"),"css-initial-letter":require("./features/css-initial-letter"),"css-initial-value":require("./features/css-initial-value"),"css-lch-lab":require("./features/css-lch-lab"),"css-letter-spacing":require("./features/css-letter-spacing"),"css-line-clamp":require("./features/css-line-clamp"),"css-logical-props":require("./features/css-logical-props"),"css-marker-pseudo":require("./features/css-marker-pseudo"),"css-masks":require("./features/css-masks"),"css-matches-pseudo":require("./features/css-matches-pseudo"),"css-math-functions":require("./features/css-math-functions"),"css-media-interaction":require("./features/css-media-interaction"),"css-media-resolution":require("./features/css-media-resolution"),"css-media-scripting":require("./features/css-media-scripting"),"css-mediaqueries":require("./features/css-mediaqueries"),"css-mixblendmode":require("./features/css-mixblendmode"),"css-motion-paths":require("./features/css-motion-paths"),"css-namespaces":require("./features/css-namespaces"),"css-nesting":require("./features/css-nesting"),"css-not-sel-list":require("./features/css-not-sel-list"),"css-nth-child-of":require("./features/css-nth-child-of"),"css-opacity":require("./features/css-opacity"),"css-optional-pseudo":require("./features/css-optional-pseudo"),"css-overflow-anchor":require("./features/css-overflow-anchor"),"css-overflow-overlay":require("./features/css-overflow-overlay"),"css-overflow":require("./features/css-overflow"),"css-overscroll-behavior":require("./features/css-overscroll-behavior"),"css-page-break":require("./features/css-page-break"),"css-paged-media":require("./features/css-paged-media"),"css-paint-api":require("./features/css-paint-api"),"css-placeholder-shown":require("./features/css-placeholder-shown"),"css-placeholder":require("./features/css-placeholder"),"css-read-only-write":require("./features/css-read-only-write"),"css-rebeccapurple":require("./features/css-rebeccapurple"),"css-reflections":require("./features/css-reflections"),"css-regions":require("./features/css-regions"),"css-repeating-gradients":require("./features/css-repeating-gradients"),"css-resize":require("./features/css-resize"),"css-revert-value":require("./features/css-revert-value"),"css-rrggbbaa":require("./features/css-rrggbbaa"),"css-scroll-behavior":require("./features/css-scroll-behavior"),"css-scroll-timeline":require("./features/css-scroll-timeline"),"css-scrollbar":require("./features/css-scrollbar"),"css-sel2":require("./features/css-sel2"),"css-sel3":require("./features/css-sel3"),"css-selection":require("./features/css-selection"),"css-shapes":require("./features/css-shapes"),"css-snappoints":require("./features/css-snappoints"),"css-sticky":require("./features/css-sticky"),"css-subgrid":require("./features/css-subgrid"),"css-supports-api":require("./features/css-supports-api"),"css-table":require("./features/css-table"),"css-text-align-last":require("./features/css-text-align-last"),"css-text-indent":require("./features/css-text-indent"),"css-text-justify":require("./features/css-text-justify"),"css-text-orientation":require("./features/css-text-orientation"),"css-text-spacing":require("./features/css-text-spacing"),"css-textshadow":require("./features/css-textshadow"),"css-touch-action-2":require("./features/css-touch-action-2"),"css-touch-action":require("./features/css-touch-action"),"css-transitions":require("./features/css-transitions"),"css-unicode-bidi":require("./features/css-unicode-bidi"),"css-unset-value":require("./features/css-unset-value"),"css-variables":require("./features/css-variables"),"css-when-else":require("./features/css-when-else"),"css-widows-orphans":require("./features/css-widows-orphans"),"css-width-stretch":require("./features/css-width-stretch"),"css-writing-mode":require("./features/css-writing-mode"),"css-zoom":require("./features/css-zoom"),"css3-attr":require("./features/css3-attr"),"css3-boxsizing":require("./features/css3-boxsizing"),"css3-colors":require("./features/css3-colors"),"css3-cursors-grab":require("./features/css3-cursors-grab"),"css3-cursors-newer":require("./features/css3-cursors-newer"),"css3-cursors":require("./features/css3-cursors"),"css3-tabsize":require("./features/css3-tabsize"),"currentcolor":require("./features/currentcolor"),"custom-elements":require("./features/custom-elements"),"custom-elementsv1":require("./features/custom-elementsv1"),"customevent":require("./features/customevent"),"datalist":require("./features/datalist"),"dataset":require("./features/dataset"),"datauri":require("./features/datauri"),"date-tolocaledatestring":require("./features/date-tolocaledatestring"),"decorators":require("./features/decorators"),"details":require("./features/details"),"deviceorientation":require("./features/deviceorientation"),"devicepixelratio":require("./features/devicepixelratio"),"dialog":require("./features/dialog"),"dispatchevent":require("./features/dispatchevent"),"dnssec":require("./features/dnssec"),"do-not-track":require("./features/do-not-track"),"document-currentscript":require("./features/document-currentscript"),"document-evaluate-xpath":require("./features/document-evaluate-xpath"),"document-execcommand":require("./features/document-execcommand"),"document-policy":require("./features/document-policy"),"document-scrollingelement":require("./features/document-scrollingelement"),"documenthead":require("./features/documenthead"),"dom-manip-convenience":require("./features/dom-manip-convenience"),"dom-range":require("./features/dom-range"),"domcontentloaded":require("./features/domcontentloaded"),"domfocusin-domfocusout-events":require("./features/domfocusin-domfocusout-events"),"dommatrix":require("./features/dommatrix"),"download":require("./features/download"),"dragndrop":require("./features/dragndrop"),"element-closest":require("./features/element-closest"),"element-from-point":require("./features/element-from-point"),"element-scroll-methods":require("./features/element-scroll-methods"),"eme":require("./features/eme"),"eot":require("./features/eot"),"es5":require("./features/es5"),"es6-class":require("./features/es6-class"),"es6-generators":require("./features/es6-generators"),"es6-module-dynamic-import":require("./features/es6-module-dynamic-import"),"es6-module":require("./features/es6-module"),"es6-number":require("./features/es6-number"),"es6-string-includes":require("./features/es6-string-includes"),"es6":require("./features/es6"),"eventsource":require("./features/eventsource"),"extended-system-fonts":require("./features/extended-system-fonts"),"feature-policy":require("./features/feature-policy"),"fetch":require("./features/fetch"),"fieldset-disabled":require("./features/fieldset-disabled"),"fileapi":require("./features/fileapi"),"filereader":require("./features/filereader"),"filereadersync":require("./features/filereadersync"),"filesystem":require("./features/filesystem"),"flac":require("./features/flac"),"flexbox-gap":require("./features/flexbox-gap"),"flexbox":require("./features/flexbox"),"flow-root":require("./features/flow-root"),"focusin-focusout-events":require("./features/focusin-focusout-events"),"focusoptions-preventscroll":require("./features/focusoptions-preventscroll"),"font-family-system-ui":require("./features/font-family-system-ui"),"font-feature":require("./features/font-feature"),"font-kerning":require("./features/font-kerning"),"font-loading":require("./features/font-loading"),"font-metrics-overrides":require("./features/font-metrics-overrides"),"font-size-adjust":require("./features/font-size-adjust"),"font-smooth":require("./features/font-smooth"),"font-unicode-range":require("./features/font-unicode-range"),"font-variant-alternates":require("./features/font-variant-alternates"),"font-variant-east-asian":require("./features/font-variant-east-asian"),"font-variant-numeric":require("./features/font-variant-numeric"),"fontface":require("./features/fontface"),"form-attribute":require("./features/form-attribute"),"form-submit-attributes":require("./features/form-submit-attributes"),"form-validation":require("./features/form-validation"),"forms":require("./features/forms"),"fullscreen":require("./features/fullscreen"),"gamepad":require("./features/gamepad"),"geolocation":require("./features/geolocation"),"getboundingclientrect":require("./features/getboundingclientrect"),"getcomputedstyle":require("./features/getcomputedstyle"),"getelementsbyclassname":require("./features/getelementsbyclassname"),"getrandomvalues":require("./features/getrandomvalues"),"gyroscope":require("./features/gyroscope"),"hardwareconcurrency":require("./features/hardwareconcurrency"),"hashchange":require("./features/hashchange"),"heif":require("./features/heif"),"hevc":require("./features/hevc"),"hidden":require("./features/hidden"),"high-resolution-time":require("./features/high-resolution-time"),"history":require("./features/history"),"html-media-capture":require("./features/html-media-capture"),"html5semantic":require("./features/html5semantic"),"http-live-streaming":require("./features/http-live-streaming"),"http2":require("./features/http2"),"http3":require("./features/http3"),"iframe-sandbox":require("./features/iframe-sandbox"),"iframe-seamless":require("./features/iframe-seamless"),"iframe-srcdoc":require("./features/iframe-srcdoc"),"imagecapture":require("./features/imagecapture"),"ime":require("./features/ime"),"img-naturalwidth-naturalheight":require("./features/img-naturalwidth-naturalheight"),"import-maps":require("./features/import-maps"),"imports":require("./features/imports"),"indeterminate-checkbox":require("./features/indeterminate-checkbox"),"indexeddb":require("./features/indexeddb"),"indexeddb2":require("./features/indexeddb2"),"inline-block":require("./features/inline-block"),"innertext":require("./features/innertext"),"input-autocomplete-onoff":require("./features/input-autocomplete-onoff"),"input-color":require("./features/input-color"),"input-datetime":require("./features/input-datetime"),"input-email-tel-url":require("./features/input-email-tel-url"),"input-event":require("./features/input-event"),"input-file-accept":require("./features/input-file-accept"),"input-file-directory":require("./features/input-file-directory"),"input-file-multiple":require("./features/input-file-multiple"),"input-inputmode":require("./features/input-inputmode"),"input-minlength":require("./features/input-minlength"),"input-number":require("./features/input-number"),"input-pattern":require("./features/input-pattern"),"input-placeholder":require("./features/input-placeholder"),"input-range":require("./features/input-range"),"input-search":require("./features/input-search"),"input-selection":require("./features/input-selection"),"insert-adjacent":require("./features/insert-adjacent"),"insertadjacenthtml":require("./features/insertadjacenthtml"),"internationalization":require("./features/internationalization"),"intersectionobserver-v2":require("./features/intersectionobserver-v2"),"intersectionobserver":require("./features/intersectionobserver"),"intl-pluralrules":require("./features/intl-pluralrules"),"intrinsic-width":require("./features/intrinsic-width"),"jpeg2000":require("./features/jpeg2000"),"jpegxl":require("./features/jpegxl"),"jpegxr":require("./features/jpegxr"),"js-regexp-lookbehind":require("./features/js-regexp-lookbehind"),"json":require("./features/json"),"justify-content-space-evenly":require("./features/justify-content-space-evenly"),"kerning-pairs-ligatures":require("./features/kerning-pairs-ligatures"),"keyboardevent-charcode":require("./features/keyboardevent-charcode"),"keyboardevent-code":require("./features/keyboardevent-code"),"keyboardevent-getmodifierstate":require("./features/keyboardevent-getmodifierstate"),"keyboardevent-key":require("./features/keyboardevent-key"),"keyboardevent-location":require("./features/keyboardevent-location"),"keyboardevent-which":require("./features/keyboardevent-which"),"lazyload":require("./features/lazyload"),"let":require("./features/let"),"link-icon-png":require("./features/link-icon-png"),"link-icon-svg":require("./features/link-icon-svg"),"link-rel-dns-prefetch":require("./features/link-rel-dns-prefetch"),"link-rel-modulepreload":require("./features/link-rel-modulepreload"),"link-rel-preconnect":require("./features/link-rel-preconnect"),"link-rel-prefetch":require("./features/link-rel-prefetch"),"link-rel-preload":require("./features/link-rel-preload"),"link-rel-prerender":require("./features/link-rel-prerender"),"loading-lazy-attr":require("./features/loading-lazy-attr"),"localecompare":require("./features/localecompare"),"magnetometer":require("./features/magnetometer"),"matchesselector":require("./features/matchesselector"),"matchmedia":require("./features/matchmedia"),"mathml":require("./features/mathml"),"maxlength":require("./features/maxlength"),"media-attribute":require("./features/media-attribute"),"media-fragments":require("./features/media-fragments"),"media-session-api":require("./features/media-session-api"),"mediacapture-fromelement":require("./features/mediacapture-fromelement"),"mediarecorder":require("./features/mediarecorder"),"mediasource":require("./features/mediasource"),"menu":require("./features/menu"),"meta-theme-color":require("./features/meta-theme-color"),"meter":require("./features/meter"),"midi":require("./features/midi"),"minmaxwh":require("./features/minmaxwh"),"mp3":require("./features/mp3"),"mpeg-dash":require("./features/mpeg-dash"),"mpeg4":require("./features/mpeg4"),"multibackgrounds":require("./features/multibackgrounds"),"multicolumn":require("./features/multicolumn"),"mutation-events":require("./features/mutation-events"),"mutationobserver":require("./features/mutationobserver"),"namevalue-storage":require("./features/namevalue-storage"),"native-filesystem-api":require("./features/native-filesystem-api"),"nav-timing":require("./features/nav-timing"),"navigator-language":require("./features/navigator-language"),"netinfo":require("./features/netinfo"),"notifications":require("./features/notifications"),"object-entries":require("./features/object-entries"),"object-fit":require("./features/object-fit"),"object-observe":require("./features/object-observe"),"object-values":require("./features/object-values"),"objectrtc":require("./features/objectrtc"),"offline-apps":require("./features/offline-apps"),"offscreencanvas":require("./features/offscreencanvas"),"ogg-vorbis":require("./features/ogg-vorbis"),"ogv":require("./features/ogv"),"ol-reversed":require("./features/ol-reversed"),"once-event-listener":require("./features/once-event-listener"),"online-status":require("./features/online-status"),"opus":require("./features/opus"),"orientation-sensor":require("./features/orientation-sensor"),"outline":require("./features/outline"),"pad-start-end":require("./features/pad-start-end"),"page-transition-events":require("./features/page-transition-events"),"pagevisibility":require("./features/pagevisibility"),"passive-event-listener":require("./features/passive-event-listener"),"passwordrules":require("./features/passwordrules"),"path2d":require("./features/path2d"),"payment-request":require("./features/payment-request"),"pdf-viewer":require("./features/pdf-viewer"),"permissions-api":require("./features/permissions-api"),"permissions-policy":require("./features/permissions-policy"),"picture-in-picture":require("./features/picture-in-picture"),"picture":require("./features/picture"),"ping":require("./features/ping"),"png-alpha":require("./features/png-alpha"),"pointer-events":require("./features/pointer-events"),"pointer":require("./features/pointer"),"pointerlock":require("./features/pointerlock"),"portals":require("./features/portals"),"prefers-color-scheme":require("./features/prefers-color-scheme"),"prefers-reduced-motion":require("./features/prefers-reduced-motion"),"private-class-fields":require("./features/private-class-fields"),"private-methods-and-accessors":require("./features/private-methods-and-accessors"),"progress":require("./features/progress"),"promise-finally":require("./features/promise-finally"),"promises":require("./features/promises"),"proximity":require("./features/proximity"),"proxy":require("./features/proxy"),"public-class-fields":require("./features/public-class-fields"),"publickeypinning":require("./features/publickeypinning"),"push-api":require("./features/push-api"),"queryselector":require("./features/queryselector"),"readonly-attr":require("./features/readonly-attr"),"referrer-policy":require("./features/referrer-policy"),"registerprotocolhandler":require("./features/registerprotocolhandler"),"rel-noopener":require("./features/rel-noopener"),"rel-noreferrer":require("./features/rel-noreferrer"),"rellist":require("./features/rellist"),"rem":require("./features/rem"),"requestanimationframe":require("./features/requestanimationframe"),"requestidlecallback":require("./features/requestidlecallback"),"resizeobserver":require("./features/resizeobserver"),"resource-timing":require("./features/resource-timing"),"rest-parameters":require("./features/rest-parameters"),"rtcpeerconnection":require("./features/rtcpeerconnection"),"ruby":require("./features/ruby"),"run-in":require("./features/run-in"),"same-site-cookie-attribute":require("./features/same-site-cookie-attribute"),"screen-orientation":require("./features/screen-orientation"),"script-async":require("./features/script-async"),"script-defer":require("./features/script-defer"),"scrollintoview":require("./features/scrollintoview"),"scrollintoviewifneeded":require("./features/scrollintoviewifneeded"),"sdch":require("./features/sdch"),"selection-api":require("./features/selection-api"),"server-timing":require("./features/server-timing"),"serviceworkers":require("./features/serviceworkers"),"setimmediate":require("./features/setimmediate"),"sha-2":require("./features/sha-2"),"shadowdom":require("./features/shadowdom"),"shadowdomv1":require("./features/shadowdomv1"),"sharedarraybuffer":require("./features/sharedarraybuffer"),"sharedworkers":require("./features/sharedworkers"),"sni":require("./features/sni"),"spdy":require("./features/spdy"),"speech-recognition":require("./features/speech-recognition"),"speech-synthesis":require("./features/speech-synthesis"),"spellcheck-attribute":require("./features/spellcheck-attribute"),"sql-storage":require("./features/sql-storage"),"srcset":require("./features/srcset"),"stream":require("./features/stream"),"streams":require("./features/streams"),"stricttransportsecurity":require("./features/stricttransportsecurity"),"style-scoped":require("./features/style-scoped"),"subresource-integrity":require("./features/subresource-integrity"),"svg-css":require("./features/svg-css"),"svg-filters":require("./features/svg-filters"),"svg-fonts":require("./features/svg-fonts"),"svg-fragment":require("./features/svg-fragment"),"svg-html":require("./features/svg-html"),"svg-html5":require("./features/svg-html5"),"svg-img":require("./features/svg-img"),"svg-smil":require("./features/svg-smil"),"svg":require("./features/svg"),"sxg":require("./features/sxg"),"tabindex-attr":require("./features/tabindex-attr"),"template-literals":require("./features/template-literals"),"template":require("./features/template"),"temporal":require("./features/temporal"),"testfeat":require("./features/testfeat"),"text-decoration":require("./features/text-decoration"),"text-emphasis":require("./features/text-emphasis"),"text-overflow":require("./features/text-overflow"),"text-size-adjust":require("./features/text-size-adjust"),"text-stroke":require("./features/text-stroke"),"text-underline-offset":require("./features/text-underline-offset"),"textcontent":require("./features/textcontent"),"textencoder":require("./features/textencoder"),"tls1-1":require("./features/tls1-1"),"tls1-2":require("./features/tls1-2"),"tls1-3":require("./features/tls1-3"),"token-binding":require("./features/token-binding"),"touch":require("./features/touch"),"transforms2d":require("./features/transforms2d"),"transforms3d":require("./features/transforms3d"),"trusted-types":require("./features/trusted-types"),"ttf":require("./features/ttf"),"typedarrays":require("./features/typedarrays"),"u2f":require("./features/u2f"),"unhandledrejection":require("./features/unhandledrejection"),"upgradeinsecurerequests":require("./features/upgradeinsecurerequests"),"url-scroll-to-text-fragment":require("./features/url-scroll-to-text-fragment"),"url":require("./features/url"),"urlsearchparams":require("./features/urlsearchparams"),"use-strict":require("./features/use-strict"),"user-select-none":require("./features/user-select-none"),"user-timing":require("./features/user-timing"),"variable-fonts":require("./features/variable-fonts"),"vector-effect":require("./features/vector-effect"),"vibration":require("./features/vibration"),"video":require("./features/video"),"videotracks":require("./features/videotracks"),"viewport-unit-variants":require("./features/viewport-unit-variants"),"viewport-units":require("./features/viewport-units"),"wai-aria":require("./features/wai-aria"),"wake-lock":require("./features/wake-lock"),"wasm":require("./features/wasm"),"wav":require("./features/wav"),"wbr-element":require("./features/wbr-element"),"web-animation":require("./features/web-animation"),"web-app-manifest":require("./features/web-app-manifest"),"web-bluetooth":require("./features/web-bluetooth"),"web-serial":require("./features/web-serial"),"web-share":require("./features/web-share"),"webauthn":require("./features/webauthn"),"webgl":require("./features/webgl"),"webgl2":require("./features/webgl2"),"webgpu":require("./features/webgpu"),"webhid":require("./features/webhid"),"webkit-user-drag":require("./features/webkit-user-drag"),"webm":require("./features/webm"),"webnfc":require("./features/webnfc"),"webp":require("./features/webp"),"websockets":require("./features/websockets"),"webusb":require("./features/webusb"),"webvr":require("./features/webvr"),"webvtt":require("./features/webvtt"),"webworkers":require("./features/webworkers"),"webxr":require("./features/webxr"),"will-change":require("./features/will-change"),"woff":require("./features/woff"),"woff2":require("./features/woff2"),"word-break":require("./features/word-break"),"wordwrap":require("./features/wordwrap"),"x-doc-messaging":require("./features/x-doc-messaging"),"x-frame-options":require("./features/x-frame-options"),"xhr2":require("./features/xhr2"),"xhtml":require("./features/xhtml"),"xhtmlsmil":require("./features/xhtmlsmil"),"xml-serializer":require("./features/xml-serializer")}; +module.exports={"aac":require("./features/aac"),"abortcontroller":require("./features/abortcontroller"),"ac3-ec3":require("./features/ac3-ec3"),"accelerometer":require("./features/accelerometer"),"addeventlistener":require("./features/addeventlistener"),"alternate-stylesheet":require("./features/alternate-stylesheet"),"ambient-light":require("./features/ambient-light"),"apng":require("./features/apng"),"array-find-index":require("./features/array-find-index"),"array-find":require("./features/array-find"),"array-flat":require("./features/array-flat"),"array-includes":require("./features/array-includes"),"arrow-functions":require("./features/arrow-functions"),"asmjs":require("./features/asmjs"),"async-clipboard":require("./features/async-clipboard"),"async-functions":require("./features/async-functions"),"atob-btoa":require("./features/atob-btoa"),"audio-api":require("./features/audio-api"),"audio":require("./features/audio"),"audiotracks":require("./features/audiotracks"),"autofocus":require("./features/autofocus"),"auxclick":require("./features/auxclick"),"av1":require("./features/av1"),"avif":require("./features/avif"),"background-attachment":require("./features/background-attachment"),"background-clip-text":require("./features/background-clip-text"),"background-img-opts":require("./features/background-img-opts"),"background-position-x-y":require("./features/background-position-x-y"),"background-repeat-round-space":require("./features/background-repeat-round-space"),"background-sync":require("./features/background-sync"),"battery-status":require("./features/battery-status"),"beacon":require("./features/beacon"),"beforeafterprint":require("./features/beforeafterprint"),"bigint":require("./features/bigint"),"blobbuilder":require("./features/blobbuilder"),"bloburls":require("./features/bloburls"),"border-image":require("./features/border-image"),"border-radius":require("./features/border-radius"),"broadcastchannel":require("./features/broadcastchannel"),"brotli":require("./features/brotli"),"calc":require("./features/calc"),"canvas-blending":require("./features/canvas-blending"),"canvas-text":require("./features/canvas-text"),"canvas":require("./features/canvas"),"ch-unit":require("./features/ch-unit"),"chacha20-poly1305":require("./features/chacha20-poly1305"),"channel-messaging":require("./features/channel-messaging"),"childnode-remove":require("./features/childnode-remove"),"classlist":require("./features/classlist"),"client-hints-dpr-width-viewport":require("./features/client-hints-dpr-width-viewport"),"clipboard":require("./features/clipboard"),"colr-v1":require("./features/colr-v1"),"colr":require("./features/colr"),"comparedocumentposition":require("./features/comparedocumentposition"),"console-basic":require("./features/console-basic"),"console-time":require("./features/console-time"),"const":require("./features/const"),"constraint-validation":require("./features/constraint-validation"),"contenteditable":require("./features/contenteditable"),"contentsecuritypolicy":require("./features/contentsecuritypolicy"),"contentsecuritypolicy2":require("./features/contentsecuritypolicy2"),"cookie-store-api":require("./features/cookie-store-api"),"cors":require("./features/cors"),"createimagebitmap":require("./features/createimagebitmap"),"credential-management":require("./features/credential-management"),"cryptography":require("./features/cryptography"),"css-all":require("./features/css-all"),"css-animation":require("./features/css-animation"),"css-any-link":require("./features/css-any-link"),"css-appearance":require("./features/css-appearance"),"css-at-counter-style":require("./features/css-at-counter-style"),"css-autofill":require("./features/css-autofill"),"css-backdrop-filter":require("./features/css-backdrop-filter"),"css-background-offsets":require("./features/css-background-offsets"),"css-backgroundblendmode":require("./features/css-backgroundblendmode"),"css-boxdecorationbreak":require("./features/css-boxdecorationbreak"),"css-boxshadow":require("./features/css-boxshadow"),"css-canvas":require("./features/css-canvas"),"css-caret-color":require("./features/css-caret-color"),"css-cascade-layers":require("./features/css-cascade-layers"),"css-case-insensitive":require("./features/css-case-insensitive"),"css-clip-path":require("./features/css-clip-path"),"css-color-adjust":require("./features/css-color-adjust"),"css-color-function":require("./features/css-color-function"),"css-conic-gradients":require("./features/css-conic-gradients"),"css-container-queries":require("./features/css-container-queries"),"css-container-query-units":require("./features/css-container-query-units"),"css-containment":require("./features/css-containment"),"css-content-visibility":require("./features/css-content-visibility"),"css-counters":require("./features/css-counters"),"css-crisp-edges":require("./features/css-crisp-edges"),"css-cross-fade":require("./features/css-cross-fade"),"css-default-pseudo":require("./features/css-default-pseudo"),"css-descendant-gtgt":require("./features/css-descendant-gtgt"),"css-deviceadaptation":require("./features/css-deviceadaptation"),"css-dir-pseudo":require("./features/css-dir-pseudo"),"css-display-contents":require("./features/css-display-contents"),"css-element-function":require("./features/css-element-function"),"css-env-function":require("./features/css-env-function"),"css-exclusions":require("./features/css-exclusions"),"css-featurequeries":require("./features/css-featurequeries"),"css-file-selector-button":require("./features/css-file-selector-button"),"css-filter-function":require("./features/css-filter-function"),"css-filters":require("./features/css-filters"),"css-first-letter":require("./features/css-first-letter"),"css-first-line":require("./features/css-first-line"),"css-fixed":require("./features/css-fixed"),"css-focus-visible":require("./features/css-focus-visible"),"css-focus-within":require("./features/css-focus-within"),"css-font-palette":require("./features/css-font-palette"),"css-font-rendering-controls":require("./features/css-font-rendering-controls"),"css-font-stretch":require("./features/css-font-stretch"),"css-gencontent":require("./features/css-gencontent"),"css-gradients":require("./features/css-gradients"),"css-grid-animation":require("./features/css-grid-animation"),"css-grid":require("./features/css-grid"),"css-hanging-punctuation":require("./features/css-hanging-punctuation"),"css-has":require("./features/css-has"),"css-hyphenate":require("./features/css-hyphenate"),"css-hyphens":require("./features/css-hyphens"),"css-image-orientation":require("./features/css-image-orientation"),"css-image-set":require("./features/css-image-set"),"css-in-out-of-range":require("./features/css-in-out-of-range"),"css-indeterminate-pseudo":require("./features/css-indeterminate-pseudo"),"css-initial-letter":require("./features/css-initial-letter"),"css-initial-value":require("./features/css-initial-value"),"css-lch-lab":require("./features/css-lch-lab"),"css-letter-spacing":require("./features/css-letter-spacing"),"css-line-clamp":require("./features/css-line-clamp"),"css-logical-props":require("./features/css-logical-props"),"css-marker-pseudo":require("./features/css-marker-pseudo"),"css-masks":require("./features/css-masks"),"css-matches-pseudo":require("./features/css-matches-pseudo"),"css-math-functions":require("./features/css-math-functions"),"css-media-interaction":require("./features/css-media-interaction"),"css-media-resolution":require("./features/css-media-resolution"),"css-media-scripting":require("./features/css-media-scripting"),"css-mediaqueries":require("./features/css-mediaqueries"),"css-mixblendmode":require("./features/css-mixblendmode"),"css-motion-paths":require("./features/css-motion-paths"),"css-namespaces":require("./features/css-namespaces"),"css-nesting":require("./features/css-nesting"),"css-not-sel-list":require("./features/css-not-sel-list"),"css-nth-child-of":require("./features/css-nth-child-of"),"css-opacity":require("./features/css-opacity"),"css-optional-pseudo":require("./features/css-optional-pseudo"),"css-overflow-anchor":require("./features/css-overflow-anchor"),"css-overflow-overlay":require("./features/css-overflow-overlay"),"css-overflow":require("./features/css-overflow"),"css-overscroll-behavior":require("./features/css-overscroll-behavior"),"css-page-break":require("./features/css-page-break"),"css-paged-media":require("./features/css-paged-media"),"css-paint-api":require("./features/css-paint-api"),"css-placeholder-shown":require("./features/css-placeholder-shown"),"css-placeholder":require("./features/css-placeholder"),"css-print-color-adjust":require("./features/css-print-color-adjust"),"css-read-only-write":require("./features/css-read-only-write"),"css-rebeccapurple":require("./features/css-rebeccapurple"),"css-reflections":require("./features/css-reflections"),"css-regions":require("./features/css-regions"),"css-repeating-gradients":require("./features/css-repeating-gradients"),"css-resize":require("./features/css-resize"),"css-revert-value":require("./features/css-revert-value"),"css-rrggbbaa":require("./features/css-rrggbbaa"),"css-scroll-behavior":require("./features/css-scroll-behavior"),"css-scroll-timeline":require("./features/css-scroll-timeline"),"css-scrollbar":require("./features/css-scrollbar"),"css-sel2":require("./features/css-sel2"),"css-sel3":require("./features/css-sel3"),"css-selection":require("./features/css-selection"),"css-shapes":require("./features/css-shapes"),"css-snappoints":require("./features/css-snappoints"),"css-sticky":require("./features/css-sticky"),"css-subgrid":require("./features/css-subgrid"),"css-supports-api":require("./features/css-supports-api"),"css-table":require("./features/css-table"),"css-text-align-last":require("./features/css-text-align-last"),"css-text-indent":require("./features/css-text-indent"),"css-text-justify":require("./features/css-text-justify"),"css-text-orientation":require("./features/css-text-orientation"),"css-text-spacing":require("./features/css-text-spacing"),"css-textshadow":require("./features/css-textshadow"),"css-touch-action-2":require("./features/css-touch-action-2"),"css-touch-action":require("./features/css-touch-action"),"css-transitions":require("./features/css-transitions"),"css-unicode-bidi":require("./features/css-unicode-bidi"),"css-unset-value":require("./features/css-unset-value"),"css-variables":require("./features/css-variables"),"css-when-else":require("./features/css-when-else"),"css-widows-orphans":require("./features/css-widows-orphans"),"css-width-stretch":require("./features/css-width-stretch"),"css-writing-mode":require("./features/css-writing-mode"),"css-zoom":require("./features/css-zoom"),"css3-attr":require("./features/css3-attr"),"css3-boxsizing":require("./features/css3-boxsizing"),"css3-colors":require("./features/css3-colors"),"css3-cursors-grab":require("./features/css3-cursors-grab"),"css3-cursors-newer":require("./features/css3-cursors-newer"),"css3-cursors":require("./features/css3-cursors"),"css3-tabsize":require("./features/css3-tabsize"),"currentcolor":require("./features/currentcolor"),"custom-elements":require("./features/custom-elements"),"custom-elementsv1":require("./features/custom-elementsv1"),"customevent":require("./features/customevent"),"datalist":require("./features/datalist"),"dataset":require("./features/dataset"),"datauri":require("./features/datauri"),"date-tolocaledatestring":require("./features/date-tolocaledatestring"),"declarative-shadow-dom":require("./features/declarative-shadow-dom"),"decorators":require("./features/decorators"),"details":require("./features/details"),"deviceorientation":require("./features/deviceorientation"),"devicepixelratio":require("./features/devicepixelratio"),"dialog":require("./features/dialog"),"dispatchevent":require("./features/dispatchevent"),"dnssec":require("./features/dnssec"),"do-not-track":require("./features/do-not-track"),"document-currentscript":require("./features/document-currentscript"),"document-evaluate-xpath":require("./features/document-evaluate-xpath"),"document-execcommand":require("./features/document-execcommand"),"document-policy":require("./features/document-policy"),"document-scrollingelement":require("./features/document-scrollingelement"),"documenthead":require("./features/documenthead"),"dom-manip-convenience":require("./features/dom-manip-convenience"),"dom-range":require("./features/dom-range"),"domcontentloaded":require("./features/domcontentloaded"),"domfocusin-domfocusout-events":require("./features/domfocusin-domfocusout-events"),"dommatrix":require("./features/dommatrix"),"download":require("./features/download"),"dragndrop":require("./features/dragndrop"),"element-closest":require("./features/element-closest"),"element-from-point":require("./features/element-from-point"),"element-scroll-methods":require("./features/element-scroll-methods"),"eme":require("./features/eme"),"eot":require("./features/eot"),"es5":require("./features/es5"),"es6-class":require("./features/es6-class"),"es6-generators":require("./features/es6-generators"),"es6-module-dynamic-import":require("./features/es6-module-dynamic-import"),"es6-module":require("./features/es6-module"),"es6-number":require("./features/es6-number"),"es6-string-includes":require("./features/es6-string-includes"),"es6":require("./features/es6"),"eventsource":require("./features/eventsource"),"extended-system-fonts":require("./features/extended-system-fonts"),"feature-policy":require("./features/feature-policy"),"fetch":require("./features/fetch"),"fieldset-disabled":require("./features/fieldset-disabled"),"fileapi":require("./features/fileapi"),"filereader":require("./features/filereader"),"filereadersync":require("./features/filereadersync"),"filesystem":require("./features/filesystem"),"flac":require("./features/flac"),"flexbox-gap":require("./features/flexbox-gap"),"flexbox":require("./features/flexbox"),"flow-root":require("./features/flow-root"),"focusin-focusout-events":require("./features/focusin-focusout-events"),"focusoptions-preventscroll":require("./features/focusoptions-preventscroll"),"font-family-system-ui":require("./features/font-family-system-ui"),"font-feature":require("./features/font-feature"),"font-kerning":require("./features/font-kerning"),"font-loading":require("./features/font-loading"),"font-metrics-overrides":require("./features/font-metrics-overrides"),"font-size-adjust":require("./features/font-size-adjust"),"font-smooth":require("./features/font-smooth"),"font-unicode-range":require("./features/font-unicode-range"),"font-variant-alternates":require("./features/font-variant-alternates"),"font-variant-east-asian":require("./features/font-variant-east-asian"),"font-variant-numeric":require("./features/font-variant-numeric"),"fontface":require("./features/fontface"),"form-attribute":require("./features/form-attribute"),"form-submit-attributes":require("./features/form-submit-attributes"),"form-validation":require("./features/form-validation"),"forms":require("./features/forms"),"fullscreen":require("./features/fullscreen"),"gamepad":require("./features/gamepad"),"geolocation":require("./features/geolocation"),"getboundingclientrect":require("./features/getboundingclientrect"),"getcomputedstyle":require("./features/getcomputedstyle"),"getelementsbyclassname":require("./features/getelementsbyclassname"),"getrandomvalues":require("./features/getrandomvalues"),"gyroscope":require("./features/gyroscope"),"hardwareconcurrency":require("./features/hardwareconcurrency"),"hashchange":require("./features/hashchange"),"heif":require("./features/heif"),"hevc":require("./features/hevc"),"hidden":require("./features/hidden"),"high-resolution-time":require("./features/high-resolution-time"),"history":require("./features/history"),"html-media-capture":require("./features/html-media-capture"),"html5semantic":require("./features/html5semantic"),"http-live-streaming":require("./features/http-live-streaming"),"http2":require("./features/http2"),"http3":require("./features/http3"),"iframe-sandbox":require("./features/iframe-sandbox"),"iframe-seamless":require("./features/iframe-seamless"),"iframe-srcdoc":require("./features/iframe-srcdoc"),"imagecapture":require("./features/imagecapture"),"ime":require("./features/ime"),"img-naturalwidth-naturalheight":require("./features/img-naturalwidth-naturalheight"),"import-maps":require("./features/import-maps"),"imports":require("./features/imports"),"indeterminate-checkbox":require("./features/indeterminate-checkbox"),"indexeddb":require("./features/indexeddb"),"indexeddb2":require("./features/indexeddb2"),"inline-block":require("./features/inline-block"),"innertext":require("./features/innertext"),"input-autocomplete-onoff":require("./features/input-autocomplete-onoff"),"input-color":require("./features/input-color"),"input-datetime":require("./features/input-datetime"),"input-email-tel-url":require("./features/input-email-tel-url"),"input-event":require("./features/input-event"),"input-file-accept":require("./features/input-file-accept"),"input-file-directory":require("./features/input-file-directory"),"input-file-multiple":require("./features/input-file-multiple"),"input-inputmode":require("./features/input-inputmode"),"input-minlength":require("./features/input-minlength"),"input-number":require("./features/input-number"),"input-pattern":require("./features/input-pattern"),"input-placeholder":require("./features/input-placeholder"),"input-range":require("./features/input-range"),"input-search":require("./features/input-search"),"input-selection":require("./features/input-selection"),"insert-adjacent":require("./features/insert-adjacent"),"insertadjacenthtml":require("./features/insertadjacenthtml"),"internationalization":require("./features/internationalization"),"intersectionobserver-v2":require("./features/intersectionobserver-v2"),"intersectionobserver":require("./features/intersectionobserver"),"intl-pluralrules":require("./features/intl-pluralrules"),"intrinsic-width":require("./features/intrinsic-width"),"jpeg2000":require("./features/jpeg2000"),"jpegxl":require("./features/jpegxl"),"jpegxr":require("./features/jpegxr"),"js-regexp-lookbehind":require("./features/js-regexp-lookbehind"),"json":require("./features/json"),"justify-content-space-evenly":require("./features/justify-content-space-evenly"),"kerning-pairs-ligatures":require("./features/kerning-pairs-ligatures"),"keyboardevent-charcode":require("./features/keyboardevent-charcode"),"keyboardevent-code":require("./features/keyboardevent-code"),"keyboardevent-getmodifierstate":require("./features/keyboardevent-getmodifierstate"),"keyboardevent-key":require("./features/keyboardevent-key"),"keyboardevent-location":require("./features/keyboardevent-location"),"keyboardevent-which":require("./features/keyboardevent-which"),"lazyload":require("./features/lazyload"),"let":require("./features/let"),"link-icon-png":require("./features/link-icon-png"),"link-icon-svg":require("./features/link-icon-svg"),"link-rel-dns-prefetch":require("./features/link-rel-dns-prefetch"),"link-rel-modulepreload":require("./features/link-rel-modulepreload"),"link-rel-preconnect":require("./features/link-rel-preconnect"),"link-rel-prefetch":require("./features/link-rel-prefetch"),"link-rel-preload":require("./features/link-rel-preload"),"link-rel-prerender":require("./features/link-rel-prerender"),"loading-lazy-attr":require("./features/loading-lazy-attr"),"localecompare":require("./features/localecompare"),"magnetometer":require("./features/magnetometer"),"matchesselector":require("./features/matchesselector"),"matchmedia":require("./features/matchmedia"),"mathml":require("./features/mathml"),"maxlength":require("./features/maxlength"),"media-attribute":require("./features/media-attribute"),"media-fragments":require("./features/media-fragments"),"media-session-api":require("./features/media-session-api"),"mediacapture-fromelement":require("./features/mediacapture-fromelement"),"mediarecorder":require("./features/mediarecorder"),"mediasource":require("./features/mediasource"),"menu":require("./features/menu"),"meta-theme-color":require("./features/meta-theme-color"),"meter":require("./features/meter"),"midi":require("./features/midi"),"minmaxwh":require("./features/minmaxwh"),"mp3":require("./features/mp3"),"mpeg-dash":require("./features/mpeg-dash"),"mpeg4":require("./features/mpeg4"),"multibackgrounds":require("./features/multibackgrounds"),"multicolumn":require("./features/multicolumn"),"mutation-events":require("./features/mutation-events"),"mutationobserver":require("./features/mutationobserver"),"namevalue-storage":require("./features/namevalue-storage"),"native-filesystem-api":require("./features/native-filesystem-api"),"nav-timing":require("./features/nav-timing"),"navigator-language":require("./features/navigator-language"),"netinfo":require("./features/netinfo"),"notifications":require("./features/notifications"),"object-entries":require("./features/object-entries"),"object-fit":require("./features/object-fit"),"object-observe":require("./features/object-observe"),"object-values":require("./features/object-values"),"objectrtc":require("./features/objectrtc"),"offline-apps":require("./features/offline-apps"),"offscreencanvas":require("./features/offscreencanvas"),"ogg-vorbis":require("./features/ogg-vorbis"),"ogv":require("./features/ogv"),"ol-reversed":require("./features/ol-reversed"),"once-event-listener":require("./features/once-event-listener"),"online-status":require("./features/online-status"),"opus":require("./features/opus"),"orientation-sensor":require("./features/orientation-sensor"),"outline":require("./features/outline"),"pad-start-end":require("./features/pad-start-end"),"page-transition-events":require("./features/page-transition-events"),"pagevisibility":require("./features/pagevisibility"),"passive-event-listener":require("./features/passive-event-listener"),"passwordrules":require("./features/passwordrules"),"path2d":require("./features/path2d"),"payment-request":require("./features/payment-request"),"pdf-viewer":require("./features/pdf-viewer"),"permissions-api":require("./features/permissions-api"),"permissions-policy":require("./features/permissions-policy"),"picture-in-picture":require("./features/picture-in-picture"),"picture":require("./features/picture"),"ping":require("./features/ping"),"png-alpha":require("./features/png-alpha"),"pointer-events":require("./features/pointer-events"),"pointer":require("./features/pointer"),"pointerlock":require("./features/pointerlock"),"portals":require("./features/portals"),"prefers-color-scheme":require("./features/prefers-color-scheme"),"prefers-reduced-motion":require("./features/prefers-reduced-motion"),"private-class-fields":require("./features/private-class-fields"),"private-methods-and-accessors":require("./features/private-methods-and-accessors"),"progress":require("./features/progress"),"promise-finally":require("./features/promise-finally"),"promises":require("./features/promises"),"proximity":require("./features/proximity"),"proxy":require("./features/proxy"),"public-class-fields":require("./features/public-class-fields"),"publickeypinning":require("./features/publickeypinning"),"push-api":require("./features/push-api"),"queryselector":require("./features/queryselector"),"readonly-attr":require("./features/readonly-attr"),"referrer-policy":require("./features/referrer-policy"),"registerprotocolhandler":require("./features/registerprotocolhandler"),"rel-noopener":require("./features/rel-noopener"),"rel-noreferrer":require("./features/rel-noreferrer"),"rellist":require("./features/rellist"),"rem":require("./features/rem"),"requestanimationframe":require("./features/requestanimationframe"),"requestidlecallback":require("./features/requestidlecallback"),"resizeobserver":require("./features/resizeobserver"),"resource-timing":require("./features/resource-timing"),"rest-parameters":require("./features/rest-parameters"),"rtcpeerconnection":require("./features/rtcpeerconnection"),"ruby":require("./features/ruby"),"run-in":require("./features/run-in"),"same-site-cookie-attribute":require("./features/same-site-cookie-attribute"),"screen-orientation":require("./features/screen-orientation"),"script-async":require("./features/script-async"),"script-defer":require("./features/script-defer"),"scrollintoview":require("./features/scrollintoview"),"scrollintoviewifneeded":require("./features/scrollintoviewifneeded"),"sdch":require("./features/sdch"),"selection-api":require("./features/selection-api"),"server-timing":require("./features/server-timing"),"serviceworkers":require("./features/serviceworkers"),"setimmediate":require("./features/setimmediate"),"sha-2":require("./features/sha-2"),"shadowdom":require("./features/shadowdom"),"shadowdomv1":require("./features/shadowdomv1"),"sharedarraybuffer":require("./features/sharedarraybuffer"),"sharedworkers":require("./features/sharedworkers"),"sni":require("./features/sni"),"spdy":require("./features/spdy"),"speech-recognition":require("./features/speech-recognition"),"speech-synthesis":require("./features/speech-synthesis"),"spellcheck-attribute":require("./features/spellcheck-attribute"),"sql-storage":require("./features/sql-storage"),"srcset":require("./features/srcset"),"stream":require("./features/stream"),"streams":require("./features/streams"),"stricttransportsecurity":require("./features/stricttransportsecurity"),"style-scoped":require("./features/style-scoped"),"subresource-integrity":require("./features/subresource-integrity"),"svg-css":require("./features/svg-css"),"svg-filters":require("./features/svg-filters"),"svg-fonts":require("./features/svg-fonts"),"svg-fragment":require("./features/svg-fragment"),"svg-html":require("./features/svg-html"),"svg-html5":require("./features/svg-html5"),"svg-img":require("./features/svg-img"),"svg-smil":require("./features/svg-smil"),"svg":require("./features/svg"),"sxg":require("./features/sxg"),"tabindex-attr":require("./features/tabindex-attr"),"template-literals":require("./features/template-literals"),"template":require("./features/template"),"temporal":require("./features/temporal"),"testfeat":require("./features/testfeat"),"text-decoration":require("./features/text-decoration"),"text-emphasis":require("./features/text-emphasis"),"text-overflow":require("./features/text-overflow"),"text-size-adjust":require("./features/text-size-adjust"),"text-stroke":require("./features/text-stroke"),"text-underline-offset":require("./features/text-underline-offset"),"textcontent":require("./features/textcontent"),"textencoder":require("./features/textencoder"),"tls1-1":require("./features/tls1-1"),"tls1-2":require("./features/tls1-2"),"tls1-3":require("./features/tls1-3"),"token-binding":require("./features/token-binding"),"touch":require("./features/touch"),"transforms2d":require("./features/transforms2d"),"transforms3d":require("./features/transforms3d"),"trusted-types":require("./features/trusted-types"),"ttf":require("./features/ttf"),"typedarrays":require("./features/typedarrays"),"u2f":require("./features/u2f"),"unhandledrejection":require("./features/unhandledrejection"),"upgradeinsecurerequests":require("./features/upgradeinsecurerequests"),"url-scroll-to-text-fragment":require("./features/url-scroll-to-text-fragment"),"url":require("./features/url"),"urlsearchparams":require("./features/urlsearchparams"),"use-strict":require("./features/use-strict"),"user-select-none":require("./features/user-select-none"),"user-timing":require("./features/user-timing"),"variable-fonts":require("./features/variable-fonts"),"vector-effect":require("./features/vector-effect"),"vibration":require("./features/vibration"),"video":require("./features/video"),"videotracks":require("./features/videotracks"),"viewport-unit-variants":require("./features/viewport-unit-variants"),"viewport-units":require("./features/viewport-units"),"wai-aria":require("./features/wai-aria"),"wake-lock":require("./features/wake-lock"),"wasm":require("./features/wasm"),"wav":require("./features/wav"),"wbr-element":require("./features/wbr-element"),"web-animation":require("./features/web-animation"),"web-app-manifest":require("./features/web-app-manifest"),"web-bluetooth":require("./features/web-bluetooth"),"web-serial":require("./features/web-serial"),"web-share":require("./features/web-share"),"webauthn":require("./features/webauthn"),"webgl":require("./features/webgl"),"webgl2":require("./features/webgl2"),"webgpu":require("./features/webgpu"),"webhid":require("./features/webhid"),"webkit-user-drag":require("./features/webkit-user-drag"),"webm":require("./features/webm"),"webnfc":require("./features/webnfc"),"webp":require("./features/webp"),"websockets":require("./features/websockets"),"webusb":require("./features/webusb"),"webvr":require("./features/webvr"),"webvtt":require("./features/webvtt"),"webworkers":require("./features/webworkers"),"webxr":require("./features/webxr"),"will-change":require("./features/will-change"),"woff":require("./features/woff"),"woff2":require("./features/woff2"),"word-break":require("./features/word-break"),"wordwrap":require("./features/wordwrap"),"x-doc-messaging":require("./features/x-doc-messaging"),"x-frame-options":require("./features/x-frame-options"),"xhr2":require("./features/xhr2"),"xhtml":require("./features/xhtml"),"xhtmlsmil":require("./features/xhtmlsmil"),"xml-serializer":require("./features/xml-serializer")}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/aac.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/aac.js index e5eb07723a1ad3..2944aa532fd9f7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/aac.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/aac.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m uB vB","132":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F","16":"A B"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"132":"S"},N:{"1":"A","2":"B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"132":"sC"}},B:6,C:"AAC audio file format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B","132":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F","16":"A B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"132":"H"},N:{"1":"A","2":"B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"132":"wC"}},B:6,C:"AAC audio file format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/abortcontroller.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/abortcontroller.js index 85833b8291f9ab..4f1cdc79c8c2dc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/abortcontroller.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/abortcontroller.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G"},C:{"1":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB uB vB"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB"},E:{"1":"J K G hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB","130":"C gB"},F:{"1":"IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"jC nB kC lC mC nC oC pC","2":"H fC gC hC iC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"AbortController & AbortSignal"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G"},C:{"1":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB zB 0B"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB"},E:{"1":"K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB","130":"C iB"},F:{"1":"LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"nC rB oC pC qC rC sC kB tC","2":"I jC kC lC mC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"AbortController & AbortSignal"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ac3-ec3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ac3-ec3.js index 582a443af01e5f..b2a41c322729da 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ac3-ec3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ac3-ec3.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N","2":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC","132":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D","132":"A"},K:{"2":"A B C U gB qB","132":"hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"132":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O","2":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC","132":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D","132":"A"},K:{"2":"A B C Y iB vB","132":"jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"132":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/accelerometer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/accelerometer.js index 179626e3a3a425..e0828927a920f3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/accelerometer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/accelerometer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","194":"NB jB OB kB PB QB U RB SB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"Accelerometer"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB mB RB nB SB TB Y UB VB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"Accelerometer"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/addeventlistener.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/addeventlistener.js index 7b6ff7a47ad9d4..09163b815c3725 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/addeventlistener.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/addeventlistener.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","130":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","257":"tB iB H j I uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"EventTarget.addEventListener()"}; +module.exports={A:{A:{"1":"F A B","130":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","257":"yB lB I m J zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"EventTarget.addEventListener()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/alternate-stylesheet.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/alternate-stylesheet.js index b47bec4f3fd3ad..f6016ea464c1b8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/alternate-stylesheet.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"I D sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"F B C 8B 9B AC BC gB qB CC hB","16":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"16":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"2":"U","16":"A B C gB qB hB"},L:{"16":"fB"},M:{"16":"S"},N:{"16":"A B"},O:{"16":"eC"},P:{"16":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"16":"rC"},S:{"1":"sC"}},B:1,C:"Alternate stylesheet"}; +module.exports={A:{A:{"1":"E F A B","2":"J D xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"F B C CC DC EC FC iB vB GC jB","16":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"16":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"2":"Y","16":"A B C iB vB jB"},L:{"16":"X"},M:{"16":"H"},N:{"16":"A B"},O:{"16":"iC"},P:{"16":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"16":"vC"},S:{"1":"wC"}},B:1,C:"Alternate stylesheet"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ambient-light.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ambient-light.js index cddffe97efd0cb..751bf5c599737b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ambient-light.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ambient-light.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J","132":"K G L M N","322":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m uB vB","132":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB","194":"OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","322":"NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB 8B 9B AC BC gB qB CC hB","322":"ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"132":"sC"}},B:4,C:"Ambient Light Sensor"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K","132":"L G M N O","322":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B","132":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB","194":"RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","322":"QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB CC DC EC FC iB vB GC jB","322":"cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"132":"wC"}},B:4,C:"Ambient Light Sensor"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/apng.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/apng.js index 64cb69f664fcb5..f69dec93b4be7a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/apng.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/apng.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB"},D:{"1":"jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"E F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B 2B"},F:{"1":"B C BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"0 1 2 3 4 5 6 7 8 9 F G L M N k l m n o p q r s t u v w x y z AB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H fC gC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:7,C:"Animated PNG (APNG)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB"},D:{"1":"mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},E:{"1":"E F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B 6B"},F:{"1":"B C EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"0 1 2 3 4 5 6 7 8 9 F G M N O n o p q r s t u v w x y z AB BB CB DB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I jC kC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:7,C:"Animated PNG (APNG)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find-index.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find-index.js index dae61104fc6272..75cc8a57410a02 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find-index.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find-index.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p uB vB"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w 8B 9B AC BC gB qB CC hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D","16":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Array.prototype.findIndex"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s zB 0B"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB"},E:{"1":"E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D","16":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Array.prototype.findIndex"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find.js index 165b50a9bc7b3a..055b20c4062165 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-find.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","16":"C J K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p uB vB"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w 8B 9B AC BC gB qB CC hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D","16":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Array.prototype.find"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s zB 0B"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB"},E:{"1":"E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D","16":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Array.prototype.find"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-flat.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-flat.js index ba4f21b2d87f8f..f22d3c8b265323 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-flat.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-flat.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB uB vB"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB"},E:{"1":"C J K G hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB gB"},F:{"1":"LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB 8B 9B AC BC gB qB CC hB"},G:{"1":"OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nB kC lC mC nC oC pC","2":"H fC gC hC iC jC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"flat & flatMap array methods"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB zB 0B"},D:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB"},E:{"1":"C K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB iB"},F:{"1":"OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB CC DC EC FC iB vB GC jB"},G:{"1":"SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rB oC pC qC rC sC kB tC","2":"I jC kC lC mC nC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"flat & flatMap array methods"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-includes.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-includes.js index 4f15727ff782b3..34453f892548b8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-includes.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/array-includes.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x y 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Array.prototype.includes"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB zB 0B"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Array.prototype.includes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/arrow-functions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/arrow-functions.js index fd80b31bbec586..3b823060c6785d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/arrow-functions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/arrow-functions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m uB vB"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Arrow functions"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Arrow functions"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/asmjs.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/asmjs.js index fb9c9d9d0fa811..7cd1a40b4cd3d9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/asmjs.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/asmjs.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N","132":"O P Q R V W X Y Z a b c d e f g h i S T","322":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m uB vB"},D:{"2":"H j I D E F A B C J K G L M N k l m n o p q r s","132":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","132":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","132":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","132":"U"},L:{"132":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H","132":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"132":"qC"},R:{"132":"rC"},S:{"1":"sC"}},B:6,C:"asm.js"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O","132":"P Q R S T U V W Z a b c d e f g h i j k l H X","322":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B"},D:{"2":"I m J D E F A B C K L G M N O n o p q r s t u v","132":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","132":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","132":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","132":"Y"},L:{"132":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I","132":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"132":"uC"},R:{"132":"vC"},S:{"1":"wC"}},B:6,C:"asm.js"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-clipboard.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-clipboard.js index 49849d03c89c44..0eb4ad1b495dd5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-clipboard.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-clipboard.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB uB vB","132":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","66":"NB jB OB kB"},E:{"1":"K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC","260":"UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","260":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","260":"U"},L:{"1":"fB"},M:{"132":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC","260":"jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Asynchronous Clipboard API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB zB 0B","132":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","66":"QB mB RB nB"},E:{"1":"L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC","260":"YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","260":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","260":"Y"},L:{"1":"X"},M:{"132":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC","260":"nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Asynchronous Clipboard API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-functions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-functions.js index 04cca5ffdff758..9e41dd2bfda646 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-functions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/async-functions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J","194":"K"},C:{"1":"HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB uB vB"},D:{"1":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B","514":"nB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC","514":"LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H fC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Async functions"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K","194":"L"},C:{"1":"KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B"},D:{"1":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B","514":"rB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC","514":"PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I jC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Async functions"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/atob-btoa.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/atob-btoa.js index c589fe82fbe06e..9ab54a1a9ab6b2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/atob-btoa.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/atob-btoa.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","2":"F 8B 9B","16":"AC"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","16":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Base64 encoding and decoding"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","2":"F CC DC","16":"EC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","16":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Base64 encoding and decoding"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio-api.js index fa5cabb380c891..3dd97c5eae632e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J","33":"K G L M N k l m n o p q r s t u v w x y"},E:{"1":"G 5B 6B oB pB 7B","2":"H j zB mB 0B","33":"I D E F A B C J K 1B 2B 3B nB gB hB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"G L M N k l m"},G:{"1":"VC WC oB pB","2":"mB DC rB EC","33":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"Web Audio API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s zB 0B"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K","33":"0 1 L G M N O n o p q r s t u v w x y z"},E:{"1":"G 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","33":"J D E F A B C K L 5B 6B 7B rB iB jB 8B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"G M N O n o p"},G:{"1":"ZC aC sB tB uB kB","2":"qB HC wB IC","33":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"Web Audio API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio.js index 88cbe4cba67f66..2a4fb554211e6d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audio.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","132":"H j I D E F A B C J K G L M N k uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F","4":"8B 9B"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","2":"YC ZC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Audio element"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","132":"I m J D E F A B C K L G M N O n zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F","4":"CC DC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","2":"cC dC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Audio element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audiotracks.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audiotracks.js index 285bb187ea17ab..675aec04c1ef25 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audiotracks.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/audiotracks.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N","322":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x uB vB","194":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","322":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B"},F:{"2":"F B C G L M N k l m n o p q r s t u v w 8B 9B AC BC gB qB CC hB","322":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"322":"fB"},M:{"2":"S"},N:{"1":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"194":"sC"}},B:1,C:"Audio Tracks"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O","322":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","194":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB","322":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B"},F:{"2":"F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","322":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"322":"X"},M:{"2":"H"},N:{"1":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"194":"wC"}},B:1,C:"Audio Tracks"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/autofocus.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/autofocus.js index 5dd0b5d7a3787b..0c981892889777 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/autofocus.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/autofocus.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"2":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:1,C:"Autofocus attribute"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"2":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:1,C:"Autofocus attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/auxclick.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/auxclick.js index ad775b20f0bdbe..7d66653b659887 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/auxclick.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/auxclick.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB uB vB","129":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"Auxclick"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB zB 0B","129":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"Auxclick"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/av1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/av1.js index 9fb9978214c578..f59ab61fdfa04d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/av1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/av1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M","194":"N"},C:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB uB vB","66":"KB LB MB NB jB OB kB PB QB U","260":"RB","516":"SB"},D:{"1":"WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB","66":"TB UB VB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1090":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"lC mC nC oC pC","2":"H fC gC hC iC jC nB kC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"AV1 video format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N","194":"O"},C:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB zB 0B","66":"NB OB PB QB mB RB nB SB TB Y","260":"UB","516":"VB"},D:{"1":"ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB","66":"WB XB YB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1090":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"pC qC rC sC kB tC","2":"I jC kC lC mC nC rB oC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"AV1 video format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/avif.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/avif.js index 7c9b4aea8423e7..cae5a86e7dbaa5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/avif.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/avif.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB uB vB","194":"dB eB O P Q lB R V W X Y Z a b c d","257":"e f g h i S T fB"},D:{"1":"W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nC oC pC","2":"H fC gC hC iC jC nB kC lC mC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"AVIF image format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB zB 0B","194":"gB hB P Q R oB S T U V W Z a b c d","257":"e f g h i j k l H X pB"},D:{"1":"U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rC sC kB tC","2":"I jC kC lC mC nC rB oC pC qC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"AVIF image format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-attachment.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-attachment.js index 174ce24e617af1..70cd37a276098d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-attachment.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-attachment.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","132":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","132":"tB iB H j I D E F A B C J K G L M N k l m n o p uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I D E F A B C 0B 1B 2B 3B nB gB hB","132":"H J zB mB 4B","2050":"K G 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","132":"F 8B 9B"},G:{"2":"mB DC rB","772":"E EC FC GC HC IC JC KC LC MC NC OC PC","2050":"QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC cC dC","132":"bC rB"},J:{"260":"D A"},K:{"1":"B C gB qB hB","2":"U","132":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"2":"H","1028":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1028":"rC"},S:{"1":"sC"}},B:4,C:"CSS background-attachment"}; +module.exports={A:{A:{"1":"F A B","132":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","132":"yB lB I m J D E F A B C K L G M N O n o p q r s zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J D E F A B C 4B 5B 6B 7B rB iB jB","132":"I K 3B qB 8B","2050":"L G 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","132":"F CC DC"},G:{"2":"qB HC wB","772":"E IC JC KC LC MC NC OC PC QC RC SC TC","2050":"UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC gC hC","132":"fC wB"},J:{"260":"D A"},K:{"1":"B C iB vB jB","2":"Y","132":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"2":"I","1028":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1028":"vC"},S:{"1":"wC"}},B:4,C:"CSS background-attachment"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-clip-text.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-clip-text.js index c0e676f1707376..ae6e4bc9e18ce3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-clip-text.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-clip-text.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"G L M N","33":"C J K O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB uB vB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"K G 5B 6B oB pB 7B","16":"zB mB","33":"H j I D E F A B C J 0B 1B 2B 3B nB gB hB 4B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"UC VC WC oB pB","16":"mB DC rB EC","33":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"XC"},I:{"16":"iB YC ZC aC","33":"H T bC rB cC dC"},J:{"33":"D A"},K:{"16":"A B C gB qB hB","33":"U"},L:{"33":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"33":"eC"},P:{"33":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"33":"qC"},R:{"33":"rC"},S:{"1":"sC"}},B:7,C:"Background-clip: text"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"G M N O","33":"C K L P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB zB 0B"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"L G 9B AC sB tB uB kB BC","16":"3B qB","33":"I m J D E F A B C K 4B 5B 6B 7B rB iB jB 8B"},F:{"2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"YC ZC aC sB tB uB kB","16":"qB HC wB IC","33":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC"},H:{"2":"bC"},I:{"16":"lB cC dC eC","33":"I H fC wB gC hC"},J:{"33":"D A"},K:{"16":"A B C iB vB jB","33":"Y"},L:{"33":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"33":"iC"},P:{"33":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"33":"uC"},R:{"33":"vC"},S:{"1":"wC"}},B:7,C:"Background-clip: text"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-img-opts.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-img-opts.js index afabc32c556edb..024fd72d133551 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-img-opts.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-img-opts.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB","36":"vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","516":"H j I D E F A B C J K"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","772":"H j I zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B","36":"9B"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","4":"mB DC rB FC","516":"EC"},H:{"132":"XC"},I:{"1":"T cC dC","36":"YC","516":"iB H bC rB","548":"ZC aC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS3 Background-image options"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB","36":"0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","516":"I m J D E F A B C K L"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","772":"I m J 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC","36":"DC"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","4":"qB HC wB JC","516":"IC"},H:{"132":"bC"},I:{"1":"H gC hC","36":"cC","516":"lB I fC wB","548":"dC eC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS3 Background-image options"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-position-x-y.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-position-x-y.js index e19cad017e7a50..da95cb370286b3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-position-x-y.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-position-x-y.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:7,C:"background-position-x & background-position-y"}; +module.exports={A:{A:{"1":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:7,C:"background-position-x & background-position-y"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-repeat-round-space.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-repeat-round-space.js index 4a91800a4c676e..229cdcfe102906 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-repeat-round-space.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E sB","132":"F"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F G L M N 8B 9B"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:4,C:"CSS background-repeat round and space"}; +module.exports={A:{A:{"1":"A B","2":"J D E xB","132":"F"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F G M N O CC DC"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:4,C:"CSS background-repeat round and space"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-sync.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-sync.js index cbae3022af78ab..8e991eabd06dd7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-sync.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/background-sync.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S uB vB","16":"T fB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Background Sync API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H zB 0B","16":"X pB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Background Sync API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/battery-status.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/battery-status.js index c84be667a4b541..a632caf68177c9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/battery-status.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/battery-status.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"8 9 AB BB CB DB EB FB GB","2":"tB iB H j I D E F HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","132":"0 1 2 3 4 5 6 7 L M N k l m n o p q r s t u v w x y z","164":"A B C J K G"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","66":"2"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Battery Status API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"BB CB DB EB FB GB HB IB JB","2":"yB lB I m J D E F KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","132":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB","164":"A B C K L G"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","66":"5"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Battery Status API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beacon.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beacon.js index dad05c6b04a877..94588f4f45c7a5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beacon.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beacon.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v uB vB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Beacon API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y zB 0B"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Beacon API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beforeafterprint.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beforeafterprint.js index 9c41ff7376d6b1..6144892ad1b599 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beforeafterprint.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/beforeafterprint.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","16":"sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j uB vB"},D:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB hB"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB 8B 9B AC BC gB qB CC hB"},G:{"1":"QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"16":"A B"},O:{"16":"eC"},P:{"2":"fC gC hC iC jC nB kC lC mC nC oC pC","16":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:1,C:"Printing Events"}; +module.exports={A:{A:{"1":"J D E F A B","16":"xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m zB 0B"},D:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB jB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB CC DC EC FC iB vB GC jB"},G:{"1":"UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"16":"A B"},O:{"16":"iC"},P:{"2":"jC kC lC mC nC rB oC pC qC rC sC kB tC","16":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:1,C:"Printing Events"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bigint.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bigint.js index dc3c425fc9ff06..50354a3f7affba 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bigint.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bigint.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U uB vB","194":"RB SB TB"},D:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB"},E:{"1":"K G 5B 6B oB pB 7B","2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB 4B"},F:{"1":"JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB 8B 9B AC BC gB qB CC hB"},G:{"1":"UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"jC nB kC lC mC nC oC pC","2":"H fC gC hC iC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"BigInt"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y zB 0B","194":"UB VB WB"},D:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB"},E:{"1":"L G 9B AC sB tB uB kB BC","2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB 8B"},F:{"1":"MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB CC DC EC FC iB vB GC jB"},G:{"1":"YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"nC rB oC pC qC rC sC kB tC","2":"I jC kC lC mC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"BigInt"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/blobbuilder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/blobbuilder.js index e9aec4941d97cb..502ca3b3ee9a05 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/blobbuilder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/blobbuilder.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j uB vB","36":"I D E F A B C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D","36":"E F A B C J K G L M N k"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B C 8B 9B AC BC gB qB CC"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC"},H:{"2":"XC"},I:{"1":"T","2":"YC ZC aC","36":"iB H bC rB cC dC"},J:{"1":"A","2":"D"},K:{"1":"U hB","2":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Blob constructing"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m zB 0B","36":"J D E F A B C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D","36":"E F A B C K L G M N O n"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B C CC DC EC FC iB vB GC"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC"},H:{"2":"bC"},I:{"1":"H","2":"cC dC eC","36":"lB I fC wB gC hC"},J:{"1":"A","2":"D"},K:{"1":"Y jB","2":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Blob constructing"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bloburls.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bloburls.js index abfccb4bb8ac59..c7464f2843dafe 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bloburls.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/bloburls.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","129":"A B"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","129":"C J K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D","33":"E F A B C J K G L M N k l m n"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","33":"I"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC","33":"FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB YC ZC aC","33":"H bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Blob URLs"}; +module.exports={A:{A:{"2":"J D E F xB","129":"A B"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","129":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D","33":"E F A B C K L G M N O n o p q"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC","33":"JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB cC dC eC","33":"I fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Blob URLs"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-image.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-image.js index c2371c5b8c1d42..33ddd821732b6c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-image.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-image.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","129":"C J"},C:{"1":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","260":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB","804":"H j I D E F A B C J K uB vB"},D:{"1":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","260":"GB HB IB JB KB","388":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB","1412":"G L M N k l m n o p q r s t u","1956":"H j I D E F A B C J K"},E:{"129":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","1412":"I D E F 1B 2B","1956":"H j zB mB 0B"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F 8B 9B","260":"3 4 5 6 7","388":"0 1 2 G L M N k l m n o p q r s t u v w x y z","1796":"AC BC","1828":"B C gB qB CC hB"},G:{"129":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","1412":"E FC GC HC IC","1956":"mB DC rB EC"},H:{"1828":"XC"},I:{"1":"T","388":"cC dC","1956":"iB H YC ZC aC bC rB"},J:{"1412":"A","1924":"D"},K:{"1":"U","2":"A","1828":"B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"388":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","260":"fC gC","388":"H"},Q:{"260":"qC"},R:{"260":"rC"},S:{"260":"sC"}},B:4,C:"CSS3 Border images"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","129":"C K"},C:{"1":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","260":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","804":"I m J D E F A B C K L zB 0B"},D:{"1":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","260":"JB KB LB MB NB","388":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB","1412":"G M N O n o p q r s t u v w x","1956":"I m J D E F A B C K L"},E:{"1":"tB uB kB BC","129":"A B C K L G 7B rB iB jB 8B 9B AC sB","1412":"J D E F 5B 6B","1956":"I m 3B qB 4B"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F CC DC","260":"6 7 8 9 AB","388":"0 1 2 3 4 5 G M N O n o p q r s t u v w x y z","1796":"EC FC","1828":"B C iB vB GC jB"},G:{"1":"tB uB kB","129":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB","1412":"E JC KC LC MC","1956":"qB HC wB IC"},H:{"1828":"bC"},I:{"1":"H","388":"gC hC","1956":"lB I cC dC eC fC wB"},J:{"1412":"A","1924":"D"},K:{"1":"Y","2":"A","1828":"B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"388":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","260":"jC kC","388":"I"},Q:{"260":"uC"},R:{"260":"vC"},S:{"260":"wC"}},B:4,C:"CSS3 Border images"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-radius.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-radius.js index b761b67c5e78b1..1c683c25159370 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-radius.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/border-radius.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","257":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB","289":"iB uB vB","292":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"H"},E:{"1":"j D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","33":"H zB mB","129":"I 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","33":"mB"},H:{"2":"XC"},I:{"1":"iB H T ZC aC bC rB cC dC","33":"YC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"257":"sC"}},B:4,C:"CSS3 Border-radius (rounded corners)"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","257":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","289":"lB zB 0B","292":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"I"},E:{"1":"m D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","33":"I 3B qB","129":"J 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","33":"qB"},H:{"2":"bC"},I:{"1":"lB I H dC eC fC wB gC hC","33":"cC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"257":"wC"}},B:4,C:"CSS3 Border-radius (rounded corners)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/broadcastchannel.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/broadcastchannel.js index 2180c1d4d26ad4..9e4ec149550694 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/broadcastchannel.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/broadcastchannel.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},E:{"1":"pB 7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H fC gC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:1,C:"BroadcastChannel"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"tB uB kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I jC kC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:1,C:"BroadcastChannel"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/brotli.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/brotli.js index b87c3015306ffd..6e30dce15408dc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/brotli.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/brotli.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB","194":"EB","257":"FB"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB","513":"B C gB hB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","194":"1 2"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB zB 0B"},D:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB","194":"HB","257":"IB"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","513":"B C iB jB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","194":"4 5"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/calc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/calc.js index 373b8c075ad97f..8d36c8f2329352 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/calc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/calc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","260":"F","516":"A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","33":"H j I D E F A B C J K G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N","33":"k l m n o p q"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","33":"I"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC","33":"FC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB","132":"cC dC"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"calc() as CSS unit value"}; +module.exports={A:{A:{"2":"J D E xB","260":"F","516":"A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","33":"I m J D E F A B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O","33":"n o p q r s t"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC","33":"JC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB","132":"gC hC"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"calc() as CSS unit value"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-blending.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-blending.js index 39996bc9777232..1dc4f0a06dc9ba 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-blending.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-blending.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Canvas blend modes"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w x"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Canvas blend modes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-text.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-text.js index adb632640f3c40..2465a57801e03b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-text.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas-text.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"sB","8":"I D E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","8":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","8":"F 8B 9B"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","8":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Text API for Canvas"}; +module.exports={A:{A:{"1":"F A B","2":"xB","8":"J D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","8":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","8":"F CC DC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","8":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Text API for Canvas"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas.js index 9bb3278c5c4772..e1092115a2c85e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/canvas.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"sB","8":"I D E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","132":"tB iB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","132":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"260":"XC"},I:{"1":"iB H T bC rB cC dC","132":"YC ZC aC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Canvas (basic support)"}; +module.exports={A:{A:{"1":"F A B","2":"xB","8":"J D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","132":"yB lB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","132":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"260":"bC"},I:{"1":"lB I H fC wB gC hC","132":"cC dC eC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Canvas (basic support)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ch-unit.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ch-unit.js index c739bcb6ab379f..ea96945a171c03 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ch-unit.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ch-unit.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","132":"F A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"ch (character) unit"}; +module.exports={A:{A:{"2":"J D E xB","132":"F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"ch (character) unit"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/chacha20-poly1305.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/chacha20-poly1305.js index ed6a365c23419b..818d6098929ade 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/chacha20-poly1305.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB uB vB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x","129":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC","16":"dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB zB 0B"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","129":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC","16":"hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/channel-messaging.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/channel-messaging.js index 940541b2c62150..ac54b82541da0a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/channel-messaging.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/channel-messaging.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q uB vB","194":"0 1 2 3 4 5 r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","2":"F 8B 9B","16":"AC"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Channel messaging"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t zB 0B","194":"0 1 2 3 4 5 6 7 8 u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","2":"F CC DC","16":"EC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Channel messaging"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/childnode-remove.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/childnode-remove.js index c53124f5e908be..bafaffb37380f0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/childnode-remove.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/childnode-remove.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","16":"I"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"ChildNode.remove()"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"ChildNode.remove()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/classlist.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/classlist.js index 2d996f83720ad1..6e3399a7d942f0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/classlist.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/classlist.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"I D E F sB","1924":"A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","8":"tB iB uB","516":"p q","772":"H j I D E F A B C J K G L M N k l m n o vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","8":"H j I D","516":"p q r s","772":"o","900":"E F A B C J K G L M N k l m n"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"H j zB mB","900":"I 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","8":"F B 8B 9B AC BC gB","900":"C qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","8":"mB DC rB","900":"EC FC"},H:{"900":"XC"},I:{"1":"T cC dC","8":"YC ZC aC","900":"iB H bC rB"},J:{"1":"A","900":"D"},K:{"1":"U","8":"A B","900":"C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"900":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"classList (DOMTokenList)"}; +module.exports={A:{A:{"8":"J D E F xB","1924":"A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","8":"yB lB zB","516":"s t","772":"I m J D E F A B C K L G M N O n o p q r 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","8":"I m J D","516":"s t u v","772":"r","900":"E F A B C K L G M N O n o p q"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"I m 3B qB","900":"J 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","8":"F B CC DC EC FC iB","900":"C vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","8":"qB HC wB","900":"IC JC"},H:{"900":"bC"},I:{"1":"H gC hC","8":"cC dC eC","900":"lB I fC wB"},J:{"1":"A","900":"D"},K:{"1":"Y","8":"A B","900":"C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"900":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"classList (DOMTokenList)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js index acc87cda68e951..4f64ace3c706ca 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/clipboard.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/clipboard.js index b1d916ca06ba74..5f77e847d49ecb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/clipboard.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/clipboard.js @@ -1 +1 @@ -module.exports={A:{A:{"2436":"I D E F A B sB"},B:{"260":"M N","2436":"C J K G L","8196":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m uB vB","772":"0 1 2 3 4 5 n o p q r s t u v w x y z","4100":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"H j I D E F A B C","2564":"0 1 2 3 4 5 6 7 J K G L M N k l m n o p q r s t u v w x y z","8196":"NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","10244":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"C J K G hB 4B 5B 6B oB pB 7B","16":"zB mB","2308":"A B nB gB","2820":"H j I D E F 0B 1B 2B 3B"},F:{"2":"F B 8B 9B AC BC gB qB CC","16":"C","516":"hB","2564":"G L M N k l m n o p q r s t u","8196":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","10244":"0 1 2 3 4 5 6 7 8 9 v w x y z"},G:{"1":"OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB","2820":"E EC FC GC HC IC JC KC LC MC NC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","260":"T","2308":"cC dC"},J:{"2":"D","2308":"A"},K:{"2":"A B C gB qB","16":"hB","260":"U"},L:{"8196":"fB"},M:{"1028":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2052":"fC gC","2308":"H","8196":"hC iC jC nB kC lC mC nC oC pC"},Q:{"10244":"qC"},R:{"2052":"rC"},S:{"4100":"sC"}},B:5,C:"Synchronous Clipboard API"}; +module.exports={A:{A:{"2436":"J D E F A B xB"},B:{"260":"N O","2436":"C K L G M","8196":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B","772":"0 1 2 3 4 5 6 7 8 q r s t u v w x y z","4100":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"I m J D E F A B C","2564":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB","8196":"QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","10244":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"C K L G jB 8B 9B AC sB tB uB kB BC","16":"3B qB","2308":"A B rB iB","2820":"I m J D E F 4B 5B 6B 7B"},F:{"2":"F B CC DC EC FC iB vB GC","16":"C","516":"jB","2564":"G M N O n o p q r s t u v w x","8196":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","10244":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB"},G:{"1":"SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB","2820":"E IC JC KC LC MC NC OC PC QC RC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","260":"H","2308":"gC hC"},J:{"2":"D","2308":"A"},K:{"2":"A B C iB vB","16":"jB","260":"Y"},L:{"8196":"X"},M:{"1028":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2052":"jC kC","2308":"I","8196":"lC mC nC rB oC pC qC rC sC kB tC"},Q:{"10244":"uC"},R:{"2052":"vC"},S:{"4100":"wC"}},B:5,C:"Synchronous Clipboard API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr-v1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr-v1.js index ea76527234df62..254ce9fd60aecc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr-v1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr-v1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"S T","2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i uB vB","258":"S T fB"},D:{"1":"S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a","194":"b c d e f g h i"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"16":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"COLR/CPAL(v1) Font Formats"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"j k l H X","2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i zB 0B","258":"j k l H X pB"},D:{"1":"j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a","194":"b c d e f g h i"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"16":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"COLR/CPAL(v1) Font Formats"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr.js index b6882475248e3f..4f9d3bf4e2cca0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/colr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","257":"F A B"},B:{"1":"C J K G L M N","513":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB","513":"XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"K G 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB","129":"B C J gB hB 4B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB 8B 9B AC BC gB qB CC hB","513":"NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"16":"A B"},O:{"1":"eC"},P:{"1":"nB kC lC mC nC oC pC","2":"H fC gC hC iC jC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"COLR/CPAL(v0) Font Formats"}; +module.exports={A:{A:{"2":"J D E xB","257":"F A B"},B:{"1":"C K L G M N O","513":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB","513":"aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"L G 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","129":"B C K iB jB 8B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB CC DC EC FC iB vB GC jB","513":"QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"16":"A B"},O:{"1":"iC"},P:{"1":"rB oC pC qC rC sC kB tC","2":"I jC kC lC mC nC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"COLR/CPAL(v0) Font Formats"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/comparedocumentposition.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/comparedocumentposition.js index 1d0e9394cb9c60..0def63bfc88fc6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/comparedocumentposition.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/comparedocumentposition.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","16":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K","132":"G L M N k l m n o p q r s t u"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","16":"H j I zB mB","132":"D E F 1B 2B 3B","260":"0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","16":"F B 8B 9B AC BC gB qB","132":"G L"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB","132":"E DC rB EC FC GC HC IC JC"},H:{"1":"XC"},I:{"1":"T cC dC","16":"YC ZC","132":"iB H aC bC rB"},J:{"132":"D A"},K:{"1":"C U hB","16":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Node.compareDocumentPosition()"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","16":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L","132":"G M N O n o p q r s t u v w x"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m J 3B qB","132":"D E F 5B 6B 7B","260":"4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","16":"F B CC DC EC FC iB vB","132":"G M"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB","132":"E HC wB IC JC KC LC MC NC"},H:{"1":"bC"},I:{"1":"H gC hC","16":"cC dC","132":"lB I eC fC wB"},J:{"132":"D A"},K:{"1":"C Y jB","16":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Node.compareDocumentPosition()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-basic.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-basic.js index ff0f8f83a13741..0208f5421e31be 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-basic.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-basic.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D sB","132":"E F"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","2":"F 8B 9B AC BC"},G:{"1":"mB DC rB EC","513":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"4097":"XC"},I:{"1025":"iB H T YC ZC aC bC rB cC dC"},J:{"258":"D A"},K:{"2":"A","258":"B C gB qB hB","1025":"U"},L:{"1025":"fB"},M:{"2049":"S"},N:{"258":"A B"},O:{"258":"eC"},P:{"1025":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1025":"rC"},S:{"1":"sC"}},B:1,C:"Basic console logging functions"}; +module.exports={A:{A:{"1":"A B","2":"J D xB","132":"E F"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","2":"F CC DC EC FC"},G:{"1":"qB HC wB IC","513":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"4097":"bC"},I:{"1025":"lB I H cC dC eC fC wB gC hC"},J:{"258":"D A"},K:{"2":"A","258":"B C iB vB jB","1025":"Y"},L:{"1025":"X"},M:{"2049":"H"},N:{"258":"A B"},O:{"258":"iC"},P:{"1025":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1025":"vC"},S:{"1":"wC"}},B:1,C:"Basic console logging functions"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-time.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-time.js index 2ee5151f7bd01c..db6eab058554c1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-time.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/console-time.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","2":"F 8B 9B AC BC","16":"B"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"U","16":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"console.time and console.timeEnd"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","2":"F CC DC EC FC","16":"B"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"Y","16":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"console.time and console.timeEnd"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/const.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/const.js index 4c8c2f61327358..e011e247ead875 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/const.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/const.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","2052":"B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","132":"tB iB H j I D E F A B C uB vB","260":"0 J K G L M N k l m n o p q r s t u v w x y z"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","260":"H j I D E F A B C J K G L M N k l","772":"0 1 2 3 4 5 m n o p q r s t u v w x y z","1028":"6 7 8 9 AB BB CB DB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","260":"H j A zB mB nB","772":"I D E F 0B 1B 2B 3B"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F 8B","132":"B 9B AC BC gB qB","644":"C CC hB","772":"G L M N k l m n o p q r s","1028":"0 t u v w x y z"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","260":"mB DC rB KC LC","772":"E EC FC GC HC IC JC"},H:{"644":"XC"},I:{"1":"T","16":"YC ZC","260":"aC","772":"iB H bC rB cC dC"},J:{"772":"D A"},K:{"1":"U","132":"A B gB qB","644":"C hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","1028":"H"},Q:{"1":"qC"},R:{"1028":"rC"},S:{"1":"sC"}},B:6,C:"const"}; +module.exports={A:{A:{"2":"J D E F A xB","2052":"B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","132":"yB lB I m J D E F A B C zB 0B","260":"0 1 2 3 K L G M N O n o p q r s t u v w x y z"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","260":"I m J D E F A B C K L G M N O n o","772":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z","1028":"9 AB BB CB DB EB FB GB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","260":"I m A 3B qB rB","772":"J D E F 4B 5B 6B 7B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F CC","132":"B DC EC FC iB vB","644":"C GC jB","772":"G M N O n o p q r s t u v","1028":"0 1 2 3 w x y z"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","260":"qB HC wB OC PC","772":"E IC JC KC LC MC NC"},H:{"644":"bC"},I:{"1":"H","16":"cC dC","260":"eC","772":"lB I fC wB gC hC"},J:{"772":"D A"},K:{"1":"Y","132":"A B iB vB","644":"C jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","1028":"I"},Q:{"1":"uC"},R:{"1028":"vC"},S:{"1":"wC"}},B:6,C:"const"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/constraint-validation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/constraint-validation.js index b01ecc92e565d2..c8ef79a25ddac3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/constraint-validation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/constraint-validation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","900":"A B"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","388":"K G L","900":"C J"},C:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","260":"EB FB","388":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB","900":"H j I D E F A B C J K G L M N k l m n o p q r s t"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K","388":"0 1 2 3 4 q r s t u v w x y z","900":"G L M N k l m n o p"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","16":"H j zB mB","388":"E F 2B 3B","900":"I D 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F B 8B 9B AC BC gB qB","388":"G L M N k l m n o p q r","900":"C CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB","388":"E GC HC IC JC","900":"EC FC"},H:{"2":"XC"},I:{"1":"T","16":"iB YC ZC aC","388":"cC dC","900":"H bC rB"},J:{"16":"D","388":"A"},K:{"1":"U","16":"A B gB qB","900":"C hB"},L:{"1":"fB"},M:{"1":"S"},N:{"900":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"388":"sC"}},B:1,C:"Constraint Validation API"}; +module.exports={A:{A:{"2":"J D E F xB","900":"A B"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","388":"L G M","900":"C K"},C:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","260":"HB IB","388":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB","900":"I m J D E F A B C K L G M N O n o p q r s t u v w"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L","388":"0 1 2 3 4 5 6 7 t u v w x y z","900":"G M N O n o p q r s"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB","388":"E F 6B 7B","900":"J D 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F B CC DC EC FC iB vB","388":"G M N O n o p q r s t u","900":"C GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB","388":"E KC LC MC NC","900":"IC JC"},H:{"2":"bC"},I:{"1":"H","16":"lB cC dC eC","388":"gC hC","900":"I fC wB"},J:{"16":"D","388":"A"},K:{"1":"Y","16":"A B iB vB","900":"C jB"},L:{"1":"X"},M:{"1":"H"},N:{"900":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"388":"wC"}},B:1,C:"Constraint Validation API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contenteditable.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contenteditable.js index 98bedce13727b4..3821034f5558cd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contenteditable.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contenteditable.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB","4":"iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"D A"},K:{"1":"U hB","2":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"contenteditable attribute (basic support)"}; +module.exports={A:{A:{"1":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB","4":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"D A"},K:{"1":"Y jB","2":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"contenteditable attribute (basic support)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js index f2c98ad626ab43..28878196c1b05c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","132":"A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","129":"H j I D E F A B C J K G L M N k l m n"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J","257":"K G L M N k l m n o p"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB","257":"I 1B","260":"0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB","257":"FC","260":"EC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D","257":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"257":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Content Security Policy 1.0"}; +module.exports={A:{A:{"2":"J D E F xB","132":"A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","129":"I m J D E F A B C K L G M N O n o p q"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K","257":"L G M N O n o p q r s"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB","257":"J 5B","260":"4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB","257":"JC","260":"IC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D","257":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"257":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Content Security Policy 1.0"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js index ae801738bb5cfe..f3f28300527cdb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K","4100":"G L M N"},C:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v uB vB","132":"w x y z","260":"0","516":"1 2 3 4 5 6 7 8 9"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","1028":"1 2 3","2052":"4"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n 8B 9B AC BC gB qB CC hB","1028":"o p q","2052":"r"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"Content Security Policy Level 2"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L","4100":"G M N O"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y zB 0B","132":"0 1 2 z","260":"3","516":"4 5 6 7 8 9 AB BB CB"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","1028":"4 5 6","2052":"7"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q CC DC EC FC iB vB GC jB","1028":"r s t","2052":"u"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"Content Security Policy Level 2"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cookie-store-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cookie-store-api.js index 00285682abc07e..0c33ae3cc99a34 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cookie-store-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cookie-store-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"Y Z a b c d e f g h i S T","2":"C J K G L M N","194":"O P Q R V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB","194":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB 8B 9B AC BC gB qB CC hB","194":"GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nC oC pC","2":"H fC gC hC iC jC nB kC lC mC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Cookie Store API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"W Z a b c d e f g h i j k l H X","2":"C K L G M N O","194":"P Q R S T U V"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB","194":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB CC DC EC FC iB vB GC jB","194":"JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rC sC kB tC","2":"I jC kC lC mC nC rB oC pC qC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Cookie Store API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cors.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cors.js index 2d0ee5c14be51f..f58c21733037f8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cors.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cors.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D sB","132":"A","260":"E F"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB","1025":"kB PB QB U RB SB TB UB VB WB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j I D E F A B C"},E:{"2":"zB mB","513":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","644":"H j 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC gB qB CC"},G:{"513":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","644":"mB DC rB EC"},H:{"2":"XC"},I:{"1":"T cC dC","132":"iB H YC ZC aC bC rB"},J:{"1":"A","132":"D"},K:{"1":"C U hB","2":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","132":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Cross-Origin Resource Sharing"}; +module.exports={A:{A:{"1":"B","2":"J D xB","132":"A","260":"E F"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB","1025":"nB SB TB Y UB VB WB XB YB ZB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m J D E F A B C"},E:{"2":"3B qB","513":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","644":"I m 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC iB vB GC"},G:{"513":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","644":"qB HC wB IC"},H:{"2":"bC"},I:{"1":"H gC hC","132":"lB I cC dC eC fC wB"},J:{"1":"A","132":"D"},K:{"1":"C Y jB","2":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","132":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Cross-Origin Resource Sharing"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/createimagebitmap.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/createimagebitmap.js index 253a1ed3ee0835..dbaf37fd45936b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/createimagebitmap.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/createimagebitmap.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","3076":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB","132":"FB GB","260":"HB IB","516":"JB KB LB MB NB"},E:{"2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B 5B","516":"G 6B oB pB 7B"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","132":"2 3","260":"4 5","516":"6 7 8 9 AB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC","516":"WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"3076":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","16":"H fC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"3076":"sC"}},B:1,C:"createImageBitmap"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","1028":"e f g h i j k l H X pB","3076":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d"},D:{"1":"mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","132":"IB JB","260":"KB LB","516":"MB NB OB PB QB"},E:{"2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B 9B","4100":"G AC sB tB uB kB BC"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","132":"5 6","260":"7 8","516":"9 AB BB CB DB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC","4100":"aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"3076":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","16":"I jC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"3076":"wC"}},B:1,C:"createImageBitmap"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/credential-management.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/credential-management.js index 9340b75a428047..ef0dd53a6e2258 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/credential-management.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/credential-management.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB","66":"DB EB FB","129":"GB HB IB JB KB LB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H fC gC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Credential Management API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB","66":"GB HB IB","129":"JB KB LB MB NB OB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB CC DC EC FC iB vB GC jB"},G:{"1":"YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I jC kC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Credential Management API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cryptography.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cryptography.js index a16a1ff3674466..45b7ffb3040d43 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cryptography.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/cryptography.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","8":"I D E F A","164":"B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","513":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","8":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w uB vB","66":"x y"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","8":"0 1 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","8":"H j I D zB mB 0B 1B","289":"E F A 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","8":"F B C G L M N k l m n o 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","8":"mB DC rB EC FC GC","289":"E HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","8":"iB H YC ZC aC bC rB cC dC"},J:{"8":"D A"},K:{"1":"U","8":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"8":"A","164":"B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"Web Cryptography"}; +module.exports={A:{A:{"2":"xB","8":"J D E F A","164":"B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","513":"C K L G M N O"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","8":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","66":"0 1"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","8":"0 1 2 3 4 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","8":"I m J D 3B qB 4B 5B","289":"E F A 6B 7B rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","8":"F B C G M N O n o p q r CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","8":"qB HC wB IC JC KC","289":"E LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","8":"lB I cC dC eC fC wB gC hC"},J:{"8":"D A"},K:{"1":"Y","8":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"8":"A","164":"B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"Web Cryptography"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-all.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-all.js index 045c0b7698febf..1340935cd4d4c8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-all.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-all.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r uB vB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o 8B 9B AC BC gB qB CC hB"},G:{"1":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC"},H:{"2":"XC"},I:{"1":"T dC","2":"iB H YC ZC aC bC rB cC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS all property"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u zB 0B"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r CC DC EC FC iB vB GC jB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC"},H:{"2":"bC"},I:{"1":"H hC","2":"lB I cC dC eC fC wB gC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS all property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-animation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-animation.js index c83705ac442a77..6fe719ae93565a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-animation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-animation.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H uB vB","33":"j I D E F A B C J K G"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"0 1 2 3 4 5 6 7 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB","33":"I D E 0B 1B 2B","292":"H j"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC gB qB CC","33":"C G L M N k l m n o p q r s t u"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","33":"E FC GC HC","164":"mB DC rB EC"},H:{"2":"XC"},I:{"1":"T","33":"H bC rB cC dC","164":"iB YC ZC aC"},J:{"33":"D A"},K:{"1":"U hB","2":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"33":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"CSS Animation"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I zB 0B","33":"m J D E F A B C K L G"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB","33":"J D E 4B 5B 6B","292":"I m"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC iB vB GC","33":"C G M N O n o p q r s t u v w x"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","33":"E JC KC LC","164":"qB HC wB IC"},H:{"2":"bC"},I:{"1":"H","33":"I fC wB gC hC","164":"lB cC dC eC"},J:{"33":"D A"},K:{"1":"Y jB","2":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"33":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"CSS Animation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-any-link.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-any-link.js index c25c8aa8da4074..99238a0e4cea94 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-any-link.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-any-link.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","16":"tB","33":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB uB vB"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","16":"H j I zB mB 0B","33":"D E 1B 2B"},F:{"1":"HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB EC","33":"E FC GC HC"},H:{"2":"XC"},I:{"1":"T","16":"iB H YC ZC aC bC rB","33":"cC dC"},J:{"16":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"33":"eC"},P:{"1":"jC nB kC lC mC nC oC pC","16":"H","33":"fC gC hC iC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"33":"sC"}},B:5,C:"CSS :any-link selector"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","16":"yB","33":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB zB 0B"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m J 3B qB 4B","33":"D E 5B 6B"},F:{"1":"KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB IC","33":"E JC KC LC"},H:{"2":"bC"},I:{"1":"H","16":"lB I cC dC eC fC wB","33":"gC hC"},J:{"16":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"33":"iC"},P:{"1":"nC rB oC pC qC rC sC kB tC","16":"I","33":"jC kC lC mC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"33":"wC"}},B:5,C:"CSS :any-link selector"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-appearance.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-appearance.js index a115a69668c216..a2629f6822fc34 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-appearance.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-appearance.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"V W X Y Z a b c d e f g h i S T","33":"R","164":"O P Q","388":"C J K G L M N"},C:{"1":"P Q lB R V W X Y Z a b c d e f g h i S T fB","164":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O","676":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"R","164":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q"},E:{"1":"pB 7B","164":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"1":"ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"WB XB YB","164":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB"},G:{"1":"pB","164":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"1":"T","164":"iB H YC ZC aC bC rB cC dC"},J:{"164":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A","388":"B"},O:{"164":"eC"},P:{"164":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"164":"qC"},R:{"164":"rC"},S:{"164":"sC"}},B:5,C:"CSS Appearance"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"T U V W Z a b c d e f g h i j k l H X","33":"S","164":"P Q R","388":"C K L G M N O"},C:{"1":"Q R oB S T U V W Z a b c d e f g h i j k l H X pB","164":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P","676":"0 1 2 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"S","164":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R"},E:{"1":"tB uB kB BC","164":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"1":"cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"ZB aB bB","164":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB"},G:{"1":"tB uB kB","164":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"1":"H","164":"lB I cC dC eC fC wB gC hC"},J:{"164":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A","388":"B"},O:{"164":"iC"},P:{"164":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"164":"uC"},R:{"164":"vC"},S:{"164":"wC"}},B:5,C:"CSS Appearance"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-at-counter-style.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-at-counter-style.js index 3d6cbc06f8a950..db4953fd5bb0a7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-at-counter-style.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-at-counter-style.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b","132":"c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x uB vB","132":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b","132":"c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB 8B 9B AC BC gB qB CC hB","132":"dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","132":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","132":"U"},L:{"132":"fB"},M:{"132":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC","132":"pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"132":"sC"}},B:4,C:"CSS Counter Styles"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b","132":"c d e f g h i j k l H X"},C:{"2":"0 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","132":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b","132":"c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB CC DC EC FC iB vB GC jB","132":"gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","132":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","132":"Y"},L:{"132":"X"},M:{"132":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC","132":"kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"132":"wC"}},B:4,C:"CSS Counter Styles"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-autofill.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-autofill.js index bc18dd731fa23c..c69c0975145dc8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-autofill.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-autofill.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"h i S T fB wB xB yB","33":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g"},L:{"1":"fB"},B:{"1":"h i S T","2":"C J K G L M N","33":"O P Q R V W X Y Z a b c d e f g"},C:{"1":"X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W uB vB"},M:{"1":"S"},A:{"2":"I D E F A B sB"},F:{"1":"lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q"},K:{"2":"A B C gB qB hB","33":"U"},E:{"1":"G 6B oB pB","2":"7B","33":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B 5B"},G:{"1":"WC oB pB","33":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC"},P:{"33":"H fC gC hC iC jC nB kC lC mC nC oC pC"},I:{"1":"T","33":"iB H YC ZC aC bC rB cC dC"}},B:6,C:":autofill CSS pseudo-class"}; +module.exports={A:{D:{"1":"h i j k l H X pB 1B 2B","33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g"},L:{"1":"X"},B:{"1":"h i j k l H X","2":"C K L G M N O","33":"P Q R S T U V W Z a b c d e f g"},C:{"1":"V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U zB 0B"},M:{"1":"H"},A:{"2":"J D E F A B xB"},F:{"1":"oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R"},K:{"2":"A B C iB vB jB","33":"Y"},E:{"1":"G AC sB tB uB kB","2":"BC","33":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B 9B"},G:{"1":"aC sB tB uB kB","33":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC"},P:{"33":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},I:{"1":"H","2":"lB I cC dC eC fC wB","33":"gC hC"}},B:6,C:":autofill CSS pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backdrop-filter.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backdrop-filter.js index 6512f1a30bbc4d..9d5497fb74047a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backdrop-filter.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L","257":"M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB uB vB","578":"WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB","194":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB"},E:{"2":"H j I D E zB mB 0B 1B 2B","33":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x y 8B 9B AC BC gB qB CC hB","194":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"2":"E mB DC rB EC FC GC HC","33":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"578":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"lC mC nC oC pC","2":"H","194":"fC gC hC iC jC nB kC"},Q:{"194":"qC"},R:{"194":"rC"},S:{"2":"sC"}},B:7,C:"CSS Backdrop Filter"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M","257":"N O"},C:{"1":"pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB zB 0B","578":"ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X"},D:{"1":"fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB","194":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB"},E:{"2":"I m J D E 3B qB 4B 5B 6B","33":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","194":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E qB HC wB IC JC KC LC","33":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"578":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"pC qC rC sC kB tC","2":"I","194":"jC kC lC mC nC rB oC"},Q:{"194":"uC"},R:{"194":"vC"},S:{"2":"wC"}},B:7,C:"CSS Backdrop Filter"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-background-offsets.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-background-offsets.js index b69892c7bc9dce..266de459caa907 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-background-offsets.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-background-offsets.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS background-position edge offsets"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS background-position edge offsets"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js index f564e49f23921e..f6dc6b4cf400eb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","260":"BB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B","132":"E F A 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m 8B 9B AC BC gB qB CC hB","260":"y"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC","132":"E HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS background-blend-mode"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x zB 0B"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","260":"EB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B","132":"E F A 6B 7B"},F:{"1":"0 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p CC DC EC FC iB vB GC jB","260":"1"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC","132":"E LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS background-blend-mode"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js index 4e5a2d93ed6ccc..4181e4581be854 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","164":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w uB vB"},D:{"2":"H j I D E F A B C J K G L M N k l m","164":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I zB mB 0B","164":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F 8B 9B AC BC","129":"B C gB qB CC hB","164":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"mB DC rB EC FC","164":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"132":"XC"},I:{"2":"iB H YC ZC aC bC rB","164":"T cC dC"},J:{"2":"D","164":"A"},K:{"2":"A","129":"B C gB qB hB","164":"U"},L:{"164":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"164":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"164":"qC"},R:{"164":"rC"},S:{"1":"sC"}},B:5,C:"CSS box-decoration-break"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","164":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"2":"I m J D E F A B C K L G M N O n o p","164":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J 3B qB 4B","164":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F CC DC EC FC","129":"B C iB vB GC jB","164":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"qB HC wB IC JC","164":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"132":"bC"},I:{"2":"lB I cC dC eC fC wB","164":"H gC hC"},J:{"2":"D","164":"A"},K:{"2":"A","129":"B C iB vB jB","164":"Y"},L:{"164":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"164":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"164":"uC"},R:{"164":"vC"},S:{"1":"wC"}},B:5,C:"CSS box-decoration-break"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxshadow.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxshadow.js index f0b29f6b37b07c..138dbdb3c653b4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxshadow.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-boxshadow.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","33":"uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"H j I D E F"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","33":"j","164":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","33":"DC rB","164":"mB"},H:{"2":"XC"},I:{"1":"H T bC rB cC dC","164":"iB YC ZC aC"},J:{"1":"A","33":"D"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS3 Box-shadow"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","33":"zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"I m J D E F"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","33":"m","164":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","33":"HC wB","164":"qB"},H:{"2":"bC"},I:{"1":"I H fC wB gC hC","164":"lB cC dC eC"},J:{"1":"A","33":"D"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS3 Box-shadow"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-canvas.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-canvas.js index 4bfe48deaffef6..315eecca9d3302 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-canvas.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-canvas.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB"},E:{"2":"zB mB","33":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","33":"G L M N k l m n o p q r s t u v w x y z"},G:{"33":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"T","33":"iB H YC ZC aC bC rB cC dC"},J:{"33":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"fC gC hC iC jC nB kC lC mC nC oC pC","33":"H"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"CSS Canvas Drawings"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"2":"3B qB","33":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"3 4 5 6 7 8 9 F B C AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","33":"0 1 2 G M N O n o p q r s t u v w x y z"},G:{"33":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"H","33":"lB I cC dC eC fC wB gC hC"},J:{"33":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"jC kC lC mC nC rB oC pC qC rC sC kB tC","33":"I"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"CSS Canvas Drawings"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-caret-color.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-caret-color.js index 50b32255642afc..03fe9db07d54dc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-caret-color.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-caret-color.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB uB vB"},D:{"1":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H fC gC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"CSS caret-color"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB zB 0B"},D:{"1":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I jC kC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"CSS caret-color"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-layers.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-layers.js index 63c5d6c8c5872a..1eab7e966f6b01 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-layers.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cascade-layers.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"T","2":"C J K G L M N O P Q R V W X Y Z a b c d e f g","322":"h i S"},C:{"1":"i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e uB vB","194":"f g h"},D:{"1":"T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g","322":"h i S"},E:{"1":"pB 7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Cascade Layers"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"k l H X","2":"C K L G M N O P Q R S T U V W Z a b c d e f g","322":"h i j"},C:{"1":"i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e zB 0B","194":"f g h"},D:{"1":"k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g","322":"h i j"},E:{"1":"tB uB kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"1":"V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U CC DC EC FC iB vB GC jB"},G:{"1":"tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Cascade Layers"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-case-insensitive.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-case-insensitive.js index 90a38d970aeaed..0f784824b70047 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-case-insensitive.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-case-insensitive.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB uB vB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:5,C:"Case-insensitive CSS attribute selectors"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB zB 0B"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:5,C:"Case-insensitive CSS attribute selectors"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-clip-path.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-clip-path.js index 7397274ea0d229..e63ffc0d6507ae 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-clip-path.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-clip-path.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M","260":"O P Q R V W X Y Z a b c d e f g h i S T","3138":"N"},C:{"1":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","132":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB uB vB","644":"CB DB EB FB GB HB IB"},D:{"2":"H j I D E F A B C J K G L M N k l m n o","260":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","292":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},E:{"2":"H j I zB mB 0B 1B","260":"K G 4B 5B 6B oB pB 7B","292":"D E F A B C J 2B 3B nB gB hB"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","260":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","292":"0 1 2 3 4 5 6 G L M N k l m n o p q r s t u v w x y z"},G:{"2":"mB DC rB EC FC","260":"QC RC SC TC UC VC WC oB pB","292":"E GC HC IC JC KC LC MC NC OC PC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","260":"T","292":"cC dC"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","260":"U"},L:{"260":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"292":"eC"},P:{"292":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"292":"qC"},R:{"260":"rC"},S:{"644":"sC"}},B:4,C:"CSS clip-path property (for HTML)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N","260":"P Q R S T U V W Z a b c d e f g h i j k l H X","3138":"O"},C:{"1":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","132":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB zB 0B","644":"FB GB HB IB JB KB LB"},D:{"2":"I m J D E F A B C K L G M N O n o p q r","260":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","292":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"2":"I m J 3B qB 4B 5B","260":"L G 8B 9B AC sB tB uB kB BC","292":"D E F A B C K 6B 7B rB iB jB"},F:{"2":"F B C CC DC EC FC iB vB GC jB","260":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","292":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z"},G:{"2":"qB HC wB IC JC","260":"UC VC WC XC YC ZC aC sB tB uB kB","292":"E KC LC MC NC OC PC QC RC SC TC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","260":"H","292":"gC hC"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","260":"Y"},L:{"260":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"292":"iC"},P:{"292":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"292":"uC"},R:{"260":"vC"},S:{"644":"wC"}},B:4,C:"CSS clip-path property (for HTML)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-adjust.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-adjust.js index 2affda23fefc12..0fee736dfebac4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-adjust.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-adjust.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","33":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB uB vB"},D:{"16":"H j I D E F A B C J K G L M N","33":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j zB mB 0B","33":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"16":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"16":"iB H YC ZC aC bC rB cC dC","33":"T"},J:{"16":"D A"},K:{"2":"A B C gB qB hB","33":"U"},L:{"16":"fB"},M:{"1":"S"},N:{"16":"A B"},O:{"16":"eC"},P:{"16":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"33":"qC"},R:{"16":"rC"},S:{"1":"sC"}},B:5,C:"CSS color-adjust"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","33":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB zB 0B"},D:{"16":"I m J D E F A B C K L G M N O","33":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m 3B qB 4B","33":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"16":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"16":"lB I cC dC eC fC wB gC hC","33":"H"},J:{"16":"D A"},K:{"2":"A B C iB vB jB","33":"Y"},L:{"16":"X"},M:{"1":"H"},N:{"16":"A B"},O:{"16":"iC"},P:{"16":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"33":"uC"},R:{"16":"vC"},S:{"1":"wC"}},B:5,C:"CSS color-adjust"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-function.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-function.js index c6eee303701640..e00de0bada4710 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-function.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-color-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"G 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B","132":"B C J K nB gB hB 4B 5B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC","132":"LC MC NC OC PC QC RC SC TC UC VC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS color() function"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"G AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B","132":"B C K L rB iB jB 8B 9B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC","132":"PC QC RC SC TC UC VC WC XC YC ZC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS color() function"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-conic-gradients.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-conic-gradients.js index b7d1d2a6f597e4..f81a7a6ced9094 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-conic-gradients.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-conic-gradients.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB uB vB","578":"bB cB dB eB O P Q lB"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB","194":"jB OB kB PB QB U RB SB TB UB"},E:{"1":"J K G hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB 8B 9B AC BC gB qB CC hB","194":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"1":"PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nB kC lC mC nC oC pC","2":"H fC gC hC iC jC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Conical Gradients"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB zB 0B","578":"eB fB gB hB P Q R oB"},D:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","194":"mB RB nB SB TB Y UB VB WB XB"},E:{"1":"K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB CC DC EC FC iB vB GC jB","194":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"1":"TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rB oC pC qC rC sC kB tC","2":"I jC kC lC mC nC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Conical Gradients"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries.js index 84b7dffdcc865f..1db7396fa766b6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-queries.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d","194":"e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c","194":"e f g h i S T fB wB xB yB","450":"d"},E:{"1":"7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB 8B 9B AC BC gB qB CC hB","194":"O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Container Queries"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c","194":"e f g h i j k l H X pB 1B 2B","450":"d"},E:{"1":"kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB CC DC EC FC iB vB GC jB","194":"P Q R oB S T U V W"},G:{"1":"kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Container Queries (Size)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-query-units.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-query-units.js new file mode 100644 index 00000000000000..5874f5385840d8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-container-query-units.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d","194":"H X pB 1B","450":"e f g h i j k l"},E:{"1":"kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB CC DC EC FC iB vB GC jB","194":"P Q R oB S T U V W"},G:{"1":"kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Container Query Units"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-containment.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-containment.js index face56e97cbda7..7ee131f6cd8b52 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-containment.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-containment.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","194":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB"},D:{"1":"HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB","66":"GB"},E:{"1":"pB 7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","66":"3 4"},G:{"1":"pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H fC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"194":"sC"}},B:2,C:"CSS Containment"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","194":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB"},D:{"1":"KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","66":"JB"},E:{"1":"tB uB kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","66":"6 7"},G:{"1":"tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I jC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"194":"wC"}},B:2,C:"CSS Containment"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-content-visibility.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-content-visibility.js index 269996bbd6daf5..4e4c57469e4188 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-content-visibility.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-content-visibility.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"W X Y Z a b c d e f g h i S T","2":"C J K G L M N O P Q R V"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nC oC pC","2":"H fC gC hC iC jC nB kC lC mC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS content-visibility"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O P Q R S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rC sC kB tC","2":"I jC kC lC mC nC rB oC pC qC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS content-visibility"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-counters.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-counters.js index fd1d7ae973e22c..920971290ac477 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-counters.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-counters.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"I D sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS Counters"}; +module.exports={A:{A:{"1":"E F A B","2":"J D xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS Counters"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-crisp-edges.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-crisp-edges.js index ee768a4a2ad839..430618facd7fc7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-crisp-edges.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-crisp-edges.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I sB","2340":"D E F A B"},B:{"2":"C J K G L M N","1025":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"e f g h i S T fB","2":"tB iB uB","513":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d","545":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U vB"},D:{"2":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","1025":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","164":"I","4644":"D E F 1B 2B 3B"},F:{"2":"F B G L M N k l m n o p q r s 8B 9B AC BC gB qB","545":"C CC hB","1025":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB","4260":"EC FC","4644":"E GC HC IC JC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","1025":"T"},J:{"2":"D","4260":"A"},K:{"2":"A B gB qB","545":"C hB","1025":"U"},L:{"1025":"fB"},M:{"545":"S"},N:{"2340":"A B"},O:{"1":"eC"},P:{"1025":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1025":"qC"},R:{"1025":"rC"},S:{"4097":"sC"}},B:7,C:"Crisp edges/pixelated images"}; +module.exports={A:{A:{"2":"J xB","2340":"D E F A B"},B:{"2":"C K L G M N O","1025":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"e f g h i j k l H X pB","2":"yB lB zB","513":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d","545":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","1025":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","164":"J","4644":"D E F 5B 6B 7B"},F:{"2":"F B G M N O n o p q r s t u v CC DC EC FC iB vB","545":"C GC jB","1025":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB","4260":"IC JC","4644":"E KC LC MC NC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","1025":"H"},J:{"2":"D","4260":"A"},K:{"2":"A B iB vB","545":"C jB","1025":"Y"},L:{"1025":"X"},M:{"545":"H"},N:{"2340":"A B"},O:{"1":"iC"},P:{"1025":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1025":"uC"},R:{"1025":"vC"},S:{"4097":"wC"}},B:7,C:"Crisp edges/pixelated images"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cross-fade.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cross-fade.js index 3d0338a3263636..bccaa12e8d8274 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cross-fade.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-cross-fade.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","33":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"H j I D E F A B C J K G L","33":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB","33":"I D E F 0B 1B 2B 3B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB","33":"E EC FC GC HC IC JC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","33":"T cC dC"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","33":"U"},L:{"33":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"33":"eC"},P:{"33":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"33":"qC"},R:{"33":"rC"},S:{"2":"sC"}},B:4,C:"CSS Cross-Fade Function"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","33":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"I m J D E F A B C K L G M","33":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB","33":"J D E F 4B 5B 6B 7B"},F:{"2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB","33":"E IC JC KC LC MC NC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","33":"H gC hC"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","33":"Y"},L:{"33":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"33":"iC"},P:{"33":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"33":"uC"},R:{"33":"vC"},S:{"2":"wC"}},B:4,C:"CSS Cross-Fade Function"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-default-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-default-pseudo.js index 21e3c2c300bdea..18a6a85d9dfe99 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-default-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-default-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","16":"tB iB uB vB"},D:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K","132":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","16":"H j zB mB","132":"I D E F A 0B 1B 2B 3B"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F B 8B 9B AC BC gB qB","132":"0 1 2 G L M N k l m n o p q r s t u v w x y z","260":"C CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB EC FC","132":"E GC HC IC JC KC"},H:{"260":"XC"},I:{"1":"T","16":"iB YC ZC aC","132":"H bC rB cC dC"},J:{"16":"D","132":"A"},K:{"1":"U","16":"A B C gB qB","260":"hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"132":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","132":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:7,C:":default CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","16":"yB lB zB 0B"},D:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L","132":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB","132":"J D E F A 4B 5B 6B 7B"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F B CC DC EC FC iB vB","132":"0 1 2 3 4 5 G M N O n o p q r s t u v w x y z","260":"C GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB IC JC","132":"E KC LC MC NC OC"},H:{"260":"bC"},I:{"1":"H","16":"lB cC dC eC","132":"I fC wB gC hC"},J:{"16":"D","132":"A"},K:{"1":"Y","16":"A B C iB vB","260":"jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"132":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","132":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:7,C:":default CSS pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js index 75379bcfbc1bfc..23361213b03a0d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N P Q R V W X Y Z a b c d e f g h i S T","16":"O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"B","2":"H j I D E F A C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Explicit descendant combinator >>"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O Q R S T U V W Z a b c d e f g h i j k l H X","16":"P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"B","2":"I m J D E F A C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Explicit descendant combinator >>"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-deviceadaptation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-deviceadaptation.js index 4cf0665bb96412..3a5a295da03a70 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-deviceadaptation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","164":"A B"},B:{"66":"O P Q R V W X Y Z a b c d e f g h i S T","164":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"H j I D E F A B C J K G L M N k l m n o p q r s t","66":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","66":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"292":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A U","292":"B C gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"164":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"66":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Device Adaptation"}; +module.exports={A:{A:{"2":"J D E F xB","164":"A B"},B:{"66":"P Q R S T U V W Z a b c d e f g h i j k l H X","164":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"I m J D E F A B C K L G M N O n o p q r s t u v w","66":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","66":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"292":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A Y","292":"B C iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"164":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"66":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Device Adaptation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-dir-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-dir-pseudo.js index a84041e88fe290..84fd0687001763 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-dir-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L uB vB","33":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b","194":"c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"33":"sC"}},B:5,C:":dir() CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M zB 0B","33":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b","194":"c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"33":"wC"}},B:5,C:":dir() CSS pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-display-contents.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-display-contents.js index 135222260222c2..2def5147965f84 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-display-contents.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-display-contents.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"a b c d e f g h i S T","2":"C J K G L M N","260":"O P Q R V W X Y Z"},C:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","260":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB"},D:{"1":"a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","194":"NB jB OB kB PB QB U","260":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z"},E:{"2":"H j I D E F A B zB mB 0B 1B 2B 3B nB","260":"K G 4B 5B 6B oB pB 7B","772":"C J gB hB"},F:{"1":"cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB 8B 9B AC BC gB qB CC hB","260":"HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC","260":"TC UC VC WC oB pB","772":"NC OC PC QC RC SC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"oC pC","2":"H fC gC hC iC","260":"jC nB kC lC mC nC"},Q:{"260":"qC"},R:{"2":"rC"},S:{"260":"sC"}},B:5,C:"CSS display: contents"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"a b c d e f g h i j k l H X","2":"C K L G M N O","260":"P Q R S T U V W Z"},C:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","260":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB"},D:{"1":"a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB mB RB nB SB TB Y","260":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z"},E:{"1":"kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB","260":"L G 8B 9B AC sB tB uB","772":"C K iB jB"},F:{"1":"fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB CC DC EC FC iB vB GC jB","260":"KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB"},G:{"1":"kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC","260":"XC YC ZC aC sB tB uB","772":"RC SC TC UC VC WC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"sC kB tC","2":"I jC kC lC mC","260":"nC rB oC pC qC rC"},Q:{"260":"uC"},R:{"2":"vC"},S:{"260":"wC"}},B:5,C:"CSS display: contents"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-element-function.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-element-function.js index 4f5642efd5f2eb..e4e4b34f6801bd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-element-function.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-element-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"33":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","164":"tB iB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"33":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"33":"sC"}},B:5,C:"CSS element() function"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","164":"yB lB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"33":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"33":"wC"}},B:5,C:"CSS element() function"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-env-function.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-env-function.js index d4a4878486f436..c98ae64e7cf156 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-env-function.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-env-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U uB vB"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB","132":"B"},F:{"1":"LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC","132":"MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nB kC lC mC nC oC pC","2":"H fC gC hC iC jC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"CSS Environment Variables env()"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y zB 0B"},D:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","132":"B"},F:{"1":"OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC","132":"QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rB oC pC qC rC sC kB tC","2":"I jC kC lC mC nC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"CSS Environment Variables env()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-exclusions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-exclusions.js index db1987acc741c6..8dfc78d7c145d8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-exclusions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-exclusions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","33":"A B"},B:{"2":"O P Q R V W X Y Z a b c d e f g h i S T","33":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"33":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Exclusions Level 1"}; +module.exports={A:{A:{"2":"J D E F xB","33":"A B"},B:{"2":"P Q R S T U V W Z a b c d e f g h i j k l H X","33":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"33":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Exclusions Level 1"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-featurequeries.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-featurequeries.js index c9be70df0d4b51..00a5e52250cafb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-featurequeries.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-featurequeries.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B C 8B 9B AC BC gB qB CC"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS Feature Queries"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B C CC DC EC FC iB vB GC"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS Feature Queries"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-file-selector-button.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-file-selector-button.js index b86cc101f47f2c..4cba29f86fe401 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-file-selector-button.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-file-selector-button.js @@ -1 +1 @@ -module.exports={A:{D:{"1":"a b c d e f g h i S T fB wB xB yB","33":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z"},L:{"1":"fB"},B:{"1":"a b c d e f g h i S T","33":"C J K G L M N O P Q R V W X Y Z"},C:{"1":"lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q uB vB"},M:{"1":"S"},A:{"2":"I D E F sB","33":"A B"},F:{"1":"bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB"},K:{"1":"U","2":"A B C gB qB hB"},E:{"1":"G 5B 6B oB pB","2":"7B","33":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B"},G:{"1":"VC WC oB pB","33":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC"},P:{"1":"oC pC","33":"H fC gC hC iC jC nB kC lC mC nC"},I:{"1":"T","33":"iB H YC ZC aC bC rB cC dC"}},B:6,C:"::file-selector-button CSS pseudo-element"}; +module.exports={A:{D:{"1":"a b c d e f g h i j k l H X pB 1B 2B","33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z"},L:{"1":"X"},B:{"1":"a b c d e f g h i j k l H X","33":"C K L G M N O P Q R S T U V W Z"},C:{"1":"oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R zB 0B"},M:{"1":"H"},A:{"2":"J D E F xB","33":"A B"},F:{"1":"eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB"},K:{"1":"Y","2":"A B C iB vB jB"},E:{"1":"G 9B AC sB tB uB kB","2":"BC","33":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B"},G:{"1":"ZC aC sB tB uB kB","33":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC"},P:{"1":"sC kB tC","33":"I jC kC lC mC nC rB oC pC qC rC"},I:{"1":"H","2":"lB I cC dC eC fC wB","33":"gC hC"}},B:6,C:"::file-selector-button CSS pseudo-element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filter-function.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filter-function.js index 40e53e34ab43a3..2b5e57b604cd10 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filter-function.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filter-function.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B","33":"F"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC","33":"IC JC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS filter() function"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B","33":"F"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC","33":"MC NC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS filter() function"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filters.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filters.js index 8dd6034f6b4934..e843123684c6cf 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filters.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-filters.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","1028":"J K G L M N","1346":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB","196":"z","516":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y vB"},D:{"1":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M","33":"0 1 2 3 4 5 6 7 8 9 N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","33":"I D E F 1B 2B"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 G L M N k l m n o p q r s t u v w x y z"},G:{"1":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC","33":"E FC GC HC IC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB","33":"cC dC"},J:{"2":"D","33":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","33":"H fC gC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"CSS Filter Effects"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","1028":"K L G M N O","1346":"C"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB","196":"2","516":"0 1 I m J D E F A B C K L G M N O n o p q r s t u v w x y z 0B"},D:{"1":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N","33":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","33":"J D E F 5B 6B"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 G M N O n o p q r s t u v w x y z"},G:{"1":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC","33":"E JC KC LC MC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB","33":"gC hC"},J:{"2":"D","33":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","33":"I jC kC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"CSS Filter Effects"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-letter.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-letter.js index fefc768d28d697..13752ba8918025 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-letter.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-letter.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","16":"sB","516":"E","1540":"I D"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","132":"iB","260":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"j I D E","132":"H"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"j zB","132":"H mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","16":"F 8B","260":"B 9B AC BC gB qB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB"},H:{"1":"XC"},I:{"1":"iB H T bC rB cC dC","16":"YC ZC","132":"aC"},J:{"1":"D A"},K:{"1":"C U hB","260":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"::first-letter CSS pseudo-element selector"}; +module.exports={A:{A:{"1":"F A B","16":"xB","516":"E","1540":"J D"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","132":"lB","260":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"m J D E","132":"I"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"m 3B","132":"I qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","16":"F CC","260":"B DC EC FC iB vB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB"},H:{"1":"bC"},I:{"1":"lB I H fC wB gC hC","16":"cC dC","132":"eC"},J:{"1":"D A"},K:{"1":"C Y jB","260":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"::first-letter CSS pseudo-element selector"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-line.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-line.js index 96e0c6e74848e1..f3464402c8474c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-line.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-first-line.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","132":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS first-line pseudo-element"}; +module.exports={A:{A:{"1":"F A B","132":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS first-line pseudo-element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-fixed.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-fixed.js index a8fe9a9ce4c6ef..7748f74b109672 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-fixed.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-fixed.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"D E F A B","2":"sB","8":"I"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B nB gB hB 4B 5B 6B oB pB 7B","1025":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB","132":"EC FC GC"},H:{"2":"XC"},I:{"1":"iB T cC dC","260":"YC ZC aC","513":"H bC rB"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS position:fixed"}; +module.exports={A:{A:{"1":"D E F A B","2":"xB","8":"J"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B rB iB jB 8B 9B AC sB tB uB kB BC","1025":"7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB","132":"IC JC KC"},H:{"2":"bC"},I:{"1":"lB H gC hC","260":"cC dC eC","513":"I fC wB"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS position:fixed"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-visible.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-visible.js index dbdb6d955c2b0f..6cd82736435d04 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-visible.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-visible.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"X Y Z a b c d e f g h i S T","2":"C J K G L M N","328":"O P Q R V W"},C:{"1":"W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","161":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V"},D:{"1":"X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB","328":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W"},E:{"1":"pB 7B","2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B 5B","578":"G 6B oB"},F:{"1":"YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB 8B 9B AC BC gB qB CC hB","328":"SB TB UB VB WB XB"},G:{"1":"pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC","578":"WC oB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nC oC pC","2":"H fC gC hC iC jC nB kC lC mC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"161":"sC"}},B:7,C:":focus-visible CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"V W Z a b c d e f g h i j k l H X","2":"C K L G M N O","328":"P Q R S T U"},C:{"1":"U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","161":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T"},D:{"1":"V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB","328":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U"},E:{"1":"tB uB kB BC","2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B 9B","578":"G AC sB"},F:{"1":"bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB CC DC EC FC iB vB GC jB","328":"VB WB XB YB ZB aB"},G:{"1":"tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC","578":"aC sB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rC sC kB tC","2":"I jC kC lC mC nC rB oC pC qC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"161":"wC"}},B:7,C:":focus-visible CSS pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-within.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-within.js index f3c23862d770ff..58553c81b664d1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-within.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-focus-within.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB uB vB"},D:{"1":"OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB","194":"jB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB 8B 9B AC BC gB qB CC hB","194":"BB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"1":"qC"},R:{"16":"rC"},S:{"2":"sC"}},B:7,C:":focus-within CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B"},D:{"1":"RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","194":"mB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB CC DC EC FC iB vB GC jB","194":"EB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"1":"uC"},R:{"16":"vC"},S:{"2":"wC"}},B:7,C:":focus-within CSS pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-palette.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-palette.js index 582045642260cf..9222524d8824fd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-palette.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-palette.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB"},E:{"1":"pB 7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS font-palette"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l"},E:{"1":"tB uB kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS font-palette"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js index 0bda158f354938..401d0d688a6a01 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB uB vB","194":"BB CB DB EB FB GB HB IB JB KB LB MB"},D:{"1":"OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB","66":"EB FB GB HB IB JB KB LB MB NB jB"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","66":"1 2 3 4 5 6 7 8 9 AB BB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H","66":"fC gC hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"194":"sC"}},B:5,C:"CSS font-display"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB zB 0B","194":"EB FB GB HB IB JB KB LB MB NB OB PB"},D:{"1":"RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB","66":"HB IB JB KB LB MB NB OB PB QB mB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","66":"4 5 6 7 8 9 AB BB CB DB EB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I","66":"jC kC lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"194":"wC"}},B:5,C:"CSS font-display"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-stretch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-stretch.js index 3ec74dc721f8a0..a9471f5e0b5b31 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-stretch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-font-stretch.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E uB vB"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS font-stretch"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E zB 0B"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS font-stretch"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gencontent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gencontent.js index bb379c52f2464b..bc835f55f48414 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gencontent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gencontent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D sB","132":"E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS Generated content for pseudo-elements"}; +module.exports={A:{A:{"1":"F A B","2":"J D xB","132":"E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS Generated content for pseudo-elements"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gradients.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gradients.js index db5fde6197bf35..edc2dbd20735ee 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gradients.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-gradients.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB","260":"0 L M N k l m n o p q r s t u v w x y z","292":"H j I D E F A B C J K G vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"A B C J K G L M N k l m n o p q","548":"H j I D E F"},E:{"1":"pB 7B","2":"zB mB","260":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB","292":"I 0B","804":"H j"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC","33":"C CC","164":"gB qB"},G:{"1":"pB","260":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB","292":"EC FC","804":"mB DC rB"},H:{"2":"XC"},I:{"1":"T cC dC","33":"H bC rB","548":"iB YC ZC aC"},J:{"1":"A","548":"D"},K:{"1":"U hB","2":"A B","33":"C","164":"gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS Gradients"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB","260":"0 1 2 3 M N O n o p q r s t u v w x y z","292":"I m J D E F A B C K L G 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"A B C K L G M N O n o p q r s t","548":"I m J D E F"},E:{"1":"tB uB kB BC","2":"3B qB","260":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB","292":"J 4B","804":"I m"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC","33":"C GC","164":"iB vB"},G:{"1":"tB uB kB","260":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB","292":"IC JC","804":"qB HC wB"},H:{"2":"bC"},I:{"1":"H gC hC","33":"I fC wB","548":"lB cC dC eC"},J:{"1":"A","548":"D"},K:{"1":"Y jB","2":"A B","33":"C","164":"iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS Gradients"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid-animation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid-animation.js new file mode 100644 index 00000000000000..787e1b8f908bc8 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid-animation.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"CSS Grid animation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid.js index 4854f57228c323..2d99e2032c7395 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-grid.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","8":"F","292":"A B"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","292":"C J K G"},C:{"1":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N uB vB","8":"0 1 2 3 4 k l m n o p q r s t u v w x y z","584":"5 6 7 8 9 AB BB CB DB EB FB GB","1025":"HB IB"},D:{"1":"NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p","8":"q r s t","200":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","1025":"MB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","8":"I D E F A 1B 2B 3B"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s 8B 9B AC BC gB qB CC hB","200":"0 1 2 3 4 5 6 7 8 t u v w x y z"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC","8":"E FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC","8":"rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"292":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"fC","8":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:4,C:"CSS Grid Layout (level 1)"}; +module.exports={A:{A:{"2":"J D E xB","8":"F","292":"A B"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","292":"C K L G"},C:{"1":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O zB 0B","8":"0 1 2 3 4 5 6 7 n o p q r s t u v w x y z","584":"8 9 AB BB CB DB EB FB GB HB IB JB","1025":"KB LB"},D:{"1":"QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s","8":"t u v w","200":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","1025":"PB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","8":"J D E F A 5B 6B 7B"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v CC DC EC FC iB vB GC jB","200":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC","8":"E JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC","8":"wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"292":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"jC","8":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:4,C:"CSS Grid Layout (level 1)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js index 1331d5ad61c4c3..9edec346a764c6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS hanging-punctuation"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS hanging-punctuation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-has.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-has.js index a40e5125c22016..d68495d901d1d2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-has.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-has.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB","194":"wB xB yB"},E:{"1":"pB 7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:":has() CSS relational pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l","194":"H X pB 1B"},E:{"1":"tB uB kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:":has() CSS relational pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphenate.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphenate.js index bbcf111a012e0d..c7ee8238a924a5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphenate.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphenate.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","16":"C J K G L M N"},C:{"16":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},E:{"16":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"16":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"16":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"16":"XC"},I:{"16":"iB H T YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"16":"A B C U gB qB hB"},L:{"16":"fB"},M:{"16":"S"},N:{"16":"A B"},O:{"16":"eC"},P:{"16":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"16":"qC"},R:{"16":"rC"},S:{"16":"sC"}},B:5,C:"CSS4 Hyphenation"}; +module.exports={A:{A:{"16":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","16":"C K L G M N O"},C:{"16":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"16":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"16":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"16":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"16":"bC"},I:{"16":"lB I H cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"16":"A B C Y iB vB jB"},L:{"16":"X"},M:{"16":"H"},N:{"16":"A B"},O:{"16":"iC"},P:{"16":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"16":"uC"},R:{"16":"vC"},S:{"16":"wC"}},B:5,C:"CSS4 Hyphenation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphens.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphens.js index 1b39b7cc68b80c..3c4a6e3a0eba0d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphens.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-hyphens.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","33":"A B"},B:{"33":"C J K G L M N","132":"O P Q R V W X Y","260":"Z a b c d e f g h i S T"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j uB vB","33":"0 1 2 3 4 5 6 7 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},D:{"1":"Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","132":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y"},E:{"2":"H j zB mB","33":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","132":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"mB DC","33":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"4":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H","132":"fC"},Q:{"2":"qC"},R:{"132":"rC"},S:{"1":"sC"}},B:5,C:"CSS Hyphenation"}; +module.exports={A:{A:{"2":"J D E F xB","33":"A B"},B:{"33":"C K L G M N O","132":"P Q R S T U V W","260":"Z a b c d e f g h i j k l H X"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m zB 0B","33":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB"},D:{"1":"Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","132":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W"},E:{"2":"I m 3B qB","33":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","132":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"qB HC","33":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"4":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I","132":"jC"},Q:{"2":"uC"},R:{"132":"vC"},S:{"1":"wC"}},B:5,C:"CSS Hyphenation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-orientation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-orientation.js index 83c09d8c6a182b..74753cc218b20f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-orientation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-orientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"a b c d e f g h i S T","2":"C J K G L M N O P","257":"Q R V W X Y Z"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q uB vB"},D:{"1":"a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P","257":"Q R V W X Y Z"},E:{"1":"K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB"},F:{"1":"UB VB WB XB YB","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB 8B 9B AC BC gB qB CC hB","257":"ZB aB bB cB dB eB O P Q lB R"},G:{"1":"UC VC WC oB pB","132":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"mC nC oC pC","2":"H fC gC hC iC jC nB kC lC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:4,C:"CSS3 image-orientation"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"a b c d e f g h i j k l H X","2":"C K L G M N O P Q","257":"R S T U V W Z"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t zB 0B"},D:{"1":"a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q","257":"R S T U V W Z"},E:{"1":"L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB"},F:{"1":"XB YB ZB aB bB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB CC DC EC FC iB vB GC jB","257":"cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"YC ZC aC sB tB uB kB","132":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"qC rC sC kB tC","2":"I jC kC lC mC nC rB oC pC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:4,C:"CSS3 image-orientation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-set.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-set.js index 4073a882e6d31a..9599954f686faa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-set.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-image-set.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","164":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W uB vB","66":"X Y","257":"a b c d e f g h i S T fB","772":"Z"},D:{"2":"H j I D E F A B C J K G L M N k l","164":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j zB mB 0B","132":"A B C J nB gB hB 4B","164":"I D E F 1B 2B 3B","516":"K G 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","164":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"mB DC rB EC","132":"KC LC MC NC OC PC QC RC SC TC","164":"E FC GC HC IC JC","516":"UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","164":"T cC dC"},J:{"2":"D","164":"A"},K:{"2":"A B C gB qB hB","164":"U"},L:{"164":"fB"},M:{"257":"S"},N:{"2":"A B"},O:{"164":"eC"},P:{"164":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"164":"qC"},R:{"164":"rC"},S:{"2":"sC"}},B:5,C:"CSS image-set"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","164":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U zB 0B","66":"V W","257":"a b c d e f g h i j k l H X pB","772":"Z"},D:{"2":"I m J D E F A B C K L G M N O n o","164":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m 3B qB 4B","132":"A B C K rB iB jB 8B","164":"J D E F 5B 6B 7B","516":"L G 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","164":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"qB HC wB IC","132":"OC PC QC RC SC TC UC VC WC XC","164":"E JC KC LC MC NC","516":"YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","164":"H gC hC"},J:{"2":"D","164":"A"},K:{"2":"A B C iB vB jB","164":"Y"},L:{"164":"X"},M:{"257":"H"},N:{"2":"A B"},O:{"164":"iC"},P:{"164":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"164":"uC"},R:{"164":"vC"},S:{"2":"wC"}},B:5,C:"CSS image-set"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-in-out-of-range.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-in-out-of-range.js index cd4e3fabd7bff0..f46b2c96e04696 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-in-out-of-range.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C","260":"J K G L M N"},C:{"1":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB","516":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB"},D:{"1":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H","16":"j I D E F A B C J K","260":"HB","772":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","16":"j","772":"I D E F A 0B 1B 2B 3B"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F 8B","260":"4 B C 9B AC BC gB qB CC hB","772":"0 1 2 3 G L M N k l m n o p q r s t u v w x y z"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB","772":"E EC FC GC HC IC JC KC"},H:{"132":"XC"},I:{"1":"T","2":"iB YC ZC aC","260":"H bC rB cC dC"},J:{"2":"D","260":"A"},K:{"1":"U","260":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","260":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"516":"sC"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C","260":"K L G M N O"},C:{"1":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B","516":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB"},D:{"1":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I","16":"m J D E F A B C K L","260":"KB","772":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","16":"m","772":"J D E F A 4B 5B 6B 7B"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F CC","260":"7 B C DC EC FC iB vB GC jB","772":"0 1 2 3 4 5 6 G M N O n o p q r s t u v w x y z"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB","772":"E IC JC KC LC MC NC OC"},H:{"132":"bC"},I:{"1":"H","2":"lB cC dC eC","260":"I fC wB gC hC"},J:{"2":"D","260":"A"},K:{"1":"Y","260":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","260":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"516":"wC"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js index fa94cb7e3c251f..e46ac2b943df4e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","132":"A B","388":"F"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","132":"C J K G L M N"},C:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","16":"tB iB uB vB","132":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB","388":"H j"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K","132":"0 1 2 3 G L M N k l m n o p q r s t u v w x y z"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","16":"H j I zB mB","132":"D E F A 1B 2B 3B","388":"0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F B 8B 9B AC BC gB qB","132":"G L M N k l m n o p q","516":"C CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB EC FC","132":"E GC HC IC JC KC"},H:{"516":"XC"},I:{"1":"T","16":"iB YC ZC aC dC","132":"cC","388":"H bC rB"},J:{"16":"D","132":"A"},K:{"1":"U","16":"A B C gB qB","516":"hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"132":"sC"}},B:7,C:":indeterminate CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E xB","132":"A B","388":"F"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","132":"C K L G M N O"},C:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","16":"yB lB zB 0B","132":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","388":"I m"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L","132":"0 1 2 3 4 5 6 G M N O n o p q r s t u v w x y z"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m J 3B qB","132":"D E F A 5B 6B 7B","388":"4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F B CC DC EC FC iB vB","132":"G M N O n o p q r s t","516":"C GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB IC JC","132":"E KC LC MC NC OC"},H:{"516":"bC"},I:{"1":"H","16":"lB cC dC eC hC","132":"gC","388":"I fC wB"},J:{"16":"D","132":"A"},K:{"1":"Y","16":"A B C iB vB","516":"jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"132":"wC"}},B:7,C:":indeterminate CSS pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-letter.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-letter.js index 0893b85195f0df..7e421f80d18e72 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-letter.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-letter.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E zB mB 0B 1B 2B","4":"F","164":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC","164":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Initial Letter"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E 3B qB 4B 5B 6B","4":"F","164":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC","164":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Initial Letter"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-value.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-value.js index 032c1615cd7b99..672fe29a45f660 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-value.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-initial-value.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","33":"H j I D E F A B C J K G L M N uB vB","164":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS initial value"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","33":"I m J D E F A B C K L G M N O zB 0B","164":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS initial value"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-lch-lab.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-lch-lab.js index f7293ed3bd7850..7bf9816422a46a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-lch-lab.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-lch-lab.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"G 6B oB pB 7B","2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B 5B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"LCH and Lab color values"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"G AC sB tB uB kB BC","2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B 9B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"LCH and Lab color values"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-letter-spacing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-letter-spacing.js index dbd6a1448ee8dd..1c1dfbfacc9120 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-letter-spacing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-letter-spacing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","16":"sB","132":"I D E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j I D E F A B C J K G L M N k l m n o p q r s t u"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB","132":"H j I mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F 8B","132":"B C G L 9B AC BC gB qB CC hB"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"2":"XC"},I:{"1":"T cC dC","16":"YC ZC","132":"iB H aC bC rB"},J:{"132":"D A"},K:{"1":"U","132":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"letter-spacing CSS property"}; +module.exports={A:{A:{"1":"F A B","16":"xB","132":"J D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m J D E F A B C K L G M N O n o p q r s t u v w x"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B","132":"I m J qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F CC","132":"B C G M DC EC FC iB vB GC jB"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"2":"bC"},I:{"1":"H gC hC","16":"cC dC","132":"lB I eC fC wB"},J:{"132":"D A"},K:{"1":"Y","132":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"letter-spacing CSS property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-line-clamp.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-line-clamp.js index 299ba53087c37a..42743ef1927e77 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-line-clamp.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-line-clamp.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L","33":"O P Q R V W X Y Z a b c d e f g h i S T","129":"M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB uB vB","33":"UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"16":"H j I D E F A B C J","33":"0 1 2 3 4 5 6 7 8 9 K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H zB mB","33":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"mB DC rB","33":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"16":"YC ZC","33":"iB H T aC bC rB cC dC"},J:{"33":"D A"},K:{"2":"A B C gB qB hB","33":"U"},L:{"33":"fB"},M:{"33":"S"},N:{"2":"A B"},O:{"33":"eC"},P:{"33":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"33":"qC"},R:{"33":"rC"},S:{"2":"sC"}},B:5,C:"CSS line-clamp"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M","33":"P Q R S T U V W Z a b c d e f g h i j k l H X","129":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB zB 0B","33":"XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"16":"I m J D E F A B C K","33":"0 1 2 3 4 5 6 7 8 9 L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I 3B qB","33":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"qB HC wB","33":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"16":"cC dC","33":"lB I H eC fC wB gC hC"},J:{"33":"D A"},K:{"2":"A B C iB vB jB","33":"Y"},L:{"33":"X"},M:{"33":"H"},N:{"2":"A B"},O:{"33":"iC"},P:{"33":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"33":"uC"},R:{"33":"vC"},S:{"2":"wC"}},B:5,C:"CSS line-clamp"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-logical-props.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-logical-props.js index 1153a70e6aec3e..156597e0d3f279 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-logical-props.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-logical-props.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"a b c d e f g h i S T","2":"C J K G L M N","1028":"Y Z","1540":"O P Q R V W X"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB","164":"0 1 2 3 4 5 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","1540":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB"},D:{"1":"a b c d e f g h i S T fB wB xB yB","292":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB","1028":"Y Z","1540":"VB WB XB YB ZB aB bB cB dB eB O P Q R V W X"},E:{"1":"G 6B oB pB 7B","292":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB","1028":"5B","1540":"J K hB 4B"},F:{"1":"cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","292":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB","1028":"aB bB","1540":"LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB"},G:{"1":"WC oB pB","292":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC","1028":"VC","1540":"PC QC RC SC TC UC"},H:{"2":"XC"},I:{"1":"T","292":"iB H YC ZC aC bC rB cC dC"},J:{"292":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"292":"eC"},P:{"1":"oC pC","292":"H fC gC hC iC jC","1540":"nB kC lC mC nC"},Q:{"1540":"qC"},R:{"1540":"rC"},S:{"1540":"sC"}},B:5,C:"CSS Logical Properties"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"a b c d e f g h i j k l H X","2":"C K L G M N O","1028":"W Z","1540":"P Q R S T U V"},C:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB","164":"0 1 2 3 4 5 6 7 8 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","1540":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB"},D:{"1":"a b c d e f g h i j k l H X pB 1B 2B","292":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB","1028":"W Z","1540":"YB ZB aB bB cB dB eB fB gB hB P Q R S T U V"},E:{"1":"G AC sB tB uB kB BC","292":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB","1028":"9B","1540":"K L jB 8B"},F:{"1":"fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","292":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB","1028":"dB eB","1540":"OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB"},G:{"1":"aC sB tB uB kB","292":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC","1028":"ZC","1540":"TC UC VC WC XC YC"},H:{"2":"bC"},I:{"1":"H","292":"lB I cC dC eC fC wB gC hC"},J:{"292":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"292":"iC"},P:{"1":"sC kB tC","292":"I jC kC lC mC nC","1540":"rB oC pC qC rC"},Q:{"1540":"uC"},R:{"1540":"vC"},S:{"1540":"wC"}},B:5,C:"CSS Logical Properties"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-marker-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-marker-pseudo.js index d94f021c2f2e0f..d4683fbcf6c516 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-marker-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"X Y Z a b c d e f g h i S T","2":"C J K G L M N O P Q R V W"},C:{"1":"UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB uB vB"},D:{"1":"X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W"},E:{"1":"7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB","129":"C J K G gB hB 4B 5B 6B oB pB"},F:{"1":"YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nC oC pC","2":"H fC gC hC iC jC nB kC lC mC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS ::marker pseudo-element"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"V W Z a b c d e f g h i j k l H X","2":"C K L G M N O P Q R S T U"},C:{"1":"XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB zB 0B"},D:{"1":"V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U"},E:{"1":"BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB","129":"C K L G iB jB 8B 9B AC sB tB uB kB"},F:{"1":"bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rC sC kB tC","2":"I jC kC lC mC nC rB oC pC qC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS ::marker pseudo-element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-masks.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-masks.js index 3b15abcfde3fe0..1f111e76ef6e1e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-masks.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-masks.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L","164":"O P Q R V W X Y Z a b c d e f g h i S T","3138":"M","12292":"N"},C:{"1":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","260":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB uB vB"},D:{"164":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"pB 7B","2":"zB mB","164":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","164":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"pB","164":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"164":"T cC dC","676":"iB H YC ZC aC bC rB"},J:{"164":"D A"},K:{"2":"A B C gB qB hB","164":"U"},L:{"164":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"164":"eC"},P:{"164":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"164":"qC"},R:{"164":"rC"},S:{"260":"sC"}},B:4,C:"CSS Masks"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M","164":"P Q R S T U V W Z a b c d e f g h i j k l H X","3138":"N","12292":"O"},C:{"1":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","260":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB zB 0B"},D:{"164":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"tB uB kB BC","2":"3B qB","164":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"2":"F B C CC DC EC FC iB vB GC jB","164":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"tB uB kB","164":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"164":"H gC hC","676":"lB I cC dC eC fC wB"},J:{"164":"D A"},K:{"2":"A B C iB vB jB","164":"Y"},L:{"164":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"164":"iC"},P:{"164":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"164":"uC"},R:{"164":"vC"},S:{"260":"wC"}},B:4,C:"CSS Masks"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-matches-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-matches-pseudo.js index bdad227109d00e..9e37dfd3a16574 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-matches-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"Z a b c d e f g h i S T","2":"C J K G L M N","1220":"O P Q R V W X Y"},C:{"1":"eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","16":"tB iB uB vB","548":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB"},D:{"1":"Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K","164":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U","196":"RB SB TB","1220":"UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y"},E:{"1":"K G 5B 6B oB pB 7B","2":"H zB mB","16":"j","164":"I D E 0B 1B 2B","260":"F A B C J 3B nB gB hB 4B"},F:{"1":"bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","164":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","196":"HB IB JB","1220":"KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB"},G:{"1":"UC VC WC oB pB","16":"mB DC rB EC FC","164":"E GC HC","260":"IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"XC"},I:{"1":"T","16":"iB YC ZC aC","164":"H bC rB cC dC"},J:{"16":"D","164":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"164":"eC"},P:{"1":"oC pC","164":"H fC gC hC iC jC nB kC lC mC nC"},Q:{"1220":"qC"},R:{"164":"rC"},S:{"548":"sC"}},B:5,C:":is() CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"Z a b c d e f g h i j k l H X","2":"C K L G M N O","1220":"P Q R S T U V W"},C:{"1":"hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","16":"yB lB zB 0B","548":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB"},D:{"1":"Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L","164":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y","196":"UB VB WB","1220":"XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W"},E:{"1":"L G 9B AC sB tB uB kB BC","2":"I 3B qB","16":"m","164":"J D E 4B 5B 6B","260":"F A B C K 7B rB iB jB 8B"},F:{"1":"eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","164":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","196":"KB LB MB","1220":"NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB"},G:{"1":"YC ZC aC sB tB uB kB","16":"qB HC wB IC JC","164":"E KC LC","260":"MC NC OC PC QC RC SC TC UC VC WC XC"},H:{"2":"bC"},I:{"1":"H","16":"lB cC dC eC","164":"I fC wB gC hC"},J:{"16":"D","164":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"164":"iC"},P:{"1":"sC kB tC","164":"I jC kC lC mC nC rB oC pC qC rC"},Q:{"1220":"uC"},R:{"164":"vC"},S:{"548":"wC"}},B:5,C:":is() CSS pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-math-functions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-math-functions.js index 6f632f9faea271..fb9e69cdf162c5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-math-functions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-math-functions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB uB vB"},D:{"1":"O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB","132":"C J gB hB"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB 8B 9B AC BC gB qB CC hB"},G:{"1":"TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC","132":"NC OC PC QC RC SC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"lC mC nC oC pC","2":"H fC gC hC iC jC nB kC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS math functions min(), max() and clamp()"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB zB 0B"},D:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB"},E:{"1":"L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB","132":"C K iB jB"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB CC DC EC FC iB vB GC jB"},G:{"1":"XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC","132":"RC SC TC UC VC WC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"pC qC rC sC kB tC","2":"I jC kC lC mC nC rB oC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS math functions min(), max() and clamp()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-interaction.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-interaction.js index 1b6cf445304796..c613bae1cd2020 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-interaction.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-interaction.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB uB vB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"Media Queries: interaction media features"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB zB 0B"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"Media Queries: interaction media features"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-resolution.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-resolution.js index c9001188020bb8..7c51fdd5af16b2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-resolution.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-resolution.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","132":"F A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","260":"H j I D E F A B C J K G uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","548":"H j I D E F A B C J K G L M N k l m n o p q r s t"},E:{"1":"7B","2":"zB mB","548":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F","548":"B C 8B 9B AC BC gB qB CC"},G:{"16":"mB","548":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"132":"XC"},I:{"1":"T cC dC","16":"YC ZC","548":"iB H aC bC rB"},J:{"548":"D A"},K:{"1":"U hB","548":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"Media Queries: resolution feature"}; +module.exports={A:{A:{"2":"J D E xB","132":"F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","260":"I m J D E F A B C K L G zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","548":"I m J D E F A B C K L G M N O n o p q r s t u v w"},E:{"1":"BC","2":"3B qB","548":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F","548":"B C CC DC EC FC iB vB GC"},G:{"16":"qB","548":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"132":"bC"},I:{"1":"H gC hC","16":"cC dC","548":"lB I eC fC wB"},J:{"548":"D A"},K:{"1":"Y jB","548":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"Media Queries: resolution feature"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-scripting.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-scripting.js index 865c9fa2a5d95e..12fd95f6637570 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-scripting.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-media-scripting.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"16":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB uB vB","16":"HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB","16":"wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Media Queries: scripting media feature"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"16":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B","16":"KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X","16":"pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Media Queries: scripting media feature"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mediaqueries.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mediaqueries.js index 252a0b1555b0be..6731439590595f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mediaqueries.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mediaqueries.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"I D E sB","129":"F A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","129":"H j I D E F A B C J K G L M N k l m n o p q"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","129":"H j I 0B","388":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","129":"mB DC rB EC FC"},H:{"1":"XC"},I:{"1":"T cC dC","129":"iB H YC ZC aC bC rB"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"129":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS3 Media Queries"}; +module.exports={A:{A:{"8":"J D E xB","129":"F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","129":"I m J D E F A B C K L G M N O n o p q r s t"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","129":"I m J 4B","388":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","129":"qB HC wB IC JC"},H:{"1":"bC"},I:{"1":"H gC hC","129":"lB I cC dC eC fC wB"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"129":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS3 Media Queries"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mixblendmode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mixblendmode.js index d197e2f2eefd48..5c99310f7851ce 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mixblendmode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-mixblendmode.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w uB vB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t","194":"0 1 2 3 4 5 u v w x y z"},E:{"2":"H j I D zB mB 0B 1B","260":"E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t 8B 9B AC BC gB qB CC hB"},G:{"2":"mB DC rB EC FC GC","260":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Blending of HTML/SVG elements"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w","194":"0 1 2 3 4 5 6 7 8 x y z"},E:{"2":"I m J D 3B qB 4B 5B","260":"E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w CC DC EC FC iB vB GC jB"},G:{"2":"qB HC wB IC JC KC","260":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Blending of HTML/SVG elements"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-motion-paths.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-motion-paths.js index 8a37840394bdcd..daca490d4af52e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-motion-paths.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-motion-paths.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB uB vB"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","194":"8 9 AB"},E:{"1":"7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u 8B 9B AC BC gB qB CC hB","194":"v w x"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"CSS Motion Path"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB zB 0B"},D:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB","194":"BB CB DB"},E:{"1":"kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x CC DC EC FC iB vB GC jB","194":"0 y z"},G:{"1":"kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"CSS Motion Path"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-namespaces.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-namespaces.js index 0bd55a200ed70e..43b4a90c3ac494 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-namespaces.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-namespaces.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS namespaces"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS namespaces"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nesting.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nesting.js index 90a287b96b338c..29ef60e5f3b036 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nesting.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nesting.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Nesting"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Nesting"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-not-sel-list.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-not-sel-list.js index 96122bd3e0d87d..98b92f62728187 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-not-sel-list.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-not-sel-list.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"Z a b c d e f g h i S T","2":"C J K G L M N P Q R V W X Y","16":"O"},C:{"1":"V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R uB vB"},D:{"1":"Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"oC pC","2":"H fC gC hC iC jC nB kC lC mC nC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"selector list argument of :not()"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"Z a b c d e f g h i j k l H X","2":"C K L G M N O Q R S T U V W","16":"P"},C:{"1":"T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S zB 0B"},D:{"1":"Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"sC kB tC","2":"I jC kC lC mC nC rB oC pC qC rC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"selector list argument of :not()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nth-child-of.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nth-child-of.js index daa3a7ff650e1d..f5bd6695eb441a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nth-child-of.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-nth-child-of.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-opacity.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-opacity.js index 5f92a96782fb7e..22000e6af54368 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-opacity.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-opacity.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","4":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS3 Opacity"}; +module.exports={A:{A:{"1":"F A B","4":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS3 Opacity"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-optional-pseudo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-optional-pseudo.js index 221861bed67b78..840f7a55f35a5f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-optional-pseudo.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F 8B","132":"B C 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"132":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"U","132":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:7,C:":optional CSS pseudo-class"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F CC","132":"B C DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"132":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"Y","132":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:7,C:":optional CSS pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-anchor.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-anchor.js index 3952dd3d9fc945..78fc0f4ecccc10 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-anchor.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB uB vB"},D:{"1":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB zB 0B"},D:{"1":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-overlay.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-overlay.js index f59d3387235337..b101bf179caaa3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow-overlay.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"H j I D E F A B 0B 1B 2B 3B nB gB","16":"zB mB","130":"C J K G hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC","16":"mB","130":"OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:7,C:"CSS overflow: overlay"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"I m J D E F A B 4B 5B 6B 7B rB iB","16":"3B qB","130":"C K L G jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC","16":"qB","130":"SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:7,C:"CSS overflow: overlay"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow.js index 87567567a5c9ca..e8386e50740a2e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overflow.js @@ -1 +1 @@ -module.exports={A:{A:{"388":"I D E F A B sB"},B:{"1":"b c d e f g h i S T","260":"O P Q R V W X Y Z a","388":"C J K G L M N"},C:{"1":"Q lB R V W X Y Z a b c d e f g h i S T fB","260":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P","388":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB uB vB"},D:{"1":"b c d e f g h i S T fB wB xB yB","260":"UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a","388":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB"},E:{"1":"7B","260":"K G 4B 5B 6B oB pB","388":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB"},F:{"260":"KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","388":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB 8B 9B AC BC gB qB CC hB"},G:{"260":"TC UC VC WC oB pB","388":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC"},H:{"388":"XC"},I:{"1":"T","388":"iB H YC ZC aC bC rB cC dC"},J:{"388":"D A"},K:{"1":"U","388":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"388":"A B"},O:{"388":"eC"},P:{"1":"oC pC","388":"H fC gC hC iC jC nB kC lC mC nC"},Q:{"388":"qC"},R:{"388":"rC"},S:{"388":"sC"}},B:5,C:"CSS overflow property"}; +module.exports={A:{A:{"388":"J D E F A B xB"},B:{"1":"b c d e f g h i j k l H X","260":"P Q R S T U V W Z a","388":"C K L G M N O"},C:{"1":"R oB S T U V W Z a b c d e f g h i j k l H X pB","260":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q","388":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB zB 0B"},D:{"1":"b c d e f g h i j k l H X pB 1B 2B","260":"XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a","388":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB"},E:{"1":"BC","260":"L G 8B 9B AC sB tB uB kB","388":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB"},F:{"260":"NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","388":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB CC DC EC FC iB vB GC jB"},G:{"260":"XC YC ZC aC sB tB uB kB","388":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC"},H:{"388":"bC"},I:{"1":"H","388":"lB I cC dC eC fC wB gC hC"},J:{"388":"D A"},K:{"1":"Y","388":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"388":"A B"},O:{"388":"iC"},P:{"1":"sC kB tC","388":"I jC kC lC mC nC rB oC pC qC rC"},Q:{"388":"uC"},R:{"388":"vC"},S:{"388":"wC"}},B:5,C:"CSS overflow property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js index f45a82568dd142..0eeeeca3e70b47 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","132":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","132":"C J K G L M","516":"N"},C:{"1":"jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB uB vB"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB","260":"QB U"},E:{"1":"7B","2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B","1090":"G 5B 6B oB pB"},F:{"1":"HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB 8B 9B AC BC gB qB CC hB","260":"FB GB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC","1090":"VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"2":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"CSS overscroll-behavior"}; +module.exports={A:{A:{"2":"J D E F xB","132":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","132":"C K L G M N","516":"O"},C:{"1":"mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB zB 0B"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB","260":"TB Y"},E:{"1":"kB BC","2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B","1090":"G 9B AC sB tB uB"},F:{"1":"KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB CC DC EC FC iB vB GC jB","260":"IB JB"},G:{"1":"kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC","1090":"ZC aC sB tB uB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"2":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS overscroll-behavior"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-page-break.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-page-break.js index f401fad92c78f3..9eeb0eea05d242 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-page-break.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-page-break.js @@ -1 +1 @@ -module.exports={A:{A:{"388":"A B","900":"I D E F sB"},B:{"388":"C J K G L M N","900":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"772":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","900":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U uB vB"},D:{"900":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"772":"A","900":"H j I D E F B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"16":"F 8B","129":"B C 9B AC BC gB qB CC hB","900":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"900":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"129":"XC"},I:{"900":"iB H T YC ZC aC bC rB cC dC"},J:{"900":"D A"},K:{"129":"A B C gB qB hB","900":"U"},L:{"900":"fB"},M:{"900":"S"},N:{"388":"A B"},O:{"900":"eC"},P:{"900":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"900":"qC"},R:{"900":"rC"},S:{"900":"sC"}},B:2,C:"CSS page-break properties"}; +module.exports={A:{A:{"388":"A B","900":"J D E F xB"},B:{"388":"C K L G M N O","900":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"772":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","900":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y zB 0B"},D:{"900":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"772":"A","900":"I m J D E F B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"16":"F CC","129":"B C DC EC FC iB vB GC jB","900":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"900":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"129":"bC"},I:{"900":"lB I H cC dC eC fC wB gC hC"},J:{"900":"D A"},K:{"129":"A B C iB vB jB","900":"Y"},L:{"900":"X"},M:{"900":"H"},N:{"388":"A B"},O:{"900":"iC"},P:{"900":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"900":"uC"},R:{"900":"vC"},S:{"900":"wC"}},B:2,C:"CSS page-break properties"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paged-media.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paged-media.js index a32b052308e652..bf7c8427ff49a1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paged-media.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paged-media.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D sB","132":"E F A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","132":"C J K G L M N"},C:{"2":"tB iB H j I D E F A B C J K G L M N uB vB","132":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","132":"F B C 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"16":"XC"},I:{"16":"iB H T YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"16":"A B C U gB qB hB"},L:{"1":"fB"},M:{"132":"S"},N:{"258":"A B"},O:{"258":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"132":"sC"}},B:5,C:"CSS Paged Media (@page)"}; +module.exports={A:{A:{"2":"J D xB","132":"E F A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","132":"C K L G M N O"},C:{"2":"yB lB I m J D E F A B C K L G M N O zB 0B","132":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","132":"F B C CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"16":"bC"},I:{"16":"lB I H cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"16":"A B C Y iB vB jB"},L:{"1":"X"},M:{"132":"H"},N:{"258":"A B"},O:{"258":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"132":"wC"}},B:5,C:"CSS Paged Media (@page)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paint-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paint-api.js index d897ea04137c92..7367f2ee2f24d1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paint-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-paint-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U"},E:{"2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB","194":"J K G hB 4B 5B 6B oB pB 7B"},F:{"1":"HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Paint API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y"},E:{"2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB","194":"K L G jB 8B 9B AC sB tB uB kB BC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Paint API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder-shown.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder-shown.js index 40074e6b7eae9b..a37410ec3c28f2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder-shown.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","292":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","164":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x y 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"164":"sC"}},B:5,C:":placeholder-shown CSS pseudo-class"}; +module.exports={A:{A:{"2":"J D E F xB","292":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","164":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"164":"wC"}},B:5,C:":placeholder-shown CSS pseudo-class"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder.js index 52c263b5a886ae..e8c8f5161913a3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-placeholder.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","36":"C J K G L M N"},C:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N uB vB","33":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},D:{"1":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","36":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","36":"j I D E F A 0B 1B 2B 3B"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","36":"0 1 2 3 4 5 6 7 8 G L M N k l m n o p q r s t u v w x y z"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC","36":"E rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","36":"iB H YC ZC aC bC rB cC dC"},J:{"36":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"36":"A B"},O:{"1":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","36":"H fC gC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"33":"sC"}},B:5,C:"::placeholder CSS pseudo-element"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","36":"C K L G M N O"},C:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O zB 0B","33":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},D:{"1":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","36":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","36":"m J D E F A 4B 5B 6B 7B"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","36":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC","36":"E wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","36":"lB I cC dC eC fC wB gC hC"},J:{"36":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"36":"A B"},O:{"1":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","36":"I jC kC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"33":"wC"}},B:5,C:"::placeholder CSS pseudo-element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-print-color-adjust.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-print-color-adjust.js new file mode 100644 index 00000000000000..827282675e78f2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-print-color-adjust.js @@ -0,0 +1 @@ +module.exports={A:{D:{"2":"I m J D E F A B C K L G M","33":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},L:{"33":"X"},B:{"2":"C K L G M N O","33":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB zB 0B","33":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h"},M:{"1":"H"},A:{"2":"J D E F A B xB"},F:{"2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},K:{"2":"A B C iB vB jB","33":"Y"},E:{"1":"tB uB kB","2":"I m 3B qB 4B BC","33":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB"},G:{"1":"tB uB kB","2":"qB HC wB IC","33":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},P:{"33":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},I:{"2":"lB I cC dC eC fC wB","33":"H gC hC"}},B:6,C:"print-color-adjust property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-read-only-write.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-read-only-write.js index 3411bdf66d9233..9f70ad762ca9bf 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-read-only-write.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-read-only-write.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C"},C:{"1":"eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","16":"tB","33":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB uB vB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K","132":"0 G L M N k l m n o p q r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB mB","132":"H j I D E 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F B 8B 9B AC BC gB","132":"C G L M N k l m n qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC","132":"E rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","16":"YC ZC","132":"iB H aC bC rB cC dC"},J:{"1":"A","132":"D"},K:{"1":"U","2":"A B gB","132":"C qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"33":"sC"}},B:1,C:"CSS :read-only and :read-write selectors"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C"},C:{"1":"hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","16":"yB","33":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB zB 0B"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L","132":"0 1 2 3 G M N O n o p q r s t u v w x y z"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B qB","132":"I m J D E 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F B CC DC EC FC iB","132":"C G M N O n o p q vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC","132":"E wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","16":"cC dC","132":"lB I eC fC wB gC hC"},J:{"1":"A","132":"D"},K:{"1":"Y","2":"A B iB","132":"C vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"33":"wC"}},B:1,C:"CSS :read-only and :read-write selectors"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rebeccapurple.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rebeccapurple.js index e5f06083270f59..293c624d584262 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rebeccapurple.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","132":"B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x uB vB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B","16":"1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p 8B 9B AC BC gB qB CC hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Rebeccapurple color"}; +module.exports={A:{A:{"2":"J D E F A xB","132":"B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B","16":"5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s CC DC EC FC iB vB GC jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Rebeccapurple color"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-reflections.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-reflections.js index ef6e1e5caca50d..9690a83ae66407 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-reflections.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-reflections.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","33":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"zB mB","33":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"33":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"33":"iB H T YC ZC aC bC rB cC dC"},J:{"33":"D A"},K:{"2":"A B C gB qB hB","33":"U"},L:{"33":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"33":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"33":"qC"},R:{"33":"rC"},S:{"2":"sC"}},B:7,C:"CSS Reflections"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","33":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"3B qB","33":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"33":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"33":"lB I H cC dC eC fC wB gC hC"},J:{"33":"D A"},K:{"2":"A B C iB vB jB","33":"Y"},L:{"33":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"33":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"33":"uC"},R:{"33":"vC"},S:{"2":"wC"}},B:7,C:"CSS Reflections"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-regions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-regions.js index 1ec70a0faa4c30..80582bbf95dd6f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-regions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-regions.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","420":"A B"},B:{"2":"O P Q R V W X Y Z a b c d e f g h i S T","420":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","36":"G L M N","66":"k l m n o p q r s t u v w x y z"},E:{"2":"H j I C J K G zB mB 0B gB hB 4B 5B 6B oB pB 7B","33":"D E F A B 1B 2B 3B nB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"mB DC rB EC FC NC OC PC QC RC SC TC UC VC WC oB pB","33":"E GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"420":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Regions"}; +module.exports={A:{A:{"2":"J D E F xB","420":"A B"},B:{"2":"P Q R S T U V W Z a b c d e f g h i j k l H X","420":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"3 4 5 6 7 8 9 I m J D E F A B C K L AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","36":"G M N O","66":"0 1 2 n o p q r s t u v w x y z"},E:{"2":"I m J C K L G 3B qB 4B iB jB 8B 9B AC sB tB uB kB BC","33":"D E F A B 5B 6B 7B rB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"qB HC wB IC JC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","33":"E KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"420":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Regions"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-repeating-gradients.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-repeating-gradients.js index a91e982c8519f1..32807639516061 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-repeating-gradients.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB","33":"H j I D E F A B C J K G vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F","33":"A B C J K G L M N k l m n o p q"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB","33":"I 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC","33":"C CC","36":"gB qB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB","33":"EC FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB YC ZC aC","33":"H bC rB"},J:{"1":"A","2":"D"},K:{"1":"U hB","2":"A B","33":"C","36":"gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS Repeating Gradients"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB","33":"I m J D E F A B C K L G 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F","33":"A B C K L G M N O n o p q r s t"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB","33":"J 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC","33":"C GC","36":"iB vB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB","33":"IC JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB cC dC eC","33":"I fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y jB","2":"A B","33":"C","36":"iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS Repeating Gradients"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-resize.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-resize.js index 84db5d1416ea09..c24a0dbd51ca8b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-resize.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-resize.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","33":"H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC","132":"hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:4,C:"CSS resize property"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","33":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC","132":"jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:4,C:"CSS resize property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-revert-value.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-revert-value.js index 5c8de3c3d44336..e1dc9dfbdafd9c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-revert-value.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-revert-value.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"V W X Y Z a b c d e f g h i S T","2":"C J K G L M N O P Q R"},C:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB uB vB"},D:{"1":"V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B"},F:{"1":"ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB 8B 9B AC BC gB qB CC hB"},G:{"1":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nC oC pC","2":"H fC gC hC iC jC nB kC lC mC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS revert value"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O P Q R S"},C:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB zB 0B"},D:{"1":"T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B"},F:{"1":"cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB CC DC EC FC iB vB GC jB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rC sC kB tC","2":"I jC kC lC mC nC rB oC pC qC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS revert value"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rrggbbaa.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rrggbbaa.js index 9a6dbbfbfeb5e4..992b7c706c0625 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-rrggbbaa.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB uB vB"},D:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","194":"HB IB JB KB LB MB NB jB OB kB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","194":"4 5 6 7 8 9 AB BB CB DB EB FB GB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H","194":"fC gC hC"},Q:{"2":"qC"},R:{"194":"rC"},S:{"2":"sC"}},B:7,C:"#rrggbbaa hex color notation"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB zB 0B"},D:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","194":"KB LB MB NB OB PB QB mB RB nB"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","194":"7 8 9 AB BB CB DB EB FB GB HB IB JB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I","194":"jC kC lC"},Q:{"2":"uC"},R:{"194":"vC"},S:{"2":"wC"}},B:7,C:"#rrggbbaa hex color notation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-behavior.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-behavior.js index a42d976dcb4b86..edb83e0ae3ea30 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-behavior.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","129":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"2":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","129":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","450":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB"},E:{"1":"pB 7B","2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB 4B","578":"K G 5B 6B oB"},F:{"2":"F B C G L M N k l m n o p q r s 8B 9B AC BC gB qB CC hB","129":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","450":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB"},G:{"1":"pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC","578":"VC WC oB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"129":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"129":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSSOM Scroll-behavior"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","129":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","129":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","450":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB"},E:{"1":"tB uB kB BC","2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB 8B","578":"L G 9B AC sB"},F:{"2":"F B C G M N O n o p q r s t u v CC DC EC FC iB vB GC jB","129":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","450":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB"},G:{"1":"tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC","578":"ZC aC sB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"129":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"129":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Scroll-behavior"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-timeline.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-timeline.js index a2cf3ec0e83f18..92801b28d362fc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-timeline.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scroll-timeline.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a","194":"b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V","194":"Z a b c d e f g h i S T fB wB xB yB","322":"W X Y"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB 8B 9B AC BC gB qB CC hB","194":"bB cB dB eB O P Q lB R","322":"ZB aB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"CSS @scroll-timeline"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a","194":"b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T","194":"Z a b c d e f g h i j k l H X pB 1B 2B","322":"U V W"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB CC DC EC FC iB vB GC jB","194":"eB fB gB hB P Q R oB S T U V W","322":"cB dB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"CSS @scroll-timeline"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scrollbar.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scrollbar.js index bb303d6f9cfa58..5411c3200b71fc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scrollbar.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-scrollbar.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"I D E F A B sB"},B:{"2":"C J K G L M N","292":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB uB vB","3074":"QB","4100":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"292":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"16":"H j zB mB","292":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","292":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"UC VC WC oB pB","16":"mB DC rB EC FC","292":"GC","804":"E HC IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"XC"},I:{"16":"YC ZC","292":"iB H T aC bC rB cC dC"},J:{"292":"D A"},K:{"2":"A B C gB qB hB","292":"U"},L:{"292":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"292":"eC"},P:{"292":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"292":"qC"},R:{"292":"rC"},S:{"2":"sC"}},B:7,C:"CSS scrollbar styling"}; +module.exports={A:{A:{"132":"J D E F A B xB"},B:{"2":"C K L G M N O","292":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB zB 0B","3074":"TB","4100":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"292":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"16":"I m 3B qB","292":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","292":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"YC ZC aC sB tB uB kB","16":"qB HC wB IC JC","292":"KC","804":"E LC MC NC OC PC QC RC SC TC UC VC WC XC"},H:{"2":"bC"},I:{"16":"cC dC","292":"lB I H eC fC wB gC hC"},J:{"292":"D A"},K:{"2":"A B C iB vB jB","292":"Y"},L:{"292":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"292":"iC"},P:{"292":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"292":"uC"},R:{"292":"vC"},S:{"2":"wC"}},B:7,C:"CSS scrollbar styling"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel2.js index 7c68a67425a1d2..6603e9edfde0b2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel2.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"D E F A B","2":"sB","8":"I"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS 2.1 selectors"}; +module.exports={A:{A:{"1":"D E F A B","2":"xB","8":"J"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS 2.1 selectors"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel3.js index 7de00b06dcf7c0..2adddff5dac296 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sel3.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"sB","8":"I","132":"D E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS3 selectors"}; +module.exports={A:{A:{"1":"F A B","2":"xB","8":"J","132":"D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS3 selectors"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-selection.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-selection.js index dfee419412b6f8..a512cf7eb49d42 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-selection.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-selection.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","33":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"C U qB hB","16":"A B gB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"33":"sC"}},B:5,C:"::selection CSS pseudo-element"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","33":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"C Y vB jB","16":"A B iB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"33":"wC"}},B:5,C:"::selection CSS pseudo-element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-shapes.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-shapes.js index aa501f909254b5..58f6d1ad3858ef 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-shapes.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-shapes.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB uB vB","322":"GB HB IB JB KB LB MB NB jB OB kB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y","194":"0 1 z"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B","33":"E F A 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC","33":"E HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:4,C:"CSS Shapes Level 1"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB zB 0B","322":"JB KB LB MB NB OB PB QB mB RB nB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","194":"2 3 4"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B","33":"E F A 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC","33":"E LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:4,C:"CSS Shapes Level 1"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-snappoints.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-snappoints.js index b57ef41ec4d0c4..e8b0aedea1d58a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-snappoints.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-snappoints.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","6308":"A","6436":"B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","6436":"C J K G L M N"},C:{"1":"UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","2052":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB","8258":"SB TB UB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B","3108":"F A 3B nB"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB 8B 9B AC BC gB qB CC hB","8258":"JB KB LB MB NB OB PB QB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC","3108":"IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nB kC lC mC nC oC pC","2":"H fC gC hC iC jC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2052":"sC"}},B:4,C:"CSS Scroll Snap"}; +module.exports={A:{A:{"2":"J D E F xB","6308":"A","6436":"B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","6436":"C K L G M N O"},C:{"1":"XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","2052":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB"},D:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB","8258":"VB WB XB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B","3108":"F A 7B rB"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB CC DC EC FC iB vB GC jB","8258":"MB NB OB PB QB RB SB TB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC","3108":"MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rB oC pC qC rC sC kB tC","2":"I jC kC lC mC nC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2052":"wC"}},B:4,C:"CSS Scroll Snap"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sticky.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sticky.js index 291b59f234fe72..773df5bd0ed1d2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sticky.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-sticky.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"c d e f g h i S T","2":"C J K G","1028":"O P Q R V W X Y Z a b","4100":"L M N"},C:{"1":"jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q uB vB","194":"r s t u v w","516":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},D:{"1":"c d e f g h i S T fB wB xB yB","2":"2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n AB BB CB DB EB FB GB","322":"0 1 o p q r s t u v w x y z HB IB JB KB","1028":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B","33":"E F A B C 2B 3B nB gB hB","2084":"D 1B"},F:{"1":"eB O P Q lB R","2":"0 1 2 3 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","322":"4 5 6","1028":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB"},G:{"1":"QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC","33":"E HC IC JC KC LC MC NC OC PC","2084":"FC GC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1028":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H fC"},Q:{"1028":"qC"},R:{"2":"rC"},S:{"516":"sC"}},B:5,C:"CSS position:sticky"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"c d e f g h i j k l H X","2":"C K L G","1028":"P Q R S T U V W Z a b","4100":"M N O"},C:{"1":"mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t zB 0B","194":"u v w x y z","516":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},D:{"1":"c d e f g h i j k l H X pB 1B 2B","2":"5 6 7 8 9 I m J D E F A B C K L G M N O n o p q AB BB CB DB EB FB GB HB IB JB","322":"0 1 2 3 4 r s t u v w x y z KB LB MB NB","1028":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B","33":"E F A B C 6B 7B rB iB jB","2084":"D 5B"},F:{"1":"hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","322":"7 8 9","1028":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB"},G:{"1":"UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC","33":"E LC MC NC OC PC QC RC SC TC","2084":"JC KC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1028":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I jC"},Q:{"1028":"uC"},R:{"2":"vC"},S:{"516":"wC"}},B:5,C:"CSS position:sticky"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-subgrid.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-subgrid.js index 284e4dd28b1b05..8817a539f56426 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-subgrid.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-subgrid.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Subgrid"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Subgrid"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-supports-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-supports-api.js index 7ae193980a54f4..2875af5fb3164b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-supports-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-supports-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K G L M N"},C:{"1":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k uB vB","66":"l m","260":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},D:{"1":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s","260":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC","132":"hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"132":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB","132":"hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS.supports() API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L G M N O"},C:{"1":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n zB 0B","66":"o p","260":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB"},D:{"1":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v","260":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC","132":"jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"132":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB","132":"jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS.supports() API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-table.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-table.js index 1b0a365f076e84..ee342db159b09f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-table.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-table.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"I D sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","132":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS Table display"}; +module.exports={A:{A:{"1":"E F A B","2":"J D xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","132":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS Table display"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-align-last.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-align-last.js index 4e4b0d113d37cd..6f2093977117e1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-align-last.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-align-last.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","4":"C J K G L M N"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B uB vB","33":"0 1 2 3 4 5 6 7 8 9 C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","322":"0 1 2 3 4 5 6 7 8 9 AB BB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m 8B 9B AC BC gB qB CC hB","578":"n o p q r s t u v w x y"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"1":"rC"},S:{"33":"sC"}},B:5,C:"CSS3 text-align-last"}; +module.exports={A:{A:{"132":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","4":"C K L G M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B zB 0B","33":"0 1 2 3 4 5 6 7 8 9 C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","322":"3 4 5 6 7 8 9 AB BB CB DB EB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p CC DC EC FC iB vB GC jB","578":"0 1 q r s t u v w x y z"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"1":"vC"},S:{"33":"wC"}},B:5,C:"CSS3 text-align-last"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-indent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-indent.js index eb28596a7d69fa..eced6aa2e59fdd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-indent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-indent.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"I D E F A B sB"},B:{"132":"C J K G L M N","388":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"132":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"132":"0 1 2 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","388":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"132":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"132":"F B C G L M N k l m n o p 8B 9B AC BC gB qB CC hB","388":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"132":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"132":"XC"},I:{"132":"iB H YC ZC aC bC rB cC dC","388":"T"},J:{"132":"D A"},K:{"132":"A B C gB qB hB","388":"U"},L:{"388":"fB"},M:{"132":"S"},N:{"132":"A B"},O:{"132":"eC"},P:{"132":"H","388":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"388":"qC"},R:{"388":"rC"},S:{"132":"sC"}},B:5,C:"CSS text-indent"}; +module.exports={A:{A:{"132":"J D E F A B xB"},B:{"132":"C K L G M N O","388":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"132":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"132":"0 1 2 3 4 5 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","388":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"132":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"132":"F B C G M N O n o p q r s CC DC EC FC iB vB GC jB","388":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"132":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"132":"bC"},I:{"132":"lB I cC dC eC fC wB gC hC","388":"H"},J:{"132":"D A"},K:{"132":"A B C iB vB jB","388":"Y"},L:{"388":"X"},M:{"132":"H"},N:{"132":"A B"},O:{"132":"iC"},P:{"132":"I","388":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"388":"uC"},R:{"388":"vC"},S:{"132":"wC"}},B:5,C:"CSS text-indent"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-justify.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-justify.js index 6e3bb1e6b972f9..4184b7b38a9a59 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-justify.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-justify.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"I D sB","132":"E F A B"},B:{"132":"C J K G L M N","322":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB uB vB","1025":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","1602":"JB"},D:{"2":"0 1 2 3 4 5 6 7 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","322":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C G L M N k l m n o p q r s t u 8B 9B AC BC gB qB CC hB","322":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","322":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","322":"U"},L:{"322":"fB"},M:{"1025":"S"},N:{"132":"A B"},O:{"2":"eC"},P:{"2":"H","322":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"322":"qC"},R:{"322":"rC"},S:{"2":"sC"}},B:5,C:"CSS text-justify"}; +module.exports={A:{A:{"16":"J D xB","132":"E F A B"},B:{"132":"C K L G M N O","322":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB zB 0B","1025":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","1602":"MB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB","322":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C G M N O n o p q r s t u v w x CC DC EC FC iB vB GC jB","322":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","322":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","322":"Y"},L:{"322":"X"},M:{"1025":"H"},N:{"132":"A B"},O:{"2":"iC"},P:{"2":"I","322":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"322":"uC"},R:{"322":"vC"},S:{"2":"wC"}},B:5,C:"CSS text-justify"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-orientation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-orientation.js index e5a6e5bab7d340..3b299de4c59f71 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-orientation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-orientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","194":"3 4 5"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB"},E:{"1":"K G 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B","16":"A","33":"B C J nB gB hB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS text-orientation"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","194":"6 7 8"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"1":"L G 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B","16":"A","33":"B C K rB iB jB 8B"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS text-orientation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-spacing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-spacing.js index 706bf67f12f5e4..8b6a9a94696fdb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-spacing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-text-spacing.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D sB","161":"E F A B"},B:{"2":"O P Q R V W X Y Z a b c d e f g h i S T","161":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"16":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS Text 4 text-spacing"}; +module.exports={A:{A:{"2":"J D xB","161":"E F A B"},B:{"2":"P Q R S T U V W Z a b c d e f g h i j k l H X","161":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"16":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS Text 4 text-spacing"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-textshadow.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-textshadow.js index 8882d697e5ece9..797554e5b1e4b7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-textshadow.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-textshadow.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","129":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","129":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","260":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"4":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"A","4":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"129":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS3 Text-shadow"}; +module.exports={A:{A:{"2":"J D E F xB","129":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","129":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","260":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"4":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"A","4":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"129":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS3 Text-shadow"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action-2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action-2.js index 650b0ff37313b3..bb28187a9d90c1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action-2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action-2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","132":"B","164":"A"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","132":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","260":"KB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","260":"7"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"132":"B","164":"A"},O:{"2":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","16":"H"},Q:{"2":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"CSS touch-action level 2 values"}; +module.exports={A:{A:{"2":"J D E F xB","132":"B","164":"A"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","132":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","260":"NB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","260":"AB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"132":"B","164":"A"},O:{"2":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","16":"I"},Q:{"2":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"CSS touch-action level 2 values"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action.js index 13d8fab3701a4c..827b8b9881cf10 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-touch-action.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F sB","289":"A"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB","194":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB","1025":"HB IB JB KB LB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n 8B 9B AC BC gB qB CC hB"},G:{"1":"QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC","516":"JC KC LC MC NC OC PC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","289":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"194":"sC"}},B:2,C:"CSS touch-action property"}; +module.exports={A:{A:{"1":"B","2":"J D E F xB","289":"A"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B","194":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB","1025":"KB LB MB NB OB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q CC DC EC FC iB vB GC jB"},G:{"1":"UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC","516":"NC OC PC QC RC SC TC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","289":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"194":"wC"}},B:2,C:"CSS touch-action property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-transitions.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-transitions.js index 556813dce18d24..f5e6f60ae3cc08 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-transitions.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-transitions.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","33":"j I D E F A B C J K G","164":"H"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"H j I D E F A B C J K G L M N k l m n o p q"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","33":"I 0B","164":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F 8B 9B","33":"C","164":"B AC BC gB qB CC"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","33":"FC","164":"mB DC rB EC"},H:{"2":"XC"},I:{"1":"T cC dC","33":"iB H YC ZC aC bC rB"},J:{"1":"A","33":"D"},K:{"1":"U hB","33":"C","164":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"CSS3 Transitions"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","33":"m J D E F A B C K L G","164":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"I m J D E F A B C K L G M N O n o p q r s t"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","33":"J 4B","164":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F CC DC","33":"C","164":"B EC FC iB vB GC"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","33":"JC","164":"qB HC wB IC"},H:{"2":"bC"},I:{"1":"H gC hC","33":"lB I cC dC eC fC wB"},J:{"1":"A","33":"D"},K:{"1":"Y jB","33":"C","164":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"CSS3 Transitions"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unicode-bidi.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unicode-bidi.js index 8d2c99119258e5..7f48a939c7c8df 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unicode-bidi.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","132":"C J K G L M N"},C:{"1":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","33":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB EB","132":"tB iB H j I D E F uB vB","292":"A B C J K G L"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j I D E F A B C J K G L","548":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB"},E:{"132":"H j I D E zB mB 0B 1B 2B","548":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"132":"E mB DC rB EC FC GC HC","548":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"16":"XC"},I:{"1":"T","16":"iB H YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"1":"U","16":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"16":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","16":"H"},Q:{"16":"qC"},R:{"16":"rC"},S:{"33":"sC"}},B:4,C:"CSS unicode-bidi property"}; +module.exports={A:{A:{"132":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","132":"C K L G M N O"},C:{"1":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","33":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","132":"yB lB I m J D E F zB 0B","292":"A B C K L G M"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m J D E F A B C K L G M","548":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"132":"I m J D E 3B qB 4B 5B 6B","548":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"132":"E qB HC wB IC JC KC LC","548":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"16":"bC"},I:{"1":"H","16":"lB I cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"1":"Y","16":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"16":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","16":"I"},Q:{"16":"uC"},R:{"16":"vC"},S:{"33":"wC"}},B:4,C:"CSS unicode-bidi property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unset-value.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unset-value.js index 21ca9ac1e86d65..a748d1d1433218 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unset-value.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-unset-value.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r uB vB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s 8B 9B AC BC gB qB CC hB"},G:{"1":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS unset value"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u zB 0B"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v CC DC EC FC iB vB GC jB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS unset value"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-variables.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-variables.js index a4defbb541500a..b6676afea4411c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-variables.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-variables.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K","260":"G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v uB vB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB","194":"DB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B","260":"3B"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","194":"0"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC","260":"JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:4,C:"CSS Variables (Custom Properties)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L","260":"G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y zB 0B"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB","194":"GB"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B","260":"7B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","194":"3"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC","260":"NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:4,C:"CSS Variables (Custom Properties)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-when-else.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-when-else.js index acda351f2323a0..019e903fa862af 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-when-else.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-when-else.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"CSS @when / @else conditional rules"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"CSS @when / @else conditional rules"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-widows-orphans.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-widows-orphans.js index 8e24ab1576d93c..6d368a2b11cc31 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-widows-orphans.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-widows-orphans.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D sB","129":"E F"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","129":"F B 8B 9B AC BC gB qB CC"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U hB","2":"A B C gB qB"},L:{"1":"fB"},M:{"2":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:2,C:"CSS widows & orphans"}; +module.exports={A:{A:{"1":"A B","2":"J D xB","129":"E F"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","129":"F B CC DC EC FC iB vB GC"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y jB","2":"A B C iB vB"},L:{"1":"X"},M:{"2":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:2,C:"CSS widows & orphans"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-width-stretch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-width-stretch.js index d1d287f4c0055b..b045e30869178b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-width-stretch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-width-stretch.js @@ -1 +1 @@ -module.exports={A:{D:{"2":"H j I D E F A B C J K G L M N k l m","33":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},L:{"33":"fB"},B:{"2":"C J K G L M N","33":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB","33":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},M:{"33":"S"},A:{"2":"I D E F A B sB"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},K:{"2":"A B C gB qB hB","33":"U"},E:{"2":"H j I zB mB 0B 1B 7B","33":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB"},G:{"2":"mB DC rB EC FC","33":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},P:{"2":"H","33":"fC gC hC iC jC nB kC lC mC nC oC pC"},I:{"2":"iB H YC ZC aC bC rB","33":"T cC dC"}},B:6,C:"width: stretch property"}; +module.exports={A:{D:{"2":"I m J D E F A B C K L G M N O n o p","33":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},L:{"33":"X"},B:{"2":"C K L G M N O","33":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB","33":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},M:{"33":"H"},A:{"2":"J D E F A B xB"},F:{"2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},K:{"2":"A B C iB vB jB","33":"Y"},E:{"2":"I m J 3B qB 4B 5B BC","33":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB"},G:{"2":"qB HC wB IC JC","33":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},P:{"2":"I","33":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},I:{"2":"lB I cC dC eC fC wB","33":"H gC hC"}},B:6,C:"width: stretch property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-writing-mode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-writing-mode.js index 6e63bdf00ed07b..59f783c781ef71 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-writing-mode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-writing-mode.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","322":"1 2 3 4 5"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I","16":"D","33":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","16":"j","33":"I D E F A 0B 1B 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"G L M N k l m n o p q r s t u v w x y z"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB","33":"E EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"YC ZC aC","33":"iB H bC rB cC dC"},J:{"33":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"36":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","33":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS writing-mode property"}; +module.exports={A:{A:{"132":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","322":"4 5 6 7 8"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J","16":"D","33":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","16":"m","33":"J D E F A 4B 5B 6B 7B rB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 G M N O n o p q r s t u v w x y z"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB","33":"E IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"cC dC eC","33":"lB I fC wB gC hC"},J:{"33":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"36":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","33":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS writing-mode property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-zoom.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-zoom.js index eaa004b24a5b59..aedc2f86a46e2b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-zoom.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css-zoom.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D sB","129":"E F A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"129":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:7,C:"CSS zoom"}; +module.exports={A:{A:{"1":"J D xB","129":"E F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"129":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:7,C:"CSS zoom"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-attr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-attr.js index 6f063e4f560383..b2d42dda78cb95 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-attr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"CSS3 attr() function for all properties"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"CSS3 attr() function for all properties"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-boxsizing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-boxsizing.js index 6360f20d19f91e..94a40568d1f9ce 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-boxsizing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-boxsizing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","8":"I D sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","33":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"H j I D E F"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","33":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","33":"mB DC rB"},H:{"1":"XC"},I:{"1":"H T bC rB cC dC","33":"iB YC ZC aC"},J:{"1":"A","33":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"CSS3 Box-sizing"}; +module.exports={A:{A:{"1":"E F A B","8":"J D xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","33":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"I m J D E F"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","33":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","33":"qB HC wB"},H:{"1":"bC"},I:{"1":"I H fC wB gC hC","33":"lB cC dC eC"},J:{"1":"A","33":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"CSS3 Box-sizing"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-colors.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-colors.js index b075887563c8ef..7291a32debe8c7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-colors.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-colors.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","4":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 9B AC BC gB qB CC hB","2":"F","4":"8B"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS3 Colors"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","4":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W DC EC FC iB vB GC jB","2":"F","4":"CC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS3 Colors"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-grab.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-grab.js index a276f83bcc9796..7c59c424d175b9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-grab.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","33":"tB iB H j I D E F A B C J K G L M N k l m n o p q r uB vB"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","33":"H j I D E F A zB mB 0B 1B 2B 3B nB"},F:{"1":"C KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F B 8B 9B AC BC gB qB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"33":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"33":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:3,C:"CSS grab & grabbing cursors"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","33":"yB lB I m J D E F A B C K L G M N O n o p q r s t u zB 0B"},D:{"1":"XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","33":"I m J D E F A 3B qB 4B 5B 6B 7B rB"},F:{"1":"C NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F B CC DC EC FC iB vB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"33":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"33":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:3,C:"CSS grab & grabbing cursors"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-newer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-newer.js index 39200425d93ca9..9fd7e981cdcda3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors-newer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","33":"tB iB H j I D E F A B C J K G L M N k l m n o uB vB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"0 1 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","33":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F B 8B 9B AC BC gB qB","33":"G L M N k l m n o"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"33":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"CSS3 Cursors: zoom-in & zoom-out"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","33":"yB lB I m J D E F A B C K L G M N O n o p q r zB 0B"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"0 1 2 3 4 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","33":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F B CC DC EC FC iB vB","33":"G M N O n o p q r"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"33":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"CSS3 Cursors: zoom-in & zoom-out"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors.js index 2aa042be9f8618..2e8fda8a1a82ff 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-cursors.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","132":"I D E sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","260":"C J"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","4":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","4":"H"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","4":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","260":"F B C 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D","16":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"CSS3 Cursors (original values)"}; +module.exports={A:{A:{"1":"F A B","132":"J D E xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","4":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","4":"I"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","4":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","260":"F B C CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D","16":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"CSS3 Cursors (original values)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-tabsize.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-tabsize.js index 0b4ee3985aa29d..6ec0b2494c9b3a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-tabsize.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/css3-tabsize.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"c d e f g h i S T fB","2":"tB iB uB vB","33":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b","164":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l","132":"0 1 2 3 4 5 6 m n o p q r s t u v w x y z"},E:{"1":"K G 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B","132":"D E F A B C J 1B 2B 3B nB gB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F 8B 9B AC","132":"G L M N k l m n o p q r s t","164":"B C BC gB qB CC hB"},G:{"1":"TC UC VC WC oB pB","2":"mB DC rB EC FC","132":"E GC HC IC JC KC LC MC NC OC PC QC RC SC"},H:{"164":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB","132":"cC dC"},J:{"132":"D A"},K:{"1":"U","2":"A","164":"B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"164":"sC"}},B:5,C:"CSS3 tab-size"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"c d e f g h i j k l H X pB","2":"yB lB zB 0B","33":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b","164":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o","132":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z"},E:{"1":"L G 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B","132":"D E F A B C K 5B 6B 7B rB iB jB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F CC DC EC","132":"G M N O n o p q r s t u v w","164":"B C FC iB vB GC jB"},G:{"1":"XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC","132":"E KC LC MC NC OC PC QC RC SC TC UC VC WC"},H:{"164":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB","132":"gC hC"},J:{"132":"D A"},K:{"1":"Y","2":"A","164":"B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"164":"wC"}},B:5,C:"CSS3 tab-size"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/currentcolor.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/currentcolor.js index 77784155c6e59f..6905ad1c1164d4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/currentcolor.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/currentcolor.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS currentColor value"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS currentColor value"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elements.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elements.js index 296023f77d41f3..8e0455d4678851 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elements.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elements.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","8":"A B"},B:{"1":"O","2":"P Q R V W X Y Z a b c d e f g h i S T","8":"C J K G L M N"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","66":"o p q r s t u","72":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O","2":"H j I D E F A B C J K G L M N k l m n o p q r P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","66":"s t u v w x"},E:{"2":"H j zB mB 0B","8":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB","2":"F B C TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","66":"G L M N k"},G:{"2":"mB DC rB EC FC","8":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"dC","2":"iB H T YC ZC aC bC rB cC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC","2":"mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"72":"sC"}},B:7,C:"Custom Elements (deprecated V0 spec)"}; +module.exports={A:{A:{"2":"J D E F xB","8":"A B"},B:{"1":"P","2":"Q R S T U V W Z a b c d e f g h i j k l H X","8":"C K L G M N O"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p q mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","66":"r s t u v w x","72":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P","2":"I m J D E F A B C K L G M N O n o p q r s t u Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","66":"0 v w x y z"},E:{"2":"I m 3B qB 4B","8":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB","2":"F B C WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","66":"G M N O n"},G:{"2":"qB HC wB IC JC","8":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"hC","2":"lB I H cC dC eC fC wB gC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC","2":"qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"72":"wC"}},B:7,C:"Custom Elements (deprecated V0 spec)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elementsv1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elementsv1.js index c3c5eb80a2cdd9..ba0c2d58270f05 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elementsv1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/custom-elementsv1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","8":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","8":"C J K G L M N"},C:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u uB vB","8":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB","456":"FB GB HB IB JB KB LB MB NB","712":"jB OB kB PB"},D:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","8":"HB IB","132":"JB KB LB MB NB jB OB kB PB QB U RB SB"},E:{"2":"H j I D zB mB 0B 1B 2B","8":"E F A 3B","132":"B C J K G nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","132":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC","132":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H","132":"fC"},Q:{"132":"qC"},R:{"132":"rC"},S:{"8":"sC"}},B:1,C:"Custom Elements (V1)"}; +module.exports={A:{A:{"2":"J D E F xB","8":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","8":"C K L G M N O"},C:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x zB 0B","8":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB","456":"IB JB KB LB MB NB OB PB QB","712":"mB RB nB SB"},D:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","8":"KB LB","132":"MB NB OB PB QB mB RB nB SB TB Y UB VB"},E:{"2":"I m J D 3B qB 4B 5B 6B","8":"E F A 7B","132":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","132":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC","132":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I","132":"jC"},Q:{"132":"uC"},R:{"132":"vC"},S:{"8":"wC"}},B:1,C:"Custom Elements (V1)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/customevent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/customevent.js index d082258e3a2f6c..232593ce18f870 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/customevent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/customevent.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","132":"F A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j uB vB","132":"I D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H","16":"j I D E J K","388":"F A B C"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","16":"j I","388":"0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F 8B 9B AC BC","132":"B gB qB"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"DC","16":"mB rB","388":"EC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"YC ZC aC","388":"iB H bC rB"},J:{"1":"A","388":"D"},K:{"1":"C U hB","2":"A","132":"B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"CustomEvent"}; +module.exports={A:{A:{"2":"J D E xB","132":"F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m zB 0B","132":"J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I","16":"m J D E K L","388":"F A B C"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","16":"m J","388":"4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F CC DC EC FC","132":"B iB vB"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"HC","16":"qB wB","388":"IC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"cC dC eC","388":"lB I fC wB"},J:{"1":"A","388":"D"},K:{"1":"C Y jB","2":"A","132":"B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"CustomEvent"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datalist.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datalist.js index 93442cda444d86..966831892d1092 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datalist.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datalist.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","8":"I D E F","260":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K G","1284":"L M N"},C:{"8":"tB iB uB vB","4612":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","8":"H j I D E F A B C J K G L M N k","132":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB"},E:{"1":"J K G hB 4B 5B 6B oB pB 7B","8":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB"},F:{"1":"F B C U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","132":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"8":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC","2049":"PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T dC","8":"iB H YC ZC aC bC rB cC"},J:{"1":"A","8":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"516":"S"},N:{"8":"A B"},O:{"8":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"132":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:1,C:"Datalist element"}; +module.exports={A:{A:{"2":"xB","8":"J D E F","260":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L G","1284":"M N O"},C:{"8":"yB lB zB 0B","4612":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","8":"I m J D E F A B C K L G M N O n","132":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB"},E:{"1":"K L G jB 8B 9B AC sB tB uB kB BC","8":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB"},F:{"1":"F B C Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","132":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"8":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC","2049":"TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H hC","8":"lB I cC dC eC fC wB gC"},J:{"1":"A","8":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"516":"H"},N:{"8":"A B"},O:{"8":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"132":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:1,C:"Datalist element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dataset.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dataset.js index a6a1ce2104943f..2d30815e04882d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dataset.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dataset.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","4":"I D E F A sB"},B:{"1":"C J K G L","129":"M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB","4":"tB iB H j uB vB","129":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"AB BB CB DB EB FB GB HB IB JB","4":"H j I","129":"0 1 2 3 4 5 6 7 8 9 D E F A B C J K G L M N k l m n o p q r s t u v w x y z KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"4":"H j zB mB","129":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 C x y z gB qB CC hB","4":"F B 8B 9B AC BC","129":"7 8 9 G L M N k l m n o p q r s t u v w AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"4":"mB DC rB","129":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"4":"XC"},I:{"4":"YC ZC aC","129":"iB H T bC rB cC dC"},J:{"129":"D A"},K:{"1":"C gB qB hB","4":"A B","129":"U"},L:{"129":"fB"},M:{"129":"S"},N:{"1":"B","4":"A"},O:{"129":"eC"},P:{"129":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"129":"rC"},S:{"1":"sC"}},B:1,C:"dataset & data-* attributes"}; +module.exports={A:{A:{"1":"B","4":"J D E F A xB"},B:{"1":"C K L G M","129":"N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","4":"yB lB I m zB 0B","129":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"DB EB FB GB HB IB JB KB LB MB","4":"I m J","129":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"4":"I m 3B qB","129":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C iB vB GC jB","4":"F B CC DC EC FC","129":"G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"4":"qB HC wB","129":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"4":"bC"},I:{"4":"cC dC eC","129":"lB I H fC wB gC hC"},J:{"129":"D A"},K:{"1":"C iB vB jB","4":"A B","129":"Y"},L:{"129":"X"},M:{"129":"H"},N:{"1":"B","4":"A"},O:{"129":"iC"},P:{"129":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"129":"vC"},S:{"1":"wC"}},B:1,C:"dataset & data-* attributes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datauri.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datauri.js index 470641a6027af6..85b6200028cd63 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datauri.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/datauri.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D sB","132":"E","260":"F A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","260":"C J G L M N","772":"K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"260":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Data URIs"}; +module.exports={A:{A:{"2":"J D xB","132":"E","260":"F A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K G M N O","772":"L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"260":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Data URIs"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js index f069b2b67eddee..29988252b21d2f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"sB","132":"I D E F A B"},B:{"1":"N O P Q R V W X Y Z a b c d e f g h i S T","132":"C J K G L M"},C:{"1":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","132":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB","260":"HB IB JB KB","772":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB"},D:{"1":"WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j I D E F A B C J K G L M N k l m n o","260":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB","772":"0 1 2 p q r s t u v w x y z"},E:{"1":"C J K G hB 4B 5B 6B oB pB 7B","16":"H j zB mB","132":"I D E F A 0B 1B 2B 3B","260":"B nB gB"},F:{"1":"MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F B C 8B 9B AC BC gB qB CC","132":"hB","260":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","772":"G L M N k l m n o p"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB EC","132":"E FC GC HC IC JC KC"},H:{"132":"XC"},I:{"1":"T","16":"iB YC ZC aC","132":"H bC rB","772":"cC dC"},J:{"132":"D A"},K:{"1":"U","16":"A B C gB qB","132":"hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"260":"eC"},P:{"1":"jC nB kC lC mC nC oC pC","260":"H fC gC hC iC"},Q:{"260":"qC"},R:{"132":"rC"},S:{"132":"sC"}},B:6,C:"Date.prototype.toLocaleDateString"}; +module.exports={A:{A:{"16":"xB","132":"J D E F A B"},B:{"1":"O P Q R S T U V W Z a b c d e f g h i j k l H X","132":"C K L G M N"},C:{"1":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","132":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B","260":"KB LB MB NB","772":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB"},D:{"1":"ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m J D E F A B C K L G M N O n o p q r","260":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB","772":"0 1 2 3 4 5 s t u v w x y z"},E:{"1":"C K L G jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB","132":"J D E F A 4B 5B 6B 7B","260":"B rB iB"},F:{"1":"PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F B C CC DC EC FC iB vB GC","132":"jB","260":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","772":"G M N O n o p q r s"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB IC","132":"E JC KC LC MC NC OC"},H:{"132":"bC"},I:{"1":"H","16":"lB cC dC eC","132":"I fC wB","772":"gC hC"},J:{"132":"D A"},K:{"1":"Y","16":"A B C iB vB","132":"jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"260":"iC"},P:{"1":"nC rB oC pC qC rC sC kB tC","260":"I jC kC lC mC"},Q:{"260":"uC"},R:{"132":"vC"},S:{"132":"wC"}},B:6,C:"Date.prototype.toLocaleDateString"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js new file mode 100644 index 00000000000000..f14a7a9894de15 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js @@ -0,0 +1 @@ +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"b c d e f g h i j k l H X","2":"C K L G M N O P Q R S T U V W Z a"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T","66":"U V W Z a"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB","16":"BC"},F:{"1":"gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"sC kB tC","2":"I jC kC lC mC nC rB oC pC qC rC"},Q:{"16":"uC"},R:{"16":"vC"},S:{"2":"wC"}},B:7,C:"Declarative Shadow DOM"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/decorators.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/decorators.js index f2d7fafbb9d6f7..142a3b5b7800c3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/decorators.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/decorators.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Decorators"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Decorators"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/details.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/details.js index c6f5b14d2011b0..6fc4eccb2e8171 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/details.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/details.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"F A B sB","8":"I D E"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB","8":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB uB vB","194":"CB DB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","8":"H j I D E F A B","257":"0 k l m n o p q r s t u v w x y z","769":"C J K G L M N"},E:{"1":"C J K G hB 4B 5B 6B oB pB 7B","8":"H j zB mB 0B","257":"I D E F A 1B 2B 3B","1025":"B nB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"C gB qB CC hB","8":"F B 8B 9B AC BC"},G:{"1":"E FC GC HC IC JC NC OC PC QC RC SC TC UC VC WC oB pB","8":"mB DC rB EC","1025":"KC LC MC"},H:{"8":"XC"},I:{"1":"H T bC rB cC dC","8":"iB YC ZC aC"},J:{"1":"A","8":"D"},K:{"1":"U","8":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"769":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Details & Summary elements"}; +module.exports={A:{A:{"2":"F A B xB","8":"J D E"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB","8":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB zB 0B","194":"FB GB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","8":"I m J D E F A B","257":"0 1 2 3 n o p q r s t u v w x y z","769":"C K L G M N O"},E:{"1":"C K L G jB 8B 9B AC sB tB uB kB BC","8":"I m 3B qB 4B","257":"J D E F A 5B 6B 7B","1025":"B rB iB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"C iB vB GC jB","8":"F B CC DC EC FC"},G:{"1":"E JC KC LC MC NC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","8":"qB HC wB IC","1025":"OC PC QC"},H:{"8":"bC"},I:{"1":"I H fC wB gC hC","8":"lB cC dC eC"},J:{"1":"A","8":"D"},K:{"1":"Y","8":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"769":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Details & Summary elements"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/deviceorientation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/deviceorientation.js index d8ef5712b86c0f..323f5ad352fdeb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/deviceorientation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/deviceorientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","132":"B"},B:{"1":"C J K G L M N","4":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB uB","4":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","8":"H j vB"},D:{"2":"H j I","4":"0 1 2 3 4 5 6 7 8 9 D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","4":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"mB DC","4":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"YC ZC aC","4":"iB H T bC rB cC dC"},J:{"2":"D","4":"A"},K:{"1":"C hB","2":"A B gB qB","4":"U"},L:{"4":"fB"},M:{"4":"S"},N:{"1":"B","2":"A"},O:{"4":"eC"},P:{"4":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"4":"qC"},R:{"4":"rC"},S:{"4":"sC"}},B:4,C:"DeviceOrientation & DeviceMotion events"}; +module.exports={A:{A:{"2":"J D E F A xB","132":"B"},B:{"1":"C K L G M N O","4":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB zB","4":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","8":"I m 0B"},D:{"2":"I m J","4":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","4":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"qB HC","4":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"cC dC eC","4":"lB I H fC wB gC hC"},J:{"2":"D","4":"A"},K:{"1":"C jB","2":"A B iB vB","4":"Y"},L:{"4":"X"},M:{"4":"H"},N:{"1":"B","2":"A"},O:{"4":"iC"},P:{"4":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"4":"uC"},R:{"4":"vC"},S:{"4":"wC"}},B:4,C:"DeviceOrientation & DeviceMotion events"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/devicepixelratio.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/devicepixelratio.js index 0d1f3f22b83da0..08d3af91807f8c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/devicepixelratio.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/devicepixelratio.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F B 8B 9B AC BC gB qB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"C U hB","2":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Window.devicePixelRatio"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F B CC DC EC FC iB vB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"C Y jB","2":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Window.devicePixelRatio"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dialog.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dialog.js index 8bd991a7c4ecc1..2121129891908c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dialog.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dialog.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB uB vB","194":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O","1218":"P Q lB R V W X Y Z a b c d e f g h i"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w","322":"0 1 x y z"},E:{"1":"pB 7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N 8B 9B AC BC gB qB CC hB","578":"k l m n o"},G:{"1":"pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:1,C:"Dialog element"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB zB 0B","194":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P","1218":"Q R oB S T U V W Z a b c d e f g h i"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w x y z","322":"0 1 2 3 4"},E:{"1":"tB uB kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O CC DC EC FC iB vB GC jB","578":"n o p q r"},G:{"1":"tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:1,C:"Dialog element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dispatchevent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dispatchevent.js index 73ea9af407ab91..6aada07fa357c1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dispatchevent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dispatchevent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","16":"sB","129":"F A","130":"I D E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","16":"F"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","129":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"EventTarget.dispatchEvent"}; +module.exports={A:{A:{"1":"B","16":"xB","129":"F A","130":"J D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","16":"F"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","129":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"EventTarget.dispatchEvent"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dnssec.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dnssec.js index cf7ec6f92ba738..6a89ac51994860 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dnssec.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dnssec.js @@ -1 +1 @@ -module.exports={A:{A:{"132":"I D E F A B sB"},B:{"132":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"132":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"132":"0 1 2 3 4 5 6 7 8 9 H j w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","388":"I D E F A B C J K G L M N k l m n o p q r s t u v"},E:{"132":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"132":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"132":"XC"},I:{"132":"iB H T YC ZC aC bC rB cC dC"},J:{"132":"D A"},K:{"132":"A B C U gB qB hB"},L:{"132":"fB"},M:{"132":"S"},N:{"132":"A B"},O:{"132":"eC"},P:{"132":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"132":"qC"},R:{"132":"rC"},S:{"132":"sC"}},B:6,C:"DNSSEC and DANE"}; +module.exports={A:{A:{"132":"J D E F A B xB"},B:{"132":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"132":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"132":"0 1 2 3 4 5 6 7 8 9 I m z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","388":"J D E F A B C K L G M N O n o p q r s t u v w x y"},E:{"132":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"132":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"132":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"132":"bC"},I:{"132":"lB I H cC dC eC fC wB gC hC"},J:{"132":"D A"},K:{"132":"A B C Y iB vB jB"},L:{"132":"X"},M:{"132":"H"},N:{"132":"A B"},O:{"132":"iC"},P:{"132":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"132":"uC"},R:{"132":"vC"},S:{"132":"wC"}},B:6,C:"DNSSEC and DANE"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/do-not-track.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/do-not-track.js index 608990964450a1..ff612d10972275 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/do-not-track.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/do-not-track.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","164":"F A","260":"B"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K G L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E uB vB","516":"F A B C J K G L M N k l m n o p q r s t u v w"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n"},E:{"1":"I A B C 0B 3B nB gB","2":"H j J K G zB mB hB 4B 5B 6B oB pB 7B","1028":"D E F 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC gB qB CC"},G:{"1":"IC JC KC LC MC NC OC","2":"mB DC rB EC FC PC QC RC SC TC UC VC WC oB pB","1028":"E GC HC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"16":"D","1028":"A"},K:{"1":"U hB","16":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"164":"A","260":"B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Do Not Track API"}; +module.exports={A:{A:{"2":"J D E xB","164":"F A","260":"B"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E zB 0B","516":"F A B C K L G M N O n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q"},E:{"1":"J A B C 4B 7B rB iB","2":"I m K L G 3B qB jB 8B 9B AC sB tB uB kB BC","1028":"D E F 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC iB vB GC"},G:{"1":"MC NC OC PC QC RC SC","2":"qB HC wB IC JC TC UC VC WC XC YC ZC aC sB tB uB kB","1028":"E KC LC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"16":"D","1028":"A"},K:{"1":"Y jB","16":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"164":"A","260":"B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Do Not Track API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-currentscript.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-currentscript.js index 6137f7859ee90c..fa9a0613e28531 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-currentscript.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-currentscript.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t"},E:{"1":"E F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G 8B 9B AC BC gB qB CC hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"document.currentScript"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w"},E:{"1":"E F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G CC DC EC FC iB vB GC jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"document.currentScript"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js index 57435d35537607..280f310f7cc282 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","16":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","16":"F"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:7,C:"document.evaluate & XPath"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","16":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","16":"F"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:7,C:"document.evaluate & XPath"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-execcommand.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-execcommand.js index 2c4897d347197c..332ff309cbab90 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-execcommand.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-execcommand.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 9B AC BC gB qB CC hB","16":"F 8B"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC","16":"rB EC FC"},H:{"2":"XC"},I:{"1":"T bC rB cC dC","2":"iB H YC ZC aC"},J:{"1":"A","2":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"2":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:7,C:"Document.execCommand()"}; +module.exports={A:{A:{"1":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W DC EC FC iB vB GC jB","16":"F CC"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC","16":"wB IC JC"},H:{"2":"bC"},I:{"1":"H fC wB gC hC","2":"lB I cC dC eC"},J:{"1":"A","2":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"2":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:7,C:"Document.execCommand()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-policy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-policy.js index 05a22e3dc2c9de..b213137cf06160 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-policy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V","132":"W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V","132":"W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB 8B 9B AC BC gB qB CC hB","132":"XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","132":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","132":"U"},L:{"132":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Document Policy"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T","132":"U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T","132":"U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB CC DC EC FC iB vB GC jB","132":"aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","132":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","132":"Y"},L:{"132":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Document Policy"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-scrollingelement.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-scrollingelement.js index 9dfab7b0a6ecb0..a60c6a1c894f83 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-scrollingelement.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/document-scrollingelement.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","16":"C J"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB uB vB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"document.scrollingElement"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","16":"C K"},C:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB zB 0B"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x y CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"document.scrollingElement"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/documenthead.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/documenthead.js index cde3df3bb682b6..aa33b4f6cec8a4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/documenthead.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/documenthead.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","16":"j"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","2":"F 8B 9B AC BC"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"document.head"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","16":"m"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","2":"F CC DC EC FC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"document.head"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-manip-convenience.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-manip-convenience.js index 259ba8b5442368..0a4750d7315292 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-manip-convenience.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB uB vB"},D:{"1":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","194":"HB IB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","194":"5"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H fC"},Q:{"194":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"DOM manipulation convenience methods"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB zB 0B"},D:{"1":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","194":"KB LB"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","194":"8"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I jC"},Q:{"194":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"DOM manipulation convenience methods"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-range.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-range.js index 991d0583f7653f..d8cdb3e59e695c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-range.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dom-range.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"sB","8":"I D E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Document Object Model Range"}; +module.exports={A:{A:{"1":"F A B","2":"xB","8":"J D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Document Object Model Range"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domcontentloaded.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domcontentloaded.js index d025b70bb3fe3e..0890a66a5ed49b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domcontentloaded.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domcontentloaded.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"DOMContentLoaded"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"DOMContentLoaded"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js index b6a47416f739f2..25fef5864d1cce 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K G L M N k l m n o p q"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","16":"j"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","16":"F B 8B 9B AC BC gB qB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB EC FC"},H:{"16":"XC"},I:{"1":"H T bC rB cC dC","16":"iB YC ZC aC"},J:{"16":"D A"},K:{"1":"U","16":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"16":"A B"},O:{"16":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"DOMFocusIn & DOMFocusOut events"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L G M N O n o p q r s t"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","16":"m"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","16":"F B CC DC EC FC iB vB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB IC JC"},H:{"16":"bC"},I:{"1":"I H fC wB gC hC","16":"lB cC dC eC"},J:{"16":"D A"},K:{"1":"Y","16":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"16":"A B"},O:{"16":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"DOMFocusIn & DOMFocusOut events"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dommatrix.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dommatrix.js index 54eac7e0d3538c..3ad111b7094227 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dommatrix.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dommatrix.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","132":"A B"},B:{"132":"C J K G L M N","1028":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x uB vB","1028":"VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2564":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB","3076":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB"},D:{"16":"H j I D","132":"0 1 2 3 4 5 6 7 8 9 F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB","388":"E","1028":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"16":"H zB mB","132":"j I D E F A 0B 1B 2B 3B nB","1028":"B C J K G gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","132":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB","1028":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"16":"mB DC rB","132":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"132":"H bC rB cC dC","292":"iB YC ZC aC","1028":"T"},J:{"16":"D","132":"A"},K:{"2":"A B C gB qB hB","1028":"U"},L:{"1028":"fB"},M:{"1028":"S"},N:{"132":"A B"},O:{"132":"eC"},P:{"132":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"132":"qC"},R:{"132":"rC"},S:{"2564":"sC"}},B:4,C:"DOMMatrix"}; +module.exports={A:{A:{"2":"J D E F xB","132":"A B"},B:{"132":"C K L G M N O","1028":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","1028":"YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2564":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB","3076":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB"},D:{"16":"I m J D","132":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB","388":"E","1028":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"16":"I 3B qB","132":"m J D E F A 4B 5B 6B 7B rB","1028":"B C K L G iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","132":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB","1028":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"16":"qB HC wB","132":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"132":"I fC wB gC hC","292":"lB cC dC eC","1028":"H"},J:{"16":"D","132":"A"},K:{"2":"A B C iB vB jB","1028":"Y"},L:{"1028":"X"},M:{"1028":"H"},N:{"132":"A B"},O:{"132":"iC"},P:{"132":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"132":"uC"},R:{"132":"vC"},S:{"2564":"wC"}},B:4,C:"DOMMatrix"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/download.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/download.js index ba3752b99816db..5ea3529eeaae78 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/download.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/download.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Download attribute"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Download attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dragndrop.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dragndrop.js index 533cbc058df6b4..f37f6da4391f7b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dragndrop.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/dragndrop.js @@ -1 +1 @@ -module.exports={A:{A:{"644":"I D E F sB","772":"A B"},B:{"1":"N O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K G L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","8":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","8":"F B 8B 9B AC BC gB qB CC"},G:{"1":"WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","1025":"T"},J:{"2":"D A"},K:{"1":"hB","8":"A B C gB qB","1025":"U"},L:{"1025":"fB"},M:{"2":"S"},N:{"1":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"Drag and Drop"}; +module.exports={A:{A:{"644":"J D E F xB","772":"A B"},B:{"1":"O P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","8":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","8":"F B CC DC EC FC iB vB GC"},G:{"1":"aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","1025":"H"},J:{"2":"D A"},K:{"1":"jB","8":"A B C iB vB","1025":"Y"},L:{"1025":"X"},M:{"2":"H"},N:{"1":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"Drag and Drop"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-closest.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-closest.js index f90884e9914b54..d82765ca60d0fa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-closest.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-closest.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Element.closest()"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Element.closest()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-from-point.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-from-point.js index 79f7b5a7d592f0..aac573089b9abd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-from-point.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-from-point.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","16":"sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","16":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","16":"F 8B 9B AC BC"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"C U hB","16":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"document.elementFromPoint()"}; +module.exports={A:{A:{"1":"J D E F A B","16":"xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","16":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","16":"F CC DC EC FC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"C Y jB","16":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"document.elementFromPoint()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-scroll-methods.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-scroll-methods.js index 2cc855c769c429..05c9a1347015c0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-scroll-methods.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/element-scroll-methods.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB"},E:{"1":"K G 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B","132":"A B C J nB gB hB 4B"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB 8B 9B AC BC gB qB CC hB"},G:{"1":"VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC","132":"KC LC MC NC OC PC QC RC SC TC UC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB"},E:{"1":"L G 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B","132":"A B C K rB iB jB 8B"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB CC DC EC FC iB vB GC jB"},G:{"1":"ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC","132":"OC PC QC RC SC TC UC VC WC XC YC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eme.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eme.js index af27b37bc82787..0676f8b07fd767 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eme.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eme.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","164":"B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","132":"0 1 2 3 4 5 6"},E:{"1":"C J K G hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B","164":"D E F A B 2B 3B nB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m 8B 9B AC BC gB qB CC hB","132":"n o p q r s t"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"16":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:2,C:"Encrypted Media Extensions"}; +module.exports={A:{A:{"2":"J D E F A xB","164":"B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","132":"3 4 5 6 7 8 9"},E:{"1":"C K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B","164":"D E F A B 6B 7B rB iB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p CC DC EC FC iB vB GC jB","132":"q r s t u v w"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"16":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:2,C:"Encrypted Media Extensions"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eot.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eot.js index 6ce00bb0ad2200..d3f54c97b42e57 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eot.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eot.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","2":"sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"EOT - Embedded OpenType fonts"}; +module.exports={A:{A:{"1":"J D E F A B","2":"xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"EOT - Embedded OpenType fonts"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es5.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es5.js index b11c3134045192..324649248a2fd5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es5.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es5.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D sB","260":"F","1026":"E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","4":"tB iB uB vB","132":"H j I D E F A B C J K G L M N k l"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","4":"H j I D E F A B C J K G L M N","132":"k l m n"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","4":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","4":"F B C 8B 9B AC BC gB qB CC","132":"hB"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","4":"mB DC rB EC"},H:{"132":"XC"},I:{"1":"T cC dC","4":"iB YC ZC aC","132":"bC rB","900":"H"},J:{"1":"A","4":"D"},K:{"1":"U","4":"A B C gB qB","132":"hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"ECMAScript 5"}; +module.exports={A:{A:{"1":"A B","2":"J D xB","260":"F","1026":"E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","4":"yB lB zB 0B","132":"I m J D E F A B C K L G M N O n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","4":"I m J D E F A B C K L G M N O","132":"n o p q"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","4":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","4":"F B C CC DC EC FC iB vB GC","132":"jB"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","4":"qB HC wB IC"},H:{"132":"bC"},I:{"1":"H gC hC","4":"lB cC dC eC","132":"fC wB","900":"I"},J:{"1":"A","4":"D"},K:{"1":"Y","4":"A B C iB vB","132":"jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"ECMAScript 5"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-class.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-class.js index 41b287fa59aada..a68d5557e323b8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-class.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-class.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C"},C:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","132":"7 8 9 AB BB CB DB"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t 8B 9B AC BC gB qB CC hB","132":"0 u v w x y z"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"ES6 classes"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB zB 0B"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","132":"AB BB CB DB EB FB GB"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w CC DC EC FC iB vB GC jB","132":"0 1 2 3 x y z"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"ES6 classes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-generators.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-generators.js index 93bc3891903b8a..a6d6e12a89afab 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-generators.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-generators.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q uB vB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"ES6 Generators"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t zB 0B"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"ES6 Generators"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js index 6b988cee96a947..f0776dc0362229 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB uB vB","194":"SB"},D:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"JavaScript modules: dynamic import()"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB zB 0B","194":"VB"},D:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"JavaScript modules: dynamic import()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module.js index b262b150b5b33d..241eb35ab9acf2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-module.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K","4097":"L M N","4290":"G"},C:{"1":"OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB uB vB","322":"JB KB LB MB NB jB"},D:{"1":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB","194":"OB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B","3076":"nB"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB 8B 9B AC BC gB qB CC hB","194":"CB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC","3076":"LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"JavaScript modules via script tag"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L","4097":"M N O","4290":"G"},C:{"1":"RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB zB 0B","322":"MB NB OB PB QB mB"},D:{"1":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB","194":"RB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B","3076":"rB"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB CC DC EC FC iB vB GC jB","194":"FB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC","3076":"PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"JavaScript modules via script tag"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-number.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-number.js index 7cfba28df8621d..76d6fa1ac3842f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-number.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-number.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G uB vB","132":"L M N k l m n o p","260":"q r s t u v","516":"w"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N","1028":"k l m n o p q r s t u v w x y"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","1028":"G L M N k l"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC","1028":"bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"ES6 Number"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G zB 0B","132":"M N O n o p q r s","260":"t u v w x y","516":"z"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O","1028":"0 1 n o p q r s t u v w x y z"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","1028":"G M N O n o"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC","1028":"fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"ES6 Number"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-string-includes.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-string-includes.js index 0ccbb1ec99e087..d403293fb4689a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-string-includes.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6-string-includes.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"String.prototype.includes"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"String.prototype.includes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6.js index 4ffd5e84f3e35d..47e6dcca178ea4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/es6.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","388":"B"},B:{"257":"O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K","769":"G L M N"},C:{"2":"tB iB H j uB vB","4":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","257":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"H j I D E F A B C J K G L M N k l","4":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB","257":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B","4":"E F 2B 3B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","4":"0 1 2 G L M N k l m n o p q r s t u v w x y z","257":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC","4":"E GC HC IC JC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","4":"cC dC","257":"T"},J:{"2":"D","4":"A"},K:{"2":"A B C gB qB hB","257":"U"},L:{"257":"fB"},M:{"257":"S"},N:{"2":"A","388":"B"},O:{"257":"eC"},P:{"4":"H","257":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"257":"qC"},R:{"4":"rC"},S:{"4":"sC"}},B:6,C:"ECMAScript 2015 (ES6)"}; +module.exports={A:{A:{"2":"J D E F A xB","388":"B"},B:{"257":"P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L","769":"G M N O"},C:{"2":"yB lB I m zB 0B","4":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","257":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"I m J D E F A B C K L G M N O n o","4":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","257":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B","4":"E F 6B 7B"},F:{"2":"F B C CC DC EC FC iB vB GC jB","4":"0 1 2 3 4 5 G M N O n o p q r s t u v w x y z","257":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC","4":"E KC LC MC NC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","4":"gC hC","257":"H"},J:{"2":"D","4":"A"},K:{"2":"A B C iB vB jB","257":"Y"},L:{"257":"X"},M:{"257":"H"},N:{"2":"A","388":"B"},O:{"257":"iC"},P:{"4":"I","257":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"257":"uC"},R:{"4":"vC"},S:{"4":"wC"}},B:6,C:"ECMAScript 2015 (ES6)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eventsource.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eventsource.js index 44db66df8420ef..ddadc28034c8b0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eventsource.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/eventsource.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","4":"F 8B 9B AC BC"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"D A"},K:{"1":"C U gB qB hB","4":"A B"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Server-sent events"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","4":"F CC DC EC FC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"D A"},K:{"1":"C Y iB vB jB","4":"A B"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Server-sent events"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/extended-system-fonts.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/extended-system-fonts.js index 9f6d2eed514480..9ea0ac17783584 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/extended-system-fonts.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/extended-system-fonts.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/feature-policy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/feature-policy.js index a0c7db5cda3622..54a8fd9bb10893 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/feature-policy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/feature-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y","2":"C J K G L M N","1025":"Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB uB vB","260":"aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"aB bB cB dB eB O P Q R V W X Y","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB","132":"OB kB PB QB U RB SB TB UB VB WB XB YB ZB","1025":"Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B zB mB 0B 1B 2B 3B nB","772":"C J K G gB hB 4B 5B 6B oB pB 7B"},F:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB 8B 9B AC BC gB qB CC hB","132":"CB DB EB FB GB HB IB JB KB LB MB NB OB","1025":"bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC","772":"NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1025":"fB"},M:{"260":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"kC lC mC nC oC pC","2":"H fC gC hC","132":"iC jC nB"},Q:{"132":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Feature Policy"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W","2":"C K L G M N O","1025":"Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB zB 0B","260":"dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"dB eB fB gB hB P Q R S T U V W","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB","132":"RB nB SB TB Y UB VB WB XB YB ZB aB bB cB","1025":"Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB","772":"C K L G iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB CC DC EC FC iB vB GC jB","132":"FB GB HB IB JB KB LB MB NB OB PB QB RB","1025":"eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC","772":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1025":"X"},M:{"260":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"oC pC qC rC sC kB tC","2":"I jC kC lC","132":"mC nC rB"},Q:{"132":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Feature Policy"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fetch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fetch.js index 202ce9abdf6c14..4af0aac6cf8b73 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fetch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fetch.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y uB vB","1025":"4","1218":"0 1 2 3 z"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","260":"5","772":"6"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r 8B 9B AC BC gB qB CC hB","260":"s","772":"t"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Fetch"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","1025":"7","1218":"2 3 4 5 6"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","260":"8","772":"9"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u CC DC EC FC iB vB GC jB","260":"v","772":"w"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Fetch"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fieldset-disabled.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fieldset-disabled.js index 61ddca800bf865..886723cca658b1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fieldset-disabled.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fieldset-disabled.js @@ -1 +1 @@ -module.exports={A:{A:{"16":"sB","132":"E F","388":"I D A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G","16":"L M N k"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 9B AC BC gB qB CC hB","16":"F 8B"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC"},H:{"388":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A","260":"B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"disabled attribute of the fieldset element"}; +module.exports={A:{A:{"16":"xB","132":"E F","388":"J D A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G","16":"M N O n"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W DC EC FC iB vB GC jB","16":"F CC"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC"},H:{"388":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A","260":"B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"disabled attribute of the fieldset element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fileapi.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fileapi.js index 5619ac876c3b68..2c2d3040463391 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fileapi.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fileapi.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","260":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB","260":"H j I D E F A B C J K G L M N k l m n o p q r s vB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j","260":"0 1 2 J K G L M N k l m n o p q r s t u v w x y z","388":"I D E F A B C"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB","260":"I D E F 1B 2B 3B","388":"0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B 8B 9B AC BC","260":"C G L M N k l m n o p gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC","260":"E FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T dC","2":"YC ZC aC","260":"cC","388":"iB H bC rB"},J:{"260":"A","388":"D"},K:{"1":"U","2":"A B","260":"C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A","260":"B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"File API"}; +module.exports={A:{A:{"2":"J D E F xB","260":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB","260":"I m J D E F A B C K L G M N O n o p q r s t u v 0B"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m","260":"0 1 2 3 4 5 K L G M N O n o p q r s t u v w x y z","388":"J D E F A B C"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB","260":"J D E F 5B 6B 7B","388":"4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B CC DC EC FC","260":"C G M N O n o p q r s iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC","260":"E JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H hC","2":"cC dC eC","260":"gC","388":"lB I fC wB"},J:{"260":"A","388":"D"},K:{"1":"Y","2":"A B","260":"C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A","260":"B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"File API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereader.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereader.js index 40dd7213af9d2b..5e329939743c0a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereader.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereader.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","132":"A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","2":"tB iB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","2":"F B 8B 9B AC BC"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"A","2":"D"},K:{"1":"C U gB qB hB","2":"A B"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"FileReader API"}; +module.exports={A:{A:{"2":"J D E F xB","132":"A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","2":"yB lB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","2":"F B CC DC EC FC"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"A","2":"D"},K:{"1":"C Y iB vB jB","2":"A B"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"FileReader API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereadersync.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereadersync.js index eda8fe24c9007e..e501a51e1cbda5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereadersync.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filereadersync.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F 8B 9B","16":"B AC BC gB qB"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"C U qB hB","2":"A","16":"B gB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"FileReaderSync"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F CC DC","16":"B EC FC iB vB"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"C Y vB jB","2":"A","16":"B iB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"FileReaderSync"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filesystem.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filesystem.js index c51ee0613b0d3d..3043ab96e87978 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filesystem.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/filesystem.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","33":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"H j I D","33":"0 1 2 3 4 5 6 7 8 9 J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","36":"E F A B C"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D","33":"A"},K:{"2":"A B C U gB qB hB"},L:{"33":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H","33":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Filesystem & FileWriter API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","33":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"I m J D","33":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","36":"E F A B C"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D","33":"A"},K:{"2":"A B C Y iB vB jB"},L:{"33":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I","33":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Filesystem & FileWriter API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flac.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flac.js index 42cf877dd769a5..8c4c2a7b8c683c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flac.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flac.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G"},C:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB uB vB"},D:{"1":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","16":"9 AB BB","388":"CB DB EB FB GB HB IB JB KB"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB","516":"B C gB hB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"YC ZC aC","16":"iB H bC rB cC dC"},J:{"1":"A","2":"D"},K:{"1":"U hB","16":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","129":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:6,C:"FLAC audio format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G"},C:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB zB 0B"},D:{"1":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB","16":"CB DB EB","388":"FB GB HB IB JB KB LB MB NB"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","516":"B C iB jB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"cC dC eC","16":"lB I fC wB gC hC"},J:{"1":"A","2":"D"},K:{"1":"Y jB","16":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","129":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:6,C:"FLAC audio format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox-gap.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox-gap.js index a3b4f9adf0ecfe..078793524e0c4c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox-gap.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox-gap.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"V W X Y Z a b c d e f g h i S T","2":"C J K G L M N O P Q R"},C:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB uB vB"},D:{"1":"V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R"},E:{"1":"G 5B 6B oB pB 7B","2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B"},F:{"1":"ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB 8B 9B AC BC gB qB CC hB"},G:{"1":"VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nC oC pC","2":"H fC gC hC iC jC nB kC lC mC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"gap property for Flexbox"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O P Q R S"},C:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB zB 0B"},D:{"1":"T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S"},E:{"1":"G 9B AC sB tB uB kB BC","2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B"},F:{"1":"cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB CC DC EC FC iB vB GC jB"},G:{"1":"ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rC sC kB tC","2":"I jC kC lC mC nC rB oC pC qC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"gap property for Flexbox"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox.js index 7d8a4ed55fa577..2cf83b8f5cf755 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flexbox.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","1028":"B","1316":"A"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","164":"tB iB H j I D E F A B C J K G L M N k l m uB vB","516":"n o p q r s"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"m n o p q r s t","164":"H j I D E F A B C J K G L M N k l"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","33":"D E 1B 2B","164":"H j I zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B C 8B 9B AC BC gB qB CC","33":"G L"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","33":"E GC HC","164":"mB DC rB EC FC"},H:{"1":"XC"},I:{"1":"T cC dC","164":"iB H YC ZC aC bC rB"},J:{"1":"A","164":"D"},K:{"1":"U hB","2":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","292":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS Flexible Box Layout Module"}; +module.exports={A:{A:{"2":"J D E F xB","1028":"B","1316":"A"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","164":"yB lB I m J D E F A B C K L G M N O n o p zB 0B","516":"q r s t u v"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"p q r s t u v w","164":"I m J D E F A B C K L G M N O n o"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","33":"D E 5B 6B","164":"I m J 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B C CC DC EC FC iB vB GC","33":"G M"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","33":"E KC LC","164":"qB HC wB IC JC"},H:{"1":"bC"},I:{"1":"H gC hC","164":"lB I cC dC eC fC wB"},J:{"1":"A","164":"D"},K:{"1":"Y jB","2":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","292":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS Flexible Box Layout Module"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flow-root.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flow-root.js index cd79ccc12489c2..c849e37c7bc654 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flow-root.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/flow-root.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB uB vB"},D:{"1":"NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB hB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H fC gC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"display: flow-root"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB zB 0B"},D:{"1":"QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB jB"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB CC DC EC FC iB vB GC jB"},G:{"1":"UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I jC kC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"display: flow-root"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusin-focusout-events.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusin-focusout-events.js index 3f4ea01462d40e..4e21aa80c1010d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusin-focusout-events.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","2":"sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F 8B 9B AC BC","16":"B gB qB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"1":"H T bC rB cC dC","2":"YC ZC aC","16":"iB"},J:{"1":"D A"},K:{"1":"C U hB","2":"A","16":"B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"focusin & focusout events"}; +module.exports={A:{A:{"1":"J D E F A B","2":"xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F CC DC EC FC","16":"B iB vB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"1":"I H fC wB gC hC","2":"cC dC eC","16":"lB"},J:{"1":"D A"},K:{"1":"C Y jB","2":"A","16":"B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"focusin & focusout events"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js index fbec8f320080e6..ca7b7eb31567bc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L","132":"M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"preventScroll support in focus"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M","132":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"preventScroll support in focus"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-family-system-ui.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-family-system-ui.js index 935680972501d5..30bec34daccdc0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-family-system-ui.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-family-system-ui.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","132":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c"},D:{"1":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","260":"IB JB KB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B","16":"F","132":"A 3B nB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC","132":"IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H fC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"132":"sC"}},B:5,C:"system-ui value for font-family"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB zB 0B","132":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c"},D:{"1":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB","260":"LB MB NB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B","16":"F","132":"A 7B rB"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC","132":"MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I jC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"132":"wC"}},B:5,C:"system-ui value for font-family"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-feature.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-feature.js index 969b23accf3a68..a2f069e825316e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-feature.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-feature.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","33":"G L M N k l m n o p q r s t u v w x y","164":"H j I D E F A B C J K"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G","33":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB","292":"L M N k l"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"D E F zB mB 1B 2B","4":"H j I 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"G L M N k l m n o p q r s t u v w x y z"},G:{"1":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E GC HC IC","4":"mB DC rB EC FC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB","33":"cC dC"},J:{"2":"D","33":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","33":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS font-feature-settings"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","33":"0 1 G M N O n o p q r s t u v w x y z","164":"I m J D E F A B C K L"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G","33":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB","292":"M N O n o"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"D E F 3B qB 5B 6B","4":"I m J 4B"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 G M N O n o p q r s t u v w x y z"},G:{"1":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E KC LC MC","4":"qB HC wB IC JC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB","33":"gC hC"},J:{"2":"D","33":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","33":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS font-feature-settings"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-kerning.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-kerning.js index 7d3758a2aec228..494338b54bf08a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-kerning.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-kerning.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o uB vB","194":"p q r s t u v w x y"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t","33":"u v w x"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B","33":"D E F 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G 8B 9B AC BC gB qB CC hB","33":"L M N k"},G:{"1":"OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC","33":"E HC IC JC KC LC MC NC"},H:{"2":"XC"},I:{"1":"T dC","2":"iB H YC ZC aC bC rB","33":"cC"},J:{"2":"D","33":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS3 font-kerning"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r zB 0B","194":"0 1 s t u v w x y z"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w","33":"0 x y z"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B","33":"D E F 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G CC DC EC FC iB vB GC jB","33":"M N O n"},G:{"1":"SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC","33":"E LC MC NC OC PC QC RC"},H:{"2":"bC"},I:{"1":"H hC","2":"lB I cC dC eC fC wB","33":"gC"},J:{"2":"D","33":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS3 font-kerning"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-loading.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-loading.js index 79fdef20513470..55d330ffb479d4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-loading.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-loading.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","194":"0 1 2 3 4 5"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"CSS Font Loading"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","194":"3 4 5 6 7 8"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"CSS Font Loading"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-metrics-overrides.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-metrics-overrides.js index 5843eeee6321e3..3fb361ccb26ff1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-metrics-overrides.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-metrics-overrides.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W","194":"X"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"@font-face metrics overrides"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U","194":"V"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"@font-face metrics overrides"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-size-adjust.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-size-adjust.js index 30cbe7ac54b9d9..7423f069f66bc5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-size-adjust.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-size-adjust.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","194":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB"},D:{"2":"0 1 2 3 4 5 6 7 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","194":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C G L M N k l m n o p q r s t u 8B 9B AC BC gB qB CC hB","194":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"258":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"194":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"CSS font-size-adjust"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","194":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB","194":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C G M N O n o p q r s t u v w x CC DC EC FC iB vB GC jB","194":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"258":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"194":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"CSS font-size-adjust"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-smooth.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-smooth.js index 34fe36f83a1c36..badb06feb2ad42 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-smooth.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-smooth.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","676":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p uB vB","804":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"H","676":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"zB mB","676":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","676":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"804":"sC"}},B:7,C:"CSS font-smooth"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","676":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p q r s zB 0B","804":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"I","676":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"3B qB","676":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","676":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"804":"wC"}},B:7,C:"CSS font-smooth"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-unicode-range.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-unicode-range.js index 7f60bb85d987d8..bbefbb5c25839b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-unicode-range.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-unicode-range.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","4":"F A B"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","4":"C J K G L"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","194":"1 2 3 4 5 6 7 8"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","4":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","4":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","4":"G L M N k l m n"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","4":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","4":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D","4":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"4":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","4":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:4,C:"Font unicode-range subsetting"}; +module.exports={A:{A:{"2":"J D E xB","4":"F A B"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","4":"C K L G M"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","194":"4 5 6 7 8 9 AB BB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","4":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","4":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","4":"G M N O n o p q"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","4":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","4":"lB I cC dC eC fC wB gC hC"},J:{"2":"D","4":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"4":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","4":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:4,C:"Font unicode-range subsetting"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-alternates.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-alternates.js index 5b6d60844ed2f2..065db2130004db 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-alternates.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-alternates.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","130":"A B"},B:{"130":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","130":"H j I D E F A B C J K G L M N k l m n o","322":"p q r s t u v w x y"},D:{"2":"H j I D E F A B C J K G","130":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"D E F zB mB 1B 2B","130":"H j I 0B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","130":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB GC HC IC","130":"DC rB EC FC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","130":"T cC dC"},J:{"2":"D","130":"A"},K:{"2":"A B C gB qB hB","130":"U"},L:{"130":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"130":"eC"},P:{"130":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"130":"qC"},R:{"130":"rC"},S:{"1":"sC"}},B:5,C:"CSS font-variant-alternates"}; +module.exports={A:{A:{"2":"J D E F xB","130":"A B"},B:{"130":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","130":"I m J D E F A B C K L G M N O n o p q r","322":"0 1 s t u v w x y z"},D:{"2":"I m J D E F A B C K L G","130":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"D E F 3B qB 5B 6B","130":"I m J 4B"},F:{"2":"F B C CC DC EC FC iB vB GC jB","130":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB KC LC MC","130":"HC wB IC JC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","130":"H gC hC"},J:{"2":"D","130":"A"},K:{"2":"A B C iB vB jB","130":"Y"},L:{"130":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"130":"iC"},P:{"130":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"130":"uC"},R:{"130":"vC"},S:{"1":"wC"}},B:5,C:"CSS font-variant-alternates"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-east-asian.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-east-asian.js index 3df4e917ba5970..ebc653c74b19e3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-east-asian.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-east-asian.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o uB vB","132":"p q r s t u v w x y"},D:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB 8B 9B AC BC gB qB CC hB"},G:{"2":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"132":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:4,C:"CSS font-variant-east-asian "}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r zB 0B","132":"0 1 s t u v w x y z"},D:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB CC DC EC FC iB vB GC jB"},G:{"2":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"132":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:4,C:"CSS font-variant-east-asian "}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-numeric.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-numeric.js index dbd6773bd99ce6..54c52e8d15d7f8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-numeric.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/font-variant-numeric.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y uB vB"},D:{"1":"HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D","16":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H fC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:2,C:"CSS font-variant-numeric"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D","16":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I jC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:2,C:"CSS font-variant-numeric"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fontface.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fontface.js index c3d15f46277ca5..efaff8e1b8cecc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fontface.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fontface.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","132":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 9B AC BC gB qB CC hB","2":"F 8B"},G:{"1":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","260":"mB DC"},H:{"2":"XC"},I:{"1":"H T bC rB cC dC","2":"YC","4":"iB ZC aC"},J:{"1":"A","4":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"@font-face Web fonts"}; +module.exports={A:{A:{"1":"F A B","132":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W DC EC FC iB vB GC jB","2":"F CC"},G:{"1":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","260":"qB HC"},H:{"2":"bC"},I:{"1":"I H fC wB gC hC","2":"cC","4":"lB dC eC"},J:{"1":"A","4":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"@font-face Web fonts"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-attribute.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-attribute.js index dcc69e0cf92566..caad2d5d2b9cad 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-attribute.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","16":"j"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"1":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Form attribute"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","16":"m"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"1":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Form attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-submit-attributes.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-submit-attributes.js index ed5849a1d0457e..3c8a59a6eaa358 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-submit-attributes.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-submit-attributes.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","2":"F 8B","16":"9B AC"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"1":"XC"},I:{"1":"H T bC rB cC dC","2":"YC ZC aC","16":"iB"},J:{"1":"A","2":"D"},K:{"1":"B C U gB qB hB","16":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Attributes for form submission"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","2":"F CC","16":"DC EC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"1":"bC"},I:{"1":"I H fC wB gC hC","2":"cC dC eC","16":"lB"},J:{"1":"A","2":"D"},K:{"1":"B C Y iB vB jB","16":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Attributes for form submission"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-validation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-validation.js index 62c206250da68d..d15c1bae67feb9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-validation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/form-validation.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","132":"j I D E F A 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 9B AC BC gB qB CC hB","2":"F 8B"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB","132":"E DC rB EC FC GC HC IC JC KC"},H:{"516":"XC"},I:{"1":"T dC","2":"iB YC ZC aC","132":"H bC rB cC"},J:{"1":"A","132":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"260":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"132":"sC"}},B:1,C:"Form validation"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","132":"m J D E F A 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W DC EC FC iB vB GC jB","2":"F CC"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB","132":"E HC wB IC JC KC LC MC NC OC"},H:{"516":"bC"},I:{"1":"H hC","2":"lB cC dC eC","132":"I fC wB gC"},J:{"1":"A","132":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"260":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"132":"wC"}},B:1,C:"Form validation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/forms.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/forms.js index daaec9d9155fee..6438ea1818be06 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/forms.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/forms.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","4":"A B","8":"I D E F"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","4":"C J K G"},C:{"4":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","8":"tB iB uB vB"},D:{"1":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","4":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB"},E:{"4":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"zB mB"},F:{"1":"F B C HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","4":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB"},G:{"2":"mB","4":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB","4":"cC dC"},J:{"2":"D","4":"A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"4":"S"},N:{"4":"A B"},O:{"1":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","4":"H fC gC hC"},Q:{"1":"qC"},R:{"4":"rC"},S:{"4":"sC"}},B:1,C:"HTML5 form features"}; +module.exports={A:{A:{"2":"xB","4":"A B","8":"J D E F"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","4":"C K L G"},C:{"4":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","8":"yB lB zB 0B"},D:{"1":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","4":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB"},E:{"4":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"3B qB"},F:{"1":"F B C KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","4":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},G:{"2":"qB","4":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB","4":"gC hC"},J:{"2":"D","4":"A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"4":"H"},N:{"4":"A B"},O:{"1":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","4":"I jC kC lC"},Q:{"1":"uC"},R:{"4":"vC"},S:{"4":"wC"}},B:1,C:"HTML5 form features"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fullscreen.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fullscreen.js index daa12b2a1a14da..71a755521b7f3c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fullscreen.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/fullscreen.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","548":"B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","516":"C J K G L M N"},C:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F uB vB","676":"0 1 2 3 4 5 6 7 8 9 A B C J K G L M N k l m n o p q r s t u v w x y z AB BB","1700":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB"},D:{"1":"XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K","676":"G L M N k","804":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB"},E:{"2":"H j zB mB","548":"pB 7B","676":"0B","804":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B C 8B 9B AC BC gB qB CC","804":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC","2052":"OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D","292":"A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A","548":"B"},O:{"804":"eC"},P:{"1":"nB kC lC mC nC oC pC","804":"H fC gC hC iC jC"},Q:{"804":"qC"},R:{"804":"rC"},S:{"1":"sC"}},B:1,C:"Full Screen API"}; +module.exports={A:{A:{"2":"J D E F A xB","548":"B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","516":"C K L G M N O"},C:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F zB 0B","676":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB","1700":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB"},D:{"1":"aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L","676":"G M N O n","804":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB"},E:{"2":"I m 3B qB","548":"tB uB kB BC","676":"4B","804":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B C CC DC EC FC iB vB GC","804":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC","2052":"SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D","292":"A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A","548":"B"},O:{"804":"iC"},P:{"1":"rB oC pC qC rC sC kB tC","804":"I jC kC lC mC nC"},Q:{"804":"uC"},R:{"804":"vC"},S:{"1":"wC"}},B:1,C:"Full Screen API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gamepad.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gamepad.js index aff9e5e7d958b7..74cde09706fff3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gamepad.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gamepad.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l","33":"m n o p"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"Gamepad API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o","33":"p q r s"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"Gamepad API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/geolocation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/geolocation.js index b52d4c67823641..18413a5bf690a9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/geolocation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/geolocation.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"sB","8":"I D E"},B:{"1":"C J K G L M N","129":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB uB vB","8":"tB iB","129":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB","4":"H","129":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I D E F B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"H zB mB","129":"A"},F:{"1":"0 1 2 3 B C L M N k l m n o p q r s t u v w x y z BC gB qB CC hB","2":"F G 8B","8":"9B AC","129":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"E mB DC rB EC FC GC HC IC JC","129":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H YC ZC aC bC rB cC dC","129":"T"},J:{"1":"D A"},K:{"1":"B C gB qB hB","8":"A","129":"U"},L:{"129":"fB"},M:{"129":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H","129":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"129":"qC"},R:{"129":"rC"},S:{"1":"sC"}},B:2,C:"Geolocation"}; +module.exports={A:{A:{"1":"F A B","2":"xB","8":"J D E"},B:{"1":"C K L G M N O","129":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB zB 0B","8":"yB lB","129":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","4":"I","129":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J D E F B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"I 3B qB","129":"A"},F:{"1":"0 1 2 3 4 5 6 B C M N O n o p q r s t u v w x y z FC iB vB GC jB","2":"F G CC","8":"DC EC","129":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"E qB HC wB IC JC KC LC MC NC","129":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I cC dC eC fC wB gC hC","129":"H"},J:{"1":"D A"},K:{"1":"B C iB vB jB","8":"A","129":"Y"},L:{"129":"X"},M:{"129":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I","129":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"129":"uC"},R:{"129":"vC"},S:{"1":"wC"}},B:2,C:"Geolocation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getboundingclientrect.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getboundingclientrect.js index bb31c765c497e2..c202ad1a16f340 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getboundingclientrect.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getboundingclientrect.js @@ -1 +1 @@ -module.exports={A:{A:{"644":"I D sB","2049":"F A B","2692":"E"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2049":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB","260":"H j I D E F A B","1156":"iB","1284":"uB","1796":"vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","16":"F 8B","132":"9B AC"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","132":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"2049":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Element.getBoundingClientRect()"}; +module.exports={A:{A:{"644":"J D xB","2049":"F A B","2692":"E"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2049":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB","260":"I m J D E F A B","1156":"lB","1284":"zB","1796":"0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","16":"F CC","132":"DC EC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","132":"A"},L:{"1":"X"},M:{"1":"H"},N:{"2049":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Element.getBoundingClientRect()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getcomputedstyle.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getcomputedstyle.js index 790cb10d8c1ef0..9517e3be112da0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getcomputedstyle.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getcomputedstyle.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB","132":"iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","260":"H j I D E F A"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","260":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","260":"F 8B 9B AC"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","260":"mB DC rB"},H:{"260":"XC"},I:{"1":"H T bC rB cC dC","260":"iB YC ZC aC"},J:{"1":"A","260":"D"},K:{"1":"B C U gB qB hB","260":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"getComputedStyle"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB","132":"lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","260":"I m J D E F A"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","260":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","260":"F CC DC EC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","260":"qB HC wB"},H:{"260":"bC"},I:{"1":"I H fC wB gC hC","260":"lB cC dC eC"},J:{"1":"A","260":"D"},K:{"1":"B C Y iB vB jB","260":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"getComputedStyle"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getelementsbyclassname.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getelementsbyclassname.js index 7d05cc80be641b..89ffd4121a9014 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getelementsbyclassname.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"sB","8":"I D E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","8":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"getElementsByClassName"}; +module.exports={A:{A:{"1":"F A B","2":"xB","8":"J D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","8":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"getElementsByClassName"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getrandomvalues.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getrandomvalues.js index 81bc4e4c80c721..f64da55e29a81b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getrandomvalues.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/getrandomvalues.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","33":"B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A","33":"B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"crypto.getRandomValues()"}; +module.exports={A:{A:{"2":"J D E F A xB","33":"B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A","33":"B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"crypto.getRandomValues()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gyroscope.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gyroscope.js index d933f0390140ea..437b5bb34c3e6a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gyroscope.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/gyroscope.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","194":"NB jB OB kB PB QB U RB SB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"Gyroscope"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB mB RB nB SB TB Y UB VB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"Gyroscope"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hardwareconcurrency.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hardwareconcurrency.js index 316cd88261a202..4decab5ae1e703 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hardwareconcurrency.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB uB vB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"2":"H j I D zB mB 0B 1B 2B","129":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","194":"E F A 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o 8B 9B AC BC gB qB CC hB"},G:{"2":"mB DC rB EC FC GC","129":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","194":"E HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"navigator.hardwareConcurrency"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L"},C:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB zB 0B"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"2":"I m J D 3B qB 4B 5B 6B","129":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","194":"E F A 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r CC DC EC FC iB vB GC jB"},G:{"2":"qB HC wB IC JC KC","129":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","194":"E LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"navigator.hardwareConcurrency"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hashchange.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hashchange.js index 5125e13f0d5db3..eec470e0c2c4ba 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hashchange.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hashchange.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","8":"I D sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","8":"tB iB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","8":"H"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","8":"F 8B 9B AC"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB"},H:{"2":"XC"},I:{"1":"iB H T ZC aC bC rB cC dC","2":"YC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","8":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Hashchange event"}; +module.exports={A:{A:{"1":"E F A B","8":"J D xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","8":"yB lB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","8":"I"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","8":"F CC DC EC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB"},H:{"2":"bC"},I:{"1":"lB I H dC eC fC wB gC hC","2":"cC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","8":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Hashchange event"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/heif.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/heif.js index 1c2fac1d09ff52..b8dc2746f42869 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/heif.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/heif.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A zB mB 0B 1B 2B 3B nB","130":"B C J K G gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC","130":"MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"HEIF/ISO Base Media File Format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","130":"B C K L G iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC","130":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"HEIF/ISO Base Media File Format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hevc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hevc.js index 0a9534cdc2e29d..ec935356d4ca1a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hevc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hevc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","132":"B"},B:{"2":"O P Q R V W X Y Z a b c d e f g h i S T","132":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB","516":"B C gB hB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","258":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","258":"U"},L:{"258":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H","258":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"HEVC/H.265 video format"}; +module.exports={A:{A:{"2":"J D E F A xB","132":"B"},B:{"132":"C K L G M N O","1028":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","516":"B C iB jB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","258":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","258":"Y"},L:{"258":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I","258":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"HEVC/H.265 video format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hidden.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hidden.js index d33cdf843a3eb3..186f95bcd6df26 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hidden.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/hidden.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","2":"F B 8B 9B AC BC"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"1":"XC"},I:{"1":"H T bC rB cC dC","2":"iB YC ZC aC"},J:{"1":"A","2":"D"},K:{"1":"C U gB qB hB","2":"A B"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"hidden attribute"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","2":"F B CC DC EC FC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"1":"bC"},I:{"1":"I H fC wB gC hC","2":"lB cC dC eC"},J:{"1":"A","2":"D"},K:{"1":"C Y iB vB jB","2":"A B"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"hidden attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/high-resolution-time.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/high-resolution-time.js index ac8f37d4a9667e..7a805b16531466 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/high-resolution-time.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/high-resolution-time.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k","33":"l m n o"},E:{"1":"E F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"High Resolution Time API"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n","33":"o p q r"},E:{"1":"E F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"High Resolution Time API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/history.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/history.js index b58dca60ce8cd2..36f2271d354d8e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/history.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/history.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","4":"j 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R qB CC hB","2":"F B 8B 9B AC BC gB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC","4":"rB"},H:{"2":"XC"},I:{"1":"T ZC aC rB cC dC","2":"iB H YC bC"},J:{"1":"D A"},K:{"1":"C U gB qB hB","2":"A B"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Session history management"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","4":"m 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W vB GC jB","2":"F B CC DC EC FC iB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC","4":"wB"},H:{"2":"bC"},I:{"1":"H dC eC wB gC hC","2":"lB I cC fC"},J:{"1":"D A"},K:{"1":"C Y iB vB jB","2":"A B"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Session history management"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html-media-capture.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html-media-capture.js index 28110b3a138532..8336888fad949a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html-media-capture.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html-media-capture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"mB DC rB EC","129":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC","257":"ZC aC"},J:{"1":"A","16":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"516":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"16":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:4,C:"HTML Media Capture"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"qB HC wB IC","129":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC","257":"dC eC"},J:{"1":"A","16":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"516":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"16":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:4,C:"HTML Media Capture"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html5semantic.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html5semantic.js index 7c605b9f1c769e..c4521ec989db4a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html5semantic.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/html5semantic.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","8":"I D E","260":"F A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB","132":"iB uB vB","260":"H j I D E F A B C J K G L M N k l"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j","260":"I D E F A B C J K G L M N k l m n o p q"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","132":"H zB mB","260":"j I 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","132":"F B 8B 9B AC BC","260":"C gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","132":"mB","260":"DC rB EC FC"},H:{"132":"XC"},I:{"1":"T cC dC","132":"YC","260":"iB H ZC aC bC rB"},J:{"260":"D A"},K:{"1":"U","132":"A","260":"B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"260":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"HTML5 semantic elements"}; +module.exports={A:{A:{"2":"xB","8":"J D E","260":"F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB","132":"lB zB 0B","260":"I m J D E F A B C K L G M N O n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m","260":"J D E F A B C K L G M N O n o p q r s t"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","132":"I 3B qB","260":"m J 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","132":"F B CC DC EC FC","260":"C iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","132":"qB","260":"HC wB IC JC"},H:{"132":"bC"},I:{"1":"H gC hC","132":"cC","260":"lB I dC eC fC wB"},J:{"260":"D A"},K:{"1":"Y","132":"A","260":"B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"260":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"HTML5 semantic elements"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http-live-streaming.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http-live-streaming.js index b32fd8a685cfab..2e98f3fd17bc70 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http-live-streaming.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http-live-streaming.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N","2":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:7,C:"HTTP Live Streaming (HLS)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O","2":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:7,C:"HTTP Live Streaming (HLS)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http2.js index 13b5c727fd1d0b..7696922530bf6f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","132":"B"},B:{"1":"C J K G L M N","513":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB","2":"0 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","513":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB","2":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","513":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B","260":"F A 3B nB"},F:{"1":"0 1 2 t u v w x y z","2":"F B C G L M N k l m n o p q r s 8B 9B AC BC gB qB CC hB","513":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","513":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","513":"U"},L:{"513":"fB"},M:{"513":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H","513":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"513":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"HTTP/2 protocol"}; +module.exports={A:{A:{"2":"J D E F A xB","132":"B"},B:{"1":"C K L G M N O","513":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB","2":"0 1 2 3 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","513":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB","2":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","513":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B","260":"F A 7B rB"},F:{"1":"0 1 2 3 4 5 w x y z","2":"F B C G M N O n o p q r s t u v CC DC EC FC iB vB GC jB","513":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","513":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","513":"Y"},L:{"513":"X"},M:{"513":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I","513":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"513":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"HTTP/2 protocol"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http3.js index a7251971732860..601fd76956719f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/http3.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"Y Z a b c d e f g h i S T","2":"C J K G L M N","322":"O P Q R V","578":"W X"},C:{"1":"Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB uB vB","194":"YB ZB aB bB cB dB eB O P Q lB R V W X Y"},D:{"1":"Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","322":"O P Q R V","578":"W X"},E:{"2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB 4B","1090":"K G 5B 6B oB pB 7B"},F:{"1":"aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB 8B 9B AC BC gB qB CC hB","578":"ZB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC","66":"UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"194":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nC oC pC","2":"H fC gC hC iC jC nB kC lC mC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"HTTP/3 protocol"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"W Z a b c d e f g h i j k l H X","2":"C K L G M N O","322":"P Q R S T","578":"U V"},C:{"1":"Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB zB 0B","194":"bB cB dB eB fB gB hB P Q R oB S T U V W"},D:{"1":"W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","322":"P Q R S T","578":"U V"},E:{"2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB 8B","1090":"L G 9B AC sB tB uB kB BC"},F:{"1":"dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB CC DC EC FC iB vB GC jB","578":"cB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC","66":"YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"194":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rC sC kB tC","2":"I jC kC lC mC nC rB oC pC qC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"HTTP/3 protocol"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-sandbox.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-sandbox.js index ce20dd1a943b3d..7841905eb31828 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-sandbox.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-sandbox.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L uB vB","4":"M N k l m n o p q r s"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC"},H:{"2":"XC"},I:{"1":"iB H T ZC aC bC rB cC dC","2":"YC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"sandbox attribute for iframes"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M zB 0B","4":"N O n o p q r s t u v"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC"},H:{"2":"bC"},I:{"1":"lB I H dC eC fC wB gC hC","2":"cC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"sandbox attribute for iframes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-seamless.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-seamless.js index a66df27c6473b3..e2852a5f4652c4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-seamless.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-seamless.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","66":"l m n o p q r"},E:{"2":"H j I E F A B C J K G zB mB 0B 1B 3B nB gB hB 4B 5B 6B oB pB 7B","130":"D 2B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","130":"GC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"seamless attribute for iframes"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","66":"o p q r s t u"},E:{"2":"I m J E F A B C K L G 3B qB 4B 5B 7B rB iB jB 8B 9B AC sB tB uB kB BC","130":"D 6B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","130":"KC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"seamless attribute for iframes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-srcdoc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-srcdoc.js index c90aa99acfc29f..1fcc35544ae7ed 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/iframe-srcdoc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","8":"I D E F A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","8":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB","8":"iB H j I D E F A B C J K G L M N k l m n o p uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J","8":"K G L M N k"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB","8":"H j 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B 8B 9B AC BC","8":"C gB qB CC hB"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB","8":"DC rB EC"},H:{"2":"XC"},I:{"1":"T cC dC","8":"iB H YC ZC aC bC rB"},J:{"1":"A","8":"D"},K:{"1":"U","2":"A B","8":"C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"8":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"srcdoc attribute for iframes"}; +module.exports={A:{A:{"2":"xB","8":"J D E F A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","8":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB","8":"lB I m J D E F A B C K L G M N O n o p q r s zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K","8":"L G M N O n"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB","8":"I m 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B CC DC EC FC","8":"C iB vB GC jB"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB","8":"HC wB IC"},H:{"2":"bC"},I:{"1":"H gC hC","8":"lB I cC dC eC fC wB"},J:{"1":"A","8":"D"},K:{"1":"Y","2":"A B","8":"C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"8":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"srcdoc attribute for iframes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imagecapture.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imagecapture.js index c0ee509127bd43..ea70edf91e6141 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imagecapture.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imagecapture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","322":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","194":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","322":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","322":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"322":"qC"},R:{"1":"rC"},S:{"194":"sC"}},B:5,C:"ImageCapture API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","322":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","194":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB","322":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","322":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"322":"uC"},R:{"1":"vC"},S:{"194":"wC"}},B:5,C:"ImageCapture API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ime.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ime.js index 28d8bd14739e17..2efd4246d6f0b6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ime.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ime.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","161":"B"},B:{"2":"O P Q R V W X Y Z a b c d e f g h i S T","161":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A","161":"B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Input Method Editor API"}; +module.exports={A:{A:{"2":"J D E F A xB","161":"B"},B:{"2":"P Q R S T U V W Z a b c d e f g h i j k l H X","161":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A","161":"B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Input Method Editor API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js index 1efb98609f136c..0617f8c7c166ee 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"naturalWidth & naturalHeight image properties"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"naturalWidth & naturalHeight image properties"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/import-maps.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/import-maps.js index 136fbef6ad5752..716815ab4037e2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/import-maps.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/import-maps.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"a b c d e f g h i S T","2":"C J K G L M N","194":"O P Q R V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB","194":"aB bB cB dB eB O P Q R V W X Y Z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB 8B 9B AC BC gB qB CC hB","194":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"oC pC","2":"H fC gC hC iC jC nB kC lC mC nC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Import maps"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"a b c d e f g h i j k l H X","2":"C K L G M N O","194":"P Q R S T U V W Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H zB 0B","322":"X pB"},D:{"1":"a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB","194":"dB eB fB gB hB P Q R S T U V W Z"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB CC DC EC FC iB vB GC jB","194":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"sC kB tC","2":"I jC kC lC mC nC rB oC pC qC rC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Import maps"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imports.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imports.js index e2d348673ffbc8..dbf3e7b94092e6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imports.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/imports.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","8":"A B"},B:{"1":"O","2":"P Q R V W X Y Z a b c d e f g h i S T","8":"C J K G L M N"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u uB vB","8":"v w LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","72":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","66":"v w x y z","72":"0"},E:{"2":"H j zB mB 0B","8":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB","2":"F B C G L TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","66":"M N k l m","72":"n"},G:{"2":"mB DC rB EC FC","8":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"8":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC","2":"mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"HTML Imports"}; +module.exports={A:{A:{"2":"J D E F xB","8":"A B"},B:{"1":"P","2":"Q R S T U V W Z a b c d e f g h i j k l H X","8":"C K L G M N O"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x zB 0B","8":"y z OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","72":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P","2":"I m J D E F A B C K L G M N O n o p q r s t u v w x Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","66":"0 1 2 y z","72":"3"},E:{"2":"I m 3B qB 4B","8":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB","2":"F B C G M WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","66":"N O n o p","72":"q"},G:{"2":"qB HC wB IC JC","8":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"8":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC","2":"qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"HTML Imports"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js index 2656619f207d8c..f675bbe86351dc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","16":"sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","2":"tB iB","16":"uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F B 8B 9B AC BC gB qB"},G:{"1":"PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"2":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"indeterminate checkbox"}; +module.exports={A:{A:{"1":"J D E F A B","16":"xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","2":"yB lB","16":"zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F B CC DC EC FC iB vB"},G:{"1":"TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"2":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"indeterminate checkbox"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb.js index 6b88e25ccbdd4c..f293f03256f968 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","132":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","132":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","33":"A B C J K G","36":"H j I D E F"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"A","8":"H j I D E F","33":"o","36":"B C J K G L M N k l m n"},E:{"1":"A B C J K G nB gB hB 4B 6B oB pB 7B","8":"H j I D zB mB 0B 1B","260":"E F 2B 3B","516":"5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F 8B 9B","8":"B C AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC WC oB pB","8":"mB DC rB EC FC GC","260":"E HC IC JC","516":"VC"},H:{"2":"XC"},I:{"1":"T cC dC","8":"iB H YC ZC aC bC rB"},J:{"1":"A","8":"D"},K:{"1":"U","2":"A","8":"B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"IndexedDB"}; +module.exports={A:{A:{"2":"J D E F xB","132":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","132":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","33":"A B C K L G","36":"I m J D E F"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"A","8":"I m J D E F","33":"r","36":"B C K L G M N O n o p q"},E:{"1":"A B C K L G rB iB jB 8B AC sB tB uB kB BC","8":"I m J D 3B qB 4B 5B","260":"E F 6B 7B","516":"9B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F CC DC","8":"B C EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC aC sB tB uB kB","8":"qB HC wB IC JC KC","260":"E LC MC NC","516":"ZC"},H:{"2":"bC"},I:{"1":"H gC hC","8":"lB I cC dC eC fC wB"},J:{"1":"A","8":"D"},K:{"1":"Y","2":"A","8":"B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"IndexedDB"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb2.js index eff9f9db715551..0763fea46f5940 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/indexeddb2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","132":"9 AB BB","260":"CB DB EB FB"},D:{"1":"NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB","132":"DB EB FB GB","260":"HB IB JB KB LB MB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","132":"0 1 2 3","260":"4 5 6 7 8 9"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC","16":"KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H","260":"fC gC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"260":"sC"}},B:4,C:"IndexedDB 2.0"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB zB 0B","132":"CB DB EB","260":"FB GB HB IB"},D:{"1":"QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB","132":"GB HB IB JB","260":"KB LB MB NB OB PB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","132":"3 4 5 6","260":"7 8 9 AB BB CB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC","16":"OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I","260":"jC kC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"260":"wC"}},B:4,C:"IndexedDB 2.0"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/inline-block.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/inline-block.js index f6a7a4a668d408..7609fed81fd9db 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/inline-block.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/inline-block.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","4":"sB","132":"I D"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","36":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS inline-block"}; +module.exports={A:{A:{"1":"E F A B","4":"xB","132":"J D"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","36":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS inline-block"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/innertext.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/innertext.js index 63a3a83d171359..1fb91addbffb33 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/innertext.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/innertext.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","16":"sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","16":"F"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"HTMLElement.innerText"}; +module.exports={A:{A:{"1":"J D E F A B","16":"xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","16":"F"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"HTMLElement.innerText"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js index f29c64d32b081c..f4b8480a6d5bc0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A sB","132":"B"},B:{"132":"C J K G L M N","260":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u uB vB","516":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"M N k l m n o p q r","2":"H j I D E F A B C J K G L","132":"0 1 2 3 4 5 s t u v w x y z","260":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"I 0B 1B","2":"H j zB mB","2052":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"mB DC rB","1025":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1025":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2052":"A B"},O:{"1025":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"260":"qC"},R:{"1":"rC"},S:{"516":"sC"}},B:1,C:"autocomplete attribute: on & off values"}; +module.exports={A:{A:{"1":"J D E F A xB","132":"B"},B:{"132":"C K L G M N O","260":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x zB 0B","516":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"N O n o p q r s t u","2":"I m J D E F A B C K L G M","132":"0 1 2 3 4 5 6 7 8 v w x y z","260":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"J 4B 5B","2":"I m 3B qB","2052":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"qB HC wB","1025":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1025":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2052":"A B"},O:{"1025":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"260":"uC"},R:{"1":"vC"},S:{"516":"wC"}},B:1,C:"autocomplete attribute: on & off values"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-color.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-color.js index 60b77e3d798911..c35975da2c19a2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-color.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-color.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k"},E:{"1":"J K G hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","2":"F G L 8B 9B AC BC"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC","129":"PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:1,C:"Color input type"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n"},E:{"1":"K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","2":"F G M CC DC EC FC"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC","129":"TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:1,C:"Color input type"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-datetime.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-datetime.js index 85c2a0b1409638..6112d782eb0d6e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-datetime.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-datetime.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","132":"C"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB uB vB","1090":"IB JB KB LB","2052":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d","4100":"e f g h i S T fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k","2052":"l m n o p"},E:{"2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B","4100":"G 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"mB DC rB","260":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB YC ZC aC","514":"H bC rB"},J:{"1":"A","2":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2052":"sC"}},B:1,C:"Date and time input types"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","132":"C"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB zB 0B","1090":"LB MB NB OB","2052":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d","4100":"e f g h i j k l H X pB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n","2052":"o p q r s"},E:{"2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B","4100":"G 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"qB HC wB","260":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB cC dC eC","514":"I fC wB"},J:{"1":"A","2":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2052":"wC"}},B:1,C:"Date and time input types"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-email-tel-url.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-email-tel-url.js index 05200c7ffa100e..51802f348a51df 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-email-tel-url.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-email-tel-url.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","132":"YC ZC aC"},J:{"1":"A","132":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Email, telephone & URL input types"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","132":"cC dC eC"},J:{"1":"A","132":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Email, telephone & URL input types"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-event.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-event.js index 22b9290f6a693c..c8229835179c09 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-event.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-event.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","2561":"A B","2692":"F"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2561":"C J K G L M N"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","16":"tB","1537":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB vB","1796":"iB uB"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K","1025":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB","1537":"G L M N k l m n o p q r s t u v w x y z"},E:{"1":"K G 4B 5B 6B oB pB 7B","16":"H j I zB mB","1025":"D E F A B C 1B 2B 3B nB gB","1537":"0B","4097":"J hB"},F:{"1":"HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","16":"F B C 8B 9B AC BC gB qB","260":"CC","1025":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB","1537":"G L M N k l m"},G:{"16":"mB DC rB","1025":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","1537":"EC FC GC"},H:{"2":"XC"},I:{"16":"YC ZC","1025":"T dC","1537":"iB H aC bC rB cC"},J:{"1025":"A","1537":"D"},K:{"1":"A B C gB qB hB","1025":"U"},L:{"1":"fB"},M:{"1537":"S"},N:{"2561":"A B"},O:{"1537":"eC"},P:{"1025":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1025":"qC"},R:{"1025":"rC"},S:{"1537":"sC"}},B:1,C:"input event"}; +module.exports={A:{A:{"2":"J D E xB","2561":"A B","2692":"F"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2561":"C K L G M N O"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","16":"yB","1537":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB 0B","1796":"lB zB"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L","1025":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB","1537":"0 1 2 G M N O n o p q r s t u v w x y z"},E:{"1":"L G 8B 9B AC sB tB uB kB BC","16":"I m J 3B qB","1025":"D E F A B C 5B 6B 7B rB iB","1537":"4B","4097":"K jB"},F:{"1":"KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","16":"F B C CC DC EC FC iB vB","260":"GC","1025":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","1537":"G M N O n o p"},G:{"1":"VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB","1025":"E LC MC NC OC PC QC RC SC","1537":"IC JC KC","4097":"TC UC"},H:{"2":"bC"},I:{"16":"cC dC","1025":"H hC","1537":"lB I eC fC wB gC"},J:{"1025":"A","1537":"D"},K:{"1":"A B C iB vB jB","1025":"Y"},L:{"1":"X"},M:{"1537":"H"},N:{"2561":"A B"},O:{"1537":"iC"},P:{"1025":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1025":"uC"},R:{"1025":"vC"},S:{"1537":"wC"}},B:1,C:"input event"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-accept.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-accept.js index 6d6ee643d35032..9b89f3a8d74361 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-accept.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-accept.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","132":"0 1 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H","16":"j I D E m n o p q","132":"F A B C J K G L M N k l"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","132":"I D E F A B 1B 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"2":"FC GC","132":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","514":"mB DC rB EC"},H:{"2":"XC"},I:{"2":"YC ZC aC","260":"iB H bC rB","514":"T cC dC"},J:{"132":"A","260":"D"},K:{"2":"A B C gB qB hB","514":"U"},L:{"260":"fB"},M:{"2":"S"},N:{"514":"A","1028":"B"},O:{"2":"eC"},P:{"260":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"260":"qC"},R:{"260":"rC"},S:{"1":"sC"}},B:1,C:"accept attribute for file input"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","132":"0 1 2 3 4 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I","16":"m J D E p q r s t","132":"F A B C K L G M N O n o"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","132":"J D E F A B 5B 6B 7B rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"2":"JC KC","132":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","514":"qB HC wB IC"},H:{"2":"bC"},I:{"2":"cC dC eC","260":"lB I fC wB","514":"H gC hC"},J:{"132":"A","260":"D"},K:{"2":"A B C iB vB jB","514":"Y"},L:{"260":"X"},M:{"2":"H"},N:{"514":"A","1028":"B"},O:{"2":"iC"},P:{"260":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"260":"uC"},R:{"260":"vC"},S:{"1":"wC"}},B:1,C:"accept attribute for file input"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-directory.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-directory.js index bd7ddfed91e76b..2f5d1ed182f2af 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-directory.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-directory.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Directory selection from file input"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w x"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Directory selection from file input"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-multiple.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-multiple.js index aadb1288bfdede..aac020c07da8bc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-multiple.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-file-multiple.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","2":"tB iB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","2":"F 8B 9B AC"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC"},H:{"130":"XC"},I:{"130":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"130":"A B C U gB qB hB"},L:{"132":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"130":"eC"},P:{"130":"H","132":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"132":"qC"},R:{"132":"rC"},S:{"2":"sC"}},B:1,C:"Multiple file selection"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","2":"yB lB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","2":"F CC DC EC"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC"},H:{"130":"bC"},I:{"130":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"130":"A B C Y iB vB jB"},L:{"132":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"130":"iC"},P:{"130":"I","132":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"132":"uC"},R:{"132":"vC"},S:{"2":"wC"}},B:1,C:"Multiple file selection"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-inputmode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-inputmode.js index ca6c0c9ccd46e1..db9628ef90b419 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-inputmode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-inputmode.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"g h i S T fB","2":"tB iB H j I D E F A B C J K G L uB vB","4":"M N k l","194":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB","66":"LB MB NB jB OB kB PB QB U RB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","66":"8 9 AB BB CB DB EB FB GB HB"},G:{"1":"PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"jC nB kC lC mC nC oC pC","2":"H fC gC hC iC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"194":"sC"}},B:1,C:"inputmode attribute"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M zB 0B","4":"N O n o","194":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB","66":"OB PB QB mB RB nB SB TB Y UB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB CC DC EC FC iB vB GC jB","66":"BB CB DB EB FB GB HB IB JB KB"},G:{"1":"TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"nC rB oC pC qC rC sC kB tC","2":"I jC kC lC mC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"194":"wC"}},B:1,C:"inputmode attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-minlength.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-minlength.js index 3d927aac15dca4..9ffe3767426030 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-minlength.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-minlength.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L"},C:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB uB vB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:1,C:"Minimum length attribute for input fields"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M"},C:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB zB 0B"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:1,C:"Minimum length attribute for input fields"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-number.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-number.js index 6fb1ed7c917a57..820bf1512538ab 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-number.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-number.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","129":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","129":"C J","1025":"K G L M N"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB","513":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"388":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB YC ZC aC","388":"H T bC rB cC dC"},J:{"2":"D","388":"A"},K:{"1":"A B C gB qB hB","388":"U"},L:{"388":"fB"},M:{"641":"S"},N:{"388":"A B"},O:{"388":"eC"},P:{"388":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"388":"qC"},R:{"388":"rC"},S:{"513":"sC"}},B:1,C:"Number input type"}; +module.exports={A:{A:{"2":"J D E F xB","129":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","129":"C K","1025":"L G M N O"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B","513":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"388":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB cC dC eC","388":"I H fC wB gC hC"},J:{"2":"D","388":"A"},K:{"1":"A B C iB vB jB","388":"Y"},L:{"388":"X"},M:{"641":"H"},N:{"388":"A B"},O:{"388":"iC"},P:{"388":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"388":"uC"},R:{"388":"vC"},S:{"513":"wC"}},B:1,C:"Number input type"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-pattern.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-pattern.js index 510915bb17d83b..de9b231975fc18 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-pattern.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-pattern.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","16":"j","388":"I D E F A 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB","388":"E EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T dC","2":"iB H YC ZC aC bC rB cC"},J:{"1":"A","2":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Pattern attribute for input fields"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","16":"m","388":"J D E F A 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB","388":"E IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H hC","2":"lB I cC dC eC fC wB gC"},J:{"1":"A","2":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Pattern attribute for input fields"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-placeholder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-placeholder.js index e6ceee9722cea7..bbaae94b0aedc6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-placeholder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-placeholder.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","132":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R qB CC hB","2":"F 8B 9B AC BC","132":"B gB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB T YC ZC aC rB cC dC","4":"H bC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"input placeholder attribute"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","132":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W vB GC jB","2":"F CC DC EC FC","132":"B iB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB H cC dC eC wB gC hC","4":"I fC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"input placeholder attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-range.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-range.js index 941aca850d736b..c3eed3bea56856 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-range.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-range.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"1":"T rB cC dC","4":"iB H YC ZC aC bC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Range input type"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"1":"H wB gC hC","4":"lB I cC dC eC fC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Range input type"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-search.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-search.js index cee487cc0e4679..43bc971f60fc05 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-search.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-search.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","129":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","129":"C J K G L M N"},C:{"2":"tB iB uB vB","129":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K m n o p q","129":"G L M N k l"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F 8B 9B AC BC","16":"B gB qB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB"},H:{"129":"XC"},I:{"1":"T cC dC","16":"YC ZC","129":"iB H aC bC rB"},J:{"1":"D","129":"A"},K:{"1":"C U","2":"A","16":"B gB qB","129":"hB"},L:{"1":"fB"},M:{"129":"S"},N:{"129":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"129":"sC"}},B:1,C:"Search input type"}; +module.exports={A:{A:{"2":"J D E F xB","129":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","129":"C K L G M N O"},C:{"2":"yB lB zB 0B","129":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L p q r s t","129":"G M N O n o"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F CC DC EC FC","16":"B iB vB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB"},H:{"129":"bC"},I:{"1":"H gC hC","16":"cC dC","129":"lB I eC fC wB"},J:{"1":"D","129":"A"},K:{"1":"C Y","2":"A","16":"B iB vB","129":"jB"},L:{"1":"X"},M:{"129":"H"},N:{"129":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"129":"wC"}},B:1,C:"Search input type"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-selection.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-selection.js index 244d169379adb4..72e913518aa894 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-selection.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/input-selection.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","16":"F 8B 9B AC"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Selection controls for input & textarea"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","16":"F CC DC EC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Selection controls for input & textarea"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insert-adjacent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insert-adjacent.js index f97e1ffda30b7f..cb98807fe851e7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insert-adjacent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insert-adjacent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","16":"sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","16":"F"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()"}; +module.exports={A:{A:{"1":"J D E F A B","16":"xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","16":"F"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insertadjacenthtml.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insertadjacenthtml.js index dc4b3281d52764..ebb9c4b02e93b8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/insertadjacenthtml.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","16":"sB","132":"I D E F"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 9B AC BC gB qB CC hB","16":"F 8B"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Element.insertAdjacentHTML()"}; +module.exports={A:{A:{"1":"A B","16":"xB","132":"J D E F"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W DC EC FC iB vB GC jB","16":"F CC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Element.insertAdjacentHTML()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/internationalization.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/internationalization.js index 771d8e9e904dec..8347195e08f5c9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/internationalization.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/internationalization.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:6,C:"Internationalization API"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:6,C:"Internationalization API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js index ab0279e7f9df76..ebfedc8731ae04 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"kC lC mC nC oC pC","2":"H fC gC hC iC jC nB"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"IntersectionObserver V2"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"oC pC qC rC sC kB tC","2":"I jC kC lC mC nC rB"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"IntersectionObserver V2"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver.js index 0946c73fde9407..75d87392a27499 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intersectionobserver.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N","2":"C J K","516":"G","1025":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB uB vB","194":"HB IB JB"},D:{"1":"NB jB OB kB PB QB U","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB","516":"GB HB IB JB KB LB MB","1025":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"J K G hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","2":"0 1 2 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","516":"3 4 5 6 7 8 9","1025":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","1025":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","1025":"U"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"516":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H","516":"fC gC"},Q:{"1025":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"IntersectionObserver"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O","2":"C K L","516":"G","1025":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B","194":"KB LB MB"},D:{"1":"QB mB RB nB SB TB Y","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","516":"JB KB LB MB NB OB PB","1025":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","2":"0 1 2 3 4 5 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","516":"6 7 8 9 AB BB CB","1025":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","1025":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","1025":"Y"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"516":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I","516":"jC kC"},Q:{"1025":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"IntersectionObserver"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intl-pluralrules.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intl-pluralrules.js index 725409f0a0130b..7f464ba65a4df9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intl-pluralrules.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intl-pluralrules.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M","130":"N"},C:{"1":"NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB uB vB"},D:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB hB"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB 8B 9B AC BC gB qB CC hB"},G:{"1":"QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Intl.PluralRules API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N","130":"O"},C:{"1":"QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB zB 0B"},D:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB jB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB CC DC EC FC iB vB GC jB"},G:{"1":"UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Intl.PluralRules API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intrinsic-width.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intrinsic-width.js index dc62ec056615cf..5fa676a4c1eef6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intrinsic-width.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/intrinsic-width.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","1537":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB","932":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB uB vB","2308":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"H j I D E F A B C J K G L M N k l m","545":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB","1537":"BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I zB mB 0B","516":"B C J K G gB hB 4B 5B 6B oB pB 7B","548":"F A 3B nB","676":"D E 1B 2B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","513":"z","545":"G L M N k l m n o p q r s t u v w x","1537":"0 1 2 3 4 5 6 7 8 9 y AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"mB DC rB EC FC","516":"UC VC WC oB pB","548":"IC JC KC LC MC NC OC PC QC RC SC TC","676":"E GC HC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","545":"cC dC","1537":"T"},J:{"2":"D","545":"A"},K:{"2":"A B C gB qB hB","1537":"U"},L:{"1537":"fB"},M:{"2308":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"545":"H","1537":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"545":"qC"},R:{"1537":"rC"},S:{"932":"sC"}},B:5,C:"Intrinsic & Extrinsic Sizing"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","1537":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB","932":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB zB 0B","2308":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"I m J D E F A B C K L G M N O n o p","545":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB","1537":"EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J 3B qB 4B","516":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","548":"F A 7B rB","676":"D E 5B 6B"},F:{"2":"F B C CC DC EC FC iB vB GC jB","513":"2","545":"0 G M N O n o p q r s t u v w x y z","1537":"1 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"qB HC wB IC JC","516":"YC ZC aC sB tB uB kB","548":"MC NC OC PC QC RC SC TC UC VC WC XC","676":"E KC LC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","545":"gC hC","1537":"H"},J:{"2":"D","545":"A"},K:{"2":"A B C iB vB jB","1537":"Y"},L:{"1537":"X"},M:{"2308":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"545":"I","1537":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"545":"uC"},R:{"1537":"vC"},S:{"932":"wC"}},B:5,C:"Intrinsic & Extrinsic Sizing"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpeg2000.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpeg2000.js index 7179c7fc76f514..01ed68186739c6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpeg2000.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpeg2000.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","129":"j 0B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"JPEG 2000 image format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","129":"m 4B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"JPEG 2000 image format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxl.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxl.js index e86d896b0eec06..b3308814aba256 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxl.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxl.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b","578":"c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a uB vB","322":"b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b","194":"c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB 8B 9B AC BC gB qB CC hB","194":"dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"JPEG XL image format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b","578":"c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a zB 0B","322":"b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b","194":"c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB CC DC EC FC iB vB GC jB","194":"gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"JPEG XL image format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxr.js index 8b961d938d91c1..2155af887538c6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/jpegxr.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N","2":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"1":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"JPEG XR image format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O","2":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"1":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"JPEG XR image format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js index 6a9c687da1d5cb..806a8a3e194137 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB uB vB"},D:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Lookbehind in JS regular expressions"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB zB 0B"},D:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Lookbehind in JS regular expressions"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/json.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/json.js index 8a2e708398e004..a2d154fa5c0507 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/json.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/json.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D sB","129":"E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"JSON parsing"}; +module.exports={A:{A:{"1":"F A B","2":"J D xB","129":"E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"JSON parsing"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js index a3b532d966de4c..4f3ed632e533ff 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G","132":"L M N"},C:{"1":"HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB uB vB"},D:{"1":"OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","132":"MB NB jB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B","132":"nB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","132":"9 AB BB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC","132":"LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"132":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC","132":"hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"132":"sC"}},B:5,C:"CSS justify-content: space-evenly"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G","132":"M N O"},C:{"1":"KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B"},D:{"1":"RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","132":"PB QB mB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B","132":"rB"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CC DC EC FC iB vB GC jB","132":"CB DB EB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC","132":"PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"132":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC","132":"lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"132":"wC"}},B:5,C:"CSS justify-content: space-evenly"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js index 0dc16d2170d413..8c5d8e9c03d06c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"YC ZC aC","132":"iB H bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:7,C:"High-quality kerning pairs & ligatures"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"cC dC eC","132":"lB I fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:7,C:"High-quality kerning pairs & ligatures"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js index 20030f17526ecc..2da223449ed814 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","16":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC gB qB CC","16":"C"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"U hB","2":"A B gB qB","16":"C"},L:{"1":"fB"},M:{"130":"S"},N:{"130":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:7,C:"KeyboardEvent.charCode"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","16":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC iB vB GC","16":"C"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"Y jB","2":"A B iB vB","16":"C"},L:{"1":"X"},M:{"130":"H"},N:{"130":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:7,C:"KeyboardEvent.charCode"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-code.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-code.js index 191a4691ae2731..bc486d9985fb65 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-code.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-code.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","194":"7 8 9 AB BB CB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t 8B 9B AC BC gB qB CC hB","194":"u v w x y z"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"194":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H","194":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"194":"rC"},S:{"1":"sC"}},B:5,C:"KeyboardEvent.code"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","194":"AB BB CB DB EB FB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w CC DC EC FC iB vB GC jB","194":"0 1 2 x y z"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"194":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I","194":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"194":"vC"},S:{"1":"wC"}},B:5,C:"KeyboardEvent.code"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js index 96a3899eadeaa4..f2aa3fa6c9de5c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B G L 8B 9B AC BC gB qB CC","16":"C"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U hB","2":"A B gB qB","16":"C"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"KeyboardEvent.getModifierState()"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w x"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B G M CC DC EC FC iB vB GC","16":"C"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y jB","2":"A B iB vB","16":"C"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"KeyboardEvent.getModifierState()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-key.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-key.js index fc83ae9b6d36f3..08b5d9a7a94745 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-key.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-key.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","260":"F A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n uB vB","132":"o p q r s t"},D:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"0 1 2 F B G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC","16":"C"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"1":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U hB","2":"A B gB qB","16":"C"},L:{"1":"fB"},M:{"1":"S"},N:{"260":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:5,C:"KeyboardEvent.key"}; +module.exports={A:{A:{"2":"J D E xB","260":"F A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q zB 0B","132":"r s t u v w"},D:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"0 1 2 3 4 5 F B G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC","16":"C"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"1":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y jB","2":"A B iB vB","16":"C"},L:{"1":"X"},M:{"1":"H"},N:{"260":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:5,C:"KeyboardEvent.key"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-location.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-location.js index 5996be44def85e..2c8abe190a6e30 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-location.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-location.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j I D E F A B C J K G L M N k l m n o p q r s t u"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"I zB mB","132":"H j 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC gB qB CC","16":"C","132":"G L"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB","132":"EC FC GC"},H:{"2":"XC"},I:{"1":"T cC dC","16":"YC ZC","132":"iB H aC bC rB"},J:{"132":"D A"},K:{"1":"U hB","2":"A B gB qB","16":"C"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"KeyboardEvent.location"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m J D E F A B C K L G M N O n o p q r s t u v w x"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"J 3B qB","132":"I m 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC iB vB GC","16":"C","132":"G M"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB","132":"IC JC KC"},H:{"2":"bC"},I:{"1":"H gC hC","16":"cC dC","132":"lB I eC fC wB"},J:{"132":"D A"},K:{"1":"Y jB","2":"A B iB vB","16":"C"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"KeyboardEvent.location"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-which.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-which.js index 9574a8ce63c1e4..2de3a83a973bbf 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-which.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/keyboardevent-which.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","16":"j"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 9B AC BC gB qB CC hB","16":"F 8B"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB","16":"YC ZC","132":"cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"132":"fB"},M:{"132":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"2":"H","132":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"132":"rC"},S:{"1":"sC"}},B:7,C:"KeyboardEvent.which"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","16":"m"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W DC EC FC iB vB GC jB","16":"F CC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB","16":"cC dC","132":"gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"132":"X"},M:{"132":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"2":"I","132":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"132":"vC"},S:{"1":"wC"}},B:7,C:"KeyboardEvent.which"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/lazyload.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/lazyload.js index 0efb992d06cabb..f4b1137ed5b065 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/lazyload.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/lazyload.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"C J K G L M N","2":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"1":"B","2":"A"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Resource Hints: Lazyload"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"C K L G M N O","2":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"1":"B","2":"A"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Resource Hints: Lazyload"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/let.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/let.js index a83607f6278ba4..318326b336605c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/let.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/let.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","2052":"B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","194":"0 1 2 3 4 5 6 7 8 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N","322":"0 1 2 3 4 5 k l m n o p q r s t u v w x y z","516":"6 7 8 9 AB BB CB DB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B","1028":"A nB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","322":"G L M N k l m n o p q r s","516":"0 t u v w x y z"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC","1028":"KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","516":"H"},Q:{"1":"qC"},R:{"516":"rC"},S:{"1":"sC"}},B:6,C:"let"}; +module.exports={A:{A:{"2":"J D E F A xB","2052":"B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","194":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB zB 0B"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O","322":"0 1 2 3 4 5 6 7 8 n o p q r s t u v w x y z","516":"9 AB BB CB DB EB FB GB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B","1028":"A rB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","322":"G M N O n o p q r s t u v","516":"0 1 2 3 w x y z"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC","1028":"OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","516":"I"},Q:{"1":"uC"},R:{"516":"vC"},S:{"1":"wC"}},B:6,C:"let"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-png.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-png.js index 452cf73753b87b..725f20ea195338 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-png.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-png.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"OC PC QC RC SC TC UC VC WC oB pB","130":"E mB DC rB EC FC GC HC IC JC KC LC MC NC"},H:{"130":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D","130":"A"},K:{"1":"U","130":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"130":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"PNG favicons"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"SC TC UC VC WC XC YC ZC aC sB tB uB kB","130":"E qB HC wB IC JC KC LC MC NC OC PC QC RC"},H:{"130":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D","130":"A"},K:{"1":"Y","130":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"130":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"PNG favicons"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-svg.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-svg.js index a4e7a476804ba8..601eb511fb3a91 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-svg.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-icon-svg.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O","1537":"P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB uB vB","260":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","513":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O","1537":"P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"9 AB BB CB DB EB FB GB HB IB","2":"0 1 2 3 4 5 6 7 8 F B C G L M N k l m n o p q r s t u v w x y z JB KB LB MB NB OB PB QB U RB SB 8B 9B AC BC gB qB CC hB","1537":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"OC PC QC RC SC TC UC VC WC oB pB","130":"E mB DC rB EC FC GC HC IC JC KC LC MC NC"},H:{"130":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D","130":"A"},K:{"2":"U","130":"A B C gB qB hB"},L:{"1537":"fB"},M:{"2":"S"},N:{"130":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC","1537":"mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"513":"sC"}},B:1,C:"SVG favicons"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P","1537":"Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB zB 0B","260":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","513":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P","1537":"Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"CB DB EB FB GB HB IB JB KB LB","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB MB NB OB PB QB RB SB TB Y UB VB CC DC EC FC iB vB GC jB","1537":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"SC TC UC VC WC XC YC ZC aC sB tB uB kB","130":"E qB HC wB IC JC KC LC MC NC OC PC QC RC"},H:{"130":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D","130":"A"},K:{"2":"Y","130":"A B C iB vB jB"},L:{"1537":"X"},M:{"2":"H"},N:{"130":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC","1537":"qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"513":"wC"}},B:1,C:"SVG favicons"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js index 7cda2fea9990b8..4e202836b76774 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E sB","132":"F"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB","260":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"16":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"16":"iB H T YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"16":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"16":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","16":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Resource Hints: dns-prefetch"}; +module.exports={A:{A:{"1":"A B","2":"J D E xB","132":"F"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB","260":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"16":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"16":"lB I H cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"16":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"16":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","16":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Resource Hints: dns-prefetch"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js index 884eb274e510d5..a16613dd542018 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"jC nB kC lC mC nC oC pC","2":"H fC gC hC iC"},Q:{"16":"qC"},R:{"16":"rC"},S:{"2":"sC"}},B:1,C:"Resource Hints: modulepreload"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"nC rB oC pC qC rC sC kB tC","2":"I jC kC lC mC"},Q:{"16":"uC"},R:{"16":"vC"},S:{"2":"wC"}},B:1,C:"Resource Hints: modulepreload"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preconnect.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preconnect.js index 07fd6efb9ae7cf..32e552a00b1854 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preconnect.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K","260":"G L M N"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB","2":"0 1 2 3 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","129":"4"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"16":"S"},N:{"2":"A B"},O:{"16":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Resource Hints: preconnect"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L","260":"G M N O"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB","2":"0 1 2 3 4 5 6 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","129":"7"},D:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"16":"H"},N:{"2":"A B"},O:{"16":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Resource Hints: preconnect"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prefetch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prefetch.js index e2d564c53cb757..cca2e111d361f1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prefetch.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D"},E:{"2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB","194":"K G 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC","194":"TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"H T cC dC","2":"iB YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Resource Hints: prefetch"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D"},E:{"2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB","194":"L G 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC","194":"XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"I H gC hC","2":"lB cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Resource Hints: prefetch"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preload.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preload.js index 2d04c619764844..f7992919be64b9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preload.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-preload.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L","1028":"M N"},C:{"1":"W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB uB vB","132":"LB","578":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V"},D:{"1":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB","322":"B"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC","322":"MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"Resource Hints: preload"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M","1028":"N O"},C:{"1":"U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB zB 0B","132":"OB","578":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T"},D:{"1":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","322":"B"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC","322":"QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"Resource Hints: preload"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prerender.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prerender.js index 6147c8ea4039a4..4999a660d3904c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prerender.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/link-rel-prerender.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"1":"B","2":"A"},O:{"2":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"Resource Hints: prerender"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"1":"B","2":"A"},O:{"2":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"Resource Hints: prerender"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/loading-lazy-attr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/loading-lazy-attr.js index 4aa6fafb997836..26248952676ce1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/loading-lazy-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB uB vB","132":"bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB","66":"bB cB"},E:{"2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB","322":"K G 4B 5B 6B oB","580":"pB 7B"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB 8B 9B AC BC gB qB CC hB","66":"PB QB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC","322":"TC UC VC WC oB","580":"pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"132":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"lC mC nC oC pC","2":"H fC gC hC iC jC nB kC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"Lazy loading via attribute for images & iframes"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB zB 0B","132":"eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB","66":"eB fB"},E:{"2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB","322":"L G 8B 9B AC sB","580":"tB uB kB BC"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB CC DC EC FC iB vB GC jB","66":"SB TB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC","322":"XC YC ZC aC sB","580":"tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"132":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"pC qC rC sC kB tC","2":"I jC kC lC mC nC rB oC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"Lazy loading via attribute for images & iframes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/localecompare.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/localecompare.js index 5e3bc42debdd83..7d48bc8d534e6b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/localecompare.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/localecompare.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","16":"sB","132":"I D E F A"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","132":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j I D E F A B C J K G L M N k l m n o"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","132":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F B C 8B 9B AC BC gB qB CC","132":"hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","132":"E mB DC rB EC FC GC HC IC JC"},H:{"132":"XC"},I:{"1":"T cC dC","132":"iB H YC ZC aC bC rB"},J:{"132":"D A"},K:{"1":"U","16":"A B C gB qB","132":"hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","132":"A"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","132":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"4":"sC"}},B:6,C:"localeCompare()"}; +module.exports={A:{A:{"1":"B","16":"xB","132":"J D E F A"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","132":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m J D E F A B C K L G M N O n o p q r"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","132":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F B C CC DC EC FC iB vB GC","132":"jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","132":"E qB HC wB IC JC KC LC MC NC"},H:{"132":"bC"},I:{"1":"H gC hC","132":"lB I cC dC eC fC wB"},J:{"132":"D A"},K:{"1":"Y","16":"A B C iB vB","132":"jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","132":"A"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","132":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"4":"wC"}},B:6,C:"localeCompare()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/magnetometer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/magnetometer.js index dff0c7e35102dd..1a8ead79f45cec 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/magnetometer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/magnetometer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","194":"NB jB OB kB PB QB U RB SB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"194":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"Magnetometer"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB mB RB nB SB TB Y UB VB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"194":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"Magnetometer"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchesselector.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchesselector.js index 5095ed22d069dc..bf9908c6817efb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchesselector.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchesselector.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","36":"F A B"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","36":"C J K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB","36":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","36":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y"},E:{"1":"E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","36":"j I D 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B 8B 9B AC BC gB","36":"C G L M N k l qB CC hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB","36":"DC rB EC FC GC"},H:{"2":"XC"},I:{"1":"T","2":"YC","36":"iB H ZC aC bC rB cC dC"},J:{"36":"D A"},K:{"1":"U","2":"A B","36":"C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"36":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","36":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"matches() DOM method"}; +module.exports={A:{A:{"2":"J D E xB","36":"F A B"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","36":"C K L"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB","36":"0 1 I m J D E F A B C K L G M N O n o p q r s t u v w x y z 0B"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","36":"0 1 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","36":"m J D 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B CC DC EC FC iB","36":"C G M N O n o vB GC jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB","36":"HC wB IC JC KC"},H:{"2":"bC"},I:{"1":"H","2":"cC","36":"lB I dC eC fC wB gC hC"},J:{"36":"D A"},K:{"1":"Y","2":"A B","36":"C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"36":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","36":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"matches() DOM method"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchmedia.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchmedia.js index 601097d1f24df9..456571dea02b0d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchmedia.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/matchmedia.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B C 8B 9B AC BC gB qB CC"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"1":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"A","2":"D"},K:{"1":"U hB","2":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"matchMedia"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B C CC DC EC FC iB vB GC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"1":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"A","2":"D"},K:{"1":"Y jB","2":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"matchMedia"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mathml.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mathml.js index 99110ee66eadc6..08cd61dd0da1a4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mathml.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mathml.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"F A B sB","8":"I D E"},B:{"2":"C J K G L M N","8":"O P Q R V W X Y Z a b c d e f g h","584":"i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","129":"tB iB uB vB"},D:{"1":"p","8":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h","584":"i S T fB wB xB yB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","260":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"2":"F","4":"B C 8B 9B AC BC gB qB CC hB","8":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB","584":"R"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","8":"mB DC rB"},H:{"8":"XC"},I:{"8":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"A","8":"D"},K:{"8":"A B C U gB qB hB"},L:{"8":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"4":"eC"},P:{"8":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"8":"qC"},R:{"8":"rC"},S:{"1":"sC"}},B:2,C:"MathML"}; +module.exports={A:{A:{"2":"F A B xB","8":"J D E"},B:{"2":"C K L G M N O","8":"P Q R S T U V W Z a b c d e f g h","584":"i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","129":"yB lB zB 0B"},D:{"1":"s","8":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h","584":"i j k l H X pB 1B 2B"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","260":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"2":"F","4":"B C CC DC EC FC iB vB GC jB","8":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB","584":"S T U V W"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","8":"qB HC wB"},H:{"8":"bC"},I:{"8":"lB I H cC dC eC fC wB gC hC"},J:{"1":"A","8":"D"},K:{"8":"A B C Y iB vB jB"},L:{"8":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"4":"iC"},P:{"8":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"8":"uC"},R:{"8":"vC"},S:{"1":"wC"}},B:2,C:"MathML"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/maxlength.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/maxlength.js index c9bec89cf641ca..35c93960439f16 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/maxlength.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/maxlength.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","16":"sB","900":"I D E F"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","1025":"C J K G L M N"},C:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","900":"tB iB uB vB","1025":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"j zB","900":"H mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F","132":"B C 8B 9B AC BC gB qB CC hB"},G:{"1":"DC rB EC FC GC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB","2052":"E HC"},H:{"132":"XC"},I:{"1":"iB H aC bC rB cC dC","16":"YC ZC","4097":"T"},J:{"1":"D A"},K:{"132":"A B C gB qB hB","4097":"U"},L:{"4097":"fB"},M:{"4097":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"4097":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1025":"sC"}},B:1,C:"maxlength attribute for input and textarea elements"}; +module.exports={A:{A:{"1":"A B","16":"xB","900":"J D E F"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","1025":"C K L G M N O"},C:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","900":"yB lB zB 0B","1025":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"m 3B","900":"I qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F","132":"B C CC DC EC FC iB vB GC jB"},G:{"1":"HC wB IC JC KC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB","2052":"E LC"},H:{"132":"bC"},I:{"1":"lB I eC fC wB gC hC","16":"cC dC","4097":"H"},J:{"1":"D A"},K:{"132":"A B C iB vB jB","4097":"Y"},L:{"4097":"X"},M:{"4097":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"4097":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1025":"wC"}},B:1,C:"maxlength attribute for input and textarea elements"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-attribute.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-attribute.js index ad13f06fe3563b..0bd9ac0f6b1fed 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-attribute.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N","16":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"1":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y","2":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB","16":"wB xB yB"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB"},F:{"1":"B C G L M N k l m n o p 9B AC BC gB qB CC hB","2":"0 1 2 3 4 5 6 7 8 9 F q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB"},H:{"16":"XC"},I:{"1":"H T bC rB cC dC","16":"iB YC ZC aC"},J:{"16":"D A"},K:{"1":"C U hB","16":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"16":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Media attribute"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O","16":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"1":"0 1 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","2":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X","16":"pB 1B 2B"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB"},F:{"1":"B C G M N O n o p q r s DC EC FC iB vB GC jB","2":"0 1 2 3 4 5 6 7 8 9 F t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB"},H:{"16":"bC"},I:{"1":"I H fC wB gC hC","16":"lB cC dC eC"},J:{"16":"D A"},K:{"1":"C Y jB","16":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"16":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Media attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-fragments.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-fragments.js index a70dc310abfa9d..b4eb2975d7ec61 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-fragments.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-fragments.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","132":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y uB vB","132":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"H j I D E F A B C J K G L M","132":"0 1 2 3 4 5 6 7 8 9 N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j zB mB 0B","132":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","132":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"mB DC rB EC FC GC","132":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","132":"T cC dC"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","132":"U"},L:{"132":"fB"},M:{"132":"S"},N:{"132":"A B"},O:{"2":"eC"},P:{"2":"H fC","132":"gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"132":"sC"}},B:2,C:"Media Fragments"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","132":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","132":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"I m J D E F A B C K L G M N","132":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m 3B qB 4B","132":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","132":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"qB HC wB IC JC KC","132":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","132":"H gC hC"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","132":"Y"},L:{"132":"X"},M:{"132":"H"},N:{"132":"A B"},O:{"2":"iC"},P:{"2":"I jC","132":"kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"132":"wC"}},B:2,C:"Media Fragments"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-session-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-session-api.js index 00281eac502f83..f4c21d12a53e92 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-session-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/media-session-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB","16":"K G 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Media Session API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB","16":"L G 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Media Session API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js index ae00ad0b281786..aeca78e78fbdf9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","260":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB","324":"GB HB IB JB KB LB MB NB jB OB kB"},E:{"2":"H j I D E F A zB mB 0B 1B 2B 3B nB","132":"B C J K G gB hB 4B 5B 6B oB pB 7B"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","324":"1 2 3 4 5 6 7 8 9 AB BB CB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"260":"S"},N:{"2":"A B"},O:{"132":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H","132":"fC gC hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"260":"sC"}},B:5,C:"Media Capture from DOM Elements API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB zB 0B","260":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","324":"JB KB LB MB NB OB PB QB mB RB nB"},E:{"2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","132":"B C K L G iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","324":"4 5 6 7 8 9 AB BB CB DB EB FB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"260":"H"},N:{"2":"A B"},O:{"132":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I","132":"jC kC lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"260":"wC"}},B:5,C:"Media Capture from DOM Elements API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediarecorder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediarecorder.js index dfb204e515814f..bdbd9740222f07 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediarecorder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediarecorder.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB","194":"CB DB"},E:{"1":"G 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB","322":"J K hB 4B"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x y 8B 9B AC BC gB qB CC hB","194":"0 z"},G:{"1":"VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC","578":"OC PC QC RC SC TC UC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:5,C:"MediaRecorder API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB","194":"FB GB"},E:{"1":"G 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB","322":"K L jB 8B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","194":"2 3"},G:{"1":"ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC","578":"SC TC UC VC WC XC YC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:5,C:"MediaRecorder API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediasource.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediasource.js index 0d27f8669a7fff..e0d605a9cb9cc0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediasource.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mediasource.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","132":"B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p uB vB","66":"0 1 2 3 4 5 6 q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L","33":"o p q r s t u v","66":"M N k l m n"},E:{"1":"E F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC","260":"QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T dC","2":"iB H YC ZC aC bC rB cC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"jC nB kC lC mC nC oC pC","2":"H fC gC hC iC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"Media Source Extensions"}; +module.exports={A:{A:{"2":"J D E F A xB","132":"B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s zB 0B","66":"0 1 2 3 4 5 6 7 8 9 t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M","33":"r s t u v w x y","66":"N O n o p q"},E:{"1":"E F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC","260":"UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H hC","2":"lB I cC dC eC fC wB gC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"nC rB oC pC qC rC sC kB tC","2":"I jC kC lC mC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"Media Source Extensions"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/menu.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/menu.js index dc85167fb4eab2..37dfc4b4d142a5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/menu.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/menu.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D uB vB","132":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V","450":"W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","66":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C G L M N k l m n o p q r s t u v w x y z CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","66":"0 1 2 3 4 5 6 7 8 9 AB BB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"450":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Context menu item (menuitem element)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB I m J D zB 0B","132":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T","450":"U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","66":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 F B C G M N O n o p q r s t u v w x y z FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","66":"3 4 5 6 7 8 9 AB BB CB DB EB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"450":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Context menu item (menuitem element)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meta-theme-color.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meta-theme-color.js index e5d9c1e228ff40..dcd72781fc51be 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meta-theme-color.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meta-theme-color.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","132":"ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","258":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB"},E:{"1":"G 6B oB pB 7B","2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B 5B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"513":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H","16":"fC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"theme-color Meta Tag"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","132":"cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","258":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB"},E:{"1":"G AC sB tB uB kB BC","2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B 9B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"513":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I","16":"jC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"theme-color Meta Tag"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meter.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meter.js index db8a534ecb8803..dbf713935ee7bd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meter.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/meter.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","2":"F 8B 9B AC BC"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"meter element"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","2":"F CC DC EC FC"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"meter element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/midi.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/midi.js index 299b2680b33c3d..aaf04295010150 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/midi.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/midi.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"Web MIDI API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"Web MIDI API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/minmaxwh.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/minmaxwh.js index fbc54a4c1f361f..090e771dc09f46 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/minmaxwh.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/minmaxwh.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","8":"I sB","129":"D","257":"E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"CSS min/max-width/height"}; +module.exports={A:{A:{"1":"F A B","8":"J xB","129":"D","257":"E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"CSS min/max-width/height"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mp3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mp3.js index 0b06dc90442ed7..20ab1298920f75 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mp3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mp3.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","132":"H j I D E F A B C J K G L M N k l m uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","2":"YC ZC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"MP3 audio format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","132":"I m J D E F A B C K L G M N O n o p zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","2":"cC dC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"MP3 audio format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg-dash.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg-dash.js index 56a3411a766828..57a6850cd70962 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg-dash.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg-dash.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N","2":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","386":"m n"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O","2":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","386":"p q"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg4.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg4.js index 396eb6ce293f3e..284541f3d12af3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg4.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mpeg4.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l uB vB","4":"m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T cC dC","4":"iB H YC ZC bC rB","132":"aC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"260":"S"},N:{"1":"A B"},O:{"4":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"MPEG-4/H.264 video format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o zB 0B","4":"0 1 2 p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H gC hC","4":"lB I cC dC fC wB","132":"eC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"260":"H"},N:{"1":"A B"},O:{"4":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"MPEG-4/H.264 video format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multibackgrounds.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multibackgrounds.js index a514ee417aeaba..b26dbe4443e368 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multibackgrounds.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multibackgrounds.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","2":"tB iB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS3 Multiple backgrounds"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","2":"yB lB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS3 Multiple backgrounds"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multicolumn.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multicolumn.js index 9a3f23de153ebd..889ba655b273c5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multicolumn.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/multicolumn.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N","516":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"132":"HB IB JB KB LB MB NB jB OB kB PB QB U","164":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB uB vB","516":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c","1028":"d e f g h i S T fB"},D:{"420":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB","516":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","132":"F 3B","164":"D E 2B","420":"H j I zB mB 0B 1B"},F:{"1":"C gB qB CC hB","2":"F B 8B 9B AC BC","420":"0 1 G L M N k l m n o p q r s t u v w x y z","516":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","132":"IC JC","164":"E GC HC","420":"mB DC rB EC FC"},H:{"1":"XC"},I:{"420":"iB H YC ZC aC bC rB cC dC","516":"T"},J:{"420":"D A"},K:{"1":"C gB qB hB","2":"A B","516":"U"},L:{"516":"fB"},M:{"516":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","420":"H"},Q:{"132":"qC"},R:{"132":"rC"},S:{"164":"sC"}},B:4,C:"CSS3 Multiple column layout"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O","516":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"132":"KB LB MB NB OB PB QB mB RB nB SB TB Y","164":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B","516":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c","1028":"d e f g h i j k l H X pB"},D:{"420":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","516":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","132":"F 7B","164":"D E 6B","420":"I m J 3B qB 4B 5B"},F:{"1":"C iB vB GC jB","2":"F B CC DC EC FC","420":"0 1 2 3 4 G M N O n o p q r s t u v w x y z","516":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","132":"MC NC","164":"E KC LC","420":"qB HC wB IC JC"},H:{"1":"bC"},I:{"420":"lB I cC dC eC fC wB gC hC","516":"H"},J:{"420":"D A"},K:{"1":"C iB vB jB","2":"A B","516":"Y"},L:{"516":"X"},M:{"516":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","420":"I"},Q:{"132":"uC"},R:{"132":"vC"},S:{"164":"wC"}},B:4,C:"CSS3 Multiple column layout"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutation-events.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutation-events.js index 9c167789ec24fc..05301fd834542f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutation-events.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutation-events.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","260":"F A B"},B:{"132":"O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K G L M N"},C:{"2":"tB iB H j uB vB","260":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"16":"H j I D E F A B C J K","132":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"16":"zB mB","132":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"C CC hB","2":"F 8B 9B AC BC","16":"B gB qB","132":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"16":"mB DC","132":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"16":"YC ZC","132":"iB H T aC bC rB cC dC"},J:{"132":"D A"},K:{"1":"C hB","2":"A","16":"B gB qB","132":"U"},L:{"132":"fB"},M:{"260":"S"},N:{"260":"A B"},O:{"132":"eC"},P:{"132":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"132":"qC"},R:{"132":"rC"},S:{"260":"sC"}},B:5,C:"Mutation events"}; +module.exports={A:{A:{"2":"J D E xB","260":"F A B"},B:{"132":"P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L G M N O"},C:{"2":"yB lB I m zB 0B","260":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"16":"I m J D E F A B C K L","132":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"16":"3B qB","132":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"C GC jB","2":"F CC DC EC FC","16":"B iB vB","132":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"16":"qB HC","132":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"16":"cC dC","132":"lB I H eC fC wB gC hC"},J:{"132":"D A"},K:{"1":"C jB","2":"A","16":"B iB vB","132":"Y"},L:{"132":"X"},M:{"260":"H"},N:{"260":"A B"},O:{"132":"iC"},P:{"132":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"132":"uC"},R:{"132":"vC"},S:{"260":"wC"}},B:5,C:"Mutation events"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutationobserver.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutationobserver.js index d10f2d3b8b0940..74db6c464f4fd6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutationobserver.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/mutationobserver.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E sB","8":"F A"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M","33":"N k l m n o p q r"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","33":"I"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC","33":"FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB YC ZC aC","8":"H bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","8":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Mutation Observer"}; +module.exports={A:{A:{"1":"B","2":"J D E xB","8":"F A"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N","33":"O n o p q r s t u"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC","33":"JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB cC dC eC","8":"I fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","8":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Mutation Observer"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/namevalue-storage.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/namevalue-storage.js index 374255a909595c..7e264382854751 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/namevalue-storage.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/namevalue-storage.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"sB","8":"I D"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","4":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Web Storage - name/value pairs"}; +module.exports={A:{A:{"1":"E F A B","2":"xB","8":"J D"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","4":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Web Storage - name/value pairs"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/native-filesystem-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/native-filesystem-api.js index 37b888c3ca3a42..3cc0712a17f180 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/native-filesystem-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/native-filesystem-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","194":"O P Q R V W","260":"X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB","194":"aB bB cB dB eB O P Q R V W","260":"X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B","4":"oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB 8B 9B AC BC gB qB CC hB","194":"PB QB U RB SB TB UB VB WB XB","260":"YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC","4":"oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"File System Access API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","194":"P Q R S T U","260":"V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB","194":"dB eB fB gB hB P Q R S T U","260":"V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC","516":"sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB CC DC EC FC iB vB GC jB","194":"SB TB Y UB VB WB XB YB ZB aB","260":"bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC","516":"sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"File System Access API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/nav-timing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/nav-timing.js index 3ba7de03a397bb..dbb1defdd5342f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/nav-timing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/nav-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j","33":"I D E F A B C"},E:{"1":"E F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"H T bC rB cC dC","2":"iB YC ZC aC"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"Navigation Timing API"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m","33":"J D E F A B C"},E:{"1":"E F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"I H fC wB gC hC","2":"lB cC dC eC"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"Navigation Timing API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/navigator-language.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/navigator-language.js index d8fff36556a113..dbfe02dc5989a5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/navigator-language.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/navigator-language.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w uB vB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"16":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"16":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"16":"qC"},R:{"16":"rC"},S:{"1":"sC"}},B:2,C:"Navigator Language API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"16":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"16":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"16":"uC"},R:{"16":"vC"},S:{"1":"wC"}},B:2,C:"Navigator Language API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/netinfo.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/netinfo.js index eae7e211d85c1a..948d39a631d6b3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/netinfo.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/netinfo.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","1028":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB","1028":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB 8B 9B AC BC gB qB CC hB","1028":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"YC cC dC","132":"iB H ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","132":"H","516":"fC gC hC"},Q:{"1":"qC"},R:{"516":"rC"},S:{"260":"sC"}},B:7,C:"Network Information API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","1028":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB","1028":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB CC DC EC FC iB vB GC jB","1028":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"cC gC hC","132":"lB I dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","132":"I","516":"jC kC lC"},Q:{"1":"uC"},R:{"516":"vC"},S:{"260":"wC"}},B:7,C:"Network Information API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/notifications.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/notifications.js index a5ca62967d4b50..d3026d1c077ec4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/notifications.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/notifications.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H","36":"j I D E F A B C J K G L M N k l m"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","36":"T cC dC"},J:{"1":"A","2":"D"},K:{"2":"A B C gB qB hB","36":"U"},L:{"513":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"36":"H","258":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"258":"rC"},S:{"1":"sC"}},B:1,C:"Web Notifications"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I","36":"m J D E F A B C K L G M N O n o p"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","36":"H gC hC"},J:{"1":"A","2":"D"},K:{"2":"A B C iB vB jB","36":"Y"},L:{"513":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"36":"I","258":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"258":"vC"},S:{"1":"wC"}},B:1,C:"Web Notifications"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-entries.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-entries.js index 365f5eba25f2c9..f8a089145a3e56 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-entries.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-entries.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB uB vB"},D:{"1":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D","16":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H fC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:6,C:"Object.entries"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB zB 0B"},D:{"1":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D","16":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I jC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:6,C:"Object.entries"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-fit.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-fit.js index 3ea024ec96f919..e1c22168598a4c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-fit.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-fit.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G","260":"L M N"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B","132":"E F 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F G L M N 8B 9B AC","33":"B C BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC","132":"E HC IC JC"},H:{"33":"XC"},I:{"1":"T dC","2":"iB H YC ZC aC bC rB cC"},J:{"2":"D A"},K:{"1":"U","2":"A","33":"B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS3 object-fit/object-position"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G","260":"M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B","132":"E F 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F G M N O CC DC EC","33":"B C FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC","132":"E LC MC NC"},H:{"33":"bC"},I:{"1":"H hC","2":"lB I cC dC eC fC wB gC"},J:{"2":"D A"},K:{"1":"Y","2":"A","33":"B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS3 object-fit/object-position"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-observe.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-observe.js index c1e775f5ff1cbe..8b0165724ed6c9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-observe.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-observe.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB","2":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 o p q r s t u v w x y z","2":"2 3 4 5 6 7 8 9 F B C G L M N k l m n AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"H","2":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:7,C:"Object.observe data binding"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB","2":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 r s t u v w x y z","2":"5 6 7 8 9 F B C G M N O n o p q AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"I","2":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:7,C:"Object.observe data binding"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-values.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-values.js index 1e6dc237d84dca..e63d0002de2306 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-values.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/object-values.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","8":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB uB vB"},D:{"1":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","8":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","8":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","8":"0 1 2 3 4 5 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","8":"E mB DC rB EC FC GC HC IC JC KC"},H:{"8":"XC"},I:{"1":"T","8":"iB H YC ZC aC bC rB cC dC"},J:{"8":"D A"},K:{"1":"U","8":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"8":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","8":"H fC"},Q:{"1":"qC"},R:{"8":"rC"},S:{"1":"sC"}},B:6,C:"Object.values method"}; +module.exports={A:{A:{"8":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","8":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB zB 0B"},D:{"1":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","8":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","8":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","8":"0 1 2 3 4 5 6 7 8 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","8":"E qB HC wB IC JC KC LC MC NC OC"},H:{"8":"bC"},I:{"1":"H","8":"lB I cC dC eC fC wB gC hC"},J:{"8":"D A"},K:{"1":"Y","8":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"8":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","8":"I jC"},Q:{"1":"uC"},R:{"8":"vC"},S:{"1":"wC"}},B:6,C:"Object.values method"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/objectrtc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/objectrtc.js index 183dd33a3835db..2c51fbcb443d45 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/objectrtc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/objectrtc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N","2":"C O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D","130":"A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Object RTC (ORTC) API for WebRTC"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O","2":"C P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D","130":"A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Object RTC (ORTC) API for WebRTC"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offline-apps.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offline-apps.js index 7ebba8ab6bb46c..5559cb6dee7795 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offline-apps.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offline-apps.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"F sB","8":"I D E"},B:{"1":"C J K G L M N O P Q R V","2":"W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R uB vB","2":"V W X Y Z a b c d e f g h i S T fB","4":"iB","8":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V","2":"W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB BC gB qB CC hB","2":"F ZB aB bB cB dB eB O P Q lB R 8B","8":"9B AC"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H YC ZC aC bC rB cC dC","2":"T"},J:{"1":"D A"},K:{"1":"B C gB qB hB","2":"A U"},L:{"2":"fB"},M:{"2":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:7,C:"Offline web applications"}; +module.exports={A:{A:{"1":"A B","2":"F xB","8":"J D E"},B:{"1":"C K L G M N O P Q R S T","2":"U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S zB 0B","2":"T U V W Z a b c d e f g h i j k l H X pB","4":"lB","8":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T","2":"U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB FC iB vB GC jB","2":"F cB dB eB fB gB hB P Q R oB S T U V W CC","8":"DC EC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I cC dC eC fC wB gC hC","2":"H"},J:{"1":"D A"},K:{"1":"B C iB vB jB","2":"A Y"},L:{"2":"X"},M:{"2":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:7,C:"Offline web applications"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offscreencanvas.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offscreencanvas.js index 8f39bf9a665c22..0f2c55f846d172 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offscreencanvas.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/offscreencanvas.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","194":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","322":"NB jB OB kB PB QB U RB SB TB UB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","322":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"194":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nB kC lC mC nC oC pC","2":"H fC gC hC iC jC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"194":"sC"}},B:1,C:"OffscreenCanvas"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB zB 0B","194":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","322":"QB mB RB nB SB TB Y UB VB WB XB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB CC DC EC FC iB vB GC jB","322":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"194":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rB oC pC qC rC sC kB tC","2":"I jC kC lC mC nC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"194":"wC"}},B:1,C:"OffscreenCanvas"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogg-vorbis.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogg-vorbis.js index 8a0a295553cebe..45cc6aef1e0e14 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogg-vorbis.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogg-vorbis.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B","132":"G 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"A","2":"D"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Ogg Vorbis audio format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B","132":"G 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"A","2":"D"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Ogg Vorbis audio format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogv.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogv.js index ba4ae178704d5e..991ee0d5ddc60c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogv.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ogv.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","8":"F A B"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","8":"C J K G L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"1":"S"},N:{"8":"A B"},O:{"1":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:6,C:"Ogg/Theora video format"}; +module.exports={A:{A:{"2":"J D E xB","8":"F A B"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","8":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"1":"H"},N:{"8":"A B"},O:{"1":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:6,C:"Ogg/Theora video format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ol-reversed.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ol-reversed.js index 1b60edea9f948f..da51beda534bc7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ol-reversed.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ol-reversed.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G","16":"L M N k"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","16":"I"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC gB qB CC","16":"C"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Reversed attribute of ordered lists"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G","16":"M N O n"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC iB vB GC","16":"C"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Reversed attribute of ordered lists"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/once-event-listener.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/once-event-listener.js index be0d20730fff9e..4eedcfa3a3b29b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/once-event-listener.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/once-event-listener.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G"},C:{"1":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB uB vB"},D:{"1":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H fC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"\"once\" event listener option"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G"},C:{"1":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB zB 0B"},D:{"1":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I jC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"\"once\" event listener option"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/online-status.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/online-status.js index 934af9d26cf00d..50a51dc08e5344 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/online-status.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/online-status.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D sB","260":"E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB","516":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC","4":"hB"},G:{"1":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"A","132":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Online/offline status"}; +module.exports={A:{A:{"1":"F A B","2":"J D xB","260":"E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB","516":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC","4":"jB"},G:{"1":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"A","132":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Online/offline status"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/opus.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/opus.js index e4a2904f5ab6fb..a883c868d67ddc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/opus.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/opus.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x"},E:{"2":"H j I D E F A zB mB 0B 1B 2B 3B nB","132":"B C J K G gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC","132":"MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Opus"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","132":"B C K L G iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC","132":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Opus"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/orientation-sensor.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/orientation-sensor.js index d0d292955f9509..523a70f52555c6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/orientation-sensor.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/orientation-sensor.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","194":"NB jB OB kB PB QB U RB SB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"Orientation Sensor"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB mB RB nB SB TB Y UB VB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"Orientation Sensor"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/outline.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/outline.js index 4fb8dce0848b4f..31a95e7d46bed6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/outline.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/outline.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D sB","260":"E","388":"F A B"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","388":"C J K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC","129":"hB","260":"F B 8B 9B AC BC gB qB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"C U hB","260":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"388":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS outline properties"}; +module.exports={A:{A:{"2":"J D xB","260":"E","388":"F A B"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","388":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC","129":"jB","260":"F B CC DC EC FC iB vB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"C Y jB","260":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"388":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS outline properties"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pad-start-end.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pad-start-end.js index 0e44593ddefec1..d8c9593363fb8f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pad-start-end.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pad-start-end.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB uB vB"},D:{"1":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H fC gC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L"},C:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB zB 0B"},D:{"1":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I jC kC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/page-transition-events.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/page-transition-events.js index e87765922c0132..820ad375162966 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/page-transition-events.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/page-transition-events.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"PageTransitionEvent"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"PageTransitionEvent"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pagevisibility.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pagevisibility.js index e975a1763751a0..7adc9309a68f6a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pagevisibility.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pagevisibility.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F uB vB","33":"A B C J K G L M"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J","33":"K G L M N k l m n o p q r s t u v w x"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B C 8B 9B AC BC gB qB CC","33":"G L M N k"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB","33":"cC dC"},J:{"1":"A","2":"D"},K:{"1":"U hB","2":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","33":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"Page Visibility"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F zB 0B","33":"A B C K L G M N"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K","33":"0 L G M N O n o p q r s t u v w x y z"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B C CC DC EC FC iB vB GC","33":"G M N O n"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB","33":"gC hC"},J:{"1":"A","2":"D"},K:{"1":"Y jB","2":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","33":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"Page Visibility"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passive-event-listener.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passive-event-listener.js index 7c3cb6e8a537db..00d53164152c55 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passive-event-listener.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passive-event-listener.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB uB vB"},D:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"Passive event listeners"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB zB 0B"},D:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"Passive event listeners"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passwordrules.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passwordrules.js index fae4a8167caed2..45ae3946b2e3cd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passwordrules.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/passwordrules.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","16":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S uB vB","16":"T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB","16":"wB xB yB"},E:{"1":"C J hB","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB gB","16":"K G 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB 8B 9B AC BC gB qB CC hB","16":"IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"16":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","16":"T"},J:{"2":"D","16":"A"},K:{"2":"A B C gB qB hB","16":"U"},L:{"16":"fB"},M:{"16":"S"},N:{"2":"A","16":"B"},O:{"16":"eC"},P:{"2":"H fC gC","16":"hC iC jC nB kC lC mC nC oC pC"},Q:{"16":"qC"},R:{"16":"rC"},S:{"2":"sC"}},B:1,C:"Password Rules"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","16":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H zB 0B","16":"X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X","16":"pB 1B 2B"},E:{"1":"C K jB","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB iB","16":"L G 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB CC DC EC FC iB vB GC jB","16":"LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"16":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","16":"H"},J:{"2":"D","16":"A"},K:{"2":"A B C iB vB jB","16":"Y"},L:{"16":"X"},M:{"16":"H"},N:{"2":"A","16":"B"},O:{"16":"iC"},P:{"2":"I jC kC","16":"lC mC nC rB oC pC qC rC sC kB tC"},Q:{"16":"uC"},R:{"16":"vC"},S:{"2":"wC"}},B:1,C:"Password Rules"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/path2d.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/path2d.js index 889bb275d71991..4761e17351155a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/path2d.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/path2d.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J","132":"K G L M N"},C:{"1":"DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v uB vB","132":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","132":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B","132":"E F 2B"},F:{"1":"KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n 8B 9B AC BC gB qB CC hB","132":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC","16":"E","132":"HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"132":"eC"},P:{"1":"nB kC lC mC nC oC pC","132":"H fC gC hC iC jC"},Q:{"132":"qC"},R:{"132":"rC"},S:{"1":"sC"}},B:1,C:"Path2D"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K","132":"L G M N O"},C:{"1":"GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y zB 0B","132":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB"},D:{"1":"XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","132":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B","132":"E F 6B"},F:{"1":"NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q CC DC EC FC iB vB GC jB","132":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC","16":"E","132":"LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"132":"iC"},P:{"1":"rB oC pC qC rC sC kB tC","132":"I jC kC lC mC nC"},Q:{"132":"uC"},R:{"132":"vC"},S:{"1":"wC"}},B:1,C:"Path2D"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/payment-request.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/payment-request.js index 0f57906f771c5c..b13f56533333fd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/payment-request.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/payment-request.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J","322":"K","8196":"G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB uB vB","4162":"KB LB MB NB jB OB kB PB QB U RB","16452":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","194":"IB JB KB LB MB NB","1090":"jB OB","8196":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB"},E:{"1":"J K G hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B","514":"A B nB","8196":"C gB"},F:{"1":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","194":"5 6 7 8 9 AB BB CB","8196":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB"},G:{"1":"PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC","514":"KC LC MC","8196":"NC OC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"2049":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"lC mC nC oC pC","2":"H","8196":"fC gC hC iC jC nB kC"},Q:{"8196":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"Payment Request API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K","322":"L","8196":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB zB 0B","4162":"NB OB PB QB mB RB nB SB TB Y UB","16452":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB","194":"LB MB NB OB PB QB","1090":"mB RB","8196":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB"},E:{"1":"K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B","514":"A B rB","8196":"C iB"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","194":"8 9 AB BB CB DB EB FB","8196":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB"},G:{"1":"TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC","514":"OC PC QC","8196":"RC SC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"2049":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"pC qC rC sC kB tC","2":"I","8196":"jC kC lC mC nC rB oC"},Q:{"8196":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"Payment Request API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pdf-viewer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pdf-viewer.js index 796393f2621de4..87f810d5036dac 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pdf-viewer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pdf-viewer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","132":"B"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","16":"C J K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC gB qB CC"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"16":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Built-in PDF viewer"}; +module.exports={A:{A:{"2":"J D E F A xB","132":"B"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC iB vB GC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"16":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Built-in PDF viewer"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-api.js index 3f44401c5381cd..a0543a8e45da66 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB uB vB"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:7,C:"Permissions API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB zB 0B"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB"},E:{"1":"BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:7,C:"Permissions API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-policy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-policy.js index 13acbb6e21d8af..4cf7bc4a811c62 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-policy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/permissions-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","258":"O P Q R V W","322":"X Y","388":"Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB uB vB","258":"aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB","258":"OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W","322":"X Y","388":"Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B zB mB 0B 1B 2B 3B nB","258":"C J K G gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB 8B 9B AC BC gB qB CC hB","258":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB","322":"YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC","258":"NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","258":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","258":"U"},L:{"388":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC","258":"iC jC nB kC lC mC nC oC pC"},Q:{"258":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Permissions Policy"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","258":"P Q R S T U","322":"V W","388":"Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB zB 0B","258":"dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB","258":"RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U","322":"V W","388":"Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB","258":"C K L G iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB CC DC EC FC iB vB GC jB","258":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB","322":"bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC","258":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","258":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","258":"Y"},L:{"388":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC","258":"mC nC rB oC pC qC rC sC kB tC"},Q:{"258":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Permissions Policy"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture-in-picture.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture-in-picture.js index 35141f071595b6..b3dde27bf9f383 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture-in-picture.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture-in-picture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB uB vB","132":"YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","1090":"TB","1412":"XB","1668":"UB VB WB"},D:{"1":"WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB","2114":"VB"},E:{"1":"K G 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B","4100":"A B C J nB gB hB"},F:{"1":"ZB aB bB cB dB eB O P Q lB R","2":"0 1 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","8196":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB"},G:{"1":"UC VC WC oB pB","2":"E mB DC rB EC FC GC HC","4100":"IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"16388":"fB"},M:{"16388":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Picture-in-Picture"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB zB 0B","132":"bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","1090":"WB","1412":"aB","1668":"XB YB ZB"},D:{"1":"ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB","2114":"YB"},E:{"1":"L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B","4100":"A B C K rB iB jB"},F:{"1":"cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","8196":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB"},G:{"1":"YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC","4100":"MC NC OC PC QC RC SC TC UC VC WC XC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"16388":"X"},M:{"16388":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Picture-in-Picture"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture.js index 84996c40b7ebfc..33c6ffe37fb7b3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/picture.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y uB vB","578":"0 1 2 z"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","194":"2"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o 8B 9B AC BC gB qB CC hB","322":"p"},G:{"1":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Picture element"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","578":"2 3 4 5"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","194":"5"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r CC DC EC FC iB vB GC jB","322":"s"},G:{"1":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Picture element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ping.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ping.js index d96393d5db8556..2d0783f4c98a9b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ping.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ping.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L"},C:{"2":"tB","194":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"194":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"194":"sC"}},B:1,C:"Ping attribute"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M"},C:{"2":"yB","194":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"194":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"194":"wC"}},B:1,C:"Ping attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/png-alpha.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/png-alpha.js index 8cf2dc725851b1..9ab4f45589a209 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/png-alpha.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/png-alpha.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"D E F A B","2":"sB","8":"I"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"PNG alpha transparency"}; +module.exports={A:{A:{"1":"D E F A B","2":"xB","8":"J"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"PNG alpha transparency"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer-events.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer-events.js index 0b686ae2d6d624..0f431daeacc200 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer-events.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer-events.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","2":"tB iB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:7,C:"CSS pointer-events (for HTML)"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","2":"yB lB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:7,C:"CSS pointer-events (for HTML)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer.js index 150b44e539fb73..15076ce8d60285 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointer.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F sB","164":"A"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j uB vB","8":"0 1 2 3 4 5 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","328":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},D:{"1":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m","8":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB","584":"HB IB JB"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B","8":"D E F A B C 1B 2B 3B nB gB","1096":"hB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","8":"0 1 2 3 G L M N k l m n o p q r s t u v w x y z","584":"4 5 6"},G:{"1":"RC SC TC UC VC WC oB pB","8":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC","6148":"QC"},H:{"2":"XC"},I:{"1":"T","8":"iB H YC ZC aC bC rB cC dC"},J:{"8":"D A"},K:{"1":"U","2":"A","8":"B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","36":"A"},O:{"8":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"fC","8":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"328":"sC"}},B:2,C:"Pointer events"}; +module.exports={A:{A:{"1":"B","2":"J D E F xB","164":"A"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m zB 0B","8":"0 1 2 3 4 5 6 7 8 J D E F A B C K L G M N O n o p q r s t u v w x y z","328":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},D:{"1":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p","8":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","584":"KB LB MB"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B","8":"D E F A B C 5B 6B 7B rB iB","1096":"jB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","8":"0 1 2 3 4 5 6 G M N O n o p q r s t u v w x y z","584":"7 8 9"},G:{"1":"VC WC XC YC ZC aC sB tB uB kB","8":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC","6148":"UC"},H:{"2":"bC"},I:{"1":"H","8":"lB I cC dC eC fC wB gC hC"},J:{"8":"D A"},K:{"1":"Y","2":"A","8":"B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","36":"A"},O:{"8":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"jC","8":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"328":"wC"}},B:2,C:"Pointer events"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointerlock.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointerlock.js index be16e7859b4c1e..3f68743e02856b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointerlock.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/pointerlock.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J uB vB","33":"0 1 2 3 4 5 K G L M N k l m n o p q r s t u v w x y z"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G","33":"0 1 n o p q r s t u v w x y z","66":"L M N k l m"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"G L M N k l m n o"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:2,C:"Pointer Lock API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K zB 0B","33":"0 1 2 3 4 5 6 7 8 L G M N O n o p q r s t u v w x y z"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G","33":"0 1 2 3 4 q r s t u v w x y z","66":"M N O n o p"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"G M N O n o p q r"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:2,C:"Pointer Lock API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/portals.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/portals.js index 9a271bd89a3063..c49adcb028c80a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/portals.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/portals.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V","322":"b c d e f g h i S T","450":"W X Y Z a"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB","194":"bB cB dB eB O P Q R V","322":"X Y Z a b c d e f g h i S T fB wB xB yB","450":"W"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB 8B 9B AC BC gB qB CC hB","194":"PB QB U RB SB TB UB VB WB XB YB","322":"ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"450":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Portals"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T","322":"b c d e f g h i j k l H X","450":"U V W Z a"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB","194":"eB fB gB hB P Q R S T","322":"V W Z a b c d e f g h i j k l H X pB 1B 2B","450":"U"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB CC DC EC FC iB vB GC jB","194":"SB TB Y UB VB WB XB YB ZB aB bB","322":"cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"450":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Portals"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-color-scheme.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-color-scheme.js index 28c326e38c8254..7a4ee8d4f064d0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-color-scheme.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB uB vB"},D:{"1":"cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB"},E:{"1":"J K G hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB"},F:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB 8B 9B AC BC gB qB CC hB"},G:{"1":"QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"lC mC nC oC pC","2":"H fC gC hC iC jC nB kC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"prefers-color-scheme media query"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB zB 0B"},D:{"1":"fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB"},E:{"1":"K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB"},F:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB CC DC EC FC iB vB GC jB"},G:{"1":"UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"pC qC rC sC kB tC","2":"I jC kC lC mC nC rB oC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"prefers-color-scheme media query"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js index 8f00fc6b0a7fef..34555bd711fa59 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB uB vB"},D:{"1":"aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"kC lC mC nC oC pC","2":"H fC gC hC iC jC nB"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"prefers-reduced-motion media query"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB zB 0B"},D:{"1":"dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"oC pC qC rC sC kB tC","2":"I jC kC lC mC nC rB"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"prefers-reduced-motion media query"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/private-class-fields.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/private-class-fields.js index da202be8a78389..c53b87f842ad10 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/private-class-fields.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/private-class-fields.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB"},E:{"1":"G 5B 6B oB pB 7B","2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B"},F:{"1":"PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB 8B 9B AC BC gB qB CC hB"},G:{"1":"VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"kC lC mC nC oC pC","2":"H fC gC hC iC jC nB"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Private class fields"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB"},E:{"1":"G 9B AC sB tB uB kB BC","2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B"},F:{"1":"SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB CC DC EC FC iB vB GC jB"},G:{"1":"ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"oC pC qC rC sC kB tC","2":"I jC kC lC mC nC rB"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Private class fields"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js index 1eabb5628f353b..e76d2eb88d53e3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"V W X Y Z a b c d e f g h i S T","2":"C J K G L M N O P Q R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R"},E:{"1":"G 5B 6B oB pB 7B","2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B"},F:{"1":"WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB 8B 9B AC BC gB qB CC hB"},G:{"1":"VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Public class fields"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O P Q R S"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S"},E:{"1":"G 9B AC sB tB uB kB BC","2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B"},F:{"1":"ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB CC DC EC FC iB vB GC jB"},G:{"1":"ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Public class fields"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/progress.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/progress.js index ec9cb2e97d3988..8da41a1d638d89 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/progress.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/progress.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","2":"F 8B 9B AC BC"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC","132":"GC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"progress element"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","2":"F CC DC EC FC"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC","132":"KC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"progress element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promise-finally.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promise-finally.js index bc47000db3c336..78548ef9ea9dee 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promise-finally.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promise-finally.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M"},C:{"1":"NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB uB vB"},D:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB"},F:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Promise.prototype.finally"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N"},C:{"1":"QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB zB 0B"},D:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB"},F:{"1":"IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Promise.prototype.finally"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promises.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promises.js index ef82fc41928af2..d260f7b9bf246b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promises.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/promises.js @@ -1 +1 @@ -module.exports={A:{A:{"8":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","4":"s t","8":"tB iB H j I D E F A B C J K G L M N k l m n o p q r uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","4":"x","8":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w"},E:{"1":"E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"H j I D zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","4":"k","8":"F B C G L M N 8B 9B AC BC gB qB CC hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","8":"mB DC rB EC FC GC"},H:{"8":"XC"},I:{"1":"T dC","8":"iB H YC ZC aC bC rB cC"},J:{"8":"D A"},K:{"1":"U","8":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"8":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Promises"}; +module.exports={A:{A:{"8":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","4":"v w","8":"yB lB I m J D E F A B C K L G M N O n o p q r s t u zB 0B"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","4":"0","8":"I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"I m J D 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","4":"n","8":"F B C G M N O CC DC EC FC iB vB GC jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","8":"qB HC wB IC JC KC"},H:{"8":"bC"},I:{"1":"H hC","8":"lB I cC dC eC fC wB gC"},J:{"8":"D A"},K:{"1":"Y","8":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"8":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Promises"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proximity.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proximity.js index 16cd3f21b3669c..43f6cefa242518 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proximity.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proximity.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:4,C:"Proximity API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:4,C:"Proximity API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proxy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proxy.js index e589b54e6b2eda..ea4037adf056a8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proxy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/proxy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M uB vB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"3 4 5 6 7 8 9 H j I D E F A B C J K G L M N AB BB CB DB","66":"0 1 2 k l m n o p q r s t u v w x y z"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 F B C q r s t u v w x y z 8B 9B AC BC gB qB CC hB","66":"G L M N k l m n o p"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:6,C:"Proxy object"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N zB 0B"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"6 7 8 9 I m J D E F A B C K L G M N O AB BB CB DB EB FB GB","66":"0 1 2 3 4 5 n o p q r s t u v w x y z"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 F B C t u v w x y z CC DC EC FC iB vB GC jB","66":"G M N O n o p q r s"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:6,C:"Proxy object"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/public-class-fields.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/public-class-fields.js index a236f8dab6626a..dcaa1ca7dbbee1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/public-class-fields.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/public-class-fields.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB uB vB","4":"WB XB YB ZB aB","132":"VB"},D:{"1":"YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB"},E:{"1":"G 5B 6B oB pB 7B","2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB 4B","260":"K"},F:{"1":"OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB 8B 9B AC BC gB qB CC hB"},G:{"1":"UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"kC lC mC nC oC pC","2":"H fC gC hC iC jC nB"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Public class fields"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB zB 0B","4":"ZB aB bB cB dB","132":"YB"},D:{"1":"bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB"},E:{"1":"G 9B AC sB tB uB kB BC","2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB 8B","260":"L"},F:{"1":"RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB CC DC EC FC iB vB GC jB"},G:{"1":"YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"oC pC qC rC sC kB tC","2":"I jC kC lC mC nC rB"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Public class fields"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/publickeypinning.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/publickeypinning.js index f4309ffe91d8e1..a2c0e3bb6cef94 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/publickeypinning.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/publickeypinning.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB","2":"0 1 2 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB","2":"F B C G L M N k SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","4":"o","16":"l m n p"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB","2":"kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"HTTP Public Key Pinning"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB","2":"0 1 2 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB","2":"0 1 2 3 4 5 I m J D E F A B C K L G M N O n o p q r s t u v w x y z bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB","2":"F B C G M N O n VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","4":"r","16":"o p q s"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB","2":"oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"HTTP Public Key Pinning"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/push-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/push-api.js index c235ca21224c16..bf034374cebdc7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/push-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/push-api.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N","2":"C J K G L","257":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","257":"9 BB CB DB EB FB GB IB JB KB LB MB NB jB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","1281":"AB HB OB"},D:{"2":"0 1 2 3 4 5 6 7 8 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","257":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","388":"9 AB BB CB DB EB"},E:{"2":"H j I D E F zB mB 0B 1B 2B","514":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB","2114":"7B"},F:{"2":"0 1 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","16":"2 3 4 5 6","257":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"257":"sC"}},B:5,C:"Push API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O","2":"C K L G M","257":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB zB 0B","257":"CB EB FB GB HB IB JB LB MB NB OB PB QB mB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","1281":"DB KB RB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB","257":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","388":"CB DB EB FB GB HB"},E:{"2":"I m J D E F 3B qB 4B 5B 6B","514":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB","4100":"kB BC"},F:{"2":"0 1 2 3 4 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","16":"5 6 7 8 9","257":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"257":"wC"}},B:5,C:"Push API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/queryselector.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/queryselector.js index f23796735f7219..becf63e608bb12 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/queryselector.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/queryselector.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"sB","8":"I D","132":"E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","8":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 9B AC BC gB qB CC hB","8":"F 8B"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"querySelector/querySelectorAll"}; +module.exports={A:{A:{"1":"F A B","2":"xB","8":"J D","132":"E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","8":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W DC EC FC iB vB GC jB","8":"F CC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"querySelector/querySelectorAll"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/readonly-attr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/readonly-attr.js index c9c9239d211141..60ee1a38e91a2e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/readonly-attr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/readonly-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","16":"sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","16":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K G L M N k l m n o p q"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F 8B","132":"B C 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB EC FC"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"U","132":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"257":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"readonly attribute of input and textarea elements"}; +module.exports={A:{A:{"1":"J D E F A B","16":"xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","16":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L G M N O n o p q r s t"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F CC","132":"B C DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB IC JC"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"Y","132":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"257":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"readonly attribute of input and textarea elements"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/referrer-policy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/referrer-policy.js index fd6882092f584b..8967dccff3f6c0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/referrer-policy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/referrer-policy.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","132":"B"},B:{"1":"O P Q R","132":"C J K G L M N","513":"V W X Y Z a b c d e f g h i S T"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X","2":"0 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","513":"Y Z a b c d e f g h i S T fB"},D:{"1":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V","2":"H j I D E F A B C J K G L M N k l","260":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB","513":"W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"C gB hB","2":"H j I D zB mB 0B 1B","132":"E F A B 2B 3B nB","1025":"J K G 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB","2":"F B C 8B 9B AC BC gB qB CC hB","513":"ZB aB bB cB dB eB O P Q lB R"},G:{"1":"OC PC QC RC","2":"mB DC rB EC FC GC","132":"E HC IC JC KC LC MC NC","1025":"SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"513":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Referrer Policy"}; +module.exports={A:{A:{"2":"J D E F A xB","132":"B"},B:{"1":"P Q R S","132":"C K L G M N O","513":"T U V W Z a b c d e f g h i j k l H X"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V","2":"0 1 2 3 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","513":"W Z a b c d e f g h i j k l H X pB"},D:{"1":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T","2":"I m J D E F A B C K L G M N O n o","260":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB","513":"U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"C iB jB","2":"I m J D 3B qB 4B 5B","132":"E F A B 6B 7B rB","1025":"K L G 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB","2":"F B C CC DC EC FC iB vB GC jB","513":"cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"SC TC UC VC","2":"qB HC wB IC JC KC","132":"E LC MC NC OC PC QC RC","1025":"WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"513":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Referrer Policy"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/registerprotocolhandler.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/registerprotocolhandler.js index 6e498f171bac7f..615d4d4675bd49 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/registerprotocolhandler.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","129":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB"},D:{"2":"H j I D E F A B C","129":"0 1 2 3 4 5 6 7 8 9 J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B 8B 9B AC BC gB qB","129":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D","129":"A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"Custom protocol handling"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","129":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB"},D:{"2":"I m J D E F A B C","129":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B CC DC EC FC iB vB","129":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D","129":"A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"Custom protocol handling"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noopener.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noopener.js index 3b9fe114f93a4b..6f7ed7a94f82e9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noopener.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noopener.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB uB vB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:1,C:"rel=noopener"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:1,C:"rel=noopener"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noreferrer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noreferrer.js index 3629962d1435c2..9015ce5861925d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noreferrer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rel-noreferrer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","132":"B"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K G"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Link type \"noreferrer\""}; +module.exports={A:{A:{"2":"J D E F A xB","132":"B"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","16":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L G"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Link type \"noreferrer\""}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rellist.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rellist.js index 6274575b1dce41..270bb5976b7855 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rellist.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rellist.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L","132":"M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u uB vB"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB","132":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E zB mB 0B 1B 2B"},F:{"1":"HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","132":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"132":"eC"},P:{"1":"jC nB kC lC mC nC oC pC","2":"H","132":"fC gC hC iC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:1,C:"relList (DOMTokenList)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M","132":"N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x zB 0B"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","132":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","132":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"132":"iC"},P:{"1":"nC rB oC pC qC rC sC kB tC","2":"I","132":"jC kC lC mC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:1,C:"relList (DOMTokenList)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rem.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rem.js index 1c14dd38b15dee..7ce8c6e5ae4edc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rem.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rem.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E sB","132":"F A"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","2":"tB iB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F B 8B 9B AC BC gB qB"},G:{"1":"E DC rB FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB","260":"EC"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"C U hB","2":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"rem (root em) units"}; +module.exports={A:{A:{"1":"B","2":"J D E xB","132":"F A"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","2":"yB lB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F B CC DC EC FC iB vB"},G:{"1":"E HC wB JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB","260":"IC"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"C Y jB","2":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"rem (root em) units"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestanimationframe.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestanimationframe.js index 781ffc7679ad00..d27a0a95a3345f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestanimationframe.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestanimationframe.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","33":"B C J K G L M N k l m n","164":"H j I D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F","33":"n o","164":"N k l m","420":"A B C J K G L M"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","33":"I"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC","33":"FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"requestAnimationFrame"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","33":"B C K L G M N O n o p q","164":"I m J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F","33":"q r","164":"O n o p","420":"A B C K L G M N"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC","33":"JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"requestAnimationFrame"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestidlecallback.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestidlecallback.js index 6151cb9604a331..f45abdb9e2952d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestidlecallback.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/requestidlecallback.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB uB vB","194":"IB JB"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB"},E:{"2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB","322":"K G 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w x y 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC","322":"TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"requestIdleCallback"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB zB 0B","194":"LB MB"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB"},E:{"2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB","322":"L G 8B 9B AC sB tB uB kB BC"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC","322":"XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"requestIdleCallback"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resizeobserver.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resizeobserver.js index 73a7646a14912b..3b705e0bc6bb67 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resizeobserver.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resizeobserver.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB uB vB"},D:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","194":"JB KB LB MB NB jB OB kB PB QB"},E:{"1":"K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB hB","66":"J"},F:{"1":"HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","194":"6 7 8 9 AB BB CB DB EB FB GB"},G:{"1":"TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"jC nB kC lC mC nC oC pC","2":"H fC gC hC iC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Resize Observer"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB zB 0B"},D:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","194":"MB NB OB PB QB mB RB nB SB TB"},E:{"1":"L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB jB","66":"K"},F:{"1":"KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","194":"9 AB BB CB DB EB FB GB HB IB JB"},G:{"1":"XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"nC rB oC pC qC rC sC kB tC","2":"I jC kC lC mC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Resize Observer"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resource-timing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resource-timing.js index 3fbbe558f47a30..d5c2248348095d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resource-timing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/resource-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v uB vB","194":"w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB","260":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Resource Timing"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y zB 0B","194":"0 1 2 z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","260":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Resource Timing"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rest-parameters.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rest-parameters.js index dd5ea652b0078d..efa0973eceb12b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rest-parameters.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rest-parameters.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","194":"9 AB BB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v 8B 9B AC BC gB qB CC hB","194":"w x y"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Rest parameters"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"1":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB","194":"CB DB EB"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x y CC DC EC FC iB vB GC jB","194":"0 1 z"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Rest parameters"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rtcpeerconnection.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rtcpeerconnection.js index 933f34188f5cdc..533efd06cb6f14 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/rtcpeerconnection.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K","516":"G L M N"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m uB vB","33":"0 1 2 3 4 5 6 7 8 n o p q r s t u v w x y z"},D:{"1":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n","33":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 N k l m n o p q r s t u v w x y z"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D","130":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"33":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"33":"qC"},R:{"33":"rC"},S:{"1":"sC"}},B:5,C:"WebRTC Peer-to-peer connections"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L","516":"G M N O"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B","33":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB"},D:{"1":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q","33":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D","130":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"33":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"33":"uC"},R:{"33":"vC"},S:{"1":"wC"}},B:5,C:"WebRTC Peer-to-peer connections"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ruby.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ruby.js index 5da5c971d703c0..e3804bfa1688a8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ruby.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ruby.js @@ -1 +1 @@ -module.exports={A:{A:{"4":"I D E F A B sB"},B:{"4":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","8":"0 1 2 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","8":"H"},E:{"4":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"H zB mB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","8":"F B C 8B 9B AC BC gB qB CC hB"},G:{"4":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","8":"mB DC rB"},H:{"8":"XC"},I:{"4":"iB H T bC rB cC dC","8":"YC ZC aC"},J:{"4":"A","8":"D"},K:{"4":"U","8":"A B C gB qB hB"},L:{"4":"fB"},M:{"1":"S"},N:{"4":"A B"},O:{"4":"eC"},P:{"4":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"4":"qC"},R:{"4":"rC"},S:{"1":"sC"}},B:1,C:"Ruby annotation"}; +module.exports={A:{A:{"4":"J D E F A B xB"},B:{"4":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","8":"0 1 2 3 4 5 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"4":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","8":"I"},E:{"4":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"I 3B qB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","8":"F B C CC DC EC FC iB vB GC jB"},G:{"4":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","8":"qB HC wB"},H:{"8":"bC"},I:{"4":"lB I H fC wB gC hC","8":"cC dC eC"},J:{"4":"A","8":"D"},K:{"4":"Y","8":"A B C iB vB jB"},L:{"4":"X"},M:{"1":"H"},N:{"4":"A B"},O:{"4":"iC"},P:{"4":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"4":"uC"},R:{"4":"vC"},S:{"1":"wC"}},B:1,C:"Ruby annotation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/run-in.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/run-in.js index 8f208c043a8921..7413e21afedbb4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/run-in.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/run-in.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"I D sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w","2":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I 0B","2":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"1B","129":"H zB mB"},F:{"1":"F B C G L M N 8B 9B AC BC gB qB CC hB","2":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"DC rB EC FC GC","2":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","129":"mB"},H:{"1":"XC"},I:{"1":"iB H YC ZC aC bC rB cC","2":"T dC"},J:{"1":"D A"},K:{"1":"A B C gB qB hB","2":"U"},L:{"2":"fB"},M:{"2":"S"},N:{"1":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"display: run-in"}; +module.exports={A:{A:{"1":"E F A B","2":"J D xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"I m J D E F A B C K L G M N O n o p q r s t u v w x y z","2":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J 4B","2":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"5B","129":"I 3B qB"},F:{"1":"F B C G M N O CC DC EC FC iB vB GC jB","2":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"HC wB IC JC KC","2":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","129":"qB"},H:{"1":"bC"},I:{"1":"lB I cC dC eC fC wB gC","2":"H hC"},J:{"1":"D A"},K:{"1":"A B C iB vB jB","2":"Y"},L:{"2":"X"},M:{"2":"H"},N:{"1":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"display: run-in"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js index 67d0b73d030caa..99efd5badefb6a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","388":"B"},B:{"1":"N O P Q R V W","2":"C J K G","129":"L M","513":"X Y Z a b c d e f g h i S T"},C:{"1":"OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB uB vB"},D:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB","513":"P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"G 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB gB","2052":"K","3076":"C J hB 4B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB","2":"0 1 2 3 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","513":"XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC","2052":"OC PC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"513":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"16":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:6,C:"'SameSite' cookie attribute"}; +module.exports={A:{A:{"2":"J D E F A xB","388":"B"},B:{"1":"O P Q R S T U","2":"C K L G","129":"M N","513":"V W Z a b c d e f g h i j k l H X"},C:{"1":"RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB zB 0B"},D:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","513":"Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"G 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB iB","2052":"L","3076":"C K jB 8B"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB","2":"0 1 2 3 4 5 6 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","513":"aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC","2052":"SC TC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"513":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"16":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:6,C:"'SameSite' cookie attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/screen-orientation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/screen-orientation.js index 7376142d353917..204f0c467e4957 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/screen-orientation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/screen-orientation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","164":"B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","36":"C J K G L M N"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M uB vB","36":"0 1 2 3 4 5 6 7 8 N k l m n o p q r s t u v w x y z"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A","36":"B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","16":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"Screen Orientation"}; +module.exports={A:{A:{"2":"J D E F A xB","164":"B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","36":"C K L G M N O"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N zB 0B","36":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A","36":"B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","16":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"Screen Orientation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-async.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-async.js index 1924746820a6e5..a22e0a428f1044 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-async.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-async.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","2":"tB iB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","132":"j"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"async attribute for external scripts"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","2":"yB lB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","132":"m"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"async attribute for external scripts"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-defer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-defer.js index 9f1866e1c81f73..c06a1f02169ed9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-defer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/script-defer.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","132":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","257":"H j I D E F A B C J K G L M N k l m n o p q r s t u v uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"defer attribute for external scripts"}; +module.exports={A:{A:{"1":"A B","132":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","257":"I m J D E F A B C K L G M N O n o p q r s t u v w x y zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"defer attribute for external scripts"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoview.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoview.js index 2f5d350e1069b9..0e46951150d877 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoview.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoview.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D sB","132":"E F A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","132":"C J K G L M N"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","132":"0 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB"},E:{"1":"7B","2":"H j zB mB","132":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F 8B 9B AC BC","16":"B gB qB","132":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB CC hB"},G:{"16":"mB DC rB","132":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","16":"YC ZC","132":"iB H aC bC rB cC dC"},J:{"132":"D A"},K:{"1":"U","132":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"132":"eC"},P:{"132":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"132":"rC"},S:{"1":"sC"}},B:5,C:"scrollIntoView"}; +module.exports={A:{A:{"2":"J D xB","132":"E F A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","132":"C K L G M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","132":"0 1 2 3 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB"},E:{"1":"BC","2":"I m 3B qB","132":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F CC DC EC FC","16":"B iB vB","132":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GC jB"},G:{"16":"qB HC wB","132":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","16":"cC dC","132":"lB I eC fC wB gC hC"},J:{"132":"D A"},K:{"1":"Y","132":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"132":"iC"},P:{"132":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"132":"vC"},S:{"1":"wC"}},B:5,C:"scrollIntoView"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js index d4ceefa3c80b3a..f8684ee5cde130 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:7,C:"Element.scrollIntoViewIfNeeded()"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:7,C:"Element.scrollIntoViewIfNeeded()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sdch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sdch.js index b39c1ec04ae3c8..5b5699a89631c1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sdch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sdch.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB","2":"jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB","2":"F B C ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","2":"mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB","2":"F B C cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/selection-api.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/selection-api.js index fb400b1711867b..ddb6fb4f24c133 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/selection-api.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/selection-api.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","16":"sB","260":"I D E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","132":"0 1 2 3 4 5 6 7 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","2180":"8 9 AB BB CB DB EB FB GB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","132":"F B C 8B 9B AC BC gB qB CC hB"},G:{"16":"rB","132":"mB DC","516":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T cC dC","16":"iB H YC ZC aC bC","1025":"rB"},J:{"1":"A","16":"D"},K:{"1":"U","16":"A B C gB qB","132":"hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","16":"A"},O:{"1025":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2180":"sC"}},B:5,C:"Selection API"}; +module.exports={A:{A:{"1":"F A B","16":"xB","260":"J D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","132":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB zB 0B","2180":"BB CB DB EB FB GB HB IB JB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","132":"F B C CC DC EC FC iB vB GC jB"},G:{"16":"wB","132":"qB HC","516":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H gC hC","16":"lB I cC dC eC fC","1025":"wB"},J:{"1":"A","16":"D"},K:{"1":"Y","16":"A B C iB vB","132":"jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","16":"A"},O:{"1025":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2180":"wC"}},B:5,C:"Selection API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/server-timing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/server-timing.js index 08be8c3247f06a..a684e12bd91e5b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/server-timing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/server-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB uB vB"},D:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB","196":"OB kB PB QB","324":"U"},E:{"2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB","516":"J K G hB 4B 5B 6B oB pB 7B"},F:{"1":"HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Server Timing"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB zB 0B"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB","196":"RB nB SB TB","324":"Y"},E:{"2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB","516":"K L G jB 8B 9B AC sB tB uB kB BC"},F:{"1":"KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Server Timing"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/serviceworkers.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/serviceworkers.js index 2f1bfc42bcef0b..705c58d0e3ea1c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/serviceworkers.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/serviceworkers.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K","322":"G L"},C:{"1":"9 BB CB DB EB FB GB IB JB KB LB MB NB jB kB PB QB U RB SB TB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x uB vB","194":"0 1 2 3 4 5 6 7 8 y z","513":"AB HB OB UB"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","4":"5 6 7 8 9"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B zB mB 0B 1B 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r 8B 9B AC BC gB qB CC hB","4":"s t u v w"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","4":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","4":"U"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"4":"rC"},S:{"2":"sC"}},B:4,C:"Service Workers"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L","322":"G M"},C:{"1":"CB EB FB GB HB IB JB LB MB NB OB PB QB mB nB SB TB Y UB VB WB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","194":"1 2 3 4 5 6 7 8 9 AB BB","513":"DB KB RB XB"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","4":"8 9 AB BB CB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u CC DC EC FC iB vB GC jB","4":"v w x y z"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","4":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","4":"Y"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"4":"vC"},S:{"2":"wC"}},B:4,C:"Service Workers"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/setimmediate.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/setimmediate.js index a81bd726ec9700..636eb29ca86637 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/setimmediate.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/setimmediate.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N","2":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"1":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Efficient Script Yielding: setImmediate()"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O","2":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"1":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Efficient Script Yielding: setImmediate()"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sha-2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sha-2.js index 6444f8cbd17980..d257fe35e87a5d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sha-2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sha-2.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","2":"sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"0 1 2 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"16":"XC"},I:{"1":"iB H T ZC aC bC rB cC dC","260":"YC"},J:{"1":"D A"},K:{"1":"U","16":"A B C gB qB hB"},L:{"1":"fB"},M:{"16":"S"},N:{"16":"A B"},O:{"16":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","16":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"SHA-2 SSL certificates"}; +module.exports={A:{A:{"1":"J D E F A B","2":"xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"0 1 2 3 4 5 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"16":"bC"},I:{"1":"lB I H dC eC fC wB gC hC","260":"cC"},J:{"1":"D A"},K:{"1":"Y","16":"A B C iB vB jB"},L:{"1":"X"},M:{"16":"H"},N:{"16":"A B"},O:{"16":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","16":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"SHA-2 SSL certificates"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdom.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdom.js index 97093e5227d235..20a7dcac11fcda 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdom.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdom.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O","2":"C J K G L M N P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","66":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O","2":"H j I D E F A B C J K G L M N k l m n o p P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"q r s t u v w x y z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB","2":"F B C TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","33":"G L M N k l m"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB","33":"cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC","2":"mC nC oC pC","33":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:7,C:"Shadow DOM (deprecated V0 spec)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P","2":"C K L G M N O Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","66":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P","2":"I m J D E F A B C K L G M N O n o p q r s Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"0 1 2 t u v w x y z"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB","2":"F B C WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","33":"G M N O n o p"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB","33":"gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC","2":"qC rC sC kB tC","33":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:7,C:"Shadow DOM (deprecated V0 spec)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdomv1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdomv1.js index 38c1c9f1ddcde5..4f674f6d156aae 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdomv1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/shadowdomv1.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB uB vB","322":"NB","578":"jB OB kB PB"},D:{"1":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB"},E:{"1":"A B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC","132":"KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H","4":"fC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Shadow DOM (V1)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB zB 0B","322":"QB","578":"mB RB nB SB"},D:{"1":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"A B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC","132":"OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I","4":"jC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Shadow DOM (V1)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedarraybuffer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedarraybuffer.js index f8260ccd7241e0..55b6db4509c1f7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedarraybuffer.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b","2":"C J K G","194":"L M N","513":"c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB uB vB","194":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB","450":"aB bB cB dB eB","513":"O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB","194":"OB kB PB QB U RB SB TB","513":"c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A zB mB 0B 1B 2B 3B","194":"B C J K G nB gB hB 4B 5B 6B","513":"oB pB 7B"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB 8B 9B AC BC gB qB CC hB","194":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC","194":"LC MC NC OC PC QC RC SC TC UC VC WC","513":"oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"513":"fB"},M:{"513":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Shared Array Buffer"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b","2":"C K L G","194":"M N O","513":"c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB zB 0B","194":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB","450":"dB eB fB gB hB","513":"P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB","194":"RB nB SB TB Y UB VB WB","513":"c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A 3B qB 4B 5B 6B 7B","194":"B C K L G rB iB jB 8B 9B AC","513":"sB tB uB kB BC"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB CC DC EC FC iB vB GC jB","194":"FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC","194":"PC QC RC SC TC UC VC WC XC YC ZC aC","513":"sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"513":"X"},M:{"513":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Shared Array Buffer"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedworkers.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedworkers.js index c19fd3079746e5..70bf3c51f13b84 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedworkers.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sharedworkers.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"j I 0B","2":"H D E F A B C J K G zB mB 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","2":"F 8B 9B AC"},G:{"1":"EC FC","2":"E mB DC rB GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"B C gB qB hB","2":"U","16":"A"},L:{"2":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"H","2":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:1,C:"Shared Web Workers"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"m J 4B kB BC","2":"I D E F A B C K L G 3B qB 5B 6B 7B rB iB jB 8B 9B AC sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","2":"F CC DC EC"},G:{"1":"IC JC kB","2":"E qB HC wB KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"B C iB vB jB","2":"Y","16":"A"},L:{"2":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"I","2":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:1,C:"Shared Web Workers"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sni.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sni.js index fae77b4d52a926..51306e5c031f79 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sni.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sni.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I sB","132":"D E"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB"},H:{"1":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"A","2":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Server Name Indication"}; +module.exports={A:{A:{"1":"F A B","2":"J xB","132":"D E"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB"},H:{"1":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"A","2":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Server Name Indication"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spdy.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spdy.js index 18fb0401abf040..be2d7e7f98c011 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spdy.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spdy.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F A sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB","2":"tB iB H j I D E F A B C GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB","2":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"E F A B C 3B nB gB","2":"H j I D zB mB 0B 1B 2B","129":"J K G hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 7 9 G L M N k l m n o p q r s t u v w x y z hB","2":"5 6 8 F B C AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC"},G:{"1":"E HC IC JC KC LC MC NC OC","2":"mB DC rB EC FC GC","257":"PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H bC rB cC dC","2":"T YC ZC aC"},J:{"2":"D A"},K:{"1":"hB","2":"A B C U gB qB"},L:{"2":"fB"},M:{"2":"S"},N:{"1":"B","2":"A"},O:{"2":"eC"},P:{"1":"H","2":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"16":"rC"},S:{"1":"sC"}},B:7,C:"SPDY protocol"}; +module.exports={A:{A:{"1":"B","2":"J D E F A xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","2":"yB lB I m J D E F A B C JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","2":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"E F A B C 7B rB iB","2":"I m J D 3B qB 4B 5B 6B","129":"K L G jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 G M N O n o p q r s t u v w x y z AB CB jB","2":"8 9 F B C BB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC"},G:{"1":"E LC MC NC OC PC QC RC SC","2":"qB HC wB IC JC KC","257":"TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I fC wB gC hC","2":"H cC dC eC"},J:{"2":"D A"},K:{"1":"jB","2":"A B C Y iB vB"},L:{"2":"X"},M:{"2":"H"},N:{"1":"B","2":"A"},O:{"2":"iC"},P:{"1":"I","2":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"16":"vC"},S:{"1":"wC"}},B:7,C:"SPDY protocol"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-recognition.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-recognition.js index f0eb638af6d0b3..085114689fe9be 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-recognition.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-recognition.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","1026":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m uB vB","322":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"H j I D E F A B C J K G L M N k l m n o p","164":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K zB mB 0B 1B 2B 3B nB gB hB 4B","2084":"G 5B 6B oB pB 7B"},F:{"2":"F B C G L M N k l m n o p q r 8B 9B AC BC gB qB CC hB","1026":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC","2084":"VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"164":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"164":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"164":"qC"},R:{"164":"rC"},S:{"322":"sC"}},B:7,C:"Speech Recognition API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","1026":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B","322":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"I m J D E F A B C K L G M N O n o p q r s","164":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L 3B qB 4B 5B 6B 7B rB iB jB 8B","2084":"G 9B AC sB tB uB kB BC"},F:{"2":"F B C G M N O n o p q r s t u CC DC EC FC iB vB GC jB","1026":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC","2084":"ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"164":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"164":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"164":"uC"},R:{"164":"vC"},S:{"322":"wC"}},B:7,C:"Speech Recognition API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-synthesis.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-synthesis.js index 25b48adf3da667..2eb8ddca9d90a1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-synthesis.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/speech-synthesis.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N","2":"C J","257":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v uB vB","194":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x","257":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","2":"F B C G L M N k l m n o p q r 8B 9B AC BC gB qB CC hB","257":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:7,C:"Speech Synthesis API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O","2":"C K","257":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y zB 0B","194":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB","2":"0 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","257":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB","2":"F B C G M N O n o p q r s t u CC DC EC FC iB vB GC jB","257":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:7,C:"Speech Synthesis API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spellcheck-attribute.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spellcheck-attribute.js index 0046475c323bc3..c66b37a650a256 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/spellcheck-attribute.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"4":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"4":"XC"},I:{"4":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"A","4":"D"},K:{"4":"A B C U gB qB hB"},L:{"4":"fB"},M:{"4":"S"},N:{"4":"A B"},O:{"4":"eC"},P:{"4":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"4":"rC"},S:{"2":"sC"}},B:1,C:"Spellcheck attribute"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"4":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"4":"bC"},I:{"4":"lB I H cC dC eC fC wB gC hC"},J:{"1":"A","4":"D"},K:{"4":"A B C Y iB vB jB"},L:{"4":"X"},M:{"4":"H"},N:{"4":"A B"},O:{"4":"iC"},P:{"4":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"4":"vC"},S:{"2":"wC"}},B:1,C:"Spellcheck attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sql-storage.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sql-storage.js index ca2c85bb7f8113..4cf695f95f42a1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sql-storage.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sql-storage.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB hB","2":"J K G 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC","2":"QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:7,C:"Web SQL Database"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB jB","2":"K L G 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC","2":"UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:7,C:"Web SQL Database"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/srcset.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/srcset.js index 7b297801a5a8b7..6cad6bdfe18ec8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/srcset.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/srcset.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","260":"C","514":"J K G"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w uB vB","194":"0 1 2 x y z"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y","260":"0 1 2 z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B 1B","260":"E 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l 8B 9B AC BC gB qB CC hB","260":"m n o p"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC","260":"E HC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Srcset and sizes attributes"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C","514":"K L G"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","194":"0 1 2 3 4 5"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","260":"2 3 4 5"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B 5B","260":"E 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o CC DC EC FC iB vB GC jB","260":"p q r s"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC","260":"E LC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Srcset and sizes attributes"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stream.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stream.js index 0e8d0f55780914..7d5413dcd6aed1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stream.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stream.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L uB vB","129":"1 2 3 4 5 6","420":"0 M N k l m n o p q r s t u v w x y z"},D:{"1":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l","420":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B G L M 8B 9B AC BC gB qB CC","420":"0 1 2 3 4 C N k l m n o p q r s t u v w x y z hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC","513":"TC UC VC WC oB pB","1537":"MC NC OC PC QC RC SC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D","420":"A"},K:{"1":"U","2":"A B gB qB","420":"C hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","420":"H fC"},Q:{"1":"qC"},R:{"420":"rC"},S:{"2":"sC"}},B:4,C:"getUserMedia/Stream API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M zB 0B","129":"4 5 6 7 8 9","420":"0 1 2 3 N O n o p q r s t u v w x y z"},D:{"1":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o","420":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B G M N CC DC EC FC iB vB GC","420":"0 1 2 3 4 5 6 7 C O n o p q r s t u v w x y z jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC","513":"XC YC ZC aC sB tB uB kB","1537":"QC RC SC TC UC VC WC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D","420":"A"},K:{"1":"Y","2":"A B iB vB","420":"C jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","420":"I jC"},Q:{"1":"uC"},R:{"420":"vC"},S:{"2":"wC"}},B:4,C:"getUserMedia/Stream API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/streams.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/streams.js index 8bbe8613e03439..495f95698704d1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/streams.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/streams.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","130":"B"},B:{"1":"a b c d e f g h i S T","16":"C J","260":"K G","1028":"O P Q R V W X Y Z","5124":"L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB uB vB","6148":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","6722":"MB NB jB OB kB PB QB U"},D:{"1":"a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","260":"HB IB JB KB LB MB NB","1028":"jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z"},E:{"2":"H j I D E F zB mB 0B 1B 2B 3B","1028":"G 5B 6B oB pB 7B","3076":"A B C J K nB gB hB 4B"},F:{"1":"cB dB eB O P Q lB R","2":"0 1 2 3 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","260":"4 5 6 7 8 9 AB","1028":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB"},G:{"2":"E mB DC rB EC FC GC HC IC JC","16":"KC","1028":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"6148":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"oC pC","2":"H fC gC","1028":"hC iC jC nB kC lC mC nC"},Q:{"1028":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"Streams"}; +module.exports={A:{A:{"2":"J D E F A xB","130":"B"},B:{"1":"a b c d e f g h i j k l H X","16":"C K","260":"L G","1028":"P Q R S T U V W Z","5124":"M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB zB 0B","5124":"l H X pB","7172":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k","7746":"PB QB mB RB nB SB TB Y"},D:{"1":"a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","260":"KB LB MB NB OB PB QB","1028":"mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z"},E:{"2":"I m J D E F 3B qB 4B 5B 6B 7B","1028":"G 9B AC sB tB uB kB BC","3076":"A B C K L rB iB jB 8B"},F:{"1":"fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","260":"7 8 9 AB BB CB DB","1028":"EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB"},G:{"2":"E qB HC wB IC JC KC LC MC NC","16":"OC","1028":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"5124":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"sC kB tC","2":"I jC kC","1028":"lC mC nC rB oC pC qC rC"},Q:{"1028":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"Streams"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stricttransportsecurity.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stricttransportsecurity.js index f1ac78e473ada5..376469962a9331 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/stricttransportsecurity.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A sB","129":"B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC gB qB CC"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Strict Transport Security"}; +module.exports={A:{A:{"2":"J D E F A xB","129":"B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC iB vB GC"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Strict Transport Security"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/style-scoped.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/style-scoped.js index fd3b39bb31a03b..9200871520c45e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/style-scoped.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/style-scoped.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB","2":"tB iB H j I D E F A B C J K G L M N k l kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","322":"KB LB MB NB jB OB"},D:{"2":"2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","194":"0 1 l m n o p q r s t u v w x y z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:7,C:"Scoped CSS"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB","2":"yB lB I m J D E F A B C K L G M N O n o nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","322":"NB OB PB QB mB RB"},D:{"2":"5 6 7 8 9 I m J D E F A B C K L G M N O n AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","194":"0 1 2 3 4 o p q r s t u v w x y z"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:7,C:"Scoped CSS"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-integrity.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-integrity.js index 779bf90b05eb4e..5e24638d1f3913 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-integrity.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/subresource-integrity.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u v w 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC","194":"MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"Subresource Integrity"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB zB 0B"},D:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC","194":"QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"Subresource Integrity"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-css.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-css.js index b642cf397a01ec..1b4bbeaa6247f2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-css.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-css.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","516":"C J K G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","260":"H j I D E F A B C J K G L M N k l m n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","4":"H"},E:{"1":"j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB","132":"H mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","132":"mB DC"},H:{"260":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"D A"},K:{"1":"U","260":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"SVG in CSS backgrounds"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","516":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","260":"I m J D E F A B C K L G M N O n o p q r"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","4":"I"},E:{"1":"m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B","132":"I qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","132":"qB HC"},H:{"260":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"D A"},K:{"1":"Y","260":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"SVG in CSS backgrounds"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-filters.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-filters.js index 42fceb61cd38d1..c6ddf300c8d0b0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-filters.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-filters.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H","4":"j I D"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"SVG filters"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I","4":"m J D"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"SVG filters"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fonts.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fonts.js index f6915a8b1e2520..71dcd97992870f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fonts.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fonts.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"F A B sB","8":"I D E"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","2":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","130":"3 4 5 6 7 8 9 AB BB CB DB EB FB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB"},F:{"1":"F B C G L M N k l m n o p 8B 9B AC BC gB qB CC hB","2":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","130":"0 1 q r s t u v w x y z"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"258":"XC"},I:{"1":"iB H bC rB cC dC","2":"T YC ZC aC"},J:{"1":"D A"},K:{"1":"A B C gB qB hB","2":"U"},L:{"130":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"H","130":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"130":"rC"},S:{"2":"sC"}},B:2,C:"SVG fonts"}; +module.exports={A:{A:{"2":"F A B xB","8":"J D E"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","2":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","130":"6 7 8 9 AB BB CB DB EB FB GB HB IB"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B"},F:{"1":"F B C G M N O n o p q r s CC DC EC FC iB vB GC jB","2":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","130":"0 1 2 3 4 t u v w x y z"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"258":"bC"},I:{"1":"lB I fC wB gC hC","2":"H cC dC eC"},J:{"1":"D A"},K:{"1":"A B C iB vB jB","2":"Y"},L:{"130":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"I","130":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"130":"vC"},S:{"2":"wC"}},B:2,C:"SVG fonts"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fragment.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fragment.js index 8ea36cbb58c5b1..9966592351c3e1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fragment.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-fragment.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","260":"F A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"1":"FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","132":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB"},E:{"1":"C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D F A B zB mB 0B 1B 3B nB","132":"E 2B"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"G L M N k l m n","4":"B C 9B AC BC gB qB CC","16":"F 8B","132":"0 1 o p q r s t u v w x y z"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC IC JC KC LC MC","132":"E HC"},H:{"1":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D","132":"A"},K:{"1":"U hB","4":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","132":"H"},Q:{"1":"qC"},R:{"132":"rC"},S:{"1":"sC"}},B:4,C:"SVG fragment identifiers"}; +module.exports={A:{A:{"2":"J D E xB","260":"F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"1":"IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","132":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB"},E:{"1":"C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D F A B 3B qB 4B 5B 7B rB","132":"E 6B"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"G M N O n o p q","4":"B C DC EC FC iB vB GC","16":"F CC","132":"0 1 2 3 4 r s t u v w x y z"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC MC NC OC PC QC","132":"E LC"},H:{"1":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D","132":"A"},K:{"1":"Y jB","4":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","132":"I"},Q:{"1":"uC"},R:{"132":"vC"},S:{"1":"wC"}},B:4,C:"SVG fragment identifiers"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html.js index 1a57a652c08308..587a02c6ca7b3a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","388":"F A B"},B:{"4":"O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB","4":"iB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"zB mB","4":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"4":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"4":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB","4":"T cC dC"},J:{"1":"A","2":"D"},K:{"4":"A B C U gB qB hB"},L:{"4":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"4":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"4":"qC"},R:{"4":"rC"},S:{"1":"sC"}},B:2,C:"SVG effects for HTML"}; +module.exports={A:{A:{"2":"J D E xB","388":"F A B"},B:{"4":"P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB","4":"lB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"3B qB","4":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"4":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"4":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB","4":"H gC hC"},J:{"1":"A","2":"D"},K:{"4":"A B C Y iB vB jB"},L:{"4":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"4":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"4":"uC"},R:{"4":"vC"},S:{"1":"wC"}},B:2,C:"SVG effects for HTML"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html5.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html5.js index 92a041c06ef9ed..63935c6294d1b2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html5.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-html5.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","8":"I D E","129":"F A B"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","129":"C J K G L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","8":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","8":"H j I"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","8":"H j zB mB","129":"I D E 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"B BC gB qB","8":"F 8B 9B AC"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","8":"mB DC rB","129":"E EC FC GC HC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"YC ZC aC","129":"iB H bC rB"},J:{"1":"A","129":"D"},K:{"1":"C U hB","8":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"129":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Inline SVG in HTML5"}; +module.exports={A:{A:{"2":"xB","8":"J D E","129":"F A B"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","129":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","8":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","8":"I m J"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"I m 3B qB","129":"J D E 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"B FC iB vB","8":"F CC DC EC"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","8":"qB HC wB","129":"E IC JC KC LC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"cC dC eC","129":"lB I fC wB"},J:{"1":"A","129":"D"},K:{"1":"C Y jB","8":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"129":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Inline SVG in HTML5"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-img.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-img.js index 166b7e5a536ad6..1f863bbdef7c20 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-img.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-img.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j I D E F A B C J K G L M N k l m n o p q r s"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB","4":"mB","132":"H j I D E 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","132":"E mB DC rB EC FC GC HC"},H:{"1":"XC"},I:{"1":"T cC dC","2":"YC ZC aC","132":"iB H bC rB"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"SVG in HTML img element"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m J D E F A B C K L G M N O n o p q r s t u v"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B","4":"qB","132":"I m J D E 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","132":"E qB HC wB IC JC KC LC"},H:{"1":"bC"},I:{"1":"H gC hC","2":"cC dC eC","132":"lB I fC wB"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"SVG in HTML img element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-smil.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-smil.js index 9f14975a909785..9e5649bc55a403 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-smil.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg-smil.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","8":"I D E F A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","8":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","8":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","4":"H"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"zB mB","132":"H j 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","132":"mB DC rB EC"},H:{"2":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"8":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"SVG SMIL animation"}; +module.exports={A:{A:{"2":"xB","8":"J D E F A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","8":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","8":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","4":"I"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"3B qB","132":"I m 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","132":"qB HC wB IC"},H:{"2":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"8":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"SVG SMIL animation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg.js index 780cd910dfc75f..fe511fa031e08d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/svg.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","8":"I D E","772":"F A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","513":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","4":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","4":"zB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"T cC dC","2":"YC ZC aC","132":"iB H bC rB"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"257":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"SVG (basic support)"}; +module.exports={A:{A:{"2":"xB","8":"J D E","772":"F A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","513":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","4":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","4":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"H gC hC","2":"cC dC eC","132":"lB I fC wB"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"257":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"SVG (basic support)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sxg.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sxg.js index 4fdd96f8894df8..17640961ca3ff8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sxg.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/sxg.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB","132":"XB YB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"16":"eC"},P:{"1":"kC lC mC nC oC pC","2":"H fC gC hC iC jC nB"},Q:{"16":"qC"},R:{"16":"rC"},S:{"2":"sC"}},B:6,C:"Signed HTTP Exchanges (SXG)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB","132":"aB bB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"16":"iC"},P:{"1":"oC pC qC rC sC kB tC","2":"I jC kC lC mC nC rB"},Q:{"16":"uC"},R:{"16":"vC"},S:{"2":"wC"}},B:6,C:"Signed HTTP Exchanges (SXG)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tabindex-attr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tabindex-attr.js index 33585fbd379720..b80fff562bf6b7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tabindex-attr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tabindex-attr.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"D E F A B","16":"I sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"16":"tB iB uB vB","129":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"16":"H j zB mB","257":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","16":"F"},G:{"769":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"16":"XC"},I:{"16":"iB H T YC ZC aC bC rB cC dC"},J:{"16":"D A"},K:{"16":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"16":"A B"},O:{"16":"eC"},P:{"16":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"16":"rC"},S:{"129":"sC"}},B:1,C:"tabindex global attribute"}; +module.exports={A:{A:{"1":"D E F A B","16":"J xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"16":"yB lB zB 0B","129":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"16":"I m 3B qB","257":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","16":"F"},G:{"769":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"16":"bC"},I:{"16":"lB I H cC dC eC fC wB gC hC"},J:{"16":"D A"},K:{"16":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"16":"A B"},O:{"16":"iC"},P:{"16":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"16":"vC"},S:{"129":"wC"}},B:1,C:"tabindex global attribute"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template-literals.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template-literals.js index 8f21c02f940566..6e1e69a3e6965e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template-literals.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template-literals.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"J K G L M N O P Q R V W X Y Z a b c d e f g h i S T","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y uB vB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"A B J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B","129":"C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t 8B 9B AC BC gB qB CC hB"},G:{"1":"IC JC KC LC MC NC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC","129":"OC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"ES6 Template Literals (Template Strings)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","16":"C"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"A B K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B","129":"C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w CC DC EC FC iB vB GC jB"},G:{"1":"MC NC OC PC QC RC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC","129":"SC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"ES6 Template Literals (Template Strings)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template.js index 0b265dff37c4df..8564fae69c3762 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/template.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C","388":"J K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q","132":"r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D zB mB 0B","388":"E 2B","514":"1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","132":"G L M N k l m"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC","388":"E HC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"HTML templates"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C","388":"K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p zB 0B"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t","132":"0 1 2 u v w x y z"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D 3B qB 4B","388":"E 6B","514":"5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","132":"G M N O n o p"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC","388":"E LC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"HTML templates"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/temporal.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/temporal.js index f318a61ccd9d05..1dfa054195f935 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/temporal.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/temporal.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"Temporal"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"Temporal"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/testfeat.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/testfeat.js index a26e5ff3de1ff7..3a29474bdf16a9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/testfeat.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/testfeat.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E A B sB","16":"F"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","16":"H j"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"B C"},E:{"2":"H I zB mB 0B","16":"j D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC qB CC hB","16":"gB"},G:{"2":"mB DC rB EC FC","16":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC bC rB cC dC","16":"aC"},J:{"2":"A","16":"D"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Test feature - updated"}; +module.exports={A:{A:{"2":"J D E A B xB","16":"F"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","16":"I m"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"B C"},E:{"2":"I J 3B qB 4B","16":"m D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC vB GC jB","16":"iB"},G:{"2":"qB HC wB IC JC","16":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC fC wB gC hC","16":"eC"},J:{"2":"A","16":"D"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Test feature - updated"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-decoration.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-decoration.js index f10f5647887788..c8b5c9fc6e495e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-decoration.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-decoration.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","2052":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j uB vB","1028":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","1060":"0 I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},D:{"2":"H j I D E F A B C J K G L M N k l m n o p q","226":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","2052":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D zB mB 0B 1B","772":"J K G hB 4B 5B 6B oB pB 7B","804":"E F A B C 3B nB gB","1316":"2B"},F:{"2":"F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","226":"0 1 2 3 4 5 6 7 8","2052":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"mB DC rB EC FC GC","292":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"2052":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2052":"eC"},P:{"2":"H fC gC","2052":"hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"1":"rC"},S:{"1028":"sC"}},B:4,C:"text-decoration styling"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","2052":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB I m zB 0B","1028":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","1060":"0 1 2 3 J D E F A B C K L G M N O n o p q r s t u v w x y z"},D:{"2":"I m J D E F A B C K L G M N O n o p q r s t","226":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB","2052":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D 3B qB 4B 5B","772":"K L G jB 8B 9B AC sB tB uB kB BC","804":"E F A B C 7B rB iB","1316":"6B"},F:{"2":"0 1 2 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","226":"3 4 5 6 7 8 9 AB BB","2052":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"qB HC wB IC JC KC","292":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"2052":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2052":"iC"},P:{"2":"I jC kC","2052":"lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"1":"vC"},S:{"1028":"wC"}},B:4,C:"text-decoration styling"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-emphasis.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-emphasis.js index 022f954f35e09c..ced192f7d24fbc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-emphasis.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-emphasis.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"T","2":"C J K G L M N","164":"O P Q R V W X Y Z a b c d e f g h i S"},C:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB","322":"AB"},D:{"1":"T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p","164":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S"},E:{"1":"E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B","164":"D 1B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","164":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB","164":"cC dC"},J:{"2":"D","164":"A"},K:{"2":"A B C gB qB hB","164":"U"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"164":"eC"},P:{"164":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"164":"qC"},R:{"164":"rC"},S:{"1":"sC"}},B:4,C:"text-emphasis styling"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"k l H X","2":"C K L G M N O","164":"P Q R S T U V W Z a b c d e f g h i j"},C:{"1":"EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB zB 0B","322":"DB"},D:{"1":"k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s","164":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j"},E:{"1":"E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B","164":"D 5B"},F:{"1":"V W","2":"F B C CC DC EC FC iB vB GC jB","164":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB","164":"gC hC"},J:{"2":"D","164":"A"},K:{"2":"A B C iB vB jB","164":"Y"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"164":"iC"},P:{"164":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"164":"uC"},R:{"164":"vC"},S:{"1":"wC"}},B:4,C:"text-emphasis styling"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-overflow.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-overflow.js index 831d00a763d831..f1ffc76d2aa129 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-overflow.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-overflow.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B","2":"sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","8":"tB iB H j I uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","33":"F 8B 9B AC BC"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"U hB","33":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS3 Text-overflow"}; +module.exports={A:{A:{"1":"J D E F A B","2":"xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","8":"yB lB I m J zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","33":"F CC DC EC FC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"Y jB","33":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS3 Text-overflow"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-size-adjust.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-size-adjust.js index c81d1ec4ae84df..e9f62044e68987 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-size-adjust.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-size-adjust.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","33":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q s t u v w x y z AB BB CB DB EB FB GB HB IB","258":"r"},E:{"2":"H j I D E F A B C J K G zB mB 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","258":"0B"},F:{"1":"8 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 9 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"2":"mB DC rB","33":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"33":"S"},N:{"161":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"CSS text-size-adjust"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","33":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","258":"u"},E:{"2":"I m J D E F A B C K L G 3B qB 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","258":"4B"},F:{"1":"BB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB CB CC DC EC FC iB vB GC jB"},G:{"2":"qB HC wB","33":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"33":"H"},N:{"161":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"CSS text-size-adjust"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-stroke.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-stroke.js index 4e8c0577ab461a..aa7f6620f19f82 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-stroke.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-stroke.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K","33":"O P Q R V W X Y Z a b c d e f g h i S T","161":"G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB uB vB","161":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","450":"DB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"33":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"33":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","36":"mB"},H:{"2":"XC"},I:{"2":"iB","33":"H T YC ZC aC bC rB cC dC"},J:{"33":"D A"},K:{"2":"A B C gB qB hB","33":"U"},L:{"33":"fB"},M:{"161":"S"},N:{"2":"A B"},O:{"33":"eC"},P:{"33":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"33":"qC"},R:{"33":"rC"},S:{"161":"sC"}},B:7,C:"CSS text-stroke and text-fill"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L","33":"P Q R S T U V W Z a b c d e f g h i j k l H X","161":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB zB 0B","161":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","450":"GB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"33":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"33":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","36":"qB"},H:{"2":"bC"},I:{"2":"lB","33":"I H cC dC eC fC wB gC hC"},J:{"33":"D A"},K:{"2":"A B C iB vB jB","33":"Y"},L:{"33":"X"},M:{"161":"H"},N:{"2":"A B"},O:{"33":"iC"},P:{"33":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"33":"uC"},R:{"33":"vC"},S:{"161":"wC"}},B:7,C:"CSS text-stroke and text-fill"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-underline-offset.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-underline-offset.js index 1458da2ed61dd9..391475ced8a066 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-underline-offset.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/text-underline-offset.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB uB vB","130":"VB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"J K G hB 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"text-underline-offset"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB zB 0B","130":"YB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"text-underline-offset"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textcontent.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textcontent.js index ac9a2d167f9782..e66cc57188d226 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textcontent.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textcontent.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","16":"F"},G:{"1":"E DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Node.textContent"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","16":"F"},G:{"1":"E HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Node.textContent"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textencoder.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textencoder.js index 6698f7d7c465ac..07498f570b5241 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textencoder.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/textencoder.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N uB vB","132":"k"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"TextEncoder & TextDecoder"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O zB 0B","132":"n"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"TextEncoder & TextDecoder"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-1.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-1.js index 8eb216a5c77dd0..dbadfb193009c0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-1.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-1.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D sB","66":"E F A"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB","2":"tB iB H j I D E F A B C J K G L M N k l m n uB vB","66":"o","129":"UB VB WB XB YB ZB aB bB cB dB","388":"eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V","2":"H j I D E F A B C J K G L M N k l m","1540":"W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"D E F A B C J 2B 3B nB gB hB","2":"H j I zB mB 0B 1B","513":"K G 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB hB","2":"F B C 8B 9B AC BC gB qB CC","1540":"ZB aB bB cB dB eB O P Q lB R"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"1":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"1":"A","2":"D"},K:{"1":"U hB","2":"A B C gB qB"},L:{"1":"fB"},M:{"129":"S"},N:{"1":"B","66":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"TLS 1.1"}; +module.exports={A:{A:{"1":"B","2":"J D xB","66":"E F A"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB","2":"yB lB I m J D E F A B C K L G M N O n o p q zB 0B","66":"r","129":"XB YB ZB aB bB cB dB eB fB gB","388":"hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T","2":"I m J D E F A B C K L G M N O n o p","1540":"U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"D E F A B C K 6B 7B rB iB jB","2":"I m J 3B qB 4B 5B","513":"L G 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB jB","2":"F B C CC DC EC FC iB vB GC","1540":"cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"1":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"1":"A","2":"D"},K:{"1":"Y jB","2":"A B C iB vB"},L:{"1":"X"},M:{"129":"H"},N:{"1":"B","66":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"TLS 1.1"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-2.js index 0f2c661cb7bdaf..504f18c2df6f0e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-2.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D sB","66":"E F A"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o uB vB","66":"p q r"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F G 8B","66":"B C 9B AC BC gB qB CC hB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"1":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"1":"A","2":"D"},K:{"1":"U hB","2":"A B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","66":"A"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"TLS 1.2"}; +module.exports={A:{A:{"1":"B","2":"J D xB","66":"E F A"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r zB 0B","66":"s t u"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F G CC","66":"B C DC EC FC iB vB GC jB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"1":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"1":"A","2":"D"},K:{"1":"Y jB","2":"A B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","66":"A"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"TLS 1.2"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-3.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-3.js index ade971824d5395..7fe2e4b550aece 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-3.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/tls1-3.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB uB vB","132":"OB kB PB","450":"GB HB IB JB KB LB MB NB jB"},D:{"1":"WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","706":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB"},E:{"1":"K G 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB","1028":"J hB 4B"},F:{"1":"MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB 8B 9B AC BC gB qB CC hB","706":"JB KB LB"},G:{"1":"PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nB kC lC mC nC oC pC","2":"H fC gC hC iC jC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:6,C:"TLS 1.3"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB zB 0B","132":"RB nB SB","450":"JB KB LB MB NB OB PB QB mB"},D:{"1":"ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","706":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB"},E:{"1":"L G 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB","1028":"K jB 8B"},F:{"1":"PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB CC DC EC FC iB vB GC jB","706":"MB NB OB"},G:{"1":"TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rB oC pC qC rC sC kB tC","2":"I jC kC lC mC nC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:6,C:"TLS 1.3"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/token-binding.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/token-binding.js index 13835e92a69432..d65709cbe19dae 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/token-binding.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/token-binding.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K","194":"O P Q R V W X Y Z a b c d e f g h i S T","257":"G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S uB vB","16":"T fB"},D:{"2":"0 1 2 3 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","16":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB","194":"NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E zB mB 0B 1B 2B","16":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C G L M N k l m n o p q r s t u 8B 9B AC BC gB qB CC hB","16":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC","16":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"16":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","16":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","16":"U"},L:{"16":"fB"},M:{"16":"S"},N:{"2":"A","16":"B"},O:{"16":"eC"},P:{"16":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"16":"qC"},R:{"16":"rC"},S:{"2":"sC"}},B:6,C:"Token Binding"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L","194":"P Q R S T U V W Z a b c d e f g h i j k l H X","257":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H zB 0B","16":"X pB"},D:{"2":"0 1 2 3 4 5 6 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","16":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB","194":"QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E 3B qB 4B 5B 6B","16":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C G M N O n o p q r s t u v w x CC DC EC FC iB vB GC jB","16":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC","16":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"16":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","16":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","16":"Y"},L:{"16":"X"},M:{"16":"H"},N:{"2":"A","16":"B"},O:{"16":"iC"},P:{"16":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"16":"uC"},R:{"16":"vC"},S:{"2":"wC"}},B:6,C:"Token Binding"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/touch.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/touch.js index cc0d59d415df7a..a6098ffbe6c05c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/touch.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/touch.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","8":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","578":"C J K G L M N"},C:{"1":"N k l m n o p HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","4":"H j I D E F A B C J K G L M","194":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"8":"A","260":"B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:2,C:"Touch events"}; +module.exports={A:{A:{"2":"J D E F xB","8":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","578":"C K L G M N O"},C:{"1":"O n o p q r s KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","4":"I m J D E F A B C K L G M N","194":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"8":"A","260":"B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:2,C:"Touch events"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms2d.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms2d.js index e88c304168474d..4171dac5ebecdb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms2d.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms2d.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","8":"I D E","129":"A B","161":"F"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","129":"C J K G L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","33":"H j I D E F A B C J K G uB vB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","33":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F 8B 9B","33":"B C G L M N k l m n AC BC gB qB CC"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","33":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","33":"iB H YC ZC aC bC rB cC dC"},J:{"33":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"CSS3 2D Transforms"}; +module.exports={A:{A:{"2":"xB","8":"J D E","129":"A B","161":"F"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","129":"C K L G M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","33":"I m J D E F A B C K L G zB 0B"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","33":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F CC DC","33":"B C G M N O n o p q EC FC iB vB GC"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","33":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","33":"lB I cC dC eC fC wB gC hC"},J:{"33":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"CSS3 2D Transforms"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms3d.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms3d.js index dff9b095a26572..5e846ba5ba6865 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms3d.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/transforms3d.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","132":"A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F uB vB","33":"A B C J K G"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B","33":"0 C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"pB 7B","2":"zB mB","33":"H j I D E 0B 1B 2B","257":"F A B C J K G 3B nB gB hB 4B 5B 6B oB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"G L M N k l m n"},G:{"1":"pB","33":"E mB DC rB EC FC GC HC","257":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"1":"T","2":"YC ZC aC","33":"iB H bC rB cC dC"},J:{"33":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"CSS3 3D Transforms"}; +module.exports={A:{A:{"2":"J D E F xB","132":"A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F zB 0B","33":"A B C K L G"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B","33":"0 1 2 3 C K L G M N O n o p q r s t u v w x y z"},E:{"1":"tB uB kB BC","2":"3B qB","33":"I m J D E 4B 5B 6B","257":"F A B C K L G 7B rB iB jB 8B 9B AC sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"G M N O n o p q"},G:{"1":"tB uB kB","33":"E qB HC wB IC JC KC LC","257":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"1":"H","2":"cC dC eC","33":"lB I fC wB gC hC"},J:{"33":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"CSS3 3D Transforms"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/trusted-types.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/trusted-types.js index db3cacfb29fa1c..a1532e90bccb1f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/trusted-types.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/trusted-types.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N O P Q"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"mC nC oC pC","2":"H fC gC hC iC jC nB kC lC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Trusted Types for DOM manipulation"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O P Q R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"qC rC sC kB tC","2":"I jC kC lC mC nC rB oC pC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Trusted Types for DOM manipulation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ttf.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ttf.js index 813adb63cef24f..82f137cea03240 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ttf.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/ttf.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","132":"F A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 9B AC BC gB qB CC hB","2":"F 8B"},G:{"1":"E rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC"},H:{"2":"XC"},I:{"1":"iB H T ZC aC bC rB cC dC","2":"YC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"TTF/OTF - TrueType and OpenType font support"}; +module.exports={A:{A:{"2":"J D E xB","132":"F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W DC EC FC iB vB GC jB","2":"F CC"},G:{"1":"E wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC"},H:{"2":"bC"},I:{"1":"lB I H dC eC fC wB gC hC","2":"cC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"TTF/OTF - TrueType and OpenType font support"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/typedarrays.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/typedarrays.js index faaf9da8a955b2..3669484225a3e5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/typedarrays.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/typedarrays.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"B","2":"I D E F sB","132":"A"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB","260":"0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F B 8B 9B AC BC gB qB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC","260":"rB"},H:{"1":"XC"},I:{"1":"H T bC rB cC dC","2":"iB YC ZC aC"},J:{"1":"A","2":"D"},K:{"1":"C U hB","2":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Typed Arrays"}; +module.exports={A:{A:{"1":"B","2":"J D E F xB","132":"A"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB","260":"4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F B CC DC EC FC iB vB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC","260":"wB"},H:{"1":"bC"},I:{"1":"I H fC wB gC hC","2":"lB cC dC eC"},J:{"1":"A","2":"D"},K:{"1":"C Y jB","2":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Typed Arrays"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/u2f.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/u2f.js index 88d5ef644ab531..8eea13f4f4d0f2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/u2f.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/u2f.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","513":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB uB vB","322":"CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB"},D:{"2":"0 1 2 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","130":"3 4 5","513":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB hB"},F:{"2":"0 1 2 3 4 6 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","513":"5 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"322":"sC"}},B:6,C:"FIDO U2F API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","513":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB zB 0B","322":"FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB"},D:{"2":"0 1 2 3 4 5 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","130":"6 7 8","513":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB jB"},F:{"2":"0 1 2 3 4 5 6 7 9 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","513":"8 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"322":"wC"}},B:6,C:"FIDO U2F API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/unhandledrejection.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/unhandledrejection.js index 9575365798ad11..59516155fba94a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/unhandledrejection.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/unhandledrejection.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB uB vB"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC","16":"MC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:1,C:"unhandledrejection/rejectionhandled events"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB zB 0B"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC","16":"QC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:1,C:"unhandledrejection/rejectionhandled events"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js index 4838a02f61c073..8c78d8202c3a65 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o p q r s t u 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Upgrade Insecure Requests"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M"},C:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r s t u v w x CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Upgrade Insecure Requests"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js index b7436c3461b4ef..fc4c1cc5c0c7ac 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N","66":"O P Q"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB","66":"aB bB cB dB eB O P"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB 8B 9B AC BC gB qB CC hB","66":"SB TB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"mC nC oC pC","2":"H fC gC hC iC jC nB kC lC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"URL Scroll-To-Text Fragment"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O","66":"P Q R"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB","66":"dB eB fB gB hB P Q"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB CC DC EC FC iB vB GC jB","66":"VB WB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"qC rC sC kB tC","2":"I jC kC lC mC nC rB oC pC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"URL Scroll-To-Text Fragment"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url.js index 7e955891a8d82b..4ec7aa6bb91c41 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/url.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n","130":"o p q r s t u v w"},E:{"1":"E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B 1B","130":"D"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","130":"G L M N"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC","130":"GC"},H:{"2":"XC"},I:{"1":"T dC","2":"iB H YC ZC aC bC rB","130":"cC"},J:{"2":"D","130":"A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"URL API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q","130":"r s t u v w x y z"},E:{"1":"E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B 5B","130":"D"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","130":"G M N O"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC","130":"KC"},H:{"2":"bC"},I:{"1":"H hC","2":"lB I cC dC eC fC wB","130":"gC"},J:{"2":"D","130":"A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"URL API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/urlsearchparams.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/urlsearchparams.js index 849e0595cc6305..cea0c4b594675c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/urlsearchparams.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/urlsearchparams.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L"},C:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB","132":"0 1 2 3 4 5 6 7 8 u v w x y z"},D:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"B C J K G nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","2":"H"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:1,C:"URLSearchParams"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M"},C:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B","132":"0 1 2 3 4 5 6 7 8 9 x y z AB BB"},D:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"1":"B C K L G rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB"},G:{"1":"PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","2":"I"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:1,C:"URLSearchParams"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/use-strict.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/use-strict.js index 239749e72da508..ffe24acf18c6e3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/use-strict.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/use-strict.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","132":"j 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F B 8B 9B AC BC gB qB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"1":"XC"},I:{"1":"iB H T bC rB cC dC","2":"YC ZC aC"},J:{"1":"D A"},K:{"1":"C U qB hB","2":"A B gB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"ECMAScript 5 Strict Mode"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","132":"m 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F B CC DC EC FC iB vB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"1":"bC"},I:{"1":"lB I H fC wB gC hC","2":"cC dC eC"},J:{"1":"D A"},K:{"1":"C Y vB jB","2":"A B iB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"ECMAScript 5 Strict Mode"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-select-none.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-select-none.js index 3f57f4513841c6..dbbeb87a687ff3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-select-none.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-select-none.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","33":"A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","33":"C J K G L M N"},C:{"1":"VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","33":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB uB vB"},D:{"1":"JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","33":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},E:{"33":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","33":"0 1 2 3 4 5 G L M N k l m n o p q r s t u v w x y z"},G:{"33":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","33":"iB H YC ZC aC bC rB cC dC"},J:{"33":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"33":"A B"},O:{"2":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","33":"H fC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"33":"sC"}},B:5,C:"CSS user-select: none"}; +module.exports={A:{A:{"2":"J D E F xB","33":"A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","33":"C K L G M N O"},C:{"1":"YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","33":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB zB 0B"},D:{"1":"MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","33":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},E:{"1":"BC","33":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","33":"0 1 2 3 4 5 6 7 8 G M N O n o p q r s t u v w x y z"},G:{"33":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","33":"lB I cC dC eC fC wB gC hC"},J:{"33":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"33":"A B"},O:{"2":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","33":"I jC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"33":"wC"}},B:5,C:"CSS user-select: none"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-timing.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-timing.js index 546865b498a34c..f29a3fc76c2f78 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-timing.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/user-timing.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"User Timing API"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"User Timing API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/variable-fonts.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/variable-fonts.js index b260ebc77cc828..0a3c17907feebb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/variable-fonts.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/variable-fonts.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB uB vB","4609":"PB QB U RB SB TB UB VB WB","4674":"kB","5698":"OB","7490":"IB JB KB LB MB","7746":"NB jB","8705":"XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB","4097":"SB","4290":"jB OB kB","6148":"PB QB U RB"},E:{"1":"G 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB","4609":"B C gB hB","8193":"J K 4B 5B"},F:{"1":"JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB 8B 9B AC BC gB qB CC hB","4097":"IB","6148":"EB FB GB HB"},G:{"1":"QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC","4097":"MC NC OC PC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"4097":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC","4097":"iC jC nB kC lC mC nC oC pC"},Q:{"4097":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Variable fonts"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB zB 0B","4609":"SB TB Y UB VB WB XB YB ZB","4674":"nB","5698":"RB","7490":"LB MB NB OB PB","7746":"QB mB","8705":"aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB","4097":"VB","4290":"mB RB nB","6148":"SB TB Y UB"},E:{"1":"G AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","4609":"B C iB jB","8193":"K L 8B 9B"},F:{"1":"MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB CC DC EC FC iB vB GC jB","4097":"LB","6148":"HB IB JB KB"},G:{"1":"UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC","4097":"QC RC SC TC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"4097":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC","4097":"mC nC rB oC pC qC rC sC kB tC"},Q:{"4097":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Variable fonts"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vector-effect.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vector-effect.js index 35ea7628412bdb..767c2b0f456603 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vector-effect.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vector-effect.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","2":"F B 8B 9B AC BC gB qB"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB"},H:{"1":"XC"},I:{"1":"T cC dC","16":"iB H YC ZC aC bC rB"},J:{"16":"D A"},K:{"1":"C U hB","2":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"SVG vector-effect: non-scaling-stroke"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","2":"F B CC DC EC FC iB vB"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB"},H:{"1":"bC"},I:{"1":"H gC hC","16":"lB I cC dC eC fC wB"},J:{"16":"D A"},K:{"1":"C Y jB","2":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"SVG vector-effect: non-scaling-stroke"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vibration.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vibration.js index d50ba4b18994e9..632b2cad6b7be1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vibration.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/vibration.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A uB vB","33":"B C J K G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k l m n o p q r s t u"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"Vibration API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A zB 0B","33":"B C K L G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n o p q r s t u v w x"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"Vibration API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/video.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/video.js index a84b73afc5b283..06f6b4f1e08430 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/video.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/video.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","260":"H j I D E F A B C J K G L M N k uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A 0B 1B 2B 3B nB","2":"zB mB","513":"B C J K G gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC","513":"MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","132":"YC ZC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Video element"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","260":"I m J D E F A B C K L G M N O n zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A 4B 5B 6B 7B rB","2":"3B qB","513":"B C K L G iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC","513":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","132":"cC dC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Video element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/videotracks.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/videotracks.js index 6a0b0e3b2d5ca1..8df038eb1cbfc7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/videotracks.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/videotracks.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N","322":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x uB vB","194":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","322":"AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I zB mB 0B"},F:{"2":"F B C G L M N k l m n o p q r s t u v w 8B 9B AC BC gB qB CC hB","322":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"322":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"194":"sC"}},B:1,C:"Video Tracks"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O","322":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","194":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB","322":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J 3B qB 4B"},F:{"2":"F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","322":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"322":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"194":"wC"}},B:1,C:"Video Tracks"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-unit-variants.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-unit-variants.js index 2ba3009f406535..fb1d16d975bfe1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-unit-variants.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T","194":"fB wB xB yB"},E:{"1":"pB 7B","2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"Large, Small, and Dynamic viewport units"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k","194":"l H X pB 1B 2B"},E:{"1":"tB uB kB BC","2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"Large, Small, and Dynamic viewport units"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-units.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-units.js index 90a650a05544a7..67961d9a44ac66 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-units.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/viewport-units.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","132":"F","260":"A B"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","260":"C J K G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M N k","260":"l m n o p q"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B","260":"I"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC","516":"GC","772":"FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"260":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"Viewport units: vw, vh, vmin, vmax"}; +module.exports={A:{A:{"2":"J D E xB","132":"F","260":"A B"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","260":"C K L G"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N O n","260":"o p q r s t"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B","260":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC","516":"KC","772":"JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"260":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"Viewport units: vw, vh, vmin, vmax"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wai-aria.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wai-aria.js index c2eb12d40ce7bd..e337ccc4310af2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wai-aria.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wai-aria.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D sB","4":"E F A B"},B:{"4":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"4":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"zB mB","4":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F","4":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"4":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"4":"XC"},I:{"2":"iB H YC ZC aC bC rB","4":"T cC dC"},J:{"2":"D A"},K:{"4":"A B C U gB qB hB"},L:{"4":"fB"},M:{"4":"S"},N:{"4":"A B"},O:{"2":"eC"},P:{"4":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"4":"qC"},R:{"4":"rC"},S:{"4":"sC"}},B:2,C:"WAI-ARIA Accessibility features"}; +module.exports={A:{A:{"2":"J D xB","4":"E F A B"},B:{"4":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"4":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"3B qB","4":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F","4":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"4":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"4":"bC"},I:{"2":"lB I cC dC eC fC wB","4":"H gC hC"},J:{"2":"D A"},K:{"4":"A B C Y iB vB jB"},L:{"4":"X"},M:{"4":"H"},N:{"4":"A B"},O:{"2":"iC"},P:{"4":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"4":"uC"},R:{"4":"vC"},S:{"4":"wC"}},B:2,C:"WAI-ARIA Accessibility features"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wake-lock.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wake-lock.js index 1fd23ae573ba22..bf7775fc5cedd4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wake-lock.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wake-lock.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"b c d e f g h i S T","2":"C J K G L M N","194":"O P Q R V W X Y Z a"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB","194":"XB YB ZB aB bB cB dB eB O P Q R V"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB 8B 9B AC BC gB qB CC hB","194":"NB OB PB QB U RB SB TB UB VB WB XB YB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"nC oC pC","2":"H fC gC hC iC jC nB kC lC mC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:4,C:"Screen Wake Lock API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"b c d e f g h i j k l H X","2":"C K L G M N O","194":"P Q R S T U V W Z a"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB","194":"aB bB cB dB eB fB gB hB P Q R S T"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB CC DC EC FC iB vB GC jB","194":"QB RB SB TB Y UB VB WB XB YB ZB aB bB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"rC sC kB tC","2":"I jC kC lC mC nC rB oC pC qC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"Screen Wake Lock API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wasm.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wasm.js index 6e45cc53c1f782..afa68e1d3ca1f3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wasm.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wasm.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K","578":"G"},C:{"1":"IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB uB vB","194":"CB DB EB FB GB","1025":"HB"},D:{"1":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB","322":"GB HB IB JB KB LB"},E:{"1":"B C J K G gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","322":"3 4 5 6 7 8"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H fC gC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"194":"sC"}},B:6,C:"WebAssembly"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L","578":"G"},C:{"1":"LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB zB 0B","194":"FB GB HB IB JB","1025":"KB"},D:{"1":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","322":"JB KB LB MB NB OB"},E:{"1":"B C K L G iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","322":"6 7 8 9 AB BB"},G:{"1":"QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I jC kC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"194":"wC"}},B:6,C:"WebAssembly"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wav.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wav.js index d68e63c30cb7ac..9d3128ef724f15 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wav.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wav.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R AC BC gB qB CC hB","2":"F 8B 9B"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","16":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"Wav audio format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W EC FC iB vB GC jB","2":"F CC DC"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","16":"A"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"Wav audio format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wbr-element.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wbr-element.js index 9461bf4f3f5e96..adf10813588989 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wbr-element.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wbr-element.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D sB","2":"E F A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"zB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","16":"F"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB"},H:{"1":"XC"},I:{"1":"iB H T aC bC rB cC dC","16":"YC ZC"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"wbr (word break opportunity) element"}; +module.exports={A:{A:{"1":"J D xB","2":"E F A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"3B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","16":"F"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB"},H:{"1":"bC"},I:{"1":"lB I H eC fC wB gC hC","16":"cC dC"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"wbr (word break opportunity) element"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-animation.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-animation.js index d912f9fe6b4e1d..617916e0268a85 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-animation.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-animation.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"V W X Y Z a b c d e f g h i S T","2":"C J K G L M N","260":"O P Q R"},C:{"1":"Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x uB vB","260":"jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB","516":"CB DB EB FB GB HB IB JB KB LB MB NB","580":"0 1 2 3 4 5 6 7 8 9 y z AB BB","2049":"bB cB dB eB O P"},D:{"1":"V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","132":"1 2 3","260":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R"},E:{"1":"G 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B nB","1090":"B C J gB hB","2049":"K 4B 5B"},F:{"1":"XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n 8B 9B AC BC gB qB CC hB","132":"o p q","260":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC","1090":"MC NC OC PC QC RC SC","2049":"TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"260":"eC"},P:{"260":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"260":"qC"},R:{"260":"rC"},S:{"516":"sC"}},B:5,C:"Web Animations API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O","260":"P Q R S"},C:{"1":"R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B","260":"mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB","516":"FB GB HB IB JB KB LB MB NB OB PB QB","580":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB","2049":"eB fB gB hB P Q"},D:{"1":"T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z","132":"4 5 6","260":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S"},E:{"1":"G AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B rB","1090":"B C K iB jB","2049":"L 8B 9B"},F:{"1":"aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q CC DC EC FC iB vB GC jB","132":"r s t","260":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC","1090":"QC RC SC TC UC VC WC","2049":"XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"260":"iC"},P:{"260":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"260":"uC"},R:{"260":"vC"},S:{"516":"wC"}},B:5,C:"Web Animations API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-app-manifest.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-app-manifest.js index 5dc13806387885..ec12cfdf03a69e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-app-manifest.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-app-manifest.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L","130":"M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB X Y Z a b c d e f g h i S T fB uB vB","578":"cB dB eB O P Q lB R V W"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC","260":"NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"2":"sC"}},B:5,C:"Add to home screen (A2HS)"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M","130":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB V W Z a b c d e f g h i j k l H X pB zB 0B","578":"fB gB hB P Q R oB S T U"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC","260":"RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"2":"wC"}},B:5,C:"Add to home screen (A2HS)"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-bluetooth.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-bluetooth.js index fd3fb4b8c340d7..5450c0bfd67775 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-bluetooth.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-bluetooth.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","1025":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","194":"AB BB CB DB EB FB GB HB","706":"IB JB KB","1025":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","450":"1 2 3 4","706":"5 6 7","1025":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC dC","1025":"T"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","1025":"U"},L:{"1025":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"gC hC iC jC nB kC lC mC nC oC pC","2":"H fC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Web Bluetooth"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","1025":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB","194":"DB EB FB GB HB IB JB KB","706":"LB MB NB","1025":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","450":"4 5 6 7","706":"8 9 AB","1025":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC hC","1025":"H"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","1025":"Y"},L:{"1025":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"kC lC mC nC rB oC pC qC rC sC kB tC","2":"I jC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Web Bluetooth"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-serial.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-serial.js index b75321c7412ce9..6724d799dd5cd1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-serial.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-serial.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"a b c d e f g h i S T","2":"C J K G L M N","66":"O P Q R V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB","66":"eB O P Q R V W X Y Z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U 8B 9B AC BC gB qB CC hB","66":"RB SB TB UB VB WB XB YB ZB aB bB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Web Serial API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"a b c d e f g h i j k l H X","2":"C K L G M N O","66":"P Q R S T U V W Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB","66":"hB P Q R S T U V W Z"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y CC DC EC FC iB vB GC jB","66":"UB VB WB XB YB ZB aB bB cB dB eB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Web Serial API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-share.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-share.js index 86a51593fdae0a..a11c966b1bf314 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-share.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/web-share.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O P","516":"Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z","130":"N k l m n o p","1028":"a b c d e f g h i S T fB wB xB yB"},E:{"1":"K G 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB","2049":"J hB 4B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC","2049":"PC QC RC SC TC"},H:{"2":"XC"},I:{"2":"iB H YC ZC aC bC rB cC","258":"T dC"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","258":"U"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H","258":"fC gC hC"},Q:{"2":"qC"},R:{"16":"rC"},S:{"2":"sC"}},B:5,C:"Web Share API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P Q","516":"R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z","130":"O n o p q r s","1028":"a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"L G 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB","2049":"K jB 8B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC","2049":"TC UC VC WC XC"},H:{"2":"bC"},I:{"2":"lB I cC dC eC fC wB gC","258":"H hC"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","258":"Y"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I","258":"jC kC lC"},Q:{"2":"uC"},R:{"16":"vC"},S:{"2":"wC"}},B:5,C:"Web Share API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webauthn.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webauthn.js index a034e81895fc07..762145e05abbcc 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webauthn.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webauthn.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"N O P Q R V W X Y Z a b c d e f g h i S T","2":"C","226":"J K G L M"},C:{"1":"OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB uB vB"},D:{"1":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB"},E:{"1":"J K G 4B 5B 6B oB pB 7B","2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB","322":"hB"},F:{"1":"JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB 8B 9B AC BC gB qB CC hB"},G:{"1":"VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC","578":"RC","2052":"UC","3076":"SC TC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:2,C:"Web Authentication API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C","226":"K L G M N"},C:{"1":"RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB zB 0B"},D:{"1":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB"},E:{"1":"K L G 8B 9B AC sB tB uB kB BC","2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB","322":"jB"},F:{"1":"MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB CC DC EC FC iB vB GC jB"},G:{"1":"ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC","578":"VC","2052":"YC","3076":"WC XC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"tC","2":"I jC kC lC mC nC rB oC pC qC rC sC kB"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:2,C:"Web Authentication API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl.js index 0fdbeff6586191..da8d7ef6be393d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"sB","8":"I D E F A","129":"B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","129":"C J K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","129":"H j I D E F A B C J K G L M N k l m n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D","129":"E F A B C J K G L M N k l m n o p q r s t u v w x"},E:{"1":"E F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB","129":"I D 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B 8B 9B AC BC gB qB CC","129":"C G L M N hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC GC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"1":"A","2":"D"},K:{"1":"C U hB","2":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"8":"A","129":"B"},O:{"129":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"129":"sC"}},B:6,C:"WebGL - 3D Canvas graphics"}; +module.exports={A:{A:{"2":"xB","8":"J D E F A","129":"B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","129":"C K L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","129":"I m J D E F A B C K L G M N O n o p q r"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D","129":"0 E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"E F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB","129":"J D 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B CC DC EC FC iB vB GC","129":"C G M N O jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC KC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"1":"A","2":"D"},K:{"1":"C Y jB","2":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"8":"A","129":"B"},O:{"129":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"129":"wC"}},B:6,C:"WebGL - 3D Canvas graphics"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl2.js index 28645eb6891645..f2dc4aaa96d2b2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgl2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p uB vB","194":"7 8 9","450":"0 1 2 3 4 5 6 q r s t u v w x y z","2242":"AB BB CB DB EB FB"},D:{"1":"LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z","578":"8 9 AB BB CB DB EB FB GB HB IB JB KB"},E:{"1":"G 6B oB pB 7B","2":"H j I D E F A zB mB 0B 1B 2B 3B","1090":"B C J K nB gB hB 4B 5B"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB"},G:{"1":"WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC","1090":"OC PC QC RC SC TC UC VC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"hC iC jC nB kC lC mC nC oC pC","2":"H fC gC"},Q:{"578":"qC"},R:{"2":"rC"},S:{"2242":"sC"}},B:6,C:"WebGL 2.0"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s zB 0B","194":"AB BB CB","450":"0 1 2 3 4 5 6 7 8 9 t u v w x y z","2242":"DB EB FB GB HB IB"},D:{"1":"OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB","578":"BB CB DB EB FB GB HB IB JB KB LB MB NB"},E:{"1":"G AC sB tB uB kB BC","2":"I m J D E F A 3B qB 4B 5B 6B 7B","1090":"B C K L rB iB jB 8B 9B"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB CC DC EC FC iB vB GC jB"},G:{"1":"aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC","1090":"SC TC UC VC WC XC YC ZC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"lC mC nC rB oC pC qC rC sC kB tC","2":"I jC kC"},Q:{"578":"uC"},R:{"2":"vC"},S:{"2242":"wC"}},B:6,C:"WebGL 2.0"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgpu.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgpu.js index 8c02e0a780551e..502b866b095e9d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgpu.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webgpu.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O","578":"P Q R V W X Y Z a b c d e","1602":"f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB uB vB","194":"QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O","578":"P Q R V W X Y Z a b c d e","1602":"f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B zB mB 0B 1B 2B 3B nB","322":"C J K G gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB 8B 9B AC BC gB qB CC hB","578":"ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"194":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"WebGPU"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P","578":"Q R S T U V W Z a b c d e","1602":"f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB zB 0B","194":"TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P","578":"Q R S T U V W Z a b c d e","1602":"f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B 3B qB 4B 5B 6B 7B rB","322":"C K L G iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB CC DC EC FC iB vB GC jB","578":"cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"194":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:5,C:"WebGPU"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webhid.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webhid.js index c92f81a84023ef..7ed7906c9d7058 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webhid.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webhid.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"a b c d e f g h i S T","2":"C J K G L M N","66":"O P Q R V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB","66":"eB O P Q R V W X Y Z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"cB dB eB O P Q lB R","2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB 8B 9B AC BC gB qB CC hB","66":"SB TB UB VB WB XB YB ZB aB bB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"WebHID API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"a b c d e f g h i j k l H X","2":"C K L G M N O","66":"P Q R S T U V W Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB","66":"hB P Q R S T U V W Z"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB CC DC EC FC iB vB GC jB","66":"VB WB XB YB ZB aB bB cB dB eB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"WebHID API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webkit-user-drag.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webkit-user-drag.js index 1b425366f5804d..3286e87568cfb6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webkit-user-drag.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webkit-user-drag.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","132":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"16":"H j I D E F A B C J K G","132":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"F B C 8B 9B AC BC gB qB CC hB","132":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"CSS -webkit-user-drag property"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","132":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"16":"I m J D E F A B C K L G","132":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"F B C CC DC EC FC iB vB GC jB","132":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"CSS -webkit-user-drag property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webm.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webm.js index 66f8801c51d4cb..f0dc4d13cbb636 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webm.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webm.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E sB","520":"F A B"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","8":"C J","388":"K G L M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","132":"H j I D E F A B C J K G L M N k l m n o p q r s"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j","132":"I D E F A B C J K G L M N k l m n o p"},E:{"2":"zB","8":"H j mB 0B","520":"I D E F A B C 1B 2B 3B nB gB","1028":"J hB 4B","7172":"K","8196":"G 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F 8B 9B AC","132":"B C G BC gB qB CC hB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC","1028":"PC QC RC SC TC","3076":"UC VC WC oB pB"},H:{"2":"XC"},I:{"1":"T","2":"YC ZC","132":"iB H aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"8":"A B"},O:{"1":"eC"},P:{"1":"fC gC hC iC jC nB kC lC mC nC oC pC","132":"H"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:6,C:"WebM video format"}; +module.exports={A:{A:{"2":"J D E xB","520":"F A B"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","8":"C K","388":"L G M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","132":"I m J D E F A B C K L G M N O n o p q r s t u v"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m","132":"J D E F A B C K L G M N O n o p q r s"},E:{"1":"kB BC","2":"3B","8":"I m qB 4B","520":"J D E F A B C 5B 6B 7B rB iB","1028":"K jB 8B","7172":"L","8196":"G 9B AC sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F CC DC EC","132":"B C G FC iB vB GC jB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC","1028":"TC UC VC WC XC","3076":"YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"1":"H","2":"cC dC","132":"lB I eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"8":"A B"},O:{"1":"iC"},P:{"1":"jC kC lC mC nC rB oC pC qC rC sC kB tC","132":"I"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:6,C:"WebM video format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webnfc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webnfc.js index f8a4a165efcfb0..307fe8c9e33a7a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webnfc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webnfc.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N O a b c d e f g h i S T","450":"P Q R V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O a b c d e f g h i S T fB wB xB yB","450":"P Q R V W X Y Z"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB 8B 9B AC BC gB qB CC hB","450":"TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"257":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"Web NFC"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O P a b c d e f g h i j k l H X","450":"Q R S T U V W Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P a b c d e f g h i j k l H X pB 1B 2B","450":"Q R S T U V W Z"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB CC DC EC FC iB vB GC jB","450":"WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"257":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"Web NFC"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webp.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webp.js index 592b88c3741f9c..ab0678f5abe36e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webp.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webp.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M"},C:{"1":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","8":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j","8":"I D E","132":"F A B C J K G L M N k l m n","260":"o p q r s t u v w"},E:{"2":"H j I D E F A B C J zB mB 0B 1B 2B 3B nB gB hB 4B","516":"K G 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F 8B 9B AC","8":"B BC","132":"gB qB CC","260":"C G L M N hB"},G:{"1":"UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC"},H:{"1":"XC"},I:{"1":"T rB cC dC","2":"iB YC ZC aC","132":"H bC"},J:{"2":"D A"},K:{"1":"C U gB qB hB","2":"A","132":"B"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"8":"sC"}},B:7,C:"WebP image format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N"},C:{"1":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","8":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m","8":"J D E","132":"F A B C K L G M N O n o p q","260":"r s t u v w x y z"},E:{"1":"kB BC","2":"I m J D E F A B C K 3B qB 4B 5B 6B 7B rB iB jB 8B","516":"L G 9B AC sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F CC DC EC","8":"B FC","132":"iB vB GC","260":"C G M N O jB"},G:{"1":"YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC"},H:{"1":"bC"},I:{"1":"H wB gC hC","2":"lB cC dC eC","132":"I fC"},J:{"2":"D A"},K:{"1":"C Y iB vB jB","2":"A","132":"B"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"8":"wC"}},B:6,C:"WebP image format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/websockets.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/websockets.js index 335f1278971ba3..07a17a0dacd69c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/websockets.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/websockets.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB uB vB","132":"H j","292":"I D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j I D E F A B C J K","260":"G"},E:{"1":"D E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","132":"j 0B","260":"I 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F 8B 9B AC BC","132":"B C gB qB CC"},G:{"1":"E FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC","132":"rB EC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","129":"D"},K:{"1":"U hB","2":"A","132":"B C gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Web Sockets"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB zB 0B","132":"I m","292":"J D E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m J D E F A B C K L","260":"G"},E:{"1":"D E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","132":"m 4B","260":"J 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F CC DC EC FC","132":"B C iB vB GC"},G:{"1":"E JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC","132":"wB IC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","129":"D"},K:{"1":"Y jB","2":"A","132":"B C iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Web Sockets"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webusb.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webusb.js index ce5f5dfc1b4950..a9fd696297141e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webusb.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webusb.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","66":"JB KB LB MB NB jB OB"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"0 1 2 3 4 5 F B C G L M N k l m n o p q r s t u v w x y z 8B 9B AC BC gB qB CC hB","66":"6 7 8 9 AB BB CB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"1":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"1":"iC jC nB kC lC mC nC oC pC","2":"H fC gC hC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:7,C:"WebUSB"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","66":"MB NB OB PB QB mB RB"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"0 1 2 3 4 5 6 7 8 F B C G M N O n o p q r s t u v w x y z CC DC EC FC iB vB GC jB","66":"9 AB BB CB DB EB FB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"1":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"1":"mC nC rB oC pC qC rC sC kB tC","2":"I jC kC lC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:7,C:"WebUSB"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvr.js index 8e41cf19f62ef2..d45ef3f0735fab 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K P Q R V W X Y Z a b c d e f g h i S T","66":"O","257":"G L M N"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB uB vB","129":"KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","194":"JB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","66":"MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O"},E:{"2":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 F B C G L M N k l m n o p q r s t u v w x y z TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","66":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C U gB qB hB"},L:{"2":"fB"},M:{"2":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"513":"H","516":"fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"2":"qC"},R:{"66":"rC"},S:{"2":"sC"}},B:7,C:"WebVR API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L Q R S T U V W Z a b c d e f g h i j k l H X","66":"P","257":"G M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB zB 0B","129":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","194":"MB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","66":"PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P"},E:{"2":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","66":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C Y iB vB jB"},L:{"2":"X"},M:{"2":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"513":"I","516":"jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"66":"vC"},S:{"2":"wC"}},B:7,C:"WebVR API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvtt.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvtt.js index b714b553ae0cf4..06f92aa0394da1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvtt.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webvtt.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"tB iB H j I D E F A B C J K G L M N k l m n o uB vB","66":"p q r s t u v","129":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H j I D E F A B C J K G L M"},E:{"1":"I D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB EC FC"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB H YC ZC aC bC rB"},J:{"1":"A","2":"D"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"B","2":"A"},O:{"2":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"129":"sC"}},B:5,C:"WebVTT - Web Video Text Tracks"}; +module.exports={A:{A:{"1":"A B","2":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"yB lB I m J D E F A B C K L G M N O n o p q r zB 0B","66":"s t u v w x y","129":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB","257":"NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I m J D E F A B C K L G M N"},E:{"1":"J D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB IC JC"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB I cC dC eC fC wB"},J:{"1":"A","2":"D"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"B","2":"A"},O:{"2":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"129":"wC"}},B:5,C:"WebVTT - Web Video Text Tracks"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webworkers.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webworkers.js index 6ee2ddb7486913..b7d62b7bc35f98 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webworkers.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webworkers.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","2":"sB","8":"I D E F"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","8":"tB iB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","8":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R BC gB qB CC hB","2":"F 8B","8":"9B AC"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"1":"T YC cC dC","2":"iB H ZC aC bC rB"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","8":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Web Workers"}; +module.exports={A:{A:{"1":"A B","2":"xB","8":"J D E F"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","8":"yB lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","8":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W FC iB vB GC jB","2":"F CC","8":"DC EC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"1":"H cC gC hC","2":"lB I dC eC fC wB"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","8":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Web Workers"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webxr.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webxr.js index eb67cacb341d87..a8f05632bffd77 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webxr.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/webxr.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"2":"C J K G L M N","132":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB uB vB","322":"dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U","66":"RB SB TB UB VB WB XB YB ZB aB bB cB dB eB","132":"O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"2":"H j I D E F A B C zB mB 0B 1B 2B 3B nB gB hB","578":"J K G 4B 5B 6B oB pB 7B"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB 8B 9B AC BC gB qB CC hB","66":"HB IB JB KB LB MB NB OB PB QB U RB","132":"SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R"},G:{"2":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"2":"XC"},I:{"2":"iB H T YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"2":"A B C gB qB hB","132":"U"},L:{"132":"fB"},M:{"322":"S"},N:{"2":"A B"},O:{"2":"eC"},P:{"2":"H fC gC hC iC jC nB kC","132":"lC mC nC oC pC"},Q:{"2":"qC"},R:{"2":"rC"},S:{"2":"sC"}},B:5,C:"WebXR Device API"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"2":"C K L G M N O","132":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB zB 0B","322":"gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y","66":"UB VB WB XB YB ZB aB bB cB dB eB fB gB hB","132":"P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"2":"I m J D E F A B C 3B qB 4B 5B 6B 7B rB iB jB","578":"K L G 8B 9B AC sB tB uB kB BC"},F:{"2":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB CC DC EC FC iB vB GC jB","66":"KB LB MB NB OB PB QB RB SB TB Y UB","132":"VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W"},G:{"2":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"2":"bC"},I:{"2":"lB I H cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"2":"A B C iB vB jB","132":"Y"},L:{"132":"X"},M:{"322":"H"},N:{"2":"A B"},O:{"2":"iC"},P:{"2":"I jC kC lC mC nC rB oC","132":"pC qC rC sC kB tC"},Q:{"2":"uC"},R:{"2":"vC"},S:{"2":"wC"}},B:4,C:"WebXR Device API"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/will-change.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/will-change.js index c238582c0cf020..47b64461ee38f4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/will-change.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/will-change.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"O P Q R V W X Y Z a b c d e f g h i S T","2":"C J K G L M N"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K G L M N k l m n o p q r s t uB vB","194":"0 u v w x y z"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n o 8B 9B AC BC gB qB CC hB"},G:{"1":"JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"CSS will-change property"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K L G M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L G M N O n o p q r s t u v w zB 0B","194":"0 1 2 3 x y z"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q r CC DC EC FC iB vB GC jB"},G:{"1":"NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"CSS will-change property"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff.js index 45ec723ab5919e..3c8198646c1427 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB vB","2":"tB iB uB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"H"},E:{"1":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H j zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R gB qB CC hB","2":"F B 8B 9B AC BC"},G:{"1":"E EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB"},H:{"2":"XC"},I:{"1":"T cC dC","2":"iB YC ZC aC bC rB","130":"H"},J:{"1":"D A"},K:{"1":"B C U gB qB hB","2":"A"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:2,C:"WOFF - Web Open Font Format"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB 0B","2":"yB lB zB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"I"},E:{"1":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I m 3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W iB vB GC jB","2":"F B CC DC EC FC"},G:{"1":"E IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB"},H:{"2":"bC"},I:{"1":"H gC hC","2":"lB cC dC eC fC wB","130":"I"},J:{"1":"D A"},K:{"1":"B C Y iB vB jB","2":"A"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:2,C:"WOFF - Web Open Font Format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff2.js index 8280ce2ef8f968..510d65dd6a2f6f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/woff2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F A B sB"},B:{"1":"K G L M N O P Q R V W X Y Z a b c d e f g h i S T","2":"C J"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"0 1 2 3 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z uB vB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","2":"0 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"C J K G hB 4B 5B 6B oB pB 7B","2":"H j I D E F zB mB 0B 1B 2B 3B","132":"A B nB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C G L M N k l m n 8B 9B AC BC gB qB CC hB"},G:{"1":"KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"E mB DC rB EC FC GC HC IC JC"},H:{"2":"XC"},I:{"1":"T","2":"iB H YC ZC aC bC rB cC dC"},J:{"2":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"2":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"WOFF 2.0 - Web Open Font Format"}; +module.exports={A:{A:{"2":"J D E F A B xB"},B:{"1":"L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X","2":"C K"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"0 1 2 3 4 5 6 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z zB 0B"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","2":"0 1 2 3 I m J D E F A B C K L G M N O n o p q r s t u v w x y z"},E:{"1":"C K L G jB 8B 9B AC sB tB uB kB BC","2":"I m J D E F 3B qB 4B 5B 6B 7B","132":"A B rB iB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C G M N O n o p q CC DC EC FC iB vB GC jB"},G:{"1":"OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"E qB HC wB IC JC KC LC MC NC"},H:{"2":"bC"},I:{"1":"H","2":"lB I cC dC eC fC wB gC hC"},J:{"2":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"2":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"WOFF 2.0 - Web Open Font Format"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/word-break.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/word-break.js index afc3c8bab10f5a..da29bbdb96d3b3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/word-break.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/word-break.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"I D E F A B sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB H j I D E F A B C J K uB vB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","4":"0 1 2 3 4 5 6 7 8 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z"},E:{"1":"F A B C J K G 3B nB gB hB 4B 5B 6B oB pB 7B","4":"H j I D E zB mB 0B 1B 2B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","2":"F B C 8B 9B AC BC gB qB CC hB","4":"G L M N k l m n o p q r s t u v"},G:{"1":"IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","4":"E mB DC rB EC FC GC HC"},H:{"2":"XC"},I:{"1":"T","4":"iB H YC ZC aC bC rB cC dC"},J:{"4":"D A"},K:{"1":"U","2":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"4":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"4":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:5,C:"CSS3 word-break"}; +module.exports={A:{A:{"1":"J D E F A B xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB I m J D E F A B C K L zB 0B"},D:{"1":"CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","4":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB"},E:{"1":"F A B C K L G 7B rB iB jB 8B 9B AC sB tB uB kB BC","4":"I m J D E 3B qB 4B 5B 6B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","2":"F B C CC DC EC FC iB vB GC jB","4":"G M N O n o p q r s t u v w x y"},G:{"1":"MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","4":"E qB HC wB IC JC KC LC"},H:{"2":"bC"},I:{"1":"H","4":"lB I cC dC eC fC wB gC hC"},J:{"4":"D A"},K:{"1":"Y","2":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"4":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"4":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:5,C:"CSS3 word-break"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wordwrap.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wordwrap.js index a3c268ac484822..8b1f62e398b418 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wordwrap.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/wordwrap.js @@ -1 +1 @@ -module.exports={A:{A:{"4":"I D E F A B sB"},B:{"1":"N O P Q R V W X Y Z a b c d e f g h i S T","4":"C J K G L M"},C:{"1":"EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","4":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","4":"H j I D E F A B C J K G L M N k l m n"},E:{"1":"D E F A B C J K G 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","4":"H j I zB mB 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F 8B 9B","4":"B C AC BC gB qB CC"},G:{"1":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","4":"mB DC rB EC FC"},H:{"4":"XC"},I:{"1":"T cC dC","4":"iB H YC ZC aC bC rB"},J:{"1":"A","4":"D"},K:{"1":"U","4":"A B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"4":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"4":"sC"}},B:5,C:"CSS3 Overflow-wrap"}; +module.exports={A:{A:{"4":"J D E F A B xB"},B:{"1":"O P Q R S T U V W Z a b c d e f g h i j k l H X","4":"C K L G M N"},C:{"1":"HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","4":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","4":"I m J D E F A B C K L G M N O n o p q"},E:{"1":"D E F A B C K L G 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","4":"I m J 3B qB 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F CC DC","4":"B C EC FC iB vB GC"},G:{"1":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","4":"qB HC wB IC JC"},H:{"4":"bC"},I:{"1":"H gC hC","4":"lB I cC dC eC fC wB"},J:{"1":"A","4":"D"},K:{"1":"Y","4":"A B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"4":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"4":"wC"}},B:5,C:"CSS3 Overflow-wrap"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-doc-messaging.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-doc-messaging.js index 90e971530eef51..e71ccf191ac9f3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-doc-messaging.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-doc-messaging.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D sB","132":"E F","260":"A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB","2":"tB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"zB mB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB","2":"F"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"4":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"Cross-document messaging"}; +module.exports={A:{A:{"2":"J D xB","132":"E F","260":"A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B","2":"yB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"3B qB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB","2":"F"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"4":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"Cross-document messaging"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-frame-options.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-frame-options.js index 90203aea223e2e..8d26cf7a532d47 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-frame-options.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/x-frame-options.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"E F A B","2":"I D sB"},B:{"1":"C J K G L M N","4":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB","4":"H j I D E F A B C J K G L M WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","16":"tB iB uB vB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I D E F A B C J K G L M N k l m n o p q"},E:{"4":"I D E F A B C J K G 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B","16":"H j zB mB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R CC hB","16":"F B 8B 9B AC BC gB qB"},G:{"4":"E GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","16":"mB DC rB EC FC"},H:{"2":"XC"},I:{"4":"H T bC rB cC dC","16":"iB YC ZC aC"},J:{"4":"D A"},K:{"4":"U hB","16":"A B C gB qB"},L:{"4":"fB"},M:{"4":"S"},N:{"1":"A B"},O:{"4":"eC"},P:{"4":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"4":"qC"},R:{"4":"rC"},S:{"1":"sC"}},B:6,C:"X-Frame-Options HTTP header"}; +module.exports={A:{A:{"1":"E F A B","2":"J D xB"},B:{"1":"C K L G M N O","4":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB","4":"I m J D E F A B C K L G M N ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","16":"yB lB zB 0B"},D:{"4":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J D E F A B C K L G M N O n o p q r s t"},E:{"4":"J D E F A B C K L G 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","16":"I m 3B qB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W GC jB","16":"F B CC DC EC FC iB vB"},G:{"4":"E KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","16":"qB HC wB IC JC"},H:{"2":"bC"},I:{"4":"I H fC wB gC hC","16":"lB cC dC eC"},J:{"4":"D A"},K:{"4":"Y jB","16":"A B C iB vB"},L:{"4":"X"},M:{"4":"H"},N:{"1":"A B"},O:{"4":"iC"},P:{"4":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"4":"uC"},R:{"4":"vC"},S:{"1":"wC"}},B:6,C:"X-Frame-Options HTTP header"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhr2.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhr2.js index 9a85536784ee3d..c74a3cf09b15d3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhr2.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhr2.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"I D E F sB","132":"A B"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","2":"tB iB","260":"A B","388":"I D E F","900":"H j uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","16":"H j I","132":"u v","388":"D E F A B C J K G L M N k l m n o p q r s t"},E:{"1":"E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","2":"H zB mB","132":"D 1B","388":"j I 0B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R hB","2":"F B 8B 9B AC BC gB qB CC","132":"G L M"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","2":"mB DC rB","132":"GC","388":"EC FC"},H:{"2":"XC"},I:{"1":"T dC","2":"YC ZC aC","388":"cC","900":"iB H bC rB"},J:{"132":"A","388":"D"},K:{"1":"C U hB","2":"A B gB qB"},L:{"1":"fB"},M:{"1":"S"},N:{"132":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:1,C:"XMLHttpRequest advanced features"}; +module.exports={A:{A:{"2":"J D E F xB","132":"A B"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","2":"yB lB","260":"A B","388":"J D E F","900":"I m zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","16":"I m J","132":"x y","388":"D E F A B C K L G M N O n o p q r s t u v w"},E:{"1":"E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","2":"I 3B qB","132":"D 5B","388":"m J 4B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W jB","2":"F B CC DC EC FC iB vB GC","132":"G M N"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","2":"qB HC wB","132":"KC","388":"IC JC"},H:{"2":"bC"},I:{"1":"H hC","2":"cC dC eC","388":"gC","900":"lB I fC wB"},J:{"132":"A","388":"D"},K:{"1":"C Y jB","2":"A B iB vB"},L:{"1":"X"},M:{"1":"H"},N:{"132":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:1,C:"XMLHttpRequest advanced features"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtml.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtml.js index 85483262a4deb7..a19e09b25311a6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtml.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtml.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"F A B","2":"I D E sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"1":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"1":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"1":"XC"},I:{"1":"iB H T YC ZC aC bC rB cC dC"},J:{"1":"D A"},K:{"1":"A B C U gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"2":"rC"},S:{"1":"sC"}},B:1,C:"XHTML served as application/xhtml+xml"}; +module.exports={A:{A:{"1":"F A B","2":"J D E xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"1":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"1":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"1":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"1":"bC"},I:{"1":"lB I H cC dC eC fC wB gC hC"},J:{"1":"D A"},K:{"1":"A B C Y iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"2":"vC"},S:{"1":"wC"}},B:1,C:"XHTML served as application/xhtml+xml"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtmlsmil.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtmlsmil.js index 863ee93c3f7db4..0c56473c10c649 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtmlsmil.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xhtmlsmil.js @@ -1 +1 @@ -module.exports={A:{A:{"2":"F A B sB","4":"I D E"},B:{"2":"C J K G L M N","8":"O P Q R V W X Y Z a b c d e f g h i S T"},C:{"8":"0 1 2 3 4 5 6 7 8 9 tB iB H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB uB vB"},D:{"8":"0 1 2 3 4 5 6 7 8 9 H j I D E F A B C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB"},E:{"8":"H j I D E F A B C J K G zB mB 0B 1B 2B 3B nB gB hB 4B 5B 6B oB pB 7B"},F:{"8":"0 1 2 3 4 5 6 7 8 9 F B C G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R 8B 9B AC BC gB qB CC hB"},G:{"8":"E mB DC rB EC FC GC HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB"},H:{"8":"XC"},I:{"8":"iB H T YC ZC aC bC rB cC dC"},J:{"8":"D A"},K:{"8":"A B C U gB qB hB"},L:{"8":"fB"},M:{"8":"S"},N:{"2":"A B"},O:{"8":"eC"},P:{"8":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"8":"qC"},R:{"8":"rC"},S:{"8":"sC"}},B:7,C:"XHTML+SMIL animation"}; +module.exports={A:{A:{"2":"F A B xB","4":"J D E"},B:{"2":"C K L G M N O","8":"P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"8":"0 1 2 3 4 5 6 7 8 9 yB lB I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB zB 0B"},D:{"8":"0 1 2 3 4 5 6 7 8 9 I m J D E F A B C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B"},E:{"8":"I m J D E F A B C K L G 3B qB 4B 5B 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC"},F:{"8":"0 1 2 3 4 5 6 7 8 9 F B C G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W CC DC EC FC iB vB GC jB"},G:{"8":"E qB HC wB IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB"},H:{"8":"bC"},I:{"8":"lB I H cC dC eC fC wB gC hC"},J:{"8":"D A"},K:{"8":"A B C Y iB vB jB"},L:{"8":"X"},M:{"8":"H"},N:{"2":"A B"},O:{"8":"iC"},P:{"8":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"8":"uC"},R:{"8":"vC"},S:{"8":"wC"}},B:7,C:"XHTML+SMIL animation"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xml-serializer.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xml-serializer.js index 77b16aa7c8153e..590ec049b4013f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xml-serializer.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/features/xml-serializer.js @@ -1 +1 @@ -module.exports={A:{A:{"1":"A B","260":"I D E F sB"},B:{"1":"C J K G L M N O P Q R V W X Y Z a b c d e f g h i S T"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C J K G L M N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R V W X Y Z a b c d e f g h i S T fB","132":"B","260":"tB iB H j I D uB vB","516":"E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB jB OB kB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q R V W X Y Z a b c d e f g h i S T fB wB xB yB","132":"H j I D E F A B C J K G L M N k l m n o p q r s t u v"},E:{"1":"E F A B C J K G 2B 3B nB gB hB 4B 5B 6B oB pB 7B","132":"H j I D zB mB 0B 1B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB U RB SB TB UB VB WB XB YB ZB aB bB cB dB eB O P Q lB R","16":"F 8B","132":"B C G L M 9B AC BC gB qB CC hB"},G:{"1":"E HC IC JC KC LC MC NC OC PC QC RC SC TC UC VC WC oB pB","132":"mB DC rB EC FC GC"},H:{"132":"XC"},I:{"1":"T cC dC","132":"iB H YC ZC aC bC rB"},J:{"132":"D A"},K:{"1":"U","16":"A","132":"B C gB qB hB"},L:{"1":"fB"},M:{"1":"S"},N:{"1":"A B"},O:{"1":"eC"},P:{"1":"H fC gC hC iC jC nB kC lC mC nC oC pC"},Q:{"1":"qC"},R:{"1":"rC"},S:{"1":"sC"}},B:4,C:"DOM Parsing and Serialization"}; +module.exports={A:{A:{"1":"A B","260":"J D E F xB"},B:{"1":"C K L G M N O P Q R S T U V W Z a b c d e f g h i j k l H X"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L G M N O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W Z a b c d e f g h i j k l H X pB","132":"B","260":"yB lB I m J D zB 0B","516":"E F A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB mB RB nB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R S T U V W Z a b c d e f g h i j k l H X pB 1B 2B","132":"I m J D E F A B C K L G M N O n o p q r s t u v w x y"},E:{"1":"E F A B C K L G 6B 7B rB iB jB 8B 9B AC sB tB uB kB BC","132":"I m J D 3B qB 4B 5B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB Y UB VB WB XB YB ZB aB bB cB dB eB fB gB hB P Q R oB S T U V W","16":"F CC","132":"B C G M N DC EC FC iB vB GC jB"},G:{"1":"E LC MC NC OC PC QC RC SC TC UC VC WC XC YC ZC aC sB tB uB kB","132":"qB HC wB IC JC KC"},H:{"132":"bC"},I:{"1":"H gC hC","132":"lB I cC dC eC fC wB"},J:{"132":"D A"},K:{"1":"Y","16":"A","132":"B C iB vB jB"},L:{"1":"X"},M:{"1":"H"},N:{"1":"A B"},O:{"1":"iC"},P:{"1":"I jC kC lC mC nC rB oC pC qC rC sC kB tC"},Q:{"1":"uC"},R:{"1":"vC"},S:{"1":"wC"}},B:4,C:"DOM Parsing and Serialization"}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AD.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AD.js index fb19ad5c16ded1..40f27b2f01e751 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AD.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AD.js @@ -1 +1 @@ -module.exports={C:{"52":0.01586,"72":0.01982,"78":0.11099,"91":0.03964,"94":0.00793,"95":0.01189,"96":0.02378,"97":0.8483,"98":1.30812,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 99 100 3.5 3.6"},D:{"40":0.00396,"43":0.00396,"49":0.13081,"56":0.01189,"67":0.00396,"69":0.00396,"70":0.01586,"72":0.00396,"77":0.04757,"78":0.00396,"79":0.10703,"81":0.00396,"83":0.00793,"84":0.00396,"85":0.00793,"86":0.01189,"87":0.01982,"88":0.01189,"89":0.0436,"90":0.01189,"91":0.13874,"92":0.0555,"94":0.01189,"95":0.00793,"96":0.0991,"97":0.33694,"98":4.05914,"99":12.69669,"100":0.15856,"102":0.00396,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 68 71 73 74 75 76 80 93 101 103"},F:{"36":0.00793,"46":0.00793,"82":0.01189,"83":0.34487,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00793,"87":0.01586,"92":0.01586,"96":0.00793,"97":0.01982,"98":0.44397,"99":1.8829,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01189,"14":0.23388,"15":0.1546,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01189,"11.1":0.01189,"12.1":0.0991,"13.1":0.28937,"14.1":1.19713,"15.1":1.37154,"15.2-15.3":1.78776,"15.4":1.58164},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03824,"10.0-10.2":0,"10.3":0.10325,"11.0-11.2":0.03442,"11.3-11.4":0.06119,"12.0-12.1":0.00382,"12.2-12.5":0.28681,"13.0-13.1":0.00382,"13.2":0,"13.3":0.03824,"13.4-13.7":0.18738,"14.0-14.4":0.31358,"14.5-14.8":1.88912,"15.0-15.1":2.8528,"15.2-15.3":30.47066,"15.4":1.94266},P:{"4":0.05203,"5.0-5.4":0.27121,"6.2-6.4":0.01039,"7.2-7.4":0.03189,"8.2":0.04018,"9.2":0.04163,"10.1":0.02078,"11.1-11.2":0.2126,"12.0":0.05196,"13.0":0.10407,"14.0":0.02126,"15.0":0.1247,"16.0":1.31127},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00085,"4.4":0,"4.4.3-4.4.4":0.01123},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11496,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":20.53412},S:{"2.5":0},R:{_:"0"},M:{"0":0.18712},Q:{"10.4":0},O:{"0":0},H:{"0":0.03429}}; +module.exports={C:{"44":0.0709,"52":0.01576,"60":0.00394,"72":0.02363,"75":0.07484,"78":0.10635,"85":0.00788,"90":0.00788,"91":0.04333,"95":0.01576,"96":0.00788,"97":0.01182,"98":0.00788,"99":0.33088,"100":1.40228,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 76 77 79 80 81 82 83 84 86 87 88 89 92 93 94 101 102 103 3.5 3.6"},D:{"40":0.00788,"43":0.03545,"49":0.09848,"58":0.00394,"70":0.02363,"74":0.00394,"77":0.00788,"79":0.04727,"83":0.00394,"84":0.01576,"85":0.01576,"86":0.04727,"87":0.06696,"88":0.01576,"89":0.01576,"90":0.00788,"91":0.05121,"92":0.03545,"93":0.00394,"94":0.02757,"95":0.01576,"96":0.05909,"97":0.07484,"98":0.04333,"99":0.27179,"100":3.39148,"101":14.81852,"102":1.1817,"104":0.01576,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 71 72 73 75 76 78 80 81 103"},F:{"46":0.00394,"85":0.36239,"86":0.34663,"87":0.01576,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"85":0.01182,"87":0.01182,"99":0.02363,"100":0.05909,"101":2.09555,_:"12 13 14 15 16 17 18 79 80 81 83 84 86 88 89 90 91 92 93 94 95 96 97 98"},E:{"4":0,"8":0.0197,"13":0.00788,"14":0.18907,"15":0.08666,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00788,"11.1":0.01576,"12.1":0.06696,"13.1":0.18907,"14.1":0.60267,"15.1":0.77598,"15.2-15.3":0.49631,"15.4":7.56288,"15.5":0.86658},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00335,"8.1-8.4":0.01005,"9.0-9.2":0,"9.3":0.05025,"10.0-10.2":0,"10.3":0.1206,"11.0-11.2":0.00335,"11.3-11.4":0.23115,"12.0-12.1":0,"12.2-12.5":0.35175,"13.0-13.1":0.01005,"13.2":0.03685,"13.3":0.07035,"13.4-13.7":0.1943,"14.0-14.4":0.2278,"14.5-14.8":1.08541,"15.0-15.1":1.05191,"15.2-15.3":3.47399,"15.4":26.56584},P:{"4":0.02098,"5.0-5.4":0.24206,"6.2-6.4":0.01042,"7.2-7.4":0.14587,"8.2":0.05043,"9.2":0.04168,"10.1":0.01042,"11.1-11.2":0.01049,"12.0":0.05244,"13.0":0.02098,"14.0":0.01049,"15.0":0.02098,"16.0":0.3566},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01818},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.40966,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":25.9398},S:{"2.5":0},R:{_:"0"},M:{"0":0.27275},Q:{"10.4":0},O:{"0":0},H:{"0":0.04591}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AE.js index 52c65f8a390005..7be3933e580ec1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AE.js @@ -1 +1 @@ -module.exports={C:{"42":0.00459,"52":0.00917,"55":0.00459,"68":0.0321,"78":0.01834,"79":0.00459,"81":0.00459,"82":0.00459,"84":0.00917,"91":0.01834,"94":0.12382,"95":0.00917,"96":0.00917,"97":0.27057,"98":0.48153,"99":0.01376,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 80 83 85 86 87 88 89 90 92 93 100 3.5 3.6"},D:{"35":0.37605,"38":0.01834,"49":0.0321,"60":0.00917,"65":0.01834,"67":0.00917,"68":0.00917,"69":0.00917,"71":0.00459,"72":0.00917,"73":0.00917,"74":0.00917,"75":0.01834,"76":0.03669,"77":0.00459,"78":0.01376,"79":0.05962,"80":0.0321,"81":0.01376,"83":0.04127,"84":0.05503,"85":0.05503,"86":0.05962,"87":0.17427,"88":0.00917,"89":0.05045,"90":0.0321,"91":0.19261,"92":0.07338,"93":0.30268,"94":0.07796,"95":0.05045,"96":0.22471,"97":0.39898,"98":7.38346,"99":25.79166,"100":0.18344,"101":0.02752,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 61 62 63 64 66 70 102 103"},F:{"28":0.00917,"36":0.00917,"46":0.00459,"68":0.00459,"77":0.00917,"78":0.00459,"79":0.00917,"80":0.00917,"81":0.00459,"82":0.00917,"83":0.24306,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00459,"16":0.00459,"17":0.00459,"18":0.02293,"84":0.00917,"91":0.00917,"92":0.00917,"94":0.00459,"95":0.00917,"96":0.01376,"97":0.05045,"98":0.6237,"99":2.92587,_:"12 13 14 79 80 81 83 85 86 87 88 89 90 93"},E:{"4":0,"12":0.00459,"13":0.04586,"14":0.18803,"15":0.12841,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01376,"12.1":0.04127,"13.1":0.14675,"14.1":0.67414,"15.1":0.17885,"15.2-15.3":0.24764,"15.4":0.11465},G:{"8":0.00112,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00335,"6.0-6.1":0.00112,"7.0-7.1":0.0123,"8.1-8.4":0,"9.0-9.2":0.00224,"9.3":0.10955,"10.0-10.2":0.00447,"10.3":0.07266,"11.0-11.2":0.0939,"11.3-11.4":0.01565,"12.0-12.1":0.01341,"12.2-12.5":0.38679,"13.0-13.1":0.019,"13.2":0.00671,"13.3":0.04248,"13.4-13.7":0.14309,"14.0-14.4":0.45946,"14.5-14.8":1.55388,"15.0-15.1":0.78588,"15.2-15.3":6.63584,"15.4":0.80824},P:{"4":0.08377,"5.0-5.4":0.02048,"6.2-6.4":0.02064,"7.2-7.4":0.04188,"8.2":0.02029,"9.2":0.13461,"10.1":0.05014,"11.1-11.2":0.03141,"12.0":0.01047,"13.0":0.05235,"14.0":0.07329,"15.0":0.05235,"16.0":1.86379},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00316,"4.4":0,"4.4.3-4.4.4":0.0185},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00948,"11":0.13269,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":36.46043},S:{"2.5":0},R:{_:"0"},M:{"0":0.09206},Q:{"10.4":0},O:{"0":3.72552},H:{"0":0.69721}}; +module.exports={C:{"34":0.00691,"52":0.01037,"68":0.0311,"77":0.00346,"78":0.03455,"79":0.00691,"80":0.01037,"81":0.01728,"82":0.00691,"83":0.00691,"84":0.01037,"91":0.01728,"97":0.00346,"98":0.01382,"99":0.15202,"100":0.66336,"101":0.00691,"102":0.00691,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 85 86 87 88 89 90 92 93 94 95 96 103 3.5 3.6"},D:{"22":0.00346,"34":0.00346,"35":0.28331,"38":0.02073,"41":0.00691,"48":0.01382,"49":0.02419,"55":0.00691,"56":0.00691,"61":0.00346,"63":0.01037,"65":0.01037,"68":0.00691,"69":0.01382,"71":0.01037,"73":0.00691,"74":0.01037,"75":0.02073,"76":0.05183,"77":0.00691,"78":0.01037,"79":0.07947,"80":0.02419,"81":0.01728,"83":0.07256,"84":0.19003,"85":0.11402,"86":0.19003,"87":0.2764,"88":0.00691,"89":0.02073,"90":0.02073,"91":0.09329,"92":0.04837,"93":0.07256,"94":0.20039,"95":0.02764,"96":0.0691,"97":0.08638,"98":0.1002,"99":0.24185,"100":3.4861,"101":17.42702,"102":1.42346,"103":0.01037,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 36 37 39 40 42 43 44 45 46 47 50 51 52 53 54 57 58 59 60 62 64 66 67 70 72 104"},F:{"28":0.01382,"36":0.00691,"46":0.01037,"68":0.00691,"69":0.00691,"70":0.00691,"71":0.01037,"83":0.00346,"84":0.01382,"85":0.36969,"86":0.35241,"87":0.01728,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00346,"17":0.00691,"18":0.02419,"81":0.01037,"84":0.01728,"85":0.01037,"86":0.00346,"92":0.00691,"95":0.00691,"96":0.00346,"97":0.00691,"98":0.01037,"99":0.03801,"100":0.14166,"101":2.4185,_:"12 13 14 16 79 80 83 87 88 89 90 91 93 94"},E:{"4":0,"12":0.00346,"13":0.0691,"14":0.18312,"15":0.07947,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00691,"11.1":0.01382,"12.1":0.0311,"13.1":0.13129,"14.1":0.61154,"15.1":0.11747,"15.2-15.3":0.13129,"15.4":1.58585,"15.5":0.14857},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0109,"6.0-6.1":0,"7.0-7.1":0.0109,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.11306,"10.0-10.2":0.00817,"10.3":0.07901,"11.0-11.2":0.02043,"11.3-11.4":0.01226,"12.0-12.1":0.01635,"12.2-12.5":0.43453,"13.0-13.1":0.01226,"13.2":0.00545,"13.3":0.0395,"13.4-13.7":0.13349,"14.0-14.4":0.44543,"14.5-14.8":1.19191,"15.0-15.1":0.46586,"15.2-15.3":1.09519,"15.4":9.5189},P:{"4":0.11459,"5.0-5.4":0.01021,"6.2-6.4":0.01051,"7.2-7.4":0.03125,"8.2":0.04047,"9.2":0.05217,"10.1":0.13125,"11.1-11.2":0.02083,"12.0":0.01042,"13.0":0.04167,"14.0":0.05209,"15.0":0.03125,"16.0":0.76047},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00125,"4.4":0,"4.4.3-4.4.4":0.02493},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01539,"9":0.01154,"11":0.14236,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.12436},Q:{"10.4":0},O:{"0":3.10233},H:{"0":0.56387},L:{"0":46.57537},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AF.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AF.js index dbf3037932d656..f8eb3bc7c918c1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AF.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AF.js @@ -1 +1 @@ -module.exports={C:{"17":0.00226,"24":0.00678,"25":0.00904,"29":0.0113,"30":0.00452,"33":0.00226,"34":0.00452,"37":0.00452,"38":0.00904,"39":0.01356,"44":0.00226,"45":0.00678,"47":0.00904,"48":0.0113,"50":0.05876,"52":0.00904,"56":0.01808,"57":0.00452,"60":0.00452,"63":0.00678,"64":0.00452,"66":0.00678,"70":0.00226,"72":0.01356,"78":0.02938,"80":0.00452,"81":0.00452,"84":0.00678,"85":0.00452,"86":0.00226,"87":0.00226,"88":0.07684,"89":0.10848,"90":0.00226,"91":0.01582,"93":0.00904,"94":0.0113,"95":0.00678,"96":0.04294,"97":0.54466,"98":0.73224,"99":0.01582,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 26 27 28 31 32 35 36 40 41 42 43 46 49 51 53 54 55 58 59 61 62 65 67 68 69 71 73 74 75 76 77 79 82 83 92 100 3.5 3.6"},D:{"11":0.0113,"23":0.00452,"26":0.00226,"28":0.00452,"29":0.00452,"33":0.00226,"34":0.00678,"36":0.00452,"37":0.01356,"38":0.00904,"39":0.00904,"43":0.05424,"44":0.00452,"45":0.00452,"46":0.00678,"47":0.0113,"48":0.00226,"49":0.00904,"50":0.00226,"51":0.00452,"52":0.0113,"53":0.00452,"54":0.00452,"55":0.00678,"56":0.00678,"57":0.00904,"58":0.00904,"59":0.00226,"60":0.00452,"61":0.00904,"62":0.02938,"63":0.01808,"64":0.0113,"65":0.02034,"66":0.00452,"67":0.00904,"68":0.00226,"69":0.00678,"70":0.05424,"71":0.01582,"72":0.0113,"73":0.00904,"74":0.01582,"75":0.00452,"76":0.02034,"77":0.01356,"78":0.02034,"79":0.02034,"80":0.02712,"81":0.09266,"83":0.05424,"84":0.00904,"85":0.04068,"86":0.07458,"87":0.0452,"88":0.03616,"89":0.02034,"90":0.01356,"91":0.03842,"92":0.06328,"93":0.0226,"94":0.0452,"95":0.04746,"96":0.32318,"97":0.30058,"98":3.35158,"99":8.7801,"100":0.04294,"101":0.02486,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 24 25 27 30 31 32 35 40 41 42 102 103"},F:{"64":0.00226,"70":0.00226,"71":0.00226,"72":0.00904,"78":0.00226,"79":0.00904,"82":0.00678,"83":0.0113,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 73 74 75 76 77 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02034,"13":0.01582,"14":0.02938,"15":0.0113,"16":0.03616,"17":0.02712,"18":0.12204,"81":0.0113,"83":0.00226,"84":0.02034,"85":0.00452,"88":0.00226,"89":0.03164,"90":0.04294,"91":0.00452,"92":0.03842,"93":0.0113,"94":0.00904,"95":0.00678,"96":0.01582,"97":0.03616,"98":0.30962,"99":1.01022,_:"79 80 86 87"},E:{"4":0,"13":0.0113,"14":0.0226,"15":0.00904,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00678,"13.1":0.00678,"14.1":0.02712,"15.1":0.13786,"15.2-15.3":0.21244,"15.4":0.61246},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02272,"8.1-8.4":0.00227,"9.0-9.2":0,"9.3":0.0284,"10.0-10.2":0.00341,"10.3":0.09656,"11.0-11.2":0.02386,"11.3-11.4":0.05112,"12.0-12.1":0.04771,"12.2-12.5":0.83498,"13.0-13.1":0.05226,"13.2":0.02272,"13.3":0.08066,"13.4-13.7":0.19312,"14.0-14.4":0.90882,"14.5-14.8":0.67934,"15.0-15.1":1.11785,"15.2-15.3":6.16521,"15.4":1.02356},P:{"4":1.27567,"5.0-5.4":0.27121,"6.2-6.4":0.39174,"7.2-7.4":0.58259,"8.2":0.04018,"9.2":0.34152,"10.1":0.06027,"11.1-11.2":0.21094,"12.0":0.06027,"13.0":0.20089,"14.0":0.26116,"15.0":0.35156,"16.0":1.78795},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00147,"4.2-4.3":0.00539,"4.4":0,"4.4.3-4.4.4":0.04733},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00226,"8":0.00452,"9":0.0226,"11":0.4633,_:"7 10 5.5"},J:{"7":0,"10":0.02322},N:{_:"10 11"},L:{"0":58.06462},S:{"2.5":0},R:{_:"0"},M:{"0":0.14706},Q:{"10.4":0},O:{"0":1.96596},H:{"0":1.12847}}; +module.exports={C:{"18":0.00604,"20":0.00403,"24":0.01007,"29":0.01007,"33":0.00403,"36":0.00403,"38":0.00604,"39":0.00604,"41":0.00201,"43":0.00604,"44":0.00403,"45":0.00403,"47":0.00403,"48":0.00201,"50":0.09461,"56":0.00403,"68":0.00403,"70":0.00201,"72":0.00604,"73":0.00201,"75":0.00201,"85":0.00604,"88":0.00403,"89":0.00201,"91":0.01409,"94":0.00403,"95":0.00403,"96":0.00403,"97":0.00604,"98":0.05033,"99":0.18318,"100":1.06488,"101":0.0302,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 21 22 23 25 26 27 28 30 31 32 34 35 37 40 42 46 49 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 71 74 76 77 78 79 80 81 82 83 84 86 87 90 92 93 102 103 3.5 3.6"},D:{"18":0.01007,"20":0.00201,"23":0.00403,"30":0.00201,"34":0.00604,"37":0.00805,"38":0.00604,"39":0.00403,"40":0.00201,"42":0.00201,"43":0.06442,"44":0.00403,"45":0.00201,"46":0.01007,"47":0.00403,"48":0.0302,"49":0.00403,"52":0.00403,"53":0.00201,"55":0.00403,"57":0.01812,"59":0.00604,"60":0.00201,"61":0.01812,"62":0.0161,"63":0.01812,"64":0.00604,"65":0.00805,"66":0.00604,"67":0.00403,"68":0.0161,"70":0.01409,"71":0.01812,"72":0.00604,"73":0.00805,"74":0.01208,"76":0.00403,"77":0.01812,"78":0.02214,"79":0.02416,"80":0.02617,"81":0.02013,"83":0.03623,"84":0.04026,"85":0.05838,"86":0.0463,"87":0.04429,"88":0.00805,"89":0.02818,"90":0.0161,"91":0.03221,"92":0.02617,"93":0.01409,"94":0.02013,"95":0.06844,"96":0.13688,"97":0.05435,"98":0.15903,"99":0.24961,"100":1.56813,"101":7.99966,"102":0.54955,"103":0.01208,"104":0.00201,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 21 22 24 25 26 27 28 29 31 32 33 35 36 41 50 51 54 56 58 69 75"},F:{"22":0.00201,"42":0.00403,"79":0.01007,"80":0.00201,"82":0.00201,"85":0.15903,"86":0.38046,"87":0.0302,_:"9 11 12 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 83 84 9.5-9.6 10.5 11.1 11.5 11.6 12.1","10.0-10.1":0,"10.6":0.00403},B:{"12":0.0161,"13":0.0161,"14":0.00805,"15":0.0161,"16":0.05033,"17":0.03422,"18":0.14494,"81":0.01007,"84":0.02416,"85":0.02013,"88":0.00201,"89":0.02416,"90":0.03422,"92":0.02818,"95":0.00201,"96":0.00403,"97":0.00805,"98":0.02416,"99":0.0161,"100":0.10669,"101":0.85351,_:"79 80 83 86 87 91 93 94"},E:{"4":0,"10":0.01007,"13":0.00403,"14":0.01812,"15":0.00604,_:"0 5 6 7 8 9 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00805,"13.1":0.00604,"14.1":0.01409,"15.1":0.10468,"15.2-15.3":0.09059,"15.4":1.12929,"15.5":0.33013},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02959,"8.1-8.4":0,"9.0-9.2":0.00129,"9.3":0.02316,"10.0-10.2":0.00643,"10.3":0.07848,"11.0-11.2":0.02187,"11.3-11.4":0.05918,"12.0-12.1":0.04246,"12.2-12.5":0.7076,"13.0-13.1":0.02187,"13.2":0.02573,"13.3":0.1248,"13.4-13.7":0.14152,"14.0-14.4":0.77836,"14.5-14.8":0.60725,"15.0-15.1":0.71404,"15.2-15.3":1.4345,"15.4":8.04094},P:{"4":1.07918,"5.0-5.4":0.24206,"6.2-6.4":0.39335,"7.2-7.4":0.5648,"8.2":0.05043,"9.2":0.29249,"10.1":0.03026,"11.1-11.2":0.16137,"12.0":0.06051,"13.0":0.38326,"14.0":0.19163,"15.0":0.1412,"16.0":1.28089},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00061,"4.2-4.3":0.01201,"4.4":0,"4.4.3-4.4.4":0.05128},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00202,"9":0.02428,"11":0.3622,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":60.47103},S:{"2.5":0},R:{_:"0"},M:{"0":0.13578},Q:{"10.4":0},O:{"0":1.71721},H:{"0":1.31571}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AG.js index 3de62314b9a6e5..a1d0acae5cbd15 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AG.js @@ -1 +1 @@ -module.exports={C:{"2":0.00355,"52":0.0071,"57":0.01774,"75":0.01064,"78":0.01064,"91":0.00355,"93":0.00355,"94":0.0071,"95":0.02838,"96":0.01419,"97":0.45769,"98":0.66702,"99":0.01774,_:"3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 100 3.5 3.6"},D:{"49":0.01064,"55":0.01419,"58":0.0071,"62":0.0071,"63":0.00355,"66":0.00355,"67":0.02129,"75":0.02838,"76":0.03903,"77":0.01064,"78":0.00355,"79":0.03548,"81":0.0071,"84":0.00355,"85":0.02484,"86":0.02838,"87":0.01064,"88":0.00355,"89":0.01774,"90":0.0816,"91":0.01774,"92":0.0071,"93":0.05677,"94":0.03903,"95":0.01064,"96":0.08515,"97":0.30513,"98":4.90334,"99":13.87623,"100":0.13837,"101":0.0071,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 59 60 61 64 65 68 69 70 71 72 73 74 80 83 102 103"},F:{"83":0.07806,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01419,"13":0.0071,"14":0.0071,"15":0.0071,"16":0.0071,"17":0.0071,"18":0.03193,"84":0.03548,"85":0.00355,"90":0.00355,"92":0.01419,"93":0.01419,"96":0.01774,"97":0.06386,"98":1.27018,"99":5.42134,_:"79 80 81 83 86 87 88 89 91 94 95"},E:{"4":0,"12":0.01064,"13":0.0071,"14":0.13837,"15":0.14192,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.17385,"11.1":0.01419,"12.1":0.02838,"13.1":0.4364,"14.1":0.89764,"15.1":0.18804,"15.2-15.3":0.32287,"15.4":0.11708},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00155,"6.0-6.1":0,"7.0-7.1":0.0062,"8.1-8.4":0.02168,"9.0-9.2":0,"9.3":0.01704,"10.0-10.2":0,"10.3":0.06969,"11.0-11.2":0.01394,"11.3-11.4":0.02788,"12.0-12.1":0.00774,"12.2-12.5":0.57149,"13.0-13.1":0.00465,"13.2":0.00465,"13.3":0.0604,"13.4-13.7":0.13474,"14.0-14.4":0.64119,"14.5-14.8":1.79502,"15.0-15.1":0.99121,"15.2-15.3":10.30548,"15.4":0.80381},P:{"4":0.20023,"5.0-5.4":0.27121,"6.2-6.4":0.01039,"7.2-7.4":0.21077,"8.2":0.03061,"9.2":0.04215,"10.1":0.05102,"11.1-11.2":0.31615,"12.0":0.03061,"13.0":0.11592,"14.0":0.27399,"15.0":0.15807,"16.0":4.68953},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0129},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06741,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":44.0933},S:{"2.5":0},R:{_:"0"},M:{"0":0.34196},Q:{"10.4":0},O:{"0":0.01936},H:{"0":0.12217}}; +module.exports={C:{"47":0.0108,"94":0.0072,"96":0.0072,"98":0.0036,"99":0.216,"100":0.8136,"101":0.0036,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 97 102 103 3.5 3.6"},D:{"49":0.018,"55":0.018,"58":0.0072,"69":0.0036,"75":0.0144,"76":0.1332,"77":0.0144,"78":0.0108,"79":0.072,"80":0.0072,"81":0.0036,"84":0.0072,"85":0.0108,"86":0.0396,"87":0.0036,"88":0.018,"89":0.036,"90":0.036,"91":0.0108,"92":0.0108,"93":0.1872,"95":0.0252,"96":0.0216,"97":0.0216,"98":0.0792,"99":0.162,"100":4.3272,"101":15.3324,"102":1.152,"103":0.0108,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 83 94 104"},F:{"28":0.0144,"85":0.2124,"86":0.1944,"87":0.018,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0324,"13":0.0144,"15":0.0036,"16":0.0036,"18":0.0144,"84":0.0108,"85":0.0036,"89":0.0036,"92":0.018,"93":0.0036,"94":0.0036,"96":0.0108,"97":0.0072,"98":0.0972,"99":0.0648,"100":0.486,"101":5.3028,_:"14 17 79 80 81 83 86 87 88 90 91 95"},E:{"4":0,"13":0.0144,"14":0.108,"15":0.0468,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.2448,"10.1":0.0072,"11.1":0.0396,"12.1":0.036,"13.1":0.2772,"14.1":0.5076,"15.1":0.0792,"15.2-15.3":0.1728,"15.4":1.4112,"15.5":0.2124},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01092,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04214,"10.0-10.2":0,"10.3":0.03589,"11.0-11.2":0.00936,"11.3-11.4":0.0078,"12.0-12.1":0.00468,"12.2-12.5":0.44634,"13.0-13.1":0.0078,"13.2":0,"13.3":0.0515,"13.4-13.7":0.21224,"14.0-14.4":0.37923,"14.5-14.8":1.04249,"15.0-15.1":0.5072,"15.2-15.3":1.08307,"15.4":11.75612},P:{"4":0.32131,"5.0-5.4":0.03112,"6.2-6.4":0.03112,"7.2-7.4":0.24876,"8.2":0.10375,"9.2":0.01036,"10.1":0.03112,"11.1-11.2":0.36277,"12.0":0.02073,"13.0":0.13474,"14.0":0.13474,"15.0":0.12438,"16.0":2.03154},I:{"0":0,"3":0,"4":0.00063,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01857},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00489,"11":0.06351,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":44.4876},S:{"2.5":0},R:{_:"0"},M:{"0":0.16},Q:{"10.4":0},O:{"0":0.0896},H:{"0":0.15148}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AI.js index 2a0169ce69285f..718f121290b93f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AI.js @@ -1 +1 @@ -module.exports={C:{"78":0.00404,"95":0.00808,"97":0.10905,"98":0.4766,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 99 100 3.5 3.6"},D:{"69":0.08482,"75":0.00404,"76":0.17368,"86":0.00404,"90":0.01212,"92":0.01212,"93":0.01212,"94":0.04039,"95":0.03635,"96":0.03231,"97":0.2585,"98":2.46379,"99":13.42564,"100":0.03635,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 77 78 79 80 81 83 84 85 87 88 89 91 101 102 103"},F:{"83":0.01616,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00808,"18":0.02423,"91":0.00404,"95":0.01212,"97":0.1454,"98":1.36518,"99":5.84039,_:"12 13 14 16 17 79 80 81 83 84 85 86 87 88 89 90 92 93 94 96"},E:{"4":0,"13":0.00404,"14":0.28677,"15":0.25042,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01616,"13.1":1.1188,"14.1":0.6624,"15.1":0.62201,"15.2-15.3":0.54527,"15.4":0.18579},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0303,"11.0-11.2":0.07197,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.22349,"13.0-13.1":0,"13.2":0,"13.3":0.0644,"13.4-13.7":0.01894,"14.0-14.4":0.59471,"14.5-14.8":3.43188,"15.0-15.1":2.23489,"15.2-15.3":30.73915,"15.4":0.45455},P:{"4":0.2164,"5.0-5.4":0.27121,"6.2-6.4":0.01039,"7.2-7.4":0.13396,"8.2":0.03061,"9.2":0.02041,"10.1":0.05102,"11.1-11.2":0.26792,"12.0":0.03061,"13.0":0.03091,"14.0":0.06183,"15.0":0.02061,"16.0":1.92697},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06059,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":19.90751},S:{"2.5":0},R:{_:"0"},M:{"0":0.11326},Q:{"10.4":0},O:{"0":0.07749},H:{"0":0.07337}}; +module.exports={C:{"80":0.00377,"87":0.04896,"88":0.00377,"91":0.03389,"98":0.00377,"99":0.03389,"100":1.00176,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 85 86 89 90 92 93 94 95 96 97 101 102 103 3.5 3.6"},D:{"65":0.03766,"66":0.01883,"67":0.0113,"76":0.12804,"79":0.0113,"80":0.00377,"83":0.00753,"85":0.09792,"87":0.00377,"90":0.01883,"95":0.01883,"96":0.0113,"97":0.00753,"98":0.01883,"99":0.10168,"100":5.31383,"101":7.05372,"102":0.24856,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 68 69 70 71 72 73 74 75 77 78 81 84 86 88 89 91 92 93 94 103 104"},F:{"85":0.62139,"86":0.64775,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00753,"18":0.00753,"86":0.00377,"89":0.05272,"96":0.0113,"97":0.00377,"98":0.01506,"99":0.04896,"100":0.61386,"101":8.83127,_:"12 13 14 15 17 79 80 81 83 84 85 87 88 90 91 92 93 94 95"},E:{"4":0,"13":0.04143,"14":0.06026,"15":0.04143,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":1.08084,"14.1":0.3879,"15.1":0.44439,"15.2-15.3":0.33894,"15.4":5.10293,"15.5":0.20336},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01347,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.30973,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.02357,"14.0-14.4":0.26597,"14.5-14.8":0.50163,"15.0-15.1":0.86523,"15.2-15.3":4.12414,"15.4":27.5661},P:{"4":0.59439,"5.0-5.4":0.03112,"6.2-6.4":0.03112,"7.2-7.4":0.49191,"8.2":0.10375,"9.2":0.0415,"10.1":0.03112,"11.1-11.2":0.03074,"12.0":0.04099,"13.0":0.03074,"14.0":0.12298,"15.0":0.12298,"16.0":0.8096},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0187},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02636,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":27.8529},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0.10598},H:{"0":0.01771}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AL.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AL.js index a87e20b62cea5c..bfa72f4311dbbd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AL.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AL.js @@ -1 +1 @@ -module.exports={C:{"48":0.00363,"52":0.02542,"60":0.00182,"66":0.2833,"68":0.00363,"74":0.00545,"78":0.0109,"79":0.00545,"80":0.00545,"81":0.00545,"82":0.00363,"86":0.00182,"87":0.00182,"88":0.00726,"89":0.0109,"90":0.00182,"91":0.0109,"92":0.00182,"93":0.00545,"94":0.00182,"95":0.00363,"96":0.00545,"97":0.27422,"98":0.60473,"99":0.00908,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 72 73 75 76 77 83 84 85 100 3.5 3.6"},D:{"38":0.01271,"43":0.00363,"47":0.00545,"49":0.06356,"53":0.00363,"55":0.00182,"56":0.00363,"62":0.00363,"63":0.00726,"64":0.00182,"65":0.00545,"66":0.00545,"67":0.00182,"68":0.01271,"69":0.00726,"70":0.00182,"71":0.00726,"73":0.00363,"74":0.01271,"75":0.00363,"76":0.01634,"77":0.00545,"78":0.0109,"79":0.07446,"80":0.00908,"81":0.01998,"83":0.02906,"84":0.07264,"85":0.05085,"86":0.04177,"87":0.06901,"88":0.00726,"89":0.01634,"90":0.02361,"91":0.02542,"92":0.01453,"93":0.06538,"94":0.01453,"95":0.02179,"96":0.07264,"97":0.17252,"98":2.92376,"99":9.43594,"100":0.02724,"101":0.00363,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 50 51 52 54 57 58 59 60 61 72 102 103"},F:{"28":0.00363,"36":0.00545,"40":0.00363,"46":0.00363,"69":0.00726,"77":0.00726,"79":0.00182,"82":0.00182,"83":0.05811,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00726,"18":0.0109,"85":0.00908,"89":0.00545,"92":0.00363,"95":0.00182,"96":0.00545,"97":0.01453,"98":0.14165,"99":0.61199,_:"12 13 14 15 16 79 80 81 83 84 86 87 88 90 91 93 94"},E:{"4":0,"13":0.00908,"14":0.0454,"15":0.01634,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00545,"11.1":0.0109,"12.1":0.01271,"13.1":0.03995,"14.1":0.13257,"15.1":0.09988,"15.2-15.3":0.10896,"15.4":0.31417},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.048,"7.0-7.1":0.02057,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04457,"10.0-10.2":0.01371,"10.3":0.13715,"11.0-11.2":0.03772,"11.3-11.4":0.08229,"12.0-12.1":0.04457,"12.2-12.5":1.86861,"13.0-13.1":0.04457,"13.2":0.05143,"13.3":0.20229,"13.4-13.7":0.65487,"14.0-14.4":1.51889,"14.5-14.8":6.27784,"15.0-15.1":1.93718,"15.2-15.3":19.57411,"15.4":1.70403},P:{"4":0.17501,"5.0-5.4":0.27121,"6.2-6.4":0.39174,"7.2-7.4":0.09265,"8.2":0.04018,"9.2":0.03088,"10.1":0.06027,"11.1-11.2":0.13383,"12.0":0.03088,"13.0":0.15442,"14.0":0.13383,"15.0":0.15442,"16.0":2.40898},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00129,"4.2-4.3":0.00388,"4.4":0,"4.4.3-4.4.4":0.02757},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00726,"9":0.00726,"11":0.04177,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":43.47228},S:{"2.5":0},R:{_:"0"},M:{"0":0.15552},Q:{"10.4":0},O:{"0":0.03274},H:{"0":0.10074}}; +module.exports={C:{"52":0.01322,"78":0.00331,"79":0.00331,"80":0.00992,"82":0.00331,"83":0.00661,"88":0.00165,"89":0.00661,"91":0.00661,"94":0.00165,"97":0.00165,"98":0.00496,"99":0.12067,"100":0.54549,"101":0.00992,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 81 84 85 86 87 90 92 93 95 96 102 103 3.5 3.6"},D:{"11":0.00165,"38":0.00827,"41":0.00661,"43":0.00165,"47":0.00496,"49":0.03471,"53":0.00661,"55":0.00165,"56":0.00165,"62":0.00165,"63":0.00992,"65":0.00331,"66":0.00992,"68":0.03471,"69":0.00496,"71":0.00661,"72":0.00165,"73":0.00165,"74":0.00331,"75":0.00331,"76":0.02645,"77":0.00827,"78":0.00496,"79":0.07934,"80":0.00661,"81":0.00827,"83":0.02975,"84":0.07439,"85":0.04298,"86":0.01818,"87":0.06777,"88":0.01157,"89":0.01653,"90":0.01322,"91":0.04133,"92":0.01818,"93":0.02149,"94":0.00992,"95":0.01157,"96":0.03802,"97":0.04298,"98":0.0529,"99":0.12067,"100":2.25139,"101":8.41542,"102":0.53557,"103":0.00496,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 44 45 46 48 50 51 52 54 57 58 59 60 61 64 67 70 104"},F:{"28":0.00331,"36":0.00331,"40":0.00165,"46":0.00496,"68":0.00827,"85":0.17357,"86":0.21654,"87":0.00331,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00331,"18":0.00496,"85":0.01322,"86":0.01984,"87":0.00331,"89":0.00331,"92":0.00331,"96":0.00165,"97":0.00331,"98":0.00331,"99":0.00827,"100":0.07769,"101":0.9108,_:"12 13 14 15 16 79 80 81 83 84 88 90 91 93 94 95"},E:{"4":0,"12":0.00331,"13":0.01322,"14":0.01984,"15":0.01488,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00331,"11.1":0.00165,"12.1":0.00661,"13.1":0.02975,"14.1":0.06116,"15.1":0.05124,"15.2-15.3":0.05455,"15.4":0.86287,"15.5":0.13059},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.03693,"7.0-7.1":0.01846,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03693,"10.0-10.2":0.01108,"10.3":0.09971,"11.0-11.2":0.03324,"11.3-11.4":0.07386,"12.0-12.1":0.03693,"12.2-12.5":1.73561,"13.0-13.1":0.04062,"13.2":0.03693,"13.3":0.16987,"13.4-13.7":0.57977,"14.0-14.4":1.44758,"14.5-14.8":5.35824,"15.0-15.1":0.93428,"15.2-15.3":2.55911,"15.4":23.69296},P:{"4":0.15288,"5.0-5.4":0.24206,"6.2-6.4":0.39335,"7.2-7.4":0.08154,"8.2":0.05043,"9.2":0.01019,"10.1":0.03026,"11.1-11.2":0.08154,"12.0":0.02038,"13.0":0.11211,"14.0":0.09173,"15.0":0.11211,"16.0":0.85614},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00215,"4.2-4.3":0.00322,"4.4":0,"4.4.3-4.4.4":0.01968},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00165,"11":0.0248,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":43.88254},S:{"2.5":0},R:{_:"0"},M:{"0":0.15025},Q:{"10.4":0},O:{"0":0.03339},H:{"0":0.10273}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AM.js index fe86303947bd69..83ffbac1b5e140 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AM.js @@ -1 +1 @@ -module.exports={C:{"43":0.00686,"45":0.00686,"52":38.11579,"56":0.01373,"78":0.01373,"83":0.00686,"91":0.00686,"95":0.01373,"96":0.00686,"97":0.22651,"98":0.45989,"99":0.00686,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 88 89 90 92 93 94 100 3.5 3.6"},D:{"22":0.02059,"47":0.02059,"49":0.0755,"51":0.05491,"63":0.01373,"70":0.01373,"74":0.02746,"75":0.03432,"76":0.02746,"77":0.00686,"78":0.02059,"79":0.02059,"80":0.01373,"83":0.01373,"84":0.00686,"85":0.03432,"86":0.04118,"87":0.02746,"88":0.02059,"89":0.02746,"90":0.02746,"91":0.02746,"92":0.02746,"93":0.01373,"94":0.02746,"95":0.03432,"96":0.15101,"97":0.28142,"98":5.49806,"99":18.30629,"100":0.15101,"101":0.00686,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 69 71 72 73 81 102 103"},F:{"69":0.01373,"74":0.01373,"79":0.00686,"82":0.00686,"83":0.12355,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.02059,"86":0.00686,"97":0.00686,"98":0.15101,"99":0.67954,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88 89 90 91 92 93 94 95 96"},E:{"4":0,"14":0.06864,"15":0.0961,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.08923,"12.1":0.00686,"13.1":0.06864,"14.1":0.1716,"15.1":0.13728,"15.2-15.3":0.13728,"15.4":0.18533},G:{"8":0.00208,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01592,"6.0-6.1":0,"7.0-7.1":0.009,"8.1-8.4":0.00554,"9.0-9.2":0,"9.3":0.10937,"10.0-10.2":0.00208,"10.3":0.04915,"11.0-11.2":0.01315,"11.3-11.4":0.02907,"12.0-12.1":0.018,"12.2-12.5":0.42573,"13.0-13.1":0.01038,"13.2":0.00623,"13.3":0.03115,"13.4-13.7":0.11007,"14.0-14.4":0.48734,"14.5-14.8":1.14912,"15.0-15.1":0.45896,"15.2-15.3":3.43697,"15.4":0.54964},P:{"4":0.02147,"5.0-5.4":0.27121,"6.2-6.4":0.01039,"7.2-7.4":0.06441,"8.2":0.03061,"9.2":0.01039,"10.1":0.05102,"11.1-11.2":0.05368,"12.0":0.01074,"13.0":0.04294,"14.0":0.08589,"15.0":0.04294,"16.0":1.17019},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00013,"4.2-4.3":0.00099,"4.4":0,"4.4.3-4.4.4":0.00515},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04118,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":23.0242},S:{"2.5":0},R:{_:"0"},M:{"0":0.05016},Q:{"10.4":0},O:{"0":0.07524},H:{"0":0.10091}}; +module.exports={C:{"44":0.01354,"52":35.02281,"56":0.01354,"73":0.04061,"77":0.01354,"78":0.02031,"91":0.01354,"98":0.05415,"99":0.16246,"100":0.64306,"101":0.00677,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"22":0.02031,"47":0.02031,"49":0.04061,"63":0.00677,"70":0.00677,"71":0.01354,"73":0.01354,"74":0.04738,"75":0.01354,"76":0.02708,"78":0.01354,"79":0.05415,"80":0.02031,"81":0.01354,"84":0.01354,"85":0.04738,"86":0.07446,"87":0.07446,"88":0.02031,"89":0.02708,"90":0.03385,"91":0.02031,"92":0.03385,"93":0.01354,"94":0.01354,"95":0.03385,"96":0.05415,"97":0.06092,"98":0.15569,"99":0.17599,"100":5.49643,"101":18.4726,"102":2.07131,"103":0.01354,"104":0.00677,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 69 72 77 83"},F:{"85":0.29784,"86":0.3723,"87":0.04061,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"100":0.14215,"101":0.81228,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99"},E:{"4":0,"13":0.01354,"14":0.13538,"15":0.03385,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 12.1","5.1":0.05415,"11.1":0.00677,"13.1":0.07446,"14.1":0.14215,"15.1":0.12861,"15.2-15.3":0.06769,"15.4":0.47383,"15.5":0.08123},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00227,"6.0-6.1":0.00152,"7.0-7.1":0.0091,"8.1-8.4":0.00076,"9.0-9.2":0,"9.3":0.1001,"10.0-10.2":0.00227,"10.3":0.04019,"11.0-11.2":0.00986,"11.3-11.4":0.01592,"12.0-12.1":0.01517,"12.2-12.5":0.42844,"13.0-13.1":0.01062,"13.2":0.00607,"13.3":0.02654,"13.4-13.7":0.11829,"14.0-14.4":0.59071,"14.5-14.8":0.84626,"15.0-15.1":0.23431,"15.2-15.3":0.7128,"15.4":4.40873},P:{"4":0.12391,"5.0-5.4":0.03112,"6.2-6.4":0.03112,"7.2-7.4":0.04404,"8.2":0.10375,"9.2":0.01033,"10.1":0.03112,"11.1-11.2":0.03303,"12.0":0.02065,"13.0":0.03303,"14.0":0.07707,"15.0":0.04404,"16.0":0.48445},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00031,"4.2-4.3":0.00169,"4.4":0,"4.4.3-4.4.4":0.01415},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.088,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00969},N:{_:"10 11"},L:{"0":23.26653},S:{"2.5":0},R:{_:"0"},M:{"0":0.04847},Q:{"10.4":0},O:{"0":0.05493},H:{"0":0.17436}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AO.js index c2aea24f9c8fed..e6eb6543fdb458 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AO.js @@ -1 +1 @@ -module.exports={C:{"41":0.01648,"43":0.00412,"52":0.03297,"72":0.00824,"78":0.00824,"82":0.00824,"89":0.00824,"91":0.02473,"95":0.02473,"96":0.03297,"97":0.2349,"98":0.67997,"99":0.00412,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 83 84 85 86 87 88 90 92 93 94 100 3.5 3.6"},D:{"11":0.00412,"26":0.00412,"33":0.01648,"34":0.02061,"40":0.03709,"42":0.01236,"43":0.04533,"46":0.01648,"47":0.01236,"49":0.01236,"59":0.01648,"63":0.04945,"65":0.00824,"66":0.00824,"67":0.02473,"68":0.01236,"69":0.02061,"70":0.00412,"71":0.00824,"72":0.00824,"74":0.01236,"75":0.02473,"76":0.00412,"77":0.01236,"78":0.01236,"79":0.09478,"80":0.04121,"81":0.13187,"83":0.02061,"84":0.02061,"85":0.02061,"86":0.26787,"87":0.22253,"88":0.03297,"89":0.0989,"90":0.03297,"91":0.06182,"92":0.05357,"93":0.02473,"94":0.02885,"95":0.02473,"96":0.22253,"97":0.37089,"98":3.72951,"99":15.6598,"100":0.27611,"101":0.00412,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 35 36 37 38 39 41 44 45 48 50 51 52 53 54 55 56 57 58 60 61 62 64 73 102 103"},F:{"54":0.00412,"71":0.00412,"79":0.00412,"80":0.00412,"82":0.02061,"83":0.32144,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03709,"13":0.03709,"14":0.05769,"15":0.00824,"16":0.01236,"17":0.01648,"18":0.17308,"84":0.02061,"85":0.00824,"86":0.00824,"89":0.04121,"90":0.01648,"91":0.00412,"92":0.02473,"93":0.00824,"95":0.01648,"96":0.04121,"97":0.07006,"98":1.02613,"99":2.81052,_:"79 80 81 83 87 88 94"},E:{"4":0,"13":0.03297,"14":0.02061,"15":0.00824,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 9.1","7.1":0.04533,"10.1":0.00824,"11.1":0.03297,"12.1":0.01236,"13.1":0.04533,"14.1":0.08654,"15.1":0.02061,"15.2-15.3":0.07418,"15.4":0.05357},G:{"8":0.002,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.002,"7.0-7.1":0.03501,"8.1-8.4":0.03401,"9.0-9.2":0.005,"9.3":0.09704,"10.0-10.2":0.01401,"10.3":0.13406,"11.0-11.2":0.05702,"11.3-11.4":0.03301,"12.0-12.1":0.05102,"12.2-12.5":2.88421,"13.0-13.1":0.005,"13.2":0.01,"13.3":0.10104,"13.4-13.7":0.20609,"14.0-14.4":0.61726,"14.5-14.8":1.01242,"15.0-15.1":0.89537,"15.2-15.3":3.31639,"15.4":0.4882},P:{"4":1.3469,"5.0-5.4":0.27121,"6.2-6.4":0.01039,"7.2-7.4":0.29591,"8.2":0.03061,"9.2":0.02041,"10.1":0.05102,"11.1-11.2":0.09183,"12.0":0.03061,"13.0":0.24489,"14.0":0.18367,"15.0":0.10204,"16.0":1.15303},I:{"0":0,"3":0,"4":0.00211,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02231,"4.2-4.3":0.06061,"4.4":0,"4.4.3-4.4.4":0.17953},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.26787,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01764},N:{_:"10 11"},L:{"0":52.07026},S:{"2.5":0},R:{_:"0"},M:{"0":0.18813},Q:{"10.4":0},O:{"0":0.35862},H:{"0":1.81447}}; +module.exports={C:{"41":0.0128,"47":0.0128,"52":0.05974,"54":0.0128,"64":0.00853,"68":0.00427,"78":0.00853,"82":0.00427,"91":0.00853,"95":0.0128,"97":0.0256,"99":0.26882,"100":0.81926,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 48 49 50 51 53 55 56 57 58 59 60 61 62 63 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 83 84 85 86 87 88 89 90 92 93 94 96 98 101 102 103 3.5 3.6"},D:{"11":0.0128,"26":0.00853,"33":0.00853,"36":0.00427,"40":0.00853,"42":0.0128,"43":0.06401,"46":0.01707,"47":0.00853,"49":0.05547,"53":0.09814,"58":0.02987,"62":0.00427,"63":0.04267,"65":0.00853,"66":0.00427,"67":0.00427,"68":0.00853,"69":0.04267,"70":0.00427,"71":0.00853,"72":0.03414,"73":0.00853,"74":0.02134,"75":0.02134,"76":0.00853,"77":0.00853,"78":0.02134,"79":0.06401,"80":0.00427,"81":0.08961,"83":0.02987,"84":0.02134,"85":0.0256,"86":0.14935,"87":0.15788,"88":0.06401,"89":0.08534,"90":0.06827,"91":0.30296,"92":0.03414,"93":0.0384,"94":0.04267,"95":0.0512,"96":0.04694,"97":0.25602,"98":0.08107,"99":0.4011,"100":3.32399,"101":14.52487,"102":1.12649,"103":0.06827,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 35 37 38 39 41 44 45 48 50 51 52 54 55 56 57 59 60 61 64 104"},F:{"32":0.0128,"42":0.00853,"71":0.00853,"79":0.0128,"84":0.04694,"85":0.74246,"86":0.88327,"87":0.06827,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03414,"13":0.13228,"14":0.08107,"15":0.00853,"16":0.00427,"17":0.0256,"18":0.08961,"80":0.00427,"84":0.02134,"85":0.00853,"88":0.00853,"89":0.0256,"90":0.02134,"92":0.0128,"93":0.0256,"94":0.00853,"95":0.0128,"96":0.02134,"97":0.04694,"98":0.07254,"99":0.0384,"100":0.23042,"101":3.38373,_:"79 81 83 86 87 91"},E:{"4":0,"13":0.02134,"14":0.00853,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 9.1","7.1":0.01707,"10.1":0.00427,"11.1":0.00853,"12.1":0.0128,"13.1":0.05547,"14.1":0.06401,"15.1":0.00853,"15.2-15.3":0.0256,"15.4":0.21762,"15.5":0.05974},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00089,"6.0-6.1":0.00178,"7.0-7.1":0.13415,"8.1-8.4":0.00977,"9.0-9.2":0.00267,"9.3":0.3296,"10.0-10.2":0.008,"10.3":0.39089,"11.0-11.2":0.14481,"11.3-11.4":0.04442,"12.0-12.1":0.06574,"12.2-12.5":2.37824,"13.0-13.1":0.01333,"13.2":0.04264,"13.3":0.05597,"13.4-13.7":0.18834,"14.0-14.4":0.39445,"14.5-14.8":0.7658,"15.0-15.1":0.60589,"15.2-15.3":0.80578,"15.4":2.49728},P:{"4":1.05824,"5.0-5.4":0.03112,"6.2-6.4":0.03112,"7.2-7.4":0.2905,"8.2":0.10375,"9.2":0.0415,"10.1":0.03112,"11.1-11.2":0.06225,"12.0":0.03112,"13.0":0.14525,"14.0":0.17637,"15.0":0.05187,"16.0":0.64325},I:{"0":0,"3":0,"4":0.00068,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01766,"4.2-4.3":0.0484,"4.4":0,"4.4.3-4.4.4":0.19698},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14508,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.02293},N:{_:"10 11"},L:{"0":54.82583},S:{"2.5":0.0172},R:{_:"0"},M:{"0":0.10319},Q:{"10.4":0},O:{"0":0.47011},H:{"0":1.87253}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AR.js index 0ff8beca2f2d54..4f93bc6dade6ca 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AR.js @@ -1 +1 @@ -module.exports={C:{"52":0.09838,"53":0.00394,"59":0.01181,"65":0.00394,"66":0.00787,"68":0.00787,"72":0.00394,"73":0.00394,"78":0.01968,"79":0.00394,"80":0.00394,"81":0.00394,"86":0.05509,"87":0.01181,"88":0.03148,"89":0.01181,"90":0.02361,"91":0.04329,"92":0.00394,"93":0.00787,"94":0.01181,"95":0.01574,"96":0.02361,"97":0.57845,"98":0.9444,"99":0.00787,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 54 55 56 57 58 60 61 62 63 64 67 69 70 71 74 75 76 77 82 83 84 85 100 3.5 3.6"},D:{"34":0.00787,"38":0.01968,"47":0.00787,"49":0.27939,"55":0.00787,"58":0.00787,"63":0.01181,"65":0.00787,"66":0.03935,"67":0.00394,"68":0.00394,"69":0.00787,"70":0.00787,"71":0.01181,"72":0.00787,"73":0.00787,"74":0.01181,"75":0.01181,"76":0.00787,"77":0.01181,"78":0.01181,"79":0.03935,"80":0.01968,"81":0.03148,"83":0.02361,"84":0.02361,"85":0.01968,"86":0.03542,"87":0.05509,"88":0.01968,"89":0.05509,"90":0.03148,"91":0.0787,"92":0.04722,"93":0.07083,"94":0.0787,"95":0.0669,"96":0.22823,"97":0.34235,"98":7.00037,"99":22.60264,"100":0.01181,"101":0.00787,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 53 54 56 57 59 60 61 62 64 102 103"},F:{"28":0.00394,"36":0.00787,"82":0.00787,"83":0.86964,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00394,"17":0.01181,"18":0.01574,"92":0.01181,"96":0.01574,"97":0.02361,"98":0.38957,"99":1.4953,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.00787,"14":0.03542,"15":0.01968,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.01181,"10.1":0.00394,"11.1":0.01574,"12.1":0.01181,"13.1":0.05903,"14.1":0.13773,"15.1":0.03542,"15.2-15.3":0.05509,"15.4":0.02755},G:{"8":0.00038,"3.2":0.00075,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01429,"6.0-6.1":0.00075,"7.0-7.1":0.00376,"8.1-8.4":0.00113,"9.0-9.2":0.00075,"9.3":0.02934,"10.0-10.2":0.00113,"10.3":0.0237,"11.0-11.2":0.00451,"11.3-11.4":0.04213,"12.0-12.1":0.00527,"12.2-12.5":0.18282,"13.0-13.1":0.00715,"13.2":0.00188,"13.3":0.01505,"13.4-13.7":0.05492,"14.0-14.4":0.11398,"14.5-14.8":0.51499,"15.0-15.1":0.17718,"15.2-15.3":2.43088,"15.4":0.13354},P:{"4":0.13508,"5.0-5.4":0.27121,"6.2-6.4":0.01039,"7.2-7.4":0.25977,"8.2":0.03061,"9.2":0.01039,"10.1":0.05102,"11.1-11.2":0.07274,"12.0":0.04156,"13.0":0.12469,"14.0":0.12469,"15.0":0.09352,"16.0":2.03662},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00194,"4.2-4.3":0.00348,"4.4":0,"4.4.3-4.4.4":0.03097},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.16134,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":51.57275},S:{"2.5":0},R:{_:"0"},M:{"0":0.12737},Q:{"10.4":0},O:{"0":0.03033},H:{"0":0.18948}}; +module.exports={C:{"52":0.07898,"59":0.01185,"65":0.00395,"66":0.0079,"68":0.0079,"72":0.00395,"73":0.0079,"78":0.01975,"79":0.00395,"80":0.01185,"81":0.0079,"86":0.03554,"87":0.00395,"88":0.02369,"89":0.01185,"90":0.01975,"91":0.13032,"92":0.00395,"94":0.0079,"95":0.0079,"96":0.0079,"97":0.01185,"98":0.02369,"99":0.32382,"100":1.18865,"101":0.01185,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 67 69 70 71 74 75 76 77 82 83 84 85 93 102 103 3.5 3.6"},D:{"22":0.00395,"28":0.00395,"34":0.0079,"38":0.0158,"47":0.0079,"49":0.25274,"57":0.0079,"58":0.0079,"63":0.00395,"65":0.00395,"66":0.04739,"67":0.00395,"68":0.00395,"69":0.0158,"70":0.0079,"71":0.0079,"72":0.00395,"73":0.0079,"74":0.0079,"75":0.0079,"76":0.01185,"77":0.0079,"78":0.0158,"79":0.03949,"80":0.01975,"81":0.03159,"83":0.02369,"84":0.02764,"85":0.02369,"86":0.04344,"87":0.04344,"88":0.0158,"89":0.03159,"90":0.02369,"91":0.06318,"92":0.03554,"93":0.02369,"94":0.03159,"95":0.04739,"96":0.10267,"97":0.09083,"98":0.11057,"99":0.30802,"100":5.3272,"101":22.3,"102":1.9587,"103":0.0079,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 59 60 61 62 64 104"},F:{"28":0.0079,"36":0.0079,"79":0.00395,"84":0.0079,"85":0.83324,"86":0.76216,"87":0.01975,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.0079,"16":0.00395,"17":0.0079,"18":0.01185,"84":0.00395,"92":0.0079,"96":0.0079,"97":0.0079,"98":0.00395,"99":0.02764,"100":0.09083,"101":1.97055,_:"12 13 14 79 80 81 83 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.0079,"14":0.02764,"15":0.01185,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01185,"12.1":0.0079,"13.1":0.04739,"14.1":0.11452,"15.1":0.03159,"15.2-15.3":0.02369,"15.4":0.31592,"15.5":0.03949},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01193,"6.0-6.1":0.00199,"7.0-7.1":0.00199,"8.1-8.4":0.0008,"9.0-9.2":0.00119,"9.3":0.02387,"10.0-10.2":0.0008,"10.3":0.02228,"11.0-11.2":0.00239,"11.3-11.4":0.04495,"12.0-12.1":0.00398,"12.2-12.5":0.1655,"13.0-13.1":0.00557,"13.2":0.00278,"13.3":0.01512,"13.4-13.7":0.04535,"14.0-14.4":0.10542,"14.5-14.8":0.34293,"15.0-15.1":0.07996,"15.2-15.3":0.24268,"15.4":2.85403},P:{"4":0.12391,"5.0-5.4":0.03112,"6.2-6.4":0.03112,"7.2-7.4":0.24783,"8.2":0.10375,"9.2":0.01033,"10.1":0.03112,"11.1-11.2":0.06196,"12.0":0.02065,"13.0":0.10326,"14.0":0.10326,"15.0":0.05163,"16.0":0.8674},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00164,"4.2-4.3":0.00296,"4.4":0,"4.4.3-4.4.4":0.02565},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.17376,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":53.7998},S:{"2.5":0},R:{_:"0"},M:{"0":0.11497},Q:{"10.4":0},O:{"0":0.03026},H:{"0":0.19478}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AS.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AS.js index b20e2f0990a03e..8598162ab4514d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AS.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AS.js @@ -1 +1 @@ -module.exports={C:{"93":0.01458,"97":0.04375,"98":0.17986,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 94 95 96 99 100 3.5 3.6"},D:{"23":0.00486,"29":0.00486,"38":0.00486,"53":0.02431,"72":0.01458,"75":0.02431,"76":0.04861,"79":0.44721,"80":0.31597,"83":0.02917,"84":0.00972,"85":0.02917,"86":0.00972,"87":0.04861,"88":0.10208,"91":0.05833,"92":0.10208,"93":0.15555,"94":0.00972,"95":0.00486,"96":0.10694,"97":0.52499,"98":10.42685,"99":13.99482,"100":0.01458,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 77 78 81 89 90 101 102 103"},F:{"82":0.04861,"83":0.03403,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00972,"95":0.01458,"97":0.01944,"98":0.55902,"99":1.64302,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 96"},E:{"4":0,"14":0.16527,"15":0.00972,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 12.1","10.1":0.03403,"11.1":0.00972,"13.1":0.10208,"14.1":0.3743,"15.1":1.41941,"15.2-15.3":1.01595,"15.4":1.82288},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00838,"9.0-9.2":0,"9.3":0.18851,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.00838,"11.3-11.4":0.0377,"12.0-12.1":0.00419,"12.2-12.5":0.36446,"13.0-13.1":0,"13.2":0,"13.3":0.00419,"13.4-13.7":0.12567,"14.0-14.4":0.28486,"14.5-14.8":1.65053,"15.0-15.1":2.20769,"15.2-15.3":33.47978,"15.4":3.49795},P:{"4":0.01063,"5.0-5.4":0.27121,"6.2-6.4":0.01039,"7.2-7.4":0.03189,"8.2":0.04018,"9.2":0.05196,"10.1":0.02078,"11.1-11.2":0.2126,"12.0":0.05196,"13.0":0.01063,"14.0":0.02126,"15.0":0.1247,"16.0":0.48898},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01458,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":9.70208},S:{"2.5":0.02056},R:{_:"0"},M:{"0":0.01542},Q:{"10.4":0},O:{"0":0.06167},H:{"0":0.00973}}; +module.exports={C:{"99":0.0606,"100":0.2626,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 101 102 103 3.5 3.6"},D:{"49":0.0101,"75":0.01515,"76":0.03535,"79":0.46965,"80":0.0404,"83":0.0101,"85":0.01515,"86":0.10605,"87":0.03535,"91":0.0505,"92":0.0707,"93":0.1212,"94":0.02525,"95":0.0101,"96":0.0202,"97":0.0101,"98":0.1111,"99":0.3232,"100":9.44855,"101":13.65015,"102":0.26765,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 77 78 81 84 88 89 90 103 104"},F:{"69":0.00505,"85":0.2121,"86":0.09595,"87":0.02525,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"85":0.00505,"97":0.0101,"98":0.0101,"99":0.0202,"100":0.2222,"101":1.70185,_:"12 13 14 15 16 17 18 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96"},E:{"4":0,"14":0.1515,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 9.1 10.1 11.1","7.1":0.00505,"12.1":0.01515,"13.1":0.03535,"14.1":0.26765,"15.1":0.78275,"15.2-15.3":0.45955,"15.4":15.6651,"15.5":2.18665},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.12226,"9.0-9.2":0,"9.3":0.45954,"10.0-10.2":0,"10.3":0.01686,"11.0-11.2":0.00422,"11.3-11.4":0.00843,"12.0-12.1":0,"12.2-12.5":0.1307,"13.0-13.1":0,"13.2":0.00422,"13.3":0.01265,"13.4-13.7":0.05481,"14.0-14.4":0.1855,"14.5-14.8":0.51435,"15.0-15.1":0.89379,"15.2-15.3":2.76146,"15.4":36.96562},P:{"4":0.02254,"5.0-5.4":0.24206,"6.2-6.4":0.01042,"7.2-7.4":0.14587,"8.2":0.05043,"9.2":0.04168,"10.1":0.01042,"11.1-11.2":0.02254,"12.0":0.03126,"13.0":0.11461,"14.0":0.09377,"15.0":0.09377,"16.0":0.37188},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":7.88305},S:{"2.5":0.0297},R:{_:"0"},M:{"0":0.02475},Q:{"10.4":0},O:{"0":0.0297},H:{"0":0.00937}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AT.js index 3e7f4f291129f2..12b49e86eec750 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AT.js @@ -1 +1 @@ -module.exports={C:{"36":0.0106,"52":0.053,"60":0.0636,"61":0.0106,"66":0.0053,"68":0.0053,"72":0.0106,"78":0.1272,"79":0.0053,"82":0.0053,"83":0.0106,"84":0.053,"85":0.0106,"87":0.0106,"88":0.0159,"89":0.0159,"90":0.0159,"91":0.371,"92":0.0265,"93":0.0424,"94":0.3975,"95":0.053,"96":0.0742,"97":2.7878,"98":4.2082,"99":0.0159,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 62 63 64 65 67 69 70 71 73 74 75 76 77 80 81 86 100 3.5 3.6"},D:{"34":0.0053,"38":0.0159,"47":0.0106,"49":0.0424,"53":0.0106,"62":0.0053,"64":0.053,"65":0.0106,"66":0.0318,"67":0.0106,"70":0.0689,"72":0.0583,"73":0.0053,"75":0.0159,"77":0.0106,"78":0.0106,"79":0.3498,"80":0.1484,"81":0.0106,"83":0.0159,"84":0.0371,"85":0.0424,"86":0.0318,"87":0.0636,"88":0.0212,"89":0.0371,"90":0.0212,"91":0.0265,"92":0.0371,"93":1.0441,"94":0.0901,"95":0.0901,"96":0.2544,"97":0.3445,"98":5.4537,"99":14.2623,"100":0.0106,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 58 59 60 61 63 68 69 71 74 76 101 102 103"},F:{"46":0.0053,"80":0.0106,"82":0.053,"83":0.9275,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0053},B:{"17":0.0053,"18":0.0371,"88":0.0053,"89":0.0053,"90":0.0053,"92":0.0212,"93":0.0106,"94":0.0318,"95":0.0477,"96":0.0371,"97":0.0848,"98":1.6801,"99":5.4802,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 91"},E:{"4":0,"8":0.0106,"12":0.0053,"13":0.0689,"14":0.3498,"15":0.1749,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0106,"11.1":0.0583,"12.1":0.0742,"13.1":0.3604,"14.1":0.954,"15.1":0.3869,"15.2-15.3":0.4399,"15.4":0.3074},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00162,"8.1-8.4":0.00486,"9.0-9.2":0.00324,"9.3":0.06797,"10.0-10.2":0.00647,"10.3":0.06474,"11.0-11.2":0.02104,"11.3-11.4":0.0178,"12.0-12.1":0.01942,"12.2-12.5":0.3787,"13.0-13.1":0.03722,"13.2":0.02428,"13.3":0.05179,"13.4-13.7":0.18935,"14.0-14.4":0.61013,"14.5-14.8":2.28354,"15.0-15.1":1.0649,"15.2-15.3":10.58749,"15.4":0.74284},P:{"4":0.168,"5.0-5.4":0.01097,"6.2-6.4":0.01039,"7.2-7.4":0.24554,"8.2":0.03061,"9.2":0.01039,"10.1":0.05102,"11.1-11.2":0.042,"12.0":0.021,"13.0":0.105,"14.0":0.0945,"15.0":0.0945,"16.0":3.73791},I:{"0":0,"3":0,"4":0.00119,"2.1":0,"2.2":0,"2.3":0.00298,"4.1":0.00119,"4.2-4.3":0.00179,"4.4":0,"4.4.3-4.4.4":0.03515},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0053,"9":0.0106,"11":0.4028,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":23.3627},S:{"2.5":0},R:{_:"0"},M:{"0":0.6909},Q:{"10.4":0},O:{"0":0.0423},H:{"0":0.46276}}; +module.exports={C:{"48":0.00999,"52":0.06494,"56":0.005,"60":0.13986,"61":0.00999,"62":0.00999,"66":0.17982,"68":0.00999,"72":0.01998,"78":0.12488,"79":0.00999,"80":0.005,"81":0.00999,"82":0.005,"83":0.005,"84":0.00999,"85":0.00999,"87":0.00999,"88":0.01998,"89":0.01499,"90":0.005,"91":0.3996,"92":0.005,"93":0.03996,"94":0.39461,"95":0.03497,"96":0.01998,"97":0.03996,"98":0.08492,"99":1.34865,"100":6.24875,"101":0.01499,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 63 64 65 67 69 70 71 73 74 75 76 77 86 102 103 3.5 3.6"},D:{"34":0.00999,"38":0.00999,"47":0.01998,"49":0.03497,"53":0.00999,"65":0.00999,"67":0.01499,"69":0.005,"70":0.00999,"75":0.01499,"76":0.00999,"77":0.00999,"78":0.01499,"79":0.40959,"80":0.19481,"81":0.01998,"83":0.02997,"84":0.04496,"85":0.04995,"86":0.03497,"87":0.09491,"88":0.00999,"89":0.03996,"90":0.01998,"91":0.04496,"92":0.06494,"93":0.01998,"94":0.05994,"95":0.07992,"96":0.24975,"97":0.20979,"98":0.23477,"99":0.21978,"100":3.67133,"101":14.88011,"102":1.23876,"103":0.005,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 58 59 60 61 62 63 64 66 68 71 72 73 74 104"},F:{"46":0.005,"69":0.01499,"80":0.00999,"83":0.005,"84":0.00999,"85":1.63337,"86":0.74426,"87":0.03497,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.02997,"85":0.00999,"88":0.005,"89":0.005,"92":0.02498,"94":0.005,"95":0.04496,"96":0.02498,"97":0.03497,"98":0.01998,"99":0.14985,"100":0.41958,"101":8.0969,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 90 91 93"},E:{"4":0,"12":0.005,"13":0.05994,"14":0.24476,"15":0.09491,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02498,"11.1":0.06494,"12.1":0.08991,"13.1":0.32468,"14.1":0.74925,"15.1":0.21479,"15.2-15.3":0.19481,"15.4":2.75724,"15.5":0.33966},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00347,"8.1-8.4":0,"9.0-9.2":0.00173,"9.3":0.06065,"10.0-10.2":0,"10.3":0.07104,"11.0-11.2":0.01733,"11.3-11.4":0.02426,"12.0-12.1":0.01733,"12.2-12.5":0.4124,"13.0-13.1":0.0156,"13.2":0.02253,"13.3":0.05025,"13.4-13.7":0.14209,"14.0-14.4":0.49558,"14.5-14.8":1.49886,"15.0-15.1":0.51464,"15.2-15.3":1.29786,"15.4":12.66669},P:{"4":0.17674,"5.0-5.4":0.02178,"6.2-6.4":0.03112,"7.2-7.4":0.19348,"8.2":0.10375,"9.2":0.02079,"10.1":0.03112,"11.1-11.2":0.03119,"12.0":0.03119,"13.0":0.09357,"14.0":0.08317,"15.0":0.08317,"16.0":1.5595},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00239,"4.2-4.3":0.00359,"4.4":0,"4.4.3-4.4.4":0.03406},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.2997,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":26.59496},S:{"2.5":0},R:{_:"0"},M:{"0":0.78579},Q:{"10.4":0},O:{"0":0.06006},H:{"0":0.43593}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AU.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AU.js index 356c0a8c06f1fb..a16db34fbebd2c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AU.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AU.js @@ -1 +1 @@ -module.exports={C:{"34":0.01194,"48":0.00597,"51":0.01791,"52":0.04179,"53":0.01791,"54":0.02388,"55":0.01791,"56":0.01194,"57":0.01194,"66":0.00597,"78":0.07164,"80":0.00597,"84":0.01194,"85":0.01194,"87":0.03582,"88":0.01194,"89":0.01194,"90":0.01194,"91":0.05373,"93":0.01791,"94":0.14925,"95":0.02388,"96":0.03582,"97":0.97311,"98":1.39101,"99":0.01194,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 81 82 83 86 92 100 3.5 3.6"},D:{"25":0.01791,"26":0.01194,"34":0.02985,"38":0.09552,"41":0.00597,"43":0.00597,"44":0.00597,"45":0.00597,"46":0.00597,"47":0.01194,"48":0.00597,"49":0.06567,"51":0.00597,"52":0.00597,"53":0.02985,"55":0.00597,"56":0.01194,"57":0.01194,"58":0.00597,"59":0.04776,"60":0.02985,"61":0.00597,"62":0.00597,"63":0.01194,"64":0.01791,"65":0.02388,"66":0.01194,"67":0.01791,"68":0.01791,"69":0.01791,"70":0.01791,"71":0.00597,"72":0.01791,"73":0.01194,"74":0.02388,"75":0.01194,"76":0.01791,"77":0.00597,"78":0.02388,"79":0.2985,"80":0.07164,"81":0.04179,"83":0.04179,"84":0.04776,"85":0.0597,"86":0.07761,"87":0.16716,"88":0.02985,"89":0.02985,"90":0.02985,"91":0.06567,"92":0.1791,"93":0.57312,"94":0.15522,"95":0.16119,"96":0.50148,"97":0.97311,"98":11.2833,"99":22.84122,"100":0.02985,"101":0.01791,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 29 30 31 32 33 35 36 37 39 40 42 50 54 102 103"},F:{"36":0.00597,"46":0.05373,"82":0.00597,"83":0.20895,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.02388,"84":0.00597,"85":0.01194,"86":0.01791,"89":0.01194,"90":0.00597,"91":0.00597,"92":0.01791,"94":0.01791,"95":0.04776,"96":0.04179,"97":0.13134,"98":1.75518,"99":5.38494,_:"12 13 14 15 16 17 79 80 81 83 87 88 93"},E:{"4":0,"12":0.01194,"13":0.10149,"14":0.4776,"15":0.2388,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01194,"10.1":0.02388,"11.1":0.06567,"12.1":0.12537,"13.1":0.53133,"14.1":1.791,"15.1":0.47163,"15.2-15.3":0.5373,"15.4":0.2388},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01463,"6.0-6.1":0.01045,"7.0-7.1":0.01254,"8.1-8.4":0.02091,"9.0-9.2":0.01882,"9.3":0.20697,"10.0-10.2":0.023,"10.3":0.24042,"11.0-11.2":0.06899,"11.3-11.4":0.07735,"12.0-12.1":0.06481,"12.2-12.5":1.01602,"13.0-13.1":0.02927,"13.2":0.01672,"13.3":0.09826,"13.4-13.7":0.26341,"14.0-14.4":0.82578,"14.5-14.8":3.01251,"15.0-15.1":1.12682,"15.2-15.3":13.16641,"15.4":0.58954},P:{"4":0.64739,"5.0-5.4":0.01097,"6.2-6.4":0.01039,"7.2-7.4":0.24554,"8.2":0.03061,"9.2":0.01039,"10.1":0.05102,"11.1-11.2":0.02195,"12.0":0.02195,"13.0":0.07681,"14.0":0.08778,"15.0":0.08778,"16.0":2.5676},I:{"0":0,"3":0,"4":0.00276,"2.1":0,"2.2":0.00138,"2.3":0.00207,"4.1":0.00276,"4.2-4.3":0.0076,"4.4":0,"4.4.3-4.4.4":0.03178},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0297,"9":0.0198,"11":0.35645,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":15.62472},S:{"2.5":0},R:{_:"0"},M:{"0":0.38285},Q:{"10.4":0.00806},O:{"0":0.06851},H:{"0":0.12972}}; +module.exports={C:{"34":0.00557,"48":0.00557,"51":0.07235,"52":0.08904,"53":0.07235,"54":0.06122,"55":0.07235,"56":0.05565,"57":0.05009,"58":0.02226,"59":0.0167,"66":0.01113,"68":0.00557,"72":0.00557,"77":0.00557,"78":0.07235,"79":0.02226,"80":0.02783,"81":0.02226,"82":0.02226,"83":0.0167,"84":0.00557,"85":0.00557,"87":0.00557,"88":0.01113,"89":0.00557,"91":0.06122,"93":0.0167,"94":0.18365,"95":0.01113,"96":0.01113,"97":0.02226,"98":0.03339,"99":0.51198,"100":1.98671,"101":0.0167,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 60 61 62 63 64 65 67 69 70 71 73 74 75 76 86 90 92 102 103 3.5 3.6"},D:{"26":0.0167,"34":0.02783,"38":0.07791,"39":0.02226,"40":0.02226,"41":0.02226,"42":0.02226,"43":0.02226,"44":0.02226,"45":0.02783,"46":0.02783,"47":0.03339,"48":0.02783,"49":0.06678,"50":0.0167,"51":0.02226,"52":0.0167,"53":0.03339,"54":0.0167,"55":0.02226,"56":0.02783,"57":0.02783,"58":0.03339,"59":0.06678,"60":0.07791,"61":0.03339,"62":0.04452,"63":0.02783,"64":0.02783,"65":0.04452,"66":0.01113,"67":0.0167,"68":0.0167,"69":0.02226,"70":0.00557,"71":0.00557,"72":0.01113,"73":0.01113,"74":0.02226,"75":0.0167,"76":0.02226,"77":0.01113,"78":0.02226,"79":0.22817,"80":0.07235,"81":0.04452,"83":0.10574,"84":0.21147,"85":0.17808,"86":0.23373,"87":0.24486,"88":0.02226,"89":0.03339,"90":0.0167,"91":0.04452,"92":0.11687,"93":0.03896,"94":0.07235,"95":0.07791,"96":0.30051,"97":0.25043,"98":0.35616,"99":0.74015,"100":6.66131,"101":21.00788,"102":1.113,"103":0.0167,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 104"},F:{"28":0.00557,"46":0.03896,"68":0.01113,"70":0.01113,"71":0.01113,"72":0.00557,"85":0.32834,"86":0.23373,"87":0.02226,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00557,"18":0.03896,"83":0.00557,"84":0.0167,"85":0.0167,"86":0.0167,"89":0.00557,"90":0.00557,"92":0.02226,"94":0.00557,"95":0.02783,"96":0.03339,"97":0.02783,"98":0.02226,"99":0.11687,"100":0.42294,"101":6.1382,_:"12 13 14 15 17 79 80 81 87 88 91 93"},E:{"4":0,"12":0.0167,"13":0.10574,"14":0.40068,"15":0.18365,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01113,"10.1":0.02783,"11.1":0.05565,"12.1":0.11687,"13.1":0.51198,"14.1":1.42464,"15.1":0.27269,"15.2-15.3":0.26156,"15.4":4.63008,"15.5":0.30608},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01155,"6.0-6.1":0.01155,"7.0-7.1":0.01385,"8.1-8.4":0.02309,"9.0-9.2":0.03233,"9.3":0.19858,"10.0-10.2":0.04618,"10.3":0.25631,"11.0-11.2":0.04849,"11.3-11.4":0.07158,"12.0-12.1":0.05773,"12.2-12.5":0.99984,"13.0-13.1":0.03233,"13.2":0.01616,"13.3":0.09698,"13.4-13.7":0.26785,"14.0-14.4":0.75969,"14.5-14.8":2.27907,"15.0-15.1":0.63962,"15.2-15.3":1.61175,"15.4":15.61408},P:{"4":0.35936,"5.0-5.4":0.02178,"6.2-6.4":0.03112,"7.2-7.4":0.19348,"8.2":0.10375,"9.2":0.01033,"10.1":0.03112,"11.1-11.2":0.02178,"12.0":0.02178,"13.0":0.06534,"14.0":0.07623,"15.0":0.06534,"16.0":1.11074},I:{"0":0,"3":0,"4":0.00458,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00196,"4.2-4.3":0.00523,"4.4":0,"4.4.3-4.4.4":0.02814},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.05163,"9":0.05163,"10":0.02213,"11":0.48677,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":17.56654},S:{"2.5":0},R:{_:"0"},M:{"0":0.41689},Q:{"10.4":0.01331},O:{"0":0.07096},H:{"0":0.13436}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AW.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AW.js index 2deb891687d72a..3448a68d86060e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AW.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AW.js @@ -1 +1 @@ -module.exports={C:{"52":0.00695,"70":0.00348,"78":0.01739,"91":0.00695,"96":0.01043,"97":0.58761,"98":0.57023,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 99 100 3.5 3.6"},D:{"23":0.00695,"47":0.00348,"49":0.05216,"63":0.00695,"65":0.01043,"70":0.00695,"73":0.00348,"74":0.00695,"76":0.00695,"78":0.00348,"79":0.02782,"81":0.00695,"83":0.03825,"84":0.01043,"85":0.00348,"86":0.02434,"87":0.09388,"89":0.00695,"90":0.01739,"91":0.04868,"92":0.02086,"93":0.05563,"94":0.05216,"95":0.04868,"96":0.27468,"97":0.65715,"98":5.14596,"99":12.3051,"100":0.13908,"101":0.00695,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 67 68 69 71 72 75 77 80 88 102 103"},F:{"83":0.13908,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00695,"17":0.01043,"18":0.03477,"84":0.06954,"85":0.03477,"86":0.00348,"88":0.00695,"89":0.01391,"90":0.01043,"91":0.00348,"92":0.01391,"94":0.02086,"96":0.01043,"97":0.15299,"98":1.64462,"99":5.24332,_:"12 13 14 15 79 80 81 83 87 93 95"},E:{"4":0,"12":0.00695,"13":0.06954,"14":0.37899,"15":0.1217,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01739,"12.1":0.06259,"13.1":0.29207,"14.1":0.92836,"15.1":0.34422,"15.2-15.3":0.50417,"15.4":0.30945},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04206,"10.0-10.2":0.02103,"10.3":0.1551,"11.0-11.2":0,"11.3-11.4":0.02892,"12.0-12.1":0.05258,"12.2-12.5":0.38906,"13.0-13.1":0.01314,"13.2":0.00789,"13.3":0.05258,"13.4-13.7":0.16561,"14.0-14.4":0.76235,"14.5-14.8":3.54885,"15.0-15.1":1.34856,"15.2-15.3":18.35939,"15.4":1.32753},P:{"4":0.22508,"5.0-5.4":0.27121,"6.2-6.4":0.01039,"7.2-7.4":0.24554,"8.2":0.03061,"9.2":0.01039,"10.1":0.05102,"11.1-11.2":0.15346,"12.0":0.03069,"13.0":0.14323,"14.0":0.18416,"15.0":0.17393,"16.0":7.663},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12865,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":29.9389},S:{"2.5":0},R:{_:"0"},M:{"0":0.40443},Q:{"10.4":0},O:{"0":0.01305},H:{"0":0.14821}}; +module.exports={C:{"4":0.00343,"52":0.01717,"78":0.00687,"90":0.00343,"96":0.00687,"97":0.00343,"98":0.0103,"99":0.29876,"100":0.91344,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 91 92 93 94 95 101 102 103 3.5 3.6"},D:{"29":0.00343,"49":0.04808,"52":0.00687,"55":0.0103,"59":0.00343,"63":0.00687,"67":0.00687,"70":0.00687,"72":0.04121,"77":0.00687,"78":0.00343,"79":0.04121,"80":0.00343,"81":0.00343,"83":0.01717,"84":0.0103,"85":0.05838,"87":0.0206,"88":0.0103,"89":0.03091,"90":0.00687,"91":0.04464,"92":0.00687,"93":0.04464,"94":0.02747,"95":0.0103,"96":0.09615,"97":0.08585,"98":0.14766,"99":0.37087,"100":4.35088,"101":14.01415,"102":0.82416,"103":0.00687,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 56 57 58 60 61 62 64 65 66 68 69 71 73 74 75 76 86 104"},F:{"84":0.00343,"85":0.27815,"86":0.21978,"87":0.0103,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.01717,"15":0.00343,"16":0.00687,"18":0.01374,"84":0.05838,"85":0.01717,"87":0.00343,"88":0.00343,"96":0.00343,"97":0.02404,"98":0.00687,"99":0.07898,"100":0.32966,"101":4.99304,_:"12 14 17 79 80 81 83 86 89 90 91 92 93 94 95"},E:{"4":0,"11":0.00343,"12":0.00343,"13":0.05494,"14":0.25068,"15":0.06181,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0103,"11.1":0.02404,"12.1":0.04121,"13.1":0.22664,"14.1":0.61469,"15.1":0.12706,"15.2-15.3":0.10645,"15.4":3.01162,"15.5":0.23008},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08472,"10.0-10.2":0.00529,"10.3":0.04501,"11.0-11.2":0,"11.3-11.4":0.01853,"12.0-12.1":0.01853,"12.2-12.5":0.39447,"13.0-13.1":0.00529,"13.2":0,"13.3":0.02118,"13.4-13.7":0.17208,"14.0-14.4":0.51889,"14.5-14.8":2.62095,"15.0-15.1":0.49507,"15.2-15.3":1.99086,"15.4":20.0701},P:{"4":0.15275,"5.0-5.4":0.03112,"6.2-6.4":0.03112,"7.2-7.4":0.19348,"8.2":0.10375,"9.2":0.01033,"10.1":0.03112,"11.1-11.2":0.1833,"12.0":0.1222,"13.0":0.07128,"14.0":0.2444,"15.0":0.11202,"16.0":2.34217},I:{"0":0,"3":0,"4":0.00079,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00053,"4.4":0,"4.4.3-4.4.4":0.00525},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04808,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":31.3438},S:{"2.5":0},R:{_:"0"},M:{"0":0.32173},Q:{"10.4":0},O:{"0":0.0394},H:{"0":0.11189}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AX.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AX.js index 9370a3eaf3cf61..f35a36afc1ad30 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AX.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AX.js @@ -1 +1 @@ -module.exports={C:{"52":0.01866,"61":0.01244,"65":0.00622,"78":0.08086,"91":0.01244,"92":0.00622,"93":0.05598,"95":0.01866,"96":0.32966,"97":1.72294,"98":3.0478,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 94 99 100 3.5 3.6"},D:{"49":0.05598,"58":0.11196,"76":0.47272,"84":0.03732,"87":0.01866,"89":0.00622,"92":0.04976,"93":0.01244,"94":0.01244,"95":0.00622,"96":0.10574,"97":0.45406,"98":9.93334,"99":25.8752,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 83 85 86 88 90 91 100 101 102 103"},F:{"83":0.2488,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"97":0.0622,"98":2.5191,"99":8.40322,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96"},E:{"4":0,"12":0.03732,"13":0.0311,"14":0.88324,"15":0.60334,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.08708,"11.1":0.32344,"12.1":0.08086,"13.1":0.51004,"14.1":2.59374,"15.1":0.38564,"15.2-15.3":0.24258,"15.4":0.20526},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05001,"10.0-10.2":0.00625,"10.3":1.05021,"11.0-11.2":0.00625,"11.3-11.4":0.01161,"12.0-12.1":1.11808,"12.2-12.5":1.22435,"13.0-13.1":0.08752,"13.2":0.00268,"13.3":0.10627,"13.4-13.7":0.06698,"14.0-14.4":0.30363,"14.5-14.8":1.12701,"15.0-15.1":0.2304,"15.2-15.3":3.40336,"15.4":0.13753},P:{"4":0.03635,"5.0-5.4":0.27121,"6.2-6.4":0.39174,"7.2-7.4":0.03635,"8.2":0.04018,"9.2":0.34152,"10.1":0.06027,"11.1-11.2":0.21094,"12.0":0.03635,"13.0":0.09694,"14.0":0.01212,"15.0":0.01212,"16.0":3.59891},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01313,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00578},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11818,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":23.30014},S:{"2.5":0},R:{_:"0"},M:{"0":1.49688},Q:{"10.4":0},O:{"0":0},H:{"0":0.02505}}; +module.exports={C:{"52":0.17889,"78":0.02168,"80":0.01084,"88":0.08132,"91":0.103,"94":0.01626,"98":0.06505,"99":1.2143,"100":3.23634,"101":0.00542,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 81 82 83 84 85 86 87 89 90 92 93 95 96 97 102 103 3.5 3.6"},D:{"49":0.02711,"65":0.00542,"76":1.10046,"79":0.04879,"84":0.01084,"86":0.00542,"87":0.04879,"92":0.00542,"96":0.03253,"97":0.03795,"98":0.18431,"99":0.11926,"100":7.0202,"101":24.75771,"102":1.37693,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 77 78 80 81 83 85 88 89 90 91 93 94 95 103 104"},F:{"85":0.412,"86":0.25479,"87":0.01084,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01626,"97":0.01626,"99":0.03795,"100":0.22768,"101":5.92515,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98"},E:{"4":0,"12":0.01626,"13":0.01626,"14":0.3361,"15":0.22768,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.206,"10.1":0.02168,"11.1":0.01084,"12.1":0.04337,"13.1":0.53126,"14.1":1.21973,"15.1":0.47705,"15.2-15.3":0.11384,"15.4":2.14672,"15.5":0.07047},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00097,"7.0-7.1":0.01072,"8.1-8.4":0.00585,"9.0-9.2":0.00292,"9.3":0.05166,"10.0-10.2":0.0117,"10.3":0.4961,"11.0-11.2":0.0039,"11.3-11.4":0.00487,"12.0-12.1":0.97368,"12.2-12.5":1.13645,"13.0-13.1":0.12768,"13.2":0,"13.3":0.01949,"13.4-13.7":0.03704,"14.0-14.4":0.22807,"14.5-14.8":0.69688,"15.0-15.1":0.23294,"15.2-15.3":1.0536,"15.4":4.65203},P:{"4":1.07918,"5.0-5.4":0.24206,"6.2-6.4":0.39335,"7.2-7.4":0.07996,"8.2":0.05043,"9.2":0.29249,"10.1":0.03026,"11.1-11.2":0.02285,"12.0":0.03427,"13.0":0.02285,"14.0":0.02285,"15.0":0.1412,"16.0":1.07379},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00845,"4.4":0,"4.4.3-4.4.4":0.04648},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.03795,"11":0.04879,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":31.2503},S:{"2.5":0},R:{_:"0"},M:{"0":2.48585},Q:{"10.4":0},O:{"0":0.04578},H:{"0":0.03901}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AZ.js index a1c4d3511f970a..1504343fb39d4a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/AZ.js @@ -1 +1 @@ -module.exports={C:{"52":0.01295,"68":0.15538,"78":0.15538,"79":0.00971,"87":0.00324,"88":0.00647,"89":0.00647,"91":0.01295,"95":0.00647,"96":0.00324,"97":0.12624,"98":0.24601,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 80 81 82 83 84 85 86 90 92 93 94 99 100 3.5 3.6"},D:{"22":0.00647,"34":0.00324,"38":0.01942,"49":0.03561,"53":0.03561,"55":0.00324,"56":0.01295,"58":0.00324,"63":0.00647,"65":0.00971,"66":0.00324,"67":0.01295,"68":0.03561,"69":0.01619,"70":0.00971,"71":0.00971,"72":0.00324,"73":0.00324,"74":0.02913,"75":0.00647,"77":0.01942,"78":0.00647,"79":0.67006,"80":0.04208,"81":0.00647,"83":0.0259,"84":0.02913,"85":0.01942,"86":0.04208,"87":0.05179,"88":0.01942,"89":0.0615,"90":0.04856,"91":0.07445,"92":0.04532,"93":0.25896,"94":0.02266,"95":0.03237,"96":0.15861,"97":0.2978,"98":4.80695,"99":18.28581,"100":0.14567,"101":0.01942,"102":0.00324,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 57 59 60 61 62 64 76 103"},F:{"25":0.00324,"28":0.02913,"36":0.00647,"37":0.00647,"40":0.00647,"42":0.00647,"46":0.01295,"62":0.03561,"71":0.00324,"77":0.01942,"78":0.00647,"80":0.00647,"82":0.0259,"83":0.29457,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 29 30 31 32 33 34 35 38 39 41 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 70 72 73 74 75 76 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00324},B:{"18":0.02913,"84":0.00647,"92":0.00324,"94":0.00971,"96":0.00324,"97":0.01619,"98":0.15861,"99":0.8222,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 91 93 95"},E:{"4":0,"13":0.00647,"14":0.07121,"15":0.01942,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00647,"11.1":0.00324,"12.1":0.03237,"13.1":0.06474,"14.1":0.20717,"15.1":0.10682,"15.2-15.3":0.07445,"15.4":0.04532},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00555,"6.0-6.1":0.00185,"7.0-7.1":0.02773,"8.1-8.4":0.00277,"9.0-9.2":0.0037,"9.3":0.01664,"10.0-10.2":0.0074,"10.3":0.10538,"11.0-11.2":0.02311,"11.3-11.4":0.03883,"12.0-12.1":0.01202,"12.2-12.5":0.49271,"13.0-13.1":0.02403,"13.2":0.00832,"13.3":0.04622,"13.4-13.7":0.15992,"14.0-14.4":0.46128,"14.5-14.8":1.39401,"15.0-15.1":0.76726,"15.2-15.3":4.92895,"15.4":0.71734},P:{"4":0.78426,"5.0-5.4":0.01097,"6.2-6.4":0.01039,"7.2-7.4":0.11204,"8.2":0.03061,"9.2":0.01019,"10.1":0.01019,"11.1-11.2":0.10185,"12.0":0.04074,"13.0":0.2037,"14.0":0.2037,"15.0":0.15278,"16.0":3.4528},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.003,"4.2-4.3":0.00599,"4.4":0,"4.4.3-4.4.4":0.02483},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04856,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":52.48493},S:{"2.5":0},R:{_:"0"},M:{"0":0.06763},Q:{"10.4":0},O:{"0":0.32462},H:{"0":0.60186}}; +module.exports={C:{"52":0.00916,"59":0.01526,"68":0.18312,"75":0.00305,"78":0.17702,"79":0.0061,"80":0.0061,"82":0.0061,"83":0.02136,"84":0.0061,"88":0.00916,"89":0.0061,"91":0.01526,"97":0.00305,"98":0.00305,"99":0.12208,"100":0.29604,"101":0.00305,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 76 77 81 85 86 87 90 92 93 94 95 96 102 103 3.5 3.6"},D:{"22":0.0061,"38":0.01831,"49":0.02747,"53":0.04578,"56":0.00305,"57":0.0061,"58":0.0061,"63":0.0061,"65":0.0061,"66":0.00305,"67":0.01526,"68":0.01831,"69":0.01221,"70":0.0061,"71":0.0061,"72":0.01221,"73":0.00305,"74":0.04273,"75":0.00916,"76":0.00305,"77":0.05494,"78":0.00305,"79":0.6104,"80":0.03052,"81":0.01831,"83":0.03968,"84":0.02136,"85":0.0763,"86":0.05494,"87":0.12818,"88":0.01831,"89":0.03968,"90":0.02442,"91":0.03357,"92":0.03357,"93":0.01526,"94":0.02747,"95":0.02747,"96":0.06409,"97":0.07325,"98":0.08851,"99":0.17396,"100":5.30438,"101":15.11961,"102":0.81794,"103":0.01221,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 59 60 61 62 64 104"},F:{"28":0.01526,"36":0.00305,"40":0.00305,"42":0.00305,"46":0.00916,"62":0.02747,"72":0.0061,"77":0.0061,"79":0.01221,"82":0.03662,"83":0.00305,"84":0.02442,"85":1.18418,"86":0.7691,"87":0.02747,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 70 71 73 74 75 76 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00305},B:{"18":0.03052,"83":0.0061,"84":0.0061,"89":0.00305,"92":0.00305,"97":0.0061,"98":0.01221,"99":0.02442,"100":0.04578,"101":1.16586,_:"12 13 14 15 16 17 79 80 81 85 86 87 88 90 91 93 94 95 96"},E:{"4":0,"13":0.01221,"14":0.08546,"15":0.01221,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00305,"11.1":0.00305,"12.1":0.02747,"13.1":0.06409,"14.1":0.19228,"15.1":0.04578,"15.2-15.3":0.04273,"15.4":0.41507,"15.5":0.03052},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01083,"6.0-6.1":0,"7.0-7.1":0.01625,"8.1-8.4":0,"9.0-9.2":0.00542,"9.3":0.01715,"10.0-10.2":0.00722,"10.3":0.08754,"11.0-11.2":0.01083,"11.3-11.4":0.03069,"12.0-12.1":0.00903,"12.2-12.5":0.55505,"13.0-13.1":0.02076,"13.2":0.00451,"13.3":0.04422,"13.4-13.7":0.13628,"14.0-14.4":0.41787,"14.5-14.8":0.95577,"15.0-15.1":0.41155,"15.2-15.3":0.80595,"15.4":5.47289},P:{"4":0.67164,"5.0-5.4":0.02178,"6.2-6.4":0.01018,"7.2-7.4":0.11194,"8.2":0.10375,"9.2":0.01018,"10.1":0.02035,"11.1-11.2":0.10176,"12.0":0.03053,"13.0":0.24423,"14.0":0.14247,"15.0":0.11194,"16.0":1.66891},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00225,"4.2-4.3":0.00526,"4.4":0,"4.4.3-4.4.4":0.02028},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06409,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":54.78664},S:{"2.5":0},R:{_:"0"},M:{"0":0.07644},Q:{"10.4":0},O:{"0":0.31965},H:{"0":0.74999}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BA.js index 2637e3e55aeb62..74639eb450c4c4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BA.js @@ -1 +1 @@ -module.exports={C:{"36":0.00898,"45":0.43413,"47":0.00299,"48":0.00599,"52":0.37126,"56":0.00299,"63":0.00299,"64":0.00299,"65":0.00299,"66":0.00599,"68":0.00898,"72":0.00599,"77":0.00299,"78":0.01198,"83":0.00898,"84":0.01198,"88":0.00898,"89":0.00898,"90":0.00599,"91":0.02395,"92":0.00299,"93":0.00299,"94":0.00299,"95":0.02395,"96":0.01497,"97":0.7964,"98":1.58981,"99":0.00898,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 46 49 50 51 53 54 55 57 58 59 60 61 62 67 69 70 71 73 74 75 76 79 80 81 82 85 86 87 100 3.5 3.6"},D:{"22":0.00299,"26":0.00599,"38":0.00898,"42":0.00898,"43":0.00599,"47":0.00599,"49":0.11078,"51":0.00299,"53":0.02994,"55":0.00898,"63":0.01198,"65":0.01497,"66":0.00599,"68":0.01198,"69":0.00299,"70":0.02695,"71":0.00599,"72":0.00898,"73":0.00599,"74":0.00898,"75":0.00299,"76":0.00898,"77":0.00898,"78":0.00599,"79":0.15569,"80":0.00599,"81":0.02096,"83":0.02994,"84":0.03593,"85":0.02096,"86":0.01796,"87":0.04192,"88":0.02096,"89":0.04192,"90":0.02395,"91":0.03593,"92":0.03293,"93":0.64072,"94":0.06587,"95":0.02096,"96":0.11677,"97":0.24551,"98":4.50597,"99":15.14365,"100":0.1497,"101":0.00599,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 34 35 36 37 39 40 41 44 45 46 48 50 52 54 56 57 58 59 60 61 62 64 67 102 103"},F:{"28":0.01796,"36":0.00599,"40":0.00898,"46":0.00299,"82":0.00299,"83":0.32036,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00299,"16":0.00898,"18":0.01198,"85":0.02096,"92":0.00599,"96":0.00599,"97":0.00898,"98":0.29042,"99":1.26047,_:"12 13 14 17 79 80 81 83 84 86 87 88 89 90 91 93 94 95"},E:{"4":0,"12":0.00299,"13":0.01796,"14":0.03293,"15":0.01796,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00299,"11.1":0.00299,"12.1":0.00898,"13.1":0.02395,"14.1":0.10778,"15.1":0.03892,"15.2-15.3":0.04192,"15.4":0.03293},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01115,"8.1-8.4":0.00111,"9.0-9.2":0,"9.3":0.06408,"10.0-10.2":0.00111,"10.3":0.06074,"11.0-11.2":0.0078,"11.3-11.4":0.00892,"12.0-12.1":0.01059,"12.2-12.5":0.39398,"13.0-13.1":0.0039,"13.2":0.00167,"13.3":0.01616,"13.4-13.7":0.07802,"14.0-14.4":0.20507,"14.5-14.8":0.88214,"15.0-15.1":0.2647,"15.2-15.3":3.2945,"15.4":0.26414},P:{"4":0.15446,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.06178,"8.2":0.03061,"9.2":0.02059,"10.1":0.01023,"11.1-11.2":0.10297,"12.0":0.02059,"13.0":0.09267,"14.0":0.11327,"15.0":0.06178,"16.0":2.26536},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00495,"4.2-4.3":0.01978,"4.4":0,"4.4.3-4.4.4":0.14342},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06886,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":60.10662},S:{"2.5":0},R:{_:"0"},M:{"0":0.16814},Q:{"10.4":0},O:{"0":0.02102},H:{"0":0.19235}}; +module.exports={C:{"45":0.64501,"52":0.48459,"56":0.00334,"63":0.00334,"65":0.00334,"66":0.00668,"68":0.01003,"72":0.00668,"78":0.01003,"79":0.01337,"80":0.00668,"83":0.01003,"84":0.00334,"88":0.00668,"89":0.00668,"91":0.01671,"94":0.00334,"95":0.02339,"96":0.00668,"97":0.03342,"98":0.02339,"99":0.45785,"100":2.02859,"101":0.01003,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 64 67 69 70 71 73 74 75 76 77 81 82 85 86 87 90 92 93 102 103 3.5 3.6"},D:{"22":0.00668,"26":0.01003,"34":0.00334,"38":0.01337,"43":0.01003,"47":0.00668,"49":0.13702,"51":0.00668,"53":0.03008,"55":0.01003,"63":0.00334,"65":0.00668,"67":0.00334,"68":0.02339,"69":0.00668,"70":0.02005,"71":0.00668,"72":0.01671,"73":0.00668,"74":0.01337,"76":0.01337,"77":0.01337,"78":0.00668,"79":0.14371,"80":0.01003,"81":0.01671,"83":0.02339,"84":0.02339,"85":0.01003,"86":0.02339,"87":0.05013,"88":0.01003,"89":0.0401,"90":0.01337,"91":0.02674,"92":0.04345,"93":0.03008,"94":0.05681,"95":0.02005,"96":0.07018,"97":0.09358,"98":0.08355,"99":0.20052,"100":4.19421,"101":16.70332,"102":1.84478,"103":0.00668,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 50 52 54 56 57 58 59 60 61 62 64 66 75 104"},F:{"28":0.01671,"36":0.00668,"40":0.00334,"46":0.01003,"71":0.00668,"84":0.01337,"85":0.64835,"86":0.76532,"87":0.03008,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00668,"15":0.00334,"18":0.01671,"85":0.02674,"92":0.01003,"96":0.00334,"98":0.01003,"99":0.01003,"100":0.08021,"101":1.69439,_:"12 13 16 17 79 80 81 83 84 86 87 88 89 90 91 93 94 95 97"},E:{"4":0,"13":0.00668,"14":0.0401,"15":0.00668,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00668,"11.1":0.00334,"12.1":0.01003,"13.1":0.02674,"14.1":0.10694,"15.1":0.02339,"15.2-15.3":0.01671,"15.4":0.24397,"15.5":0.0401},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00124,"6.0-6.1":0,"7.0-7.1":0.00803,"8.1-8.4":0.00124,"9.0-9.2":0.00124,"9.3":0.06422,"10.0-10.2":0.00371,"10.3":0.0704,"11.0-11.2":0.00618,"11.3-11.4":0.00741,"12.0-12.1":0.00679,"12.2-12.5":0.34582,"13.0-13.1":0.01791,"13.2":0.00185,"13.3":0.0142,"13.4-13.7":0.0562,"14.0-14.4":0.18526,"14.5-14.8":0.6268,"15.0-15.1":0.13401,"15.2-15.3":0.45698,"15.4":4.16343},P:{"4":0.24694,"5.0-5.4":0.02178,"6.2-6.4":0.01024,"7.2-7.4":0.05145,"8.2":0.02288,"9.2":0.01029,"10.1":0.02035,"11.1-11.2":0.11318,"12.0":0.02058,"13.0":0.11318,"14.0":0.12347,"15.0":0.07203,"16.0":0.9672},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00633,"4.2-4.3":0.01265,"4.4":0,"4.4.3-4.4.4":0.10754},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06016,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":57.34181},S:{"2.5":0},R:{_:"0"},M:{"0":0.1465},Q:{"10.4":0},O:{"0":0.0333},H:{"0":0.20174}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BB.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BB.js index c64541d4bf6875..6035da1ed38aec 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BB.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BB.js @@ -1 +1 @@ -module.exports={C:{"45":0.01925,"52":0.00481,"78":0.00963,"85":0.00481,"87":0.05776,"91":0.00963,"92":0.00481,"95":0.00963,"96":0.04813,"97":0.8519,"98":1.52572,"99":0.01444,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 86 88 89 90 93 94 100 3.5 3.6"},D:{"47":0.00963,"49":0.00963,"65":0.01925,"76":0.02888,"77":0.00963,"79":0.33691,"80":0.00481,"81":0.02888,"83":0.01444,"85":0.00963,"86":0.01444,"87":0.09145,"89":0.00963,"90":0.01925,"91":0.0385,"92":0.01444,"93":0.15402,"94":0.02407,"95":0.02888,"96":0.23102,"97":0.36579,"98":7.84038,"99":20.33011,"100":0.13958,"101":0.01925,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 78 84 88 102 103"},F:{"28":0.00481,"67":0.01925,"82":0.00481,"83":0.23102,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.01444,"17":0.01925,"18":0.03369,"89":0.00481,"92":0.00963,"94":0.01444,"95":0.00481,"96":0.02888,"97":0.06257,"98":1.74712,"99":6.41573,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 90 91 93"},E:{"4":0.01444,"13":0.04813,"14":0.13476,"15":0.0722,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 7.1 10.1","6.1":0.00963,"9.1":0.06257,"11.1":0.05776,"12.1":0.02407,"13.1":0.15883,"14.1":0.64013,"15.1":0.41873,"15.2-15.3":0.29841,"15.4":0.14439},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03072,"6.0-6.1":0,"7.0-7.1":0.00768,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.26494,"10.0-10.2":0,"10.3":0.08191,"11.0-11.2":0.00896,"11.3-11.4":0.02432,"12.0-12.1":0.00512,"12.2-12.5":0.94839,"13.0-13.1":0.01792,"13.2":0.00768,"13.3":0.01792,"13.4-13.7":0.11135,"14.0-14.4":0.35453,"14.5-14.8":1.62545,"15.0-15.1":0.6745,"15.2-15.3":7.59482,"15.4":1.01495},P:{"4":0.19852,"5.0-5.4":0.02071,"6.2-6.4":0.0318,"7.2-7.4":0.28675,"8.2":0.03061,"9.2":0.0106,"10.1":0.01019,"11.1-11.2":0.12132,"12.0":0.01103,"13.0":0.0772,"14.0":0.09926,"15.0":0.23161,"16.0":4.38953},I:{"0":0,"3":0,"4":0.0007,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0014,"4.4":0,"4.4.3-4.4.4":0.02383},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01444,"11":0.1107,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.01556},N:{_:"10 11"},L:{"0":34.01871},S:{"2.5":0},R:{_:"0"},M:{"0":0.3994},Q:{"10.4":0},O:{"0":0.06224},H:{"0":0.16696}}; +module.exports={C:{"45":0.00913,"78":0.0137,"87":0.04566,"91":0.00913,"94":0.00457,"98":0.00913,"99":0.36985,"100":1.72138,"101":0.0274,"102":0.00457,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 88 89 90 92 93 95 96 97 103 3.5 3.6"},D:{"49":0.00913,"50":0.00913,"65":0.00457,"70":0.0137,"74":0.00457,"75":0.01826,"76":0.0274,"77":0.00913,"79":0.20547,"80":0.04566,"81":0.03196,"83":0.0137,"84":0.00457,"85":0.00457,"86":0.00913,"87":0.04109,"90":0.00913,"91":0.00913,"93":0.06849,"94":0.01826,"95":0.01826,"96":0.06392,"97":0.09132,"98":0.09589,"99":0.30136,"100":5.73033,"101":18.0357,"102":1.73051,"103":0.01826,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 71 72 73 78 88 89 92 104"},F:{"28":0.00913,"85":0.48856,"86":0.484,"87":0.03196,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00913,"18":0.0137,"92":0.00457,"97":0.00457,"98":0.00913,"99":0.09589,"100":0.46573,"101":8.99959,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96"},E:{"4":0.00457,"8":0.00913,"13":0.00913,"14":0.14155,"15":0.02283,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 7.1","6.1":0.00457,"9.1":0.11872,"10.1":0.00457,"11.1":0.00913,"12.1":0.0274,"13.1":0.15524,"14.1":0.32419,"15.1":0.08675,"15.2-15.3":0.26483,"15.4":2.22821,"15.5":0.2009},G:{"8":0,"3.2":0.00124,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0174,"6.0-6.1":0,"7.0-7.1":0.01988,"8.1-8.4":0.00124,"9.0-9.2":0.00124,"9.3":0.21126,"10.0-10.2":0,"10.3":0.04474,"11.0-11.2":0.00249,"11.3-11.4":0.01616,"12.0-12.1":0.0087,"12.2-12.5":0.60147,"13.0-13.1":0.01243,"13.2":0.00746,"13.3":0.01367,"13.4-13.7":0.05344,"14.0-14.4":0.30571,"14.5-14.8":0.64248,"15.0-15.1":0.39642,"15.2-15.3":0.85374,"15.4":9.21096},P:{"4":0.15157,"5.0-5.4":0.02178,"6.2-6.4":0.02097,"7.2-7.4":0.30314,"8.2":0.10375,"9.2":0.03044,"10.1":0.02035,"11.1-11.2":0.06496,"12.0":0.01048,"13.0":0.07579,"14.0":0.14074,"15.0":0.11909,"16.0":1.80802},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00078,"4.2-4.3":0.00104,"4.4":0,"4.4.3-4.4.4":0.03079},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.0137,"11":0.07306,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.02717},N:{_:"10 11"},L:{"0":37.05547},S:{"2.5":0},R:{_:"0"},M:{"0":0.59231},Q:{"10.4":0},O:{"0":0.04891},H:{"0":0.15434}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BD.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BD.js index 2cfc56b992d829..5b108b2b8924aa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BD.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BD.js @@ -1 +1 @@ -module.exports={C:{"40":0.01975,"43":0.00564,"47":0.01129,"48":0.00564,"50":0.00282,"51":0.00282,"52":0.04797,"53":0.00282,"56":0.00564,"57":0.00564,"68":0.00282,"72":0.00847,"78":0.00847,"79":0.00564,"80":0.00564,"81":0.00564,"82":0.00564,"83":0.00282,"84":0.00564,"86":0.00282,"87":0.00282,"88":0.00847,"89":0.01411,"90":0.00282,"91":0.03104,"92":0.01129,"93":0.01129,"94":0.00847,"95":0.01975,"96":0.01693,"97":0.91715,"98":1.73553,"99":0.14957,"100":0.00282,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 46 49 54 55 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 85 3.5 3.6"},D:{"38":0.00564,"41":0.00564,"43":0.00564,"49":0.00847,"50":0.00564,"53":0.00282,"55":0.00282,"56":0.00564,"62":0.00282,"63":0.00282,"64":0.01129,"65":0.00564,"66":0.00282,"67":0.00282,"69":0.00564,"70":0.00847,"71":0.00564,"72":0.00564,"73":0.00847,"74":0.00564,"75":0.00282,"76":0.00282,"77":0.00564,"78":0.00847,"79":0.02258,"80":0.01411,"81":0.01975,"83":0.02822,"84":0.03104,"85":0.04515,"86":0.0903,"87":0.07055,"88":0.01411,"89":0.02822,"90":0.01411,"91":0.02822,"92":0.04233,"93":0.26809,"94":0.03669,"95":0.04233,"96":0.12135,"97":0.25116,"98":3.74197,"99":12.95016,"100":0.05362,"101":0.06773,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 44 45 46 47 48 51 52 54 57 58 59 60 61 68 102 103"},F:{"28":0.00282,"29":0.00564,"36":0.00282,"68":0.01129,"71":0.00282,"80":0.00282,"82":0.00564,"83":0.08748,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 72 73 74 75 76 77 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00847,"16":0.00282,"18":0.01411,"84":0.00564,"89":0.00564,"92":0.00847,"95":0.00564,"96":0.00564,"97":0.01693,"98":0.21165,"99":0.83813,_:"13 14 15 17 79 80 81 83 85 86 87 88 90 91 93 94"},E:{"4":0,"13":0.00564,"14":0.01693,"15":0.01129,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00564,"13.1":0.01411,"14.1":0.03951,"15.1":0.01975,"15.2-15.3":0.03386,"15.4":0.03104},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00338,"6.0-6.1":0.00021,"7.0-7.1":0.04917,"8.1-8.4":0.00063,"9.0-9.2":0.00211,"9.3":0.02089,"10.0-10.2":0.00211,"10.3":0.02279,"11.0-11.2":0.00443,"11.3-11.4":0.00528,"12.0-12.1":0.0057,"12.2-12.5":0.16989,"13.0-13.1":0.00507,"13.2":0.00127,"13.3":0.00992,"13.4-13.7":0.04052,"14.0-14.4":0.08505,"14.5-14.8":0.20197,"15.0-15.1":0.16103,"15.2-15.3":1.14303,"15.4":0.17559},P:{"4":0.2968,"5.0-5.4":0.02071,"6.2-6.4":0.0318,"7.2-7.4":0.106,"8.2":0.03061,"9.2":0.0106,"10.1":0.01019,"11.1-11.2":0.0318,"12.0":0.0106,"13.0":0.0636,"14.0":0.0742,"15.0":0.0424,"16.0":0.71019},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00113,"4.2-4.3":0.00509,"4.4":0,"4.4.3-4.4.4":0.19473},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00581,"9":0.00581,"11":0.08998,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":66.16891},S:{"2.5":0},R:{_:"0"},M:{"0":0.11483},Q:{"10.4":0},O:{"0":2.55501},H:{"0":2.37136}}; +module.exports={C:{"40":0.01698,"41":0.00566,"43":0.00566,"44":0.00283,"47":0.00566,"51":0.00566,"52":0.05094,"53":0.00566,"54":0.00283,"55":0.00566,"56":0.01132,"57":0.00566,"65":0.00566,"68":0.00283,"72":0.00849,"78":0.01415,"79":0.00849,"80":0.00849,"81":0.00566,"82":0.00849,"83":0.00566,"84":0.00566,"86":0.00283,"88":0.00566,"89":0.01132,"91":0.03396,"92":0.00566,"93":0.00283,"94":0.00566,"95":0.00849,"96":0.00849,"97":0.01415,"98":0.02547,"99":0.3113,"100":2.33758,"101":0.20659,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 42 45 46 48 49 50 58 59 60 61 62 63 64 66 67 69 70 71 73 74 75 76 77 85 87 90 102 103 3.5 3.6"},D:{"38":0.00566,"41":0.00283,"42":0.00566,"43":0.00283,"47":0.00283,"48":0.00283,"49":0.01132,"50":0.00283,"53":0.00283,"55":0.00283,"56":0.00566,"58":0.00566,"62":0.00283,"63":0.00566,"64":0.00849,"65":0.00566,"66":0.00566,"67":0.00283,"69":0.00849,"70":0.00566,"71":0.00566,"72":0.00566,"73":0.01132,"74":0.00849,"75":0.00283,"76":0.00283,"77":0.00566,"78":0.00849,"79":0.03113,"80":0.02547,"81":0.02264,"83":0.06226,"84":0.07358,"85":0.08773,"86":0.13584,"87":0.10471,"88":0.00849,"89":0.02547,"90":0.01415,"91":0.02547,"92":0.03396,"93":0.01415,"94":0.02547,"95":0.03113,"96":0.06226,"97":0.07924,"98":0.07075,"99":0.1415,"100":1.981,"101":13.08592,"102":1.59612,"103":0.03396,"104":0.00566,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 44 45 46 51 52 54 57 59 60 61 68"},F:{"28":0.00849,"36":0.00566,"46":0.00566,"68":0.01132,"69":0.00849,"70":0.00566,"71":0.00849,"84":0.00566,"85":0.22923,"86":0.3396,"87":0.04245,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00849,"16":0.00566,"18":0.01698,"84":0.01132,"85":0.00566,"86":0.00566,"89":0.00566,"92":0.01132,"96":0.00566,"97":0.00283,"98":0.00283,"99":0.00849,"100":0.03396,"101":1.02163,_:"13 14 15 17 79 80 81 83 87 88 90 91 93 94 95"},E:{"4":0,"13":0.00849,"14":0.01415,"15":0.00566,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00283,"13.1":0.01415,"14.1":0.03113,"15.1":0.00849,"15.2-15.3":0.00849,"15.4":0.15282,"15.5":0.02264},G:{"8":0,"3.2":0.00084,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00315,"6.0-6.1":0.00042,"7.0-7.1":0.05043,"8.1-8.4":0.00021,"9.0-9.2":0.00252,"9.3":0.01933,"10.0-10.2":0.00252,"10.3":0.02417,"11.0-11.2":0.00357,"11.3-11.4":0.00357,"12.0-12.1":0.00462,"12.2-12.5":0.17043,"13.0-13.1":0.00357,"13.2":0.00168,"13.3":0.00883,"13.4-13.7":0.0332,"14.0-14.4":0.08006,"14.5-14.8":0.15025,"15.0-15.1":0.07523,"15.2-15.3":0.20174,"15.4":1.26044},P:{"4":0.28305,"5.0-5.4":0.02178,"6.2-6.4":0.02097,"7.2-7.4":0.10483,"8.2":0.10375,"9.2":0.03044,"10.1":0.02035,"11.1-11.2":0.02097,"12.0":0.01048,"13.0":0.0629,"14.0":0.05242,"15.0":0.03145,"16.0":0.34595},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00247,"4.2-4.3":0.00494,"4.4":0,"4.4.3-4.4.4":0.1575},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00283,"11":0.14999,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":66.68831},S:{"2.5":0.00717},R:{_:"0"},M:{"0":0.12906},Q:{"10.4":0},O:{"0":2.88951},H:{"0":2.55232}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BE.js index 9ad6d912df8ee2..b9f0a483cd54dd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BE.js @@ -1 +1 @@ -module.exports={C:{"52":0.03396,"56":0.02037,"78":0.0747,"87":0.09507,"88":0.00679,"89":0.01358,"90":0.02037,"91":0.10866,"94":0.01358,"95":0.02716,"96":0.02716,"97":1.1341,"98":1.81999,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 92 93 99 100 3.5 3.6"},D:{"49":0.05433,"65":0.00679,"66":0.02037,"67":0.00679,"74":0.03396,"75":0.04754,"76":0.04075,"77":0.03396,"78":0.40746,"79":0.56365,"80":0.02716,"81":0.01358,"83":0.28522,"84":0.04075,"85":0.04075,"86":0.0747,"87":0.16298,"88":0.02037,"89":0.08828,"90":0.03396,"91":0.05433,"92":0.0747,"93":0.25127,"94":0.06791,"95":0.10866,"96":0.29201,"97":0.59082,"98":11.83671,"99":30.51875,"100":0.01358,"101":0.01358,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 68 69 70 71 72 73 102 103"},F:{"82":0.00679,"83":0.27843,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01358,"86":0.01358,"89":0.01358,"90":0.00679,"91":0.02716,"92":0.01358,"94":0.04075,"95":0.02037,"96":0.09507,"97":0.16978,"98":2.66886,"99":9.09315,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88 93"},E:{"4":0,"11":0.00679,"13":0.04075,"14":0.24448,"15":0.12903,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01358,"11.1":0.03396,"12.1":0.0747,"13.1":0.34634,"14.1":0.74022,"15.1":0.29201,"15.2-15.3":0.3803,"15.4":0.21731},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0024,"8.1-8.4":0.0084,"9.0-9.2":0.0024,"9.3":0.03839,"10.0-10.2":0.0024,"10.3":0.07557,"11.0-11.2":0.01679,"11.3-11.4":0.03359,"12.0-12.1":0.0132,"12.2-12.5":0.34309,"13.0-13.1":0.01559,"13.2":0.0048,"13.3":0.03959,"13.4-13.7":0.11996,"14.0-14.4":0.45465,"14.5-14.8":1.65905,"15.0-15.1":0.83492,"15.2-15.3":7.8418,"15.4":0.48224},P:{"4":0.04308,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.02125,"8.2":0.03061,"9.2":0.01077,"10.1":0.01019,"11.1-11.2":0.02154,"12.0":0.07436,"13.0":0.05385,"14.0":0.07539,"15.0":0.04308,"16.0":2.44465},I:{"0":0,"3":0,"4":0.00065,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00327,"4.2-4.3":0.00392,"4.4":0,"4.4.3-4.4.4":0.02745},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.24448,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":15.04341},S:{"2.5":0},R:{_:"0"},M:{"0":0.20538},Q:{"10.4":0},O:{"0":0.01605},H:{"0":0.10633}}; +module.exports={C:{"52":0.03396,"56":0.00679,"78":0.06113,"87":0.20376,"88":0.00679,"90":0.00679,"91":0.10867,"95":0.01358,"97":0.01358,"98":0.02717,"99":0.5094,"100":2.20061,"101":0.00679,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 89 92 93 94 96 102 103 3.5 3.6"},D:{"49":0.04754,"66":0.02038,"67":0.02038,"69":0.02038,"74":0.03396,"75":0.03396,"76":0.04754,"77":0.03396,"78":0.46186,"79":0.65882,"80":0.02038,"81":0.00679,"83":0.24451,"84":0.03396,"85":0.02717,"86":0.02717,"87":0.06792,"88":0.01358,"89":0.03396,"90":0.03396,"91":0.04075,"92":0.06113,"93":0.06792,"94":0.07471,"95":0.04754,"96":0.14263,"97":0.1698,"98":0.19697,"99":0.9305,"100":8.9994,"101":32.32992,"102":2.52662,"103":0.00679,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 68 70 71 72 73 104"},F:{"85":0.35998,"86":0.3396,"87":0.00679,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01358,"86":0.00679,"87":0.00679,"91":0.00679,"92":0.01358,"95":0.01358,"96":0.01358,"97":0.06113,"98":0.05434,"99":0.10188,"100":0.63845,"101":9.91632,_:"12 13 14 15 16 17 79 80 81 83 84 85 88 89 90 93 94"},E:{"4":0,"11":0.00679,"13":0.03396,"14":0.18338,"15":0.07471,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00679,"11.1":0.02717,"12.1":0.06113,"13.1":0.27847,"14.1":0.55015,"15.1":0.1698,"15.2-15.3":0.17659,"15.4":2.42474,"15.5":0.20376},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00128,"8.1-8.4":0.00767,"9.0-9.2":0.00128,"9.3":0.04477,"10.0-10.2":0.00384,"10.3":0.08186,"11.0-11.2":0.01407,"11.3-11.4":0.03326,"12.0-12.1":0.01407,"12.2-12.5":0.35559,"13.0-13.1":0.01407,"13.2":0.00512,"13.3":0.03581,"13.4-13.7":0.10489,"14.0-14.4":0.40547,"14.5-14.8":1.07572,"15.0-15.1":0.41059,"15.2-15.3":1.00281,"15.4":9.16852},P:{"4":0.04303,"5.0-5.4":0.02178,"6.2-6.4":0.44592,"7.2-7.4":0.03228,"8.2":0.10375,"9.2":0.03044,"10.1":0.02035,"11.1-11.2":0.01076,"12.0":0.05309,"13.0":0.03228,"14.0":0.05379,"15.0":0.03228,"16.0":0.82841},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00348,"4.2-4.3":0.00261,"4.4":0,"4.4.3-4.4.4":0.03562},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.1698,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":15.49645},S:{"2.5":0},R:{_:"0"},M:{"0":0.21173},Q:{"10.4":0},O:{"0":0.01925},H:{"0":0.09111}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BF.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BF.js index 39e36c3cc2c1b7..8af495c9078105 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BF.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BF.js @@ -1 +1 @@ -module.exports={C:{"24":0.00243,"40":0.00728,"43":0.00728,"44":0.00243,"47":0.00971,"48":0.00243,"52":0.0267,"56":0.00728,"57":0.00728,"59":0.00728,"62":0.00243,"65":0.00243,"72":0.01942,"74":0.00243,"78":0.00971,"79":0.00243,"81":0.01214,"84":0.02184,"85":0.00243,"86":0.00243,"88":0.00728,"89":0.00728,"90":0.00728,"91":0.15533,"92":0.00971,"93":0.00485,"94":0.04854,"95":0.0267,"96":0.14562,"97":1.28631,"98":2.20129,"99":0.01214,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 45 46 49 50 51 53 54 55 58 60 61 63 64 66 67 68 69 70 71 73 75 76 77 80 82 83 87 100 3.5 3.6"},D:{"11":0.00243,"27":0.03155,"29":0.00728,"33":0.04611,"37":0.00485,"39":0.00243,"46":0.00728,"49":0.02912,"50":0.05825,"55":0.00485,"58":0.00243,"60":0.00485,"62":0.00243,"63":0.00971,"64":0.00728,"69":0.00728,"70":0.00485,"71":0.00243,"72":0.01214,"74":0.03398,"75":0.00971,"76":0.00728,"77":0.01214,"78":0.00243,"79":0.01456,"80":0.00971,"81":0.03641,"83":0.00485,"84":0.00728,"86":0.01456,"87":0.01942,"88":0.00728,"89":0.00485,"90":0.00971,"91":0.01456,"92":0.01942,"93":0.01214,"94":0.02427,"95":0.05825,"96":0.06553,"97":0.59462,"98":2.53864,"99":7.05286,"100":0.00971,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 30 31 32 34 35 36 38 40 41 42 43 44 45 47 48 51 52 53 54 56 57 59 61 65 66 67 68 73 85 101 102 103"},F:{"42":0.00485,"70":0.00243,"79":0.00728,"82":0.00971,"83":0.04854,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03398,"13":0.00728,"14":0.00728,"16":0.00485,"17":0.01942,"18":0.05339,"84":0.00728,"85":0.01214,"88":0.00728,"89":0.01214,"90":0.00243,"92":0.02427,"93":0.00485,"94":0.00485,"95":0.00728,"96":0.01214,"97":0.03883,"98":0.46841,"99":1.74016,_:"15 79 80 81 83 86 87 91"},E:{"4":0,"14":0.01699,"15":0.00728,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1","5.1":0.00485,"10.1":0.00243,"11.1":0.00485,"12.1":0.00728,"13.1":0.01456,"14.1":0.02184,"15.1":0.35192,"15.2-15.3":0.00971,"15.4":0.00971},G:{"8":0.00584,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00265,"7.0-7.1":0.00478,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03291,"10.0-10.2":0.00159,"10.3":0.03132,"11.0-11.2":0.09502,"11.3-11.4":0.01646,"12.0-12.1":0.06688,"12.2-12.5":0.81798,"13.0-13.1":0.02866,"13.2":0.00372,"13.3":0.07007,"13.4-13.7":0.2394,"14.0-14.4":0.94538,"14.5-14.8":0.54621,"15.0-15.1":0.37051,"15.2-15.3":1.87218,"15.4":0.15712},P:{"4":0.09891,"5.0-5.4":0.02071,"6.2-6.4":0.01042,"7.2-7.4":0.08792,"8.2":0.03061,"9.2":0.07693,"10.1":0.02129,"11.1-11.2":0.06594,"12.0":0.03125,"13.0":0.03297,"14.0":0.06594,"15.0":0.03297,"16.0":0.4396},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00127,"4.2-4.3":0.00423,"4.4":0,"4.4.3-4.4.4":0.15353},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14077,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":69.31961},S:{"2.5":0.01515},R:{_:"0"},M:{"0":0.09088},Q:{"10.4":0.09845},O:{"0":0.80274},H:{"0":3.8716}}; +module.exports={C:{"41":0.0115,"43":0.0092,"47":0.0207,"48":0.0069,"49":0.0023,"52":0.0138,"54":0.0023,"68":0.0046,"69":0.0023,"72":0.0115,"75":0.0046,"76":0.0575,"78":0.0092,"79":0.0023,"80":0.0046,"89":0.0069,"91":0.1334,"92":0.0092,"93":0.0023,"94":0.0023,"95":0.0046,"96":0.115,"97":0.0115,"98":0.3864,"99":0.7038,"100":2.6289,"101":0.0207,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 44 45 46 50 51 53 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 73 74 77 81 82 83 84 85 86 87 88 90 102 103 3.5 3.6"},D:{"25":0.0069,"26":0.0046,"29":0.0046,"33":0.0575,"49":0.0115,"54":0.0115,"62":0.0046,"63":0.0023,"65":0.0046,"68":0.0115,"70":0.0023,"72":0.0046,"74":0.0092,"75":0.0092,"77":0.0046,"79":0.0115,"80":0.0046,"81":0.0138,"83":0.0046,"84":0.0046,"86":0.0069,"87":0.0115,"88":0.0161,"90":0.0023,"91":0.0529,"92":0.0414,"93":0.0161,"94":0.0046,"95":0.0069,"96":0.046,"97":0.0483,"98":0.0322,"99":0.1127,"100":1.817,"101":7.0173,"102":0.4278,"103":0.0069,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 55 56 57 58 59 60 61 64 66 67 69 71 73 76 78 85 89 104"},F:{"36":0.0023,"60":0.0069,"64":0.0023,"67":0.0069,"79":0.0023,"82":0.0069,"83":0.0046,"84":0.0161,"85":0.2047,"86":0.3496,"87":0.0483,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 62 63 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0207,"13":0.0207,"14":0.0046,"16":0.0023,"17":0.0069,"18":0.0483,"83":0.0023,"84":0.0069,"85":0.0092,"89":0.0092,"90":0.0069,"92":0.0184,"94":0.0023,"96":0.0115,"97":0.0046,"98":0.0161,"99":0.046,"100":0.1702,"101":1.817,_:"15 79 80 81 86 87 88 91 93 95"},E:{"4":0,"12":0.0023,"14":0.0276,_:"0 5 6 7 8 9 10 11 13 15 3.1 3.2 6.1 7.1 10.1 12.1","5.1":0.0046,"9.1":0.0046,"11.1":0.0023,"13.1":0.0322,"14.1":0.0138,"15.1":0.0092,"15.2-15.3":0.0092,"15.4":0.0736,"15.5":0.0575},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00103,"6.0-6.1":0,"7.0-7.1":0.02061,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07316,"10.0-10.2":0.00206,"10.3":0.03761,"11.0-11.2":0.02679,"11.3-11.4":0.02782,"12.0-12.1":0.08243,"12.2-12.5":0.46933,"13.0-13.1":0.02267,"13.2":0.00258,"13.3":0.04328,"13.4-13.7":0.12725,"14.0-14.4":0.49973,"14.5-14.8":0.66098,"15.0-15.1":0.28077,"15.2-15.3":0.65377,"15.4":2.11946},P:{"4":0.01085,"5.0-5.4":0.02178,"6.2-6.4":0.02087,"7.2-7.4":0.05427,"8.2":0.02288,"9.2":0.05427,"10.1":0.01047,"11.1-11.2":0.08683,"12.0":0.02087,"13.0":0.01085,"14.0":0.03256,"15.0":0.04341,"16.0":0.62949},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00147,"4.2-4.3":0.00442,"4.4":0,"4.4.3-4.4.4":0.202},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0874,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.0154},N:{_:"10 11"},L:{"0":71.1465},S:{"2.5":0.0154},R:{_:"0"},M:{"0":0.1617},Q:{"10.4":0.0539},O:{"0":0.7392},H:{"0":3.521}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BG.js index fcccbdd729c9d9..0259aa0fbe1783 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BG.js @@ -1 +1 @@ -module.exports={C:{"47":0.00821,"48":0.00411,"51":0.00821,"52":0.19709,"56":0.00821,"60":0.00821,"66":0.03285,"67":0.00821,"68":0.02053,"72":0.02053,"78":0.04106,"79":0.00821,"80":0.01642,"81":0.00411,"83":0.02053,"84":0.01232,"85":0.00821,"86":0.00821,"87":0.02464,"88":0.02053,"89":0.03285,"90":0.00821,"91":0.1355,"92":0.00821,"93":0.00821,"94":0.04106,"95":0.03695,"96":0.07801,"97":1.83538,"98":3.47368,"99":0.02874,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 53 54 55 57 58 59 61 62 63 64 65 69 70 71 73 74 75 76 77 82 100 3.5 3.6"},D:{"38":0.00411,"43":0.00821,"48":0.01232,"49":0.2053,"50":0.00821,"51":0.59126,"56":0.00411,"58":0.00821,"63":0.01232,"65":0.00411,"67":0.01232,"68":0.00411,"69":0.04106,"70":0.00821,"71":0.00821,"74":0.00821,"75":0.00821,"76":0.00411,"77":0.00821,"78":0.00821,"79":0.26278,"80":0.02053,"81":0.04106,"83":0.02874,"84":0.02464,"85":0.02464,"86":0.03285,"87":0.06159,"88":0.02053,"89":0.02464,"90":0.01642,"91":0.0698,"92":0.05748,"93":0.63232,"94":0.03285,"95":0.03285,"96":0.14371,"97":0.29563,"98":5.69092,"99":19.33105,"100":0.16835,"101":0.00821,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 52 53 54 55 57 59 60 61 62 64 66 72 73 102 103"},F:{"28":0.00821,"36":0.00821,"46":0.01232,"57":0.00411,"77":0.00821,"78":0.01642,"79":0.00411,"80":0.00411,"82":0.01642,"83":0.26278,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00821,"16":0.00821,"17":0.01232,"18":0.02053,"84":0.00821,"85":0.00411,"92":0.00411,"94":0.00411,"95":0.00821,"96":0.01232,"97":0.02053,"98":0.50093,"99":2.09406,_:"12 13 14 79 80 81 83 86 87 88 89 90 91 93"},E:{"4":0,"7":0.00411,"13":0.01232,"14":0.04106,"15":0.02053,_:"0 5 6 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00821,"12.1":0.02464,"13.1":0.04927,"14.1":0.1396,"15.1":0.04106,"15.2-15.3":0.06159,"15.4":0.04517},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00143,"6.0-6.1":0,"7.0-7.1":0.00429,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01789,"10.0-10.2":0.00358,"10.3":0.0501,"11.0-11.2":0.01432,"11.3-11.4":0.0093,"12.0-12.1":0.01145,"12.2-12.5":0.22833,"13.0-13.1":0.00787,"13.2":0.00358,"13.3":0.02577,"13.4-13.7":0.09878,"14.0-14.4":0.26483,"14.5-14.8":1.01639,"15.0-15.1":0.39868,"15.2-15.3":4.60096,"15.4":0.39654},P:{"4":0.09376,"5.0-5.4":0.02071,"6.2-6.4":0.01042,"7.2-7.4":0.05324,"8.2":0.03061,"9.2":0.02129,"10.1":0.02129,"11.1-11.2":0.07292,"12.0":0.03125,"13.0":0.10418,"14.0":0.14585,"15.0":0.08334,"16.0":2.23978},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00402,"4.2-4.3":0.01473,"4.4":0,"4.4.3-4.4.4":0.09911},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.42292,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":47.58975},S:{"2.5":0},R:{_:"0"},M:{"0":0.19447},Q:{"10.4":0},O:{"0":0.02947},H:{"0":0.23432}}; +module.exports={C:{"48":0.00398,"51":0.00797,"52":0.17928,"56":0.00797,"57":0.00398,"60":0.00398,"66":0.02789,"67":0.00797,"68":0.13944,"72":0.01195,"73":0.00797,"77":0.00398,"78":0.04781,"80":0.01992,"81":0.00797,"82":0.00398,"83":0.01992,"84":0.00797,"85":0.00797,"86":0.00797,"87":0.01594,"88":0.03984,"89":0.04781,"90":0.01195,"91":0.12749,"92":0.00398,"93":0.00398,"94":0.0239,"95":0.0239,"96":0.03187,"97":0.03984,"98":0.04781,"99":1.05576,"100":4.27085,"101":0.03187,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 53 54 55 58 59 61 62 63 64 65 69 70 71 74 75 76 79 102 103 3.5 3.6"},D:{"34":0.00398,"38":0.00797,"47":0.00398,"49":0.23506,"50":0.00797,"56":0.01992,"58":0.00398,"63":0.01195,"65":0.00398,"66":0.00797,"67":0.00398,"69":0.07968,"70":0.00398,"71":0.01195,"74":0.01195,"75":0.00797,"76":0.00797,"77":0.00797,"78":0.00797,"79":0.35458,"80":0.01195,"81":0.03187,"83":0.01594,"84":0.01992,"85":0.02789,"86":0.04382,"87":0.06374,"88":0.01594,"89":0.0239,"90":0.01195,"91":0.04382,"92":0.0757,"93":0.01594,"94":0.01594,"95":0.0239,"96":0.05976,"97":0.07968,"98":0.09562,"99":0.33067,"100":4.86048,"101":17.86426,"102":1.78483,"103":0.00797,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 51 52 53 54 55 57 59 60 61 62 64 68 72 73 104"},F:{"28":0.00797,"36":0.00398,"46":0.00797,"57":0.00398,"78":0.00797,"82":0.00797,"84":0.00797,"85":0.62947,"86":0.82469,"87":0.04382,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.01195,"18":0.01594,"86":0.00398,"92":0.00398,"95":0.00797,"96":0.00398,"97":0.00398,"98":0.00797,"99":0.01992,"100":0.16334,"101":2.55374,_:"12 13 14 15 17 79 80 81 83 84 85 87 88 89 90 91 93 94"},E:{"4":0,"7":0.00398,"13":0.01195,"14":0.03586,"15":0.01594,_:"0 5 6 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00797,"12.1":0.01594,"13.1":0.05179,"14.1":0.10757,"15.1":0.0239,"15.2-15.3":0.0239,"15.4":0.37051,"15.5":0.05578},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00159,"7.0-7.1":0.00396,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0214,"10.0-10.2":0.00396,"10.3":0.04359,"11.0-11.2":0.02061,"11.3-11.4":0.00713,"12.0-12.1":0.00951,"12.2-12.5":0.23222,"13.0-13.1":0.00951,"13.2":0.00317,"13.3":0.02219,"13.4-13.7":0.08481,"14.0-14.4":0.23143,"14.5-14.8":0.78068,"15.0-15.1":0.21796,"15.2-15.3":0.61662,"15.4":5.61141},P:{"4":0.07303,"5.0-5.4":0.02178,"6.2-6.4":0.02087,"7.2-7.4":0.05234,"8.2":0.02288,"9.2":0.09421,"10.1":0.01047,"11.1-11.2":0.0626,"12.0":0.02087,"13.0":0.08346,"14.0":0.11476,"15.0":0.0626,"16.0":0.99113},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00285,"4.2-4.3":0.00997,"4.4":0,"4.4.3-4.4.4":0.09545},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00407,"11":0.39035,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":48.99586},S:{"2.5":0},R:{_:"0"},M:{"0":0.18647},Q:{"10.4":0},O:{"0":0.03609},H:{"0":0.25626}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BH.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BH.js index 8a7f61ce988f39..daf9b89ee8e7c6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BH.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BH.js @@ -1 +1 @@ -module.exports={C:{"34":0.00804,"36":0.00402,"52":0.00804,"78":0.00804,"79":0.00804,"83":0.05628,"91":0.00402,"96":0.01206,"97":0.50652,"98":0.62712,"99":0.00804,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 81 82 84 85 86 87 88 89 90 92 93 94 95 100 3.5 3.6"},D:{"38":0.00402,"49":0.0201,"56":0.00402,"60":0.01206,"63":0.00402,"65":0.00804,"68":0.00804,"71":0.00402,"74":0.00804,"75":0.01608,"76":0.00804,"78":0.00402,"79":0.08442,"80":0.02412,"81":0.01206,"83":0.0201,"84":0.01206,"85":0.00402,"86":0.0402,"87":0.06834,"88":0.0201,"89":0.02412,"90":0.01608,"91":0.0201,"92":0.03618,"93":0.201,"94":0.04824,"95":0.03216,"96":0.19296,"97":0.3618,"98":6.9747,"99":21.35022,"100":0.17286,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 61 62 64 66 67 69 70 72 73 77 101 102 103"},F:{"28":0.00804,"36":0.01206,"45":0.00804,"46":0.00402,"71":0.00402,"78":0.03618,"79":0.04422,"82":0.05226,"83":0.22512,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00402,"15":0.00804,"16":0.01206,"18":0.0201,"84":0.00402,"89":0.0402,"92":0.00804,"94":0.00402,"95":0.00402,"96":0.01608,"97":0.0603,"98":0.99696,"99":2.9547,_:"13 14 17 79 80 81 83 85 86 87 88 90 91 93"},E:{"4":0,"13":0.04824,"14":0.21306,"15":0.10452,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01206,"11.1":0.01206,"12.1":0.04422,"13.1":0.15276,"14.1":0.71958,"15.1":0.2412,"15.2-15.3":0.27738,"15.4":0.17286},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00339,"7.0-7.1":0.01354,"8.1-8.4":0.00508,"9.0-9.2":0,"9.3":0.07278,"10.0-10.2":0.00339,"10.3":0.08632,"11.0-11.2":0.04231,"11.3-11.4":0.03724,"12.0-12.1":0.022,"12.2-12.5":0.36052,"13.0-13.1":0.03216,"13.2":0.01016,"13.3":0.07617,"13.4-13.7":0.19634,"14.0-14.4":0.67873,"14.5-14.8":2.29684,"15.0-15.1":1.45732,"15.2-15.3":10.19107,"15.4":1.33207},P:{"4":0.15328,"5.0-5.4":0.02071,"6.2-6.4":0.02044,"7.2-7.4":0.08175,"8.2":0.03061,"9.2":0.03066,"10.1":0.01019,"11.1-11.2":0.2248,"12.0":0.02044,"13.0":0.1124,"14.0":0.14306,"15.0":0.21459,"16.0":2.96334},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00153,"4.2-4.3":0.00153,"4.4":0,"4.4.3-4.4.4":0.01489},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00864,"11":0.16422,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":35.9261},S:{"2.5":0},R:{_:"0"},M:{"0":0.2093},Q:{"10.4":0},O:{"0":2.66708},H:{"0":0.49255}}; +module.exports={C:{"34":0.01833,"52":0.01466,"59":0.11731,"78":0.00367,"89":0.00367,"91":0.011,"98":0.00367,"99":0.14297,"100":0.65621,"101":0.00367,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"29":0.00367,"38":0.00733,"39":0.00367,"49":0.05132,"55":0.02566,"56":0.00733,"63":0.022,"65":0.29695,"67":0.00733,"68":0.00367,"69":0.00367,"71":0.04766,"73":0.00733,"74":0.011,"75":0.00367,"78":0.00367,"79":0.08798,"80":0.022,"81":0.00733,"83":0.011,"84":0.03666,"85":0.00367,"86":0.01466,"87":0.05132,"88":0.01833,"89":0.02566,"90":0.01466,"91":0.01466,"92":0.04033,"93":0.04399,"94":1.0778,"95":0.01833,"96":1.00448,"97":0.03666,"98":0.08432,"99":0.23462,"100":2.87781,"101":19.4298,"102":1.89899,"103":0.011,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 48 50 51 52 53 54 57 58 59 60 61 62 64 66 70 72 76 77 104"},F:{"28":0.01466,"36":0.00733,"46":0.01833,"78":0.03666,"79":0.02933,"82":0.01466,"83":0.011,"84":0.04033,"85":0.24196,"86":0.06232,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 81 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00367,"18":0.01466,"89":0.00733,"92":0.00367,"96":0.01466,"97":0.011,"98":0.01466,"99":0.05866,"100":0.21629,"101":2.9218,_:"12 13 15 16 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95"},E:{"4":0,"11":0.00367,"13":0.04033,"14":0.13198,"15":0.05499,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.03666,"11.1":0.00367,"12.1":0.01466,"13.1":0.13198,"14.1":0.63055,"15.1":0.12831,"15.2-15.3":0.19063,"15.4":1.14013,"15.5":0.12831},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00755,"6.0-6.1":0,"7.0-7.1":0.0151,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06607,"10.0-10.2":0,"10.3":0.61724,"11.0-11.2":0.00566,"11.3-11.4":0.00944,"12.0-12.1":0.02265,"12.2-12.5":0.34165,"13.0-13.1":0.04153,"13.2":0.0151,"13.3":0.05663,"13.4-13.7":0.16988,"14.0-14.4":0.57571,"14.5-14.8":1.77998,"15.0-15.1":0.73238,"15.2-15.3":1.68938,"15.4":12.72602},P:{"4":0.16233,"5.0-5.4":0.02178,"6.2-6.4":0.01018,"7.2-7.4":0.06087,"8.2":0.10375,"9.2":0.03044,"10.1":0.02035,"11.1-11.2":0.13189,"12.0":0.03044,"13.0":0.09131,"14.0":0.12175,"15.0":0.05073,"16.0":1.16674},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00034,"4.2-4.3":0.00135,"4.4":0,"4.4.3-4.4.4":0.02365},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10631,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":38.72545},S:{"2.5":0},R:{_:"0"},M:{"0":0.2344},Q:{"10.4":0},O:{"0":1.74846},H:{"0":0.42583}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BI.js index 87b30316404558..a960da4f4e1909 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BI.js @@ -1 +1 @@ -module.exports={C:{"28":0.00297,"41":0.00594,"47":0.01783,"52":0.02378,"64":0.00892,"69":0.00297,"72":0.01189,"77":0.00297,"84":0.00297,"88":0.02378,"91":0.03269,"92":0.00892,"94":0.01486,"95":0.01189,"96":0.0951,"97":0.86782,"98":1.99124,"99":0.07133,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 65 66 67 68 70 71 73 74 75 76 78 79 80 81 82 83 85 86 87 89 90 93 100 3.5 3.6"},D:{"22":0.00594,"49":0.06836,"55":0.0208,"59":0.00297,"63":0.00892,"64":0.02378,"65":0.01783,"67":0.00297,"72":0.00892,"74":0.03269,"75":0.00594,"76":0.00297,"77":0.00892,"78":0.00594,"79":0.01189,"80":0.04161,"81":0.62115,"83":0.01783,"84":0.00594,"86":0.01783,"87":0.01783,"88":0.00892,"89":0.00297,"90":0.0208,"91":0.04755,"92":0.00892,"93":0.02378,"94":0.02378,"95":0.05052,"96":0.19615,"97":0.29423,"98":3.09385,"99":10.87158,"100":0.09808,"101":0.00892,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 60 61 62 66 68 69 70 71 73 85 102 103"},F:{"33":0.00297,"42":0.01189,"50":0.01486,"62":0.00594,"68":0.01189,"74":0.00297,"79":0.05944,"82":0.00892,"83":0.0951,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 60 63 64 65 66 67 69 70 71 72 73 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.07727,"13":0.04161,"14":0.02972,"16":0.00297,"17":0.03269,"18":0.13374,"84":0.03269,"85":0.00594,"87":0.00297,"88":0.00297,"89":0.02378,"90":0.01486,"92":0.03269,"93":0.00297,"94":0.04161,"95":0.03566,"96":0.01783,"97":0.28531,"98":0.62115,"99":2.00016,_:"15 79 80 81 83 86 91"},E:{"4":0,"6":0.00594,"9":0.00594,"13":0.00594,"14":0.04161,"15":0.02378,_:"0 5 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00594,"11.1":0.01486,"12.1":0.00892,"13.1":0.06241,"14.1":0.10996,"15.1":0.01189,"15.2-15.3":0.04755,"15.4":0.02378},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0062,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01643,"10.0-10.2":0,"10.3":0.15281,"11.0-11.2":0.01488,"11.3-11.4":0.00558,"12.0-12.1":0.06323,"12.2-12.5":0.76438,"13.0-13.1":0.00279,"13.2":0.01581,"13.3":0.02263,"13.4-13.7":0.13762,"14.0-14.4":0.34344,"14.5-14.8":0.47332,"15.0-15.1":0.17513,"15.2-15.3":0.84249,"15.4":0.06261},P:{"4":0.17455,"5.0-5.4":0.07187,"6.2-6.4":0.01027,"7.2-7.4":0.07187,"8.2":0.03061,"9.2":0.0308,"10.1":0.04107,"11.1-11.2":0.0308,"12.0":0.03125,"13.0":0.02053,"14.0":0.05134,"15.0":0.08214,"16.0":2.04323},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00038,"4.2-4.3":0.00094,"4.4":0,"4.4.3-4.4.4":0.04788},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.13374,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.02108},N:{_:"10 11"},L:{"0":54.7676},S:{"2.5":0.02108},R:{_:"0"},M:{"0":0.05622},Q:{"10.4":0},O:{"0":0.45682},H:{"0":13.49362}}; +module.exports={C:{"24":0.04109,"28":0.00514,"47":0.00514,"50":0.00514,"53":0.0077,"56":0.01798,"64":0.00514,"65":0.00514,"66":0.02568,"67":0.00257,"73":0.00257,"74":0.00257,"77":0.00257,"82":0.00514,"84":0.0077,"88":0.01798,"91":0.01798,"94":0.00257,"95":0.01541,"96":0.01027,"97":0.00514,"98":0.03852,"99":0.40574,"100":1.57162,"101":0.02825,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 51 52 54 55 57 58 59 60 61 62 63 68 69 70 71 72 75 76 78 79 80 81 83 85 86 87 89 90 92 93 102 103 3.5 3.6"},D:{"26":0.01284,"40":0.00257,"43":0.10786,"46":0.00257,"49":0.02825,"50":0.01284,"55":0.01027,"63":0.00257,"64":0.02054,"65":0.01284,"67":0.04622,"69":0.00514,"70":0.01541,"71":0.00514,"73":0.00257,"79":0.03595,"80":0.0077,"81":0.04109,"83":0.00514,"84":0.0077,"85":0.00514,"86":0.01027,"87":0.03082,"88":0.03338,"89":0.01027,"90":0.01798,"91":0.01798,"92":0.0077,"93":0.0077,"94":0.02054,"95":0.01798,"96":0.08218,"97":0.06677,"98":0.12326,"99":0.24653,"100":2.41649,"101":7.85294,"102":1.08626,"103":0.00257,"104":0.00257,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 47 48 51 52 53 54 56 57 58 59 60 61 62 66 68 72 74 75 76 77 78"},F:{"21":0.01284,"42":0.00514,"45":0.0077,"50":0.01027,"74":0.00257,"76":0.00257,"79":0.02054,"84":0.0077,"85":0.29275,"86":0.79094,"87":0.05393,_:"9 11 12 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 46 47 48 49 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.05906,"13":0.01284,"14":0.15408,"17":0.01541,"18":0.06934,"81":0.00257,"83":0.00514,"84":0.01027,"85":0.02054,"88":0.0077,"89":0.03338,"90":0.0077,"92":0.03852,"94":0.0077,"96":0.0077,"97":0.09502,"98":0.01027,"99":0.02054,"100":0.11042,"101":1.76678,_:"15 16 79 80 86 87 91 93 95"},E:{"4":0,"12":1.56391,"13":0.01284,"14":0.01027,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.07961,"14.1":0.04879,"15.1":0.02054,"15.2-15.3":0.00257,"15.4":0.04109,"15.5":0.01027},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00655,"8.1-8.4":0,"9.0-9.2":0.00398,"9.3":0.00455,"10.0-10.2":0,"10.3":0.00455,"11.0-11.2":0.00484,"11.3-11.4":0.00085,"12.0-12.1":0.01537,"12.2-12.5":0.56923,"13.0-13.1":0.03188,"13.2":0.01395,"13.3":0.02732,"13.4-13.7":0.07315,"14.0-14.4":0.23965,"14.5-14.8":0.36602,"15.0-15.1":0.15028,"15.2-15.3":0.34439,"15.4":0.9899},P:{"4":1.50435,"5.0-5.4":0.02019,"6.2-6.4":0.03029,"7.2-7.4":0.09087,"8.2":0.02288,"9.2":0.04039,"10.1":0.02019,"11.1-11.2":0.03029,"12.0":0.02087,"13.0":0.06058,"14.0":0.03029,"15.0":0.02019,"16.0":0.43414},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0003,"4.2-4.3":0.00148,"4.4":0,"4.4.3-4.4.4":0.04281},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01027,"11":0.09758,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":60.24241},S:{"2.5":0.00743},R:{_:"0"},M:{"0":0.43849},Q:{"10.4":0.01486},O:{"0":0.49794},H:{"0":12.01772}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BJ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BJ.js index 7ee024d3c3a6b7..42e257987859b2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BJ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BJ.js @@ -1 +1 @@ -module.exports={C:{"38":0.00541,"41":0.00271,"43":0.00271,"45":0.06226,"47":0.00271,"49":0.00271,"52":0.00541,"56":0.00271,"60":0.00271,"64":0.00271,"65":0.00541,"68":0.00541,"72":0.03248,"74":0.01354,"78":0.02166,"80":0.01083,"85":0.06497,"88":0.01083,"89":0.01083,"90":0.00541,"91":0.06497,"92":0.00541,"93":0.02166,"94":0.00541,"95":0.01624,"96":0.02166,"97":0.74172,"98":1.07197,"99":0.04331,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 44 46 48 50 51 53 54 55 57 58 59 61 62 63 66 67 69 70 71 73 75 76 77 79 81 82 83 84 86 87 100 3.5 3.6"},D:{"11":0.00541,"26":0.02436,"29":0.00271,"32":0.01354,"33":0.00541,"43":0.00541,"44":0.00541,"46":0.00541,"49":0.16513,"57":0.00812,"59":0.00541,"60":0.00271,"62":0.01354,"63":0.12452,"64":0.00271,"67":0.00541,"69":0.00541,"70":0.00541,"71":0.02166,"72":0.01895,"73":0.00541,"74":0.01354,"75":0.02166,"76":0.01083,"77":0.01354,"78":0.01083,"79":0.02166,"80":0.03519,"81":0.02978,"83":0.05414,"84":0.01354,"85":0.11099,"86":0.07038,"87":0.04602,"88":0.09745,"89":0.0785,"90":0.01624,"91":0.02978,"92":0.16783,"93":0.02436,"94":0.10287,"95":0.07309,"96":0.14889,"97":0.60908,"98":3.21862,"99":8.85189,"100":0.08392,"101":0.02707,"102":0.00541,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 30 31 34 35 36 37 38 39 40 41 42 45 47 48 50 51 52 53 54 55 56 58 61 65 66 68 103"},F:{"57":0.05955,"67":0.00271,"68":0.00271,"79":0.01354,"80":0.00541,"82":0.01083,"83":0.05955,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 69 70 71 72 73 74 75 76 77 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01354,"13":0.01354,"16":0.00541,"17":0.00541,"18":0.06497,"84":0.00812,"85":0.00812,"89":0.01354,"90":0.01083,"92":0.02707,"95":0.00541,"96":0.01083,"97":0.02978,"98":0.43041,"99":1.10175,_:"14 15 79 80 81 83 86 87 88 91 93 94"},E:{"4":0,"13":0.00541,"14":0.03519,"15":0.00812,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1 11.1","5.1":0.01624,"9.1":0.00812,"12.1":0.00541,"13.1":0.02166,"14.1":0.02978,"15.1":0.04331,"15.2-15.3":0.02707,"15.4":0.01083},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.0019,"7.0-7.1":0.02213,"8.1-8.4":0.00506,"9.0-9.2":0,"9.3":0.01644,"10.0-10.2":0,"10.3":0.01391,"11.0-11.2":0.0215,"11.3-11.4":0.00696,"12.0-12.1":0.0215,"12.2-12.5":1.47215,"13.0-13.1":0.01771,"13.2":0.01265,"13.3":0.37563,"13.4-13.7":0.21248,"14.0-14.4":0.62984,"14.5-14.8":0.83852,"15.0-15.1":0.59189,"15.2-15.3":1.90342,"15.4":0.15936},P:{"4":0.0529,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.04232,"8.2":0.03061,"9.2":0.01077,"10.1":0.01019,"11.1-11.2":0.02116,"12.0":0.07436,"13.0":0.13754,"14.0":0.02116,"15.0":0.03174,"16.0":0.44436},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00215,"4.2-4.3":0.00501,"4.4":0,"4.4.3-4.4.4":0.07306},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00299,"9":0.00898,"11":0.04488,_:"7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":67.53771},S:{"2.5":0.03647},R:{_:"0"},M:{"0":0.14586},Q:{"10.4":0.16774},O:{"0":0.6272},H:{"0":3.81821}}; +module.exports={C:{"31":0.00261,"43":0.01043,"45":0.09907,"47":0.00521,"48":0.01043,"50":0.00521,"52":0.00782,"56":0.00521,"59":0.00521,"68":0.00261,"69":0.00261,"70":0.00521,"72":0.01825,"74":0.00782,"75":0.00261,"78":0.073,"85":0.08864,"88":0.01304,"89":0.00782,"90":0.00521,"91":0.05996,"92":0.00261,"93":0.00782,"94":0.00521,"95":0.00521,"96":0.01043,"97":0.01825,"98":0.02607,"99":0.38584,"100":1.57984,"101":0.05475,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 44 46 49 51 53 54 55 57 58 60 61 62 63 64 65 66 67 71 73 76 77 79 80 81 82 83 84 86 87 102 103 3.5 3.6"},D:{"28":0.01304,"29":0.00261,"33":0.03911,"43":0.00521,"44":0.00261,"49":0.06778,"50":0.00782,"57":0.01043,"58":0.00261,"59":0.00521,"61":0.00261,"62":0.00261,"63":0.15381,"64":0.00521,"65":0.00782,"68":0.00521,"69":0.00521,"70":0.01043,"71":0.00782,"72":0.00521,"73":0.00521,"74":0.03128,"75":0.00521,"76":0.01304,"77":0.01043,"78":0.03911,"79":0.04953,"80":0.02607,"81":0.01564,"83":0.01564,"84":0.04693,"85":0.01564,"86":0.12253,"87":0.05214,"88":0.07039,"89":0.00782,"90":0.01825,"91":0.06778,"92":0.073,"93":0.02868,"94":0.10689,"95":0.05735,"96":0.15903,"97":0.0756,"98":0.21899,"99":0.23724,"100":2.59397,"101":8.65785,"102":0.7091,"103":0.00261,"104":0.00261,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 30 31 32 34 35 36 37 38 39 40 41 42 45 46 47 48 51 52 53 54 55 56 60 66 67"},F:{"36":0.00261,"57":0.01043,"58":0.00521,"72":0.02868,"76":0.00261,"79":0.02086,"82":0.00782,"83":0.01043,"84":0.02086,"85":0.40148,"86":0.40409,"87":0.02607,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 60 62 63 64 65 66 67 68 69 70 71 73 74 75 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01304,"13":0.00521,"14":0.00261,"16":0.00782,"17":0.01043,"18":0.04432,"84":0.00782,"85":0.00521,"89":0.00782,"90":0.00521,"92":0.02346,"93":0.00261,"95":0.01043,"96":0.00261,"97":0.00261,"98":0.00782,"99":0.05214,"100":0.09646,"101":1.41299,_:"15 79 80 81 83 86 87 88 91 94"},E:{"4":0,"13":0.01043,"14":0.00782,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00521,"12.1":0.00782,"13.1":0.02607,"14.1":0.03389,"15.1":0.0365,"15.2-15.3":0.00782,"15.4":0.09907,"15.5":0.00782},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00774,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02203,"10.0-10.2":0,"10.3":0.00953,"11.0-11.2":0.00476,"11.3-11.4":0.00476,"12.0-12.1":0.01131,"12.2-12.5":1.0121,"13.0-13.1":0.04167,"13.2":0.01072,"13.3":0.20897,"13.4-13.7":0.19468,"14.0-14.4":0.49831,"14.5-14.8":0.83171,"15.0-15.1":0.30065,"15.2-15.3":0.82278,"15.4":1.96883},P:{"4":0.07337,"5.0-5.4":0.02178,"6.2-6.4":0.44592,"7.2-7.4":0.15722,"8.2":0.02288,"9.2":0.01048,"10.1":0.02035,"11.1-11.2":0.02288,"12.0":0.05309,"13.0":0.02288,"14.0":0.01144,"15.0":0.03432,"16.0":0.20592},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00162,"4.2-4.3":0.00997,"4.4":0,"4.4.3-4.4.4":0.04754},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.0073,"11":0.0657,_:"7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":68.4391},S:{"2.5":0.02218},R:{_:"0"},M:{"0":0.14045},Q:{"10.4":0.01478},O:{"0":0.49526},H:{"0":4.07299}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BM.js index 30f13f398b0ad9..a3e3ae49d4788d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BM.js @@ -1 +1 @@ -module.exports={C:{"78":0.03428,"96":0.00381,"97":0.15998,"98":0.43042,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 99 100 3.5 3.6"},D:{"49":0.0419,"77":0.06856,"78":0.00762,"79":0.00762,"80":0.00381,"83":0.01524,"85":0.00762,"86":0.00762,"87":0.0419,"91":0.0838,"92":0.00762,"93":0.01143,"94":0.04571,"95":0.01143,"96":0.09523,"97":0.38852,"98":4.22799,"99":9.46537,"100":0.09142,"101":0.00762,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 81 84 88 89 90 102 103"},F:{"83":0.1257,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00762,"91":0.01143,"95":0.00762,"97":0.04952,"98":0.91797,"99":2.97864,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 92 93 94 96"},E:{"4":0,"13":0.01143,"14":0.16379,"15":0.14474,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.32757,"11.1":0.02285,"12.1":0.03809,"13.1":0.45327,"14.1":0.92559,"15.1":1.16555,"15.2-15.3":1.39029,"15.4":1.76357},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05844,"10.0-10.2":0,"10.3":0.02125,"11.0-11.2":0.01063,"11.3-11.4":0,"12.0-12.1":0.0425,"12.2-12.5":0.41971,"13.0-13.1":0.01063,"13.2":0,"13.3":0.02125,"13.4-13.7":0.20189,"14.0-14.4":0.35596,"14.5-14.8":1.4982,"15.0-15.1":2.7467,"15.2-15.3":43.08652,"15.4":4.63273},P:{"4":0.13469,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.04232,"8.2":0.03061,"9.2":0.01077,"10.1":0.01019,"11.1-11.2":0.02072,"12.0":0.07436,"13.0":0.09325,"14.0":0.02072,"15.0":0.02072,"16.0":1.70958},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.28187,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":7.03908},S:{"2.5":0},R:{_:"0"},M:{"0":0.04334},Q:{"10.4":0},O:{"0":0.01857},H:{"0":0.01172}}; +module.exports={C:{"78":0.02039,"95":0.0068,"99":0.09177,"100":0.37389,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98 101 102 103 3.5 3.6"},D:{"49":0.017,"67":0.04419,"72":0.0102,"76":0.0034,"77":0.03739,"78":0.0102,"79":0.02379,"80":0.0034,"83":0.0068,"85":0.0102,"86":0.02379,"87":0.0102,"88":0.0136,"90":0.0068,"91":0.05099,"92":0.0102,"93":0.0068,"94":0.017,"95":0.0102,"96":0.04759,"97":0.04079,"98":0.06798,"99":0.19714,"100":2.14137,"101":7.41662,"102":0.70699,"103":0.0068,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 73 74 75 81 84 89 104"},F:{"85":0.12576,"86":0.13256,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.0068,"96":0.0068,"97":0.0034,"99":0.26512,"100":0.16315,"101":2.7124,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 98"},E:{"4":0,"13":0.0068,"14":0.10877,"15":0.09177,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.0136,"10.1":0.30251,"11.1":0.02379,"12.1":0.02719,"13.1":0.40788,"14.1":0.49965,"15.1":0.44527,"15.2-15.3":0.60502,"15.4":11.5532,"15.5":2.80078},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.029,"10.0-10.2":0,"10.3":0.04061,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.0116,"12.2-12.5":0.34225,"13.0-13.1":0.0116,"13.2":0.0058,"13.3":0.0058,"13.4-13.7":0.27264,"14.0-14.4":0.20303,"14.5-14.8":0.91654,"15.0-15.1":1.05576,"15.2-15.3":3.73575,"15.4":51.35499},P:{"4":0.20691,"5.0-5.4":0.02178,"6.2-6.4":0.44592,"7.2-7.4":0.15722,"8.2":0.02288,"9.2":0.01048,"10.1":0.02035,"11.1-11.2":0.04138,"12.0":0.05309,"13.0":0.02069,"14.0":0.01144,"15.0":0.01035,"16.0":0.50692},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11217,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":6.11188},S:{"2.5":0},R:{_:"0"},M:{"0":0.06602},Q:{"10.4":0},O:{"0":0.0066},H:{"0":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BN.js index ea29fbe26895c4..3e5100d30beb02 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BN.js @@ -1 +1 @@ -module.exports={C:{"29":0.01259,"32":0.00839,"48":0.0042,"52":0.03358,"78":0.01259,"81":0.00839,"84":0.00839,"86":0.01259,"89":0.01679,"91":0.00839,"95":0.0042,"96":0.01259,"97":0.74707,"98":1.48154,"99":0.03777,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 85 87 88 90 92 93 94 100 3.5 3.6"},D:{"38":0.04197,"43":0.00839,"47":0.07135,"49":0.21405,"50":0.01259,"53":0.01259,"55":0.01259,"62":0.04197,"65":0.03358,"67":0.00839,"68":0.01679,"69":0.00839,"70":0.00839,"72":0.01679,"73":0.01679,"74":0.0042,"75":0.02099,"78":0.02099,"79":0.18047,"80":0.03358,"81":0.05876,"83":0.05456,"84":0.02938,"85":0.00839,"87":0.16788,"88":0.00839,"89":0.02518,"90":0.01679,"91":0.03777,"92":0.06715,"93":0.05456,"94":0.02099,"95":0.05456,"96":0.1385,"97":0.21824,"98":5.88839,"99":21.50963,"100":0.21824,"101":0.01679,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 51 52 54 56 57 58 59 60 61 63 64 66 71 76 77 86 102 103"},F:{"28":0.03358,"36":0.0042,"46":0.03358,"82":0.00839,"83":0.26021,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.01259,"18":0.01259,"84":0.00839,"92":0.01259,"96":0.02099,"97":0.02099,"98":0.58758,"99":1.89285,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"12":0.00839,"13":0.12591,"14":0.2812,"15":0.26021,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.09653,"10.1":0.02099,"11.1":0.03358,"12.1":0.06715,"13.1":0.23923,"14.1":0.76805,"15.1":0.37773,"15.2-15.3":0.36094,"15.4":0.35255},G:{"8":0.00327,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00163,"6.0-6.1":0.00654,"7.0-7.1":0.05719,"8.1-8.4":0,"9.0-9.2":0.03268,"9.3":0.37906,"10.0-10.2":0.00163,"10.3":0.32024,"11.0-11.2":0.03268,"11.3-11.4":0.03921,"12.0-12.1":0.04738,"12.2-12.5":0.92641,"13.0-13.1":0.01961,"13.2":0.01307,"13.3":0.07352,"13.4-13.7":0.17646,"14.0-14.4":0.43461,"14.5-14.8":1.30873,"15.0-15.1":1.46068,"15.2-15.3":8.86048,"15.4":2.14037},P:{"4":0.37265,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.05324,"8.2":0.03061,"9.2":0.02129,"10.1":0.02129,"11.1-11.2":0.04259,"12.0":0.01065,"13.0":0.07453,"14.0":0.02129,"15.0":0.05324,"16.0":1.77809},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00095,"4.2-4.3":0.00285,"4.4":0,"4.4.3-4.4.4":0.01361},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04197,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":36.21278},S:{"2.5":0},R:{_:"0"},M:{"0":0.22632},Q:{"10.4":0},O:{"0":1.64225},H:{"0":1.69762}}; +module.exports={C:{"44":0.01584,"48":0.00396,"52":0.03167,"55":0.01188,"78":0.0198,"89":0.00792,"95":0.00396,"97":0.0198,"98":0.0198,"99":0.43153,"100":1.93595,"101":0.03563,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 91 92 93 94 96 102 103 3.5 3.6"},D:{"38":0.02771,"43":0.00396,"47":0.04751,"49":0.25734,"50":0.00396,"55":0.01584,"60":0.00792,"62":0.01584,"65":0.01584,"66":0.00792,"68":0.00792,"72":0.01188,"73":0.0198,"74":0.01188,"75":0.01188,"78":0.02771,"79":0.20191,"80":0.06334,"81":0.03167,"83":0.03167,"84":0.05147,"86":0.01584,"87":0.10689,"88":0.03167,"89":0.01584,"90":0.00396,"91":0.03563,"92":0.06334,"93":0.05147,"94":0.01188,"95":0.05147,"96":0.04355,"97":0.07522,"98":0.09898,"99":0.20191,"100":4.39449,"101":18.92006,"102":1.8053,"103":0.02375,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 51 52 53 54 56 57 58 59 61 63 64 67 69 70 71 76 77 85 104"},F:{"28":0.03563,"36":0.00396,"46":0.04751,"60":0.00396,"84":0.02771,"85":0.47508,"86":0.39986,"87":0.02771,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01188,"97":0.00792,"99":0.02375,"100":0.19399,"101":2.11015,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98"},E:{"4":0,"13":0.07126,"14":0.1544,"15":0.11877,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.20191,"10.1":0.02771,"11.1":0.03167,"12.1":0.06334,"13.1":0.21775,"14.1":0.60177,"15.1":0.22566,"15.2-15.3":0.21775,"15.4":2.79901,"15.5":0.20587},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00704,"7.0-7.1":0.04226,"8.1-8.4":0,"9.0-9.2":0.00704,"9.3":0.42434,"10.0-10.2":0,"10.3":0.25002,"11.0-11.2":0.01937,"11.3-11.4":0.03521,"12.0-12.1":0.07219,"12.2-12.5":0.79409,"13.0-13.1":0.02289,"13.2":0.00528,"13.3":0.03345,"13.4-13.7":0.09684,"14.0-14.4":0.3275,"14.5-14.8":0.91734,"15.0-15.1":0.76944,"15.2-15.3":1.80476,"15.4":11.97126},P:{"4":0.50246,"5.0-5.4":0.02178,"6.2-6.4":0.01024,"7.2-7.4":0.05234,"8.2":0.02288,"9.2":0.09421,"10.1":0.01047,"11.1-11.2":0.0314,"12.0":0.02068,"13.0":0.05234,"14.0":0.04187,"15.0":0.0314,"16.0":0.66994},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00065,"4.2-4.3":0.00086,"4.4":0,"4.4.3-4.4.4":0.01057},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06334,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":37.3055},S:{"2.5":0},R:{_:"0"},M:{"0":0.2296},Q:{"10.4":0},O:{"0":1.45612},H:{"0":1.97346}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BO.js index f994ca0be71b0c..180b32a3ba62fb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BO.js @@ -1 +1 @@ -module.exports={C:{"44":0.00369,"47":0.00369,"52":0.04056,"56":0.00369,"69":0.02212,"72":0.00737,"73":0.00737,"76":0.00369,"78":0.02581,"82":0.00737,"83":0.00737,"84":0.00737,"85":0.01475,"86":0.00737,"88":0.00737,"89":0.01106,"91":0.02581,"92":0.00737,"93":0.01106,"94":0.01106,"95":0.02581,"96":0.05531,"97":0.67841,"98":1.5596,"99":0.01475,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 70 71 74 75 77 79 80 81 87 90 100 3.5 3.6"},D:{"38":0.01844,"47":0.00369,"49":0.05162,"53":0.00369,"62":0.00369,"63":0.0295,"65":0.00737,"66":0.00737,"67":0.01106,"68":0.01106,"69":0.02212,"70":0.0295,"71":0.01106,"72":0.01106,"73":0.00737,"74":0.01475,"75":0.00369,"76":0.01106,"77":0.00737,"78":0.00737,"79":0.1143,"80":0.02212,"81":0.03318,"83":0.0295,"84":0.04424,"85":0.05531,"86":0.04793,"87":0.05531,"88":0.01844,"89":0.04056,"90":0.02212,"91":1.46743,"92":0.05531,"93":0.10692,"94":0.03687,"95":0.04424,"96":0.19541,"97":0.32077,"98":4.7083,"99":20.49972,"100":0.23597,"101":0.00369,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 58 59 60 61 64 102 103"},F:{"28":0.00369,"36":0.00737,"77":0.00737,"82":0.00737,"83":0.41663,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01475},B:{"17":0.00369,"18":0.02212,"84":0.00737,"89":0.00737,"92":0.00737,"95":0.00369,"96":0.01106,"97":0.02212,"98":0.29127,"99":1.39369,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 90 91 93 94"},E:{"4":0,"13":0.00369,"14":0.02581,"15":0.01844,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01475,"11.1":0.00737,"12.1":0.00737,"13.1":0.04424,"14.1":0.08111,"15.1":0.03318,"15.2-15.3":0.02581,"15.4":0.0295},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00302,"6.0-6.1":0.0005,"7.0-7.1":0.00628,"8.1-8.4":0.0005,"9.0-9.2":0.00352,"9.3":0.02287,"10.0-10.2":0.00075,"10.3":0.0382,"11.0-11.2":0.00603,"11.3-11.4":0.00804,"12.0-12.1":0.00176,"12.2-12.5":0.13571,"13.0-13.1":0.00251,"13.2":0.00251,"13.3":0.00905,"13.4-13.7":0.03744,"14.0-14.4":0.10429,"14.5-14.8":0.36414,"15.0-15.1":0.12716,"15.2-15.3":1.46362,"15.4":0.17466},P:{"4":0.44003,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.42979,"8.2":0.03061,"9.2":0.0307,"10.1":0.01023,"11.1-11.2":0.16373,"12.0":0.0614,"13.0":0.16373,"14.0":0.1842,"15.0":0.16373,"16.0":2.1592},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00342,"4.2-4.3":0.01368,"4.4":0,"4.4.3-4.4.4":0.06497},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.09218,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.02525},N:{_:"10 11"},L:{"0":49.80819},S:{"2.5":0},R:{_:"0"},M:{"0":0.13257},Q:{"10.4":0},O:{"0":0.1957},H:{"0":0.4124}}; +module.exports={C:{"44":0.01507,"51":0.00754,"52":0.03014,"56":0.00754,"60":0.00377,"63":0.00754,"68":0.00377,"69":0.00754,"72":0.0113,"73":0.00754,"75":0.00377,"76":0.00377,"78":0.02261,"83":0.00377,"84":0.00377,"85":0.00377,"86":0.00754,"88":0.00754,"89":0.00754,"91":0.03768,"93":0.00377,"94":0.00754,"95":0.00754,"96":0.0113,"97":0.0113,"98":0.04898,"99":0.44839,"100":2.12892,"101":0.02261,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 53 54 55 57 58 59 61 62 64 65 66 67 70 71 74 77 79 80 81 82 87 90 92 102 103 3.5 3.6"},D:{"38":0.0113,"41":0.01507,"47":0.00377,"49":0.04145,"50":0.02638,"53":0.00377,"62":0.00754,"63":0.01507,"65":0.00377,"66":0.00754,"67":0.00377,"68":0.01884,"69":0.01507,"70":0.02261,"71":0.00754,"72":0.0113,"73":0.00754,"74":0.01507,"75":0.00754,"76":0.03014,"77":0.00754,"78":0.0113,"79":0.11304,"80":0.02261,"81":0.02638,"83":0.01507,"84":0.02638,"85":0.07159,"86":0.06782,"87":0.0942,"88":0.01507,"89":0.03768,"90":0.02261,"91":0.27506,"92":0.06782,"93":0.02261,"94":0.03391,"95":0.03391,"96":0.11304,"97":0.12058,"98":0.23738,"99":0.22985,"100":4.31813,"101":19.94779,"102":2.0724,"103":0.0113,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 43 44 45 46 48 51 52 54 55 56 57 58 59 60 61 64 104"},F:{"28":0.03391,"36":0.00377,"46":0.00377,"68":0.01507,"84":0.00754,"85":0.6707,"86":0.69708,"87":0.03014,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00377,"18":0.02638,"84":0.00754,"89":0.00377,"92":0.01507,"94":0.00754,"96":0.00754,"97":0.00754,"98":0.0113,"99":0.01884,"100":0.0829,"101":1.8727,_:"12 13 14 15 17 79 80 81 83 85 86 87 88 90 91 93 95"},E:{"4":0,"14":0.03014,"15":0.00754,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00377,"11.1":0.0113,"12.1":0.00754,"13.1":0.04898,"14.1":0.0829,"15.1":0.01507,"15.2-15.3":0.01884,"15.4":0.20347,"15.5":0.03768},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00473,"6.0-6.1":0,"7.0-7.1":0.01626,"8.1-8.4":0,"9.0-9.2":0.00355,"9.3":0.0198,"10.0-10.2":0.00177,"10.3":0.01064,"11.0-11.2":0.00236,"11.3-11.4":0.00325,"12.0-12.1":0.00266,"12.2-12.5":0.14099,"13.0-13.1":0.00532,"13.2":0.00266,"13.3":0.00739,"13.4-13.7":0.03281,"14.0-14.4":0.10109,"14.5-14.8":0.2273,"15.0-15.1":0.06828,"15.2-15.3":0.19774,"15.4":2.10537},P:{"4":0.44034,"5.0-5.4":0.02178,"6.2-6.4":0.01024,"7.2-7.4":0.49155,"8.2":0.02288,"9.2":0.04096,"10.1":0.02035,"11.1-11.2":0.12289,"12.0":0.04096,"13.0":0.16385,"14.0":0.15361,"15.0":0.11265,"16.0":1.15718},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00648,"4.2-4.3":0.00864,"4.4":0,"4.4.3-4.4.4":0.06589},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07536,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.0187},N:{_:"10 11"},L:{"0":55.68268},S:{"2.5":0},R:{_:"0"},M:{"0":0.12464},Q:{"10.4":0},O:{"0":0.24928},H:{"0":0.4484}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BR.js index b9fdc3109af16a..fbf1bb06145e29 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BR.js @@ -1 +1 @@ -module.exports={C:{"47":0.00375,"51":0.04124,"52":0.05249,"53":0.04124,"54":0.02249,"55":0.04124,"56":0.02999,"57":0.02999,"58":0.01125,"59":0.01125,"60":0.01125,"67":0.00375,"68":0.01125,"72":0.00375,"78":0.02249,"79":0.0075,"80":0.0075,"81":0.0075,"82":0.00375,"88":0.01125,"89":0.0075,"90":0.00375,"91":0.04874,"92":0.00375,"93":0.0075,"94":0.05249,"95":0.01125,"96":0.02249,"97":0.53986,"98":0.87352,"99":0.0075,"100":0.00375,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 61 62 63 64 65 66 69 70 71 73 74 75 76 77 83 84 85 86 87 3.5 3.6"},D:{"38":0.00375,"39":0.01125,"40":0.01125,"41":0.015,"42":0.01125,"43":0.015,"44":0.015,"45":0.015,"46":0.01875,"47":0.02624,"48":0.015,"49":0.03374,"50":0.01125,"51":0.02249,"52":0.0075,"53":0.01125,"54":0.01125,"55":0.015,"56":0.015,"57":0.015,"58":0.02249,"59":0.015,"60":0.01875,"61":0.015,"62":0.02624,"63":0.02624,"64":0.015,"65":0.01875,"66":0.0075,"67":0.0075,"68":0.00375,"69":0.01125,"70":0.0075,"71":0.00375,"72":0.0075,"73":0.0075,"74":0.015,"75":0.04124,"76":0.02624,"77":0.0075,"78":0.015,"79":0.07873,"80":0.02249,"81":0.02999,"83":0.02999,"84":0.07498,"85":0.04874,"86":0.06748,"87":0.08248,"88":0.01875,"89":0.04124,"90":0.08248,"91":1.06847,"92":0.04874,"93":0.32241,"94":0.04499,"95":0.04874,"96":0.16496,"97":0.27743,"98":5.59351,"99":19.40857,"100":0.05624,"101":0.015,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 102 103"},F:{"28":0.00375,"36":0.01875,"82":0.01125,"83":1.37213,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00375,"15":0.02624,"16":0.00375,"17":0.00375,"18":0.01875,"84":0.00375,"85":0.00375,"89":0.00375,"91":0.01125,"92":0.0075,"95":0.0075,"96":0.01125,"97":0.06373,"98":0.51736,"99":1.99447,_:"13 14 79 80 81 83 86 87 88 90 93 94"},E:{"4":0,"13":0.0075,"14":0.02624,"15":0.015,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00375,"12.1":0.015,"13.1":0.04499,"14.1":0.08998,"15.1":0.04124,"15.2-15.3":0.03749,"15.4":0.03374},G:{"8":0.00367,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00122,"6.0-6.1":0,"7.0-7.1":0.00122,"8.1-8.4":0,"9.0-9.2":0.01466,"9.3":0.02627,"10.0-10.2":0.02505,"10.3":0.0501,"11.0-11.2":0.00855,"11.3-11.4":0.01466,"12.0-12.1":0.0055,"12.2-12.5":0.20956,"13.0-13.1":0.00672,"13.2":0.00305,"13.3":0.02199,"13.4-13.7":0.0837,"14.0-14.4":0.21201,"14.5-14.8":1.00565,"15.0-15.1":0.37758,"15.2-15.3":3.76356,"15.4":0.27249},P:{"4":0.07174,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.24597,"8.2":0.03061,"9.2":0.0205,"10.1":0.01038,"11.1-11.2":0.08199,"12.0":0.0205,"13.0":0.09224,"14.0":0.10249,"15.0":0.08199,"16.0":1.92676},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00313,"4.2-4.3":0.01094,"4.4":0,"4.4.3-4.4.4":0.04219},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02249,"9":0.02624,"10":0.0075,"11":0.13496,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":44.2418},S:{"2.5":0},R:{_:"0"},M:{"0":0.11252},Q:{"10.4":0},O:{"0":0.07501},H:{"0":0.16571}}; +module.exports={C:{"19":0.01786,"47":0.00447,"51":0.02233,"52":0.04019,"53":0.02233,"54":0.0134,"55":0.02233,"56":0.01786,"57":0.01786,"58":0.00447,"59":0.00893,"60":0.0134,"67":0.00447,"68":0.0134,"72":0.00447,"78":0.0268,"79":0.00447,"80":0.00893,"81":0.00893,"82":0.00447,"83":0.00447,"88":0.0134,"89":0.00447,"90":0.00447,"91":0.07146,"94":0.06699,"95":0.00893,"96":0.0134,"97":0.01786,"98":0.01786,"99":0.31262,"100":1.42465,"101":0.00893,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 61 62 63 64 65 66 69 70 71 73 74 75 76 77 84 85 86 87 92 93 102 103 3.5 3.6"},D:{"38":0.00447,"39":0.00447,"40":0.00893,"41":0.01786,"42":0.00893,"43":0.00893,"44":0.00893,"45":0.00893,"46":0.0134,"47":0.0134,"48":0.00893,"49":0.03126,"50":0.00447,"51":0.0134,"52":0.00447,"53":0.00893,"54":0.00447,"55":0.0134,"56":0.00893,"57":0.00893,"58":0.0134,"59":0.00893,"60":0.0134,"61":0.00893,"62":0.00893,"63":0.02233,"64":0.00893,"65":0.0134,"67":0.00893,"68":0.00447,"69":0.0134,"70":0.00893,"72":0.00893,"73":0.00447,"74":0.01786,"75":0.03126,"76":0.03126,"77":0.00447,"78":0.0134,"79":0.09379,"80":0.02233,"81":0.03573,"83":0.04913,"84":0.09825,"85":0.08932,"86":0.09825,"87":0.10718,"88":0.02233,"89":0.04913,"90":0.03573,"91":1.30407,"92":0.04466,"93":0.04466,"94":0.04466,"95":0.03126,"96":0.08039,"97":0.08039,"98":0.10718,"99":0.24116,"100":5.31454,"101":23.1964,"102":2.07669,"103":0.01786,"104":0.00447,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 66 71"},F:{"51":0.00447,"71":0.00447,"82":0.00893,"84":0.00893,"85":1.73281,"86":1.35766,"87":0.04019,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.03573,"16":0.00447,"18":0.02233,"84":0.00447,"86":0.00447,"89":0.00447,"92":0.00893,"96":0.00447,"97":0.0134,"98":0.00893,"99":0.06252,"100":0.11612,"101":3.10834,_:"12 13 14 17 79 80 81 83 85 87 88 90 91 93 94 95"},E:{"4":0,"13":0.00893,"14":0.0268,"15":0.0134,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00447,"12.1":0.0134,"13.1":0.05359,"14.1":0.08485,"15.1":0.0268,"15.2-15.3":0.0268,"15.4":0.28136,"15.5":0.04466},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00267,"6.0-6.1":0,"7.0-7.1":0.00201,"8.1-8.4":0.00067,"9.0-9.2":0.02474,"9.3":0.02607,"10.0-10.2":0.04412,"10.3":0.06485,"11.0-11.2":0.0107,"11.3-11.4":0.01738,"12.0-12.1":0.00735,"12.2-12.5":0.19722,"13.0-13.1":0.00735,"13.2":0.00535,"13.3":0.01939,"13.4-13.7":0.0829,"14.0-14.4":0.18118,"14.5-14.8":0.71669,"15.0-15.1":0.17717,"15.2-15.3":0.48738,"15.4":4.60434},P:{"4":0.0724,"5.0-5.4":0.02178,"6.2-6.4":0.01024,"7.2-7.4":0.23787,"8.2":0.02288,"9.2":0.01034,"10.1":0.02035,"11.1-11.2":0.0724,"12.0":0.02068,"13.0":0.06205,"14.0":0.0724,"15.0":0.04137,"16.0":0.76532},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00361,"4.2-4.3":0.00813,"4.4":0,"4.4.3-4.4.4":0.03253},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0134,"9":0.01786,"10":0.00447,"11":0.11612,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":44.38471},S:{"2.5":0},R:{_:"0"},M:{"0":0.13282},Q:{"10.4":0},O:{"0":0.09961},H:{"0":0.20433}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BS.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BS.js index cec21326745025..0f018d8494f4f7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BS.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BS.js @@ -1 +1 @@ -module.exports={C:{"47":0.04118,"48":0.04118,"52":0.01373,"78":0.01373,"81":0.00458,"88":0.03203,"91":0.04576,"94":0.05491,"95":0.07322,"96":0.0183,"97":0.42099,"98":0.83283,"99":0.00915,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 89 90 92 93 100 3.5 3.6"},D:{"49":0.12813,"56":0.00915,"65":0.03661,"67":0.00458,"71":0.00915,"72":0.00458,"75":0.03203,"76":0.28829,"77":0.01373,"78":0.02288,"79":0.0183,"80":0.01373,"81":0.0183,"83":0.01373,"84":0.00915,"86":0.00915,"87":0.03661,"88":0.0183,"89":0.01373,"90":0.03661,"91":0.05034,"92":0.03661,"93":0.16016,"94":0.02746,"95":0.03661,"96":0.12813,"97":0.59488,"98":5.37222,"99":15.00928,"100":0.17846,"101":0.04118,"102":0.00915,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 66 68 69 70 73 74 85 103"},F:{"83":0.0961,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.01373,"14":0.00915,"15":0.01373,"16":0.03661,"17":0.03203,"18":0.04576,"93":0.0183,"94":0.01373,"95":0.05034,"96":0.02288,"97":0.06406,"98":1.73888,"99":6.26454,_:"12 79 80 81 83 84 85 86 87 88 89 90 91 92"},E:{"4":0,"12":0.00915,"13":0.03661,"14":0.37066,"15":0.15101,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00915,"11.1":0.05491,"12.1":0.0961,"13.1":0.48506,"14.1":1.34077,"15.1":0.45302,"15.2-15.3":0.46675,"15.4":0.42557},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.11146,"10.0-10.2":0.0076,"10.3":0.10893,"11.0-11.2":0.03293,"11.3-11.4":0.02787,"12.0-12.1":0.03293,"12.2-12.5":0.60797,"13.0-13.1":0.0152,"13.2":0.00253,"13.3":0.05826,"13.4-13.7":0.17226,"14.0-14.4":0.69157,"14.5-14.8":2.87014,"15.0-15.1":1.61113,"15.2-15.3":17.2082,"15.4":1.76566},P:{"4":0.12426,"5.0-5.4":0.02071,"6.2-6.4":0.01039,"7.2-7.4":0.35207,"8.2":0.03061,"9.2":0.10355,"10.1":0.01019,"11.1-11.2":0.76626,"12.0":0.04142,"13.0":0.24852,"14.0":0.45562,"15.0":0.10355,"16.0":4.16267},I:{"0":0,"3":0,"4":0.00048,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00191,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01388},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.26541,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":26.92133},S:{"2.5":0},R:{_:"0"},M:{"0":0.1139},Q:{"10.4":0},O:{"0":0.01085},H:{"0":0.06162}}; +module.exports={C:{"45":0.01341,"48":0.01788,"52":0.01341,"72":0.02683,"78":0.01788,"84":0.00894,"88":0.02683,"91":0.06707,"94":0.01788,"95":0.1386,"97":0.00447,"98":0.05365,"99":0.25485,"100":0.87185,"101":0.01341,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 87 89 90 92 93 96 102 103 3.5 3.6"},D:{"49":0.13413,"56":0.00894,"63":0.00894,"65":0.03577,"71":0.00894,"73":0.01788,"75":0.04024,"76":0.26826,"77":0.01341,"78":0.00894,"79":0.01341,"81":0.00447,"83":0.00894,"84":0.01341,"85":0.00894,"86":0.01341,"87":0.03577,"88":0.00447,"89":0.00447,"90":0.04024,"91":0.09389,"92":0.04024,"93":0.14307,"94":0.02236,"95":0.00894,"96":0.06259,"97":0.11178,"98":0.19225,"99":0.23696,"100":4.32793,"101":14.18648,"102":1.24294,"103":0.01788,"104":0.00894,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 64 66 67 68 69 70 72 74 80"},F:{"85":0.18331,"86":0.21908,"87":0.00894,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.00894,"16":0.03577,"17":0.01788,"18":0.04471,"83":0.00447,"84":0.00447,"90":0.05365,"92":0.00447,"93":0.00447,"95":0.01341,"96":0.00894,"97":0.01341,"98":0.02236,"99":0.03577,"100":0.46946,"101":7.10442,_:"12 14 15 79 80 81 85 86 87 88 89 91 94"},E:{"4":0,"13":0.02683,"14":0.22802,"15":0.07601,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02683,"12.1":0.12072,"13.1":0.3398,"14.1":0.90761,"15.1":0.25485,"15.2-15.3":0.24143,"15.4":4.35475,"15.5":0.45157},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.09437,"10.0-10.2":0.00539,"10.3":0.09706,"11.0-11.2":0.01348,"11.3-11.4":0.02696,"12.0-12.1":0.01618,"12.2-12.5":0.48531,"13.0-13.1":0.01618,"13.2":0,"13.3":0.02696,"13.4-13.7":0.09167,"14.0-14.4":0.50688,"14.5-14.8":1.9089,"15.0-15.1":0.67944,"15.2-15.3":1.97361,"15.4":21.00596},P:{"4":0.0104,"5.0-5.4":0.02178,"6.2-6.4":0.01018,"7.2-7.4":0.29113,"8.2":0.10375,"9.2":0.09358,"10.1":0.02035,"11.1-11.2":0.44709,"12.0":0.03119,"13.0":0.23914,"14.0":0.19755,"15.0":0.09358,"16.0":1.82997},I:{"0":0,"3":0,"4":0.00086,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00086,"4.4":0,"4.4.3-4.4.4":0.02592},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19672,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01106},N:{_:"10 11"},L:{"0":27.10615},S:{"2.5":0},R:{_:"0"},M:{"0":0.14928},Q:{"10.4":0},O:{"0":0.01106},H:{"0":0.06281}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BT.js index b3749a08cfb202..2b8ee29c91d8b4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BT.js @@ -1 +1 @@ -module.exports={C:{"29":0.00208,"30":0.00208,"52":0.00416,"68":0.00208,"78":0.00832,"87":0.00624,"88":0.01457,"89":0.00624,"93":0.00416,"94":0.01249,"95":0.00832,"96":0.02289,"97":0.18729,"98":0.39331,"99":0.04578,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 90 91 92 100 3.5 3.6"},D:{"29":0.00208,"37":0.02913,"43":0.01873,"45":0.00208,"49":0.01249,"53":0.00416,"63":0.00208,"65":0.04162,"66":0.01665,"67":0.01041,"69":0.00416,"71":0.00624,"73":0.04578,"78":0.07492,"79":0.02913,"80":0.01249,"81":0.05411,"83":0.00208,"84":0.00832,"85":0.01457,"86":0.00416,"87":0.03122,"88":0.01041,"89":0.01041,"90":0.01041,"91":0.01873,"92":0.03538,"93":0.03122,"94":0.01873,"95":0.02705,"96":0.12902,"97":0.19978,"98":3.12982,"99":12.58381,"100":0.29966,"101":0.0874,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 38 39 40 41 42 44 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 68 70 72 74 75 76 77 102 103"},F:{"82":0.01249,"83":0.02081,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00416,"13":0.00624,"16":0.00208,"17":0.00416,"18":0.00832,"84":0.00624,"85":0.00416,"87":0.06451,"89":0.00416,"92":0.01041,"95":0.00416,"96":0.05827,"97":0.03122,"98":0.16856,"99":0.58476,_:"14 15 79 80 81 83 86 88 90 91 93 94"},E:{"4":0,"13":0.077,"14":0.13943,"15":0.02913,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01873,"12.1":0.02705,"13.1":0.06243,"14.1":0.14359,"15.1":0.0333,"15.2-15.3":0.05203,"15.4":0.02289},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00561,"8.1-8.4":0,"9.0-9.2":0.0016,"9.3":0.01924,"10.0-10.2":0.0016,"10.3":0.00802,"11.0-11.2":0.03367,"11.3-11.4":0.01122,"12.0-12.1":0.02645,"12.2-12.5":0.37673,"13.0-13.1":0.01763,"13.2":0.01122,"13.3":0.07935,"13.4-13.7":0.19238,"14.0-14.4":0.99875,"14.5-14.8":1.42277,"15.0-15.1":1.27529,"15.2-15.3":3.06598,"15.4":0.46651},P:{"4":0.15422,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.19535,"8.2":0.03061,"9.2":0.04113,"10.1":0.01019,"11.1-11.2":0.1131,"12.0":0.04113,"13.0":0.14394,"14.0":0.09253,"15.0":0.16451,"16.0":0.91506},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.00624,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":66.1953},S:{"2.5":0},R:{_:"0"},M:{"0":0.01584},Q:{"10.4":0},O:{"0":3.21511},H:{"0":0.46483}}; +module.exports={C:{"35":0.00461,"47":0.0023,"52":0.00691,"69":0.00461,"72":0.00691,"78":0.02303,"84":0.01152,"87":0.01382,"88":0.02303,"94":0.01382,"95":0.02073,"96":0.00921,"98":0.01382,"99":0.14739,"100":0.53199,"101":0.07139,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 79 80 81 82 83 85 86 89 90 91 92 93 97 102 103 3.5 3.6"},D:{"31":0.0023,"43":0.01152,"49":0.01612,"65":0.02073,"66":0.02533,"67":0.00921,"69":0.00461,"71":0.00921,"73":0.0023,"74":0.00461,"78":0.00921,"79":0.00461,"80":0.02073,"81":0.06218,"83":0.0023,"84":0.0023,"85":0.0023,"87":0.05067,"88":0.02533,"89":0.00691,"90":0.02533,"91":0.01842,"92":0.01382,"93":0.02994,"94":0.00691,"95":0.04376,"96":0.0783,"97":0.03685,"98":0.08291,"99":0.11745,"100":3.26796,"101":12.99583,"102":1.49004,"103":0.08061,"104":0.00921,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 68 70 72 75 76 77 86"},F:{"46":0.0023,"81":0.0023,"85":0.06218,"86":0.10364,"87":0.01152,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0023,"13":0.00461,"15":0.00461,"18":0.02303,"84":0.01152,"85":0.0023,"88":0.0023,"89":0.00461,"90":0.0023,"91":0.0023,"92":0.01842,"93":0.01152,"94":0.01612,"95":0.01612,"96":0.01382,"97":0.00461,"98":0.01152,"99":0.00921,"100":0.09673,"101":1.1492,_:"14 16 17 79 80 81 83 86 87"},E:{"4":0,"13":0.03224,"14":0.05067,"15":0.00921,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00461,"11.1":0.00921,"12.1":0.00921,"13.1":0.05988,"14.1":0.12436,"15.1":0.01612,"15.2-15.3":0.03224,"15.4":0.45599,"15.5":0.04376},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00195,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00098,"10.0-10.2":0.00293,"10.3":0.00879,"11.0-11.2":0.00879,"11.3-11.4":0.01172,"12.0-12.1":0.02931,"12.2-12.5":0.40446,"13.0-13.1":0.02345,"13.2":0.01563,"13.3":0.09476,"13.4-13.7":0.17487,"14.0-14.4":0.95154,"14.5-14.8":1.46639,"15.0-15.1":0.69852,"15.2-15.3":1.17331,"15.4":4.70008},P:{"4":0.13489,"5.0-5.4":0.02178,"6.2-6.4":0.44592,"7.2-7.4":0.10376,"8.2":0.02288,"9.2":0.01038,"10.1":0.02035,"11.1-11.2":0.04151,"12.0":0.05309,"13.0":0.09339,"14.0":0.07263,"15.0":0.13489,"16.0":0.50844},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01152,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":63.94345},S:{"2.5":0},R:{_:"0"},M:{"0":0.01539},Q:{"10.4":0},O:{"0":1.83958},H:{"0":0.64854}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BW.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BW.js index d713648d329616..6c0f117d15dd88 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BW.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BW.js @@ -1 +1 @@ -module.exports={C:{"17":0.00457,"34":0.01827,"38":0.00913,"43":0.00913,"47":0.02284,"49":0.00913,"52":0.0411,"60":0.01827,"66":0.01827,"72":0.0137,"78":0.02284,"81":0.00913,"89":0.0137,"90":0.00913,"91":0.12331,"94":0.02284,"95":0.00913,"96":0.02284,"97":0.9134,"98":1.48428,"99":0.06394,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 82 83 84 85 86 87 88 92 93 100 3.5 3.6"},D:{"38":0.0137,"41":0.00913,"43":0.0411,"49":0.03197,"57":0.01827,"63":0.01827,"64":0.0137,"68":0.01827,"69":0.02284,"70":0.00913,"71":0.00457,"72":0.0137,"73":0.00457,"74":0.01827,"75":0.00913,"76":0.00913,"77":0.00913,"78":0.0137,"79":0.07764,"80":0.0137,"81":0.0274,"83":0.0411,"84":0.00913,"85":0.00913,"86":0.10047,"87":0.03197,"88":0.03197,"89":0.02284,"90":0.03197,"91":0.03654,"92":0.07764,"93":0.56174,"94":0.0411,"95":0.05937,"96":0.25119,"97":0.35623,"98":6.69066,"99":20.82095,"100":0.26489,"101":0.00457,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 44 45 46 47 48 50 51 52 53 54 55 56 58 59 60 61 62 65 66 67 102 103"},F:{"82":0.0137,"83":0.08221,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0548,"13":0.0411,"14":0.02284,"15":0.03197,"16":0.07307,"17":0.0137,"18":0.08221,"84":0.03197,"89":0.01827,"90":0.00457,"91":0.00913,"92":0.0411,"93":0.00457,"94":0.03654,"95":0.0411,"96":0.08221,"97":0.10047,"98":1.37923,"99":4.47109,_:"79 80 81 83 85 86 87 88"},E:{"4":0,"13":0.00457,"14":0.05937,"15":0.06394,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00457,"12.1":0.0137,"13.1":0.15071,"14.1":0.15071,"15.1":0.12788,"15.2-15.3":0.14614,"15.4":0.03654},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00309,"5.0-5.1":0.00663,"6.0-6.1":0.00353,"7.0-7.1":0.02606,"8.1-8.4":0.00088,"9.0-9.2":0.00044,"9.3":0.04947,"10.0-10.2":0.00221,"10.3":0.02341,"11.0-11.2":0.00353,"11.3-11.4":0.00486,"12.0-12.1":0.00928,"12.2-12.5":0.38605,"13.0-13.1":0.00221,"13.2":0.00309,"13.3":0.01237,"13.4-13.7":0.04108,"14.0-14.4":0.23543,"14.5-14.8":0.66697,"15.0-15.1":0.36706,"15.2-15.3":2.23502,"15.4":0.33437},P:{"4":0.30115,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.31154,"8.2":0.03061,"9.2":0.02059,"10.1":0.01038,"11.1-11.2":0.09346,"12.0":0.03115,"13.0":0.10385,"14.0":0.135,"15.0":0.12462,"16.0":1.35},I:{"0":0,"3":0,"4":0.00181,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00091,"4.2-4.3":0.00272,"4.4":0,"4.4.3-4.4.4":0.07063},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00457,"11":0.30599,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.02717},N:{_:"10 11"},L:{"0":48.35694},S:{"2.5":0.02717},R:{_:"0"},M:{"0":0.12496},Q:{"10.4":0},O:{"0":0.93448},H:{"0":0.967}}; +module.exports={C:{"11":0.02124,"34":0.02549,"47":0.0085,"48":0.00425,"52":0.03398,"56":0.00425,"60":0.0085,"66":0.00425,"68":0.01274,"78":0.01274,"81":0.02974,"89":0.01699,"91":0.1062,"95":0.00425,"96":0.0085,"97":0.01274,"98":0.05522,"99":0.54799,"100":1.5845,"101":0.07222,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 49 50 51 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 88 90 92 93 94 102 103 3.5 3.6"},D:{"38":0.01274,"43":0.04248,"49":0.11894,"57":0.0085,"58":0.00425,"60":0.00425,"61":0.0085,"63":0.01274,"66":0.01274,"68":0.0085,"70":0.0085,"72":0.0085,"73":0.01699,"74":0.01699,"75":0.0085,"76":0.0085,"77":0.0085,"78":0.0085,"79":0.04673,"80":0.02124,"81":0.02549,"83":0.05522,"84":0.0085,"85":0.01274,"86":0.03398,"87":0.05522,"88":0.02124,"89":0.02974,"90":0.02124,"91":0.03398,"92":0.05947,"93":0.06797,"94":0.01699,"95":0.02974,"96":0.11045,"97":0.12319,"98":0.14018,"99":0.37807,"100":5.20805,"101":19.34539,"102":1.46131,"103":0.0085,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 59 62 64 65 67 69 71 104"},F:{"28":0.01699,"84":0.02124,"85":0.31435,"86":0.62021,"87":0.02549,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03398,"13":0.02124,"14":0.02974,"15":0.03398,"16":0.03823,"17":0.01274,"18":0.08496,"84":0.01274,"89":0.0085,"90":0.00425,"92":0.02124,"93":0.01274,"94":0.01699,"95":0.01699,"96":0.02549,"97":0.01274,"98":0.05947,"99":0.08921,"100":0.3101,"101":4.60483,_:"79 80 81 83 85 86 87 88 91"},E:{"4":0,"13":0.0085,"14":0.06372,"15":0.01274,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.0085,"13.1":0.06797,"14.1":0.1062,"15.1":0.04248,"15.2-15.3":0.14018,"15.4":0.37807,"15.5":0.06372},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00356,"5.0-5.1":0.00457,"6.0-6.1":0.00102,"7.0-7.1":0.03862,"8.1-8.4":0.00051,"9.0-9.2":0,"9.3":0.05031,"10.0-10.2":0.00102,"10.3":0.0376,"11.0-11.2":0.00254,"11.3-11.4":0.00711,"12.0-12.1":0.00508,"12.2-12.5":0.35266,"13.0-13.1":0.00457,"13.2":0.02795,"13.3":0.02287,"13.4-13.7":0.40652,"14.0-14.4":0.15245,"14.5-14.8":0.53356,"15.0-15.1":0.19869,"15.2-15.3":0.41466,"15.4":2.81315},P:{"4":0.27942,"5.0-5.4":0.02178,"6.2-6.4":0.01024,"7.2-7.4":0.27942,"8.2":0.02288,"9.2":0.01035,"10.1":0.02035,"11.1-11.2":0.05174,"12.0":0.01035,"13.0":0.18628,"14.0":0.11384,"15.0":0.0414,"16.0":0.75547},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00099,"4.2-4.3":0.00263,"4.4":0,"4.4.3-4.4.4":0.0539},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01274,"10":0.00425,"11":0.23364,_:"6 7 8 5.5"},J:{"7":0,"10":0.00575},N:{_:"10 11"},L:{"0":51.11511},S:{"2.5":0.02301},R:{_:"0"},M:{"0":0.22433},Q:{"10.4":0},O:{"0":1.27119},H:{"0":1.26883}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BY.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BY.js index 501a2d19fe440c..5c614c5ff47365 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BY.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BY.js @@ -1 +1 @@ -module.exports={C:{"50":0.03034,"52":0.40954,"55":0.11629,"64":0.01517,"65":0.00506,"68":0.01011,"72":0.01517,"78":0.0455,"80":0.01011,"81":0.01011,"82":0.00506,"83":0.00506,"84":0.01517,"85":0.00506,"86":0.01517,"87":0.01517,"88":0.06573,"89":0.02528,"90":0.01517,"91":0.0809,"92":0.01011,"93":0.01011,"94":0.02528,"95":0.02022,"96":0.05056,"97":0.98086,"98":1.70893,"99":0.00506,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 56 57 58 59 60 61 62 63 66 67 69 70 71 73 74 75 76 77 79 100 3.5 3.6"},D:{"22":0.02022,"26":0.00506,"28":0.00506,"38":0.00506,"43":0.01517,"49":0.13146,"51":0.01011,"53":0.09101,"59":0.01011,"60":0.01011,"63":0.00506,"66":0.00506,"68":0.00506,"69":0.26291,"70":0.01011,"71":0.03034,"72":0.03034,"73":0.01011,"74":0.04045,"75":0.02022,"76":0.01517,"77":0.01517,"78":0.03034,"79":0.07078,"80":0.0455,"81":0.02528,"83":0.07078,"84":0.09101,"85":0.0809,"86":0.19718,"87":0.28314,"88":0.10112,"89":0.06067,"90":0.06067,"91":0.04045,"92":0.24269,"93":0.64211,"94":0.03539,"95":0.0455,"96":0.18202,"97":0.51066,"98":6.17843,"99":18.30778,"100":0.20224,"101":0.01011,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 52 54 55 56 57 58 61 62 64 65 67 102 103"},F:{"36":0.0455,"41":0.01517,"48":0.00506,"53":0.03034,"68":0.00506,"72":0.02022,"76":0.00506,"77":0.21741,"78":0.11629,"79":0.18707,"80":0.13146,"81":0.11123,"82":0.0455,"83":0.67245,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 42 43 44 45 46 47 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.02528},B:{"18":0.03034,"79":0.02022,"83":0.00506,"85":0.01011,"92":0.01011,"97":0.01011,"98":0.30336,"99":1.46624,_:"12 13 14 15 16 17 80 81 84 86 87 88 89 90 91 93 94 95 96"},E:{"4":0,"10":0.01011,"13":0.02022,"14":0.09606,"15":0.03034,_:"0 5 6 7 8 9 11 12 3.1 3.2 6.1 7.1","5.1":0.1264,"9.1":0.00506,"10.1":0.01011,"11.1":0.03034,"12.1":0.01011,"13.1":0.06067,"14.1":0.24774,"15.1":0.15168,"15.2-15.3":0.20224,"15.4":0.18707},G:{"8":0,"3.2":0.00361,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00271,"8.1-8.4":0.00361,"9.0-9.2":0.0009,"9.3":0.02976,"10.0-10.2":0.01172,"10.3":0.03337,"11.0-11.2":0.01714,"11.3-11.4":0.00722,"12.0-12.1":0.03698,"12.2-12.5":0.29042,"13.0-13.1":0.00992,"13.2":0.00631,"13.3":0.05321,"13.4-13.7":0.1425,"14.0-14.4":0.44555,"14.5-14.8":0.99482,"15.0-15.1":0.75581,"15.2-15.3":5.60545,"15.4":0.5619},P:{"4":0.04249,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.02125,"8.2":0.03061,"9.2":0.0106,"10.1":0.01019,"11.1-11.2":0.02125,"12.0":0.07436,"13.0":0.07436,"14.0":0.05311,"15.0":0.04249,"16.0":1.29595},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00282,"4.2-4.3":0.00523,"4.4":0,"4.4.3-4.4.4":0.02656},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02144,"9":0.02144,"11":0.22509,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":35.7048},S:{"2.5":0},R:{_:"0"},M:{"0":0.23237},Q:{"10.4":0},O:{"0":0.15821},H:{"0":1.27782}}; +module.exports={C:{"43":0.00479,"46":0.00479,"50":0.0335,"52":0.32545,"55":0.00957,"57":0.00479,"62":0.00479,"65":0.00479,"68":0.00479,"72":0.00957,"78":0.0335,"79":0.00479,"80":0.01436,"81":0.01436,"82":0.00957,"83":0.01914,"84":0.01914,"86":0.00479,"88":0.06222,"89":0.01914,"91":0.12444,"94":0.01436,"95":0.01436,"96":0.02872,"97":0.04307,"98":0.04786,"99":0.50253,"100":2.03884,"101":0.00957,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 47 48 49 51 53 54 56 58 59 60 61 63 64 66 67 69 70 71 73 74 75 76 77 85 87 90 92 93 102 103 3.5 3.6"},D:{"22":0.01436,"26":0.00479,"38":0.00957,"49":0.11965,"51":0.00957,"53":0.08136,"55":0.01436,"63":0.00479,"64":0.01914,"65":0.00479,"69":0.22494,"70":0.00479,"71":0.00479,"72":0.00957,"73":0.01436,"74":0.07179,"76":0.00479,"77":0.01914,"78":0.01914,"79":0.07179,"80":0.04307,"81":0.04786,"83":0.07179,"84":0.13879,"85":0.08136,"86":0.24409,"87":0.19144,"88":0.07658,"89":0.067,"90":0.08136,"91":0.04307,"92":0.16751,"93":0.01436,"94":0.01914,"95":0.04786,"96":0.11486,"97":0.14358,"98":0.61739,"99":0.26323,"100":4.32654,"101":17.4354,"102":1.82825,"103":0.00957,"104":0.00479,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 52 54 56 57 58 59 60 61 62 66 67 68 75"},F:{"36":0.07179,"49":0.00957,"56":0.00479,"69":0.01914,"70":0.04307,"77":0.00957,"79":0.00957,"80":0.00479,"81":0.00479,"82":0.02393,"83":0.02393,"84":0.07658,"85":2.43607,"86":3.2832,"87":0.22973,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 71 72 73 74 75 76 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01436},B:{"18":0.04786,"83":0.01436,"97":0.00957,"98":0.00479,"99":0.067,"100":0.05743,"101":1.71817,_:"12 13 14 15 16 17 79 80 81 84 85 86 87 88 89 90 91 92 93 94 95 96"},E:{"4":0,"13":0.01436,"14":0.067,"15":0.02393,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.12444,"10.1":0.00957,"11.1":0.02393,"12.1":0.01436,"13.1":0.08136,"14.1":0.14837,"15.1":0.09093,"15.2-15.3":0.07658,"15.4":1.55545,"15.5":0.28716},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00107,"6.0-6.1":0,"7.0-7.1":0.00533,"8.1-8.4":0,"9.0-9.2":0.0032,"9.3":0.03944,"10.0-10.2":0,"10.3":0.0437,"11.0-11.2":0.0405,"11.3-11.4":0.00426,"12.0-12.1":0.02238,"12.2-12.5":0.31869,"13.0-13.1":0.00853,"13.2":0.00533,"13.3":0.04796,"13.4-13.7":0.11831,"14.0-14.4":0.35919,"14.5-14.8":0.71199,"15.0-15.1":0.50095,"15.2-15.3":1.05733,"15.4":7.36402},P:{"4":0.02123,"5.0-5.4":0.02178,"6.2-6.4":0.44592,"7.2-7.4":0.02123,"8.2":0.10375,"9.2":0.03044,"10.1":0.02035,"11.1-11.2":0.01062,"12.0":0.05309,"13.0":0.04247,"14.0":0.04247,"15.0":0.02123,"16.0":0.65826},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00435,"4.2-4.3":0.00652,"4.4":0,"4.4.3-4.4.4":0.03085},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01538,"11":0.1282,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":36.71143},S:{"2.5":0},R:{_:"0"},M:{"0":0.30241},Q:{"10.4":0},O:{"0":0.17206},H:{"0":1.26369}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BZ.js index f7b028e491c331..66503922c7bc18 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/BZ.js @@ -1 +1 @@ -module.exports={C:{"72":0.00383,"78":0.04595,"81":0.34461,"91":0.04595,"93":0.03446,"95":0.01149,"97":0.38673,"98":0.77729,"99":0.00766,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 82 83 84 85 86 87 88 89 90 92 94 96 100 3.5 3.6"},D:{"49":0.01532,"55":0.00383,"69":0.00766,"70":0.01915,"74":0.00383,"75":0.08424,"76":0.06892,"77":0.04212,"79":0.03829,"80":0.00383,"83":0.03063,"84":0.13019,"86":0.00383,"87":0.03446,"88":0.01149,"89":0.00766,"90":0.09573,"91":0.06892,"92":0.78877,"93":0.80026,"94":0.02297,"95":0.0268,"96":0.14167,"97":0.291,"98":4.13915,"99":12.57061,"100":0.13784,"101":0.0268,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 73 78 81 85 102 103"},F:{"28":0.03829,"79":0.00766,"82":0.00383,"83":0.17613,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00766,"17":0.00383,"18":0.00766,"92":0.00383,"93":0.06126,"95":0.01149,"96":0.01915,"97":0.05361,"98":0.90364,"99":3.40398,_:"13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 94"},E:{"4":0,"11":0.05361,"12":0.00766,"13":0.01915,"14":0.04978,"15":0.03829,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00766,"11.1":0.01149,"12.1":0.03446,"13.1":0.09573,"14.1":0.4748,"15.1":0.50926,"15.2-15.3":1.04532,"15.4":0.93045},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00716,"6.0-6.1":0,"7.0-7.1":0.02148,"8.1-8.4":0,"9.0-9.2":0.0358,"9.3":0.07519,"10.0-10.2":0,"10.3":0.06087,"11.0-11.2":0.00716,"11.3-11.4":0.22915,"12.0-12.1":0.00716,"12.2-12.5":0.35088,"13.0-13.1":0.00358,"13.2":0,"13.3":0.03938,"13.4-13.7":0.07161,"14.0-14.4":0.2936,"14.5-14.8":1.33551,"15.0-15.1":1.8869,"15.2-15.3":26.90352,"15.4":4.4505},P:{"4":0.13634,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.28317,"8.2":0.03061,"9.2":0.01077,"10.1":0.01019,"11.1-11.2":0.05244,"12.0":0.07436,"13.0":0.05244,"14.0":0.0839,"15.0":0.04195,"16.0":1.58366},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00065,"4.2-4.3":0.00065,"4.4":0,"4.4.3-4.4.4":0.01722},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06126,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":24.2669},S:{"2.5":0},R:{_:"0"},M:{"0":0.06788},Q:{"10.4":0.01234},O:{"0":0.45048},H:{"0":0.05258}}; +module.exports={C:{"52":0.01039,"78":0.00692,"81":0.38082,"88":0.01385,"91":0.02423,"93":0.01385,"95":0.01731,"96":0.00692,"97":0.00692,"98":0.00692,"99":0.2008,"100":0.93128,"101":0.01039,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 89 90 92 94 102 103 3.5 3.6"},D:{"41":0.05539,"49":0.0277,"56":0.00346,"65":0.00346,"69":0.01039,"75":0.05885,"76":0.06232,"77":0.0277,"79":0.01039,"80":0.00692,"81":0.00692,"84":0.01385,"86":0.00692,"87":0.02077,"88":0.01039,"89":0.00346,"90":0.03116,"91":0.05539,"92":0.01039,"93":0.18349,"94":0.02423,"95":0.0277,"96":0.09347,"97":0.06232,"98":0.04501,"99":1.8314,"100":2.85615,"101":9.794,"102":0.98667,"103":0.01039,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 66 67 68 70 71 72 73 74 78 83 85 104"},F:{"28":0.03808,"79":0.00692,"85":0.50199,"86":0.63701,"87":0.04154,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00346,"14":0.00692,"18":0.00346,"91":0.02077,"92":0.00692,"93":0.04501,"94":0.01039,"96":0.01039,"97":0.01385,"98":0.01385,"99":0.06232,"100":0.1731,"101":3.02925,_:"13 15 16 17 79 80 81 83 84 85 86 87 88 89 90 95"},E:{"4":0,"12":0.00346,"13":0.00692,"14":0.11771,"15":0.0277,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00692,"12.1":0.0727,"13.1":0.0727,"14.1":0.11078,"15.1":0.46737,"15.2-15.3":0.22503,"15.4":7.31521,"15.5":0.42583},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01246,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01246,"9.0-9.2":0.02492,"9.3":0.10383,"10.0-10.2":0,"10.3":0.10798,"11.0-11.2":0,"11.3-11.4":0.20351,"12.0-12.1":0,"12.2-12.5":0.26996,"13.0-13.1":0,"13.2":0.00831,"13.3":0.02492,"13.4-13.7":0.05399,"14.0-14.4":0.24504,"14.5-14.8":0.88048,"15.0-15.1":0.61883,"15.2-15.3":2.83666,"15.4":36.09987},P:{"4":0.07337,"5.0-5.4":0.02178,"6.2-6.4":0.44592,"7.2-7.4":0.15722,"8.2":0.10375,"9.2":0.01048,"10.1":0.02035,"11.1-11.2":0.04192,"12.0":0.05309,"13.0":0.02096,"14.0":0.15722,"15.0":0.03144,"16.0":0.59742},I:{"0":0,"3":0,"4":0.00047,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00016,"4.4":0,"4.4.3-4.4.4":0.01245},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.2458,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":22.67525},S:{"2.5":0},R:{_:"0"},M:{"0":0.07192},Q:{"10.4":0.01961},O:{"0":0.49035},H:{"0":0.07428}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CA.js index 12e6cc2c039f08..d91bcc2206ee0d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CA.js @@ -1 +1 @@ -module.exports={C:{"38":0.01749,"43":0.01749,"44":0.06412,"45":0.01749,"48":0.01166,"50":0.01166,"51":0.05829,"52":0.09326,"53":0.05829,"54":0.03497,"55":0.14573,"56":0.04663,"57":0.0408,"58":0.01749,"59":0.01749,"66":0.01166,"68":0.00583,"77":0.01166,"78":0.08744,"79":0.01166,"80":0.01166,"81":0.01166,"82":0.01166,"83":0.00583,"87":0.0408,"88":0.01166,"89":0.01166,"90":0.01166,"91":0.06995,"92":0.00583,"93":0.00583,"94":0.01749,"95":0.01749,"96":0.04663,"97":1.10168,"98":1.76036,"99":0.01166,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 60 61 62 63 64 65 67 69 70 71 72 73 74 75 76 84 85 86 100 3.5 3.6"},D:{"29":0.00583,"39":0.01749,"40":0.01749,"41":0.01749,"42":0.01749,"43":0.01749,"44":0.01749,"45":0.02332,"46":0.02332,"47":0.0408,"48":0.19236,"49":0.14573,"50":0.01749,"51":0.01749,"52":0.01749,"53":0.01749,"54":0.01749,"55":0.01749,"56":0.01749,"57":0.01749,"58":0.02332,"59":0.02915,"60":0.04663,"61":0.02332,"62":0.02332,"63":0.02332,"64":0.02915,"65":0.0408,"66":0.01166,"67":0.02332,"68":0.01166,"69":0.08161,"70":0.01166,"72":0.02332,"73":0.00583,"74":0.01749,"75":0.01166,"76":0.03497,"77":0.01166,"78":0.01749,"79":0.09326,"80":0.05829,"81":0.0408,"83":0.24482,"84":0.11658,"85":0.11075,"86":0.17487,"87":0.17487,"88":0.02915,"89":0.03497,"90":0.05246,"91":0.08161,"92":0.06412,"93":0.37889,"94":0.15738,"95":0.05829,"96":0.38471,"97":0.85686,"98":9.34389,"99":22.90214,"100":0.02915,"101":0.01749,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 71 102 103"},F:{"52":0.01166,"71":0.00583,"82":0.01166,"83":0.17487,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00583,"13":0.00583,"14":0.00583,"15":0.01166,"16":0.01166,"17":0.00583,"18":0.02915,"84":0.01166,"85":0.01749,"86":0.01166,"89":0.00583,"92":0.01166,"94":0.00583,"95":0.01166,"96":0.0408,"97":0.12241,"98":1.55051,"99":5.71242,_:"79 80 81 83 87 88 90 91 93"},E:{"4":0,"8":0.00583,"9":0.02915,"12":0.00583,"13":0.06995,"14":0.36723,"15":0.16904,_:"0 5 6 7 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.02332,"10.1":0.03497,"11.1":0.08161,"12.1":0.15155,"13.1":0.56541,"14.1":1.35233,"15.1":0.37889,"15.2-15.3":0.51878,"15.4":0.30311},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00217,"6.0-6.1":0.00434,"7.0-7.1":0.01084,"8.1-8.4":0.01084,"9.0-9.2":0.02169,"9.3":0.20169,"10.0-10.2":0.03687,"10.3":0.21471,"11.0-11.2":0.09109,"11.3-11.4":0.04988,"12.0-12.1":0.03904,"12.2-12.5":0.91738,"13.0-13.1":0.0347,"13.2":0.01735,"13.3":0.08024,"13.4-13.7":0.29061,"14.0-14.4":0.68749,"14.5-14.8":3.11433,"15.0-15.1":1.15811,"15.2-15.3":13.81279,"15.4":0.88051},P:{"4":0.10985,"5.0-5.4":0.02083,"6.2-6.4":0.01027,"7.2-7.4":0.09373,"8.2":0.01082,"9.2":0.09373,"10.1":0.01099,"11.1-11.2":0.01099,"12.0":0.01099,"13.0":0.05493,"14.0":0.04394,"15.0":0.04394,"16.0":3.04285},I:{"0":0,"3":0,"4":0.00124,"2.1":0,"2.2":0.00288,"2.3":0.00041,"4.1":0.00041,"4.2-4.3":0.00371,"4.4":0,"4.4.3-4.4.4":0.02472},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03703,"9":0.06789,"10":0.01234,"11":0.40734,_:"6 7 5.5"},J:{"7":0,"10":0.00417},N:{_:"10 11"},L:{"0":16.34837},S:{"2.5":0},R:{_:"0"},M:{"0":0.39207},Q:{"10.4":0.00834},O:{"0":0.13347},H:{"0":0.15006}}; +module.exports={C:{"24":0.00543,"38":0.01629,"43":0.02172,"44":0.07058,"45":0.02172,"48":0.01086,"50":0.01086,"51":0.09229,"52":0.11944,"53":0.08686,"54":0.04886,"55":0.15744,"56":0.06515,"57":0.07601,"58":0.02172,"59":0.02172,"66":0.01086,"68":0.00543,"77":0.00543,"78":0.07601,"79":0.01086,"80":0.01086,"81":0.01086,"82":0.01086,"83":0.00543,"87":0.00543,"88":0.01086,"89":0.01086,"91":0.06515,"92":0.00543,"94":0.01086,"95":0.01086,"96":0.01629,"97":0.02172,"98":0.038,"99":0.65691,"100":2.85023,"101":0.01629,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 60 61 62 63 64 65 67 69 70 71 72 73 74 75 76 84 85 86 90 93 102 103 3.5 3.6"},D:{"38":0.00543,"39":0.02172,"40":0.02715,"41":0.03257,"42":0.02715,"43":0.02715,"44":0.02715,"45":0.03257,"46":0.038,"47":0.04886,"48":0.21173,"49":0.15744,"50":0.02172,"51":0.02172,"52":0.02172,"53":0.02715,"54":0.02172,"55":0.02715,"56":0.02715,"57":0.02715,"58":0.038,"59":0.038,"60":0.07601,"61":0.03257,"62":0.03257,"63":0.03257,"64":0.03257,"65":0.04886,"66":0.01086,"67":0.02172,"68":0.01086,"69":0.08144,"70":0.00543,"72":0.01629,"73":0.00543,"74":0.02715,"75":0.01086,"76":0.038,"77":0.01086,"78":0.01629,"79":0.10858,"80":0.06515,"81":0.02715,"83":0.32031,"84":0.1303,"85":0.12487,"86":0.20087,"87":0.16287,"88":0.02715,"89":0.02715,"90":0.02172,"91":0.06515,"92":0.03257,"93":0.10315,"94":0.05972,"95":0.03257,"96":0.14115,"97":0.17916,"98":0.3366,"99":0.55919,"100":7.06313,"101":19.70727,"102":1.14009,"103":0.01629,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 71 104"},F:{"52":0.01086,"68":0.00543,"69":0.00543,"71":0.01086,"85":0.32574,"86":0.27688,"87":0.02172,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 70 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00543},B:{"12":0.01086,"13":0.01086,"14":0.00543,"15":0.01086,"16":0.01086,"18":0.03257,"84":0.00543,"85":0.02172,"86":0.00543,"87":0.00543,"91":0.00543,"92":0.00543,"96":0.01086,"97":0.038,"98":0.02172,"99":0.10858,"100":0.3746,"101":6.17277,_:"17 79 80 81 83 88 89 90 93 94 95"},E:{"4":0,"8":0.01086,"9":0.02715,"12":0.01629,"13":0.07058,"14":0.29317,"15":0.10315,_:"0 5 6 7 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.02172,"10.1":0.03257,"11.1":0.07058,"12.1":0.1303,"13.1":0.53747,"14.1":1.06951,"15.1":0.19544,"15.2-15.3":0.22259,"15.4":4.07718,"15.5":0.34746},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00235,"6.0-6.1":0.0047,"7.0-7.1":0.01175,"8.1-8.4":0.0141,"9.0-9.2":0.03524,"9.3":0.19501,"10.0-10.2":0.04699,"10.3":0.19971,"11.0-11.2":0.04229,"11.3-11.4":0.04934,"12.0-12.1":0.03289,"12.2-12.5":0.88811,"13.0-13.1":0.03054,"13.2":0.0141,"13.3":0.07283,"13.4-13.7":0.25609,"14.0-14.4":0.61087,"14.5-14.8":2.35184,"15.0-15.1":0.63436,"15.2-15.3":1.66579,"15.4":16.33603},P:{"4":0.15215,"5.0-5.4":0.05157,"6.2-6.4":0.03029,"7.2-7.4":0.08252,"8.2":0.02288,"9.2":0.08252,"10.1":0.01087,"11.1-11.2":0.01087,"12.0":0.01087,"13.0":0.04347,"14.0":0.02174,"15.0":0.0326,"16.0":1.07595},I:{"0":0,"3":0,"4":0.00109,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00055,"4.2-4.3":0.00382,"4.4":0,"4.4.3-4.4.4":0.03111},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04526,"9":0.07921,"10":0.01697,"11":0.39603,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":18.31729},S:{"2.5":0},R:{_:"0"},M:{"0":0.46167},Q:{"10.4":0.00914},O:{"0":0.12342},H:{"0":0.18608}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CD.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CD.js index c9281ded831bd5..23c28bf12ba4ad 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CD.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CD.js @@ -1 +1 @@ -module.exports={C:{"17":0.00139,"33":0.00277,"43":0.00277,"45":0.00139,"47":0.00139,"49":0.00416,"52":0.00416,"56":0.00416,"72":0.01662,"78":0.01108,"85":0.00693,"88":0.00277,"89":0.00139,"90":0.00416,"91":0.03601,"92":0.00139,"93":0.00277,"94":0.00416,"95":0.00554,"96":0.01247,"97":0.28531,"98":0.54985,"99":0.01108,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 44 46 48 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 86 87 100 3.5 3.6"},D:{"11":0.00416,"19":0.00416,"29":0.00416,"33":0.00277,"35":0.00139,"37":0.00277,"38":0.00139,"43":0.00554,"45":0.00416,"49":0.00554,"55":0.00416,"57":0.00277,"63":0.00277,"64":0.00554,"65":0.0097,"67":0.00139,"70":0.00416,"74":0.00416,"75":0.01247,"76":0.00693,"77":0.00139,"78":0.00554,"79":0.00831,"80":0.0097,"81":0.0097,"83":0.00416,"84":0.00277,"85":0.00693,"86":0.0097,"87":0.01108,"88":0.04017,"89":0.01247,"90":0.00416,"91":0.00831,"92":0.01939,"93":0.01524,"94":0.0097,"95":0.01108,"96":0.03324,"97":0.14958,"98":1.04429,"99":3.14118,"100":0.04017,"101":0.00139,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 30 31 32 34 36 39 40 41 42 44 46 47 48 50 51 52 53 54 56 58 59 60 61 62 66 68 69 71 72 73 102 103"},F:{"15":0.00139,"34":0.00554,"36":0.00277,"42":0.00554,"44":0.00139,"66":0.00554,"67":0.00139,"68":0.00277,"69":0.00139,"77":0.00139,"79":0.01247,"80":0.00416,"81":0.00277,"82":0.01247,"83":0.0277,_:"9 11 12 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 70 71 72 73 74 75 76 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.05263,"13":0.01524,"14":0.02216,"15":0.01385,"16":0.00693,"17":0.01939,"18":0.06233,"84":0.01524,"85":0.00831,"89":0.00831,"90":0.00831,"92":0.02216,"93":0.00554,"94":0.00277,"95":0.00554,"96":0.03878,"97":0.02632,"98":0.26454,"99":0.75621,_:"79 80 81 83 86 87 88 91"},E:{"4":0,"11":0.00416,"12":0.00277,"13":0.00416,"14":0.0097,"15":0.00693,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00277,"10.1":0.00416,"11.1":0.0097,"12.1":0.00277,"13.1":0.02078,"14.1":0.05679,"15.1":0.01247,"15.2-15.3":0.01801,"15.4":0.01108},G:{"8":0.00077,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03098,"8.1-8.4":0,"9.0-9.2":0.00232,"9.3":0.02168,"10.0-10.2":0.00155,"10.3":0.05343,"11.0-11.2":0.0302,"11.3-11.4":0.04569,"12.0-12.1":0.07899,"12.2-12.5":1.97549,"13.0-13.1":0.01626,"13.2":0.26407,"13.3":0.07667,"13.4-13.7":0.27723,"14.0-14.4":0.92386,"14.5-14.8":1.44503,"15.0-15.1":0.69464,"15.2-15.3":1.69748,"15.4":0.10764},P:{"4":0.30832,"5.0-5.4":0.0319,"6.2-6.4":0.01013,"7.2-7.4":0.09569,"8.2":0.02072,"9.2":0.04253,"10.1":1.03318,"11.1-11.2":0.0319,"12.0":0.01063,"13.0":0.0319,"14.0":0.05316,"15.0":0.04253,"16.0":0.53158},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00158,"4.2-4.3":0.01985,"4.4":0,"4.4.3-4.4.4":0.08194},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00147,"11":0.13841,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.00861},N:{"10":0.02584,_:"11"},L:{"0":50.36459},S:{"2.5":0.08614},R:{_:"0"},M:{"0":0.18089},Q:{"10.4":0.05168},O:{"0":0.58575},H:{"0":29.4402}}; +module.exports={C:{"27":0.00277,"38":0.00138,"42":0.00415,"43":0.00415,"47":0.00277,"48":0.00138,"51":0.00277,"52":0.00553,"56":0.00277,"60":0.00138,"66":0.00415,"72":0.01106,"78":0.01245,"89":0.00277,"90":0.00277,"91":0.02075,"94":0.00138,"95":0.00277,"96":0.00277,"97":0.00277,"98":0.01106,"99":0.15075,"100":0.54629,"101":0.01245,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 39 40 41 44 45 46 49 50 53 54 55 57 58 59 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 92 93 102 103 3.5 3.6"},D:{"11":0.00415,"18":0.00277,"21":0.00277,"33":0.08436,"38":0.00138,"43":0.00415,"47":0.00138,"49":0.00138,"50":0.00138,"55":0.00277,"57":0.00138,"60":0.00138,"63":0.00277,"64":0.00553,"65":0.00138,"67":0.00277,"70":0.00277,"71":0.00277,"72":0.00277,"73":0.00415,"74":0.00553,"75":0.00138,"76":0.00277,"77":0.01936,"78":0.00277,"79":0.00968,"80":0.00553,"81":0.00415,"83":0.00277,"84":0.00277,"85":0.0083,"86":0.01798,"87":0.0083,"88":0.0083,"89":0.00968,"90":0.01521,"91":0.00553,"92":0.01245,"93":0.0083,"94":0.02766,"95":0.00415,"96":0.02213,"97":0.02351,"98":0.05117,"99":0.0567,"100":0.88789,"101":2.44929,"102":0.25862,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 39 40 41 42 44 45 46 48 51 52 53 54 56 58 59 61 62 66 68 69 103 104"},F:{"15":0.00277,"20":0.00277,"34":0.00277,"42":0.00415,"68":0.00277,"79":0.01245,"80":0.00277,"81":0.00138,"82":0.00277,"83":0.00277,"84":0.0166,"85":0.17011,"86":0.2683,"87":0.04011,_:"9 11 12 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.00138},B:{"12":0.07053,"13":0.01936,"14":0.01383,"15":0.0166,"16":0.00415,"17":0.04287,"18":0.03596,"84":0.01245,"85":0.00692,"88":0.00138,"89":0.01936,"90":0.00553,"92":0.01521,"95":0.00553,"96":0.00415,"97":0.00553,"98":0.00692,"99":0.02489,"100":0.10096,"101":0.89618,_:"79 80 81 83 86 87 91 93 94"},E:{"4":0,"13":0.00415,"14":0.01383,"15":0.00277,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00277,"10.1":0.00277,"11.1":0.00692,"12.1":0.00415,"13.1":0.02351,"14.1":0.04979,"15.1":0.00277,"15.2-15.3":0.00692,"15.4":0.04979,"15.5":0.01798},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0015,"6.0-6.1":0,"7.0-7.1":0.00375,"8.1-8.4":0.0015,"9.0-9.2":0.0015,"9.3":0.02175,"10.0-10.2":0.0015,"10.3":0.05699,"11.0-11.2":0.0255,"11.3-11.4":0.03524,"12.0-12.1":0.0315,"12.2-12.5":1.63476,"13.0-13.1":0.03599,"13.2":0.24746,"13.3":0.3427,"13.4-13.7":0.27671,"14.0-14.4":0.84438,"14.5-14.8":0.95011,"15.0-15.1":0.77839,"15.2-15.3":0.83238,"15.4":1.3723},P:{"4":0.18237,"5.0-5.4":0.02146,"6.2-6.4":0.0304,"7.2-7.4":0.15019,"8.2":0.22305,"9.2":0.05364,"10.1":0.29386,"11.1-11.2":0.02146,"12.0":0.0304,"13.0":0.02146,"14.0":0.09655,"15.0":0.02146,"16.0":0.31111},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0019,"4.2-4.3":0.01305,"4.4":0,"4.4.3-4.4.4":0.07121},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.065,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00862},N:{"10":0.01723,_:"11"},L:{"0":51.13896},S:{"2.5":0.06031},R:{_:"0"},M:{"0":0.06893},Q:{"10.4":0.03446},O:{"0":0.55142},H:{"0":30.29537}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CF.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CF.js index a82de7826ed94b..691b174c044024 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CF.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CF.js @@ -1 +1 @@ -module.exports={C:{"31":0.00271,"43":0.00543,"44":0.00543,"58":0.00271,"60":0.00814,"63":0.00814,"68":0.00271,"72":0.00543,"81":0.00543,"85":0.00543,"91":0.23874,"96":0.01085,"97":0.63484,"98":2.55293,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 45 46 47 48 49 50 51 52 53 54 55 56 57 59 61 62 64 65 66 67 69 70 71 73 74 75 76 77 78 79 80 82 83 84 86 87 88 89 90 92 93 94 95 99 100 3.5 3.6"},D:{"51":0.07325,"52":0.00543,"60":0.00271,"69":0.00271,"70":0.02713,"74":0.00271,"76":0.00271,"80":0.02442,"83":0.0217,"85":0.00271,"86":0.01085,"87":0.0217,"89":0.03256,"91":0.0217,"93":0.01628,"95":0.00814,"96":0.05426,"97":0.08953,"98":2.27349,"99":12.87319,"100":0.05155,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 71 72 73 75 77 78 79 81 84 88 90 92 94 101 102 103"},F:{"21":0.01899,"79":0.00814,"83":0.02442,_:"9 11 12 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01628,"13":0.00814,"14":0.05155,"15":0.00543,"16":0.00543,"17":0.04612,"18":0.03798,"80":0.00543,"84":0.00814,"85":0.01899,"88":0.00543,"92":0.01628,"94":0.00814,"96":0.00814,"97":0.01628,"98":0.21975,"99":0.49919,_:"79 81 83 86 87 89 90 91 93 95"},E:{"4":0,"11":0.0407,"13":0.00543,_:"0 5 6 7 8 9 10 12 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1 15.4","11.1":0.04341,"13.1":0.01899,"14.1":0.01628,"15.1":0.00271,"15.2-15.3":0.00271},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02584,"10.0-10.2":0,"10.3":0.00861,"11.0-11.2":0.36922,"11.3-11.4":0.01292,"12.0-12.1":0.01005,"12.2-12.5":0.19523,"13.0-13.1":0,"13.2":0.00287,"13.3":0.01005,"13.4-13.7":0.03015,"14.0-14.4":0.47976,"14.5-14.8":0.53718,"15.0-15.1":0.4209,"15.2-15.3":0.69365,"15.4":0.07465},P:{"4":0.32742,"5.0-5.4":0.02046,"6.2-6.4":0.01027,"7.2-7.4":0.0307,"8.2":0.02072,"9.2":0.06139,"10.1":0.01043,"11.1-11.2":0.05116,"12.0":0.46934,"13.0":0.05116,"14.0":0.12278,"15.0":0.05116,"16.0":0.77761},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00109,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.06449},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.86273,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00729},N:{_:"10 11"},L:{"0":62.51873},S:{"2.5":0.08016},R:{_:"0"},M:{"0":0.19675},Q:{"10.4":0},O:{"0":0.84529},H:{"0":9.40315}}; +module.exports={C:{"3":0.00333,"45":0.00666,"51":0.06997,"60":0.00333,"69":0.00333,"72":0.00666,"79":0.00666,"82":0.00666,"84":0.00666,"88":0.00666,"91":0.14994,"93":0.06997,"97":0.00666,"98":0.67306,"99":0.57644,"100":1.14621,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 78 80 81 83 85 86 87 89 90 92 94 95 96 101 102 103 3.5 3.6"},D:{"49":0.01666,"51":0.02999,"52":0.01,"58":0.00666,"64":0.00333,"68":0.02332,"70":0.01,"73":0.00333,"76":0.01333,"79":0.00333,"81":0.00333,"83":0.04998,"84":0.00333,"86":0.01666,"87":0.00666,"88":0.12328,"89":0.00666,"90":0.00333,"91":0.04665,"95":0.00333,"96":0.00666,"97":0.01666,"98":0.02332,"99":0.01,"100":4.77809,"101":11.37545,"102":0.92296,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 53 54 55 56 57 59 60 61 62 63 65 66 67 69 71 72 74 75 77 78 80 85 92 93 94 103 104"},F:{"42":0.00333,"79":0.01333,"85":0.16993,"86":0.44982,"87":0.03665,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02666,"13":0.06664,"14":0.01333,"15":0.00333,"16":0.00666,"17":0.13661,"18":0.05664,"84":0.00666,"85":0.01666,"89":0.01,"90":0.01666,"92":0.01,"97":0.02332,"98":0.00666,"99":0.09663,"100":0.05331,"101":0.99294,_:"79 80 81 83 86 87 88 91 93 94 95 96"},E:{"4":0,"13":0.00333,"14":0.01333,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00333,"12.1":0.01666,"13.1":0.02332,"14.1":0.01333,"15.1":0.01,"15.2-15.3":0.01,"15.4":0.01333,"15.5":0.00333},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00849,"9.3":0.01433,"10.0-10.2":0,"10.3":0.00372,"11.0-11.2":0.08306,"11.3-11.4":0.0061,"12.0-12.1":0.01804,"12.2-12.5":0.13719,"13.0-13.1":0.00372,"13.2":0,"13.3":0.01088,"13.4-13.7":0.02892,"14.0-14.4":0.77591,"14.5-14.8":0.2911,"15.0-15.1":0.45589,"15.2-15.3":0.2765,"15.4":0.54001},P:{"4":0.05014,"5.0-5.4":0.08022,"6.2-6.4":0.01003,"7.2-7.4":0.01003,"8.2":0.02288,"9.2":0.43116,"10.1":0.02077,"11.1-11.2":0.03008,"12.0":0.05014,"13.0":0.01003,"14.0":0.06016,"15.0":0.03008,"16.0":0.51138},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0833,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":63.62307},S:{"2.5":0.05334},R:{_:"0"},M:{"0":0.05334},Q:{"10.4":0},O:{"0":0.74015},H:{"0":8.18143}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CG.js index 12226d7ca0c547..cc3a0329b53e47 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CG.js @@ -1 +1 @@ -module.exports={C:{"32":0.00693,"39":0.00693,"43":0.00347,"47":0.00693,"48":0.00347,"52":0.01386,"60":0.0104,"65":0.00693,"72":0.00693,"78":0.02079,"84":0.00693,"89":0.00347,"90":0.00693,"91":0.04505,"92":0.00347,"95":0.00693,"96":0.0104,"97":0.84893,"98":1.8018,"99":0.02772,"100":0.04851,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 40 41 42 44 45 46 49 50 51 53 54 55 56 57 58 59 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 87 88 93 94 3.5 3.6"},D:{"11":0.00693,"33":0.0104,"42":0.0104,"43":0.00693,"49":0.00693,"50":0.02079,"63":0.00693,"64":0.00347,"67":0.00693,"69":0.02079,"73":0.00347,"75":0.0104,"76":0.00347,"79":0.04158,"81":0.03812,"83":0.01386,"84":0.0104,"85":0.00693,"86":0.05891,"87":0.00693,"88":0.00693,"89":0.0104,"90":0.08663,"91":0.01733,"92":0.02772,"93":0.0104,"94":0.01386,"95":0.01733,"96":0.06237,"97":0.21137,"98":2.46362,"99":8.62785,"100":0.05891,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 62 65 66 68 70 71 72 74 77 78 80 101 102 103"},F:{"28":0.00693,"77":0.00693,"79":0.0104,"80":0.00347,"82":0.0104,"83":0.05891,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.04158,"13":0.01733,"14":0.02079,"15":0.00693,"16":0.12128,"17":0.01733,"18":0.04505,"84":0.02079,"89":0.0104,"90":0.01386,"92":0.01733,"95":0.00693,"96":0.02079,"97":0.0797,"98":0.89051,"99":4.04712,_:"79 80 81 83 85 86 87 88 91 93 94"},E:{"4":0,"13":0.00693,"14":0.00347,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00347,"11.1":0.00347,"12.1":0.00347,"13.1":0.19404,"14.1":0.04505,"15.1":0.00347,"15.2-15.3":0.01386,"15.4":0.01386},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.04971,"8.1-8.4":0,"9.0-9.2":0.01015,"9.3":0.02435,"10.0-10.2":0.00101,"10.3":0.0487,"11.0-11.2":0.05884,"11.3-11.4":0.02536,"12.0-12.1":0.00406,"12.2-12.5":3.82785,"13.0-13.1":0.00406,"13.2":0.00913,"13.3":0.00913,"13.4-13.7":0.56814,"14.0-14.4":0.42103,"14.5-14.8":0.8583,"15.0-15.1":0.56814,"15.2-15.3":3.40275,"15.4":0.25161},P:{"4":0.32051,"5.0-5.4":0.0319,"6.2-6.4":0.01013,"7.2-7.4":0.10339,"8.2":0.02072,"9.2":0.02068,"10.1":1.03318,"11.1-11.2":0.08271,"12.0":0.02068,"13.0":0.04136,"14.0":0.04136,"15.0":0.02068,"16.0":0.73407},I:{"0":0,"3":0,"4":0.00024,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01394,"4.2-4.3":0.01467,"4.4":0,"4.4.3-4.4.4":0.09531},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.09702,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.03268},N:{"10":0.02584,_:"11"},L:{"0":61.16702},S:{"2.5":0.38557},R:{_:"0"},M:{"0":0.06535},Q:{"10.4":0.06535},O:{"0":0.87569},H:{"0":1.12602}}; +module.exports={C:{"43":0.00375,"52":0.00751,"56":0.00375,"66":0.01126,"72":0.00375,"78":0.00375,"88":0.00375,"91":0.03379,"94":0.01877,"96":0.00375,"97":0.02252,"98":0.01126,"99":0.73203,"100":2.85304,"101":0.00751,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 95 102 103 3.5 3.6"},D:{"11":0.00751,"31":0.00375,"38":0.01126,"40":0.00751,"42":0.00751,"53":0.00751,"58":0.03003,"63":0.01502,"67":0.01502,"69":0.05256,"73":0.00375,"75":0.00751,"79":0.04129,"80":0.00375,"81":0.09385,"84":0.00751,"85":0.13514,"86":0.03379,"87":0.01126,"88":0.00751,"89":0.03003,"90":0.01877,"91":0.02628,"92":0.04129,"93":0.00751,"94":0.00751,"95":0.01126,"96":0.1389,"97":0.47676,"98":0.12388,"99":0.05631,"100":2.74417,"101":10.62757,"102":0.89721,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 39 41 43 44 45 46 47 48 49 50 51 52 54 55 56 57 59 60 61 62 64 65 66 68 70 71 72 74 76 77 78 83 103 104"},F:{"42":0.00375,"77":0.00375,"79":0.01502,"82":0.01126,"84":0.03003,"85":0.79209,"86":0.86717,"87":0.06006,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01502,"13":0.01502,"14":0.01126,"15":0.00375,"16":0.01502,"17":0.0488,"18":0.13514,"84":0.01502,"85":0.00751,"89":0.01126,"90":0.00751,"92":0.01502,"95":0.00751,"97":0.02252,"98":0.06382,"99":0.02628,"100":0.19896,"101":4.65871,_:"79 80 81 83 86 87 88 91 93 94 96"},E:{"4":0,"15":0.00375,_:"0 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.24776,"11.1":0.00375,"12.1":0.00375,"13.1":0.12764,"14.1":0.03003,"15.1":0.01126,"15.2-15.3":0.00375,"15.4":0.10136,"15.5":0.00375},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0026,"5.0-5.1":0.00433,"6.0-6.1":0,"7.0-7.1":0.03033,"8.1-8.4":0,"9.0-9.2":0.00607,"9.3":0.01387,"10.0-10.2":0.0104,"10.3":0.38909,"11.0-11.2":0.04333,"11.3-11.4":0.01473,"12.0-12.1":0.0104,"12.2-12.5":2.91778,"13.0-13.1":0.05893,"13.2":0.05026,"13.3":0.16205,"13.4-13.7":0.41336,"14.0-14.4":0.23744,"14.5-14.8":0.72099,"15.0-15.1":0.51648,"15.2-15.3":0.77819,"15.4":2.28257},P:{"4":0.47136,"5.0-5.4":0.02146,"6.2-6.4":0.0304,"7.2-7.4":0.32139,"8.2":0.22305,"9.2":0.05364,"10.1":0.29386,"11.1-11.2":0.04285,"12.0":0.0304,"13.0":0.11784,"14.0":0.09655,"15.0":0.01071,"16.0":0.61063},I:{"0":0,"3":0,"4":0.00013,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00329,"4.2-4.3":0.00766,"4.4":0,"4.4.3-4.4.4":0.08886},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.09385,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":57.16208},S:{"2.5":0.27482},R:{_:"0"},M:{"0":0.06246},Q:{"10.4":0.01874},O:{"0":0.51217},H:{"0":1.54337}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CH.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CH.js index 751d17250fcc37..07438899ebf1b5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CH.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CH.js @@ -1 +1 @@ -module.exports={C:{"24":0.01235,"48":0.01235,"50":0.01235,"52":0.03704,"54":0.00617,"57":0.01235,"60":0.00617,"66":0.01235,"68":0.01235,"78":0.14818,"83":0.00617,"84":0.01852,"85":0.01852,"87":0.00617,"88":0.06174,"89":0.01235,"90":0.01852,"91":0.3087,"92":0.01852,"94":0.50009,"95":0.04939,"96":0.08026,"97":2.23499,"98":3.38335,"99":0.01235,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 51 53 55 56 58 59 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 79 80 81 82 86 93 100 3.5 3.6"},D:{"38":0.00617,"49":0.04322,"52":0.13583,"60":0.03087,"63":0.00617,"65":0.03087,"66":0.06174,"67":0.01852,"68":0.01852,"70":0.01235,"72":0.0247,"73":0.00617,"74":0.01852,"75":0.00617,"76":0.00617,"78":0.03087,"79":0.10496,"80":0.08026,"81":0.03087,"83":0.04322,"84":0.09878,"85":0.07409,"86":0.05557,"87":0.15435,"88":0.03087,"89":0.15435,"90":0.05557,"91":0.09261,"92":0.06174,"93":0.59888,"94":0.08644,"95":0.07409,"96":0.50009,"97":0.5927,"98":7.06306,"99":18.48496,"100":0.01235,"101":0.00617,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 61 62 64 69 71 77 102 103"},F:{"77":0.00617,"82":0.01235,"83":0.36427,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.01852,"16":0.01235,"18":0.03704,"84":0.06174,"85":0.01235,"86":0.01852,"87":0.01235,"88":0.01235,"89":0.01235,"90":0.01852,"91":0.01852,"92":0.0247,"93":0.01852,"94":0.04939,"95":0.04322,"96":0.09261,"97":0.25313,"98":3.32779,"99":10.41554,_:"12 13 14 17 79 80 81 83"},E:{"4":0,"10":0.01852,"11":0.00617,"12":0.01235,"13":0.08026,"14":0.4507,"15":0.27783,_:"0 5 6 7 8 9 3.1 3.2 6.1 7.1","5.1":0.00617,"9.1":0.01235,"10.1":0.0247,"11.1":0.08026,"12.1":0.22226,"13.1":0.77175,"14.1":1.58054,"15.1":0.51244,"15.2-15.3":0.64827,"15.4":0.37044},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.004,"8.1-8.4":0.004,"9.0-9.2":0.09207,"9.3":0.1301,"10.0-10.2":0.002,"10.3":0.11809,"11.0-11.2":0.01601,"11.3-11.4":0.08806,"12.0-12.1":0.02602,"12.2-12.5":0.52839,"13.0-13.1":0.02602,"13.2":0.01601,"13.3":0.06004,"13.4-13.7":0.30222,"14.0-14.4":0.83261,"14.5-14.8":3.05025,"15.0-15.1":1.39503,"15.2-15.3":12.65133,"15.4":0.66249},P:{"4":0.10542,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1 11.1-11.2","9.2":0.02108,"12.0":0.02108,"13.0":0.06325,"14.0":0.11596,"15.0":0.08433,"16.0":3.08875},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00057,"4.2-4.3":0.00115,"4.4":0,"4.4.3-4.4.4":0.02123},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.03087,"11":0.37044,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":13.6946},S:{"2.5":0},R:{_:"0"},M:{"0":0.612},Q:{"10.4":0},O:{"0":0.04973},H:{"0":0.20641}}; +module.exports={C:{"24":0.01681,"48":0.01681,"50":0.01681,"52":0.05042,"55":0.0056,"57":0.0112,"66":0.02241,"78":0.15125,"79":0.0112,"80":0.0112,"81":0.01681,"82":0.01681,"83":0.0112,"84":0.0056,"85":0.01681,"88":0.04482,"89":0.0112,"90":0.02241,"91":0.2745,"92":0.0056,"94":0.64983,"95":0.02801,"96":0.03921,"97":0.05602,"98":0.08403,"99":1.21003,"100":5.16504,"101":0.01681,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 51 53 54 56 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 86 87 93 102 103 3.5 3.6"},D:{"38":0.0056,"48":0.0112,"49":0.03921,"52":0.29691,"60":0.03921,"65":0.03361,"66":0.05602,"67":0.02801,"68":0.02241,"69":0.0056,"72":0.02241,"74":0.02241,"77":0.0056,"78":0.03361,"79":0.13445,"80":0.05042,"81":0.03361,"83":0.07283,"84":0.13445,"85":0.11204,"86":0.09523,"87":0.15125,"88":0.01681,"89":0.05042,"90":0.02801,"91":0.04482,"92":0.06722,"93":0.02801,"94":0.03361,"95":0.03921,"96":0.34172,"97":0.11204,"98":0.18487,"99":0.50418,"100":4.36396,"101":17.10291,"102":1.38369,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 50 51 53 54 55 56 57 58 59 61 62 63 64 70 71 73 75 76 103 104"},F:{"71":0.0056,"72":0.0056,"85":0.5602,"86":0.60502,"87":0.02241,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.0056,"15":0.01681,"16":0.01681,"17":0.0056,"18":0.05602,"84":0.0112,"85":0.0112,"86":0.0112,"89":0.0112,"90":0.02801,"91":0.0112,"92":0.01681,"93":0.0112,"94":0.0056,"95":0.05602,"96":0.05042,"97":0.03921,"98":0.07283,"99":0.13445,"100":0.73946,"101":8.78394,_:"12 13 79 80 81 83 87 88"},E:{"4":0,"10":0.01681,"12":0.01681,"13":0.08403,"14":0.42575,"15":0.17926,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1","9.1":0.0112,"10.1":0.02241,"11.1":0.06722,"12.1":0.21288,"13.1":0.80669,"14.1":1.23244,"15.1":0.30811,"15.2-15.3":0.33052,"15.4":4.36956,"15.5":0.52099},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0045,"8.1-8.4":0.00225,"9.0-9.2":0.16654,"9.3":0.16654,"10.0-10.2":0.009,"10.3":0.11027,"11.0-11.2":0.01575,"11.3-11.4":0.09677,"12.0-12.1":0.02476,"12.2-12.5":0.51986,"13.0-13.1":0.02926,"13.2":0.01575,"13.3":0.06301,"13.4-13.7":0.25656,"14.0-14.4":0.75842,"14.5-14.8":2.34277,"15.0-15.1":0.76067,"15.2-15.3":2.0457,"15.4":15.09859},P:{"4":0.10488,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1","9.2":0.02098,"11.1-11.2":0.01049,"12.0":0.02098,"13.0":0.06293,"14.0":0.08391,"15.0":0.05244,"16.0":1.34251},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00116,"4.2-4.3":0.00231,"4.4":0,"4.4.3-4.4.4":0.01852},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00575,"9":0.04023,"11":0.39658,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.6685},Q:{"10.4":0},O:{"0":0.06157},H:{"0":0.24982},L:{"0":16.75693},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CI.js index ed0898d170db91..9220830185cff1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CI.js @@ -1 +1 @@ -module.exports={C:{"43":0.00296,"45":0.00296,"47":0.00592,"52":0.02663,"60":0.00592,"70":0.01184,"71":0.00592,"72":0.02071,"75":0.00888,"78":0.01184,"83":0.00296,"84":0.00296,"85":0.00592,"88":0.01184,"89":0.01184,"91":0.03847,"93":0.00592,"94":0.02071,"95":0.02367,"96":0.03255,"97":0.78118,"98":1.44399,"99":0.02367,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 46 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 73 74 76 77 79 80 81 82 86 87 90 92 100 3.5 3.6"},D:{"11":0.05622,"38":0.00592,"43":0.00592,"49":0.01775,"50":0.00296,"61":0.00888,"63":0.00888,"64":0.00592,"65":0.0148,"66":0.02959,"67":0.01184,"69":0.0148,"70":0.03255,"71":0.00592,"72":0.00888,"73":0.00592,"74":0.04734,"75":0.02071,"76":0.03551,"77":0.04734,"78":0.03551,"79":0.05622,"80":0.04439,"81":0.03551,"83":0.02071,"84":0.03551,"85":0.04143,"86":0.03551,"87":0.10948,"88":0.02959,"89":0.07102,"90":0.05622,"91":0.15683,"92":0.09469,"93":0.12724,"94":0.10357,"95":0.10357,"96":0.25447,"97":0.35212,"98":4.10117,"99":12.3124,"100":0.15683,"101":0.02367,"102":0.00592,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 62 68 103"},F:{"43":0.00296,"81":0.00592,"82":0.00592,"83":0.04734,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00888,"13":0.00888,"14":0.00592,"15":0.00296,"16":0.00296,"17":0.00592,"18":0.02959,"84":0.01184,"89":0.00888,"90":0.00592,"92":0.02367,"93":0.00888,"95":0.00592,"96":0.00888,"97":0.02959,"98":0.46752,"99":1.65704,_:"79 80 81 83 85 86 87 88 91 94"},E:{"4":0,"13":0.00592,"14":0.05326,"15":0.01775,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.01775,"10.1":0.00296,"11.1":0.00888,"12.1":0.00592,"13.1":0.03551,"14.1":0.08285,"15.1":0.03551,"15.2-15.3":0.03847,"15.4":0.02959},G:{"8":0.0089,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01186,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0252,"10.0-10.2":0.00297,"10.3":0.09933,"11.0-11.2":0.44478,"11.3-11.4":0.10082,"12.0-12.1":0.0593,"12.2-12.5":4.52337,"13.0-13.1":0.02965,"13.2":0.02965,"13.3":0.14529,"13.4-13.7":0.31283,"14.0-14.4":1.31061,"14.5-14.8":1.65457,"15.0-15.1":1.61157,"15.2-15.3":3.94072,"15.4":0.52187},P:{"4":0.13642,"5.0-5.4":0.0319,"6.2-6.4":0.01013,"7.2-7.4":0.1679,"8.2":0.02072,"9.2":0.06296,"10.1":0.0408,"11.1-11.2":0.1574,"12.0":0.02099,"13.0":0.04197,"14.0":0.1679,"15.0":0.1679,"16.0":0.74504},I:{"0":0,"3":0,"4":0.00366,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00122,"4.2-4.3":0.01281,"4.4":0,"4.4.3-4.4.4":0.05976},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05622,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01408},N:{"10":0.02584,_:"11"},L:{"0":56.34432},S:{"2.5":0.01408},R:{_:"0"},M:{"0":0.13376},Q:{"10.4":0.01408},O:{"0":0.21824},H:{"0":1.27302}}; +module.exports={C:{"47":0.00297,"52":0.06237,"56":0.00594,"70":0.00297,"71":0.00297,"72":0.00891,"75":0.00891,"78":0.00891,"84":0.00297,"85":0.00297,"88":0.00297,"89":0.00594,"90":0.00297,"91":0.03861,"92":0.00594,"93":0.00594,"94":0.00891,"95":0.00594,"96":0.01188,"97":0.01782,"98":0.11583,"99":0.49896,"100":1.86516,"101":0.01782,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 73 74 76 77 79 80 81 82 83 86 87 102 103 3.5 3.6"},D:{"11":0.03861,"19":0.02079,"26":0.00297,"29":0.00297,"33":0.02376,"43":0.00594,"47":0.00297,"49":0.01782,"55":0.00297,"56":0.00594,"62":0.00297,"63":0.00594,"64":0.01188,"65":0.00594,"66":0.0594,"67":0.00594,"68":0.00891,"69":0.02079,"70":0.01485,"71":0.00594,"74":0.03861,"75":0.00594,"76":0.03267,"77":0.01485,"78":0.02376,"79":0.14553,"80":0.03564,"81":0.01782,"83":0.03861,"84":0.03564,"85":0.02079,"86":0.05346,"87":0.21681,"88":0.02376,"89":0.03267,"90":0.0594,"91":0.05346,"92":0.07722,"93":0.04752,"94":0.05346,"95":0.06237,"96":0.13662,"97":0.15147,"98":0.19305,"99":0.23166,"100":3.24324,"101":11.22957,"102":0.95337,"103":0.02673,"104":0.00891,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 24 25 27 28 30 31 32 34 35 36 37 38 39 40 41 42 44 45 46 48 50 51 52 53 54 57 58 59 60 61 72 73"},F:{"17":0.00297,"76":0.00594,"85":0.24057,"86":0.37125,"87":0.04752,_:"9 11 12 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00891,"13":0.00594,"14":0.00297,"16":0.00297,"17":0.02376,"18":0.03267,"84":0.00891,"85":0.00594,"89":0.00594,"90":0.00594,"92":0.02376,"94":0.00297,"96":0.00594,"97":0.00594,"98":0.00891,"99":0.01485,"100":0.12474,"101":2.02554,_:"15 79 80 81 83 86 87 88 91 93 95"},E:{"4":0,"10":0.00297,"13":0.00594,"14":0.02376,"15":0.01188,_:"0 5 6 7 8 9 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.01188,"11.1":0.00594,"12.1":0.00594,"13.1":0.0297,"14.1":0.05643,"15.1":0.03267,"15.2-15.3":0.01782,"15.4":0.17226,"15.5":0.03564},G:{"8":0.00845,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01831,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.09016,"10.0-10.2":0,"10.3":0.3254,"11.0-11.2":0.18735,"11.3-11.4":0.0493,"12.0-12.1":0.11974,"12.2-12.5":2.91736,"13.0-13.1":0.04226,"13.2":0.01268,"13.3":0.18031,"13.4-13.7":0.21834,"14.0-14.4":1.34528,"14.5-14.8":1.51573,"15.0-15.1":1.03256,"15.2-15.3":1.66082,"15.4":4.35702},P:{"4":0.13476,"5.0-5.4":0.07256,"6.2-6.4":0.04147,"7.2-7.4":0.17623,"8.2":0.22305,"9.2":0.07256,"10.1":0.29386,"11.1-11.2":0.1244,"12.0":0.02073,"13.0":0.0311,"14.0":0.13476,"15.0":0.05183,"16.0":0.58051},I:{"0":0,"3":0,"4":0.0009,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00135,"4.2-4.3":0.00314,"4.4":0,"4.4.3-4.4.4":0.07898},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.03564,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01406},N:{"10":0.06871,_:"11"},L:{"0":57.70677},S:{"2.5":0.01406},R:{_:"0"},M:{"0":0.39368},Q:{"10.4":0.01406},O:{"0":0.20387},H:{"0":1.49084}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CK.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CK.js index 809750c19dfbbb..1cf44549780832 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CK.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CK.js @@ -1 +1 @@ -module.exports={C:{"84":0.00498,"87":0.00498,"89":0.07466,"95":0.00498,"96":0.03982,"97":0.866,"98":0.99042,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 88 90 91 92 93 94 99 100 3.5 3.6"},D:{"49":1.49808,"55":0.02489,"65":0.00995,"67":0.00995,"76":0.00498,"79":8.47583,"83":0.00498,"84":0.02489,"86":0.03484,"87":0.01493,"90":0.05475,"92":0.02489,"93":0.00498,"94":0.06968,"95":0.00498,"96":0.16922,"97":0.53752,"98":6.63932,"99":23.82988,"100":0.45291,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 62 63 64 66 68 69 70 71 72 73 74 75 77 78 80 81 85 88 89 91 101 102 103"},F:{"82":0.00498,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.01493,"18":0.02986,"84":0.01991,"92":0.01493,"94":0.1294,"95":0.00498,"97":0.01493,"98":0.51263,"99":2.165,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 89 90 91 93 96"},E:{"4":0,"13":0.08461,"14":0.59226,"15":0.01991,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.4","12.1":0.20406,"13.1":0.21401,"14.1":0.21401,"15.1":0.10452,"15.2-15.3":0.09954},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01498,"9.0-9.2":0,"9.3":0.00333,"10.0-10.2":0.00998,"10.3":0.03661,"11.0-11.2":0.01664,"11.3-11.4":0.01331,"12.0-12.1":0.00832,"12.2-12.5":0.41769,"13.0-13.1":0.05991,"13.2":0.00832,"13.3":0.07322,"13.4-13.7":0.31452,"14.0-14.4":0.99015,"14.5-14.8":2.45625,"15.0-15.1":1.44446,"15.2-15.3":10.09457,"15.4":0.68395},P:{"4":0.0816,"5.0-5.4":0.0319,"6.2-6.4":0.01013,"7.2-7.4":0.13261,"8.2":0.02072,"9.2":0.02068,"10.1":0.0408,"11.1-11.2":0.14281,"12.0":0.0306,"13.0":0.43862,"14.0":0.41822,"15.0":0.17341,"16.0":3.51914},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.24885,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":28.06019},S:{"2.5":0},R:{_:"0"},M:{"0":0.25115},Q:{"10.4":0},O:{"0":0.42696},H:{"0":0.05707}}; +module.exports={C:{"78":0.04058,"84":0.00451,"88":0.00451,"89":0.02255,"97":0.01804,"98":0.03156,"99":0.32465,"100":1.11823,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 90 91 92 93 94 95 96 101 102 103 3.5 3.6"},D:{"49":0.58617,"55":0.01353,"65":0.01804,"72":0.00902,"79":5.36571,"83":0.02255,"87":0.04058,"91":0.00902,"92":0.01804,"93":0.07214,"94":0.08116,"96":0.01353,"97":0.06313,"98":0.0992,"99":0.32465,"100":6.61921,"101":22.61714,"102":1.80811,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 78 80 81 84 85 86 88 89 90 95 103 104"},F:{"85":0.02705,"86":0.00902,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00902,"17":0.00902,"18":0.01804,"96":0.00451,"99":0.00902,"100":0.0992,"101":2.51151,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 97 98"},E:{"4":0,"13":0.0496,"14":0.09018,"15":0.03607,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01353,"12.1":0.00902,"13.1":0.07214,"14.1":0.3517,"15.1":0.18036,"15.2-15.3":0.10822,"15.4":1.05511,"15.5":0.11723},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00375,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.02063,"11.0-11.2":0,"11.3-11.4":0.01125,"12.0-12.1":0,"12.2-12.5":0.37879,"13.0-13.1":0.09001,"13.2":0,"13.3":0.00938,"13.4-13.7":0.34128,"14.0-14.4":0.95635,"14.5-14.8":2.83341,"15.0-15.1":1.262,"15.2-15.3":1.80956,"15.4":11.02987},P:{"4":0.02026,"5.0-5.4":0.02146,"6.2-6.4":0.0304,"7.2-7.4":0.12153,"8.2":0.22305,"9.2":0.05364,"10.1":0.29386,"11.1-11.2":0.16205,"12.0":0.0304,"13.0":0.22281,"14.0":0.1823,"15.0":0.03038,"16.0":2.35979},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00549},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12625,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":30.95649},S:{"2.5":0},R:{_:"0"},M:{"0":0.1208},Q:{"10.4":0},O:{"0":0.4887},H:{"0":0.11957}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CL.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CL.js index 4005f51c8e8777..583b1cb9513b7d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CL.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CL.js @@ -1 +1 @@ -module.exports={C:{"52":0.02442,"70":0.00407,"73":0.00407,"78":0.02442,"79":0.00407,"88":0.00814,"89":0.00407,"90":0.01221,"91":0.02849,"93":0.00407,"94":0.00407,"95":0.01221,"96":0.02035,"97":0.55759,"98":0.88726,"99":0.01221,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 74 75 76 77 80 81 82 83 84 85 86 87 92 100 3.5 3.6"},D:{"22":0.00407,"38":0.02849,"45":0.00407,"47":0.00814,"49":0.06512,"53":0.01221,"56":0.00407,"63":0.00814,"65":0.00407,"67":0.01221,"68":0.01221,"69":0.11803,"70":0.00407,"72":0.01221,"73":0.00407,"74":0.01221,"75":0.00814,"76":0.00814,"77":0.03663,"78":0.00814,"79":0.15466,"80":0.09768,"81":0.00814,"83":0.01221,"84":0.0407,"85":0.0407,"86":0.03256,"87":0.06512,"88":0.01221,"89":0.05698,"90":0.02442,"91":0.07326,"92":0.06919,"93":0.10582,"94":0.0407,"95":0.04884,"96":0.26048,"97":0.39072,"98":6.86202,"99":21.06632,"100":0.00814,"101":0.00407,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 46 48 50 51 52 54 55 57 58 59 60 61 62 64 66 71 102 103"},F:{"28":0.00407,"30":0.00407,"36":0.00407,"68":0.00407,"77":0.00407,"82":0.01221,"83":1.92918,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00407,"18":0.01628,"86":0.00407,"92":0.01221,"94":0.00407,"95":0.00407,"96":0.02035,"97":0.04477,"98":0.56573,"99":1.96988,_:"12 13 14 15 16 79 80 81 83 84 85 87 88 89 90 91 93"},E:{"4":0,"12":0.01221,"13":0.04477,"14":0.07733,"15":0.05291,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01221,"12.1":0.02849,"13.1":0.13024,"14.1":0.2849,"15.1":0.09361,"15.2-15.3":0.11803,"15.4":0.06512},G:{"8":0,"3.2":0.00078,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00543,"6.0-6.1":0,"7.0-7.1":0.00155,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03799,"10.0-10.2":0.00155,"10.3":0.01706,"11.0-11.2":0.00853,"11.3-11.4":0.01241,"12.0-12.1":0.01396,"12.2-12.5":0.29696,"13.0-13.1":0.01473,"13.2":0.00465,"13.3":0.03567,"13.4-13.7":0.12716,"14.0-14.4":0.34116,"14.5-14.8":1.41426,"15.0-15.1":0.49391,"15.2-15.3":4.55835,"15.4":0.36442},P:{"4":0.15343,"5.0-5.4":0.0709,"6.2-6.4":0.04051,"7.2-7.4":0.08183,"8.2":0.02072,"9.2":0.03069,"10.1":0.03038,"11.1-11.2":0.13297,"12.0":0.02046,"13.0":0.10229,"14.0":0.17389,"15.0":0.10229,"16.0":1.54452},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00264,"4.4":0,"4.4.3-4.4.4":0.02108},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00407,"8":0.00407,"11":0.19943,_:"6 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":47.94308},S:{"2.5":0},R:{_:"0"},M:{"0":0.1779},Q:{"10.4":0},O:{"0":0.02965},H:{"0":0.19088}}; +module.exports={C:{"52":0.01642,"73":0.00411,"78":0.02053,"80":0.00411,"88":0.00821,"89":0.00411,"90":0.01642,"91":0.02874,"95":0.00821,"96":0.00411,"97":0.00411,"98":0.01642,"99":0.25451,"100":1.19866,"101":0.01232,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 81 82 83 84 85 86 87 92 93 94 102 103 3.5 3.6"},D:{"34":0.00411,"38":0.02053,"47":0.00411,"48":0.00411,"49":0.05747,"53":0.01232,"56":0.01232,"63":0.00821,"65":0.00821,"67":0.00821,"68":0.01232,"69":0.078,"70":0.01232,"72":0.00821,"73":0.00821,"74":0.00821,"75":0.00411,"76":0.00821,"77":0.00821,"78":0.00411,"79":0.11084,"80":0.01642,"81":0.01232,"83":0.02053,"84":0.04926,"85":0.03695,"86":0.04926,"87":0.25041,"88":0.01232,"89":0.03695,"90":0.02053,"91":0.08621,"92":0.03695,"93":0.01642,"94":0.02053,"95":0.04105,"96":0.09031,"97":0.07389,"98":0.09442,"99":0.36124,"100":5.09841,"101":21.0176,"102":2.20028,"103":0.00411,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 50 51 52 54 55 57 58 59 60 61 62 64 66 71 104"},F:{"28":0.00411,"69":0.00411,"80":0.00411,"82":0.00411,"84":0.00411,"85":1.71179,"86":1.56401,"87":0.04105,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00821,"18":0.01232,"84":0.00411,"86":0.00411,"92":0.00821,"94":0.00411,"96":0.00821,"97":0.00821,"98":0.00821,"99":0.03284,"100":0.11905,"101":2.54921,_:"12 13 14 15 16 79 80 81 83 85 87 88 89 90 91 93 95"},E:{"4":0,"13":0.01642,"14":0.07389,"15":0.02874,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00411,"10.1":0.00411,"11.1":0.00821,"12.1":0.01642,"13.1":0.11494,"14.1":0.25451,"15.1":0.05747,"15.2-15.3":0.06979,"15.4":0.70196,"15.5":0.09031},G:{"8":0.0024,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00399,"6.0-6.1":0.0008,"7.0-7.1":0.0008,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03593,"10.0-10.2":0.00319,"10.3":0.02156,"11.0-11.2":0.00639,"11.3-11.4":0.01277,"12.0-12.1":0.01517,"12.2-12.5":0.27303,"13.0-13.1":0.01038,"13.2":0.00639,"13.3":0.03353,"13.4-13.7":0.11336,"14.0-14.4":0.25866,"14.5-14.8":0.93246,"15.0-15.1":0.19559,"15.2-15.3":0.59077,"15.4":5.45743},P:{"4":0.09427,"5.0-5.4":0.06083,"6.2-6.4":0.05069,"7.2-7.4":0.05237,"8.2":0.22305,"9.2":0.01047,"10.1":0.02077,"11.1-11.2":0.09427,"12.0":0.01047,"13.0":0.06285,"14.0":0.13617,"15.0":0.05237,"16.0":0.68087},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00295,"4.4":0,"4.4.3-4.4.4":0.03242},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14368,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":49.12319},S:{"2.5":0},R:{_:"0"},M:{"0":0.18271},Q:{"10.4":0},O:{"0":0.02358},H:{"0":0.18414}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CM.js index d7f6831a1f0ccf..40696b60e1e2d9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CM.js @@ -1 +1 @@ -module.exports={C:{"4":0.00483,"32":0.00483,"34":0.00242,"37":0.00725,"38":0.00725,"42":0.00483,"43":0.00242,"47":0.00967,"48":0.00483,"50":0.00725,"51":0.00967,"52":0.1426,"56":0.00242,"60":0.00242,"62":0.00725,"68":0.00483,"69":0.00242,"72":0.01934,"78":0.01209,"79":0.00242,"81":0.00242,"82":0.00483,"84":0.00725,"85":0.01692,"86":0.00242,"88":0.00967,"89":0.00967,"90":0.00967,"91":0.04109,"92":0.00483,"93":0.00483,"94":0.01934,"95":0.02659,"96":0.04109,"97":0.70576,"98":1.26893,"99":0.02659,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 35 36 39 40 41 44 45 46 49 53 54 55 57 58 59 61 63 64 65 66 67 70 71 73 74 75 76 77 80 83 87 100 3.5 3.6"},D:{"11":0.00967,"23":0.00725,"38":0.00725,"40":0.00483,"49":0.01692,"50":0.00242,"53":0.03867,"56":0.04351,"57":0.00483,"58":0.01209,"63":0.00483,"64":0.00242,"65":0.00483,"67":0.00483,"68":0.06768,"69":0.00483,"70":0.00725,"71":0.00725,"72":0.00483,"73":0.00483,"74":0.00725,"75":0.00967,"76":0.00483,"77":0.00483,"78":0.00483,"79":0.05076,"80":0.01692,"81":0.02659,"83":0.01934,"84":0.00725,"85":0.07009,"86":0.06768,"87":0.03867,"88":0.0145,"89":0.04592,"90":0.05559,"91":0.03142,"92":0.03142,"93":0.05559,"94":0.02417,"95":0.05801,"96":0.17161,"97":0.32871,"98":2.29857,"99":6.28903,"100":0.05801,"101":0.00725,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 43 44 45 46 47 48 51 52 54 55 59 60 61 62 66 102 103"},F:{"38":0.00483,"44":0.00242,"67":0.00483,"68":0.00242,"74":0.00483,"76":0.00967,"79":0.00483,"82":0.00967,"83":0.06284,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 69 70 71 72 73 75 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02175,"13":0.01209,"14":0.03142,"15":0.00967,"16":0.01692,"17":0.01692,"18":0.04834,"81":0.00483,"84":0.03626,"85":0.00967,"89":0.0145,"90":0.02417,"91":0.00725,"92":0.01934,"93":0.00483,"94":0.00483,"95":0.01209,"96":0.02175,"97":0.03384,"98":0.30213,"99":0.95713,_:"79 80 83 86 87 88"},E:{"4":0,"10":0.00483,"13":0.01209,"14":0.02417,"15":0.00483,_:"0 5 6 7 8 9 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00725,"12.1":0.00483,"13.1":0.01209,"14.1":0.04109,"15.1":0.0145,"15.2-15.3":0.00967,"15.4":0.0145},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00738,"8.1-8.4":0,"9.0-9.2":0.00164,"9.3":0.03362,"10.0-10.2":0.00738,"10.3":0.1156,"11.0-11.2":0.24433,"11.3-11.4":0.05493,"12.0-12.1":0.22465,"12.2-12.5":2.1686,"13.0-13.1":0.10659,"13.2":0.03689,"13.3":0.18939,"13.4-13.7":0.55506,"14.0-14.4":1.26099,"14.5-14.8":1.21753,"15.0-15.1":0.84776,"15.2-15.3":1.02322,"15.4":0.10167},P:{"4":0.3541,"5.0-5.4":0.02083,"6.2-6.4":0.01027,"7.2-7.4":0.09373,"8.2":0.01082,"9.2":0.09373,"10.1":0.04107,"11.1-11.2":0.0729,"12.0":0.01041,"13.0":0.04166,"14.0":0.12498,"15.0":0.23954,"16.0":0.59363},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00127,"4.2-4.3":0.00494,"4.4":0,"4.4.3-4.4.4":0.03929},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00483,"11":0.19578,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.01517},N:{_:"10 11"},L:{"0":68.68128},S:{"2.5":0.03033},R:{_:"0"},M:{"0":0.63697},Q:{"10.4":0.01517},O:{"0":0.7583},H:{"0":3.58955}}; +module.exports={C:{"4":0.00243,"31":0.00243,"34":0.00729,"38":0.00243,"43":0.00243,"44":0.00243,"47":0.00729,"48":0.00243,"49":0.00486,"50":0.01457,"51":0.00486,"52":0.14088,"56":0.00972,"57":0.00486,"58":0.00486,"62":0.00486,"68":0.00243,"70":0.00972,"72":0.01457,"78":0.01215,"81":0.00243,"82":0.00486,"84":0.00486,"85":0.00243,"86":0.00486,"88":0.00729,"89":0.00486,"90":0.00486,"91":0.05101,"92":0.00243,"93":0.00729,"94":0.00972,"95":0.00729,"96":0.02672,"97":0.017,"98":0.02672,"99":0.56839,"100":1.49384,"101":0.14574,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 35 36 37 39 40 41 42 45 46 53 54 55 59 60 61 63 64 65 66 67 69 71 73 74 75 76 77 79 80 83 87 102 103 3.5 3.6"},D:{"30":0.00243,"38":0.00729,"39":0.00243,"40":0.00729,"42":0.00729,"43":0.00243,"47":0.00972,"49":0.00972,"50":0.01215,"53":0.03401,"55":0.00729,"56":0.03644,"57":0.00486,"58":0.00486,"63":0.00729,"64":0.00486,"65":0.00243,"68":0.0583,"69":0.00729,"70":0.00729,"72":0.00243,"74":0.01215,"75":0.00972,"76":0.01943,"77":0.00729,"79":0.05344,"80":0.01215,"81":0.01457,"83":0.01943,"84":0.00486,"85":0.08987,"86":0.05587,"87":0.04372,"88":0.00972,"89":0.01457,"90":0.05101,"91":0.04615,"92":0.03158,"93":0.02915,"94":0.03644,"95":0.05101,"96":0.0583,"97":0.12631,"98":0.15303,"99":0.17003,"100":1.72216,"101":5.53326,"102":0.56596,"103":0.01215,"104":0.00729,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 41 44 45 46 48 51 52 54 59 60 61 62 66 67 71 73 78"},F:{"28":0.00486,"42":0.00243,"44":0.00243,"67":0.00243,"79":0.00972,"84":0.00729,"85":0.36435,"86":0.45665,"87":0.03158,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.05587,"13":0.00972,"14":0.03401,"15":0.00972,"16":0.017,"17":0.0753,"18":0.06073,"84":0.01215,"85":0.00972,"89":0.00972,"90":0.00729,"91":0.00243,"92":0.02429,"95":0.00486,"96":0.01215,"97":0.00486,"98":0.02429,"99":0.03158,"100":0.1676,"101":1.14649,_:"79 80 81 83 86 87 88 93 94"},E:{"4":0,"10":0.00243,"11":0.00243,"13":0.00729,"14":0.00972,"15":0.00486,_:"0 5 6 7 8 9 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00486,"11.1":0.00486,"12.1":0.00243,"13.1":0.01215,"14.1":0.03158,"15.1":0.01457,"15.2-15.3":0.01215,"15.4":0.06073,"15.5":0.00486},G:{"8":0.00236,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00157,"6.0-6.1":0,"7.0-7.1":0.01259,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03542,"10.0-10.2":0.00551,"10.3":0.47221,"11.0-11.2":0.29277,"11.3-11.4":0.04958,"12.0-12.1":0.17236,"12.2-12.5":1.40798,"13.0-13.1":0.04722,"13.2":0.08736,"13.3":0.22745,"13.4-13.7":0.49425,"14.0-14.4":1.05854,"14.5-14.8":1.01604,"15.0-15.1":0.80906,"15.2-15.3":0.65008,"15.4":1.02391},P:{"4":0.24756,"5.0-5.4":0.05157,"6.2-6.4":0.03029,"7.2-7.4":0.08252,"8.2":0.02288,"9.2":0.08252,"10.1":0.02019,"11.1-11.2":0.05157,"12.0":0.02063,"13.0":0.06189,"14.0":0.12378,"15.0":0.17535,"16.0":0.43322},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00114,"4.2-4.3":0.00303,"4.4":0,"4.4.3-4.4.4":0.03369},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01457,"9":0.00243,"11":0.48823,_:"6 7 10 5.5"},J:{"7":0,"10":0.00757},N:{_:"10 11"},L:{"0":69.68398},S:{"2.5":0.03786},R:{_:"0"},M:{"0":0.53754},Q:{"10.4":0.00757},O:{"0":0.77224},H:{"0":3.7774}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CN.js index 268e98f28447a7..4f71edbc9128d4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CN.js @@ -1 +1 @@ -module.exports={C:{"36":0.04533,"43":1.58659,"51":0.01046,"52":0.03836,"53":0.01046,"54":0.01046,"55":0.01395,"56":0.01395,"57":0.01744,"58":0.00697,"59":0.01046,"60":0.00697,"61":0.00349,"63":0.00697,"66":0.00349,"67":0.00349,"68":0.00349,"71":0.00349,"72":0.01046,"78":0.02441,"79":0.00349,"80":0.00697,"81":0.01046,"82":0.01046,"83":0.00697,"84":0.01046,"85":0.00349,"86":0.00697,"87":0.01046,"88":0.00697,"89":0.01395,"90":0.01395,"91":0.02441,"92":0.00697,"93":0.00697,"94":0.01046,"95":0.01395,"96":0.02092,"97":0.59628,"98":0.56489,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 44 45 46 47 48 49 50 62 64 65 69 70 73 74 75 76 77 99 100 3.5 3.6"},D:{"11":0.01395,"17":0.01046,"31":0.00697,"39":0.01046,"40":0.01046,"41":0.01395,"42":0.01046,"43":0.01046,"44":0.01046,"45":0.02092,"46":0.01046,"47":0.02441,"48":0.09415,"49":0.09066,"50":0.01046,"51":0.01046,"52":0.00697,"53":0.02092,"54":0.01744,"55":0.05928,"56":0.02092,"57":0.1081,"58":0.0279,"59":0.01744,"60":0.01395,"61":0.01046,"62":0.12902,"63":0.04533,"64":0.00697,"65":0.03836,"66":0.00349,"67":0.0279,"68":0.02092,"69":1.02867,"70":0.55792,"71":0.02092,"72":0.61023,"73":0.03836,"74":0.22666,"75":0.2685,"76":0.02092,"77":0.01395,"78":0.27896,"79":0.23712,"80":0.11856,"81":0.10112,"83":0.21271,"84":0.13948,"85":0.09415,"86":0.2964,"87":0.15343,"88":0.06974,"89":0.03836,"90":0.06277,"91":0.05579,"92":0.47075,"93":0.05231,"94":0.09764,"95":0.19179,"96":0.4568,"97":0.6695,"98":1.64238,"99":2.86283,"100":0.02092,"101":0.02092,_:"4 5 6 7 8 9 10 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 102 103"},F:{"83":0.00697,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.00697,"14":0.00697,"15":0.00349,"16":0.01046,"17":0.02092,"18":0.11507,"85":0.00697,"86":0.00697,"87":0.00349,"89":0.01395,"90":0.00349,"92":0.02441,"93":0.01046,"94":0.01046,"95":0.01744,"96":0.04882,"97":0.06974,"98":0.90313,"99":3.51141,_:"12 79 80 81 83 84 88 91"},E:{"4":0,"9":0.01046,"10":0.00349,"11":0.00697,"12":0.00697,"13":0.03487,"14":0.10461,"15":0.03487,_:"0 5 6 7 8 3.1 3.2 5.1 6.1 7.1","9.1":0.00349,"10.1":0.00697,"11.1":0.01395,"12.1":0.0279,"13.1":0.12902,"14.1":0.15692,"15.1":0.06974,"15.2-15.3":0.07671,"15.4":0.06277},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.04725,"5.0-5.1":0.01363,"6.0-6.1":0.02817,"7.0-7.1":0.00909,"8.1-8.4":0.01727,"9.0-9.2":0.09087,"9.3":0.04635,"10.0-10.2":0.1354,"10.3":0.1454,"11.0-11.2":0.43165,"11.3-11.4":0.06634,"12.0-12.1":0.1145,"12.2-12.5":0.34441,"13.0-13.1":0.0418,"13.2":0.02454,"13.3":0.12541,"13.4-13.7":0.73699,"14.0-14.4":1.05596,"14.5-14.8":1.23135,"15.0-15.1":0.78334,"15.2-15.3":3.10427,"15.4":0.49163},P:{_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 12.0","13.0":0.01076,"14.0":0.06456,"15.0":0.02152,"16.0":0.39814},I:{"0":0,"3":0,"4":0.153,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02416,"4.2-4.3":0.04026,"4.4":0,"4.4.3-4.4.4":0.22547},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.08172,"8":0.73552,"9":0.57207,"10":0.24517,"11":8.3767,_:"7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":37.97044},S:{"2.5":0},R:{_:"0"},M:{"0":0.17585},Q:{"10.4":5.35369},O:{"0":11.50847},H:{"0":0.11099}}; +module.exports={C:{"4":0.00763,"36":0.03817,"43":0.84737,"51":0.01527,"52":0.03435,"53":0.01527,"54":0.00763,"55":0.01527,"56":0.01145,"57":0.01909,"58":0.00763,"59":0.00382,"63":0.01145,"72":0.00382,"78":0.02672,"81":0.00382,"82":0.00763,"84":0.00382,"87":0.00382,"88":0.00382,"89":0.01527,"90":0.01909,"91":0.0229,"94":0.00763,"95":0.00763,"96":0.01145,"97":0.01145,"98":0.01909,"99":0.23284,"100":0.87028,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 44 45 46 47 48 49 50 60 61 62 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 83 85 86 92 93 101 102 103 3.5 3.6"},D:{"11":0.01527,"17":0.01145,"27":0.00382,"31":0.00763,"39":0.01527,"40":0.01909,"41":0.01527,"42":0.01145,"43":0.01527,"44":0.01145,"45":0.0229,"46":0.01145,"47":0.05344,"48":0.11451,"49":0.09161,"50":0.01527,"51":0.01145,"52":0.01145,"53":0.02672,"54":0.01909,"55":0.05726,"56":0.02672,"57":0.09924,"58":0.06107,"59":0.0229,"60":0.01527,"61":0.01145,"62":0.14505,"63":0.11451,"64":0.00763,"65":0.04199,"66":0.00382,"67":0.0229,"68":0.01909,"69":1.02677,"70":0.37407,"71":0.0229,"72":0.51148,"73":0.05344,"74":0.29773,"75":0.30536,"76":0.03054,"77":0.0458,"78":0.30918,"79":0.27101,"80":0.11451,"81":0.12596,"83":0.22902,"84":0.08779,"85":0.05344,"86":0.38552,"87":0.1794,"88":0.03435,"89":0.04199,"90":0.08397,"91":0.05344,"92":0.46186,"93":0.03054,"94":0.08016,"95":0.20612,"96":0.36262,"97":0.45041,"98":0.27864,"99":0.3359,"100":1.44664,"101":3.57271,"102":0.20994,"103":0.02672,_:"4 5 6 7 8 9 10 12 13 14 15 16 18 19 20 21 22 23 24 25 26 28 29 30 32 33 34 35 36 37 38 104"},F:{"85":0.03054,"86":0.03054,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.00382,"14":0.00382,"15":0.00382,"16":0.01527,"17":0.01909,"18":0.09924,"85":0.00382,"86":0.00382,"87":0.00382,"89":0.01527,"92":0.01527,"93":0.00382,"94":0.00763,"95":0.00763,"96":0.01909,"97":0.0229,"98":0.03817,"99":0.06871,"100":0.25574,"101":5.20257,_:"12 79 80 81 83 84 88 90 91"},E:{"4":0,"9":0.01527,"11":0.00382,"12":0.00382,"13":0.03435,"14":0.12214,"15":0.03435,_:"0 5 6 7 8 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00382,"10.1":0.00382,"11.1":0.01145,"12.1":0.02672,"13.1":0.14123,"14.1":0.16031,"15.1":0.05726,"15.2-15.3":0.04962,"15.4":0.57637,"15.5":0.06871},G:{"8":0,"3.2":0,"4.0-4.1":0.00206,"4.2-4.3":0.05162,"5.0-5.1":0.01652,"6.0-6.1":0.02891,"7.0-7.1":0.00723,"8.1-8.4":0.01755,"9.0-9.2":0.12493,"9.3":0.04543,"10.0-10.2":0.02994,"10.3":0.12802,"11.0-11.2":0.31283,"11.3-11.4":0.06814,"12.0-12.1":0.11357,"12.2-12.5":0.36652,"13.0-13.1":0.04027,"13.2":0.02271,"13.3":0.13319,"13.4-13.7":0.74956,"14.0-14.4":1.05724,"14.5-14.8":1.26476,"15.0-15.1":0.67007,"15.2-15.3":1.00355,"15.4":4.07098},P:{"4":0.09427,"5.0-5.4":0.06083,"6.2-6.4":0.05069,"7.2-7.4":0.05237,"8.2":0.22305,"9.2":0.01047,"10.1":0.02077,"11.1-11.2":0.09427,"12.0":0.01047,"13.0":0.06285,"14.0":0.20816,"15.0":0.05237,"16.0":0.18625},I:{"0":0,"3":0,"4":0.10792,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02024,"4.2-4.3":0.02698,"4.4":0,"4.4.3-4.4.4":0.21584},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.27278,"7":0.06819,"8":0.75013,"9":0.61375,"10":0.27278,"11":9.20619,_:"5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":32.63295},S:{"2.5":0},R:{_:"0"},M:{"0":0.21022},Q:{"10.4":5.79347},O:{"0":11.91464},H:{"0":0.12293}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CO.js index 6a1afb0d868675..e4b7944c5dedd1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CO.js @@ -1 +1 @@ -module.exports={C:{"50":0.01277,"52":0.01277,"78":0.01703,"84":0.00852,"88":0.01277,"89":0.00426,"90":0.01703,"91":0.02129,"94":0.00426,"95":0.00852,"96":0.01277,"97":0.40877,"98":0.68128,"99":0.00852,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 92 93 100 3.5 3.6"},D:{"22":0.00852,"26":0.00426,"38":0.01703,"47":0.00852,"49":0.03406,"53":0.00426,"58":0.00426,"62":0.00426,"63":0.00426,"65":0.01277,"67":0.00852,"68":0.00852,"69":0.04684,"70":0.00852,"71":0.00852,"72":0.00852,"73":0.00852,"74":0.00852,"75":0.01277,"76":0.02129,"77":0.00852,"78":0.01277,"79":0.11922,"80":0.02555,"81":0.01703,"83":0.02555,"84":0.02981,"85":0.02129,"86":0.04258,"87":0.11497,"88":0.03832,"89":0.04258,"90":0.02981,"91":0.11071,"92":0.07239,"93":0.132,"94":0.05535,"95":0.05961,"96":0.2129,"97":0.45561,"98":7.46002,"99":23.81925,"100":0.02981,"101":0.00852,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 59 60 61 64 66 102 103"},F:{"82":0.01277,"83":0.70257,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00426,"18":0.01277,"84":0.00852,"89":0.00426,"92":0.01277,"94":0.00852,"96":0.01277,"97":0.04684,"98":0.47264,"99":1.80539,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 90 91 93 95"},E:{"4":0,"12":0.00426,"13":0.01277,"14":0.07239,"15":0.04258,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00852,"12.1":0.02129,"13.1":0.09793,"14.1":0.20013,"15.1":0.0809,"15.2-15.3":0.11497,"15.4":0.0511},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00137,"6.0-6.1":0.00182,"7.0-7.1":0.01004,"8.1-8.4":0,"9.0-9.2":0.00319,"9.3":0.03559,"10.0-10.2":0.00547,"10.3":0.03422,"11.0-11.2":0.00365,"11.3-11.4":0.0073,"12.0-12.1":0.00411,"12.2-12.5":0.24454,"13.0-13.1":0.00502,"13.2":0.00182,"13.3":0.01734,"13.4-13.7":0.06113,"14.0-14.4":0.18021,"14.5-14.8":0.64692,"15.0-15.1":0.29335,"15.2-15.3":2.77246,"15.4":0.23039},P:{"4":0.17874,"5.0-5.4":0.0709,"6.2-6.4":0.04051,"7.2-7.4":0.09463,"8.2":0.02072,"9.2":0.03069,"10.1":0.03038,"11.1-11.2":0.03154,"12.0":0.02046,"13.0":0.04206,"14.0":0.06308,"15.0":0.05257,"16.0":0.90421},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00161,"4.2-4.3":0.00645,"4.4":0,"4.4.3-4.4.4":0.03788},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12348,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":44.67984},S:{"2.5":0},R:{_:"0"},M:{"0":0.17229},Q:{"10.4":0},O:{"0":0.02872},H:{"0":0.12505}}; +module.exports={C:{"50":0.01344,"51":0.01344,"52":0.02687,"53":0.01344,"54":0.00896,"55":0.01792,"56":0.00896,"57":0.00896,"59":0.00448,"73":0.00448,"78":0.01344,"84":0.00896,"88":0.00896,"90":0.01792,"91":0.02687,"95":0.00448,"96":0.00896,"97":0.00896,"98":0.00896,"99":0.20603,"100":0.9182,"101":0.01344,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 58 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 85 86 87 89 92 93 94 102 103 3.5 3.6"},D:{"22":0.00896,"26":0.00448,"34":0.00448,"38":0.01344,"39":0.00448,"40":0.00448,"41":0.00896,"42":0.00896,"43":0.00448,"44":0.00448,"45":0.00448,"46":0.00896,"47":0.01344,"48":0.00448,"49":0.04479,"50":0.00448,"51":0.00896,"53":0.00896,"54":0.00448,"55":0.00448,"56":0.00896,"57":0.00448,"58":0.00896,"59":0.00896,"60":0.00448,"61":0.00448,"62":0.00896,"63":0.01344,"64":0.00896,"65":0.00896,"67":0.00448,"68":0.00896,"69":0.06271,"70":0.00448,"71":0.00896,"72":0.00896,"73":0.00896,"74":0.00896,"75":0.01344,"76":0.01792,"77":0.00896,"78":0.01344,"79":0.15677,"80":0.02687,"81":0.0224,"83":0.02687,"84":0.03135,"85":0.02687,"86":0.05823,"87":0.12093,"88":0.03583,"89":0.04031,"90":0.02687,"91":0.09854,"92":0.06271,"93":0.03135,"94":0.03583,"95":0.04479,"96":0.1075,"97":0.14333,"98":0.21051,"99":0.32697,"100":5.82718,"101":24.84053,"102":2.35595,"103":0.00896,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 35 36 37 52 66 104"},F:{"82":0.00896,"84":0.00896,"85":0.93611,"86":0.81966,"87":0.03583,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01344,"89":0.00448,"92":0.00896,"96":0.00448,"97":0.00896,"98":0.00896,"99":0.03135,"100":0.11198,"101":2.38731,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 90 91 93 94 95"},E:{"4":0,"13":0.01792,"14":0.05823,"15":0.03135,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00448,"12.1":0.01344,"13.1":0.08062,"14.1":0.17916,"15.1":0.05823,"15.2-15.3":0.04927,"15.4":0.46582,"15.5":0.05823},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00159,"6.0-6.1":0.00053,"7.0-7.1":0.01057,"8.1-8.4":0.00053,"9.0-9.2":0.00476,"9.3":0.03964,"10.0-10.2":0.0074,"10.3":0.04228,"11.0-11.2":0.0037,"11.3-11.4":0.00687,"12.0-12.1":0.00264,"12.2-12.5":0.24206,"13.0-13.1":0.00476,"13.2":0.00264,"13.3":0.01638,"13.4-13.7":0.05444,"14.0-14.4":0.16226,"14.5-14.8":0.50632,"15.0-15.1":0.15327,"15.2-15.3":0.4059,"15.4":3.61506},P:{"4":0.15657,"5.0-5.4":0.06083,"6.2-6.4":0.05069,"7.2-7.4":0.08351,"8.2":0.22305,"9.2":0.01047,"10.1":0.02077,"11.1-11.2":0.03131,"12.0":0.01047,"13.0":0.03131,"14.0":0.05219,"15.0":0.03131,"16.0":0.39665},I:{"0":0,"3":0,"4":0.00179,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00179,"4.2-4.3":0.00893,"4.4":0,"4.4.3-4.4.4":0.04823},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00448,"9":0.00896,"11":0.18364,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":49.158},S:{"2.5":0},R:{_:"0"},M:{"0":0.16563},Q:{"10.4":0},O:{"0":0.03865},H:{"0":0.11499}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CR.js index 76ef6c09565196..5e742b2127eec6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CR.js @@ -1 +1 @@ -module.exports={C:{"52":0.00868,"56":0.00434,"62":0.00434,"73":0.04773,"78":0.04339,"83":0.00434,"88":0.22563,"90":0.03905,"91":0.03471,"95":0.01302,"96":0.01736,"97":0.7897,"98":1.42753,"99":0.0217,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 84 85 86 87 89 92 93 94 100 3.5 3.6"},D:{"47":0.00434,"49":0.03037,"52":0.00434,"63":0.00868,"65":0.00868,"67":0.00868,"68":0.00868,"73":0.00868,"75":0.00868,"76":0.00434,"77":0.01302,"78":0.00868,"79":0.03471,"80":0.03037,"81":0.0217,"83":0.01736,"84":0.0217,"85":0.01302,"86":0.06075,"87":0.05207,"88":0.01736,"89":0.02603,"90":0.01736,"91":0.04339,"92":0.08244,"93":1.24095,"94":0.03037,"95":0.04339,"96":0.19526,"97":0.3341,"98":6.18741,"99":20.57988,"100":0.20827,"101":0.00434,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 53 54 55 56 57 58 59 60 61 62 64 66 69 70 71 72 74 102 103"},F:{"28":0.01302,"82":0.00434,"83":0.69858,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.0217,"18":0.01302,"84":0.00434,"89":0.01302,"91":0.00868,"92":0.01736,"94":0.00868,"95":0.03905,"96":0.0217,"97":0.09112,"98":0.768,"99":3.08069,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 90 93"},E:{"4":0,"13":0.05207,"14":0.16054,"15":0.09546,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02603,"12.1":0.03471,"13.1":0.25166,"14.1":0.5337,"15.1":0.3341,"15.2-15.3":0.24732,"15.4":0.22997},G:{"8":0,"3.2":0,"4.0-4.1":0.00216,"4.2-4.3":0,"5.0-5.1":0.00971,"6.0-6.1":0,"7.0-7.1":0.01834,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0561,"10.0-10.2":0.00216,"10.3":0.03129,"11.0-11.2":0.00324,"11.3-11.4":0.02374,"12.0-12.1":0.00539,"12.2-12.5":0.36466,"13.0-13.1":0.01187,"13.2":0.00216,"13.3":0.05179,"13.4-13.7":0.08847,"14.0-14.4":0.37005,"14.5-14.8":1.33349,"15.0-15.1":0.55778,"15.2-15.3":7.13893,"15.4":0.71098},P:{"4":0.14509,"5.0-5.4":0.0319,"6.2-6.4":0.01013,"7.2-7.4":0.114,"8.2":0.02072,"9.2":0.01036,"10.1":0.0408,"11.1-11.2":0.07255,"12.0":0.02073,"13.0":0.08291,"14.0":0.13473,"15.0":0.07255,"16.0":2.41479},I:{"0":0,"3":0,"4":0.00765,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00191,"4.2-4.3":0.0067,"4.4":0,"4.4.3-4.4.4":0.05166},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.13885,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":40.21268},S:{"2.5":0},R:{_:"0"},M:{"0":0.32262},Q:{"10.4":0},O:{"0":0.07924},H:{"0":0.23577}}; +module.exports={C:{"52":0.00421,"56":0.00842,"73":0.04212,"78":0.02948,"82":0.00421,"88":0.12636,"90":0.05476,"91":0.03791,"94":0.00421,"98":0.06318,"99":0.36223,"100":1.66374,"101":0.02527,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 83 84 85 86 87 89 92 93 95 96 97 102 103 3.5 3.6"},D:{"47":0.00421,"49":0.02106,"60":0.00421,"63":0.00842,"65":0.00842,"67":0.00842,"69":0.00421,"72":0.00842,"73":0.01264,"75":0.00421,"76":0.00842,"77":0.00842,"78":0.00842,"79":0.0337,"80":0.02106,"81":0.02106,"83":0.01685,"84":0.02106,"85":0.01264,"86":0.04633,"87":0.05897,"88":0.01264,"89":0.0337,"90":0.01685,"91":0.03791,"92":0.06318,"93":0.04633,"94":0.02106,"95":0.01264,"96":0.0716,"97":0.09266,"98":0.09688,"99":0.22324,"100":5.46718,"101":20.06597,"102":2.20288,"103":0.00842,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 61 62 64 66 68 70 71 74 104"},F:{"28":0.01264,"85":0.85925,"86":0.74131,"87":0.02948,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.02527,"18":0.01264,"89":0.00842,"92":0.01264,"95":0.00842,"96":0.00842,"97":0.01685,"98":0.00842,"99":0.05054,"100":0.13478,"101":3.50438,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 90 91 93 94"},E:{"4":0,"13":0.03791,"14":0.16427,"15":0.05476,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00421,"11.1":0.02106,"12.1":0.02948,"13.1":0.19375,"14.1":0.34538,"15.1":0.08845,"15.2-15.3":0.12636,"15.4":1.42787,"15.5":0.18954},G:{"8":0,"3.2":0.0011,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00552,"6.0-6.1":0.00552,"7.0-7.1":0.02209,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04197,"10.0-10.2":0.0011,"10.3":0.03203,"11.0-11.2":0.00552,"11.3-11.4":0.01988,"12.0-12.1":0.00663,"12.2-12.5":0.338,"13.0-13.1":0.00773,"13.2":0.00552,"13.3":0.05965,"13.4-13.7":0.06296,"14.0-14.4":0.37114,"14.5-14.8":0.88476,"15.0-15.1":0.21871,"15.2-15.3":0.66164,"15.4":8.29202},P:{"4":0.1036,"5.0-5.4":0.02146,"6.2-6.4":0.0304,"7.2-7.4":0.12431,"8.2":0.22305,"9.2":0.02072,"10.1":0.29386,"11.1-11.2":0.06216,"12.0":0.0304,"13.0":0.1036,"14.0":0.09324,"15.0":0.04144,"16.0":0.922},I:{"0":0,"3":0,"4":0.00797,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00228,"4.2-4.3":0.00569,"4.4":0,"4.4.3-4.4.4":0.05352},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.09266,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":43.45436},S:{"2.5":0},R:{_:"0"},M:{"0":0.39937},Q:{"10.4":0},O:{"0":0.0463},H:{"0":0.26851}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CU.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CU.js index b747c91bf616e2..7403f041e48f5f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CU.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CU.js @@ -1 +1 @@ -module.exports={C:{"24":0.08705,"32":0.00528,"34":0.02374,"37":0.00264,"38":0.01055,"39":0.00791,"40":0.01847,"41":0.00528,"43":0.01319,"45":0.00791,"46":0.00528,"47":0.01583,"48":0.00791,"49":0.01055,"50":0.0211,"51":0.00264,"52":0.13454,"53":0.01055,"54":0.17675,"56":0.03693,"57":0.08178,"58":0.04221,"59":0.01055,"60":0.04221,"61":0.02638,"62":0.01319,"63":0.00791,"64":0.03166,"65":0.04221,"66":0.02638,"67":0.04221,"68":0.04221,"69":0.01583,"70":0.03693,"71":0.0554,"72":0.11871,"73":0.0554,"74":0.01319,"75":0.00791,"76":0.00528,"77":0.02638,"78":0.0765,"79":0.01055,"80":0.06067,"81":0.04221,"82":0.06067,"83":0.01847,"84":0.0554,"85":0.03429,"86":0.02638,"87":0.01847,"88":0.13718,"89":0.16356,"90":0.03693,"91":0.25325,"92":0.09761,"93":0.14773,"94":0.16092,"95":0.25325,"96":0.31392,"97":2.98622,"98":4.17332,"99":0.09497,"100":0.01847,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 33 35 36 42 44 55 3.5 3.6"},D:{"31":0.00264,"36":0.00264,"38":0.00528,"42":0.00264,"49":0.00528,"50":0.00264,"52":0.00791,"54":0.00264,"56":0.01319,"58":0.00528,"59":0.00528,"60":0.00528,"62":0.01319,"63":0.01319,"67":0.00528,"68":0.01055,"69":0.00528,"70":0.01055,"71":0.01319,"72":0.01055,"73":0.00264,"74":0.01847,"75":0.02374,"76":0.01055,"77":0.00791,"78":0.01055,"79":0.05012,"80":0.02374,"81":0.05804,"83":0.01847,"84":0.01055,"85":0.04485,"86":0.07386,"87":0.07386,"88":0.15828,"89":0.03166,"90":0.12399,"91":0.03429,"92":0.04221,"93":0.01847,"94":0.06859,"95":0.06331,"96":0.35085,"97":0.3192,"98":1.78593,"99":4.56374,"100":0.05012,"101":0.00528,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 37 39 40 41 43 44 45 46 47 48 51 53 55 57 61 64 65 66 102 103"},F:{"36":0.00264,"41":0.00791,"42":0.01055,"53":0.00791,"57":0.00264,"68":0.00264,"74":0.00264,"75":0.00528,"76":0.00264,"77":0.00528,"78":0.00264,"79":0.01583,"80":0.00528,"81":0.00264,"82":0.04485,"83":0.08705,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 43 44 45 46 47 48 49 50 51 52 54 55 56 58 60 62 63 64 65 66 67 69 70 71 72 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01055,"13":0.01583,"14":0.01847,"15":0.01055,"16":0.00791,"17":0.01319,"18":0.08969,"79":0.00264,"84":0.03957,"85":0.01319,"86":0.00264,"89":0.03693,"90":0.04221,"91":0.01319,"92":0.04485,"93":0.00528,"94":0.00791,"95":0.00791,"96":0.03429,"97":0.06859,"98":0.30073,"99":0.67269,_:"80 81 83 87 88"},E:{"4":0,"13":0.00791,"14":0.02902,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 9.1 10.1 12.1","7.1":0.00264,"11.1":0.00264,"13.1":0.01847,"14.1":0.01055,"15.1":0.01319,"15.2-15.3":0.00791,"15.4":0.00791},G:{"8":0.00335,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00112,"6.0-6.1":0,"7.0-7.1":0.04746,"8.1-8.4":0.04522,"9.0-9.2":0.00279,"9.3":0.03573,"10.0-10.2":0.0067,"10.3":0.06811,"11.0-11.2":0.07314,"11.3-11.4":0.01507,"12.0-12.1":0.01731,"12.2-12.5":0.83301,"13.0-13.1":0.04355,"13.2":0.03741,"13.3":0.14349,"13.4-13.7":0.30038,"14.0-14.4":0.98152,"14.5-14.8":0.584,"15.0-15.1":0.68338,"15.2-15.3":1.52533,"15.4":0.13232},P:{"4":0.34298,"5.0-5.4":0.05044,"6.2-6.4":0.03026,"7.2-7.4":0.28245,"8.2":0.02018,"9.2":0.09079,"10.1":0.05044,"11.1-11.2":0.10088,"12.0":0.05044,"13.0":0.1614,"14.0":0.25219,"15.0":0.15131,"16.0":1.0592},I:{"0":0,"3":0,"4":0.00107,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00429,"4.2-4.3":0.03377,"4.4":0,"4.4.3-4.4.4":0.18173},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00264,"11":0.06595,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.00736},N:{"10":0.02584,_:"11"},L:{"0":67.53184},S:{"2.5":0},R:{_:"0"},M:{"0":0.75092},Q:{"10.4":0.01472},O:{"0":0.19877},H:{"0":1.10821}}; +module.exports={C:{"24":0.01167,"28":0.00467,"31":0.00233,"32":0.00233,"34":0.01866,"35":0.00467,"38":0.00467,"39":0.00233,"40":0.01167,"41":0.00467,"42":0.00233,"43":0.00933,"45":0.00933,"46":0.00233,"47":0.01167,"48":0.06066,"49":0.007,"50":0.01866,"51":0.00467,"52":0.16798,"53":0.00467,"54":0.16564,"56":0.021,"57":0.07466,"58":0.00933,"59":0.06299,"60":0.03266,"61":0.021,"62":0.014,"63":0.007,"64":0.03266,"65":0.01866,"66":0.021,"67":0.03266,"68":0.05366,"69":0.007,"70":0.01633,"71":0.05133,"72":0.10032,"73":0.028,"74":0.00933,"75":0.00933,"76":0.00467,"77":0.028,"78":0.05599,"79":0.03033,"80":0.01167,"81":0.035,"82":0.03733,"83":0.014,"84":0.03733,"85":0.01866,"86":0.02566,"87":0.01167,"88":0.05366,"89":0.07232,"90":0.035,"91":0.18197,"92":0.08166,"93":0.09099,"94":0.08399,"95":0.11898,"96":0.07699,"97":0.14931,"98":0.27063,"99":1.65876,"100":4.4047,"101":0.10965,"102":0.00933,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 29 30 33 36 37 44 55 103 3.5 3.6"},D:{"21":0.00467,"25":0.00467,"31":0.00233,"37":0.00233,"49":0.007,"51":0.00233,"53":0.007,"54":0.00233,"56":0.00233,"60":0.00233,"61":0.007,"62":0.00933,"63":0.007,"66":0.00233,"67":0.007,"68":0.007,"69":0.007,"70":0.035,"71":0.014,"72":0.014,"73":0.00233,"74":0.00933,"75":0.01866,"76":0.014,"77":0.007,"78":0.00933,"79":0.03733,"80":0.04899,"81":0.035,"83":0.01633,"84":0.007,"85":0.01866,"86":0.05133,"87":0.03033,"88":0.11898,"89":0.04199,"90":0.07232,"91":0.03033,"92":0.035,"93":0.014,"94":0.05833,"95":0.06532,"96":0.14698,"97":0.16331,"98":0.11898,"99":0.29163,"100":1.41846,"101":3.74913,"102":0.44327,"103":0.00233,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 26 27 28 29 30 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 50 52 55 57 58 59 64 65 104"},F:{"26":0.00233,"42":0.00233,"48":0.01167,"53":0.01167,"64":0.00233,"76":0.00233,"77":0.00233,"78":0.00467,"79":0.02566,"80":0.00467,"82":0.00933,"83":0.00467,"84":0.01633,"85":0.28929,"86":0.27996,"87":0.03733,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 49 50 51 52 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00933,"13":0.00933,"14":0.01167,"15":0.007,"16":0.014,"17":0.01633,"18":0.07232,"79":0.00233,"84":0.02333,"85":0.014,"89":0.01866,"90":0.03033,"91":0.00467,"92":0.035,"93":0.00233,"95":0.00467,"96":0.01167,"97":0.01633,"98":0.02566,"99":0.04433,"100":0.15398,"101":0.86088,_:"80 81 83 86 87 88 94"},E:{"4":0,"9":0.00467,"13":0.00467,"14":0.05599,"15":0.00233,_:"0 5 6 7 8 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00233,"11.1":0.00467,"12.1":0.00467,"13.1":0.014,"14.1":0.01633,"15.1":0.01167,"15.2-15.3":0.007,"15.4":0.035,"15.5":0.00933},G:{"8":0.00169,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00056,"6.0-6.1":0,"7.0-7.1":0.01806,"8.1-8.4":0.05136,"9.0-9.2":0.00677,"9.3":0.02201,"10.0-10.2":0.00226,"10.3":0.2252,"11.0-11.2":0.09764,"11.3-11.4":0.01185,"12.0-12.1":0.04402,"12.2-12.5":0.80484,"13.0-13.1":0.02991,"13.2":0.03161,"13.3":0.13771,"13.4-13.7":0.30986,"14.0-14.4":0.81048,"14.5-14.8":0.53223,"15.0-15.1":0.55086,"15.2-15.3":1.02101,"15.4":0.93296},P:{"4":0.25658,"5.0-5.4":0.05132,"6.2-6.4":0.02053,"7.2-7.4":0.27711,"8.2":0.22305,"9.2":0.06158,"10.1":0.04105,"11.1-11.2":0.10263,"12.0":0.02053,"13.0":0.1129,"14.0":0.21553,"15.0":0.10263,"16.0":0.91344},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0033,"4.2-4.3":0.02637,"4.4":0,"4.4.3-4.4.4":0.14668},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00233,"11":0.05133,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":70.75387},S:{"2.5":0},R:{_:"0"},M:{"0":0.62869},Q:{"10.4":0.00767},O:{"0":0.13801},H:{"0":1.14686}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CV.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CV.js index 5d133d4c420d06..6992ad90a5c184 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CV.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CV.js @@ -1 +1 @@ -module.exports={C:{"45":0.00878,"52":0.03949,"61":0.02633,"72":0.00878,"84":0.00878,"91":0.04388,"96":0.00878,"97":0.79423,"98":1.19792,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 92 93 94 95 99 100 3.5 3.6"},D:{"23":0.00878,"34":0.00878,"35":0.00439,"38":0.00439,"40":0.00878,"42":0.00878,"43":0.01755,"49":0.05704,"50":0.01316,"55":0.01755,"60":0.00878,"63":0.00439,"65":0.01755,"70":0.01755,"72":0.00878,"74":0.00878,"76":0.02194,"77":0.02194,"78":0.01755,"79":0.0351,"80":0.01316,"81":0.01316,"83":0.02633,"85":0.01755,"86":0.01316,"87":0.01316,"88":0.01316,"89":0.06143,"90":0.03072,"91":2.47922,"92":0.01755,"93":0.04388,"94":0.03072,"95":0.05266,"96":0.16236,"97":0.37298,"98":5.87992,"99":21.72938,"100":0.13603,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 36 37 39 41 44 45 46 47 48 51 52 53 54 56 57 58 59 61 62 64 66 67 68 69 71 73 75 84 101 102 103"},F:{"82":0.00878,"83":0.13164,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00878,"13":0.01316,"14":0.00439,"17":0.00878,"18":0.03072,"84":0.01316,"85":0.00439,"89":0.0351,"90":0.01316,"91":0.00439,"92":0.01755,"94":0.00439,"95":0.00439,"96":0.06582,"97":0.07021,"98":0.71963,"99":2.93996,_:"15 16 79 80 81 83 86 87 88 93"},E:{"4":0,"13":0.02633,"14":0.09215,"15":0.04827,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1 12.1","9.1":0.00439,"11.1":0.00439,"13.1":0.08337,"14.1":0.16236,"15.1":0.08776,"15.2-15.3":0.05704,"15.4":0.07898},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.04993,"8.1-8.4":0,"9.0-9.2":0.00089,"9.3":0.0419,"10.0-10.2":0,"10.3":0.08559,"11.0-11.2":0.20951,"11.3-11.4":0.06062,"12.0-12.1":0.04547,"12.2-12.5":1.60742,"13.0-13.1":0.00981,"13.2":0.00892,"13.3":0.13551,"13.4-13.7":0.19524,"14.0-14.4":1.05289,"14.5-14.8":1.07785,"15.0-15.1":0.53402,"15.2-15.3":3.57322,"15.4":0.22466},P:{"4":0.18774,"5.0-5.4":0.01043,"6.2-6.4":0.01027,"7.2-7.4":0.18774,"8.2":0.01082,"9.2":0.03129,"10.1":0.01043,"11.1-11.2":0.25032,"12.0":0.46934,"13.0":0.12516,"14.0":0.14602,"15.0":0.09387,"16.0":1.42889},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00184,"4.2-4.3":0.00536,"4.4":0,"4.4.3-4.4.4":0.04332},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07898,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":45.13691},S:{"2.5":0},R:{_:"0"},M:{"0":0.29188},Q:{"10.4":0},O:{"0":0.15155},H:{"0":0.45701}}; +module.exports={C:{"52":0.07876,"61":0.02487,"78":0.00829,"91":0.02073,"97":0.02073,"99":0.2943,"100":0.77512,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 98 101 102 103 3.5 3.6"},D:{"40":0.01658,"42":0.01244,"43":0.02902,"49":0.02902,"50":0.00415,"55":0.00415,"62":0.01658,"67":0.00829,"69":0.00829,"75":0.00829,"76":0.00829,"77":0.00415,"78":0.03316,"79":0.04974,"80":0.00829,"81":0.02487,"83":0.01244,"84":0.00415,"85":0.01244,"86":0.01244,"87":0.07047,"88":0.02487,"89":0.06218,"90":0.03731,"91":0.10777,"92":0.01244,"93":0.00829,"94":0.03316,"95":0.01244,"96":0.12435,"97":0.06632,"98":0.06218,"99":0.24041,"100":4.86209,"101":21.37577,"102":1.84453,"103":0.00415,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 44 45 46 47 48 51 52 53 54 56 57 58 59 60 61 63 64 65 66 68 70 71 72 73 74 104"},F:{"36":0.00829,"85":0.75439,"86":0.52642,"87":0.34818,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02073,"13":0.00829,"14":0.00415,"15":0.01658,"16":0.02073,"18":0.26528,"84":0.02073,"85":0.00829,"89":0.00829,"92":0.01658,"95":0.00829,"96":0.14922,"97":0.00829,"98":0.06218,"99":0.07461,"100":0.26528,"101":4.11599,_:"17 79 80 81 83 86 87 88 90 91 93 94"},E:{"4":0,"14":0.0829,"15":0.01244,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.04974,"11.1":0.02073,"12.1":0.0456,"13.1":0.14922,"14.1":0.10363,"15.1":0.02073,"15.2-15.3":0.00415,"15.4":0.61346,"15.5":0.0456},G:{"8":0.0042,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00924,"8.1-8.4":0,"9.0-9.2":0.00084,"9.3":0.03862,"10.0-10.2":0.00336,"10.3":0.13265,"11.0-11.2":0.13937,"11.3-11.4":0.02015,"12.0-12.1":0.10243,"12.2-12.5":0.83367,"13.0-13.1":0.02267,"13.2":0.01007,"13.3":0.07052,"13.4-13.7":0.4819,"14.0-14.4":0.87145,"14.5-14.8":0.96045,"15.0-15.1":0.34422,"15.2-15.3":0.80177,"15.4":3.54122},P:{"4":0.23817,"5.0-5.4":0.01036,"6.2-6.4":0.03029,"7.2-7.4":0.23817,"8.2":0.02288,"9.2":0.03107,"10.1":0.01087,"11.1-11.2":0.16568,"12.0":0.01087,"13.0":0.07249,"14.0":0.25888,"15.0":0.08284,"16.0":0.74558},I:{"0":0,"3":0,"4":0.00029,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00221,"4.2-4.3":0.00192,"4.4":0,"4.4.3-4.4.4":0.03656},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04974,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":48.85057},S:{"2.5":0},R:{_:"0"},M:{"0":0.08196},Q:{"10.4":0},O:{"0":0.11123},H:{"0":0.49325}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CX.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CX.js index 9979126f203248..34802be4a48b67 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CX.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CX.js @@ -1 +1 @@ -module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 3.5 3.6"},D:{"98":1.40599,"99":3.0125,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 100 101 102 103"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0.19988,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0},P:{"4":0.15343,"5.0-5.4":0.0709,"6.2-6.4":0.04051,"7.2-7.4":0.08183,"8.2":0.02072,"9.2":0.03069,"10.1":0.03038,"11.1-11.2":0.13297,"12.0":0.02046,"13.0":0.10229,"14.0":0.17389,"15.0":0.10229,"16.0":1.54452},I:{"0":0,"3":0,"4":0.52268,"2.1":0,"2.2":0,"2.3":0.26289,"4.1":0.52268,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":2.74641},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":91.32696},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{"97":3.9984,"99":3.9984,"100":5.9976,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98 101 102 103 3.5 3.6"},D:{"101":69.9972,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":8},P:{"4":0.09427,"5.0-5.4":0.06083,"6.2-6.4":0.05069,"7.2-7.4":0.05237,"8.2":0.22305,"9.2":0.01047,"10.1":0.02077,"11.1-11.2":0.09427,"12.0":0.01047,"13.0":0.06285,"14.0":0.20816,"15.0":0.05237,"16.0":0.18625},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":4},S:{"2.5":0},R:{_:"0"},M:{"0":4},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CY.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CY.js index 0b0c7750f8b03f..024f8987788912 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CY.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CY.js @@ -1 +1 @@ -module.exports={C:{"52":0.26933,"78":0.03041,"79":0.00434,"81":0.00869,"88":0.02606,"91":0.02172,"94":0.01303,"95":0.00869,"96":0.00869,"97":0.50825,"98":0.99478,"99":0.00434,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 82 83 84 85 86 87 89 90 92 93 100 3.5 3.6"},D:{"38":0.01738,"42":1.28148,"47":0.00869,"49":0.05647,"53":0.01303,"54":0.00869,"57":0.01303,"65":0.01738,"68":0.00434,"69":0.01303,"70":1.53778,"71":0.00869,"73":0.00869,"74":0.00869,"77":0.00869,"78":0.00869,"79":0.13032,"80":0.01303,"81":0.01738,"83":0.02172,"84":0.02172,"85":0.00434,"86":0.02172,"87":0.22154,"88":0.01303,"89":0.05647,"90":0.00869,"91":0.03475,"92":0.01738,"93":0.01738,"94":0.05213,"95":0.0391,"96":0.1477,"97":0.42137,"98":6.17717,"99":20.76432,"100":0.15638,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 48 50 51 52 55 56 58 59 60 61 62 63 64 66 67 72 75 76 101 102 103"},F:{"28":0.01738,"36":0.01303,"46":0.00434,"78":0.00434,"82":0.00869,"83":0.31277,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00869,"18":0.02606,"86":0.00434,"96":0.00869,"97":0.03041,"98":0.91658,"99":3.86616,_:"12 13 14 15 17 79 80 81 83 84 85 87 88 89 90 91 92 93 94 95"},E:{"4":0,"13":0.06082,"14":0.16073,"15":0.09557,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00869,"11.1":0.01303,"12.1":0.02606,"13.1":0.84274,"14.1":0.43006,"15.1":0.16942,"15.2-15.3":0.15204,"15.4":0.10426},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00317,"7.0-7.1":0.01162,"8.1-8.4":0,"9.0-9.2":0.00739,"9.3":0.07181,"10.0-10.2":0.00422,"10.3":0.09082,"11.0-11.2":0.08871,"11.3-11.4":0.01267,"12.0-12.1":0.02218,"12.2-12.5":0.37595,"13.0-13.1":0.02006,"13.2":0.00528,"13.3":0.03485,"13.4-13.7":0.19009,"14.0-14.4":0.36962,"14.5-14.8":1.53021,"15.0-15.1":0.63257,"15.2-15.3":6.60449,"15.4":0.47839},P:{"4":0.23702,"5.0-5.4":0.05044,"6.2-6.4":0.03026,"7.2-7.4":0.01031,"8.2":0.02018,"9.2":0.09079,"10.1":0.05044,"11.1-11.2":0.07214,"12.0":0.04122,"13.0":0.06183,"14.0":0.07214,"15.0":0.08244,"16.0":3.07102},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00422,"4.4":0,"4.4.3-4.4.4":0.058},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00443,"11":0.20842,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":30.5617},S:{"2.5":0},R:{_:"0"},M:{"0":0.16968},Q:{"10.4":0},O:{"0":0.67306},H:{"0":0.32664}}; +module.exports={C:{"52":0.25713,"60":0.00451,"78":0.0406,"79":0.00451,"81":0.00902,"84":0.00902,"88":0.02256,"89":0.00451,"91":0.03158,"94":0.00451,"95":0.01353,"98":0.00902,"99":0.30675,"100":1.38939,"101":0.00902,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 82 83 85 86 87 90 92 93 96 97 102 103 3.5 3.6"},D:{"38":0.01353,"42":1.76831,"49":0.03609,"52":0.00902,"53":0.00902,"64":0.00902,"67":0.00451,"69":0.00902,"70":1.79087,"71":0.32028,"73":0.00451,"74":0.00902,"77":0.00902,"79":0.1218,"81":0.00902,"83":0.02256,"84":0.03158,"85":0.00902,"86":0.05864,"87":0.06315,"88":0.00902,"89":0.04962,"90":0.01804,"91":0.02256,"92":0.03158,"93":0.01804,"94":0.01353,"95":0.04511,"96":0.05864,"97":0.04511,"98":0.14435,"99":0.19848,"100":5.24178,"101":20.31754,"102":1.85853,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 47 48 50 51 54 55 56 57 58 59 60 61 62 63 65 66 68 72 75 76 78 80 103 104"},F:{"28":0.01804,"40":0.00902,"46":0.00451,"82":0.00451,"85":0.52779,"86":0.73529,"87":0.03158,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.01353,"16":0.01353,"18":0.03158,"90":0.00451,"93":0.00902,"97":0.00902,"98":0.02256,"99":0.02256,"100":0.38344,"101":4.52453,_:"12 13 14 17 79 80 81 83 84 85 86 87 88 89 91 92 94 95 96"},E:{"4":0,"13":0.01804,"14":0.16691,"15":0.06315,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00902,"12.1":0.02256,"13.1":0.5729,"14.1":0.35186,"15.1":0.16691,"15.2-15.3":0.08571,"15.4":1.08715,"15.5":0.11729},G:{"8":0.00112,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00223,"6.0-6.1":0.00335,"7.0-7.1":0.00558,"8.1-8.4":0,"9.0-9.2":0.00446,"9.3":0.05579,"10.0-10.2":0.00223,"10.3":0.08256,"11.0-11.2":0.0145,"11.3-11.4":0.01227,"12.0-12.1":0.02231,"12.2-12.5":0.4619,"13.0-13.1":0.01227,"13.2":0.00558,"13.3":0.04351,"13.4-13.7":0.12942,"14.0-14.4":0.35368,"14.5-14.8":1.32323,"15.0-15.1":0.37823,"15.2-15.3":0.87806,"15.4":7.35587},P:{"4":0.18554,"5.0-5.4":0.05132,"6.2-6.4":0.02053,"7.2-7.4":0.05154,"8.2":0.22305,"9.2":0.01031,"10.1":0.04105,"11.1-11.2":0.06185,"12.0":0.01031,"13.0":0.06185,"14.0":0.07216,"15.0":0.05154,"16.0":1.1751},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00159,"4.2-4.3":0.00319,"4.4":0,"4.4.3-4.4.4":0.04462},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00902,"11":0.23908,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":37.28002},S:{"2.5":0},R:{_:"0"},M:{"0":0.17016},Q:{"10.4":0},O:{"0":0.51048},H:{"0":0.41573}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CZ.js index 9c56cb2e893b92..8eb6938e4116d9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/CZ.js @@ -1 +1 @@ -module.exports={C:{"52":0.15019,"56":0.01073,"68":0.01073,"72":0.01073,"78":0.04828,"82":0.00536,"84":0.01609,"86":0.01073,"87":0.00536,"88":0.02682,"89":0.02146,"90":0.01073,"91":0.23602,"92":0.01073,"93":0.01073,"94":0.12337,"95":0.05364,"96":0.06437,"97":2.25824,"98":3.50269,"99":0.01073,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 83 85 100 3.5 3.6"},D:{"38":0.01073,"42":0.00536,"49":0.04828,"53":0.00536,"57":0.00536,"67":0.00536,"69":0.00536,"70":0.01073,"72":0.00536,"73":0.01073,"74":0.00536,"76":0.00536,"77":0.00536,"78":0.01073,"79":0.08046,"80":0.04291,"81":0.04291,"83":0.02146,"84":0.03755,"85":0.02682,"86":0.02146,"87":0.08582,"88":0.02146,"89":0.08046,"90":0.08046,"91":0.08046,"92":0.04828,"93":0.60613,"94":0.03218,"95":0.04828,"96":0.20383,"97":0.49349,"98":8.11037,"99":22.13723,"100":0.01609,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 47 48 50 51 52 54 55 56 58 59 60 61 62 63 64 65 66 68 71 75 101 102 103"},F:{"77":0.01073,"79":0.01073,"80":0.00536,"82":0.02146,"83":0.76169,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.02146},B:{"16":0.01073,"17":0.01073,"18":0.02146,"89":0.00536,"90":0.00536,"91":0.01609,"92":0.01073,"94":0.02682,"95":0.01073,"96":0.03218,"97":0.09655,"98":1.45364,"99":5.16553,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 93"},E:{"4":0,"12":0.00536,"13":0.01609,"14":0.15019,"15":0.06973,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.01073,"11.1":0.00536,"12.1":0.02146,"13.1":0.14483,"14.1":0.43448,"15.1":0.18238,"15.2-15.3":0.25211,"15.4":0.1341},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00168,"6.0-6.1":0.00084,"7.0-7.1":0.00252,"8.1-8.4":0.00168,"9.0-9.2":0.00084,"9.3":0.03525,"10.0-10.2":0.00168,"10.3":0.04616,"11.0-11.2":0.01091,"11.3-11.4":0.00755,"12.0-12.1":0.01091,"12.2-12.5":0.2006,"13.0-13.1":0.0042,"13.2":0.00671,"13.3":0.02266,"13.4-13.7":0.08645,"14.0-14.4":0.21235,"14.5-14.8":0.95684,"15.0-15.1":0.51871,"15.2-15.3":5.73183,"15.4":0.52794},P:{"4":0.0842,"5.0-5.4":0.05044,"6.2-6.4":0.03026,"7.2-7.4":0.01031,"8.2":0.02018,"9.2":0.09079,"10.1":0.05044,"11.1-11.2":0.0421,"12.0":0.04122,"13.0":0.03158,"14.0":0.05263,"15.0":0.0421,"16.0":1.73667},I:{"0":0,"3":0,"4":0.00141,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00282,"4.2-4.3":0.01126,"4.4":0,"4.4.3-4.4.4":0.06334},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01623,"10":0.03786,"11":0.58959,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":26.39893},S:{"2.5":0},R:{_:"0"},M:{"0":0.32923},Q:{"10.4":0},O:{"0":0.17157},H:{"0":0.50046}}; +module.exports={C:{"50":0.00511,"52":0.16349,"56":0.02044,"65":0.00511,"66":0.01022,"68":0.01533,"76":0.00511,"78":0.04087,"83":0.01022,"84":0.01022,"86":0.01022,"88":0.03065,"89":0.01022,"90":0.00511,"91":0.21969,"92":0.01022,"93":0.01022,"94":0.1686,"95":0.01533,"96":0.02555,"97":0.03065,"98":0.04598,"99":1.1342,"100":4.64919,"101":0.01533,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 55 57 58 59 60 61 62 63 64 67 69 70 71 72 73 74 75 77 79 80 81 82 85 87 102 103 3.5 3.6"},D:{"38":0.01022,"41":0.01022,"42":0.00511,"49":0.03576,"53":0.00511,"60":0.01022,"63":0.00511,"65":0.00511,"67":0.01533,"68":0.00511,"69":0.00511,"70":0.00511,"72":0.01022,"73":0.00511,"74":0.01533,"76":0.00511,"78":0.01533,"79":0.07664,"80":0.02555,"81":0.04087,"83":0.01533,"84":0.03065,"85":0.03065,"86":0.04087,"87":0.04598,"88":0.01533,"89":0.08174,"90":0.07664,"91":0.05109,"92":0.03065,"93":0.01533,"94":0.02044,"95":0.03065,"96":0.09196,"97":0.06642,"98":0.10729,"99":0.41894,"100":7.06575,"101":20.02728,"102":1.73706,"103":0.00511,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 61 62 64 66 71 75 77 104"},F:{"46":0.00511,"69":0.00511,"84":0.01022,"85":1.57868,"86":0.92473,"87":0.13283,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.02044},B:{"15":0.00511,"16":0.01022,"17":0.01022,"18":0.02044,"89":0.00511,"91":0.02044,"92":0.01022,"94":0.03065,"96":0.01533,"97":0.01533,"98":0.02555,"99":0.07153,"100":0.34741,"101":6.25342,_:"12 13 14 79 80 81 83 84 85 86 87 88 90 93 95"},E:{"4":0,"12":0.00511,"13":0.01533,"14":0.1124,"15":0.04598,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00511,"11.1":0.00511,"12.1":0.02555,"13.1":0.14305,"14.1":0.29632,"15.1":0.09707,"15.2-15.3":0.09196,"15.4":1.17507,"15.5":0.16349},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00094,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00094,"9.0-9.2":0.00094,"9.3":0.03668,"10.0-10.2":0.00188,"10.3":0.04797,"11.0-11.2":0.00846,"11.3-11.4":0.01035,"12.0-12.1":0.00941,"12.2-12.5":0.22761,"13.0-13.1":0.00564,"13.2":0.00846,"13.3":0.02163,"13.4-13.7":0.06584,"14.0-14.4":0.17588,"14.5-14.8":0.69975,"15.0-15.1":0.2229,"15.2-15.3":0.66871,"15.4":7.18652},P:{"4":0.0944,"5.0-5.4":0.05132,"6.2-6.4":0.02053,"7.2-7.4":0.05154,"8.2":0.22305,"9.2":0.01031,"10.1":0.04105,"11.1-11.2":0.03147,"12.0":0.01031,"13.0":0.04196,"14.0":0.06293,"15.0":0.04196,"16.0":0.83913},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00359,"4.2-4.3":0.01435,"4.4":0,"4.4.3-4.4.4":0.08967},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01533,"9":0.01022,"10":0.03065,"11":0.50068,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":34.07823},S:{"2.5":0},R:{_:"0"},M:{"0":0.44997},Q:{"10.4":0},O:{"0":0.1614},H:{"0":0.52788}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DE.js index 932e66357e68a6..3cad6458a4dbd7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DE.js @@ -1 +1 @@ -module.exports={C:{"48":0.01002,"50":0.00501,"51":0.01503,"52":0.14526,"56":0.01002,"59":0.02004,"60":0.01002,"65":0.00501,"66":0.01002,"68":0.02505,"69":0.00501,"70":0.00501,"72":0.01503,"74":0.00501,"75":0.00501,"76":0.00501,"77":0.13524,"78":0.15528,"79":0.09016,"80":0.02004,"81":0.02004,"82":0.02004,"83":0.01503,"84":0.02004,"85":0.01002,"86":0.05009,"87":0.02505,"88":0.03005,"89":0.03005,"90":0.24043,"91":0.34562,"92":0.02004,"93":0.02505,"94":0.13524,"95":0.06512,"96":0.21038,"97":3.62652,"98":5.3446,"99":0.01503,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 53 54 55 57 58 61 62 63 64 67 71 73 100 3.5 3.6"},D:{"35":0.01002,"38":0.00501,"47":0.00501,"49":0.04508,"51":0.04508,"52":0.03005,"56":0.00501,"58":0.00501,"59":0.00501,"60":0.01002,"61":0.01503,"63":0.01503,"65":0.13023,"66":0.1102,"67":0.01002,"68":0.03506,"69":0.07013,"70":0.03506,"71":0.05009,"72":0.04508,"73":0.00501,"74":0.01503,"75":1.20717,"76":0.01503,"77":0.01002,"78":0.03005,"79":0.08014,"80":0.35564,"81":0.04508,"83":0.08515,"84":0.17031,"85":0.17031,"86":0.30555,"87":0.15528,"88":0.04007,"89":0.06011,"90":0.06011,"91":0.0551,"92":0.05009,"93":0.556,"94":0.20537,"95":0.04508,"96":0.17532,"97":0.26548,"98":4.44799,"99":12.0216,"100":0.02004,"101":0.01002,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 40 41 42 43 44 45 46 48 50 53 54 55 57 62 64 102 103"},F:{"36":0.00501,"46":0.00501,"68":0.01002,"70":0.01002,"71":0.01002,"77":0.02004,"78":0.01002,"79":0.02004,"80":0.01503,"81":0.01002,"82":0.03005,"83":1.30735,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00501},B:{"15":0.00501,"16":0.00501,"17":0.01503,"18":0.03506,"84":0.01002,"85":0.01002,"86":0.01503,"87":0.01002,"89":0.01002,"90":0.00501,"91":0.01002,"92":0.01002,"93":0.01002,"94":0.02004,"95":0.01503,"96":0.05009,"97":0.10519,"98":1.51773,"99":4.86374,_:"12 13 14 79 80 81 83 88"},E:{"4":0,"7":0.00501,"12":0.00501,"13":0.04508,"14":0.28551,"15":0.15027,_:"0 5 6 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.02004,"10.1":0.00501,"11.1":0.05009,"12.1":0.06512,"13.1":0.33059,"14.1":0.88659,"15.1":0.38569,"15.2-15.3":0.48086,"15.4":0.2755},G:{"8":0.0031,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00155,"6.0-6.1":0,"7.0-7.1":0.0031,"8.1-8.4":0.00155,"9.0-9.2":0.01862,"9.3":0.0838,"10.0-10.2":0.00466,"10.3":0.09156,"11.0-11.2":0.01862,"11.3-11.4":0.08069,"12.0-12.1":0.01397,"12.2-12.5":0.41898,"13.0-13.1":0.01397,"13.2":0.00776,"13.3":0.03879,"13.4-13.7":0.14742,"14.0-14.4":0.45312,"14.5-14.8":1.87767,"15.0-15.1":0.94194,"15.2-15.3":10.487,"15.4":0.79917},P:{"4":0.10481,"5.0-5.4":0.01048,"6.2-6.4":0.03035,"7.2-7.4":0.1272,"8.2":0.0104,"9.2":0.07082,"10.1":0.02033,"11.1-11.2":0.04192,"12.0":0.02096,"13.0":0.10481,"14.0":0.09433,"15.0":1.13196,"16.0":4.46495},I:{"0":0,"3":0,"4":0.00158,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00238,"4.2-4.3":0.00713,"4.4":0,"4.4.3-4.4.4":0.03882},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01013,"9":0.02025,"11":0.44047,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":24.34831},S:{"2.5":0},R:{_:"0"},M:{"0":0.91335},Q:{"10.4":0},O:{"0":0.13476},H:{"0":0.53867}}; +module.exports={C:{"48":0.00948,"50":0.00948,"51":0.02369,"52":0.16583,"53":0.02843,"54":0.01421,"55":0.02369,"56":0.02843,"57":0.01895,"58":0.00948,"59":0.03317,"60":0.00948,"66":0.00948,"68":0.01895,"70":0.00474,"71":0.00474,"72":0.00948,"77":0.13266,"78":0.11845,"79":0.12793,"80":0.01895,"81":0.02843,"82":0.01895,"83":0.01421,"84":0.01421,"85":0.00948,"86":0.0379,"87":0.02369,"88":0.02369,"89":0.01895,"90":0.00948,"91":0.32692,"92":0.01421,"93":0.01421,"94":0.08055,"95":0.03317,"96":0.08055,"97":0.05686,"98":0.1374,"99":1.49247,"100":7.23019,"101":0.01895,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 61 62 63 64 65 67 69 73 74 75 76 102 103 3.5 3.6"},D:{"35":0.01421,"38":0.00474,"39":0.00474,"40":0.00474,"41":0.01421,"42":0.00948,"43":0.00948,"44":0.00948,"45":0.00948,"46":0.00948,"47":0.01421,"48":0.00948,"49":0.04738,"50":0.00474,"51":0.05212,"52":0.0379,"53":0.00948,"54":0.00474,"55":0.00948,"56":0.00948,"57":0.00948,"58":0.01421,"59":0.01421,"60":0.01895,"61":0.02843,"62":0.01895,"63":0.03317,"64":0.00948,"65":0.14214,"66":0.13266,"67":0.01421,"68":0.01421,"69":0.06159,"70":0.05212,"71":0.01895,"72":0.03317,"73":0.00474,"74":0.00948,"75":1.70094,"76":0.01895,"77":0.00948,"78":0.02843,"79":0.07581,"80":0.04264,"81":0.07107,"83":0.10424,"84":0.18478,"85":0.19426,"86":0.20373,"87":0.17057,"88":0.02843,"89":0.08055,"90":0.03317,"91":0.0379,"92":0.05212,"93":0.02843,"94":0.0379,"95":0.02843,"96":0.08528,"97":0.06159,"98":0.10897,"99":0.26059,"100":2.85701,"101":11.72181,"102":1.05184,"103":0.00474,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 104"},F:{"36":0.00474,"46":0.00474,"68":0.00948,"69":0.01421,"70":0.00474,"71":0.00948,"72":0.00948,"82":0.00948,"83":0.00474,"84":0.01421,"85":1.29347,"86":1.54933,"87":0.05212,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00948,"15":0.00474,"17":0.01421,"18":0.03317,"83":0.00474,"84":0.01421,"85":0.01895,"86":0.01421,"87":0.00948,"89":0.02843,"90":0.00474,"91":0.00948,"92":0.01421,"93":0.00948,"94":0.00948,"95":0.00948,"96":0.02369,"97":0.02843,"98":0.02843,"99":0.09476,"100":0.33166,"101":5.79931,_:"12 13 16 79 80 81 88"},E:{"4":0,"7":0.00474,"12":0.00474,"13":0.03317,"14":0.20847,"15":0.08055,_:"0 5 6 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01895,"10.1":0.00948,"11.1":0.05686,"12.1":0.05212,"13.1":0.27954,"14.1":0.5733,"15.1":0.16583,"15.2-15.3":0.17531,"15.4":2.86175,"15.5":0.35535},G:{"8":0.00339,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00339,"6.0-6.1":0.00508,"7.0-7.1":0.00508,"8.1-8.4":0.00508,"9.0-9.2":0.02712,"9.3":0.08135,"10.0-10.2":0.01525,"10.3":0.08643,"11.0-11.2":0.03559,"11.3-11.4":0.0949,"12.0-12.1":0.01695,"12.2-12.5":0.50163,"13.0-13.1":0.01695,"13.2":0.00678,"13.3":0.04915,"13.4-13.7":0.16778,"14.0-14.4":0.51011,"14.5-14.8":1.46083,"15.0-15.1":0.43554,"15.2-15.3":1.17782,"15.4":12.23745},P:{"4":0.11465,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.04169,"12.0":0.02084,"13.0":0.0938,"14.0":0.08338,"15.0":1.3549,"16.0":1.57377},I:{"0":0,"3":0,"4":0.0007,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0021,"4.2-4.3":0.00561,"4.4":0,"4.4.3-4.4.4":0.03368},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01938,"9":0.02907,"10":0.00969,"11":0.37302,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":26.98496},S:{"2.5":0},R:{_:"0"},M:{"0":1.02083},Q:{"10.4":0},O:{"0":0.16312},H:{"0":0.55795}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DJ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DJ.js index 7ce84b47cbce84..513950d8cf5b29 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DJ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DJ.js @@ -1 +1 @@ -module.exports={C:{"34":0.00902,"43":0.00902,"52":0.01803,"60":0.00301,"72":0.00601,"78":0.01803,"89":0.00902,"91":0.01503,"94":0.00301,"96":0.02104,"97":0.45676,"98":1.54157,"99":0.07212,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 92 93 95 100 3.5 3.6"},D:{"37":0.01202,"40":0.00601,"46":0.02404,"49":0.07813,"53":0.11419,"55":0.00301,"59":0.19232,"63":0.01202,"65":0.00301,"66":0.00902,"67":0.03606,"68":0.01202,"72":0.02705,"74":0.02104,"76":0.00601,"78":0.01202,"79":0.02705,"80":0.00301,"81":0.01202,"83":0.00301,"84":0.01202,"85":0.02104,"86":0.01803,"87":0.04207,"88":0.02104,"89":0.02404,"90":0.01503,"91":0.33656,"92":0.16227,"93":0.02404,"94":0.03907,"95":0.01202,"96":0.1202,"97":0.19833,"98":3.84039,"99":14.38794,"100":0.12321,"101":0.07813,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 41 42 43 44 45 47 48 50 51 52 54 56 57 58 60 61 62 64 69 70 71 73 75 77 102 103"},F:{"74":0.00902,"76":0.57095,"83":0.00902,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02705,"14":0.00301,"15":0.02404,"16":0.00601,"17":0.02404,"18":0.08114,"84":0.00601,"85":0.02404,"89":0.01202,"90":0.01202,"91":0.00902,"92":0.01202,"93":0.01803,"94":0.00601,"95":0.00301,"96":0.02404,"97":0.02705,"98":0.61603,"99":3.29048,_:"13 79 80 81 83 86 87 88"},E:{"4":0,"13":0.00601,"14":0.03907,"15":0.02404,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.4","12.1":0.00601,"13.1":0.15025,"14.1":0.07813,"15.1":0.0601,"15.2-15.3":0.14124},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00278,"6.0-6.1":0.00278,"7.0-7.1":0.00833,"8.1-8.4":0,"9.0-9.2":0.00463,"9.3":0.00926,"10.0-10.2":0,"10.3":0.01759,"11.0-11.2":0.01759,"11.3-11.4":0.01111,"12.0-12.1":0.00741,"12.2-12.5":0.16113,"13.0-13.1":0.01667,"13.2":0.0213,"13.3":0.32504,"13.4-13.7":1.18997,"14.0-14.4":0.45284,"14.5-14.8":2.61793,"15.0-15.1":1.00476,"15.2-15.3":2.71424,"15.4":0.67601},P:{"4":0.42436,"5.0-5.4":0.02021,"6.2-6.4":0.04042,"7.2-7.4":1.18216,"8.2":0.02018,"9.2":0.11114,"10.1":0.02021,"11.1-11.2":0.35364,"12.0":0.08083,"13.0":0.30312,"14.0":0.28291,"15.0":0.39405,"16.0":3.06148},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0057,"4.4":0,"4.4.3-4.4.4":0.07125},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07813,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":52.93614},S:{"2.5":0},R:{_:"0"},M:{"0":0.11892},Q:{"10.4":0.39172},O:{"0":0.90935},H:{"0":0.65562}}; +module.exports={C:{"78":0.03952,"81":0.00565,"84":0.00565,"88":0.00847,"91":0.02258,"97":0.01694,"98":0.03388,"99":0.23713,"100":1.63169,"101":0.01412,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 85 86 87 89 90 92 93 94 95 96 102 103 3.5 3.6"},D:{"31":0.00847,"46":0.00565,"47":0.00282,"49":0.01976,"51":0.00282,"59":0.42345,"63":0.01129,"65":0.01694,"69":0.00565,"70":0.00282,"71":0.1468,"72":0.00565,"74":0.00565,"76":0.00847,"79":0.0367,"84":0.01412,"86":0.00565,"87":0.13833,"88":0.01694,"89":0.05081,"91":0.12986,"92":0.04517,"93":0.01412,"94":0.01976,"95":0.00282,"96":0.05928,"97":0.03388,"98":0.06775,"99":0.30206,"100":2.74678,"101":14.17146,"102":1.13767,"103":0.03105,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 48 50 52 53 54 55 56 57 58 60 61 62 64 66 67 68 73 75 77 78 80 81 83 85 90 104"},F:{"76":0.40369,"84":0.00282,"85":0.16938,"86":0.20608,"87":0.01129,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.01129,"15":0.00565,"16":0.00565,"17":0.02823,"18":0.05928,"84":0.03388,"89":0.00565,"91":0.01129,"92":0.01412,"93":0.00282,"95":0.00565,"97":0.01694,"98":0.01694,"99":0.12704,"100":0.15809,"101":2.58869,_:"12 14 79 80 81 83 85 86 87 88 90 94 96"},E:{"4":0,"13":0.00282,"14":0.05364,"15":0.05928,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.09316,"12.1":0.00565,"13.1":0.10445,"14.1":0.1722,"15.1":0.04235,"15.2-15.3":0.01976,"15.4":0.41216,"15.5":0.00282},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00303,"6.0-6.1":0.00531,"7.0-7.1":0.01366,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01062,"10.0-10.2":0,"10.3":0.02049,"11.0-11.2":0.02352,"11.3-11.4":0.0349,"12.0-12.1":0.01821,"12.2-12.5":0.2041,"13.0-13.1":0.00759,"13.2":0.01366,"13.3":0.0258,"13.4-13.7":0.11684,"14.0-14.4":0.69196,"14.5-14.8":1.45449,"15.0-15.1":0.66389,"15.2-15.3":0.73293,"15.4":3.54403},P:{"4":0.29492,"5.0-5.4":0.05132,"6.2-6.4":0.03051,"7.2-7.4":0.94579,"8.2":0.22305,"9.2":0.12204,"10.1":0.04105,"11.1-11.2":0.57968,"12.0":0.1017,"13.0":0.539,"14.0":0.54917,"15.0":0.16272,"16.0":1.76953},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00057,"4.2-4.3":0.00344,"4.4":0,"4.4.3-4.4.4":0.02469},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0367,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":56.77624},S:{"2.5":0},R:{_:"0"},M:{"0":0.22246},Q:{"10.4":0.35162},O:{"0":0.57408},H:{"0":0.79487}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DK.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DK.js index 5bbdc503b9b69c..6868ce3d414701 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DK.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DK.js @@ -1 +1 @@ -module.exports={C:{"48":0.00667,"52":0.03336,"70":0.01334,"78":0.06005,"84":0.01334,"87":0.06672,"89":0.01334,"90":0.02002,"91":0.13344,"94":0.00667,"95":0.01334,"96":0.02669,"97":0.86736,"98":1.35442,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 79 80 81 82 83 85 86 88 92 93 99 100 3.5 3.6"},D:{"38":0.01334,"49":0.06005,"52":0.02669,"59":0.01334,"66":0.02002,"67":0.01334,"69":0.24019,"70":0.01334,"72":0.01334,"74":0.00667,"75":0.01334,"76":0.04003,"77":0.01334,"78":0.02669,"79":0.06672,"80":0.10675,"81":0.02669,"83":0.03336,"84":0.04003,"85":0.03336,"86":0.04003,"87":0.14678,"88":0.04003,"89":0.09341,"90":0.07339,"91":0.14011,"92":0.11342,"93":0.29357,"94":0.10008,"95":0.18682,"96":0.53376,"97":1.25434,"98":14.61835,"99":27.55536,"100":0.02002,"101":0.01334,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 60 61 62 63 64 65 68 71 73 102 103"},F:{"82":0.01334,"83":0.60048,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01334,"84":0.01334,"85":0.00667,"86":0.02002,"88":0.01334,"89":0.01334,"90":0.01334,"91":0.01334,"92":0.01334,"93":0.00667,"94":0.01334,"95":0.02669,"96":0.04003,"97":0.06672,"98":1.41446,"99":4.35682,_:"12 13 14 15 16 17 79 80 81 83 87"},E:{"4":0,"12":0.01334,"13":0.08006,"14":0.72058,"15":0.32693,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02669,"12.1":0.10675,"13.1":0.48706,"14.1":2.2151,"15.1":0.70056,"15.2-15.3":0.74059,"15.4":0.24686},G:{"8":0.00374,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00561,"8.1-8.4":0.00187,"9.0-9.2":0.03929,"9.3":0.06361,"10.0-10.2":0.01497,"10.3":0.14967,"11.0-11.2":0.02806,"11.3-11.4":0.02245,"12.0-12.1":0.02432,"12.2-12.5":0.50327,"13.0-13.1":0.02432,"13.2":0.01123,"13.3":0.058,"13.4-13.7":0.18896,"14.0-14.4":0.57437,"14.5-14.8":3.10195,"15.0-15.1":1.01777,"15.2-15.3":12.35914,"15.4":0.50514},P:{"4":0.01103,"5.0-5.4":0.05044,"6.2-6.4":0.03026,"7.2-7.4":0.01031,"8.2":0.02018,"9.2":0.09079,"10.1":0.05044,"11.1-11.2":0.0421,"12.0":0.04122,"13.0":0.02206,"14.0":0.01103,"15.0":0.02206,"16.0":1.54409},I:{"0":0,"3":0,"4":0.00468,"2.1":0.00078,"2.2":0.00312,"2.3":0.00312,"4.1":0.00312,"4.2-4.3":0.01952,"4.4":0,"4.4.3-4.4.4":0.04216},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01334,"10":0.07339,"11":0.40032,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":11.84457},S:{"2.5":0},R:{_:"0"},M:{"0":0.39591},Q:{"10.4":0},O:{"0":0.01664},H:{"0":0.13859}}; +module.exports={C:{"47":0.00629,"48":0.00629,"52":0.03775,"78":0.05034,"87":0.03146,"90":0.19505,"91":0.09438,"93":0.00629,"94":0.06921,"96":0.01258,"97":0.01888,"98":0.02517,"99":0.4719,"100":2.03861,"101":0.00629,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 88 89 92 95 102 103 3.5 3.6"},D:{"38":0.00629,"49":0.0755,"52":0.02517,"58":0.00629,"59":0.01258,"66":0.01258,"67":0.00629,"69":0.16359,"70":0.00629,"75":0.01258,"76":0.03775,"77":0.00629,"78":0.01888,"79":0.06921,"80":0.05663,"81":0.01888,"83":0.01888,"84":0.04404,"85":0.02517,"86":0.03146,"87":0.08809,"88":0.01888,"89":0.06921,"90":0.03146,"91":0.0755,"92":0.0755,"93":0.13213,"94":0.05663,"95":0.0755,"96":0.22651,"97":0.18876,"98":0.28943,"99":0.81796,"100":7.42456,"101":29.64161,"102":1.89389,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 60 61 62 63 64 65 68 71 72 73 74 103 104"},F:{"69":0.00629,"84":0.00629,"85":0.67954,"86":0.69841,"87":0.01888,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"86":0.01258,"90":0.01258,"91":0.00629,"92":0.01258,"94":0.01258,"95":0.00629,"96":0.01258,"97":0.02517,"98":0.03146,"99":0.06292,"100":0.32718,"101":5.80122,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 87 88 89 93"},E:{"4":0,"5":0.01888,"13":0.0755,"14":0.47819,"15":0.20764,_:"0 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00629,"11.1":0.02517,"12.1":0.08809,"13.1":0.42156,"14.1":1.60446,"15.1":0.37123,"15.2-15.3":0.29572,"15.4":4.0898,"15.5":0.37123},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00206,"8.1-8.4":0,"9.0-9.2":0.06177,"9.3":0.0803,"10.0-10.2":0.04941,"10.3":0.17295,"11.0-11.2":0.02265,"11.3-11.4":0.02265,"12.0-12.1":0.01853,"12.2-12.5":0.51473,"13.0-13.1":0.01441,"13.2":0.00824,"13.3":0.03912,"13.4-13.7":0.14001,"14.0-14.4":0.45914,"14.5-14.8":2.16393,"15.0-15.1":0.52914,"15.2-15.3":1.61214,"15.4":14.67192},P:{"4":0.05346,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 12.0","11.1-11.2":0.01069,"13.0":0.01069,"14.0":0.01069,"15.0":0.02138,"16.0":0.65224},I:{"0":0,"3":0,"4":0.00269,"2.1":0,"2.2":0.00359,"2.3":0.00179,"4.1":0.00269,"4.2-4.3":0.00448,"4.4":0,"4.4.3-4.4.4":0.06634},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.01258,"8":0.01258,"9":0.00629,"10":0.08809,"11":0.40898,_:"6 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":13.76846},S:{"2.5":0},R:{_:"0"},M:{"0":0.44496},Q:{"10.4":0.00371},O:{"0":0.02596},H:{"0":0.16148}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DM.js index d54ffe65f411f3..be16676d363f6f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DM.js @@ -1 +1 @@ -module.exports={C:{"60":0.01078,"68":0.02155,"84":0.01078,"97":0.42026,"98":0.51725,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 96 99 100 3.5 3.6"},D:{"29":0.01078,"38":0.02155,"39":0.0431,"42":0.01616,"49":0.01616,"50":0.01616,"51":0.0916,"62":0.00539,"63":0.01616,"69":0.0916,"71":0.00539,"75":0.10237,"76":1.70261,"77":0.19936,"79":0.04849,"81":0.02155,"83":0.03233,"85":0.01078,"87":0.03233,"88":0.02694,"89":0.00539,"90":0.0916,"91":0.03233,"92":0.00539,"93":0.10237,"94":0.01616,"95":0.03772,"96":0.0916,"97":0.61423,"98":8.76628,"99":20.79768,"100":0.17242,"101":0.01078,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 40 41 43 44 45 46 47 48 52 53 54 55 56 57 58 59 60 61 64 65 66 67 68 70 72 73 74 78 80 84 86 102 103"},F:{"83":0.60346,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.15086,"18":0.07004,"90":0.01078,"92":2.03666,"95":0.00539,"96":0.03772,"97":0.02155,"98":1.03988,"99":5.12938,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 91 93 94"},E:{"4":0,"14":0.04849,"15":0.08082,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01616,"13.1":0.15625,"14.1":0.3125,"15.1":0.09698,"15.2-15.3":0.16164,"15.4":0.15086},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0041,"6.0-6.1":0,"7.0-7.1":0.01054,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0082,"10.0-10.2":0.00117,"10.3":0.03105,"11.0-11.2":0.00117,"11.3-11.4":0.01582,"12.0-12.1":0,"12.2-12.5":0.24837,"13.0-13.1":0,"13.2":0.00586,"13.3":0.0041,"13.4-13.7":0.03749,"14.0-14.4":0.07674,"14.5-14.8":0.72286,"15.0-15.1":1.17274,"15.2-15.3":3.13979,"15.4":0.37724},P:{"4":0.62361,"5.0-5.4":0.02021,"6.2-6.4":0.04042,"7.2-7.4":0.0547,"8.2":0.02018,"9.2":0.11114,"10.1":0.02021,"11.1-11.2":0.04376,"12.0":0.08083,"13.0":0.04376,"14.0":0.16411,"15.0":0.02188,"16.0":4.39809},I:{"0":0,"3":0,"4":0.02743,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02939,"4.4":0,"4.4.3-4.4.4":0.24296},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0431,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":39.0442},S:{"2.5":0},R:{_:"0"},M:{"0":0.06918},Q:{"10.4":0},O:{"0":0.65029},H:{"0":0.03056}}; +module.exports={C:{"34":0.01049,"68":0.00524,"78":0.00524,"97":0.05244,"98":0.02098,"99":0.2622,"100":1.64137,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 101 102 103 3.5 3.6"},D:{"49":0.01573,"58":0.02098,"62":0.03146,"63":0.00524,"69":0.02098,"73":0.24122,"75":0.0839,"76":1.29527,"77":0.24647,"78":0.01573,"79":0.01049,"80":0.01049,"81":0.03146,"83":0.00524,"85":0.01049,"87":0.00524,"88":0.01049,"90":0.03146,"91":0.01573,"92":0.05768,"93":0.0472,"95":0.03671,"96":0.11537,"97":0.32513,"98":0.77611,"99":0.30415,"100":5.96243,"101":20.48306,"102":1.93504,"103":0.29891,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 64 65 66 67 68 70 71 72 74 84 86 89 94 104"},F:{"85":0.3461,"86":0.26744,"87":0.09964,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.15208,"85":0.00524,"92":1.52076,"95":0.00524,"97":0.00524,"98":0.01573,"99":0.02622,"100":0.58733,"101":4.96082,_:"12 13 14 15 17 18 79 80 81 83 84 86 87 88 89 90 91 93 94 96"},E:{"4":0,"14":0.03671,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.0472,"12.1":0.01049,"13.1":0.19927,"14.1":0.24122,"15.1":0.18354,"15.2-15.3":0.03671,"15.4":0.75514,"15.5":0.3094},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00075,"6.0-6.1":0,"7.0-7.1":0.00597,"8.1-8.4":0.00075,"9.0-9.2":0,"9.3":0.00448,"10.0-10.2":0,"10.3":0.04852,"11.0-11.2":0.00523,"11.3-11.4":0.00448,"12.0-12.1":0.00075,"12.2-12.5":0.29858,"13.0-13.1":0.00224,"13.2":0.00075,"13.3":0.00075,"13.4-13.7":0.04927,"14.0-14.4":0.15377,"14.5-14.8":0.84796,"15.0-15.1":0.60612,"15.2-15.3":1.23985,"15.4":4.19354},P:{"4":0.36502,"5.0-5.4":0.05132,"6.2-6.4":0.03051,"7.2-7.4":0.13957,"8.2":0.22305,"9.2":0.12204,"10.1":0.04105,"11.1-11.2":0.44017,"12.0":0.1017,"13.0":0.10736,"14.0":0.07515,"15.0":0.02147,"16.0":1.07359},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.15222},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06293,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00476},N:{"10":0.06871,_:"11"},L:{"0":42.87415},S:{"2.5":0},R:{_:"0"},M:{"0":0.0999},Q:{"10.4":0},O:{"0":0.11417},H:{"0":0.10809}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DO.js index 6a0a325bb72c43..2b796cb082650e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DO.js @@ -1 +1 @@ -module.exports={C:{"52":0.0119,"72":0.00397,"73":0.0238,"75":0.00397,"78":0.0119,"79":0.0119,"80":0.00397,"81":0.00397,"84":0.00793,"87":0.00793,"88":0.00793,"89":0.00793,"90":0.0119,"91":0.01587,"93":0.00397,"95":0.00793,"96":0.00397,"97":0.38083,"98":0.76563,"99":0.00793,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 76 77 82 83 85 86 92 94 100 3.5 3.6"},D:{"38":0.00397,"47":0.00793,"49":0.16265,"53":0.00397,"55":0.00397,"63":0.01587,"65":0.01587,"67":0.00793,"70":0.0119,"71":0.00397,"72":0.00793,"73":0.00397,"74":0.01984,"75":0.01587,"76":0.02777,"77":0.00793,"78":0.01587,"79":0.03967,"80":0.02777,"81":0.01984,"83":0.0476,"84":0.09124,"85":0.08727,"86":0.12694,"87":0.09918,"88":0.04364,"89":0.0476,"90":0.06744,"91":0.09918,"92":0.03967,"93":0.47604,"94":0.03967,"95":0.05951,"96":0.17455,"97":0.38877,"98":5.74818,"99":19.39466,"100":0.22612,"101":0.0119,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 56 57 58 59 60 61 62 64 66 68 69 102 103"},F:{"49":0.00793,"71":0.00793,"72":0.00397,"80":0.00397,"82":0.01984,"83":0.52761,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 73 74 75 76 77 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00793,"16":0.00397,"17":0.00793,"18":0.14281,"84":0.00793,"87":0.00397,"89":0.01587,"90":0.00793,"92":0.01984,"94":0.00397,"95":0.00793,"96":0.01587,"97":0.03174,"98":0.59108,"99":2.3326,_:"13 14 15 79 80 81 83 85 86 88 91 93"},E:{"4":0,"9":0.00397,"13":0.0238,"14":0.18248,"15":0.08331,_:"0 5 6 7 8 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02777,"11.1":0.01984,"12.1":0.02777,"13.1":0.13885,"14.1":0.37687,"15.1":0.18645,"15.2-15.3":0.14678,"15.4":0.09124},G:{"8":0.00152,"3.2":0.00152,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00305,"6.0-6.1":0,"7.0-7.1":0.03809,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04876,"10.0-10.2":0.00457,"10.3":0.05485,"11.0-11.2":0.01981,"11.3-11.4":0.0259,"12.0-12.1":0.03809,"12.2-12.5":0.63231,"13.0-13.1":0.02743,"13.2":0.00762,"13.3":0.09294,"13.4-13.7":0.23464,"14.0-14.4":0.91723,"14.5-14.8":2.69227,"15.0-15.1":1.0056,"15.2-15.3":8.59027,"15.4":0.79686},P:{"4":0.07582,"5.0-5.4":0.02021,"6.2-6.4":0.04042,"7.2-7.4":0.10832,"8.2":0.02018,"9.2":0.02166,"10.1":0.02021,"11.1-11.2":0.18414,"12.0":0.08083,"13.0":0.07582,"14.0":0.06499,"15.0":0.06499,"16.0":1.31067},I:{"0":0,"3":0,"4":0.00146,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00291,"4.2-4.3":0.00437,"4.4":0,"4.4.3-4.4.4":0.03349},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00397,"9":0.00793,"11":0.05951,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":37.15962},S:{"2.5":0},R:{_:"0"},M:{"0":0.34991},Q:{"10.4":0},O:{"0":0.07843},H:{"0":0.23418}}; +module.exports={C:{"52":0.01251,"73":0.02918,"75":0.01251,"78":0.03752,"81":0.00834,"82":0.01251,"83":0.00417,"84":0.01251,"88":0.01668,"90":0.02085,"91":0.01251,"92":0.00417,"93":0.00417,"95":0.00834,"97":0.01251,"99":0.23346,"100":0.92552,"101":0.01251,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 76 77 79 80 85 86 87 89 94 96 98 102 103 3.5 3.6"},D:{"30":0.00834,"43":0.01251,"47":0.00417,"49":0.07087,"50":0.01251,"55":0.00417,"56":0.00417,"63":0.01251,"64":0.00834,"65":0.02085,"67":0.00834,"68":0.00417,"69":0.00834,"70":0.02085,"72":0.01251,"73":0.00417,"74":0.01251,"75":0.01251,"76":0.02501,"77":0.00417,"78":0.00834,"79":0.05837,"80":0.02085,"81":0.02918,"83":0.10006,"84":0.14592,"85":0.10839,"86":0.26265,"87":0.20011,"88":0.03752,"89":0.0667,"90":0.03752,"91":0.0667,"92":0.03335,"93":0.07087,"94":0.05837,"95":0.05837,"96":0.09172,"97":0.10006,"98":0.1209,"99":0.23763,"100":5.16539,"101":19.99036,"102":1.89273,"103":0.01251,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 51 52 53 54 57 58 59 60 61 62 66 71 104"},F:{"68":0.01251,"69":0.00417,"70":0.01251,"72":0.01251,"84":0.00834,"85":0.78794,"86":0.68789,"87":0.03335,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 71 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00834,"14":0.00417,"17":0.00834,"18":0.13341,"84":0.00834,"89":0.00834,"90":0.00417,"92":0.02085,"94":0.01251,"96":0.01251,"97":0.01251,"98":0.00834,"99":0.04169,"100":0.15008,"101":3.11007,_:"13 15 16 79 80 81 83 85 86 87 88 91 93 95"},E:{"4":0,"13":0.02501,"14":0.17093,"15":0.07087,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00834,"11.1":0.01668,"12.1":0.02918,"13.1":0.14175,"14.1":0.33769,"15.1":0.07921,"15.2-15.3":0.10006,"15.4":0.90884,"15.5":0.10423},G:{"8":0,"3.2":0.00161,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00161,"6.0-6.1":0,"7.0-7.1":0.05136,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04013,"10.0-10.2":0.00963,"10.3":0.04173,"11.0-11.2":0.00803,"11.3-11.4":0.01926,"12.0-12.1":0.0321,"12.2-12.5":0.54893,"13.0-13.1":0.02247,"13.2":0.00803,"13.3":0.09791,"13.4-13.7":0.21508,"14.0-14.4":0.71907,"14.5-14.8":2.00311,"15.0-15.1":0.51522,"15.2-15.3":1.38035,"15.4":10.32855},P:{"4":0.0749,"5.0-5.4":0.0107,"6.2-6.4":0.03051,"7.2-7.4":0.1177,"8.2":0.22305,"9.2":0.0107,"10.1":0.04105,"11.1-11.2":0.1605,"12.0":0.0107,"13.0":0.0321,"14.0":0.0535,"15.0":0.0321,"16.0":0.58849},I:{"0":0,"3":0,"4":0.00221,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00332,"4.2-4.3":0.00775,"4.4":0,"4.4.3-4.4.4":0.07417},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00859,"8":0.0043,"11":0.12886,_:"7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":39.38326},S:{"2.5":0},R:{_:"0"},M:{"0":0.4081},Q:{"10.4":0},O:{"0":0.06996},H:{"0":0.24286}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DZ.js index 8f76ae0af12e71..a7d0ee30ff07a1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/DZ.js @@ -1 +1 @@ -module.exports={C:{"15":0.00402,"21":0.00804,"22":0.00804,"26":0.00804,"27":0.00804,"29":0.00804,"30":0.00804,"32":0.00804,"33":0.00402,"34":0.00804,"35":0.00402,"36":0.01608,"37":0.00402,"38":0.01608,"39":0.00804,"40":0.01206,"41":0.01206,"42":0.00402,"43":0.02413,"44":0.00804,"47":0.02815,"48":0.00804,"49":0.00402,"52":0.2292,"56":0.00804,"67":0.00402,"68":0.00402,"72":0.02011,"78":0.01206,"80":0.00402,"83":0.00402,"84":0.0965,"86":0.00402,"87":0.00804,"88":0.01608,"89":0.03619,"90":0.00804,"91":0.06434,"92":0.01206,"93":0.00804,"94":0.01608,"95":0.02815,"96":0.04021,"97":1.01329,"98":1.76522,"99":0.02413,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 23 24 25 28 31 45 46 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 69 70 71 73 74 75 76 77 79 81 82 85 100 3.5 3.6"},D:{"18":0.00804,"20":0.00804,"21":0.00402,"22":0.01206,"26":0.01206,"27":0.00804,"29":0.00402,"30":0.00804,"31":0.01206,"32":0.01206,"33":0.04423,"34":0.00804,"37":0.00402,"38":0.02413,"39":0.01608,"40":0.04423,"42":0.01206,"43":0.34581,"45":0.00402,"46":0.00402,"47":0.01206,"49":0.41416,"50":0.02413,"51":0.01608,"52":0.01206,"53":0.00804,"54":0.00402,"55":0.00804,"56":0.04423,"57":0.00402,"58":0.02815,"60":0.00804,"61":0.02413,"62":0.00804,"63":0.06032,"64":0.02413,"65":0.01608,"66":0.00804,"67":0.02011,"68":0.01206,"69":0.03619,"70":0.01608,"71":0.02011,"72":0.01608,"73":0.00804,"74":0.02011,"75":0.01608,"76":0.02413,"77":0.01608,"78":0.01608,"79":0.0965,"80":0.05629,"81":0.08042,"83":0.04021,"84":0.05629,"85":0.04021,"86":0.13269,"87":0.29353,"88":0.04825,"89":0.05629,"90":0.04825,"91":0.08846,"92":0.08444,"93":1.02133,"94":0.0764,"95":0.14476,"96":0.32168,"97":0.4021,"98":5.52888,"99":18.09048,"100":0.15682,"101":0.02413,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 23 24 25 28 35 36 41 44 48 59 102 103"},F:{"25":0.00804,"28":0.01608,"77":0.00402,"79":0.00804,"80":0.00804,"82":0.01608,"83":0.23724,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01206,"13":0.00804,"14":0.00804,"15":0.00804,"16":0.01608,"17":0.01206,"18":0.03619,"84":0.00402,"85":0.00402,"89":0.00804,"92":0.01206,"93":0.00804,"94":0.00402,"95":0.00804,"96":0.02815,"97":0.08846,"98":0.31364,"99":1.3028,_:"79 80 81 83 86 87 88 90 91"},E:{"4":0,"13":0.02815,"14":0.02011,"15":0.01206,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00804,"10.1":0.00804,"11.1":0.00402,"12.1":0.00402,"13.1":0.01608,"14.1":0.03217,"15.1":0.02413,"15.2-15.3":0.03217,"15.4":0.04423},G:{"8":0.00046,"3.2":0.00046,"4.0-4.1":0,"4.2-4.3":0.00547,"5.0-5.1":0.01048,"6.0-6.1":0.00137,"7.0-7.1":0.05651,"8.1-8.4":0.00433,"9.0-9.2":0.00205,"9.3":0.06722,"10.0-10.2":0.00137,"10.3":0.03828,"11.0-11.2":0.00547,"11.3-11.4":0.00798,"12.0-12.1":0.00729,"12.2-12.5":0.15495,"13.0-13.1":0.00456,"13.2":0.00365,"13.3":0.02894,"13.4-13.7":0.16201,"14.0-14.4":0.13604,"14.5-14.8":0.27481,"15.0-15.1":0.19574,"15.2-15.3":0.97436,"15.4":0.13421},P:{"4":0.22863,"5.0-5.4":0.27121,"6.2-6.4":0.01039,"7.2-7.4":0.15588,"8.2":0.04018,"9.2":0.05196,"10.1":0.02078,"11.1-11.2":0.11431,"12.0":0.05196,"13.0":0.16627,"14.0":0.1351,"15.0":0.1247,"16.0":1.12234},I:{"0":0,"3":0,"4":0.00103,"2.1":0,"2.2":0,"2.3":0.00052,"4.1":0.00206,"4.2-4.3":0.00696,"4.4":0,"4.4.3-4.4.4":0.04922},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01226,"9":0.04087,"11":0.19617,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":56.28025},S:{"2.5":0},R:{_:"0"},M:{"0":0.15545},Q:{"10.4":0.01196},O:{"0":0.36472},H:{"0":0.55473}}; +module.exports={C:{"15":0.04276,"22":0.00777,"26":0.00777,"27":0.00777,"29":0.00389,"30":0.00777,"31":0.00389,"32":0.00389,"33":0.00389,"34":0.00777,"35":0.00777,"36":0.00777,"37":0.00389,"38":0.02332,"39":0.00777,"40":0.01166,"41":0.00389,"43":0.01555,"44":0.00389,"47":0.01944,"48":0.01166,"52":0.22156,"56":0.00777,"57":0.00389,"60":0.00389,"65":0.00389,"67":0.00389,"68":0.00777,"72":0.01555,"78":0.01166,"79":0.00389,"80":0.00389,"83":0.00389,"84":0.01944,"87":0.00389,"88":0.01166,"89":0.02721,"90":0.00389,"91":0.04664,"92":0.00777,"93":0.00777,"94":0.01166,"95":0.01555,"96":0.01944,"97":0.01944,"98":0.04276,"99":0.55584,"100":2.16895,"101":0.0311,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 23 24 25 28 42 45 46 49 50 51 53 54 55 58 59 61 62 63 64 66 69 70 71 73 74 75 76 77 81 82 85 86 102 103 3.5 3.6"},D:{"11":0.00389,"18":0.00777,"20":0.00389,"22":0.01166,"26":0.01555,"27":0.00777,"30":0.00389,"31":0.01166,"32":0.00389,"33":0.02721,"34":0.00389,"37":0.00389,"38":0.01944,"39":0.01166,"40":0.02332,"42":0.00777,"43":0.21379,"45":0.00777,"46":0.00777,"47":0.01166,"48":0.00389,"49":0.37704,"50":0.01944,"51":0.01555,"52":0.00389,"53":0.00389,"54":0.00777,"55":0.00389,"56":0.04276,"57":0.00389,"58":0.02721,"60":0.01555,"61":0.01166,"62":0.00777,"63":0.04664,"64":0.02721,"65":0.01555,"66":0.00777,"67":0.01944,"68":0.01166,"69":0.03498,"70":0.02332,"71":0.01944,"72":0.01166,"73":0.01166,"74":0.01944,"75":0.00777,"76":0.01555,"77":0.01555,"78":0.02721,"79":0.10495,"80":0.04664,"81":0.05831,"83":0.03887,"84":0.04276,"85":0.05053,"86":0.18658,"87":0.12438,"88":0.04276,"89":0.06219,"90":0.04276,"91":0.0894,"92":0.06608,"93":0.05442,"94":0.04664,"95":0.10495,"96":0.15548,"97":0.14771,"98":0.28764,"99":0.39647,"100":4.0075,"101":18.57597,"102":1.4965,"103":0.01944,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 21 23 24 25 28 29 35 36 41 44 59 104"},F:{"25":0.00389,"28":0.01944,"36":0.00389,"68":0.00389,"79":0.02721,"80":0.00389,"82":0.00777,"83":0.01166,"84":0.05053,"85":0.85903,"86":0.80461,"87":0.03887,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01166,"13":0.00777,"15":0.00389,"16":0.01555,"17":0.00777,"18":0.02332,"84":0.01166,"85":0.00389,"89":0.00389,"92":0.01555,"96":0.00777,"97":0.02721,"98":0.01166,"99":0.08163,"100":0.08163,"101":1.51593,_:"14 79 80 81 83 86 87 88 90 91 93 94 95"},E:{"4":0,"13":0.03498,"14":0.01555,"15":0.01166,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00389,"11.1":0.00389,"12.1":0.00777,"13.1":0.01555,"14.1":0.0311,"15.1":0.01555,"15.2-15.3":0.02721,"15.4":0.23322,"15.5":0.03887},G:{"8":0.00062,"3.2":0.00093,"4.0-4.1":0.00062,"4.2-4.3":0.00467,"5.0-5.1":0.01182,"6.0-6.1":0.00156,"7.0-7.1":0.04884,"8.1-8.4":0.00404,"9.0-9.2":0.00062,"9.3":0.05911,"10.0-10.2":0.00218,"10.3":0.03733,"11.0-11.2":0.00684,"11.3-11.4":0.01182,"12.0-12.1":0.00809,"12.2-12.5":0.1795,"13.0-13.1":0.00871,"13.2":0.00684,"13.3":0.03049,"13.4-13.7":0.07031,"14.0-14.4":0.14248,"14.5-14.8":0.27189,"15.0-15.1":0.18634,"15.2-15.3":0.3282,"15.4":1.68766},P:{"4":0.18755,"5.0-5.4":0.24206,"6.2-6.4":0.01042,"7.2-7.4":0.14587,"8.2":0.05043,"9.2":0.04168,"10.1":0.01042,"11.1-11.2":0.06252,"12.0":0.03126,"13.0":0.11461,"14.0":0.09377,"15.0":0.09377,"16.0":0.69809},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0018,"4.2-4.3":0.0063,"4.4":0,"4.4.3-4.4.4":0.0408},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01583,"9":0.04749,"11":0.15435,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":57.27982},S:{"2.5":0},R:{_:"0"},M:{"0":0.16505},Q:{"10.4":0},O:{"0":0.43402},H:{"0":0.65398}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EC.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EC.js index 402e0769714244..7fd0e7271aa967 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EC.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EC.js @@ -1 +1 @@ -module.exports={C:{"51":0.00499,"52":0.02995,"58":0.00499,"64":0.00499,"66":0.00998,"68":0.00998,"72":0.01497,"73":0.01497,"78":0.05989,"80":0.00998,"81":0.00998,"84":0.00998,"88":0.04492,"89":0.02496,"90":0.01497,"91":0.04492,"92":0.01497,"93":0.00998,"94":0.01996,"95":0.02496,"96":0.02995,"97":1.05809,"98":1.9964,"99":0.00998,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 57 59 60 61 62 63 65 67 69 70 71 74 75 76 77 79 82 83 85 86 87 100 3.5 3.6"},D:{"22":0.00998,"38":0.02995,"47":0.01996,"49":0.02496,"53":0.00998,"55":0.01497,"56":0.00499,"63":0.00998,"65":0.00998,"66":0.00499,"67":0.00998,"68":0.00499,"70":0.00499,"72":0.00499,"73":0.00499,"74":0.01996,"75":0.01497,"76":0.01497,"77":0.00998,"78":0.01497,"79":0.15472,"80":0.01996,"81":0.00998,"83":0.02496,"84":0.01497,"85":0.01497,"86":0.04492,"87":0.09483,"88":0.01996,"89":0.02995,"90":0.02496,"91":0.46915,"92":0.04991,"93":0.22959,"94":0.0549,"95":0.0549,"96":0.2196,"97":0.43921,"98":7.4865,"99":26.61201,"100":0.29946,"101":0.00998,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 57 58 59 60 61 62 64 69 71 102 103"},F:{"28":0.00499,"78":0.00499,"82":0.00998,"83":0.73368,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01497,"92":0.01497,"96":0.00998,"97":0.02496,"98":0.56398,"99":2.221,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01497,"14":0.08984,"15":0.06987,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01996,"11.1":0.00499,"12.1":0.02496,"13.1":0.1098,"14.1":0.24955,"15.1":0.1098,"15.2-15.3":0.12977,"15.4":0.08485},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01359,"6.0-6.1":0.00755,"7.0-7.1":0.00352,"8.1-8.4":0.0005,"9.0-9.2":0.0005,"9.3":0.02063,"10.0-10.2":0.0005,"10.3":0.01711,"11.0-11.2":0.00302,"11.3-11.4":0.00704,"12.0-12.1":0.00453,"12.2-12.5":0.24504,"13.0-13.1":0.00704,"13.2":0.00302,"13.3":0.01862,"13.4-13.7":0.06189,"14.0-14.4":0.15598,"14.5-14.8":0.64354,"15.0-15.1":0.30391,"15.2-15.3":3.1095,"15.4":0.40101},P:{"4":0.21728,"5.0-5.4":0.02021,"6.2-6.4":0.04042,"7.2-7.4":0.09312,"8.2":0.02018,"9.2":0.01035,"10.1":0.02021,"11.1-11.2":0.05173,"12.0":0.02069,"13.0":0.08277,"14.0":0.07243,"15.0":0.08277,"16.0":1.56235},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00119,"4.2-4.3":0.00475,"4.4":0,"4.4.3-4.4.4":0.06417},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06987,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":36.14417},S:{"2.5":0},R:{_:"0"},M:{"0":0.14523},Q:{"10.4":0},O:{"0":0.03005},H:{"0":0.14698}}; +module.exports={C:{"51":0.01033,"52":0.02067,"58":0.00517,"64":0.00517,"66":0.01033,"68":0.0155,"72":0.01033,"73":0.02067,"78":0.062,"79":0.01033,"81":0.00517,"84":0.01033,"88":0.03617,"89":0.02067,"90":0.0155,"91":0.04134,"92":0.0155,"93":0.00517,"94":0.01033,"95":0.01033,"96":0.02067,"97":0.06717,"98":0.05167,"99":0.59937,"100":2.84702,"101":0.02067,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 57 59 60 61 62 63 65 67 69 70 71 74 75 76 77 80 82 83 85 86 87 102 103 3.5 3.6"},D:{"22":0.00517,"38":0.02584,"47":0.02067,"49":0.02584,"53":0.01033,"55":0.02067,"56":0.01033,"63":0.00517,"65":0.0155,"66":0.01033,"67":0.0155,"68":0.01033,"70":0.00517,"73":0.00517,"74":0.02067,"75":0.02067,"76":0.0155,"77":0.01033,"78":0.01033,"79":0.18085,"80":0.02067,"81":0.0155,"83":0.031,"84":0.02584,"85":0.031,"86":0.062,"87":0.08784,"88":0.0155,"89":0.02584,"90":0.0155,"91":0.26868,"92":0.04134,"93":0.02584,"94":0.06717,"95":0.02584,"96":0.12918,"97":0.20668,"98":0.24285,"99":0.28935,"100":6.20557,"101":27.62795,"102":2.96069,"103":0.01033,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 57 58 59 60 61 62 64 69 71 72 104"},F:{"28":0.01033,"83":0.00517,"84":0.00517,"85":1.0334,"86":1.02307,"87":0.04134,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.0155,"89":0.00517,"92":0.01033,"93":0.00517,"96":0.01033,"97":0.01033,"98":0.01033,"99":0.02067,"100":0.12401,"101":2.91419,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 90 91 94 95"},E:{"4":0,"13":0.01033,"14":0.08267,"15":0.0465,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01033,"11.1":0.02067,"12.1":0.02067,"13.1":0.10334,"14.1":0.19635,"15.1":0.062,"15.2-15.3":0.08784,"15.4":0.67688,"15.5":0.07751},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01322,"6.0-6.1":0.01667,"7.0-7.1":0.00402,"8.1-8.4":0,"9.0-9.2":0.00115,"9.3":0.01724,"10.0-10.2":0,"10.3":0.01609,"11.0-11.2":0.0023,"11.3-11.4":0.00632,"12.0-12.1":0.00345,"12.2-12.5":0.25062,"13.0-13.1":0.00345,"13.2":0.00517,"13.3":0.01322,"13.4-13.7":0.04771,"14.0-14.4":0.13623,"14.5-14.8":0.48457,"15.0-15.1":0.13853,"15.2-15.3":0.35638,"15.4":4.22889},P:{"4":0.18784,"5.0-5.4":0.0107,"6.2-6.4":0.03051,"7.2-7.4":0.12522,"8.2":0.22305,"9.2":0.01044,"10.1":0.04105,"11.1-11.2":0.04174,"12.0":0.02087,"13.0":0.06261,"14.0":0.06261,"15.0":0.04174,"16.0":0.69917},I:{"0":0,"3":0,"4":0.00354,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00177,"4.2-4.3":0.00354,"4.4":0,"4.4.3-4.4.4":0.04429},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01033,"11":0.06717,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":39.20138},S:{"2.5":0},R:{_:"0"},M:{"0":0.17878},Q:{"10.4":0},O:{"0":0.03866},H:{"0":0.11437}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EE.js index e6eaf692241c21..ae624da10e1ba7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EE.js @@ -1 +1 @@ -module.exports={C:{"52":0.02073,"68":0.07601,"77":0.00691,"78":0.02073,"81":0.05528,"84":0.00691,"87":0.26258,"88":0.01382,"91":0.12438,"93":0.02073,"94":0.03455,"95":0.01382,"96":0.39387,"97":1.32672,"98":2.12137,"99":0.01382,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 79 80 82 83 85 86 89 90 92 100 3.5 3.6"},D:{"49":0.03455,"51":0.00691,"60":0.02073,"68":0.00691,"69":0.77392,"74":0.01382,"75":0.02764,"76":0.01382,"78":0.04146,"79":0.04837,"80":0.01382,"81":0.02073,"83":0.02073,"84":0.04837,"85":0.04837,"86":0.02764,"87":0.12438,"88":0.04146,"89":0.02764,"90":0.05528,"91":2.65344,"92":0.06219,"93":0.42842,"94":0.02764,"95":0.08983,"96":0.24876,"97":0.62881,"98":11.72627,"99":31.59943,"100":0.02764,"101":0.01382,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 70 71 72 73 77 102 103"},F:{"36":0.02073,"77":0.01382,"78":0.00691,"79":0.01382,"80":0.02073,"81":0.00691,"82":0.01382,"83":0.92594,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01382,"88":0.00691,"92":0.00691,"93":0.00691,"95":0.02073,"96":0.03455,"97":0.04146,"98":1.29217,"99":4.19437,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 89 90 91 94"},E:{"4":0,"13":0.0691,"14":0.22803,"15":0.1382,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02073,"12.1":0.05528,"13.1":0.23494,"14.1":0.63572,"15.1":0.28331,"15.2-15.3":0.29022,"15.4":0.18657},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00952,"10.0-10.2":0.01047,"10.3":0.13807,"11.0-11.2":0.00857,"11.3-11.4":0.00857,"12.0-12.1":0.00571,"12.2-12.5":0.17902,"13.0-13.1":0.00381,"13.2":0.0019,"13.3":0.03333,"13.4-13.7":0.08284,"14.0-14.4":0.37327,"14.5-14.8":1.16171,"15.0-15.1":0.75035,"15.2-15.3":6.22085,"15.4":0.53229},P:{"4":0.03218,"5.0-5.4":0.01034,"6.2-6.4":0.03096,"7.2-7.4":0.21706,"8.2":0.03097,"9.2":0.05168,"10.1":0.01073,"11.1-11.2":0.03218,"12.0":0.02145,"13.0":0.02145,"14.0":0.08582,"15.0":0.05363,"16.0":1.81285},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00091,"4.2-4.3":0.00334,"4.4":0,"4.4.3-4.4.4":0.01428},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.31786,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":17.99833},S:{"2.5":0},R:{_:"0"},M:{"0":0.22866},Q:{"10.4":0},O:{"0":0.03399},H:{"0":0.23403}}; +module.exports={C:{"52":0.04713,"66":0.01347,"68":0.05386,"69":0.01347,"78":0.0202,"81":0.02693,"84":0.02693,"87":0.10773,"91":0.14813,"92":0.00673,"93":0.01347,"94":0.0202,"96":0.0404,"97":0.0202,"98":0.0404,"99":0.65983,"100":2.92212,"101":0.0202,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 70 71 72 73 74 75 76 77 79 80 82 83 85 86 88 89 90 95 102 103 3.5 3.6"},D:{"39":0.03367,"49":0.02693,"60":0.03367,"67":0.00673,"68":0.00673,"69":0.85509,"74":0.0202,"76":0.00673,"78":0.00673,"79":0.03367,"80":0.0202,"81":0.22892,"83":0.02693,"84":0.02693,"85":0.03367,"86":0.0202,"87":0.08753,"88":0.0202,"89":0.0404,"90":0.03367,"91":2.50468,"92":0.03367,"93":0.04713,"94":0.0606,"95":0.04713,"96":0.09426,"97":0.11446,"98":0.28952,"99":0.7137,"100":10.01197,"101":29.81372,"102":2.47774,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 70 71 72 73 75 77 103 104"},F:{"82":0.01347,"84":0.0202,"85":2.17476,"86":2.673,"87":0.13466,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.03367,"85":0.101,"88":0.00673,"92":0.01347,"96":0.01347,"97":0.01347,"98":0.0202,"99":0.05386,"100":0.24912,"101":4.45725,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 89 90 91 93 94 95"},E:{"4":0,"12":0.00673,"13":0.02693,"14":0.20872,"15":0.0808,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01347,"12.1":0.0404,"13.1":0.20199,"14.1":0.47131,"15.1":0.16159,"15.2-15.3":0.16159,"15.4":1.64285,"15.5":0.24912},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00314,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01672,"10.0-10.2":0.01045,"10.3":0.16408,"11.0-11.2":0.00941,"11.3-11.4":0.00627,"12.0-12.1":0.00836,"12.2-12.5":0.18917,"13.0-13.1":0.00418,"13.2":0.00523,"13.3":0.0209,"13.4-13.7":0.09406,"14.0-14.4":0.27591,"14.5-14.8":0.91448,"15.0-15.1":0.37206,"15.2-15.3":0.88417,"15.4":7.47261},P:{"4":0.02168,"5.0-5.4":0.0204,"6.2-6.4":0.0306,"7.2-7.4":0.55083,"8.2":0.01032,"9.2":0.11221,"10.1":0.04105,"11.1-11.2":0.102,"12.0":0.01084,"13.0":0.02168,"14.0":0.06504,"15.0":0.03252,"16.0":0.73714},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00052,"4.2-4.3":0.0026,"4.4":0,"4.4.3-4.4.4":0.01974},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.57904,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":19.53535},S:{"2.5":0},R:{_:"0"},M:{"0":0.3168},Q:{"10.4":0},O:{"0":0.02939},H:{"0":0.35558}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EG.js index f6e78fc3c40b53..d0fb136bcb77e4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/EG.js @@ -1 +1 @@ -module.exports={C:{"52":0.03572,"84":0.01429,"91":0.01429,"95":0.00714,"96":0.00714,"97":5.45802,"98":0.43578,"99":0.00714,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 92 93 94 100 3.5 3.6"},D:{"43":0.08573,"49":0.02143,"79":0.04286,"80":0.00714,"83":0.00714,"86":0.02858,"87":0.01429,"89":0.01429,"90":0.00714,"91":0.02143,"92":0.02143,"93":0.01429,"94":0.01429,"95":0.01429,"96":0.0643,"97":0.10002,"98":2.84331,"99":60.49539,"100":0.05715,"101":0.00714,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 84 85 88 102 103"},F:{"64":0.00714,"72":0.00714,"73":0.00714,"79":0.01429,"80":0.00714,"81":0.01429,"82":0.02143,"83":0.02143,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 74 75 76 77 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"97":0.00714,"98":0.1143,"99":0.49294,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96"},E:{"4":0,"14":0.01429,"15":0.00714,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.01429,"14.1":0.03572,"15.1":0.01429,"15.2-15.3":0.01429,"15.4":0.00714},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00044,"6.0-6.1":0.00219,"7.0-7.1":0.00746,"8.1-8.4":0.00132,"9.0-9.2":0.00351,"9.3":0.04342,"10.0-10.2":0.01184,"10.3":0.10658,"11.0-11.2":0.01491,"11.3-11.4":0.03377,"12.0-12.1":0.03158,"12.2-12.5":1.16929,"13.0-13.1":0.01403,"13.2":0.00526,"13.3":0.05702,"13.4-13.7":0.17631,"14.0-14.4":0.70964,"14.5-14.8":0.30658,"15.0-15.1":0.1886,"15.2-15.3":1.3399,"15.4":0.16009},P:{"4":0.07764,"5.0-5.4":0.02021,"6.2-6.4":0.04042,"7.2-7.4":0.04437,"8.2":0.02018,"9.2":0.01035,"10.1":0.02021,"11.1-11.2":0.04437,"12.0":0.02069,"13.0":0.05546,"14.0":0.05546,"15.0":0.04437,"16.0":0.65441},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00259,"4.2-4.3":0.00739,"4.4":0,"4.4.3-4.4.4":0.17267},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02858,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":22.14311},S:{"2.5":0},R:{_:"0"},M:{"0":0.05993},Q:{"10.4":0},O:{"0":0.18266},H:{"0":0.15672}}; +module.exports={C:{"40":0.00409,"43":0.00409,"44":0.00205,"47":0.00409,"48":0.00205,"51":0.01023,"52":0.07979,"55":0.00205,"56":0.00409,"60":0.00205,"72":0.00614,"78":0.00614,"81":0.00409,"82":0.00205,"83":0.00205,"84":0.00818,"88":0.00409,"89":0.00614,"90":0.00205,"91":0.03069,"92":0.00818,"93":0.00205,"94":0.00818,"95":0.00614,"96":0.00614,"97":0.01023,"98":0.01432,"99":0.2578,"100":1.26034,"101":0.02864,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 45 46 49 50 53 54 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 85 86 87 102 103 3.5 3.6"},D:{"25":0.00614,"26":0.00614,"31":0.00614,"33":0.01228,"34":0.00205,"38":0.00818,"40":0.01432,"43":0.21483,"47":0.01023,"48":0.00205,"49":0.0491,"51":0.00409,"53":0.01023,"55":0.00205,"56":0.00205,"58":0.00205,"60":0.00205,"63":0.01023,"65":0.00205,"66":0.00205,"67":0.00205,"68":0.00409,"69":0.00614,"70":0.00614,"71":0.00614,"72":0.00614,"73":0.00409,"74":0.00818,"75":0.01023,"76":0.01228,"77":0.00614,"78":0.00614,"79":0.13094,"80":0.01841,"81":0.01432,"83":0.01637,"84":0.02455,"85":0.01841,"86":0.06138,"87":0.03274,"88":0.03887,"89":0.0266,"90":0.01841,"91":0.03069,"92":0.03683,"93":0.02046,"94":0.02251,"95":0.02251,"96":0.06752,"97":0.07366,"98":0.14527,"99":0.1514,"100":1.95598,"101":10.66784,"102":1.34013,"103":0.01023,"104":0.00205,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 29 30 32 35 36 37 39 41 42 44 45 46 50 52 54 57 59 61 62 64"},F:{"28":0.00409,"56":0.01228,"63":0.00614,"64":0.02455,"65":0.00205,"66":0.00205,"68":0.00614,"69":0.00409,"70":0.00614,"71":0.00409,"72":0.01637,"73":0.02046,"74":0.00205,"75":0.00409,"76":0.00614,"77":0.00409,"78":0.00409,"79":0.0266,"80":0.01432,"81":0.02251,"82":0.03274,"83":0.02455,"84":0.03274,"85":0.06138,"86":0.01841,"87":0.00205,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 67 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00205,"15":0.00205,"16":0.00205,"17":0.00205,"18":0.01228,"84":0.00409,"89":0.00409,"90":0.00409,"92":0.01228,"95":0.00205,"96":0.00818,"97":0.00614,"98":0.00614,"99":0.02046,"100":0.05524,"101":1.34831,_:"13 14 79 80 81 83 85 86 87 88 91 93 94"},E:{"4":0,"13":0.00614,"14":0.02455,"15":0.01432,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01023,"11.1":0.00409,"12.1":0.00409,"13.1":0.0266,"14.1":0.06752,"15.1":0.02455,"15.2-15.3":0.01637,"15.4":0.13913,"15.5":0.02046},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00615,"7.0-7.1":0.02708,"8.1-8.4":0.00246,"9.0-9.2":0.01354,"9.3":0.1403,"10.0-10.2":0.03077,"10.3":0.35076,"11.0-11.2":0.03323,"11.3-11.4":0.08,"12.0-12.1":0.06277,"12.2-12.5":3.78203,"13.0-13.1":0.04308,"13.2":0.02831,"13.3":0.12923,"13.4-13.7":0.4566,"14.0-14.4":1.67748,"14.5-14.8":0.57229,"15.0-15.1":0.23876,"15.2-15.3":0.58337,"15.4":4.04664},P:{"4":0.31748,"5.0-5.4":0.0107,"6.2-6.4":0.03051,"7.2-7.4":0.09217,"8.2":0.22305,"9.2":0.02048,"10.1":0.04105,"11.1-11.2":0.09217,"12.0":0.02048,"13.0":0.11265,"14.0":0.09217,"15.0":0.05121,"16.0":0.6452},I:{"0":0,"3":0,"4":0.00369,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0086,"4.2-4.3":0.0344,"4.4":0,"4.4.3-4.4.4":0.89189},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00409,"11":0.05524,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":63.2318},S:{"2.5":0},R:{_:"0"},M:{"0":0.15908},Q:{"10.4":0},O:{"0":0.6045},H:{"0":0.37652}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ER.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ER.js index 5a1a75c6a535f2..2944dfa7321196 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ER.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ER.js @@ -1 +1 @@ -module.exports={C:{"29":0.0024,"30":0.00479,"39":0.0024,"41":0.0024,"42":0.01437,"43":0.00719,"44":0.0024,"45":0.01437,"46":0.00479,"47":0.02874,"49":0.0024,"50":0.0024,"52":0.01677,"53":0.01677,"54":0.01437,"55":0.00479,"56":0.00479,"57":0.01677,"59":0.01437,"60":0.00479,"62":0.0024,"69":0.00479,"72":0.02635,"76":0.0024,"78":0.01677,"81":0.00479,"82":0.06946,"83":0.00719,"84":0.01916,"86":0.0024,"87":0.00479,"89":0.00719,"91":0.20118,"94":0.00479,"96":0.00958,"97":0.43589,"98":1.15679,"99":0.11975,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31 32 33 34 35 36 37 38 40 48 51 58 61 63 64 65 66 67 68 70 71 73 74 75 77 79 80 85 88 90 92 93 95 100 3.5 3.6"},D:{"11":0.23711,"30":0.12933,"33":0.07664,"34":0.0024,"37":0.01198,"38":0.00719,"40":0.02395,"43":0.07425,"46":0.00479,"49":0.05748,"50":0.00479,"51":0.0024,"53":0.0024,"54":0.00479,"56":0.0479,"57":0.00479,"59":0.00479,"64":0.00958,"67":0.0024,"69":0.00958,"70":0.02156,"71":0.0024,"73":0.00479,"74":0.01437,"75":0.00719,"76":0.0024,"77":0.0024,"78":0.0024,"79":0.01677,"80":0.00479,"81":0.00479,"83":0.0024,"84":0.00479,"85":0.01437,"86":0.02395,"87":0.00958,"88":0.00958,"89":0.00719,"90":0.03832,"91":0.01677,"92":0.01677,"93":0.08622,"94":0.00479,"95":0.00719,"96":0.08622,"97":0.07904,"98":2.16508,"99":10.18115,"100":0.1437,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 35 36 39 41 42 44 45 47 48 52 55 58 60 61 62 63 65 66 68 72 101 102 103"},F:{"28":0.00719,"34":0.00479,"70":0.01198,"79":0.00719,"80":0.00958,"82":0.0479,"83":0.01677,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0024},B:{"12":0.03593,"13":0.00719,"14":0.02874,"15":0.01437,"16":0.01916,"17":0.01198,"18":0.0479,"80":0.0024,"84":0.00719,"85":0.04072,"86":0.0024,"88":0.00479,"89":0.01198,"90":0.01198,"92":0.02156,"94":0.00958,"95":0.00719,"96":0.01916,"97":0.02635,"98":0.20118,"99":1.30288,_:"79 81 83 87 91 93"},E:{"4":0,"12":0.0024,"14":0.00719,_:"0 5 6 7 8 9 10 11 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.2-15.3 15.4","13.1":0.03593,"14.1":0.01198,"15.1":0.0024},G:{"8":0.00035,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00035,"7.0-7.1":0.02655,"8.1-8.4":0.01412,"9.0-9.2":0.02514,"9.3":0.00468,"10.0-10.2":0.00035,"10.3":0.00203,"11.0-11.2":0.09016,"11.3-11.4":0.00468,"12.0-12.1":0.04085,"12.2-12.5":0.20802,"13.0-13.1":0.00071,"13.2":0.00035,"13.3":0.00741,"13.4-13.7":0.05928,"14.0-14.4":0.01853,"14.5-14.8":0.11089,"15.0-15.1":0.08513,"15.2-15.3":0.17529,"15.4":0.00741},P:{"4":0.83725,"5.0-5.4":0.01034,"6.2-6.4":0.03096,"7.2-7.4":0.21706,"8.2":0.03097,"9.2":0.05168,"10.1":0.01034,"11.1-11.2":0.06202,"12.0":0.02064,"13.0":0.12404,"14.0":0.05168,"15.0":0.04135,"16.0":1.01296},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00025,"4.2-4.3":0.01041,"4.4":0,"4.4.3-4.4.4":0.05018},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0024,"9":0.0024,"11":0.04072,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":61.62871},S:{"2.5":0},R:{_:"0"},M:{"0":0.08367},Q:{"10.4":0},O:{"0":1.23217},H:{"0":11.24056}}; +module.exports={C:{"6":0.00204,"33":0.00204,"35":0.00611,"41":0.00407,"42":0.00204,"46":0.01222,"47":0.00814,"48":0.00611,"49":0.00204,"52":0.01629,"56":0.00407,"57":0.03868,"59":0.00407,"60":0.00407,"61":0.00204,"72":0.00814,"77":0.00204,"82":0.06515,"89":0.08551,"91":0.00814,"95":0.00204,"97":0.00611,"98":0.02443,"99":0.51918,"100":0.87548,"101":0.14863,_:"2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 36 37 38 39 40 43 44 45 50 51 53 54 55 58 62 63 64 65 66 67 68 69 70 71 73 74 75 76 78 79 80 81 83 84 85 86 87 88 90 92 93 94 96 102 103 3.5 3.6"},D:{"33":0.00407,"35":0.00611,"40":0.03054,"43":0.07737,"44":0.00611,"48":0.01018,"49":0.02647,"50":0.00204,"52":0.00611,"55":0.02443,"56":0.00611,"57":0.01425,"58":0.02036,"60":0.00407,"64":0.00204,"67":0.00407,"68":0.00407,"69":0.02443,"70":0.01832,"72":0.04479,"73":0.00407,"74":0.00611,"75":0.01018,"79":0.03868,"80":0.02036,"83":0.01832,"84":0.03054,"85":0.00407,"86":0.02036,"87":0.0224,"88":0.00814,"89":0.00204,"90":0.00204,"91":0.01425,"92":0.01018,"93":0.01425,"94":0.1242,"95":0.03461,"96":0.10994,"97":0.01425,"98":0.30744,"99":0.21378,"100":2.92573,"101":5.61122,"102":0.21174,"103":0.00814,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 36 37 38 39 41 42 45 46 47 51 53 54 59 61 62 63 65 66 71 76 77 78 81 104"},F:{"28":0.00611,"36":0.01018,"37":0.00204,"38":0.00407,"62":0.00814,"63":0.00407,"64":0.00407,"82":0.04683,"83":0.00204,"84":0.01629,"85":0.31762,"86":0.34408,"87":0.04886,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.04886,"13":0.01018,"14":0.01222,"15":0.00611,"17":0.01018,"18":0.03054,"84":0.03868,"85":0.01018,"89":0.02036,"90":0.00611,"91":0.00611,"92":0.02647,"96":0.0224,"97":0.00814,"98":0.03054,"99":0.02036,"100":0.1018,"101":1.61048,_:"16 79 80 81 83 86 87 88 93 94 95"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 13.1 15.1 15.5","12.1":0.01832,"14.1":0.03054,"15.2-15.3":0.01018,"15.4":0.00611},G:{"8":0,"3.2":0,"4.0-4.1":0.0015,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03267,"8.1-8.4":0.0162,"9.0-9.2":0,"9.3":0.0354,"10.0-10.2":0.00313,"10.3":0.03186,"11.0-11.2":0.003,"11.3-11.4":0.0015,"12.0-12.1":0.04112,"12.2-12.5":0.12838,"13.0-13.1":0.00191,"13.2":0.00191,"13.3":0.02696,"13.4-13.7":0.02464,"14.0-14.4":0.13301,"14.5-14.8":0.19006,"15.0-15.1":0.04847,"15.2-15.3":0.26248,"15.4":0.37766},P:{"4":0.52022,"5.0-5.4":0.0204,"6.2-6.4":0.0306,"7.2-7.4":0.55083,"8.2":0.01032,"9.2":0.11221,"10.1":0.04105,"11.1-11.2":0.102,"12.0":0.02064,"13.0":0.11221,"14.0":0.11221,"15.0":0.0306,"16.0":0.76503},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00072,"4.2-4.3":0.02479,"4.4":0,"4.4.3-4.4.4":0.10989},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0224,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":62.56541},S:{"2.5":0},R:{_:"0"},M:{"0":0.03982},Q:{"10.4":0},O:{"0":1.73615},H:{"0":14.86849}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ES.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ES.js index 5b03f05f095537..f1cd906ca9ee07 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ES.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ES.js @@ -1 +1 @@ -module.exports={C:{"17":0.00427,"48":0.00853,"51":0.00853,"52":0.08532,"53":0.00853,"55":0.00853,"56":0.00853,"57":0.00427,"59":0.00853,"60":0.0128,"64":0.00427,"66":0.00427,"67":0.0128,"68":0.01706,"69":0.00427,"72":0.00853,"78":0.08105,"79":0.00427,"80":0.00427,"81":0.00427,"82":0.00427,"83":0.00853,"84":0.00853,"85":0.00853,"86":0.00853,"87":0.00427,"88":0.03413,"89":0.0128,"90":0.0128,"91":0.10238,"92":0.00853,"93":0.08532,"94":0.09385,"95":0.01706,"96":0.03839,"97":1.00251,"98":1.57842,"99":0.00853,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 54 58 61 62 63 65 70 71 73 74 75 76 77 100 3.5 3.6"},D:{"24":0.00853,"34":0.00853,"38":0.01706,"47":0.00427,"49":0.12371,"51":0.00427,"53":0.00853,"56":0.00427,"58":0.00853,"60":0.0128,"61":0.00427,"63":0.0128,"64":0.00853,"65":0.01706,"66":0.0256,"67":0.01706,"68":0.0128,"69":0.02133,"70":0.00853,"71":0.00427,"72":0.00853,"73":0.00853,"74":0.0128,"75":0.06826,"76":0.0128,"77":0.0128,"78":0.01706,"79":0.14931,"80":0.02986,"81":0.0256,"83":0.0256,"84":0.05972,"85":0.04693,"86":0.05972,"87":0.08959,"88":0.03413,"89":0.06826,"90":0.04693,"91":0.06826,"92":0.05546,"93":0.31142,"94":0.13225,"95":0.07252,"96":0.23036,"97":0.4138,"98":7.19674,"99":19.42736,"100":0.0128,"101":0.00853,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 52 54 55 57 59 62 102 103"},F:{"36":0.00427,"46":0.00427,"82":0.00853,"83":0.56738,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00427,"17":0.0128,"18":0.01706,"85":0.00427,"86":0.00427,"87":0.00427,"91":0.00427,"92":0.01706,"94":0.00427,"95":0.0128,"96":0.01706,"97":0.05119,"98":0.72522,"99":2.68331,_:"12 13 14 15 79 80 81 83 84 88 89 90 93"},E:{"4":0,"12":0.00853,"13":0.03839,"14":0.24316,"15":0.13225,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00427,"10.1":0.00853,"11.1":0.03413,"12.1":0.06826,"13.1":0.26876,"14.1":0.71669,"15.1":0.25169,"15.2-15.3":0.30715,"15.4":0.13225},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00424,"6.0-6.1":0.00424,"7.0-7.1":0.0053,"8.1-8.4":0.00424,"9.0-9.2":0.00318,"9.3":0.07531,"10.0-10.2":0.00636,"10.3":0.08167,"11.0-11.2":0.01697,"11.3-11.4":0.02864,"12.0-12.1":0.01697,"12.2-12.5":0.40304,"13.0-13.1":0.02227,"13.2":0.00636,"13.3":0.04667,"13.4-13.7":0.13682,"14.0-14.4":0.43168,"14.5-14.8":1.4499,"15.0-15.1":0.68942,"15.2-15.3":6.78916,"15.4":0.37971},P:{"4":0.14818,"5.0-5.4":0.01014,"6.2-6.4":0.10095,"7.2-7.4":0.54772,"8.2":0.01014,"9.2":0.03043,"10.1":0.03043,"11.1-11.2":0.07409,"12.0":0.02117,"13.0":0.09526,"14.0":0.10584,"15.0":0.07409,"16.0":2.15916},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00249,"4.2-4.3":0.00748,"4.4":0,"4.4.3-4.4.4":0.04737},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00853,"9":0.00853,"10":0.00427,"11":0.25169,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":41.0923},S:{"2.5":0},R:{_:"0"},M:{"0":0.24083},Q:{"10.4":0},O:{"0":0.04587},H:{"0":0.21171}}; +module.exports={C:{"48":0.00414,"51":0.01241,"52":0.08272,"53":0.01241,"54":0.00414,"55":0.00827,"56":0.01241,"57":0.00827,"59":0.00827,"60":0.01241,"66":0.00414,"67":0.00827,"68":0.01241,"72":0.00827,"78":0.07031,"79":0.00414,"81":0.00414,"82":0.00414,"84":0.00827,"85":0.00827,"86":0.00827,"87":0.00414,"88":0.02895,"89":0.00827,"90":0.00827,"91":0.1034,"92":0.00414,"93":0.07031,"94":0.09099,"95":0.01241,"96":0.01654,"97":0.01654,"98":0.03309,"99":0.52527,"100":2.10109,"101":0.00827,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 58 61 62 63 64 65 69 70 71 73 74 75 76 77 80 83 102 103 3.5 3.6"},D:{"38":0.01241,"43":0.00414,"46":0.00414,"47":0.00414,"49":0.10754,"51":0.00414,"53":0.00827,"56":0.00414,"57":0.00414,"58":0.00827,"60":0.02895,"62":0.00414,"63":0.01241,"64":0.00827,"65":0.01654,"66":0.02895,"67":0.02068,"68":0.01241,"69":0.02068,"70":0.00414,"71":0.00414,"72":0.00827,"73":0.00827,"74":0.01241,"75":0.05377,"76":0.01241,"77":0.00827,"78":0.01241,"79":0.13235,"80":0.02482,"81":0.02895,"83":0.02895,"84":0.05377,"85":0.03722,"86":0.05377,"87":0.09513,"88":0.02068,"89":0.05377,"90":0.03309,"91":0.07445,"92":0.04136,"93":0.04963,"94":0.07445,"95":0.04136,"96":0.1034,"97":0.09099,"98":0.21094,"99":0.3102,"100":4.94252,"101":19.3813,"102":1.51378,"103":0.00827,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 48 50 52 54 55 59 61 104"},F:{"36":0.00414,"46":0.00414,"85":0.6659,"86":0.65349,"87":0.01654,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00414,"17":0.00827,"18":0.01241,"85":0.00414,"86":0.00414,"87":0.00414,"89":0.00414,"91":0.00827,"92":0.01241,"95":0.00827,"96":0.00827,"97":0.01654,"98":0.01241,"99":0.04136,"100":0.17371,"101":3.21781,_:"12 13 14 15 79 80 81 83 84 88 90 93 94"},E:{"4":0,"13":0.03722,"14":0.18612,"15":0.07858,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00414,"10.1":0.00414,"11.1":0.03309,"12.1":0.06618,"13.1":0.23575,"14.1":0.517,"15.1":0.13235,"15.2-15.3":0.12822,"15.4":1.68335,"15.5":0.16544},G:{"8":0.00108,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00323,"6.0-6.1":0,"7.0-7.1":0.00539,"8.1-8.4":0.00323,"9.0-9.2":0.00323,"9.3":0.06465,"10.0-10.2":0.00646,"10.3":0.08081,"11.0-11.2":0.01401,"11.3-11.4":0.03232,"12.0-12.1":0.01401,"12.2-12.5":0.38681,"13.0-13.1":0.01832,"13.2":0.00539,"13.3":0.03879,"13.4-13.7":0.12499,"14.0-14.4":0.34587,"14.5-14.8":1.00312,"15.0-15.1":0.33078,"15.2-15.3":0.84042,"15.4":7.44743},P:{"4":0.12573,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.05239,"12.0":0.02096,"13.0":0.0943,"14.0":0.0943,"15.0":0.05239,"16.0":0.92203},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00255,"4.2-4.3":0.0102,"4.4":0,"4.4.3-4.4.4":0.04588},A:{"8":0.00414,"9":0.01241,"11":0.24402,_:"6 7 10 5.5"},K:{_:"0 10 11 12 11.1 11.5 12.1"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.28142},Q:{"10.4":0},O:{"0":0.03518},H:{"0":0.22758},L:{"0":44.15568},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ET.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ET.js index 605ed9fff50237..f0b4fff11b7f98 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ET.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ET.js @@ -1 +1 @@ -module.exports={C:{"29":0.01061,"30":0.00707,"31":0.00707,"34":0.01061,"35":0.00707,"37":0.00354,"38":0.00354,"40":0.00354,"43":0.01414,"44":0.00354,"47":0.01414,"48":0.01414,"52":0.16261,"54":0.00354,"56":0.00354,"60":0.03535,"61":0.00707,"64":0.01414,"65":0.00354,"66":0.00354,"67":0.04596,"68":0.01061,"69":0.00354,"72":0.03889,"77":0.02828,"78":0.01061,"79":0.00354,"81":0.00707,"84":0.10252,"86":0.00707,"87":0.00707,"88":0.04596,"89":0.03182,"90":0.00707,"91":0.11666,"92":0.01061,"93":0.01061,"94":0.01061,"95":0.03535,"96":0.04242,"97":1.262,"98":2.84568,"99":0.52318,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 32 33 36 39 41 42 45 46 49 50 51 53 55 57 58 59 62 63 70 71 73 74 75 76 80 82 83 85 100 3.5 3.6"},D:{"11":0.00707,"32":0.00354,"33":0.01061,"36":0.01061,"37":0.00354,"38":0.01414,"40":0.0707,"43":0.13433,"44":0.00354,"46":0.04242,"49":0.02121,"50":0.00707,"53":0.00707,"55":0.00707,"56":0.02475,"57":0.00707,"58":0.00354,"60":0.00354,"63":0.01768,"64":0.00354,"65":0.00707,"66":0.00707,"67":0.00707,"68":0.01414,"69":0.00707,"70":0.02475,"71":0.01061,"72":0.00354,"74":0.00707,"75":0.01768,"76":0.01061,"77":0.00707,"78":0.02121,"79":0.26866,"80":0.05656,"81":0.05303,"83":0.03889,"84":0.01414,"85":0.02121,"86":0.08838,"87":0.05303,"88":0.0707,"89":0.04242,"90":0.0707,"91":0.04596,"92":0.09191,"93":0.04242,"94":0.0601,"95":0.04949,"96":0.22978,"97":0.19443,"98":4.19605,"99":14.15414,"100":0.15554,"101":0.15201,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 34 35 39 41 42 45 47 48 51 52 54 59 61 62 73 102 103"},F:{"28":0.00707,"73":0.00354,"77":0.00354,"79":0.01061,"80":0.00354,"82":0.01414,"83":0.11666,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.04596,"13":0.03535,"14":0.01061,"15":0.01061,"16":0.01414,"17":0.01768,"18":0.06363,"84":0.01768,"85":0.02475,"89":0.00707,"90":0.00354,"91":0.00354,"92":0.04242,"94":0.01061,"95":0.00707,"96":0.06717,"97":0.0707,"98":0.52318,"99":2.09272,_:"79 80 81 83 86 87 88 93"},E:{"4":0,"7":0.00354,"14":0.02121,"15":0.00707,_:"0 5 6 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01061,"13.1":0.01061,"14.1":0.04596,"15.1":0.01061,"15.2-15.3":0.00707,"15.4":0.00707},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00119,"7.0-7.1":0.10006,"8.1-8.4":0.00742,"9.0-9.2":0.00238,"9.3":0.04661,"10.0-10.2":0.00119,"10.3":0.05879,"11.0-11.2":0.0098,"11.3-11.4":0.07749,"12.0-12.1":0.04127,"12.2-12.5":0.72831,"13.0-13.1":0.01722,"13.2":0.1731,"13.3":0.05671,"13.4-13.7":0.12054,"14.0-14.4":0.18913,"14.5-14.8":0.47742,"15.0-15.1":0.24881,"15.2-15.3":0.54571,"15.4":0.06383},P:{"4":0.40182,"5.0-5.4":0.0103,"6.2-6.4":0.0103,"7.2-7.4":0.19576,"8.2":0.04121,"9.2":0.05152,"10.1":0.01073,"11.1-11.2":0.13394,"12.0":0.0103,"13.0":0.13394,"14.0":0.08242,"15.0":0.06182,"16.0":0.89636},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00379,"4.2-4.3":0.02235,"4.4":0,"4.4.3-4.4.4":0.10314},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08484,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":54.2772},S:{"2.5":0},R:{_:"0"},M:{"0":0.08403},Q:{"10.4":0},O:{"0":1.19584},H:{"0":5.13443}}; +module.exports={C:{"29":0.00795,"30":0.00795,"32":0.00398,"34":0.02386,"35":0.00398,"37":0.00795,"38":0.00398,"40":0.01193,"42":0.00398,"43":0.00795,"44":0.00398,"47":0.01988,"48":0.00398,"49":0.00795,"52":0.1829,"57":0.02386,"60":0.05566,"61":0.01193,"64":0.0159,"65":0.01193,"66":0.00795,"67":0.01193,"68":0.0159,"72":0.01988,"77":0.0159,"78":0.00795,"84":0.20278,"87":0.00795,"88":0.03578,"89":0.04771,"91":0.09145,"92":0.00795,"94":0.00795,"95":0.03578,"96":0.02386,"97":0.04771,"98":0.1153,"99":0.95026,"100":4.12311,"101":0.5805,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31 33 36 39 41 45 46 50 51 53 54 55 56 58 59 62 63 69 70 71 73 74 75 76 79 80 81 82 83 85 86 90 93 102 103 3.5 3.6"},D:{"11":0.00795,"33":0.01193,"35":0.00398,"37":0.00398,"38":0.01193,"40":0.04771,"43":0.12326,"44":0.01193,"45":0.00795,"49":0.05964,"50":0.0159,"53":0.00398,"55":0.01193,"56":0.01193,"60":0.00398,"63":0.0159,"64":0.00398,"65":0.01988,"66":0.00398,"67":0.00795,"68":0.02386,"69":0.01193,"70":0.02386,"71":0.02386,"72":0.00795,"73":0.00795,"74":0.01193,"75":0.01193,"76":0.00795,"77":0.0159,"78":0.02386,"79":0.34194,"80":0.05169,"81":0.03578,"83":0.05566,"84":0.01193,"85":0.01988,"86":0.0835,"87":0.09542,"88":0.03578,"89":0.05964,"90":0.07157,"91":0.04771,"92":0.05169,"93":0.04771,"94":0.05566,"95":0.05964,"96":0.14711,"97":0.21073,"98":0.78327,"99":0.20675,"100":3.42731,"101":15.05314,"102":1.33594,"103":0.22663,"104":0.02386,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 36 39 41 42 46 47 48 51 52 54 57 58 59 61 62"},F:{"28":0.00398,"36":0.00398,"79":0.02386,"82":0.0159,"83":0.00795,"84":0.01988,"85":0.82303,"86":1.41943,"87":0.0994,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.06759,"13":0.05169,"14":0.0159,"15":0.02386,"16":0.01988,"17":0.0159,"18":0.08747,"84":0.01193,"85":0.00398,"89":0.00795,"90":0.00795,"92":0.04374,"95":0.00795,"96":0.1153,"97":0.01193,"98":0.0159,"99":0.04771,"100":0.15506,"101":2.90248,_:"79 80 81 83 86 87 88 91 93 94"},E:{"4":0,"7":0.00398,"14":0.00795,"15":0.00398,_:"0 5 6 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01193,"12.1":0.01193,"13.1":0.01193,"14.1":0.05566,"15.1":0.00398,"15.2-15.3":0.00398,"15.4":0.05169,"15.5":0.00795},G:{"8":0.00159,"3.2":0,"4.0-4.1":0.00091,"4.2-4.3":0.00045,"5.0-5.1":0.00204,"6.0-6.1":0.00136,"7.0-7.1":0.08199,"8.1-8.4":0.00409,"9.0-9.2":0.00977,"9.3":0.05655,"10.0-10.2":0.01408,"10.3":0.11742,"11.0-11.2":0.02158,"11.3-11.4":0.02203,"12.0-12.1":0.03589,"12.2-12.5":0.41996,"13.0-13.1":0.00681,"13.2":0.005,"13.3":0.02998,"13.4-13.7":0.04702,"14.0-14.4":0.13832,"14.5-14.8":0.33524,"15.0-15.1":0.15149,"15.2-15.3":0.21146,"15.4":0.55601},P:{"4":0.52436,"5.0-5.4":0.01049,"6.2-6.4":0.01049,"7.2-7.4":0.23072,"8.2":0.01032,"9.2":0.06292,"10.1":0.04105,"11.1-11.2":0.07341,"12.0":0.01084,"13.0":0.15731,"14.0":0.10487,"15.0":0.05244,"16.0":0.61875},I:{"0":0,"3":0,"4":0.00023,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00139,"4.2-4.3":0.02535,"4.4":0,"4.4.3-4.4.4":0.10556},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07554,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":51.30593},S:{"2.5":0},R:{_:"0"},M:{"0":0.11446},Q:{"10.4":0},O:{"0":1.14456},H:{"0":5.24688}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FI.js index 16f59819b72e76..9aca5f4055de98 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FI.js @@ -1 +1 @@ -module.exports={C:{"47":0.00606,"48":0.00606,"50":0.00606,"52":0.04848,"55":0.0303,"56":0.00606,"57":0.01212,"59":0.01212,"60":0.01212,"62":0.01212,"63":0.01212,"64":0.01212,"78":0.19392,"79":0.02424,"80":0.01818,"81":0.01212,"82":0.01212,"83":0.01212,"84":0.03636,"86":0.00606,"88":0.01818,"89":0.01212,"91":0.24846,"93":0.01818,"94":0.02424,"95":0.06666,"96":0.07272,"97":1.79376,"98":3.03,"99":0.01212,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 51 53 54 58 61 65 66 67 68 69 70 71 72 73 74 75 76 77 85 87 90 92 100 3.5 3.6"},D:{"38":0.00606,"42":0.00606,"47":0.00606,"48":0.01818,"49":0.01818,"52":0.11514,"56":0.01212,"59":0.00606,"60":0.01212,"61":0.12726,"63":0.01818,"64":0.4242,"66":0.06666,"67":0.01212,"69":0.2121,"70":0.17574,"71":0.00606,"72":0.1515,"75":0.01212,"76":0.0303,"77":0.01212,"78":0.08484,"79":0.82416,"80":0.39996,"81":0.02424,"83":0.11514,"84":0.21816,"85":0.3636,"86":0.20604,"87":0.40602,"88":0.0303,"89":0.03636,"90":0.08484,"91":0.04242,"92":0.08484,"93":1.04838,"94":2.09676,"95":0.04848,"96":1.63014,"97":0.9696,"98":9.25362,"99":22.4826,"100":0.01212,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 50 51 53 54 55 57 58 62 65 68 73 74 101 102 103"},F:{"68":0.01818,"70":0.00606,"71":0.01212,"72":0.00606,"79":0.01212,"82":0.02424,"83":0.5151,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01212,"80":0.00606,"81":0.01212,"84":0.00606,"85":0.01212,"86":0.01212,"89":0.00606,"90":0.01212,"92":0.01212,"94":0.00606,"95":0.00606,"96":0.05454,"97":0.06666,"98":1.38168,"99":3.72084,_:"12 13 14 15 16 17 79 83 87 88 91 93"},E:{"4":0,"9":0.01212,"12":0.00606,"13":0.1212,"14":0.2424,"15":0.14544,_:"0 5 6 7 8 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00606,"11.1":0.0303,"12.1":0.05454,"13.1":0.303,"14.1":0.67872,"15.1":0.29694,"15.2-15.3":0.35754,"15.4":0.28482},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00259,"8.1-8.4":0.00647,"9.0-9.2":0.08674,"9.3":0.0492,"10.0-10.2":0.00259,"10.3":0.07379,"11.0-11.2":0.02719,"11.3-11.4":0.0712,"12.0-12.1":0.03366,"12.2-12.5":0.38191,"13.0-13.1":0.01036,"13.2":0.01295,"13.3":0.06732,"13.4-13.7":0.25245,"14.0-14.4":0.66673,"14.5-14.8":1.93933,"15.0-15.1":1.03051,"15.2-15.3":7.76509,"15.4":0.46218},P:{"4":0.03277,"5.0-5.4":0.0103,"6.2-6.4":0.02033,"7.2-7.4":1.85031,"8.2":0.04121,"9.2":0.10167,"10.1":0.02033,"11.1-11.2":0.03277,"12.0":0.02185,"13.0":0.10923,"14.0":0.14199,"15.0":0.12015,"16.0":2.07531},I:{"0":0,"3":0,"4":0.00394,"2.1":0,"2.2":0.00158,"2.3":0.00158,"4.1":0.00236,"4.2-4.3":0.00631,"4.4":0,"4.4.3-4.4.4":0.03941},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00652,"8":0.05866,"9":0.02607,"10":0.01955,"11":0.23462,_:"6 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":22.88214},S:{"2.5":0},R:{_:"0"},M:{"0":0.55568},Q:{"10.4":0},O:{"0":0.12611},H:{"0":0.35072}}; +module.exports={C:{"52":0.03884,"54":0.01295,"55":0.02589,"59":0.01295,"66":0.00647,"68":0.01295,"76":0.01942,"77":0.00647,"78":0.20714,"79":0.05178,"80":0.04531,"81":0.03884,"82":0.05178,"83":0.03884,"84":0.01295,"85":0.00647,"86":0.01942,"87":0.01295,"88":0.03237,"89":0.01942,"90":0.01295,"91":0.22656,"92":0.01942,"93":0.01942,"94":0.02589,"95":0.03237,"96":0.02589,"97":0.03237,"98":0.03884,"99":1.17809,"100":9.54768,"101":0.01942,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 56 57 58 60 61 62 63 64 65 67 69 70 71 72 73 74 75 102 103 3.5 3.6"},D:{"38":0.00647,"42":0.01942,"48":0.00647,"49":0.03237,"52":0.04531,"53":0.00647,"56":0.01295,"59":0.00647,"60":0.05826,"63":0.01295,"65":0.01295,"66":0.05178,"67":0.00647,"69":0.10357,"70":0.01295,"73":0.00647,"75":0.03237,"76":0.02589,"77":0.01942,"78":0.01295,"79":0.7444,"80":0.38191,"81":0.03237,"83":0.15535,"84":0.28481,"85":0.29129,"86":0.32365,"87":0.36896,"88":0.01295,"89":0.03884,"90":0.03237,"91":0.03884,"92":0.14888,"93":0.12946,"94":0.20714,"95":0.02589,"96":1.16514,"97":0.55021,"98":0.479,"99":0.55021,"100":8.70619,"101":23.21218,"102":2.03252,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 47 50 51 54 55 57 58 61 62 64 68 71 72 74 103 104"},F:{"68":0.00647,"70":0.00647,"71":0.01942,"72":0.01942,"77":0.05178,"78":0.03237,"79":0.04531,"80":0.03884,"81":0.02589,"84":0.00647,"85":0.61494,"86":0.62141,"87":0.01942,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 73 74 75 76 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00647,"17":0.01295,"18":0.03237,"84":0.06473,"85":0.03884,"86":0.01942,"92":0.01942,"95":0.01942,"96":0.0712,"97":0.01295,"98":0.01942,"99":0.0712,"100":0.38838,"101":4.8677,_:"12 13 14 16 79 80 81 83 87 88 89 90 91 93 94"},E:{"4":0,"13":0.05178,"14":0.16183,"15":0.07768,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00647,"10.1":0.01295,"11.1":0.01942,"12.1":0.03237,"13.1":0.20714,"14.1":0.43369,"15.1":0.11651,"15.2-15.3":0.36896,"15.4":1.82539,"15.5":0.24597},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00421,"9.0-9.2":0.12957,"9.3":0.04424,"10.0-10.2":0.00421,"10.3":0.0632,"11.0-11.2":0.01685,"11.3-11.4":0.0474,"12.0-12.1":0.01685,"12.2-12.5":0.30233,"13.0-13.1":0.01264,"13.2":0.01159,"13.3":0.04424,"13.4-13.7":0.18961,"14.0-14.4":0.50037,"14.5-14.8":0.97545,"15.0-15.1":0.43822,"15.2-15.3":0.99125,"15.4":6.73231},P:{"4":0.06445,"5.0-5.4":0.02148,"6.2-6.4":0.03059,"7.2-7.4":1.95808,"8.2":0.01032,"9.2":0.05099,"10.1":0.0102,"11.1-11.2":0.04297,"12.0":0.03223,"13.0":0.08594,"14.0":0.08594,"15.0":0.06445,"16.0":0.88085},I:{"0":0,"3":0,"4":0.00388,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00155,"4.2-4.3":0.00621,"4.4":0,"4.4.3-4.4.4":0.02716},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03377,"9":0.02702,"10":0.01351,"11":0.23641,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":21.43},S:{"2.5":0},R:{_:"0"},M:{"0":0.62781},Q:{"10.4":0.00353},O:{"0":0.15872},H:{"0":0.34393}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FJ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FJ.js index 1a858d14a5d34d..f5be8a3225c443 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FJ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FJ.js @@ -1 +1 @@ -module.exports={C:{"47":0.01849,"52":0.0339,"54":0.02774,"65":0.06472,"66":0.00616,"72":0.00308,"78":0.00925,"84":0.00308,"87":0.00308,"88":0.01849,"89":0.00925,"91":0.02774,"93":0.01849,"95":0.05239,"96":0.01541,"97":0.69345,"98":1.26978,"99":0.07397,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 55 56 57 58 59 60 61 62 63 64 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 90 92 94 100 3.5 3.6"},D:{"39":0.04007,"49":0.04007,"51":0.00308,"52":0.00925,"53":0.00616,"65":0.0339,"68":0.00308,"69":0.0339,"73":0.00308,"74":0.00925,"75":0.01849,"76":0.00925,"77":0.05856,"78":0.00308,"79":0.05856,"80":0.00308,"81":0.00925,"83":0.02774,"84":0.00308,"85":0.00616,"86":0.00308,"87":0.08938,"88":0.01849,"89":0.02157,"90":0.00616,"91":0.01233,"92":0.03082,"93":0.02157,"94":0.06164,"95":0.01541,"96":0.19108,"97":0.44381,"98":4.05899,"99":15.3422,"100":0.11712,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 54 55 56 57 58 59 60 61 62 63 64 66 67 70 71 72 101 102 103"},F:{"83":0.0339,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01233,"13":0.00925,"15":0.00925,"16":0.00616,"17":0.01541,"18":0.03698,"80":0.00308,"84":0.02466,"85":0.04315,"86":0.00308,"89":0.07089,"90":0.00616,"91":0.01233,"92":0.02466,"93":0.01541,"94":0.00925,"95":0.01849,"96":0.02466,"97":0.03082,"98":0.60099,"99":2.28068,_:"14 79 81 83 87 88"},E:{"4":0,"13":0.02466,"14":0.13253,"15":0.04623,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00308,"11.1":0.00308,"12.1":0.01541,"13.1":0.17567,"14.1":0.14794,"15.1":0.09862,"15.2-15.3":0.11095,"15.4":0.04007},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00326,"6.0-6.1":0.00217,"7.0-7.1":0.04891,"8.1-8.4":0.00272,"9.0-9.2":0,"9.3":0.17497,"10.0-10.2":0.00326,"10.3":0.06575,"11.0-11.2":0.01467,"11.3-11.4":0.00869,"12.0-12.1":0.04456,"12.2-12.5":0.46242,"13.0-13.1":0.00815,"13.2":0.0038,"13.3":0.10976,"13.4-13.7":0.06032,"14.0-14.4":0.49503,"14.5-14.8":0.79063,"15.0-15.1":0.61892,"15.2-15.3":2.33929,"15.4":0.17334},P:{"4":0.3355,"5.0-5.4":0.0103,"6.2-6.4":0.02033,"7.2-7.4":1.85031,"8.2":0.04121,"9.2":0.10167,"10.1":0.02033,"11.1-11.2":0.66083,"12.0":0.08133,"13.0":0.71166,"14.0":1.06749,"15.0":0.63033,"16.0":6.3846},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01145,"11":0.06868,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":51.91084},S:{"2.5":0},R:{_:"0"},M:{"0":0.11069},Q:{"10.4":0.01384},O:{"0":1.39744},H:{"0":0.45192}}; +module.exports={C:{"30":0.00325,"47":0.0065,"52":0.02599,"65":0.03249,"66":0.0065,"78":0.04549,"87":0.0065,"88":0.00975,"89":0.00325,"91":0.05848,"95":0.03899,"98":0.00975,"99":0.41262,"100":1.53678,"101":0.08123,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 90 92 93 94 96 97 102 103 3.5 3.6"},D:{"39":0.02274,"47":0.0065,"49":0.02599,"53":0.04874,"54":0.0065,"56":0.0065,"63":0.00325,"65":0.00325,"66":0.00325,"68":0.06498,"69":0.00975,"74":0.013,"75":0.01949,"76":0.01949,"77":0.13971,"78":0.0065,"79":0.02274,"80":0.0065,"81":0.00975,"83":0.02599,"84":0.00975,"85":0.08447,"86":0.00975,"87":0.04224,"88":0.01625,"89":0.02274,"90":0.013,"91":0.01625,"92":0.01949,"93":0.01949,"94":0.04874,"95":0.0065,"96":0.07473,"97":0.06498,"98":0.05848,"99":0.23718,"100":4.071,"101":14.4613,"102":1.54977,"103":0.02274,"104":0.00975,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 48 50 51 52 55 57 58 59 60 61 62 64 67 70 71 72 73"},F:{"28":0.013,"36":0.00325,"85":0.06823,"86":0.6368,"87":0.04224,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00325,"13":0.0065,"14":0.00975,"15":0.013,"16":0.00975,"17":0.01625,"18":0.1592,"80":0.0065,"84":0.02274,"85":0.02274,"88":0.00325,"89":0.04224,"90":0.00325,"92":0.01625,"94":0.0065,"95":0.0065,"96":0.03249,"97":0.00975,"98":0.02599,"99":0.08123,"100":0.22743,"101":2.7519,_:"79 81 83 86 87 91 93"},E:{"4":0,"12":0.00325,"13":0.05523,"14":0.37688,"15":0.013,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01949,"11.1":0.0065,"12.1":0.02924,"13.1":0.12346,"14.1":0.13321,"15.1":0.08447,"15.2-15.3":0.04224,"15.4":0.57182,"15.5":0.04549},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00231,"6.0-6.1":0.00751,"7.0-7.1":0.08372,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07391,"10.0-10.2":0.01039,"10.3":0.07044,"11.0-11.2":0.00635,"11.3-11.4":0.0052,"12.0-12.1":0.05139,"12.2-12.5":0.59297,"13.0-13.1":0.00635,"13.2":0.00808,"13.3":0.07391,"13.4-13.7":0.08026,"14.0-14.4":0.4365,"14.5-14.8":0.47692,"15.0-15.1":0.26098,"15.2-15.3":0.48616,"15.4":3.03877},P:{"4":0.27535,"5.0-5.4":0.07142,"6.2-6.4":0.03059,"7.2-7.4":1.95808,"8.2":0.01032,"9.2":0.05099,"10.1":0.0102,"11.1-11.2":0.86686,"12.0":0.07139,"13.0":0.34674,"14.0":0.74448,"15.0":0.50992,"16.0":2.56998},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00063,"4.2-4.3":0.00063,"4.4":0,"4.4.3-4.4.4":0.01899},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01733,"11":0.06065,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":52.24024},S:{"2.5":0},R:{_:"0"},M:{"0":0.39156},Q:{"10.4":0},O:{"0":1.12067},H:{"0":0.55605}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FK.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FK.js index c742e24f9be054..d3b86df6c0ffa2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FK.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FK.js @@ -1 +1 @@ -module.exports={C:{"72":0.00888,"78":0.73293,"89":0.00888,"91":0.03109,"92":0.04886,"94":0.08884,"95":0.05775,"96":0.05775,"97":2.40312,"98":5.54806,"99":0.91949,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 93 100 3.5 3.6"},D:{"49":0.62188,"56":0.04886,"77":0.00888,"84":0.03109,"87":0.00888,"96":0.09772,"97":0.11993,"98":3.58914,"99":18.71415,"100":0.01777,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 83 85 86 88 89 90 91 92 93 94 95 101 102 103"},F:{"73":0.03998,"82":0.01777,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.04886,"17":0.05775,"18":0.05775,"85":0.03998,"86":0.00888,"88":0.03109,"92":0.28873,"93":0.00888,"94":0.01777,"96":0.20877,"97":0.20877,"98":0.57302,"99":4.98392,_:"12 14 15 16 79 80 81 83 84 87 89 90 91 95"},E:{"4":0,"13":0.52416,"14":0.00888,"15":0.07107,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.07107,"12.1":0.14659,"13.1":0.11993,"14.1":0.75958,"15.1":0.20877,"15.2-15.3":0.1377,"15.4":0.03998},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02299,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":3.58779,"13.0-13.1":0,"13.2":0.00766,"13.3":0.01533,"13.4-13.7":0.02299,"14.0-14.4":0.11715,"14.5-14.8":0.62296,"15.0-15.1":0.77186,"15.2-15.3":5.39646,"15.4":0.3821},P:{"4":0.40182,"5.0-5.4":0.0103,"6.2-6.4":0.0103,"7.2-7.4":0.03086,"8.2":0.04121,"9.2":0.05152,"10.1":0.03086,"11.1-11.2":0.02057,"12.0":0.0103,"13.0":0.01029,"14.0":0.24687,"15.0":0.072,"16.0":6.0997},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.4442,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":23.03118},S:{"2.5":0},R:{_:"0"},M:{"0":1.21698},Q:{"10.4":0},O:{"0":14.28149},H:{"0":0}}; +module.exports={C:{"43":0.0173,"52":0.00865,"67":0.00865,"78":1.31017,"88":0.0173,"91":0.00865,"94":0.0173,"97":0.11675,"98":0.09513,"99":0.9729,"100":6.01036,"101":0.04756,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 95 96 102 103 3.5 3.6"},D:{"49":0.54915,"62":0.00865,"86":0.08648,"96":0.07783,"99":0.24214,"100":4.19428,"101":16.15014,"102":2.12741,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 87 88 89 90 91 92 93 94 95 97 98 103 104"},F:{"73":0.03027,"85":0.72211,"86":0.15566,"87":0.09513,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.06918,"16":0.07783,"17":0.1254,"18":0.36754,"84":0.00865,"85":0.0173,"88":0.0173,"90":0.03027,"91":0.10378,"92":0.00865,"95":0.13404,"97":0.00865,"99":0.03892,"100":0.7394,"101":4.57912,_:"12 13 15 79 80 81 83 86 87 89 93 94 96 98"},E:{"4":0,"12":0.05621,"13":0.8475,"15":0.00865,_:"0 5 6 7 8 9 10 11 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.05621,"12.1":0.00865,"13.1":0.03027,"14.1":0.32862,"15.1":0.03892,"15.2-15.3":0.11675,"15.4":0.60536,"15.5":0.17296},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.16462,"10.0-10.2":0,"10.3":0.01485,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.00743,"12.2-12.5":3.37647,"13.0-13.1":0,"13.2":0.00743,"13.3":0,"13.4-13.7":0.02971,"14.0-14.4":0.19432,"14.5-14.8":0.50127,"15.0-15.1":0.12006,"15.2-15.3":1.93949,"15.4":6.02022},P:{"4":0.52436,"5.0-5.4":0.07142,"6.2-6.4":0.01049,"7.2-7.4":0.04081,"8.2":0.01032,"9.2":0.02041,"10.1":0.03061,"11.1-11.2":0.02041,"12.0":0.01084,"13.0":0.02041,"14.0":8.64181,"15.0":0.05244,"16.0":1.60185},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00865,"11":0.42375,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":21.92547},S:{"2.5":0},R:{_:"0"},M:{"0":0.914},Q:{"10.4":0},O:{"0":8.91289},H:{"0":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FM.js index 718cb46a3b7219..b6c0a4898b93ec 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FM.js @@ -1 +1 @@ -module.exports={C:{"78":0.02183,"88":0.02183,"94":0.01092,"96":0.01637,"97":1.58282,"98":3.02373,"99":0.39843,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 91 92 93 95 100 3.5 3.6"},D:{"33":0.38206,"49":0.03821,"69":0.03275,"74":0.01637,"79":0.06004,"86":0.01092,"90":0.01637,"91":0.04912,"92":0.1692,"93":2.19957,"94":0.05458,"95":0.04912,"96":0.19103,"97":0.09824,"98":9.07665,"99":21.07334,"100":0.1037,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 75 76 77 78 80 81 83 84 85 87 88 89 101 102 103"},F:{"82":0.01637,"83":0.02729,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01637,"83":0.02729,"84":0.02729,"86":0.1037,"90":0.02183,"92":0.02729,"94":0.01092,"96":0.03275,"97":0.02729,"98":1.5337,"99":7.44471,_:"12 13 14 15 16 17 79 80 81 85 87 88 89 91 93 95"},E:{"4":0,"11":0.03821,"13":0.03275,"14":0.37114,"15":0.03275,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01092,"12.1":0.86236,"13.1":0.58401,"14.1":0.2074,"15.1":0.07095,"15.2-15.3":0.08187,"15.4":0.06004},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05324,"10.0-10.2":0,"10.3":0.01099,"11.0-11.2":0,"11.3-11.4":0.01099,"12.0-12.1":0.00338,"12.2-12.5":1.3352,"13.0-13.1":0,"13.2":0.00338,"13.3":0.04141,"13.4-13.7":0.57211,"14.0-14.4":1.10788,"14.5-14.8":2.28844,"15.0-15.1":0.9676,"15.2-15.3":1.99266,"15.4":0.06084},P:{"4":0.11591,"5.0-5.4":0.06037,"6.2-6.4":0.15093,"7.2-7.4":0.10385,"8.2":0.01002,"9.2":0.03074,"10.1":0.04099,"11.1-11.2":0.29079,"12.0":0.05193,"13.0":0.1454,"14.0":0.15578,"15.0":0.04154,"16.0":1.05931},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.06813},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07641,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":36.24182},S:{"2.5":0},R:{_:"0"},M:{"0":0.04088},Q:{"10.4":0},O:{"0":0.49054},H:{"0":0.0516}}; +module.exports={C:{"78":0.01053,"89":0.02105,"91":0.01579,"94":0.01053,"96":0.2421,"98":0.1,"99":1.63153,"100":3.11043,"101":0.20526,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 92 93 95 97 102 103 3.5 3.6"},D:{"33":0.09473,"49":0.09473,"76":0.38946,"78":0.01053,"79":0.24736,"84":0.01579,"87":0.01053,"88":0.01053,"90":0.01579,"91":0.01053,"93":0.41578,"96":0.02105,"97":0.07368,"98":0.15263,"99":0.5684,"100":5.18406,"101":17.11528,"102":1.78416,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 80 81 83 85 86 89 92 94 95 103 104"},F:{"85":0.15263,"86":0.33157,"87":0.01053,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01053,"15":0.01579,"16":0.01579,"17":0.09473,"86":0.07368,"90":0.02105,"92":0.06842,"96":0.02105,"97":0.05789,"98":0.03158,"99":0.11052,"100":0.71051,"101":14.29431,_:"13 14 18 79 80 81 83 84 85 87 88 89 91 93 94 95"},E:{"4":0,"14":0.6684,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 15.2-15.3","11.1":0.01053,"12.1":0.03684,"13.1":0.30525,"14.1":0.1421,"15.1":0.03158,"15.4":0.33683,"15.5":0.05263},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.05933,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.42956,"10.0-10.2":0,"10.3":0.00712,"11.0-11.2":0.00712,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":1.78586,"13.0-13.1":0,"13.2":0.00712,"13.3":0.03797,"13.4-13.7":0.31445,"14.0-14.4":0.5411,"14.5-14.8":1.25188,"15.0-15.1":0.77486,"15.2-15.3":1.33495,"15.4":5.31486},P:{"4":0.0945,"5.0-5.4":0.04028,"6.2-6.4":0.0705,"7.2-7.4":0.05365,"8.2":0.01019,"9.2":0.03219,"10.1":0.06042,"11.1-11.2":0.11803,"12.0":0.01073,"13.0":0.021,"14.0":0.08584,"15.0":0.02146,"16.0":0.31116},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01579,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.06158},Q:{"10.4":0},O:{"0":0.14685},H:{"0":0.2063},L:{"0":37.22893},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FO.js index cb077531e57f92..b946cdae208bac 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FO.js @@ -1 +1 @@ -module.exports={C:{"78":0.04091,"91":0.11455,"95":0.00409,"97":0.32319,"98":0.55229,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 96 99 100 3.5 3.6"},D:{"23":0.00409,"49":0.02046,"66":0.00409,"71":0.03273,"72":0.01636,"79":0.02455,"80":0.03273,"83":0.01636,"86":0.00818,"87":0.00818,"88":0.07364,"89":0.00409,"90":0.00818,"91":0.01636,"92":0.13909,"93":0.01636,"94":0.04091,"95":0.01227,"96":0.17591,"97":0.76911,"98":3.69417,"99":9.11884,"100":0.10637,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 73 74 75 76 77 78 81 84 85 101 102 103"},F:{"83":0.51547,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.02455,"16":0.00409,"18":0.01227,"89":0.01636,"90":0.00409,"95":0.00818,"96":0.01227,"97":0.00818,"98":0.78956,"99":2.06186,_:"12 13 14 17 79 80 81 83 84 85 86 87 88 91 92 93 94"},E:{"4":0,"12":0.01227,"13":0.01636,"14":0.68729,"15":0.08591,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.02046,"11.1":0.01227,"12.1":0.02046,"13.1":0.15546,"14.1":0.6382,"15.1":1.66504,"15.2-15.3":2.14778,"15.4":1.77959},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05884,"10.0-10.2":0.0107,"10.3":0.04814,"11.0-11.2":0.02675,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.24072,"13.0-13.1":0,"13.2":0.0321,"13.3":0.0107,"13.4-13.7":0.06419,"14.0-14.4":0.86123,"14.5-14.8":1.69571,"15.0-15.1":3.35398,"15.2-15.3":43.62848,"15.4":3.44492},P:{"4":0.40182,"5.0-5.4":0.0103,"6.2-6.4":0.0103,"7.2-7.4":0.19576,"8.2":0.04121,"9.2":0.05152,"10.1":0.01073,"11.1-11.2":0.02057,"12.0":0.0103,"13.0":0.01028,"14.0":0.08242,"15.0":0.01028,"16.0":0.75067},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.17182,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":4.6272},S:{"2.5":0},R:{_:"0"},M:{"0":0.05909},Q:{"10.4":0},O:{"0":0},H:{"0":0.07832}}; +module.exports={C:{"48":0.00364,"78":0.10929,"91":0.08379,"99":0.16029,"100":0.60474,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 101 102 103 3.5 3.6"},D:{"38":0.00364,"49":0.01457,"67":0.01093,"71":0.01822,"79":0.00729,"83":0.00729,"84":0.00364,"87":0.0255,"88":0.00729,"90":0.00729,"91":0.0255,"92":0.02914,"96":0.05465,"97":0.01822,"98":0.04007,"99":0.14936,"100":1.83607,"101":7.39529,"102":0.53188,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 72 73 74 75 76 77 78 80 81 85 86 89 93 94 95 103 104"},F:{"85":0.15301,"86":0.20401,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00364,"87":0.00364,"91":0.00729,"94":0.01457,"95":0.02186,"98":0.00729,"99":0.00729,"100":0.10929,"101":1.74135,_:"12 13 14 16 17 18 79 80 81 83 84 85 86 88 89 90 92 93 96 97"},E:{"4":0,"13":0.01822,"14":0.54281,"15":0.03279,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.18579,"12.1":0.00364,"13.1":0.07286,"14.1":0.36066,"15.1":0.57559,"15.2-15.3":0.71403,"15.4":15.79969,"15.5":2.04737},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02909,"10.0-10.2":0.01164,"10.3":0.07564,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.00582,"12.2-12.5":0.21529,"13.0-13.1":0,"13.2":0,"13.3":0.00582,"13.4-13.7":0.03491,"14.0-14.4":0.56442,"14.5-14.8":0.96591,"15.0-15.1":1.34994,"15.2-15.3":4.00327,"15.4":50.87301},P:{"4":0.52436,"5.0-5.4":0.01049,"6.2-6.4":0.01049,"7.2-7.4":0.23072,"8.2":0.01032,"9.2":0.06292,"10.1":0.04105,"11.1-11.2":0.07341,"12.0":0.01084,"13.0":0.15731,"14.0":0.10487,"15.0":0.05244,"16.0":0.3846},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06557,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":4.61812},S:{"2.5":0},R:{_:"0"},M:{"0":0.08264},Q:{"10.4":0},O:{"0":0},H:{"0":0.01204}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FR.js index a59d62486a78da..de3b60b0bfd606 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/FR.js @@ -1 +1 @@ -module.exports={C:{"11":0.00487,"45":0.00974,"47":0.01461,"48":0.01948,"50":0.00487,"51":0.01461,"52":0.10714,"53":0.01948,"54":0.00974,"55":0.01461,"56":0.02435,"57":0.00974,"58":0.00487,"59":0.01948,"60":0.01461,"66":0.00487,"68":0.03409,"72":0.00974,"77":0.00487,"78":0.2435,"79":0.01948,"80":0.01948,"81":0.42856,"82":0.01948,"83":0.01461,"84":0.02922,"85":0.00974,"86":0.00974,"87":0.01461,"88":0.02922,"89":0.03409,"90":0.05357,"91":0.39447,"92":0.01461,"93":0.02435,"94":0.04383,"95":0.05357,"96":0.07305,"97":2.32786,"98":3.56971,"99":0.00974,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 49 61 62 63 64 65 67 69 70 71 73 74 75 76 100 3.5 3.6"},D:{"38":0.00487,"41":0.00974,"43":0.00487,"44":0.00974,"45":0.00487,"46":0.00487,"47":0.00974,"48":0.00487,"49":0.11688,"50":0.00974,"51":0.00974,"52":0.02922,"53":0.00974,"54":0.06818,"55":0.00487,"56":0.01461,"57":0.00974,"58":0.01461,"59":0.00487,"60":0.06818,"61":0.00487,"62":0.00974,"63":0.01948,"64":0.06331,"65":0.02435,"66":0.06331,"67":0.01461,"69":0.02435,"70":0.01948,"71":0.02435,"72":0.01948,"73":0.00487,"74":0.01461,"75":0.01948,"76":0.01948,"77":0.01461,"78":0.02435,"79":0.09253,"80":0.06818,"81":0.03409,"83":0.09253,"84":0.17532,"85":0.15584,"86":0.17045,"87":0.26298,"88":0.04383,"89":0.06331,"90":0.03896,"91":0.05844,"92":0.0487,"93":1.03731,"94":0.40421,"95":0.07792,"96":0.25324,"97":0.51622,"98":6.1849,"99":16.33885,"100":0.01461,"101":0.00974,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 68 102 103"},F:{"68":0.00974,"70":0.00487,"71":0.00974,"72":0.00487,"82":0.00974,"83":0.43343,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00487,"16":0.00487,"17":0.02922,"18":0.07305,"83":0.00487,"84":0.01461,"85":0.01461,"86":0.01461,"87":0.00487,"88":0.00487,"89":0.00974,"90":0.00974,"91":0.00974,"92":0.00974,"94":0.00974,"95":0.01461,"96":0.04383,"97":0.11201,"98":1.20776,"99":4.15898,_:"12 13 14 79 80 81 93"},E:{"4":0,"12":0.00974,"13":0.07792,"14":0.34577,"15":0.17045,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01948,"10.1":0.01948,"11.1":0.08279,"12.1":0.13636,"13.1":0.44804,"14.1":0.98374,"15.1":0.35064,"15.2-15.3":0.3896,"15.4":0.15584},G:{"8":0.00625,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00625,"6.0-6.1":0,"7.0-7.1":0.00937,"8.1-8.4":0.00469,"9.0-9.2":0.025,"9.3":0.11092,"10.0-10.2":0.02656,"10.3":0.11561,"11.0-11.2":0.05155,"11.3-11.4":0.04062,"12.0-12.1":0.03281,"12.2-12.5":0.62958,"13.0-13.1":0.05468,"13.2":0.01406,"13.3":0.09373,"13.4-13.7":0.26871,"14.0-14.4":0.70457,"14.5-14.8":2.3668,"15.0-15.1":1.11544,"15.2-15.3":9.42813,"15.4":0.51554},P:{"4":0.08458,"5.0-5.4":0.02114,"6.2-6.4":0.02033,"7.2-7.4":0.02114,"8.2":0.04121,"9.2":0.03172,"10.1":0.02033,"11.1-11.2":0.08458,"12.0":0.03172,"13.0":0.10572,"14.0":0.12687,"15.0":0.10572,"16.0":2.68539},I:{"0":0,"3":0,"4":0.00543,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00453,"4.2-4.3":0.00634,"4.4":0,"4.4.3-4.4.4":0.06065},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01478,"9":0.02956,"10":0.00493,"11":0.3793,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":29.70973},S:{"2.5":0},R:{_:"0"},M:{"0":0.56943},Q:{"10.4":0},O:{"0":0.45657},H:{"0":0.39825}}; +module.exports={C:{"45":0.05911,"47":0.01819,"48":0.02274,"52":0.08185,"56":0.00909,"59":0.01364,"60":0.00909,"61":0.00455,"65":0.00455,"68":0.02728,"72":0.00455,"75":0.00455,"77":0.00909,"78":0.20007,"79":0.01819,"80":0.02274,"81":0.29556,"82":0.01819,"83":0.01364,"84":0.01819,"86":0.00455,"87":0.00455,"88":0.02274,"89":0.01819,"90":0.01819,"91":0.35921,"92":0.00909,"93":0.02274,"94":0.03638,"95":0.01819,"96":0.01819,"97":0.05002,"98":0.06366,"99":1.12766,"100":4.64703,"101":0.01364,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 49 50 51 53 54 55 57 58 62 63 64 66 67 69 70 71 73 74 76 85 102 103 3.5 3.6"},D:{"38":0.00455,"44":0.00455,"48":0.00455,"49":0.10458,"50":0.00909,"51":0.02728,"52":0.02728,"54":0.06821,"56":0.00455,"58":0.00909,"60":0.12277,"63":0.01364,"64":0.02274,"65":0.01364,"66":0.05456,"67":0.02274,"69":0.01819,"70":0.00909,"71":0.01819,"72":0.00455,"74":0.00909,"75":0.00909,"76":0.01364,"77":0.01364,"78":0.02274,"79":0.09094,"80":0.06366,"81":0.03183,"83":0.10458,"84":0.18188,"85":0.16824,"86":0.18643,"87":0.24554,"88":0.03183,"89":0.05911,"90":0.02274,"91":0.04092,"92":0.04547,"93":0.09094,"94":0.1455,"95":0.05911,"96":0.1455,"97":0.19097,"98":0.16369,"99":0.26827,"100":4.9335,"101":16.16004,"102":0.94578,"103":0.00909,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 45 46 47 53 55 57 59 61 62 68 73 104"},F:{"28":0.00455,"68":0.00909,"69":0.00455,"70":0.00909,"71":0.00909,"72":0.00455,"85":0.62749,"86":0.58202,"87":0.02274,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00455,"17":0.01819,"18":0.04092,"83":0.00455,"84":0.01364,"85":0.01364,"86":0.01364,"87":0.00455,"89":0.00909,"91":0.00909,"92":0.00909,"94":0.00455,"95":0.00455,"96":0.06821,"97":0.02728,"98":0.02274,"99":0.07275,"100":0.31374,"101":4.81073,_:"12 13 14 15 79 80 81 88 90 93"},E:{"4":0,"12":0.00909,"13":0.05002,"14":0.2228,"15":0.10003,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00909,"10.1":0.02274,"11.1":0.06366,"12.1":0.11368,"13.1":0.37285,"14.1":0.65932,"15.1":0.17733,"15.2-15.3":0.17733,"15.4":1.85972,"15.5":0.16824},G:{"8":0.00493,"3.2":0,"4.0-4.1":0.00658,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00164,"7.0-7.1":0.00658,"8.1-8.4":0.00493,"9.0-9.2":0.02302,"9.3":0.11181,"10.0-10.2":0.01973,"10.3":0.11509,"11.0-11.2":0.0411,"11.3-11.4":0.04275,"12.0-12.1":0.0296,"12.2-12.5":0.61328,"13.0-13.1":0.05097,"13.2":0.01151,"13.3":0.07728,"13.4-13.7":0.24498,"14.0-14.4":0.62973,"14.5-14.8":1.69681,"15.0-15.1":0.56231,"15.2-15.3":1.4288,"15.4":10.71191},P:{"4":0.08394,"5.0-5.4":0.01049,_:"6.2-6.4 8.2 10.1","7.2-7.4":0.02099,"9.2":0.03148,"11.1-11.2":0.06296,"12.0":0.03148,"13.0":0.10493,"14.0":0.10493,"15.0":0.07345,"16.0":1.20668},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00436,"4.2-4.3":0.01091,"4.4":0,"4.4.3-4.4.4":0.06107},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00939,"9":0.02347,"10":0.00469,"11":0.25346,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":33.15677},S:{"2.5":0},R:{_:"0"},M:{"0":0.59983},Q:{"10.4":0},O:{"0":0.49077},H:{"0":0.43882}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GA.js index fcbee08ebf4c7d..9870351d9c3e0b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GA.js @@ -1 +1 @@ -module.exports={C:{"29":0.00331,"34":0.00993,"43":0.03311,"48":0.00662,"52":0.01324,"54":0.00993,"68":0.00331,"72":0.00662,"78":0.0298,"88":0.01987,"91":0.04967,"93":0.01656,"94":0.00662,"95":0.04967,"96":0.01324,"97":0.83437,"98":1.17209,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 47 49 50 51 53 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 99 100 3.5 3.6"},D:{"30":0.00993,"31":0.01987,"38":0.00662,"47":0.00331,"49":0.00993,"50":0.00331,"51":0.00331,"53":0.01656,"55":0.00993,"63":0.00662,"65":0.0298,"67":0.00331,"68":0.00331,"69":0.02649,"70":0.01987,"72":0.00662,"73":0.23177,"74":0.01324,"75":0.00993,"76":0.02649,"77":0.00662,"79":0.90721,"80":0.00662,"81":0.08278,"83":0.04304,"84":0.03311,"85":0.00993,"86":0.04635,"87":0.04967,"88":0.01656,"89":0.00331,"91":0.00993,"92":0.04967,"93":0.01656,"94":0.03311,"95":0.29799,"96":0.17879,"97":0.15231,"98":3.24478,"99":14.69753,"100":0.11589,"101":0.03311,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 52 54 56 57 58 59 60 61 62 64 66 71 78 90 102 103"},F:{"28":0.01656,"79":0.00331,"82":0.01656,"83":0.07284,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01987,"13":0.00662,"14":0.00331,"16":0.00993,"17":0.00662,"18":0.03311,"84":0.00331,"85":0.00331,"89":0.0298,"90":0.01987,"92":0.03973,"94":0.00331,"96":0.02649,"97":0.03973,"98":0.60591,"99":2.21506,_:"15 79 80 81 83 86 87 88 91 93 95"},E:{"4":0,"13":0.00993,"14":0.0298,"15":0.00662,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.00662,"12.1":0.00662,"13.1":0.24501,"14.1":0.06291,"15.1":0.0298,"15.2-15.3":0.01987,"15.4":0.01324},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.07745,"6.0-6.1":0,"7.0-7.1":0.01764,"8.1-8.4":0,"9.0-9.2":0.0023,"9.3":0.02301,"10.0-10.2":0.00077,"10.3":0.02071,"11.0-11.2":0.29141,"11.3-11.4":0.00383,"12.0-12.1":0.04985,"12.2-12.5":2.95627,"13.0-13.1":0.0092,"13.2":0.0023,"13.3":0.0092,"13.4-13.7":0.06978,"14.0-14.4":0.39877,"14.5-14.8":0.62116,"15.0-15.1":0.36119,"15.2-15.3":2.47008,"15.4":0.28067},P:{"4":0.40201,"5.0-5.4":0.02062,"6.2-6.4":0.03092,"7.2-7.4":0.53601,"8.2":0.0104,"9.2":0.03092,"10.1":0.02033,"11.1-11.2":0.07216,"12.0":0.04123,"13.0":0.44324,"14.0":0.1237,"15.0":0.134,"16.0":1.5565},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0009,"4.2-4.3":0.00198,"4.4":0,"4.4.3-4.4.4":0.04394},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.46354,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00669},N:{"10":0.02584,_:"11"},L:{"0":54.33169},S:{"2.5":0.01338},R:{_:"0"},M:{"0":0.52843},Q:{"10.4":0},O:{"0":0.29432},H:{"0":2.16579}}; +module.exports={C:{"52":0.01737,"54":0.01389,"66":0.00347,"72":0.02084,"78":0.03473,"90":0.00347,"91":0.02778,"94":0.00347,"95":0.03126,"96":0.01042,"98":0.01042,"99":0.62514,"100":2.47278,"101":0.00347,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 92 93 97 102 103 3.5 3.6"},D:{"38":0.00695,"47":0.00695,"49":0.01389,"56":0.06946,"65":0.00695,"69":0.03126,"70":0.01389,"71":0.00695,"72":0.00695,"73":0.01389,"74":0.02778,"75":0.06599,"76":0.03126,"79":0.32299,"80":0.00695,"81":0.01737,"83":0.01389,"84":0.03126,"85":0.01737,"86":0.01737,"87":0.06946,"88":0.01737,"89":0.01389,"91":0.00695,"92":0.02431,"93":0.00695,"94":0.01042,"95":0.11461,"96":0.03473,"97":0.04515,"98":0.04168,"99":0.13892,"100":4.77538,"101":13.22866,"102":1.05232,"103":0.04862,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 66 67 68 77 78 90 104"},F:{"28":0.02431,"80":0.00347,"84":0.01389,"85":0.93771,"86":1.51423,"87":0.05904,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01389,"13":0.01042,"16":0.00695,"17":0.01389,"18":0.02778,"84":0.00347,"85":0.00695,"90":0.00347,"92":0.01737,"96":0.00695,"97":0.00347,"98":0.01042,"99":0.02431,"100":0.18407,"101":2.70547,_:"14 15 79 80 81 83 86 87 88 89 91 93 94 95"},E:{"4":0,"11":0.00347,"13":0.00695,"14":0.01389,"15":0.00347,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01389,"12.1":0.00347,"13.1":0.01737,"14.1":0.04515,"15.1":0.01042,"15.2-15.3":0.01389,"15.4":0.18407,"15.5":0.11461},G:{"8":0.13672,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.09695,"6.0-6.1":0.00166,"7.0-7.1":0.03977,"8.1-8.4":0,"9.0-9.2":0.00331,"9.3":0.00829,"10.0-10.2":0,"10.3":0.07043,"11.0-11.2":0.04557,"11.3-11.4":0.00994,"12.0-12.1":0.22207,"12.2-12.5":2.45268,"13.0-13.1":0.00497,"13.2":0.00083,"13.3":0.00829,"13.4-13.7":0.02983,"14.0-14.4":0.24693,"14.5-14.8":0.3505,"15.0-15.1":0.76729,"15.2-15.3":0.55682,"15.4":3.22991},P:{"4":0.55274,"5.0-5.4":0.02148,"6.2-6.4":0.03071,"7.2-7.4":0.59368,"8.2":0.01032,"9.2":0.03071,"10.1":0.01021,"11.1-11.2":0.03071,"12.0":0.04094,"13.0":0.29684,"14.0":0.1126,"15.0":0.07165,"16.0":1.00312},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00126,"4.2-4.3":0.00378,"4.4":0,"4.4.3-4.4.4":0.17771},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08683,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01305},N:{"10":0.01411,_:"11"},L:{"0":52.80359},S:{"2.5":0.00653},R:{_:"0"},M:{"0":0.62007},Q:{"10.4":0.00653},O:{"0":0.35246},H:{"0":1.94649}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GB.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GB.js index 062da2ed28333a..b958f721888d7e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GB.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GB.js @@ -1 +1 @@ -module.exports={C:{"48":0.00463,"52":0.03239,"59":0.01388,"68":0.00463,"78":0.08791,"80":0.00463,"87":0.03239,"88":0.00925,"89":0.02314,"90":0.14344,"91":0.05552,"92":0.00925,"93":0.00925,"94":0.01388,"95":0.01851,"96":0.02776,"97":0.92077,"98":1.47601,"99":0.00925,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 81 82 83 84 85 86 100 3.5 3.6"},D:{"36":0.00925,"38":0.00463,"40":0.2221,"43":0.00925,"49":0.06478,"56":0.03239,"60":0.00925,"63":0.00463,"64":0.00463,"65":0.00925,"66":0.06478,"67":0.01388,"69":0.06478,"70":0.00925,"71":0.00463,"72":0.00925,"74":0.01388,"75":0.01851,"76":0.03702,"77":0.01851,"78":0.01388,"79":0.06941,"80":0.04627,"81":0.02314,"83":0.06015,"84":0.06478,"85":0.03702,"86":0.03702,"87":0.07403,"88":0.02776,"89":0.05552,"90":0.02776,"91":0.06478,"92":0.06015,"93":0.66166,"94":0.11105,"95":0.09717,"96":0.30538,"97":0.60151,"98":6.81557,"99":15.77344,"100":0.01851,"101":0.00463,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 39 41 42 44 45 46 47 48 50 51 52 53 54 55 57 58 59 61 62 68 73 102 103"},F:{"46":0.00463,"82":0.00925,"83":0.32852,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00925},B:{"15":0.00925,"16":0.00463,"17":0.01388,"18":0.06478,"84":0.00463,"85":0.00925,"89":0.00463,"90":0.00463,"91":0.00925,"92":0.01388,"93":0.01851,"94":0.00925,"95":0.01388,"96":0.04164,"97":0.18971,"98":1.77677,"99":5.45986,_:"12 13 14 79 80 81 83 86 87 88"},E:{"4":0,"12":0.00463,"13":0.06941,"14":0.43494,"15":0.19896,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00463,"10.1":0.01388,"11.1":0.06015,"12.1":0.09717,"13.1":0.41643,"14.1":1.48989,"15.1":0.43494,"15.2-15.3":0.5136,"15.4":0.21747},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00513,"7.0-7.1":0.01283,"8.1-8.4":0.0154,"9.0-9.2":0.00257,"9.3":0.27203,"10.0-10.2":0.0077,"10.3":0.26177,"11.0-11.2":0.0308,"11.3-11.4":0.06672,"12.0-12.1":0.02823,"12.2-12.5":1.19078,"13.0-13.1":0.02566,"13.2":0.0077,"13.3":0.06672,"13.4-13.7":0.2207,"14.0-14.4":0.80839,"14.5-14.8":3.87002,"15.0-15.1":1.38325,"15.2-15.3":16.72477,"15.4":0.64415},P:{"4":0.04304,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.04304,"12.0":0.03228,"13.0":0.09684,"14.0":0.1076,"15.0":0.08608,"16.0":3.74445},I:{"0":0,"3":0,"4":0.01628,"2.1":0,"2.2":0.00163,"2.3":0,"4.1":0.0013,"4.2-4.3":0.00326,"4.4":0,"4.4.3-4.4.4":0.03126},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01388,"11":0.30538,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":23.09154},S:{"2.5":0},R:{_:"0"},M:{"0":0.34925},Q:{"10.4":0},O:{"0":0.12358},H:{"0":0.22891}}; +module.exports={C:{"48":0.00487,"52":0.03407,"59":0.0146,"68":0.00487,"78":0.09734,"80":0.00487,"81":0.00487,"87":0.00973,"88":0.00487,"89":0.0146,"90":0.03894,"91":0.09734,"92":0.00487,"93":0.00487,"94":0.00973,"95":0.00973,"96":0.00973,"97":0.0146,"98":0.16061,"99":0.41856,"100":1.70832,"101":0.00973,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 82 83 84 85 86 102 103 3.5 3.6"},D:{"35":0.00487,"36":0.00973,"38":0.00487,"40":0.20928,"43":0.00973,"49":0.05354,"51":0.00973,"56":0.0292,"60":0.01947,"62":0.01947,"63":0.00487,"65":0.00973,"66":0.05354,"67":0.02434,"69":0.04867,"71":0.00487,"74":0.0146,"75":0.00973,"76":0.05354,"77":0.0146,"78":0.00973,"79":0.06327,"80":0.03894,"81":0.01947,"83":0.06327,"84":0.06814,"85":0.04867,"86":0.0584,"87":0.07787,"88":0.0146,"89":0.0584,"90":0.01947,"91":0.06814,"92":0.04867,"93":0.08274,"94":0.13141,"95":0.05354,"96":0.11194,"97":0.11681,"98":0.23362,"99":0.4867,"100":5.08602,"101":18.94723,"102":1.71805,"103":0.00973,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 37 39 41 42 44 45 46 47 48 50 52 53 54 55 57 58 59 61 64 68 70 72 73 104"},F:{"46":0.00973,"85":0.36989,"86":0.37476,"87":0.0146,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00973},B:{"15":0.00487,"17":0.00973,"18":0.0584,"84":0.00487,"85":0.00973,"91":0.00487,"92":0.0146,"93":0.0146,"95":0.00973,"96":0.0146,"97":0.03894,"98":0.0292,"99":0.14601,"100":0.45263,"101":7.62659,_:"12 13 14 16 79 80 81 83 86 87 88 89 90 94"},E:{"4":0,"12":0.00487,"13":0.05354,"14":0.31636,"15":0.10707,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00973,"10.1":0.00973,"11.1":0.04867,"12.1":0.07787,"13.1":0.34556,"14.1":0.99287,"15.1":0.20928,"15.2-15.3":0.21902,"15.4":3.62105,"15.5":0.33582},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00242,"6.0-6.1":0.00483,"7.0-7.1":0.01208,"8.1-8.4":0.00725,"9.0-9.2":0.00242,"9.3":0.24401,"10.0-10.2":0.00725,"10.3":0.22952,"11.0-11.2":0.02416,"11.3-11.4":0.05315,"12.0-12.1":0.02658,"12.2-12.5":1.06545,"13.0-13.1":0.02174,"13.2":0.00725,"13.3":0.05315,"13.4-13.7":0.17878,"14.0-14.4":0.61608,"14.5-14.8":2.38941,"15.0-15.1":0.59675,"15.2-15.3":1.8144,"15.4":16.78383},P:{"4":0.04321,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.04321,"12.0":0.02161,"13.0":0.06482,"14.0":0.08643,"15.0":0.05402,"16.0":1.19917},I:{"0":0,"3":0,"4":0.01633,"2.1":0,"2.2":0.00136,"2.3":0,"4.1":0.00136,"4.2-4.3":0.00714,"4.4":0,"4.4.3-4.4.4":0.03027},A:{"9":0.0149,"11":0.22845,_:"6 7 8 10 5.5"},K:{_:"0 10 11 12 11.1 11.5 12.1"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.34904},Q:{"10.4":0},O:{"0":0.11806},H:{"0":0.21868},L:{"0":22.69567},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GD.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GD.js index fca0bc3bc97951..c6f721ec43f3d8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GD.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GD.js @@ -1 +1 @@ -module.exports={C:{"60":0.00953,"78":0.04289,"81":0.00953,"85":0.00477,"86":0.12389,"87":0.0143,"91":0.05242,"95":0.0143,"96":0.0143,"97":0.44315,"98":0.79099,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 88 89 90 92 93 94 99 100 3.5 3.6"},D:{"49":0.00953,"63":0.02859,"65":0.00477,"71":0.00477,"73":0.03336,"74":0.31926,"76":0.02859,"77":0.06195,"79":0.02859,"80":0.00953,"81":0.02859,"84":0.00953,"85":0.0143,"86":0.08101,"87":0.02859,"88":0.02383,"89":0.00477,"90":0.00477,"91":0.02383,"92":0.02859,"93":0.10007,"94":0.01906,"95":0.02859,"96":0.17631,"97":0.22872,"98":10.31623,"99":19.11242,"100":0.23825,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 67 68 69 70 72 75 78 83 101 102 103"},F:{"28":0.0143,"67":0.10483,"68":0.25731,"83":0.14772,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00477,"15":0.00953,"17":0.01906,"18":0.00477,"80":0.00953,"92":0.02859,"96":0.01906,"97":0.03812,"98":1.98701,"99":6.45658,_:"12 13 16 79 81 83 84 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.00477,"14":0.07624,"15":0.22872,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00953,"12.1":0.02383,"13.1":0.16201,"14.1":0.60992,"15.1":0.42409,"15.2-15.3":0.26208,"15.4":0.12866},G:{"8":0,"3.2":0,"4.0-4.1":0.00109,"4.2-4.3":0,"5.0-5.1":0.00109,"6.0-6.1":0,"7.0-7.1":0.10107,"8.1-8.4":0.00978,"9.0-9.2":0.01304,"9.3":0.0576,"10.0-10.2":0.00217,"10.3":0.12933,"11.0-11.2":0.01087,"11.3-11.4":0.00543,"12.0-12.1":0.00326,"12.2-12.5":0.39342,"13.0-13.1":0.00543,"13.2":0.00326,"13.3":0.02391,"13.4-13.7":0.04565,"14.0-14.4":0.30431,"14.5-14.8":1.27048,"15.0-15.1":1.22374,"15.2-15.3":6.46976,"15.4":0.78793},P:{"4":0.09811,"5.0-5.4":0.01055,"6.2-6.4":0.03035,"7.2-7.4":0.20712,"8.2":0.0104,"9.2":0.04219,"10.1":0.02033,"11.1-11.2":0.09811,"12.0":0.02109,"13.0":0.0327,"14.0":0.09811,"15.0":0.0109,"16.0":2.23473},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00008,"4.4":0,"4.4.3-4.4.4":0.01039},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00477,"10":0.00953,"11":0.04289,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":38.91557},S:{"2.5":0},R:{_:"0"},M:{"0":0.13088},Q:{"10.4":0},O:{"0":0.1047},H:{"0":0.87724}}; +module.exports={C:{"60":0.00832,"78":0.00832,"87":0.02495,"91":0.39917,"95":0.00832,"98":0.02079,"99":0.22453,"100":0.88981,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 88 89 90 92 93 94 96 97 101 102 103 3.5 3.6"},D:{"38":0.00832,"49":0.00832,"62":0.00832,"63":0.0499,"73":0.03742,"75":0.00416,"76":0.0499,"77":0.03742,"79":0.02079,"80":0.01247,"81":0.01247,"83":0.00832,"84":0.01247,"85":0.00832,"86":0.01663,"87":0.03742,"88":0.01663,"89":0.00832,"90":0.01663,"91":0.01663,"92":0.01663,"93":0.06237,"94":0.02495,"95":0.02495,"96":0.07069,"97":0.03326,"98":0.08316,"99":0.34511,"100":5.22245,"101":17.49686,"102":1.63409,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 64 65 66 67 68 69 70 71 72 74 78 103 104"},F:{"28":0.01663,"69":0.04158,"84":0.00416,"85":0.22869,"86":0.31601,"87":0.01247,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00832,"92":0.03326,"94":0.02079,"96":0.00832,"97":0.02079,"98":0.01663,"99":0.05405,"100":0.56965,"101":6.76091,_:"12 13 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 95"},E:{"4":0,"13":0.01247,"14":0.079,"15":0.2079,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00416,"11.1":0.00832,"12.1":0.00416,"13.1":0.2079,"14.1":0.26195,"15.1":0.14969,"15.2-15.3":0.07069,"15.4":1.30145,"15.5":0.11642},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03978,"8.1-8.4":0,"9.0-9.2":0.00351,"9.3":0.0468,"10.0-10.2":0.00117,"10.3":0.07255,"11.0-11.2":0,"11.3-11.4":0.00351,"12.0-12.1":0.00234,"12.2-12.5":0.47156,"13.0-13.1":0.00351,"13.2":0,"13.3":0.01287,"13.4-13.7":0.03978,"14.0-14.4":0.26211,"14.5-14.8":1.32926,"15.0-15.1":0.20243,"15.2-15.3":0.87174,"15.4":8.33476},P:{"4":0.11539,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.23079,"8.2":0.01032,"9.2":0.05233,"10.1":0.01021,"11.1-11.2":0.06294,"12.0":0.23123,"13.0":0.02098,"14.0":0.06294,"15.0":0.04196,"16.0":1.53158},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00053,"4.2-4.3":0.00187,"4.4":0,"4.4.3-4.4.4":0.0385},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00832,"11":0.02911,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":43.57011},S:{"2.5":0},R:{_:"0"},M:{"0":0.21035},Q:{"10.4":0},O:{"0":0.07012},H:{"0":0.37616}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GE.js index 6209d710acc404..1eeb9862c9a38d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GE.js @@ -1 +1 @@ -module.exports={C:{"34":0.00453,"48":0.00905,"51":0.08147,"52":0.06789,"53":0.08147,"54":0.04073,"55":0.07694,"56":0.05431,"57":0.04979,"58":0.0181,"59":0.0181,"65":0.00453,"68":0.0181,"78":0.04073,"83":0.00453,"88":0.00453,"89":0.00453,"91":0.00905,"95":0.00453,"96":0.00905,"97":0.40734,"98":0.79658,"99":0.01358,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 60 61 62 63 64 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 90 92 93 94 100 3.5 3.6"},D:{"26":0.00453,"38":0.00905,"39":0.02263,"40":0.02263,"41":0.02263,"42":0.02263,"43":0.02716,"44":0.02263,"45":0.02716,"46":0.03168,"47":0.06336,"48":0.02716,"49":0.09052,"50":0.02263,"51":0.02263,"52":0.0181,"53":0.03621,"54":0.02716,"55":0.02263,"56":0.04526,"57":0.02716,"58":0.03168,"59":0.04073,"60":0.03168,"61":0.02716,"62":0.04526,"63":0.04073,"64":0.03168,"65":0.03621,"66":0.04526,"68":0.03168,"69":0.02263,"70":0.00905,"71":0.0181,"72":0.00905,"73":0.01358,"74":0.03168,"75":0.0181,"76":0.06789,"77":0.00905,"78":0.02716,"79":0.22177,"80":0.0181,"81":0.02263,"83":0.06789,"84":0.02716,"85":0.02716,"86":0.06789,"87":0.06789,"88":0.06789,"89":0.05431,"90":0.08599,"91":0.05884,"92":0.06789,"93":0.05431,"94":0.05431,"95":0.07242,"96":0.18557,"97":0.28514,"98":6.23683,"99":22.53948,"100":0.24893,"101":0.23535,"102":0.00453,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 67 103"},F:{"28":0.05884,"36":0.00905,"40":0.00905,"46":0.02263,"48":0.00905,"49":0.00905,"57":0.00905,"66":0.00905,"67":0.00905,"72":0.00453,"73":0.01358,"74":0.00905,"77":0.03168,"81":0.01358,"82":0.02716,"83":0.4345,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 50 51 52 53 54 55 56 58 60 62 63 64 65 68 69 70 71 75 76 78 79 80 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02263,"13":0.05884,"14":0.19009,"15":0.00905,"16":0.09957,"17":0.0181,"18":0.16746,"84":0.02263,"87":0.00453,"91":0.00453,"92":0.01358,"93":0.00905,"94":0.00453,"95":0.00905,"96":0.05884,"97":0.06789,"98":0.76489,"99":3.2723,_:"79 80 81 83 85 86 88 89 90"},E:{"4":0,"13":0.0181,"14":0.05884,"15":0.04073,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01358,"13.1":0.06336,"14.1":0.18104,"15.1":0.08147,"15.2-15.3":0.08147,"15.4":0.07694},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03349,"6.0-6.1":0,"7.0-7.1":0.2464,"8.1-8.4":0,"9.0-9.2":0.01794,"9.3":0.10645,"10.0-10.2":0.03708,"10.3":0.1555,"11.0-11.2":0.08612,"11.3-11.4":0.02273,"12.0-12.1":0.02751,"12.2-12.5":0.92938,"13.0-13.1":0.02033,"13.2":0.00837,"13.3":0.07057,"13.4-13.7":0.22726,"14.0-14.4":0.71767,"14.5-14.8":1.92456,"15.0-15.1":0.97484,"15.2-15.3":5.51292,"15.4":0.83609},P:{"4":0.75261,"5.0-5.4":0.08093,"6.2-6.4":0.03035,"7.2-7.4":0.1272,"8.2":0.0104,"9.2":0.07082,"10.1":0.02033,"11.1-11.2":0.0848,"12.0":0.0212,"13.0":0.1272,"14.0":0.1272,"15.0":0.0424,"16.0":1.21901},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00542,"4.2-4.3":0.03071,"4.4":0,"4.4.3-4.4.4":0.14451},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02716,"9":0.03621,"10":0.01358,"11":0.09957,_:"6 7 5.5"},J:{"7":0,"10":0.01095},N:{"10":0.0329,_:"11"},L:{"0":40.16054},S:{"2.5":0},R:{_:"0"},M:{"0":0.06569},Q:{"10.4":0},O:{"0":0.05474},H:{"0":0.25912}}; +module.exports={C:{"34":0.00839,"48":0.0042,"51":0.04616,"52":0.04616,"53":0.05035,"54":0.02518,"55":0.04616,"56":0.03357,"57":0.03357,"58":0.01259,"59":0.01259,"68":0.01259,"78":0.02937,"88":0.02098,"91":0.01259,"99":0.29372,"100":0.93571,"101":0.00839,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 97 98 102 103 3.5 3.6"},D:{"38":0.00839,"39":0.01678,"40":0.01259,"41":0.01678,"42":0.01678,"43":0.01259,"44":0.01678,"45":0.02098,"46":0.02098,"47":0.04616,"48":0.01678,"49":0.08392,"50":0.01678,"51":0.01259,"52":0.01259,"53":0.01678,"54":0.01259,"55":0.01678,"56":0.04196,"57":0.01678,"58":0.02098,"59":0.02098,"60":0.02098,"61":0.01678,"62":0.02098,"63":0.02937,"64":0.02098,"65":0.02518,"66":0.03357,"67":0.0042,"68":0.02098,"69":0.0042,"71":0.01678,"72":0.0042,"73":0.00839,"74":0.04196,"75":0.01678,"76":0.05035,"77":0.0042,"78":0.01259,"79":0.20141,"80":0.01678,"81":0.01678,"83":0.07553,"84":0.03776,"85":0.02518,"86":0.06294,"87":0.07553,"88":0.05035,"89":0.03776,"90":0.07972,"91":0.04616,"92":0.04616,"93":0.03776,"94":0.03776,"95":0.04616,"96":0.1091,"97":0.09651,"98":0.2098,"99":0.20141,"100":5.57648,"101":20.84573,"102":1.74134,"103":0.11329,"104":0.01259,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 70"},F:{"28":0.04616,"36":0.0042,"40":0.00839,"46":0.01259,"48":0.01259,"63":0.0042,"67":0.00839,"73":0.0042,"77":0.02098,"79":0.03357,"83":0.0042,"84":0.02098,"85":1.42664,"86":1.70358,"87":0.07553,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 68 69 70 71 72 74 75 76 78 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00839,"13":0.05874,"14":0.13847,"16":0.05035,"17":0.00839,"18":0.07133,"84":0.01259,"89":0.0042,"92":0.00839,"93":0.0042,"95":0.0042,"96":0.03776,"97":0.02098,"98":0.02098,"99":0.03776,"100":0.14686,"101":2.68544,_:"15 79 80 81 83 85 86 87 88 90 91 94"},E:{"4":0,"13":0.01259,"14":0.06294,"15":0.01678,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01259,"13.1":0.06294,"14.1":0.19302,"15.1":0.05874,"15.2-15.3":0.05874,"15.4":0.51191,"15.5":0.07553},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01805,"6.0-6.1":0.00139,"7.0-7.1":0.17221,"8.1-8.4":0,"9.0-9.2":0.0125,"9.3":0.07222,"10.0-10.2":0.02639,"10.3":0.14026,"11.0-11.2":0.06805,"11.3-11.4":0.02361,"12.0-12.1":0.025,"12.2-12.5":0.98463,"13.0-13.1":0.02222,"13.2":0.00972,"13.3":0.07638,"13.4-13.7":0.2472,"14.0-14.4":0.70132,"14.5-14.8":1.6429,"15.0-15.1":0.59578,"15.2-15.3":1.31654,"15.4":7.73261},P:{"4":0.49656,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.1138,"8.2":0.01032,"9.2":0.02069,"10.1":0.01021,"11.1-11.2":0.06207,"12.0":0.01035,"13.0":0.08276,"14.0":0.10345,"15.0":0.04138,"16.0":0.60002},I:{"0":0,"3":0,"4":0.00354,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00532,"4.2-4.3":0.0248,"4.4":0,"4.4.3-4.4.4":0.13465},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01678,"9":0.02098,"10":0.00839,"11":0.05455,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":41.91956},S:{"2.5":0},R:{_:"0"},M:{"0":0.06384},Q:{"10.4":0},O:{"0":0.07545},H:{"0":0.28573}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GF.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GF.js index ff3b60e7322ac5..b0dd3ea894cd4e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GF.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GF.js @@ -1 +1 @@ -module.exports={C:{"49":0.01432,"52":0.00477,"60":0.01432,"68":0.00955,"74":0.00955,"78":0.10025,"80":0.00955,"86":0.01432,"87":0.00955,"88":0.02864,"91":0.16709,"94":0.00955,"95":0.04774,"96":0.07638,"97":1.85709,"98":3.01239,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 75 76 77 79 81 82 83 84 85 89 90 92 93 99 100 3.5 3.6"},D:{"47":0.00477,"49":1.11234,"58":0.09548,"65":0.00955,"67":0.08116,"72":0.00477,"76":0.00955,"79":0.00955,"80":0.00955,"81":0.00477,"87":0.02387,"89":0.0191,"90":0.02864,"91":0.00955,"92":0.0191,"93":0.0191,"94":0.42489,"95":0.02387,"96":0.12412,"97":0.26734,"98":5.18934,"99":16.12657,"100":0.18619,"101":0.00955,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 66 68 69 70 71 73 74 75 77 78 83 84 85 86 88 102 103"},F:{"28":0.01432,"40":0.00955,"83":0.29121,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.07638,"16":0.00477,"17":0.26257,"18":0.06684,"84":0.01432,"90":0.00477,"92":0.00955,"93":0.00477,"95":0.0191,"96":0.02864,"97":0.10503,"98":2.10533,"99":8.95125,_:"13 14 15 79 80 81 83 85 86 87 88 89 91 94"},E:{"4":0,"13":0.10025,"14":0.54901,"15":0.11458,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00955,"10.1":0.06684,"11.1":0.03342,"12.1":0.04297,"13.1":0.20051,"14.1":0.71133,"15.1":0.16232,"15.2-15.3":0.29121,"15.4":0.14322},G:{"8":0.00124,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00866,"6.0-6.1":0,"7.0-7.1":0.00371,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.12005,"10.0-10.2":0,"10.3":0.0099,"11.0-11.2":0.04579,"11.3-11.4":0.00495,"12.0-12.1":0.00866,"12.2-12.5":0.34035,"13.0-13.1":0.01114,"13.2":0.01114,"13.3":0.02228,"13.4-13.7":0.27847,"14.0-14.4":0.50496,"14.5-14.8":1.83791,"15.0-15.1":1.0124,"15.2-15.3":7.31452,"15.4":0.83665},P:{"4":0.05146,"5.0-5.4":0.02114,"6.2-6.4":0.02033,"7.2-7.4":0.20582,"8.2":0.04121,"9.2":0.03172,"10.1":0.02033,"11.1-11.2":0.15437,"12.0":0.02058,"13.0":0.19553,"14.0":0.14408,"15.0":0.08233,"16.0":2.87125},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0209},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08116,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":36.56221},S:{"2.5":0},R:{_:"0"},M:{"0":0.27693},Q:{"10.4":0},O:{"0":0.05748},H:{"0":0.15829}}; +module.exports={C:{"34":0.00377,"52":0.03017,"60":0.00754,"68":0.01508,"76":0.00377,"78":0.03771,"79":0.00377,"83":0.00377,"86":0.01508,"87":0.00754,"88":0.01886,"91":0.23003,"92":0.01508,"94":0.04525,"95":0.06788,"96":0.01131,"97":0.00754,"98":0.04525,"99":0.95406,"100":3.20158,"101":0.00377,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 77 80 81 82 84 85 89 90 93 102 103 3.5 3.6"},D:{"49":0.09428,"63":0.00377,"76":0.00377,"77":0.01886,"79":0.03017,"83":0.00754,"86":0.01131,"87":0.01131,"88":0.00377,"89":0.00754,"90":0.04525,"91":0.01131,"92":0.0264,"93":0.00754,"94":0.0264,"95":0.01131,"96":0.01131,"97":0.04148,"98":0.06788,"99":0.06034,"100":3.50326,"101":13.28146,"102":0.94275,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 78 80 81 84 85 103 104"},F:{"28":0.00377,"36":0.01131,"40":0.10559,"46":0.00377,"80":0.01508,"85":0.26397,"86":0.21872,"87":0.01508,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.09428,"16":0.04902,"17":0.00754,"18":0.01886,"84":0.03394,"85":0.00754,"92":0.01508,"94":0.00377,"96":0.00754,"97":0.00754,"98":0.01886,"99":0.03017,"100":0.48646,"101":7.70415,_:"13 14 15 79 80 81 83 86 87 88 89 90 91 93 95"},E:{"4":0,"12":0.00754,"13":0.16215,"14":0.34693,"15":0.12444,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.03771,"11.1":0.01886,"12.1":0.03394,"13.1":0.2866,"14.1":0.65993,"15.1":0.08673,"15.2-15.3":0.12067,"15.4":1.41413,"15.5":0.09428},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00127,"6.0-6.1":0,"7.0-7.1":0.00254,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.23409,"10.0-10.2":0,"10.3":0.03308,"11.0-11.2":0.00509,"11.3-11.4":0.00763,"12.0-12.1":0.00891,"12.2-12.5":0.18829,"13.0-13.1":0.03689,"13.2":0.00127,"13.3":0.04707,"13.4-13.7":0.18956,"14.0-14.4":0.37149,"14.5-14.8":1.59918,"15.0-15.1":0.42874,"15.2-15.3":0.8931,"15.4":8.67143},P:{"4":0.10208,"5.0-5.4":0.02148,"6.2-6.4":0.03059,"7.2-7.4":0.64308,"8.2":0.01032,"9.2":0.02042,"10.1":0.01021,"11.1-11.2":0.1327,"12.0":0.04083,"13.0":0.96973,"14.0":0.24498,"15.0":0.12249,"16.0":1.34741},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00791,"4.2-4.3":0.00527,"4.4":0,"4.4.3-4.4.4":0.05534},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15084,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":44.44076},S:{"2.5":0.01246},R:{_:"0"},M:{"0":0.34882},Q:{"10.4":0},O:{"0":0.03115},H:{"0":0.15333}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GG.js index cab387c766cce4..0f0e7080f245ed 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GG.js @@ -1 +1 @@ -module.exports={C:{"52":0.09895,"78":0.03646,"87":0.00521,"91":0.01042,"95":0.01042,"97":0.82807,"98":1.0416,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 88 89 90 92 93 94 96 99 100 3.5 3.6"},D:{"38":0.00521,"49":0.00521,"65":0.01562,"67":0.00521,"76":0.20832,"77":0.05729,"79":0.01562,"81":0.01562,"83":0.01042,"84":0.03125,"86":0.01042,"87":0.01042,"88":0.00521,"90":0.01042,"91":0.00521,"92":0.07812,"93":0.33852,"94":0.01042,"95":0.04166,"96":0.21353,"97":0.4531,"98":6.84852,"99":15.6865,"100":0.09374,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 68 69 70 71 72 73 74 75 78 80 85 89 101 102 103"},F:{"82":0.02083,"83":0.12499,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.05208,"91":0.00521,"96":0.04166,"97":0.11458,"98":2.35922,"99":5.68714,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 89 90 92 93 94 95"},E:{"4":0,"13":0.03125,"14":0.62496,"15":0.28644,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.0677,"10.1":0.01562,"11.1":0.20311,"12.1":0.12499,"13.1":0.98431,"14.1":2.68212,"15.1":0.92182,"15.2-15.3":0.7812,"15.4":0.53122},G:{"8":0.03786,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00582,"9.3":1.35409,"10.0-10.2":0.00291,"10.3":0.69597,"11.0-11.2":0.06406,"11.3-11.4":0.00582,"12.0-12.1":0.0233,"12.2-12.5":1.63364,"13.0-13.1":0.00874,"13.2":0,"13.3":0.0233,"13.4-13.7":0.37565,"14.0-14.4":1.39485,"14.5-14.8":4.68252,"15.0-15.1":1.75594,"15.2-15.3":16.44414,"15.4":0.60279},P:{"4":0.10224,"5.0-5.4":0.01055,"6.2-6.4":0.03035,"7.2-7.4":0.27604,"8.2":0.0104,"9.2":0.0409,"10.1":0.02033,"11.1-11.2":0.43962,"12.0":0.0409,"13.0":0.11223,"14.0":0.13468,"15.0":0.01122,"16.0":4.43323},I:{"0":0,"3":0,"4":0.00127,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00353},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.99994,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":13.84238},S:{"2.5":0},R:{_:"0"},M:{"0":0.1821},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{"52":0.03941,"78":0.06896,"91":0.0197,"98":0.00985,"99":0.27586,"100":1.33495,"101":0.00985,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"65":0.0197,"76":0.55171,"77":0.18719,"79":0.00493,"83":0.01478,"84":0.00985,"86":0.05419,"87":0.03448,"90":0.00493,"91":0.01478,"92":0.00985,"93":0.30049,"94":0.01478,"95":0.01478,"96":0.03448,"97":0.18226,"98":0.10345,"99":0.62068,"100":4.82748,"101":16.09817,"102":1.52213,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 78 80 81 85 88 89 103 104"},F:{"85":0.26108,"86":0.15763,"87":0.00493,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.01478,"17":0.00493,"91":0.00985,"95":0.00985,"96":0.12808,"97":0.05419,"98":0.05911,"99":0.09359,"100":0.44827,"101":6.2905,_:"12 13 14 16 18 79 80 81 83 84 85 86 87 88 89 90 92 93 94"},E:{"4":0,"13":0.11822,"14":0.7192,"15":0.08374,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01478,"11.1":0.12808,"12.1":0.08374,"13.1":0.86205,"14.1":2.00488,"15.1":0.12315,"15.2-15.3":0.3596,"15.4":7.69441,"15.5":0.74383},G:{"8":0.03445,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.47295,"10.0-10.2":0,"10.3":0.49174,"11.0-11.2":0.05638,"11.3-11.4":0.02192,"12.0-12.1":0.01566,"12.2-12.5":1.2873,"13.0-13.1":0,"13.2":0.00313,"13.3":0.02192,"13.4-13.7":0.36332,"14.0-14.4":1.0931,"14.5-14.8":3.00369,"15.0-15.1":0.77676,"15.2-15.3":1.85421,"15.4":21.81511},P:{"4":0.08215,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.18484,"8.2":0.01032,"9.2":0.02054,"10.1":0.01021,"11.1-11.2":0.03259,"12.0":0.03081,"13.0":0.05432,"14.0":0.06519,"15.0":0.07188,"16.0":1.32551},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.87683,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":14.47306},S:{"2.5":0},R:{_:"0"},M:{"0":0.21818},Q:{"10.4":0},O:{"0":0},H:{"0":0.0048}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GH.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GH.js index 3d9ddd376725e5..924f882fffb387 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GH.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GH.js @@ -1 +1 @@ -module.exports={C:{"30":0.00469,"40":0.00469,"42":0.00234,"43":0.00938,"44":0.00234,"45":0.00234,"47":0.01172,"48":0.00938,"49":0.00469,"50":0.00234,"52":0.00938,"56":0.00234,"57":0.00234,"64":0.00703,"66":0.00469,"67":0.00234,"68":0.00234,"69":0.00234,"72":0.00938,"74":0.00234,"77":0.00234,"78":0.0211,"80":0.00469,"82":0.00234,"84":0.00938,"85":0.00703,"86":0.00703,"87":0.01406,"88":0.01172,"89":0.00703,"90":0.00469,"91":0.0211,"92":0.00469,"93":0.00703,"94":0.01172,"95":0.0211,"96":0.03047,"97":0.67742,"98":1.12278,"99":0.08438,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 41 46 51 53 54 55 58 59 60 61 62 63 65 70 71 73 75 76 79 81 83 100 3.5 3.6"},D:{"38":0.00234,"39":0.00469,"43":0.00469,"49":0.01406,"50":0.01172,"55":0.00469,"56":0.00234,"57":0.00234,"58":0.00469,"60":0.00469,"63":0.00469,"64":0.00234,"65":0.00938,"67":0.00703,"68":0.01875,"69":0.00703,"70":0.00703,"71":0.00234,"72":0.01172,"73":0.00234,"74":0.01172,"75":0.00938,"76":0.00938,"77":0.04454,"78":0.01641,"79":0.03282,"80":0.03516,"81":0.0211,"83":0.01875,"84":0.01172,"85":0.01641,"86":0.03516,"87":0.04454,"88":0.04219,"89":0.02578,"90":0.01875,"91":0.04454,"92":0.04219,"93":0.0375,"94":0.04219,"95":0.04922,"96":0.16642,"97":0.21799,"98":2.73076,"99":8.84157,"100":0.04688,"101":0.02813,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 41 42 44 45 46 47 48 51 52 53 54 59 61 62 66 102 103"},F:{"36":0.00234,"42":0.00469,"53":0.00469,"67":0.01172,"69":0.00469,"73":0.00234,"79":0.01172,"80":0.00703,"82":0.0211,"83":0.06798,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 68 70 71 72 74 75 76 77 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03282,"13":0.01172,"14":0.01406,"15":0.01406,"16":0.01641,"17":0.02344,"18":0.09376,"80":0.00234,"83":0.00234,"84":0.03282,"85":0.01641,"88":0.00234,"89":0.0586,"90":0.02578,"91":0.00469,"92":0.04688,"93":0.00703,"94":0.00703,"95":0.01172,"96":0.04454,"97":0.05626,"98":0.55318,"99":1.67127,_:"79 81 86 87"},E:{"4":0,"11":0.00234,"12":0.00234,"13":0.02578,"14":0.03985,"15":0.04454,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.00234,"10.1":0.00469,"11.1":0.01172,"12.1":0.02344,"13.1":0.0797,"14.1":0.11954,"15.1":0.06329,"15.2-15.3":0.0961,"15.4":0.04688},G:{"8":0.0072,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00432,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01151,"8.1-8.4":0,"9.0-9.2":0.00288,"9.3":0.03022,"10.0-10.2":0.00288,"10.3":0.10074,"11.0-11.2":0.4188,"11.3-11.4":0.03454,"12.0-12.1":0.04318,"12.2-12.5":1.47948,"13.0-13.1":0.05181,"13.2":0.0403,"13.3":0.18134,"13.4-13.7":0.36267,"14.0-14.4":1.96017,"14.5-14.8":2.57901,"15.0-15.1":2.22641,"15.2-15.3":4.29308,"15.4":0.55696},P:{"4":0.12656,"5.0-5.4":0.01055,"6.2-6.4":0.03035,"7.2-7.4":0.11601,"8.2":0.0104,"9.2":0.04219,"10.1":0.02033,"11.1-11.2":0.10546,"12.0":0.02109,"13.0":0.06328,"14.0":0.17929,"15.0":0.11601,"16.0":0.89645},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00163,"4.2-4.3":0.00489,"4.4":0,"4.4.3-4.4.4":0.03943},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00703,"11":0.06563,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.02297},N:{"10":0.0329,_:"11"},L:{"0":46.50458},S:{"2.5":0},R:{_:"0"},M:{"0":0.32159},Q:{"10.4":0.00766},O:{"0":2.0827},H:{"0":12.89624}}; +module.exports={C:{"30":0.00244,"41":0.00244,"42":0.00244,"43":0.00489,"47":0.00977,"48":0.00733,"52":0.00977,"56":0.00244,"66":0.02687,"72":0.00977,"74":0.00244,"77":0.00489,"78":0.01466,"81":0.01954,"82":0.00489,"83":0.00489,"84":0.00977,"86":0.00489,"87":0.00489,"88":0.0171,"89":0.00977,"91":0.0171,"92":0.00244,"93":0.00244,"94":0.00733,"95":0.01466,"96":0.00489,"97":0.01222,"98":0.02199,"99":0.36645,"100":1.39251,"101":0.09528,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 44 45 46 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 75 76 79 80 85 90 102 103 3.5 3.6"},D:{"37":0.00244,"38":0.00244,"47":0.00244,"49":0.01466,"50":0.00489,"55":0.00977,"56":0.00244,"57":0.00244,"58":0.00244,"60":0.00489,"63":0.00489,"64":0.00489,"65":0.00733,"66":0.00244,"67":0.00733,"68":0.0171,"69":0.00733,"70":0.00489,"71":0.00244,"72":0.00733,"73":0.00733,"74":0.0171,"75":0.01222,"76":0.0171,"77":0.04642,"78":0.0171,"79":0.03176,"80":0.02199,"81":0.01466,"83":0.02199,"84":0.0171,"85":0.02443,"86":0.03909,"87":0.04642,"88":0.02199,"89":0.02932,"90":0.01466,"91":0.0342,"92":0.03176,"93":0.03665,"94":0.02443,"95":0.0342,"96":0.08551,"97":0.05375,"98":0.10749,"99":0.18567,"100":2.33062,"101":8.5505,"102":0.77443,"103":0.02932,"104":0.00244,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39 40 41 42 43 44 45 46 48 51 52 53 54 59 61 62"},F:{"12":0.00244,"42":0.00489,"48":0.00244,"69":0.00489,"73":0.00244,"79":0.01222,"80":0.00244,"81":0.00489,"82":0.01222,"83":0.00977,"84":0.01222,"85":0.4031,"86":0.57411,"87":0.05863,_:"9 11 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 74 75 76 77 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02932,"13":0.01222,"14":0.00733,"15":0.01222,"16":0.0171,"17":0.01466,"18":0.07573,"84":0.02443,"85":0.02199,"86":0.00244,"89":0.04886,"90":0.02199,"91":0.00244,"92":0.04642,"94":0.00244,"95":0.00489,"96":0.01954,"97":0.01466,"98":0.02687,"99":0.04397,"100":0.2101,"101":2.03991,_:"79 80 81 83 87 88 93"},E:{"4":0,"11":0.00244,"12":0.00244,"13":0.01954,"14":0.0513,"15":0.02199,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.00244,"9.1":0.00489,"10.1":0.01466,"11.1":0.0171,"12.1":0.00733,"13.1":0.06596,"14.1":0.10016,"15.1":0.03665,"15.2-15.3":0.03176,"15.4":0.27117,"15.5":0.05375},G:{"8":0.00298,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01339,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02678,"10.0-10.2":0,"10.3":0.09819,"11.0-11.2":0.15324,"11.3-11.4":0.02827,"12.0-12.1":0.05951,"12.2-12.5":1.30031,"13.0-13.1":0.061,"13.2":0.03719,"13.3":0.13836,"13.4-13.7":0.30202,"14.0-14.4":1.82846,"14.5-14.8":2.21528,"15.0-15.1":1.88053,"15.2-15.3":2.16767,"15.4":4.55702},P:{"4":0.12559,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.12559,"8.2":0.01032,"9.2":0.05233,"10.1":0.01021,"11.1-11.2":0.08373,"12.0":0.01047,"13.0":0.05233,"14.0":0.11512,"15.0":0.09419,"16.0":0.55469},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00098,"4.2-4.3":0.00314,"4.4":0,"4.4.3-4.4.4":0.0261},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00489,"9":0.00244,"10":0.00489,"11":0.04397,_:"6 7 5.5"},J:{"7":0,"10":0.02267},N:{"10":0.01411,_:"11"},L:{"0":46.78719},S:{"2.5":0},R:{_:"0"},M:{"0":0.51381},Q:{"10.4":0.00756},O:{"0":2.0779},H:{"0":13.12673}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GI.js index cf0cdac1b6ab7c..7d239330b9c963 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GI.js @@ -1 +1 @@ -module.exports={C:{"78":0.0487,"89":0.01461,"90":0.0487,"91":0.01948,"94":0.01461,"95":0.04383,"96":0.00974,"97":0.32142,"98":0.70615,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 92 93 99 100 3.5 3.6"},D:{"60":0.01461,"67":0.02435,"74":0.00487,"79":0.01948,"80":0.03409,"81":0.02922,"83":0.01948,"84":0.01461,"86":0.0487,"87":0.01948,"88":0.00487,"89":0.08279,"90":0.02435,"91":0.02435,"92":0.08766,"93":0.50161,"94":0.05357,"95":0.12175,"96":0.05844,"97":0.2435,"98":7.9868,"99":21.8176,"100":0.13636,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 68 69 70 71 72 73 75 76 77 78 85 101 102 103"},F:{"36":0.01948,"83":0.08766,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00974,"18":0.02435,"92":0.01461,"95":0.11201,"96":0.00974,"97":0.02435,"98":1.08114,"99":4.80669,_:"13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94"},E:{"4":0,"12":0.00487,"13":0.17532,"14":0.45291,"15":0.33603,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02435,"11.1":0.00974,"12.1":0.07792,"13.1":0.20454,"14.1":1.47561,"15.1":0.2922,"15.2-15.3":0.82303,"15.4":0.18506},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.02243,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.01309,"9.3":0.11217,"10.0-10.2":0.00187,"10.3":0.13647,"11.0-11.2":0.01309,"11.3-11.4":0.00374,"12.0-12.1":0.129,"12.2-12.5":0.5945,"13.0-13.1":0.00561,"13.2":0,"13.3":0.01496,"13.4-13.7":0.1533,"14.0-14.4":0.50477,"14.5-14.8":3.36511,"15.0-15.1":1.7536,"15.2-15.3":10.90857,"15.4":0.94971},P:{"4":0.39922,"5.0-5.4":0.01055,"6.2-6.4":0.03035,"7.2-7.4":0.11601,"8.2":0.0104,"9.2":0.04219,"10.1":0.02033,"11.1-11.2":0.01051,"12.0":0.02109,"13.0":0.06328,"14.0":0.1891,"15.0":0.01051,"16.0":3.81359},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00274,"4.4":0,"4.4.3-4.4.4":0.00753},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15097,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":23.37576},S:{"2.5":0},R:{_:"0"},M:{"0":5.16179},Q:{"10.4":0},O:{"0":0.03592},H:{"0":1.0104}}; +module.exports={C:{"52":0.01039,"78":0.02599,"83":0.0052,"88":0.01039,"91":0.01559,"98":0.01039,"99":0.07276,"100":1.2161,"101":0.0052,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 89 90 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"38":0.0052,"60":0.04677,"63":0.0052,"76":0.01039,"79":0.0052,"80":0.09874,"81":0.10914,"83":0.02599,"84":0.93546,"86":0.0052,"87":0.76916,"89":0.03118,"90":0.06756,"91":0.02079,"92":0.01559,"94":0.0052,"96":0.03638,"97":0.06756,"98":0.08835,"99":0.66522,"100":5.3789,"101":19.54072,"102":2.09959,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 64 65 66 67 68 69 70 71 72 73 74 75 77 78 85 88 93 95 103 104"},F:{"36":0.01559,"85":0.15591,"86":0.13512,"87":0.02599,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.01039,"18":0.0052,"92":0.01039,"97":0.0052,"99":0.08315,"100":0.24946,"101":7.76952,_:"12 13 14 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 98"},E:{"4":0,"11":0.05717,"12":0.0052,"13":0.07276,"14":0.30143,"15":0.06756,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01039,"11.1":0.01559,"12.1":0.03638,"13.1":0.53009,"14.1":0.71719,"15.1":0.25465,"15.2-15.3":0.48852,"15.4":7.17706,"15.5":0.23906},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.04788,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00456,"9.3":0.02508,"10.0-10.2":0,"10.3":0.1368,"11.0-11.2":0.00456,"11.3-11.4":0.01824,"12.0-12.1":0.07752,"12.2-12.5":0.62698,"13.0-13.1":0.00684,"13.2":0,"13.3":0.03192,"13.4-13.7":0.36251,"14.0-14.4":0.41039,"14.5-14.8":2.52161,"15.0-15.1":0.61786,"15.2-15.3":1.77835,"15.4":16.11914},P:{"4":0.14732,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.12559,"8.2":0.01032,"9.2":0.05233,"10.1":0.01021,"11.1-11.2":0.04209,"12.0":0.03157,"13.0":0.05233,"14.0":0.37884,"15.0":0.01052,"16.0":1.6311},I:{"0":0,"3":0,"4":0.00126,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00076,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00278},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.13512,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":19.99677},S:{"2.5":0},R:{_:"0"},M:{"0":0.26417},Q:{"10.4":0},O:{"0":0.05764},H:{"0":0.69117}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GL.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GL.js index f7c190de2bdb94..8b9ea41ede3d72 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GL.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GL.js @@ -1 +1 @@ -module.exports={C:{"56":0.00961,"78":0.01442,"88":0.06247,"91":0.02403,"95":0.00481,"96":0.02883,"97":1.61929,"98":1.47994,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 99 100 3.5 3.6"},D:{"38":0.01922,"49":0.06727,"72":0.01442,"73":0.01442,"76":0.00481,"79":0.00961,"80":0.08649,"85":0.01442,"87":0.02403,"88":0.02883,"89":0.10091,"90":0.00961,"91":0.02883,"92":0.01442,"93":0.00481,"94":0.23064,"95":0.04325,"96":0.07688,"97":0.43245,"98":5.84769,"99":15.35678,"100":0.0961,"101":0.00481,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 75 77 78 81 83 84 86 102 103"},F:{"36":0.01922,"40":0.00961,"46":0.02883,"48":0.00961,"80":0.00961,"83":0.10571,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00481,"14":0.01922,"15":0.01442,"18":0.04325,"84":0.00961,"85":0.01442,"92":0.00961,"96":0.00961,"97":0.00961,"98":1.18684,"99":3.69505,_:"13 16 17 79 80 81 83 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.46609,"14":0.30752,"15":0.12013,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01442,"12.1":0.05766,"13.1":0.34116,"14.1":3.86322,"15.1":1.03788,"15.2-15.3":0.8601,"15.4":0.21142},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.02116,"9.3":0.03326,"10.0-10.2":0,"10.3":0.06046,"11.0-11.2":0.00605,"11.3-11.4":0,"12.0-12.1":0.01512,"12.2-12.5":0.45953,"13.0-13.1":0.01512,"13.2":0,"13.3":0.00907,"13.4-13.7":0.04232,"14.0-14.4":0.20558,"14.5-14.8":1.09742,"15.0-15.1":1.70811,"15.2-15.3":25.44328,"15.4":1.10347},P:{"4":0.14518,"5.0-5.4":0.01055,"6.2-6.4":0.03035,"7.2-7.4":0.03111,"8.2":0.0104,"9.2":0.04219,"10.1":0.02033,"11.1-11.2":0.07259,"12.0":0.02109,"13.0":0.03111,"14.0":0.06222,"15.0":0.01051,"16.0":2.13627},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.39882,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":14.41211},S:{"2.5":0},R:{_:"0"},M:{"0":0.1351},Q:{"10.4":0},O:{"0":0.04676},H:{"0":5.33245}}; +module.exports={C:{"71":0.02705,"78":0.03607,"81":0.03156,"86":0.00451,"88":0.00902,"91":0.05411,"94":0.00451,"98":0.03156,"99":0.3517,"100":2.08316,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 79 80 82 83 84 85 87 89 90 92 93 95 96 97 101 102 103 3.5 3.6"},D:{"62":0.00902,"65":0.05411,"73":0.00902,"79":0.00902,"80":0.01804,"81":0.00451,"83":0.09469,"87":0.08116,"88":0.03156,"89":0.00451,"90":0.00902,"92":0.00451,"93":0.0496,"94":0.05411,"97":0.02705,"98":0.42385,"99":0.96493,"100":2.29508,"101":14.05455,"102":1.28056,"103":0.00902,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 66 67 68 69 70 71 72 74 75 76 77 78 84 85 86 91 95 96 104"},F:{"80":0.00902,"85":1.02805,"86":1.01903,"87":0.0496,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.04509,"84":0.03156,"85":0.01353,"90":0.00451,"95":0.00902,"96":0.04509,"97":0.00902,"99":0.07214,"100":0.47795,"101":6.55158,_:"12 13 14 15 16 17 79 80 81 83 86 87 88 89 91 92 93 94 98"},E:{"4":0,"8":0.00902,"12":0.00451,"13":0.16683,"14":0.39679,"15":0.05862,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01804,"11.1":0.00451,"12.1":0.00902,"13.1":0.31112,"14.1":3.21943,"15.1":0.82515,"15.2-15.3":0.22545,"15.4":5.44236,"15.5":0.48246},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.06164,"8.1-8.4":0.02712,"9.0-9.2":0.03452,"9.3":0.02712,"10.0-10.2":0,"10.3":0.03452,"11.0-11.2":0,"11.3-11.4":0.00986,"12.0-12.1":0,"12.2-12.5":0.32302,"13.0-13.1":0.00493,"13.2":0.01233,"13.3":0.01479,"13.4-13.7":0.01233,"14.0-14.4":0.36247,"14.5-14.8":1.23043,"15.0-15.1":0.64604,"15.2-15.3":2.61128,"15.4":19.23567},P:{"4":0.05255,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.02102,"8.2":0.01032,"9.2":0.05233,"10.1":0.01021,"11.1-11.2":0.03287,"12.0":0.23123,"13.0":0.03153,"14.0":0.47296,"15.0":0.01051,"16.0":1.08256},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01648},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00451,"11":0.41032,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":24.00314},S:{"2.5":0},R:{_:"0"},M:{"0":0.52723},Q:{"10.4":0},O:{"0":0.06041},H:{"0":2.06939}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GM.js index 8cb6187500a8d8..f42d07f5cba3f4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GM.js @@ -1 +1 @@ -module.exports={C:{"34":0.00355,"43":0.0142,"44":0.00178,"50":0.00355,"52":0.0071,"54":0.00178,"56":0.00178,"65":0.00355,"72":0.0071,"78":0.00533,"85":0.00355,"92":0.00178,"93":0.00355,"95":0.00178,"96":0.01065,"97":0.47038,"98":0.75793,"99":0.12603,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 45 46 47 48 49 51 53 55 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 86 87 88 89 90 91 94 100 3.5 3.6"},D:{"33":0.0142,"34":0.00178,"39":0.00355,"43":0.00355,"49":0.02485,"51":0.00178,"56":0.00178,"57":0.00355,"58":0.03728,"60":0.01065,"64":0.00355,"65":0.03905,"69":0.00355,"71":0.00178,"72":0.00355,"73":0.00355,"74":0.00355,"75":0.02663,"76":0.0071,"79":0.09585,"80":0.00533,"81":0.00533,"83":0.00178,"84":0.00533,"85":0.00355,"86":0.00355,"87":0.06568,"88":0.0071,"89":0.00178,"90":0.01598,"91":0.01243,"92":0.00355,"93":0.53783,"94":0.00355,"95":0.0142,"96":0.03018,"97":0.0781,"98":1.03483,"99":4.1038,"100":0.0568,"101":0.00888,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 36 37 38 40 41 42 44 45 46 47 48 50 52 53 54 55 59 61 62 63 66 67 68 70 77 78 102 103"},F:{"82":0.0071,"83":0.00355,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0142,"13":0.00178,"14":0.00888,"15":0.00533,"16":0.03195,"17":0.00178,"18":2.77965,"84":0.00533,"85":0.00533,"88":0.00355,"89":0.00533,"92":0.01065,"93":0.00178,"94":0.01243,"95":0.00355,"96":0.01065,"97":0.01775,"98":0.28223,"99":1.065,_:"79 80 81 83 86 87 90 91"},E:{"4":0,"8":0.00178,"11":0.00355,"13":0.00178,"14":0.03373,"15":0.00355,_:"0 5 6 7 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1 12.1","10.1":0.00888,"11.1":0.00533,"13.1":0.03195,"14.1":0.04438,"15.1":0.05148,"15.2-15.3":0.01598,"15.4":0.0071},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00302,"6.0-6.1":0,"7.0-7.1":0.00905,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07694,"10.0-10.2":0.00754,"10.3":0.08599,"11.0-11.2":0.0528,"11.3-11.4":0.0875,"12.0-12.1":0.10259,"12.2-12.5":4.83361,"13.0-13.1":0.05884,"13.2":0.02263,"13.3":0.27457,"13.4-13.7":0.45711,"14.0-14.4":2.70797,"14.5-14.8":2.18598,"15.0-15.1":0.89159,"15.2-15.3":2.82564,"15.4":0.40129},P:{"4":0.65757,"5.0-5.4":0.08093,"6.2-6.4":0.03035,"7.2-7.4":0.53617,"8.2":0.0104,"9.2":0.07082,"10.1":0.02033,"11.1-11.2":0.11128,"12.0":0.05058,"13.0":0.31361,"14.0":0.13151,"15.0":0.05058,"16.0":0.87002},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00141,"4.2-4.3":0.01556,"4.4":0,"4.4.3-4.4.4":0.04883},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00178,"11":0.04438,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.12338},N:{"10":0.0329,_:"11"},L:{"0":62.94808},S:{"2.5":0},R:{_:"0"},M:{"0":0.0329},Q:{"10.4":0},O:{"0":0.54285},H:{"0":4.36845}}; +module.exports={C:{"34":0.00817,"40":0.00204,"43":0.00613,"44":0.00409,"47":0.00409,"50":0.00409,"51":0.00409,"52":0.00817,"53":0.00409,"54":0.00613,"55":0.00613,"56":0.00817,"57":0.00409,"58":0.00613,"59":0.00204,"62":0.00409,"65":0.00409,"68":0.00409,"72":0.00409,"75":0.00204,"78":0.00409,"83":0.00204,"88":0.00817,"89":0.00204,"90":0.01022,"91":0.00817,"97":0.00409,"98":0.00409,"99":0.24107,"100":0.87645,"101":0.10011,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 41 42 45 46 48 49 60 61 63 64 66 67 69 70 71 73 74 76 77 79 80 81 82 84 85 86 87 92 93 94 95 96 102 103 3.5 3.6"},D:{"11":0.00613,"18":0.00204,"26":0.00204,"39":0.00204,"41":0.00204,"42":0.00613,"43":0.00409,"44":0.00204,"45":0.01022,"46":0.02043,"47":0.00409,"48":0.00204,"51":0.00409,"52":0.00409,"53":0.00817,"54":0.00204,"56":0.0286,"57":0.00204,"58":0.04495,"60":0.00409,"61":0.00204,"62":0.00204,"63":0.00204,"64":0.00409,"65":0.02452,"66":0.00817,"67":0.00817,"69":0.00409,"71":0.02043,"72":0.00204,"74":0.00204,"75":0.00613,"76":0.00817,"77":0.00204,"79":0.01226,"80":0.0143,"81":0.01226,"83":0.00204,"84":0.00613,"85":0.0429,"86":0.00204,"87":0.10011,"88":0.0143,"89":0.01634,"90":0.00613,"91":0.01226,"92":0.01634,"93":0.01226,"94":0.01022,"95":0.00409,"96":0.02043,"97":0.02043,"98":0.01839,"99":0.06742,"100":0.89688,"101":4.77858,"102":0.38613,"103":0.01226,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 40 49 50 55 59 68 70 73 78 104"},F:{"42":0.00204,"79":0.00817,"83":0.00204,"85":0.14097,"86":0.2329,"87":0.00409,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01226,"13":0.00613,"15":0.00409,"16":0.00817,"17":0.0143,"18":5.55287,"80":0.00409,"83":0.00613,"84":0.00409,"90":0.00817,"91":0.00204,"92":0.01839,"94":0.00204,"96":0.00613,"98":0.00409,"99":0.02452,"100":0.13075,"101":1.33204,_:"14 79 81 85 86 87 88 89 93 95 97"},E:{"4":0,"11":0.00204,"13":0.00409,"14":0.03473,_:"0 5 6 7 8 9 10 12 15 3.1 3.2 5.1 6.1 7.1","9.1":0.00613,"10.1":0.00817,"11.1":0.00204,"12.1":0.00817,"13.1":0.01839,"14.1":0.08172,"15.1":0.03473,"15.2-15.3":0.00817,"15.4":0.34118,"15.5":0.07559},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00317,"5.0-5.1":0.04274,"6.0-6.1":0,"7.0-7.1":0.16938,"8.1-8.4":0.00158,"9.0-9.2":0,"9.3":0.07757,"10.0-10.2":0.00475,"10.3":0.65693,"11.0-11.2":0.02216,"11.3-11.4":0.06332,"12.0-12.1":0.13297,"12.2-12.5":2.65621,"13.0-13.1":0.05699,"13.2":0.03483,"13.3":0.94661,"13.4-13.7":0.39099,"14.0-14.4":2.20823,"14.5-14.8":2.00244,"15.0-15.1":1.82515,"15.2-15.3":1.22679,"15.4":3.29572},P:{"4":0.68396,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.34709,"8.2":0.01032,"9.2":0.03063,"10.1":0.01021,"11.1-11.2":0.05104,"12.0":0.01021,"13.0":0.08167,"14.0":0.25521,"15.0":0.04083,"16.0":0.62271},I:{"0":0,"3":0,"4":0.00006,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00019,"4.2-4.3":0.00894,"4.4":0,"4.4.3-4.4.4":0.03058},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00409,"11":0.01634,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.07957},N:{"10":0.01411,_:"11"},L:{"0":60.42414},S:{"2.5":0},R:{_:"0"},M:{"0":0.03183},Q:{"10.4":0},O:{"0":0.67635},H:{"0":2.15449}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GN.js index 4a4eecce5b0cd0..c892c265e0323f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GN.js @@ -1 +1 @@ -module.exports={C:{"37":0.0017,"42":0.00085,"50":0.00341,"56":0.0017,"59":0.00085,"60":0.0017,"72":0.01108,"78":0.00085,"79":0.00085,"84":0.00085,"87":0.00256,"88":0.00085,"91":0.01704,"92":0.1048,"95":0.03493,"96":0.00682,"97":0.20618,"98":0.3817,"99":0.00256,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 46 47 48 49 51 52 53 54 55 57 58 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 80 81 82 83 85 86 89 90 93 94 100 3.5 3.6"},D:{"28":0.00085,"33":0.0017,"34":0.00085,"37":0.00341,"38":0.00085,"40":0.00256,"43":0.00426,"46":0.00085,"48":0.00341,"49":0.00085,"53":0.00341,"56":0.00426,"57":0.00256,"58":0.00341,"60":0.00426,"63":0.023,"64":0.0017,"65":0.00596,"66":0.00256,"69":0.0017,"70":0.00426,"71":0.0017,"72":0.00341,"74":0.0017,"75":0.00256,"76":0.01193,"77":0.02897,"78":0.0017,"79":0.0017,"81":0.00341,"83":0.00511,"84":0.00596,"86":0.00511,"87":0.01278,"88":0.00085,"89":0.0017,"90":0.00426,"91":0.00596,"92":0.00937,"93":0.13121,"94":0.00937,"95":0.00511,"96":0.0426,"97":0.06134,"98":0.45752,"99":1.56342,"100":0.01534,"101":0.0017,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 35 36 39 41 42 44 45 47 50 51 52 54 55 59 61 62 67 68 73 80 85 102 103"},F:{"37":0.00085,"42":0.00085,"48":0.0017,"53":0.0017,"73":0.0017,"79":0.00085,"82":0.00085,"83":0.00596,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 46 47 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01534,"13":0.00085,"14":0.0017,"15":0.0017,"16":0.00256,"17":0.00426,"18":0.04516,"84":0.00767,"85":0.00767,"89":0.00682,"90":0.0017,"91":0.0017,"92":0.03834,"93":0.0017,"94":0.00256,"95":0.0017,"96":0.00682,"97":0.00767,"98":0.12354,"99":0.34932,_:"79 80 81 83 86 87 88"},E:{"4":0,"12":0.00511,"13":0.0017,"14":0.03834,"15":0.00937,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00682,"11.1":0.00085,"12.1":0.0196,"13.1":0.00426,"14.1":0.01108,"15.1":0.01448,"15.2-15.3":0.00341,"15.4":0.01619},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.18327,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01515,"10.0-10.2":0.02272,"10.3":0.06664,"11.0-11.2":0.18478,"11.3-11.4":0.78456,"12.0-12.1":0.42257,"12.2-12.5":7.58512,"13.0-13.1":0.40591,"13.2":0.08482,"13.3":0.35896,"13.4-13.7":0.23173,"14.0-14.4":1.42524,"14.5-14.8":0.99055,"15.0-15.1":0.97086,"15.2-15.3":1.29044,"15.4":0.11662},P:{"4":0.87502,"5.0-5.4":0.04023,"6.2-6.4":0.04023,"7.2-7.4":0.51295,"8.2":0.0104,"9.2":0.22127,"10.1":0.02033,"11.1-11.2":0.20115,"12.0":0.01006,"13.0":0.22127,"14.0":0.57329,"15.0":0.2615,"16.0":0.68393},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00157,"4.2-4.3":0.00764,"4.4":0,"4.4.3-4.4.4":0.09142},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02556,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":68.97363},S:{"2.5":0.04574},R:{_:"0"},M:{"0":0.0183},Q:{"10.4":0.0183},O:{"0":0.16466},H:{"0":7.00653}}; +module.exports={C:{"27":0.00084,"37":0.00253,"47":0.00253,"49":0.00253,"54":0.00169,"56":0.00169,"67":0.00169,"69":0.0118,"79":0.00169,"91":0.00422,"92":0.02445,"93":0.00169,"95":0.03119,"96":0.00169,"97":0.00337,"98":0.00759,"99":0.05058,"100":0.24278,"101":0.00337,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 48 50 51 52 53 55 57 58 59 60 61 62 63 64 65 66 68 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 89 90 94 102 103 3.5 3.6"},D:{"19":0.00253,"28":0.00253,"29":0.00253,"33":0.00253,"36":0.00169,"38":0.00253,"42":0.00169,"43":0.00169,"49":0.00084,"54":0.00253,"55":0.00759,"57":0.00169,"58":0.00084,"60":0.00253,"63":0.00169,"64":0.00422,"67":0.00084,"68":0.00337,"69":0.00337,"70":0.00337,"72":0.00422,"73":0.00169,"74":0.00169,"75":0.01602,"76":0.00506,"77":0.00084,"78":0.00169,"79":0.0059,"80":0.00169,"81":0.00337,"83":0.00253,"84":0.00169,"86":0.01602,"87":0.00759,"88":0.00253,"89":0.00506,"90":0.00253,"91":0.00337,"92":0.00337,"93":0.05227,"94":0.0059,"95":0.00253,"96":0.02276,"97":0.01349,"98":0.01349,"99":0.04805,"100":0.42487,"101":1.82762,"102":0.14331,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 30 31 32 34 35 37 39 40 41 44 45 46 47 48 50 51 52 53 56 59 61 62 65 66 71 85 103 104"},F:{"22":0.00169,"48":0.00084,"73":0.00337,"77":0.00169,"79":0.00084,"84":0.00169,"85":0.02276,"86":0.05395,"87":0.00169,_:"9 11 12 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03372,"13":0.00169,"15":0.00084,"16":0.00084,"17":0.00422,"18":0.01939,"84":0.00422,"85":0.00674,"87":0.00253,"89":0.00759,"90":0.00422,"91":0.00084,"92":0.01939,"93":0.00169,"94":0.00169,"95":0.00253,"96":0.00337,"97":0.01012,"98":0.00337,"99":0.01012,"100":0.02698,"101":0.42824,_:"14 79 80 81 83 86 88"},E:{"4":0,"12":0.00169,"13":0.00506,"14":0.03035,"15":0.00674,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 12.1","10.1":0.02698,"11.1":0.00169,"13.1":0.00422,"14.1":0.02108,"15.1":0.00843,"15.2-15.3":0.00253,"15.4":0.03878,"15.5":0.00674},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00271,"6.0-6.1":0.00271,"7.0-7.1":0.09636,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.23072,"10.0-10.2":0.019,"10.3":0.37323,"11.0-11.2":0.14386,"11.3-11.4":0.23615,"12.0-12.1":0.67724,"12.2-12.5":4.29826,"13.0-13.1":0.36509,"13.2":0.06515,"13.3":0.22937,"13.4-13.7":0.3963,"14.0-14.4":1.50785,"14.5-14.8":1.10612,"15.0-15.1":1.01383,"15.2-15.3":1.32734,"15.4":1.47935},P:{"4":0.74104,"5.0-5.4":0.13197,"6.2-6.4":0.06091,"7.2-7.4":0.34514,"8.2":0.01032,"9.2":0.16242,"10.1":0.01021,"11.1-11.2":0.15227,"12.0":0.05076,"13.0":0.09136,"14.0":0.36544,"15.0":0.11166,"16.0":1.10648},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00023,"4.2-4.3":0.00046,"4.4":0,"4.4.3-4.4.4":0.02678},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01939,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":68.1849},S:{"2.5":0.0641},R:{_:"0"},M:{"0":0.02747},Q:{"10.4":0.03663},O:{"0":0.23808},H:{"0":9.62287}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GP.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GP.js index 3c94873b4786c6..c82347ed288c14 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GP.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GP.js @@ -1 +1 @@ -module.exports={C:{"38":0.01271,"48":0.00424,"50":0.00847,"52":0.00424,"56":0.00847,"60":0.00847,"70":0.00847,"78":0.0339,"84":0.01695,"89":0.00847,"91":0.1144,"92":0.00847,"95":0.00847,"96":0.04237,"97":1.08891,"98":2.40238,"99":0.00424,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 49 51 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 90 93 94 100 3.5 3.6"},D:{"49":0.03813,"52":0.00847,"55":0.00424,"58":0.00847,"63":0.00847,"74":0.00847,"77":0.00847,"78":0.00424,"79":0.02542,"80":0.00424,"83":0.06356,"84":0.18643,"85":0.02119,"86":0.01271,"87":0.02119,"89":0.02966,"90":0.00847,"91":0.01695,"92":0.02119,"93":0.01695,"94":0.0339,"95":0.01695,"96":0.24998,"97":0.47878,"98":4.809,"99":16.66836,"100":0.19067,"101":0.00847,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 56 57 59 60 61 62 64 65 66 67 68 69 70 71 72 73 75 76 81 88 102 103"},F:{"82":0.01695,"83":0.18643,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00424,"16":0.00847,"17":0.00847,"18":0.02542,"84":0.00424,"89":0.01695,"90":0.00847,"91":0.00847,"92":0.01271,"93":0.00847,"94":0.01271,"95":0.02119,"96":0.06356,"97":0.20761,"98":1.21602,"99":5.24117,_:"12 13 14 79 80 81 83 85 86 87 88"},E:{"4":0,"11":0.00424,"12":0.05084,"13":0.05932,"14":0.52963,"15":0.16524,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01271,"11.1":0.04237,"12.1":0.14406,"13.1":0.56352,"14.1":1.03383,"15.1":0.51268,"15.2-15.3":0.43217,"15.4":0.48726},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01172,"6.0-6.1":0.02847,"7.0-7.1":0,"8.1-8.4":0.0067,"9.0-9.2":0.00335,"9.3":0.0603,"10.0-10.2":0.00167,"10.3":0.05527,"11.0-11.2":0.067,"11.3-11.4":0.01005,"12.0-12.1":0.02345,"12.2-12.5":0.68168,"13.0-13.1":0.0536,"13.2":0.0134,"13.3":0.04187,"13.4-13.7":0.25961,"14.0-14.4":0.92119,"14.5-14.8":2.48387,"15.0-15.1":1.28129,"15.2-15.3":9.9472,"15.4":0.79558},P:{"4":0.01036,"5.0-5.4":0.01055,"6.2-6.4":0.03035,"7.2-7.4":0.25895,"8.2":0.0104,"9.2":0.04143,"10.1":0.02033,"11.1-11.2":0.14501,"12.0":0.04143,"13.0":0.18644,"14.0":0.33146,"15.0":0.11394,"16.0":3.52172},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0073,"4.2-4.3":0.01168,"4.4":0,"4.4.3-4.4.4":0.09052},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00424,"11":0.10593,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":36.20152},S:{"2.5":0},R:{_:"0"},M:{"0":0.31697},Q:{"10.4":0},O:{"0":0.01729},H:{"0":0.15277}}; +module.exports={C:{"38":0.00896,"50":0.00448,"52":0.01792,"60":0.01344,"78":0.05823,"80":0.01344,"84":0.00896,"89":0.00448,"91":0.0851,"92":0.00896,"95":0.00448,"97":0.00896,"98":0.04479,"99":0.71216,"100":2.92927,"101":0.01344,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 81 82 83 85 86 87 88 90 93 94 96 102 103 3.5 3.6"},D:{"29":0.00448,"49":0.19708,"51":0.01792,"58":0.00896,"63":0.00896,"67":0.00448,"71":0.00448,"75":0.01344,"78":0.00448,"79":0.05375,"81":0.00896,"83":0.01344,"84":0.12541,"87":0.02687,"88":0.03583,"89":0.01792,"90":0.00896,"91":0.01792,"92":0.01344,"93":0.00896,"94":0.00896,"95":0.01344,"96":0.14781,"97":0.04031,"98":0.04479,"99":0.22395,"100":4.33567,"101":15.05392,"102":1.35714,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 59 60 61 62 64 65 66 68 69 70 72 73 74 76 77 80 85 86 103 104"},F:{"28":0.04031,"85":0.47925,"86":0.28218,"87":0.04479,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00896,"17":0.00448,"18":0.00896,"86":0.00896,"89":0.00448,"95":0.00448,"96":0.0224,"97":0.06719,"98":0.01792,"99":0.06271,"100":0.19708,"101":4.54171,_:"12 13 14 15 79 80 81 83 84 85 87 88 90 91 92 93 94"},E:{"4":0,"11":0.01344,"12":0.00448,"13":0.03583,"14":0.24187,"15":0.09406,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00896,"11.1":0.04031,"12.1":0.06719,"13.1":0.46134,"14.1":0.48373,"15.1":0.22843,"15.2-15.3":0.15677,"15.4":1.27652,"15.5":0.17468},G:{"8":0.01111,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01587,"9.0-9.2":0,"9.3":0.08571,"10.0-10.2":0,"10.3":0.06666,"11.0-11.2":0.00317,"11.3-11.4":0.00635,"12.0-12.1":0.69043,"12.2-12.5":0.49521,"13.0-13.1":0.01587,"13.2":0.02857,"13.3":0.03968,"13.4-13.7":0.09523,"14.0-14.4":0.49521,"14.5-14.8":1.3396,"15.0-15.1":0.6206,"15.2-15.3":1.31897,"15.4":10.55015},P:{"4":0.08244,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.24732,"8.2":0.01032,"9.2":0.05233,"10.1":0.01021,"11.1-11.2":0.12366,"12.0":0.07214,"13.0":0.09275,"14.0":0.21641,"15.0":0.06183,"16.0":1.37057},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.03313},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":7.82481,"11":0.1075,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":35.32214},S:{"2.5":0},R:{_:"0"},M:{"0":0.3147},Q:{"10.4":0},O:{"0":0},H:{"0":0.07318}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GQ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GQ.js index ee2d8428d735c2..eec439a6290540 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GQ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GQ.js @@ -1 +1 @@ -module.exports={C:{"29":0.00631,"52":0.06311,"55":0.00631,"57":0.07573,"60":0.05049,"62":0.01893,"63":0.00631,"71":0.04418,"72":0.00631,"76":0.01262,"85":0.01262,"89":0.01262,"95":0.01893,"96":0.03787,"97":0.87092,"98":1.97534,"99":0.01262,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 58 59 61 64 65 66 67 68 69 70 73 74 75 77 78 79 80 81 82 83 84 86 87 88 90 91 92 93 94 100 3.5 3.6"},D:{"18":0.03787,"34":0.03156,"38":0.01893,"47":0.02524,"53":0.01262,"54":0.02524,"55":0.03156,"58":0.73208,"60":0.01262,"63":0.15146,"64":0.30293,"66":0.00631,"67":0.01893,"68":0.01893,"69":0.00631,"70":0.01893,"72":0.01893,"75":0.00631,"79":0.03787,"80":0.00631,"83":0.02524,"85":0.5743,"86":0.01262,"87":0.05049,"88":0.01893,"89":0.01893,"90":0.06311,"92":0.09467,"93":0.00631,"94":0.00631,"95":0.01262,"96":0.06942,"97":0.1704,"98":4.11477,"99":13.00697,"100":0.05049,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 49 50 51 52 56 57 59 61 62 65 71 73 74 76 77 78 81 84 91 101 102 103"},F:{"40":0.01262,"44":0.01893,"64":0.25875,"68":0.00631,"77":0.00631,"78":0.01262,"79":0.00631,"81":0.00631,"82":0.30293,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 69 70 71 72 73 74 75 76 80 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03787,"13":0.03156,"14":0.01262,"16":0.01262,"18":0.13253,"80":0.00631,"84":0.08835,"85":0.01893,"89":0.05049,"91":0.02524,"92":1.22433,"95":0.13884,"96":0.03787,"97":0.00631,"98":3.00404,"99":31.44771,_:"15 17 79 81 83 86 87 88 90 93 94"},E:{"4":0,"14":0.05049,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 7.1 9.1 10.1 12.1","6.1":0.51119,"11.1":0.01893,"13.1":0.01262,"14.1":0.01893,"15.1":0.04418,"15.2-15.3":0.10098,"15.4":0.01262},G:{"8":0.00286,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00381,"7.0-7.1":0.00762,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02095,"10.0-10.2":0.00095,"10.3":0.06475,"11.0-11.2":0.87796,"11.3-11.4":0.00381,"12.0-12.1":0.0419,"12.2-12.5":1.24934,"13.0-13.1":0.00857,"13.2":0.00667,"13.3":0.01619,"13.4-13.7":0.13236,"14.0-14.4":1.10079,"14.5-14.8":0.68561,"15.0-15.1":1.35503,"15.2-15.3":3.78134,"15.4":0.15712},P:{"4":1.10413,"5.0-5.4":0.02021,"6.2-6.4":0.03096,"7.2-7.4":0.06191,"8.2":0.03097,"9.2":0.01032,"10.1":0.02021,"11.1-11.2":0.02064,"12.0":0.02064,"13.0":0.04128,"14.0":0.0516,"15.0":0.02064,"16.0":0.88743},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00027,"4.2-4.3":0.01202,"4.4":0,"4.4.3-4.4.4":0.04305},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.16409,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":1.33911},N:{"10":0.02584,_:"11"},L:{"0":23.79635},S:{"2.5":0},R:{_:"0"},M:{"0":0.05534},Q:{"10.4":0.00369},O:{"0":0.2361},H:{"0":0.14319}}; +module.exports={C:{"52":0.04994,"60":0.00832,"70":0.03329,"71":0.04994,"72":0.00832,"85":0.01665,"88":0.00832,"91":0.00832,"99":0.22472,"100":0.99876,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 73 74 75 76 77 78 79 80 81 82 83 84 86 87 89 90 92 93 94 95 96 97 98 101 102 103 3.5 3.6"},D:{"49":0.00832,"54":0.01665,"55":0.00832,"64":0.09988,"67":0.00832,"72":0.00832,"75":0.01665,"79":0.11652,"86":0.04994,"87":0.1082,"88":0.02497,"92":0.04162,"93":0.00832,"94":0.20808,"95":0.01665,"96":0.03329,"97":0.08323,"98":0.30795,"99":0.04994,"100":1.92261,"101":9.13865,"102":0.65752,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 56 57 58 59 60 61 62 63 65 66 68 69 70 71 73 74 76 77 78 80 81 83 84 85 89 90 91 103 104"},F:{"83":0.02497,"85":0.1082,"86":0.04162,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02497,"13":0.01665,"18":0.04994,"84":0.01665,"89":0.00832,"92":1.84771,"95":0.01665,"96":0.01665,"98":0.01665,"99":4.21976,"100":0.81565,"101":59.76746,_:"14 15 16 17 79 80 81 83 85 86 87 88 90 91 93 94 97"},E:{"4":0,"14":0.01665,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 7.1 9.1 10.1 12.1 15.5","6.1":0.07491,"11.1":0.09155,"13.1":0.02497,"14.1":0.02497,"15.1":0.00832,"15.2-15.3":0.14981,"15.4":0.27466},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00155,"6.0-6.1":0,"7.0-7.1":0.06674,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02988,"10.0-10.2":0.00078,"10.3":0.04501,"11.0-11.2":0.55137,"11.3-11.4":0.00233,"12.0-12.1":0.0388,"12.2-12.5":0.78574,"13.0-13.1":0.00388,"13.2":0.00504,"13.3":0.0066,"13.4-13.7":0.04035,"14.0-14.4":0.35969,"14.5-14.8":0.1847,"15.0-15.1":0.30188,"15.2-15.3":0.50986,"15.4":0.94638},P:{"4":0.43796,"5.0-5.4":0.0107,"6.2-6.4":0.03051,"7.2-7.4":0.01095,"8.2":0.01032,"9.2":0.02064,"10.1":0.04105,"11.1-11.2":0.0219,"12.0":0.02064,"13.0":0.03285,"14.0":0.01095,"15.0":0.01095,"16.0":0.18613},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00164,"4.2-4.3":0.07565,"4.4":0,"4.4.3-4.4.4":0.14575},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15814,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":11.66162},S:{"2.5":0.01174},R:{_:"0"},M:{"0":0.06205},Q:{"10.4":0.00335},O:{"0":0.11907},H:{"0":0.13336}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GR.js index 1f7179d47a89b1..a2f6561554a105 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GR.js @@ -1 +1 @@ -module.exports={C:{"43":0.0059,"48":0.01181,"52":0.69065,"60":0.01181,"66":0.0059,"68":0.15938,"78":0.04132,"81":0.05313,"83":0.01181,"84":0.01771,"86":0.01181,"87":0.04132,"88":0.04132,"89":0.01181,"90":0.0059,"91":0.08855,"92":0.01181,"93":0.0059,"94":0.11216,"95":0.02361,"96":0.03542,"97":2.56781,"98":4.26787,"99":0.01181,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 79 80 82 85 100 3.5 3.6"},D:{"22":0.41321,"34":0.10035,"38":0.21251,"39":0.10035,"47":0.30696,"49":0.48405,"53":0.0059,"56":0.01181,"60":0.0059,"61":0.04132,"62":0.41321,"63":0.0059,"65":0.0059,"68":0.0059,"69":0.37189,"71":0.01771,"72":0.02952,"74":0.0059,"76":0.0059,"77":0.08855,"78":0.01771,"79":0.1948,"80":0.02952,"81":0.01771,"83":0.05313,"84":0.01771,"85":0.01771,"86":0.02952,"87":0.10625,"88":0.15938,"89":0.08855,"90":0.01181,"91":0.32467,"92":0.03542,"93":0.16528,"94":0.03542,"95":0.02952,"96":0.11216,"97":0.23022,"98":7.65619,"99":27.50798,"100":0.01181,"101":0.01181,"102":0.0059,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 40 41 42 43 44 45 46 48 50 51 52 54 55 57 58 59 64 66 67 70 73 75 103"},F:{"12":0.09445,"25":0.07084,"28":0.0059,"31":0.76739,"40":0.50766,"46":0.0059,"82":0.0059,"83":0.29515,_:"9 11 15 16 17 18 19 20 21 22 23 24 26 27 29 30 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.13577,"18":0.0059,"92":0.03542,"96":0.0059,"97":0.08264,"98":0.74968,"99":2.31988,_:"12 13 14 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.02361,"14":0.07084,"15":0.03542,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.03542,"12.1":0.02952,"13.1":0.10035,"14.1":0.25383,"15.1":0.07084,"15.2-15.3":0.08855,"15.4":0.06493},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00258,"6.0-6.1":0.00064,"7.0-7.1":0.23973,"8.1-8.4":0.00451,"9.0-9.2":0,"9.3":0.05735,"10.0-10.2":0.00258,"10.3":0.05478,"11.0-11.2":0.01031,"11.3-11.4":0.01482,"12.0-12.1":0.00838,"12.2-12.5":0.31384,"13.0-13.1":0.00451,"13.2":0.01482,"13.3":0.02062,"13.4-13.7":0.1044,"14.0-14.4":0.20751,"14.5-14.8":0.74496,"15.0-15.1":0.34026,"15.2-15.3":3.97033,"15.4":0.32608},P:{"4":0.59011,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.06438,"12.0":0.01073,"13.0":0.09656,"14.0":0.05365,"15.0":0.07511,"16.0":1.5343},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00639,"4.2-4.3":0.18756,"4.4":0,"4.4.3-4.4.4":0.27708},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0059,"11":0.48995,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":31.15706},S:{"2.5":0},R:{_:"0"},M:{"0":0.21709},Q:{"10.4":0},O:{"0":0.0983},H:{"0":0.27533}}; +module.exports={C:{"52":0.55145,"60":0.01199,"68":0.12587,"77":0.01199,"78":0.02997,"81":0.04795,"84":0.01199,"87":0.00599,"88":0.04795,"89":0.01798,"90":0.03596,"91":0.07792,"94":0.12587,"95":0.01199,"96":0.01199,"97":0.01199,"98":0.05395,"99":1.3007,"100":5.72427,"101":0.01199,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 79 80 82 83 85 86 92 93 102 103 3.5 3.6"},D:{"22":0.4016,"34":0.14985,"38":0.25175,"39":0.0959,"47":0.38362,"49":0.38362,"53":0.00599,"56":0.00599,"58":0.03596,"60":0.00599,"61":0.05395,"62":0.38961,"65":0.00599,"67":0.01199,"68":0.00599,"69":0.2038,"71":0.01798,"72":0.02398,"74":0.00599,"77":0.08392,"78":0.00599,"79":0.08392,"80":0.01798,"81":0.01798,"83":0.02398,"84":0.02997,"85":0.02997,"86":0.03596,"87":0.08991,"88":0.02398,"89":0.07193,"90":0.01199,"91":0.32967,"92":0.02398,"93":0.01798,"94":0.01798,"95":0.02398,"96":0.05395,"97":0.03596,"98":0.05994,"99":0.36563,"100":6.28171,"101":26.51146,"102":2.2957,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 40 41 42 43 44 45 46 48 50 51 52 54 55 57 59 63 64 66 70 73 75 76 103 104"},F:{"12":0.10789,"25":0.00599,"31":0.81518,"40":0.61139,"46":0.07193,"77":0.00599,"85":0.52148,"86":0.64136,"87":0.02997,_:"9 11 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.15584,"18":0.00599,"92":0.04196,"96":0.01199,"97":0.08991,"98":0.00599,"99":0.01798,"100":0.14985,"101":2.82317,_:"12 13 14 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.02398,"14":0.07193,"15":0.02398,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01798,"12.1":0.03596,"13.1":0.1019,"14.1":0.17982,"15.1":0.04196,"15.2-15.3":0.04795,"15.4":0.64136,"15.5":0.07792},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00194,"6.0-6.1":0.00065,"7.0-7.1":0.28919,"8.1-8.4":0.00065,"9.0-9.2":0,"9.3":0.05305,"10.0-10.2":0.00194,"10.3":0.05758,"11.0-11.2":0.00518,"11.3-11.4":0.01488,"12.0-12.1":0.00647,"12.2-12.5":0.29889,"13.0-13.1":0.00518,"13.2":0.01553,"13.3":0.01747,"13.4-13.7":0.09187,"14.0-14.4":0.16691,"14.5-14.8":0.5208,"15.0-15.1":0.18244,"15.2-15.3":0.46904,"15.4":4.26603},P:{"4":0.16433,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.12559,"8.2":0.01032,"9.2":0.05233,"10.1":0.01021,"11.1-11.2":0.03287,"12.0":0.03157,"13.0":0.08765,"14.0":0.05478,"15.0":0.02191,"16.0":0.5916},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00815,"4.2-4.3":0.21608,"4.4":0,"4.4.3-4.4.4":0.23646},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00599,"11":0.61738,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":31.31862},S:{"2.5":0},R:{_:"0"},M:{"0":0.24036},Q:{"10.4":0},O:{"0":0.07611},H:{"0":0.28065}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GT.js index ad28cf4f45f9e6..6d2ec59aca3691 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GT.js @@ -1 +1 @@ -module.exports={C:{"52":0.01957,"72":0.00783,"73":0.14087,"78":0.01174,"88":0.00391,"89":0.00391,"90":0.01565,"91":0.01957,"92":0.00391,"95":0.00391,"96":0.02348,"97":0.55956,"98":1.07999,"99":0.01174,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 75 76 77 79 80 81 82 83 84 85 86 87 93 94 100 3.5 3.6"},D:{"38":0.00391,"49":0.02739,"50":0.00783,"53":0.00391,"58":0.00391,"63":0.00391,"65":0.01565,"67":0.00783,"69":0.01174,"70":0.00783,"72":0.00391,"74":0.00391,"75":0.00783,"76":0.04304,"78":0.02348,"79":0.07826,"80":0.00783,"81":0.01957,"83":0.01957,"84":0.01565,"85":0.00391,"86":0.0587,"87":0.03913,"88":0.01565,"89":0.01957,"90":0.01957,"91":0.09391,"92":0.06261,"93":0.0587,"94":0.02739,"95":0.02739,"96":0.10174,"97":0.24261,"98":5.9282,"99":20.8602,"100":0.25826,"101":0.01174,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 51 52 54 55 56 57 59 60 61 62 64 66 68 71 73 77 102 103"},F:{"80":0.00391,"82":0.00783,"83":0.73956,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01174,"85":0.01565,"89":0.00783,"90":0.00783,"91":0.00391,"92":0.01174,"96":0.01565,"97":0.02739,"98":0.53217,"99":2.3165,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 93 94 95"},E:{"4":0,"11":0.00391,"13":0.00783,"14":0.07435,"15":0.06261,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 7.1 9.1","6.1":0.00391,"10.1":0.00391,"11.1":0.01565,"12.1":0.01565,"13.1":0.13304,"14.1":0.24652,"15.1":0.08609,"15.2-15.3":0.12913,"15.4":0.12522},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00146,"6.0-6.1":0.00659,"7.0-7.1":0.00659,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01756,"10.0-10.2":0,"10.3":0.02122,"11.0-11.2":0.00512,"11.3-11.4":0.00585,"12.0-12.1":0.00878,"12.2-12.5":0.23267,"13.0-13.1":0.00951,"13.2":0.00732,"13.3":0.02707,"13.4-13.7":0.06878,"14.0-14.4":0.21877,"14.5-14.8":0.75217,"15.0-15.1":0.43828,"15.2-15.3":4.67178,"15.4":0.81217},P:{"4":0.10224,"5.0-5.4":0.01055,"6.2-6.4":0.03035,"7.2-7.4":0.27604,"8.2":0.0104,"9.2":0.0409,"10.1":0.02033,"11.1-11.2":0.43962,"12.0":0.0409,"13.0":0.2147,"14.0":0.28627,"15.0":0.2147,"16.0":2.68886},I:{"0":0,"3":0,"4":0.00457,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00304,"4.4":0,"4.4.3-4.4.4":0.04718},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05087,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":47.5434},S:{"2.5":0},R:{_:"0"},M:{"0":0.21917},Q:{"10.4":0},O:{"0":0.05479},H:{"0":0.25937}}; +module.exports={C:{"52":0.01575,"72":0.00394,"73":0.11814,"78":0.02363,"89":0.00394,"90":0.02757,"91":0.0315,"95":0.00394,"96":0.00394,"97":0.00394,"98":0.01181,"99":0.25597,"100":1.35467,"101":0.01575,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 75 76 77 79 80 81 82 83 84 85 86 87 88 92 93 94 102 103 3.5 3.6"},D:{"38":0.00788,"49":0.02363,"50":0.00788,"65":0.01181,"67":0.00394,"69":0.01181,"70":0.00788,"75":0.00788,"76":0.04726,"78":0.01181,"79":0.0827,"80":0.01181,"81":0.01575,"83":0.01181,"84":0.00788,"86":0.07088,"87":0.04726,"88":0.01969,"89":0.01575,"90":0.01181,"91":0.05907,"92":0.0315,"93":0.05513,"94":0.0315,"95":0.01969,"96":0.06695,"97":0.07876,"98":0.06695,"99":0.16933,"100":4.59565,"101":19.87902,"102":2.1344,"103":0.00788,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 68 71 72 73 74 77 85 104"},F:{"84":0.00394,"85":1.07114,"86":0.88999,"87":0.04332,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01181,"85":0.01969,"92":0.00788,"96":0.00788,"97":0.01575,"98":0.01181,"99":0.02757,"100":0.12208,"101":2.76841,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01575,"14":0.07482,"15":0.04332,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 7.1 9.1","6.1":0.01181,"10.1":0.00394,"11.1":0.00394,"12.1":0.01575,"13.1":0.12995,"14.1":0.20084,"15.1":0.07482,"15.2-15.3":0.06301,"15.4":0.86242,"15.5":0.15752},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00248,"6.0-6.1":0.00993,"7.0-7.1":0.00745,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01406,"10.0-10.2":0,"10.3":0.01985,"11.0-11.2":0.00331,"11.3-11.4":0.00579,"12.0-12.1":0.00414,"12.2-12.5":0.22088,"13.0-13.1":0.00827,"13.2":0.00414,"13.3":0.02068,"13.4-13.7":0.04633,"14.0-14.4":0.21923,"14.5-14.8":0.546,"15.0-15.1":0.2275,"15.2-15.3":0.52118,"15.4":6.38736},P:{"4":0.08215,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.18484,"8.2":0.01032,"9.2":0.02054,"10.1":0.01021,"11.1-11.2":0.16431,"12.0":0.03081,"13.0":0.12323,"14.0":0.14377,"15.0":0.07188,"16.0":1.03718},I:{"0":0,"3":0,"4":0.00136,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00682,"4.4":0,"4.4.3-4.4.4":0.04637},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04726,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":50.93286},S:{"2.5":0},R:{_:"0"},M:{"0":0.21217},Q:{"10.4":0},O:{"0":0.06668},H:{"0":0.29843}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GU.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GU.js index 3b10f06fdcc784..a80b0fe95f85d6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GU.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GU.js @@ -1 +1 @@ -module.exports={C:{"52":0.00419,"74":0.00838,"78":0.01257,"84":0.01676,"90":0.00419,"91":0.02095,"95":0.01257,"96":0.02514,"97":0.83381,"98":1.22348,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 79 80 81 82 83 85 86 87 88 89 92 93 94 99 100 3.5 3.6"},D:{"49":0.02095,"63":0.00419,"67":0.00419,"75":0.03352,"76":0.03352,"77":0.03352,"79":0.09637,"83":0.0419,"84":0.02095,"85":0.00838,"86":0.01257,"87":0.0419,"88":0.02514,"89":0.00838,"90":0.00838,"91":0.14665,"92":0.06704,"93":0.1257,"94":0.03352,"95":0.02514,"96":0.19693,"97":0.32682,"98":6.13416,"99":18.29354,"100":0.15922,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 68 69 70 71 72 73 74 78 80 81 101 102 103"},F:{"83":0.2095,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00838,"17":0.02514,"18":0.01257,"95":0.00838,"96":0.05447,"97":0.05866,"98":0.85057,"99":3.04613,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94"},E:{"4":0,"13":0.15084,"14":0.31006,"15":0.14246,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.08799,"9.1":0.00419,"10.1":0.01676,"11.1":0.01676,"12.1":0.16341,"13.1":0.35615,"14.1":1.17739,"15.1":0.47347,"15.2-15.3":0.48604,"15.4":0.17179},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00301,"7.0-7.1":0,"8.1-8.4":0.03614,"9.0-9.2":0,"9.3":0.30415,"10.0-10.2":0.01807,"10.3":0.15659,"11.0-11.2":0.01205,"11.3-11.4":0.03915,"12.0-12.1":0.02108,"12.2-12.5":0.83717,"13.0-13.1":0.04517,"13.2":0.01506,"13.3":0.05722,"13.4-13.7":0.26801,"14.0-14.4":1.29188,"14.5-14.8":3.60162,"15.0-15.1":1.96041,"15.2-15.3":20.03174,"15.4":1.41535},P:{"4":0.22815,"5.0-5.4":0.01055,"6.2-6.4":0.03035,"7.2-7.4":0.25895,"8.2":0.0104,"9.2":0.02074,"10.1":0.02033,"11.1-11.2":0.12445,"12.0":0.04143,"13.0":0.06222,"14.0":0.11408,"15.0":0.08296,"16.0":4.14821},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.03947,"4.4":0,"4.4.3-4.4.4":0.02443},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12989,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":23.2156},S:{"2.5":0},R:{_:"0"},M:{"0":0.23817},Q:{"10.4":0},O:{"0":0.15103},H:{"0":0.15399}}; +module.exports={C:{"52":0.00391,"78":0.01172,"84":0.03906,"91":0.01172,"95":0.05859,"96":0.05859,"98":0.00781,"99":0.51169,"100":1.3671,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 92 93 94 97 101 102 103 3.5 3.6"},D:{"49":0.03125,"65":0.01172,"66":0.00391,"67":0.00781,"68":0.00781,"69":0.00391,"70":0.01172,"75":0.01172,"76":0.03906,"77":0.02344,"79":0.23827,"83":0.03906,"84":0.01172,"85":0.01562,"86":0.00781,"87":0.03515,"88":0.00781,"90":0.00781,"91":0.04297,"92":0.02734,"93":0.01953,"94":0.00781,"95":0.00781,"96":0.09374,"97":0.10546,"98":0.39451,"99":0.52731,"100":4.94109,"101":14.70609,"102":1.53896,"103":0.07812,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 71 72 73 74 78 80 81 89 104"},F:{"85":0.34373,"86":0.2578,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00391,"15":0.00781,"18":0.01172,"96":0.01172,"97":0.00781,"98":0.01172,"99":0.08984,"100":0.2617,"101":3.5818,_:"12 13 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95"},E:{"4":0,"13":0.11718,"14":0.42185,"15":0.05468,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00781,"10.1":0.01172,"11.1":0.01562,"12.1":0.10156,"13.1":0.3242,"14.1":1.34757,"15.1":0.21483,"15.2-15.3":0.25389,"15.4":4.12474,"15.5":0.23827},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01005,"9.0-9.2":0,"9.3":0.1809,"10.0-10.2":0.0134,"10.3":0.02345,"11.0-11.2":0.0134,"11.3-11.4":0.0335,"12.0-12.1":0.03015,"12.2-12.5":0.62644,"13.0-13.1":0.0067,"13.2":0.0067,"13.3":0.0804,"13.4-13.7":0.34169,"14.0-14.4":0.73029,"14.5-14.8":2.5024,"15.0-15.1":2.02671,"15.2-15.3":3.16234,"15.4":23.69743},P:{"4":0.20524,"5.0-5.4":0.05104,"6.2-6.4":0.03071,"7.2-7.4":0.24732,"8.2":0.01032,"9.2":0.02052,"10.1":0.01021,"11.1-11.2":0.06157,"12.0":0.07214,"13.0":0.03079,"14.0":0.07183,"15.0":0.06157,"16.0":2.07292},I:{"0":0,"3":0,"4":0.00163,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00244,"4.4":0,"4.4.3-4.4.4":0.00813},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11718,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":22.60645},S:{"2.5":0},R:{_:"0"},M:{"0":0.26818},Q:{"10.4":0},O:{"0":0.04876},H:{"0":0.1558}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GW.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GW.js index 53ffc087e3758a..128e6993d878dd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GW.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GW.js @@ -1 +1 @@ -module.exports={C:{"88":0.00295,"91":0.0796,"95":0.00295,"97":0.05601,"98":0.25353,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 92 93 94 96 99 100 3.5 3.6"},D:{"26":0.00884,"33":0.01179,"37":0.00295,"67":0.0059,"71":0.00295,"79":0.02064,"81":0.00295,"83":0.0059,"85":0.00295,"86":1.58602,"87":0.01474,"88":0.02358,"89":0.04717,"91":0.00295,"92":0.02653,"94":0.02064,"95":0.02064,"96":0.01769,"97":0.09728,"98":3.26933,"99":16.14914,"100":0.10613,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 72 73 74 75 76 77 78 80 84 90 93 101 102 103"},F:{"42":0.00295,"76":0.01474,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01474,"13":0.00295,"14":0.00295,"15":0.01179,"16":0.0059,"17":0.00884,"18":0.03538,"84":0.0059,"85":0.00884,"92":0.04422,"95":0.00884,"97":0.15035,"98":0.36555,"99":1.1055,_:"79 80 81 83 86 87 88 89 90 91 93 94 96"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.4","13.1":0.00884,"14.1":0.00884,"15.1":0.00884,"15.2-15.3":0.00295},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01155,"8.1-8.4":0.00068,"9.0-9.2":0,"9.3":0,"10.0-10.2":0.04007,"10.3":0.00068,"11.0-11.2":0.08693,"11.3-11.4":0.0163,"12.0-12.1":0.25876,"12.2-12.5":1.54846,"13.0-13.1":0.02852,"13.2":0.00136,"13.3":0.00136,"13.4-13.7":2.16512,"14.0-14.4":0.32124,"14.5-14.8":0.25196,"15.0-15.1":1.52876,"15.2-15.3":0.44077,"15.4":0.08761},P:{"4":0.71492,"5.0-5.4":0.04023,"6.2-6.4":0.04023,"7.2-7.4":1.41977,"8.2":0.0104,"9.2":0.03021,"10.1":0.02033,"11.1-11.2":0.12083,"12.0":0.06042,"13.0":0.12083,"14.0":0.06042,"15.0":0.12083,"16.0":0.22153},I:{"0":0,"3":0,"4":0.0001,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0003,"4.4":0,"4.4.3-4.4.4":0.02075},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01474,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":64.3557},S:{"2.5":0.09166},R:{_:"0"},M:{"0":0.0141},Q:{"10.4":0},O:{"0":0.02115},H:{"0":1.42187}}; +module.exports={C:{"54":0.01343,"56":1.2309,"91":0.02686,"98":0.00895,"99":0.00895,"100":0.3178,"101":0.10295,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"43":0.00895,"49":0.00895,"50":0.02686,"67":0.0179,"79":0.00895,"86":2.47075,"87":0.00895,"92":0.0179,"95":0.00448,"96":0.00895,"97":0.27751,"98":0.0179,"99":0.04028,"100":3.25405,"101":27.38864,"102":2.0142,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 80 81 83 84 85 88 89 90 91 93 94 103 104"},F:{"76":0.00895,"85":0.10295,"86":0.34913,"87":0.00895,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00448,"18":0.06266,"92":0.00895,"97":0.07162,"100":0.02238,"101":1.83068,_:"13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 98 99"},E:{"4":0,"14":0.03581,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1 15.2-15.3 15.5","13.1":0.02686,"14.1":0.00895,"15.4":0.03581},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00094,"7.0-7.1":0.00094,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00234,"10.0-10.2":0.0431,"10.3":0.0075,"11.0-11.2":0.20894,"11.3-11.4":0.00234,"12.0-12.1":0.03326,"12.2-12.5":0.68773,"13.0-13.1":0.00656,"13.2":0.00328,"13.3":0.0089,"13.4-13.7":1.88517,"14.0-14.4":0.17615,"14.5-14.8":0.52095,"15.0-15.1":0.11009,"15.2-15.3":0.25439,"15.4":0.73177},P:{"4":0.65236,"5.0-5.4":0.13197,"6.2-6.4":0.06091,"7.2-7.4":1.25453,"8.2":0.01032,"9.2":0.16242,"10.1":0.01021,"11.1-11.2":0.07025,"12.0":0.03011,"13.0":0.19069,"14.0":0.03011,"15.0":0.02007,"16.0":0.28102},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0006,"4.4":0,"4.4.3-4.4.4":0.04359},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.03133,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":50.51461},S:{"2.5":0.38116},R:{_:"0"},M:{"0":0.01657},Q:{"10.4":0},O:{"0":0.02762},H:{"0":1.48002}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GY.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GY.js index c32f3d5d2dcaba..0755a6121250cb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GY.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/GY.js @@ -1 +1 @@ -module.exports={C:{"52":0.01477,"65":0.01108,"91":0.00369,"95":0.00369,"96":0.04061,"97":0.3249,"98":0.74948,"99":0.02584,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 100 3.5 3.6"},D:{"11":0.00369,"49":0.00738,"54":0.00369,"55":0.00738,"59":0.00738,"60":0.00369,"63":0.00369,"65":0.01846,"68":0.01108,"69":0.00369,"70":0.01108,"74":0.01108,"75":0.02584,"76":0.10707,"77":0.07015,"78":0.01108,"79":0.16614,"80":0.05169,"81":0.02584,"83":0.01477,"84":0.03323,"85":0.00738,"86":0.01108,"87":0.08492,"88":0.01108,"89":0.00738,"90":0.048,"91":0.03323,"92":0.02584,"93":0.15876,"94":0.05169,"95":0.03692,"96":0.12553,"97":0.66087,"98":5.19834,"99":15.05228,"100":0.40243,"101":0.10338,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 56 57 58 61 62 64 66 67 71 72 73 102 103"},F:{"28":0.01108,"68":0.00738,"83":0.19568,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01108,"15":0.01108,"16":0.01477,"17":0.01477,"18":0.03692,"84":0.01108,"89":0.01477,"92":0.02215,"94":0.00369,"95":0.01108,"96":0.01477,"97":0.0923,"98":1.46572,"99":4.90298,_:"13 14 79 80 81 83 85 86 87 88 90 91 93"},E:{"4":0,"12":0.00369,"13":0.01108,"14":0.08122,"15":0.02584,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.00738,"12.1":0.00738,"13.1":0.03692,"14.1":0.16983,"15.1":0.10338,"15.2-15.3":0.13291,"15.4":0.07753},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02468,"6.0-6.1":0,"7.0-7.1":0.05245,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08022,"10.0-10.2":0.00103,"10.3":0.05143,"11.0-11.2":0.05657,"11.3-11.4":0.01543,"12.0-12.1":0.00411,"12.2-12.5":0.84955,"13.0-13.1":0.00823,"13.2":0.00617,"13.3":0.01748,"13.4-13.7":0.19542,"14.0-14.4":0.29313,"14.5-14.8":1.21364,"15.0-15.1":0.61711,"15.2-15.3":6.04457,"15.4":0.75081},P:{"4":0.21222,"5.0-5.4":0.04023,"6.2-6.4":0.04023,"7.2-7.4":0.24406,"8.2":0.0104,"9.2":0.02122,"10.1":0.11672,"11.1-11.2":0.30773,"12.0":0.04244,"13.0":0.16978,"14.0":0.13795,"15.0":0.15917,"16.0":3.83065},I:{"0":0,"3":0,"4":0.00911,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0035,"4.2-4.3":0.0007,"4.4":0,"4.4.3-4.4.4":0.06869},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01154,"11":0.08076,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.02523},N:{"10":0.0329,_:"11"},L:{"0":47.40538},S:{"2.5":0},R:{_:"0"},M:{"0":0.11354},Q:{"10.4":0.01262},O:{"0":0.70019},H:{"0":0.22096}}; +module.exports={C:{"52":0.01754,"64":0.00351,"78":0.00701,"92":0.00351,"95":0.00351,"97":0.04559,"98":0.01052,"99":0.24198,"100":0.94689,"101":0.01754,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 96 102 103 3.5 3.6"},D:{"11":0.03507,"49":0.00701,"50":0.00351,"55":0.00701,"56":0.01052,"62":0.02455,"63":0.00701,"65":0.02455,"68":0.00351,"69":0.01403,"70":0.00701,"72":0.00351,"73":0.00701,"74":0.00701,"75":0.01754,"76":0.11924,"77":0.12976,"78":0.00351,"79":0.1508,"80":0.01052,"81":0.02455,"83":0.01754,"84":0.00701,"85":0.01754,"86":0.02455,"87":0.03858,"88":0.01754,"89":0.02104,"90":0.01052,"91":0.02104,"92":0.01403,"93":0.10872,"94":0.00701,"95":0.02806,"96":0.03507,"97":0.08768,"98":0.14379,"99":0.15782,"100":4.45389,"101":14.78902,"102":1.38527,"103":0.05962,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 57 58 59 60 61 64 66 67 71 104"},F:{"28":0.00351,"68":0.02806,"69":0.00351,"85":0.36122,"86":0.31914,"87":0.01403,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00701,"13":0.00351,"15":0.00351,"16":0.00701,"17":0.00701,"18":0.01754,"80":0.00351,"89":0.00701,"92":0.01403,"95":0.04208,"96":0.01754,"97":0.02104,"98":0.01052,"99":0.07014,"100":0.25601,"101":4.58716,_:"14 79 81 83 84 85 86 87 88 90 91 93 94"},E:{"4":0,"14":0.09469,"15":0.01754,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00701,"13.1":0.02806,"14.1":0.13677,"15.1":0.08768,"15.2-15.3":0.04208,"15.4":0.67685,"15.5":0.07014},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00606,"6.0-6.1":0,"7.0-7.1":0.03333,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.16566,"10.0-10.2":0,"10.3":0.04748,"11.0-11.2":0.01414,"11.3-11.4":0.0101,"12.0-12.1":0.0101,"12.2-12.5":0.38587,"13.0-13.1":0.04141,"13.2":0.00404,"13.3":0.0202,"13.4-13.7":0.18889,"14.0-14.4":0.29496,"14.5-14.8":0.84446,"15.0-15.1":0.26162,"15.2-15.3":0.89901,"15.4":6.87084},P:{"4":0.44781,"5.0-5.4":0.13197,"6.2-6.4":0.06091,"7.2-7.4":0.31243,"8.2":0.01032,"9.2":0.03124,"10.1":0.1458,"11.1-11.2":0.49989,"12.0":0.02083,"13.0":0.0729,"14.0":0.19787,"15.0":0.13539,"16.0":1.65587},I:{"0":0,"3":0,"4":0.01525,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00678,"4.4":0,"4.4.3-4.4.4":0.09487},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01052,"11":0.03156,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":50.734},S:{"2.5":0},R:{_:"0"},M:{"0":0.09741},Q:{"10.4":0},O:{"0":0.39613},H:{"0":0.47955}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HK.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HK.js index a5babccefba44e..47e5bf6c422fe2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HK.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HK.js @@ -1 +1 @@ -module.exports={C:{"34":0.03088,"52":0.02206,"56":0.00882,"68":0.00441,"72":0.00441,"78":0.03529,"83":0.00441,"84":0.00441,"88":0.00441,"89":0.01764,"90":0.03088,"91":0.03088,"94":0.01323,"95":0.01323,"96":0.02206,"97":0.43669,"98":0.73223,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 85 86 87 92 93 99 100 3.5 3.6"},D:{"19":0.00882,"22":0.02206,"26":0.01323,"30":0.00882,"34":0.07499,"38":0.18526,"45":0.00441,"48":0.00441,"49":0.08381,"53":0.06175,"55":0.02647,"56":0.01323,"57":0.00882,"61":0.24261,"62":0.01323,"63":0.02647,"64":0.00441,"65":0.01764,"66":0.00441,"67":0.02647,"68":0.02206,"69":0.02206,"70":0.01323,"71":0.01323,"72":0.01764,"73":0.01323,"74":0.03088,"75":0.05293,"76":0.01764,"77":0.00882,"78":0.04411,"79":0.73223,"80":0.03529,"81":0.03529,"83":0.05293,"84":0.02647,"85":0.02206,"86":0.05734,"87":0.11469,"88":0.02206,"89":0.07499,"90":0.03529,"91":0.07058,"92":0.31318,"93":0.09704,"94":0.17203,"95":0.07058,"96":0.34847,"97":0.64401,"98":5.8137,"99":17.20731,"100":0.01764,"101":0.02647,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 23 24 25 27 28 29 31 32 33 35 36 37 39 40 41 42 43 44 46 47 50 51 52 54 58 59 60 102 103"},F:{"28":0.02647,"36":0.04411,"40":0.00882,"46":0.08822,"83":0.03088,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00882,"17":0.00882,"18":0.02206,"92":0.00882,"95":0.00882,"96":0.01323,"97":0.03088,"98":0.67929,"99":2.77452,_:"13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 93 94"},E:{"4":0,"8":0.00882,"11":0.00882,"12":0.01764,"13":0.15439,"14":0.67488,"15":0.25143,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00441,"10.1":0.02647,"11.1":0.05293,"12.1":0.08822,"13.1":0.46316,"14.1":1.98054,"15.1":0.44992,"15.2-15.3":0.52491,"15.4":0.34406},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02174,"6.0-6.1":0.01691,"7.0-7.1":0.02657,"8.1-8.4":0.03382,"9.0-9.2":0.01933,"9.3":0.2778,"10.0-10.2":0.01933,"10.3":0.16185,"11.0-11.2":0.04831,"11.3-11.4":0.05798,"12.0-12.1":0.06522,"12.2-12.5":0.94452,"13.0-13.1":0.06039,"13.2":0.02174,"13.3":0.12803,"13.4-13.7":0.33336,"14.0-14.4":1.1571,"14.5-14.8":3.38433,"15.0-15.1":1.54602,"15.2-15.3":13.92142,"15.4":1.89871},P:{"4":1.07407,"5.0-5.4":0.08215,"6.2-6.4":0.04107,"7.2-7.4":0.1545,"8.2":0.12322,"9.2":0.03255,"10.1":0.01085,"11.1-11.2":0.08679,"12.0":0.05425,"13.0":0.16274,"14.0":0.13019,"15.0":0.15189,"16.0":5.30528},I:{"0":0,"3":0,"4":0.00102,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00203,"4.2-4.3":0.00457,"4.4":0,"4.4.3-4.4.4":0.02591},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.68812,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":24.73518},S:{"2.5":0},R:{_:"0"},M:{"0":0.18444},Q:{"10.4":0.08384},O:{"0":0.3577},H:{"0":0.07937}}; +module.exports={C:{"34":0.03646,"51":0.00456,"52":0.02735,"53":0.00456,"55":0.00456,"56":0.00456,"57":0.00456,"72":0.00912,"78":0.02735,"81":0.00912,"83":0.00456,"88":0.00912,"89":0.00912,"90":0.01823,"91":0.05014,"92":0.00456,"94":0.00456,"95":0.00912,"96":0.00912,"97":0.01367,"98":0.04102,"99":0.2826,"100":1.06201,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 54 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 82 84 85 86 87 93 101 102 103 3.5 3.6"},D:{"19":0.01367,"22":0.02279,"26":0.01367,"30":0.00912,"34":0.07749,"38":0.19144,"45":0.00456,"47":0.00456,"48":0.00456,"49":0.08204,"53":0.0547,"54":0.00456,"55":0.02735,"56":0.00912,"57":0.00912,"58":0.02279,"59":0.00456,"60":0.00456,"61":0.04102,"62":0.01367,"63":0.03191,"64":0.00456,"65":0.01823,"67":0.02279,"68":0.02279,"69":0.03191,"70":0.01367,"71":0.01823,"72":0.05014,"73":0.01823,"74":0.02735,"75":0.05925,"76":0.01823,"77":0.00912,"78":0.04102,"79":0.79309,"80":0.04558,"81":0.03191,"83":0.09116,"84":0.0547,"85":0.05925,"86":0.09572,"87":0.13218,"88":0.01823,"89":0.07293,"90":0.03191,"91":0.06381,"92":0.29171,"93":0.02279,"94":0.18232,"95":0.04558,"96":0.18688,"97":0.28715,"98":0.26436,"99":0.49226,"100":4.92264,"101":17.75341,"102":1.79129,"103":0.02735,"104":0.00456,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 23 24 25 27 28 29 31 32 33 35 36 37 39 40 41 42 43 44 46 50 51 52 66"},F:{"28":0.03191,"36":0.05014,"40":0.01367,"46":0.09116,"85":0.07749,"86":0.10028,"87":0.00456,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01367,"17":0.00456,"18":0.02735,"86":0.00456,"92":0.00912,"97":0.00912,"98":0.00912,"99":0.03646,"100":0.16865,"101":3.66007,_:"13 14 15 16 79 80 81 83 84 85 87 88 89 90 91 93 94 95 96"},E:{"4":0,"8":0.00912,"11":0.00912,"12":0.01367,"13":0.11851,"14":0.46036,"15":0.1413,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00456,"10.1":0.02279,"11.1":0.03646,"12.1":0.06837,"13.1":0.35552,"14.1":1.1942,"15.1":0.20967,"15.2-15.3":0.24157,"15.4":4.43038,"15.5":0.2826},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0063,"5.0-5.1":0.01679,"6.0-6.1":0.01469,"7.0-7.1":0.02309,"8.1-8.4":0.02938,"9.0-9.2":0.02518,"9.3":0.24345,"10.0-10.2":0.01679,"10.3":0.14271,"11.0-11.2":0.05037,"11.3-11.4":0.04617,"12.0-12.1":0.04617,"12.2-12.5":0.75972,"13.0-13.1":0.04827,"13.2":0.01679,"13.3":0.10074,"13.4-13.7":0.27073,"14.0-14.4":0.82478,"14.5-14.8":1.91819,"15.0-15.1":0.71985,"15.2-15.3":1.33266,"15.4":14.32768},P:{"4":1.1137,"5.0-5.4":0.01035,"6.2-6.4":0.02043,"7.2-7.4":0.20692,"8.2":0.02069,"9.2":0.02163,"10.1":0.01081,"11.1-11.2":0.05406,"12.0":0.03244,"13.0":0.12975,"14.0":0.11894,"15.0":0.10813,"16.0":1.68676},I:{"0":0,"3":0,"4":0.00141,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00212,"4.2-4.3":0.00564,"4.4":0,"4.4.3-4.4.4":0.02892},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01566,"9":0.01566,"11":0.68885,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":26.47602},S:{"2.5":0},R:{_:"0"},M:{"0":0.23396},Q:{"10.4":0.14147},O:{"0":0.56586},H:{"0":0.09272}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HN.js index b4d1e11f78efac..d95cbc7c8bcbcd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HN.js @@ -1 +1 @@ -module.exports={C:{"48":0.0043,"52":0.03008,"70":0.0043,"73":0.04727,"78":0.00859,"89":0.00859,"91":0.01289,"94":0.04297,"96":0.00859,"97":0.42111,"98":0.84651,"99":0.01719,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 92 93 95 100 3.5 3.6"},D:{"38":0.02149,"41":0.01289,"47":0.02149,"49":0.02578,"51":0.0043,"52":0.0043,"53":0.02578,"58":0.0043,"63":0.01289,"65":0.00859,"66":0.00859,"67":0.0043,"68":0.07735,"69":0.00859,"70":0.00859,"73":0.0043,"74":0.00859,"75":0.03008,"76":0.03867,"77":0.01289,"78":0.03438,"79":0.30079,"80":0.10313,"81":0.02578,"83":0.02149,"84":0.11602,"85":0.02578,"86":0.04297,"87":0.03438,"88":0.04297,"89":0.06875,"90":0.02578,"91":0.04727,"92":0.04727,"93":0.1461,"94":0.10313,"95":0.03008,"96":0.24063,"97":0.38243,"98":6.07166,"99":20.4838,"100":0.23204,"101":0.00859,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 43 44 45 46 48 50 54 55 56 57 59 60 61 62 64 71 72 102 103"},F:{"71":0.0043,"82":0.00859,"83":0.7133,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00859,"15":0.01719,"17":0.0043,"18":0.04727,"84":0.00859,"89":0.00859,"90":0.0043,"91":0.00859,"92":0.03008,"94":0.00859,"95":0.00859,"96":0.01289,"97":0.04727,"98":0.72619,"99":3.0079,_:"12 13 16 79 80 81 83 85 86 87 88 93"},E:{"4":0,"13":0.02578,"14":0.08164,"15":0.04727,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.03867,"10.1":0.0043,"11.1":0.03438,"12.1":0.02578,"13.1":0.06875,"14.1":0.27501,"15.1":0.17618,"15.2-15.3":0.21485,"15.4":0.09024},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00168,"6.0-6.1":0.01516,"7.0-7.1":0.01937,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06486,"10.0-10.2":0.00337,"10.3":0.05391,"11.0-11.2":0.01348,"11.3-11.4":0.00842,"12.0-12.1":0.00758,"12.2-12.5":0.35966,"13.0-13.1":0.00505,"13.2":0.00337,"13.3":0.04633,"13.4-13.7":0.06907,"14.0-14.4":0.38493,"14.5-14.8":1.13035,"15.0-15.1":0.53906,"15.2-15.3":4.98551,"15.4":0.705},P:{"4":0.25749,"5.0-5.4":0.08215,"6.2-6.4":0.04107,"7.2-7.4":0.1545,"8.2":0.12322,"9.2":0.0206,"10.1":0.02054,"11.1-11.2":0.1648,"12.0":0.0309,"13.0":0.0927,"14.0":0.1545,"15.0":0.0927,"16.0":1.95695},I:{"0":0,"3":0,"4":0.00308,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00308,"4.2-4.3":0.00206,"4.4":0,"4.4.3-4.4.4":0.0545},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.1473,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":43.77861},S:{"2.5":0},R:{_:"0"},M:{"0":0.14825},Q:{"10.4":0},O:{"0":0.14825},H:{"0":0.17814}}; +module.exports={C:{"47":0.00404,"52":0.01213,"73":0.05255,"78":0.02425,"81":0.00808,"83":0.00808,"88":0.00404,"90":0.00808,"91":0.00808,"92":0.01213,"97":0.00808,"98":0.00808,"99":0.21018,"100":1.08326,"101":0.02425,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 82 84 85 86 87 89 93 94 95 96 102 103 3.5 3.6"},D:{"38":0.01213,"39":0.00404,"40":0.00404,"41":0.02829,"42":0.00808,"43":0.00808,"44":0.01213,"45":0.00404,"47":0.00808,"49":0.02829,"53":0.0485,"58":0.01213,"63":0.00808,"65":0.00404,"66":0.00404,"67":0.00404,"68":0.0768,"69":0.01213,"70":0.00808,"72":0.00404,"74":0.00808,"75":0.02021,"76":0.02425,"77":0.00808,"78":0.10105,"79":0.25869,"80":0.0485,"81":0.08892,"83":0.02021,"84":0.09297,"85":0.02021,"86":0.03234,"87":0.02425,"88":0.05659,"89":0.04446,"90":0.02425,"91":0.08892,"92":0.0485,"93":0.06871,"94":0.02021,"95":0.02021,"96":0.26273,"97":0.06467,"98":0.1253,"99":0.28294,"100":4.38153,"101":18.8438,"102":2.18268,"103":0.00808,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 46 48 50 51 52 54 55 56 57 59 60 61 62 64 71 73 104"},F:{"82":0.00404,"85":1.02667,"86":1.07517,"87":0.03234,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00404,"15":0.02425,"17":0.00808,"18":0.06467,"84":0.01617,"89":0.01617,"90":0.00404,"92":0.01617,"94":0.00808,"96":0.00808,"97":0.01617,"98":0.02021,"99":0.0768,"100":0.13339,"101":3.39124,_:"13 14 16 79 80 81 83 85 86 87 88 91 93 95"},E:{"4":0,"8":0.00404,"13":0.01213,"14":0.05255,"15":0.02021,_:"0 5 6 7 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.01617,"10.1":0.00808,"11.1":0.02021,"12.1":0.00808,"13.1":0.09701,"14.1":0.20614,"15.1":0.06063,"15.2-15.3":0.08084,"15.4":0.74777,"15.5":0.08892},G:{"8":0.00198,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00296,"6.0-6.1":0.0247,"7.0-7.1":0.04643,"8.1-8.4":0.01679,"9.0-9.2":0,"9.3":0.07212,"10.0-10.2":0.00099,"10.3":0.07212,"11.0-11.2":0.00593,"11.3-11.4":0.00988,"12.0-12.1":0.01185,"12.2-12.5":0.37343,"13.0-13.1":0.01087,"13.2":0.00296,"13.3":0.04544,"13.4-13.7":0.10175,"14.0-14.4":0.29637,"14.5-14.8":0.81699,"15.0-15.1":0.25488,"15.2-15.3":0.66584,"15.4":7.03978},P:{"4":0.23795,"5.0-5.4":0.01035,"6.2-6.4":0.02043,"7.2-7.4":0.20692,"8.2":0.02069,"9.2":0.02069,"10.1":0.01021,"11.1-11.2":0.12415,"12.0":0.02069,"13.0":0.10346,"14.0":0.16553,"15.0":0.06207,"16.0":0.91043},I:{"0":0,"3":0,"4":0.0037,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00277,"4.2-4.3":0.00185,"4.4":0,"4.4.3-4.4.4":0.04531},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00808,"11":0.10105,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":48.68798},S:{"2.5":0},R:{_:"0"},M:{"0":0.14898},Q:{"10.4":0},O:{"0":0.1311},H:{"0":0.2031}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HR.js index 9b967cee0a6e88..00c223f49d6756 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HR.js @@ -1 +1 @@ -module.exports={C:{"48":0.00428,"52":0.09835,"63":0.03421,"65":0.00428,"68":0.00428,"72":0.00428,"78":0.02566,"84":0.01283,"88":0.02138,"89":0.02993,"90":0.00855,"91":0.05131,"92":0.05131,"94":0.02138,"95":0.02138,"96":0.03848,"97":1.84723,"98":3.00603,"99":0.00855,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 64 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 87 93 100 3.5 3.6"},D:{"28":0.00428,"38":0.00428,"43":0.01283,"49":0.08124,"53":0.02993,"63":0.00855,"65":0.00855,"66":0.00428,"68":0.00428,"69":0.02138,"70":0.00428,"71":0.0171,"74":0.00855,"75":0.00855,"76":0.02138,"77":0.13256,"78":0.00855,"79":0.124,"80":0.0171,"81":0.22235,"83":0.01283,"84":0.02138,"85":0.02993,"86":0.05986,"87":0.08552,"88":0.02993,"89":0.03848,"90":0.02138,"91":0.03421,"92":0.03421,"93":0.10262,"94":0.05986,"95":0.04704,"96":0.22663,"97":0.31215,"98":6.08902,"99":21.38428,"100":0.1967,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 67 72 73 101 102 103"},F:{"28":0.00855,"46":0.00855,"69":0.00428,"82":0.00855,"83":0.45326,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00428,"17":0.00855,"18":0.0171,"86":0.00428,"88":0.00855,"89":0.00428,"90":0.00428,"92":0.00855,"95":0.00428,"96":0.0171,"97":0.02138,"98":0.57726,"99":2.39028,_:"12 13 14 15 79 80 81 83 84 85 87 91 93 94"},E:{"4":0,"13":0.01283,"14":0.06842,"15":0.02566,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00855,"12.1":0.02138,"13.1":0.124,"14.1":0.20525,"15.1":0.0898,"15.2-15.3":0.15394,"15.4":0.07269},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00598,"6.0-6.1":0,"7.0-7.1":0.00066,"8.1-8.4":0.00266,"9.0-9.2":0,"9.3":0.06379,"10.0-10.2":0.00266,"10.3":0.02259,"11.0-11.2":0.00864,"11.3-11.4":0.00864,"12.0-12.1":0.00731,"12.2-12.5":0.2093,"13.0-13.1":0.01196,"13.2":0.00465,"13.3":0.03522,"13.4-13.7":0.10166,"14.0-14.4":0.29103,"14.5-14.8":1.03588,"15.0-15.1":0.5588,"15.2-15.3":3.95679,"15.4":0.31163},P:{"4":0.12426,"5.0-5.4":0.0319,"6.2-6.4":0.01013,"7.2-7.4":0.1679,"8.2":0.02072,"9.2":0.06296,"10.1":0.02071,"11.1-11.2":0.05178,"12.0":0.02071,"13.0":0.10355,"14.0":0.16569,"15.0":0.12426,"16.0":3.02377},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00172,"4.2-4.3":0.00429,"4.4":0,"4.4.3-4.4.4":0.02833},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.2309,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":37.0895},S:{"2.5":0},R:{_:"0"},M:{"0":0.27475},Q:{"10.4":0},O:{"0":0.1202},H:{"0":0.43895}}; +module.exports={C:{"52":0.12247,"56":0.00454,"59":0.01361,"68":0.00907,"72":0.00907,"78":0.03629,"81":0.00907,"84":0.01814,"85":0.00454,"86":0.00454,"88":0.04082,"89":0.04536,"90":0.00454,"91":0.05443,"92":0.00454,"94":0.01361,"95":0.00907,"96":0.01361,"97":0.03175,"98":0.0635,"99":0.96617,"100":3.92818,"101":0.02722,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 82 83 87 93 102 103 3.5 3.6"},D:{"38":0.00454,"41":0.01814,"49":0.05443,"53":0.01814,"59":0.00454,"63":0.00907,"65":0.01361,"66":0.00907,"68":0.00454,"69":0.01814,"70":0.00907,"71":0.00907,"72":0.01814,"75":0.00907,"76":0.02268,"77":0.12247,"78":0.00454,"79":0.12247,"80":0.01814,"81":0.20412,"83":0.02722,"84":0.03175,"85":0.03629,"86":0.04082,"87":0.08165,"88":0.01814,"89":0.03629,"90":0.09526,"91":0.02722,"92":0.05443,"93":0.02268,"94":0.03629,"95":0.02722,"96":0.1633,"97":0.08618,"98":0.09526,"99":0.20866,"100":5.37062,"101":21.22848,"102":2.32697,"103":0.00454,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 60 61 62 64 67 73 74 104"},F:{"28":0.00907,"46":0.01361,"69":0.00454,"71":0.02268,"83":0.00454,"84":0.00907,"85":0.88452,"86":1.0841,"87":0.09072,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 11.1 11.5 11.6 12.1","10.0-10.1":0,"10.6":0.00454},B:{"17":0.01361,"18":0.01361,"83":0.02268,"85":0.00454,"86":0.00454,"89":0.00454,"92":0.00454,"94":0.00454,"96":0.00454,"97":0.00907,"98":0.01361,"99":0.04082,"100":0.16783,"101":3.16613,_:"12 13 14 15 16 79 80 81 84 87 88 90 91 93 95"},E:{"4":0,"13":0.00907,"14":0.0635,"15":0.01814,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00907,"12.1":0.01814,"13.1":0.13608,"14.1":0.24494,"15.1":0.05897,"15.2-15.3":0.08165,"15.4":0.74844,"15.5":0.09072},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00156,"8.1-8.4":0.00156,"9.0-9.2":0,"9.3":0.06171,"10.0-10.2":0,"10.3":0.02812,"11.0-11.2":0.00703,"11.3-11.4":0.00781,"12.0-12.1":0.00781,"12.2-12.5":0.19608,"13.0-13.1":0.00781,"13.2":0.00234,"13.3":0.0289,"13.4-13.7":0.09374,"14.0-14.4":0.24061,"14.5-14.8":0.81401,"15.0-15.1":0.27498,"15.2-15.3":0.67261,"15.4":5.36135},P:{"4":0.14485,"5.0-5.4":0.07256,"6.2-6.4":0.04147,"7.2-7.4":0.17623,"8.2":0.22305,"9.2":0.07256,"10.1":0.01035,"11.1-11.2":0.04139,"12.0":0.03104,"13.0":0.08277,"14.0":0.11381,"15.0":0.06208,"16.0":1.25195},I:{"0":0,"3":0,"4":0.0014,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0014,"4.2-4.3":0.00628,"4.4":0,"4.4.3-4.4.4":0.02372},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00454,"9":0.00454,"11":0.20866,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":39.69272},S:{"2.5":0},R:{_:"0"},M:{"0":0.3333},Q:{"10.4":0},O:{"0":0.08742},H:{"0":0.47074}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HT.js index cdea1ac5f41df5..e49a8f57506803 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HT.js @@ -1 +1 @@ -module.exports={C:{"52":0.00288,"78":0.00288,"87":0.00288,"88":0.00144,"91":0.00288,"94":0.00144,"95":0.01009,"96":0.00288,"97":0.13987,"98":0.34608,"99":0.00433,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 89 90 92 93 100 3.5 3.6"},D:{"36":0.00144,"42":0.00433,"43":0.00577,"44":0.00577,"49":0.00721,"50":0.00433,"55":0.00144,"56":0.00721,"58":0.00721,"59":0.00288,"60":0.10094,"62":0.00144,"63":0.01298,"64":0.00288,"65":0.01442,"66":0.00433,"67":0.00288,"68":0.0173,"69":0.02307,"70":0.00721,"71":0.00288,"72":0.00433,"73":0.00288,"74":0.0274,"75":0.00577,"76":0.09373,"77":0.0274,"78":0.00288,"79":0.02019,"80":0.01875,"81":0.04038,"83":0.00721,"84":0.02307,"85":0.01154,"86":0.02451,"87":0.02596,"88":0.07354,"89":0.02596,"90":0.02163,"91":0.01875,"92":0.06201,"93":0.04903,"94":0.05768,"95":0.01009,"96":0.07066,"97":0.1168,"98":1.31222,"99":4.54518,"100":0.05047,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 45 46 47 48 51 52 53 54 57 61 101 102 103"},F:{"15":0.00433,"77":0.00288,"79":0.00288,"82":0.01875,"83":0.02163,_:"9 11 12 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.04038,"13":0.01442,"14":0.01586,"15":0.01154,"16":0.00865,"17":0.01875,"18":0.06056,"84":0.01442,"85":0.00433,"86":0.02163,"89":0.02163,"90":0.00577,"91":0.00433,"92":0.0274,"93":0.00288,"94":0.00577,"95":0.00433,"96":0.01586,"97":0.04182,"98":0.34175,"99":1.35115,_:"79 80 81 83 87 88"},E:{"4":0,"13":0.02163,"14":0.0548,"15":0.01442,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.00288,"9.1":0.00288,"10.1":0.04759,"11.1":0.00721,"12.1":0.01298,"13.1":0.02163,"14.1":0.06633,"15.1":0.17304,"15.2-15.3":0.04038,"15.4":0.01586},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00731,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0414,"10.0-10.2":0.00244,"10.3":0.08279,"11.0-11.2":0.03044,"11.3-11.4":0.97159,"12.0-12.1":0.04992,"12.2-12.5":2.86608,"13.0-13.1":0.0901,"13.2":0.02435,"13.3":0.2569,"13.4-13.7":0.57833,"14.0-14.4":2.24514,"14.5-14.8":1.76664,"15.0-15.1":0.99716,"15.2-15.3":1.92249,"15.4":0.23498},P:{"4":0.48261,"5.0-5.4":0.08215,"6.2-6.4":0.04107,"7.2-7.4":0.25671,"8.2":0.12322,"9.2":0.1951,"10.1":0.02054,"11.1-11.2":0.47235,"12.0":0.03081,"13.0":0.11295,"14.0":0.25671,"15.0":0.17456,"16.0":1.13979},I:{"0":0,"3":0,"4":0.00027,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00073,"4.2-4.3":0.001,"4.4":0,"4.4.3-4.4.4":0.02368},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06922,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.09413},N:{"10":0.0329,_:"11"},L:{"0":72.05696},S:{"2.5":0},R:{_:"0"},M:{"0":0.22248},Q:{"10.4":0},O:{"0":0.19681},H:{"0":0.81012}}; +module.exports={C:{"52":0.00421,"71":0.00281,"78":0.00281,"91":0.00281,"92":0.0014,"95":0.00421,"97":0.0014,"98":0.00281,"99":0.10382,"100":0.57242,"101":0.00702,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 93 94 96 102 103 3.5 3.6"},D:{"18":0.0014,"36":0.0014,"38":0.00421,"42":0.0014,"43":0.00281,"44":0.00281,"49":0.00982,"50":0.00421,"53":0.00281,"54":0.00561,"55":0.00281,"56":0.00421,"58":0.00281,"60":0.03928,"61":0.00281,"63":0.01684,"64":0.00281,"65":0.00421,"66":0.00281,"67":0.05051,"68":0.00982,"69":0.00561,"70":0.01263,"71":0.00281,"72":0.00421,"74":0.01263,"75":0.01964,"76":0.10242,"77":0.01684,"78":0.00702,"79":0.00982,"80":0.01684,"81":0.02666,"83":0.00842,"84":0.00842,"85":0.03367,"86":0.02666,"87":0.02666,"88":0.02806,"89":0.01543,"90":0.02666,"91":0.01263,"92":0.11645,"93":0.03087,"94":0.10102,"95":0.05752,"96":0.03087,"97":0.02525,"98":0.07997,"99":0.15994,"100":1.3076,"101":4.41103,"102":0.40266,"103":0.00281,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 39 40 41 45 46 47 48 51 52 57 59 62 73 104"},F:{"53":0.00421,"58":0.0014,"79":0.0014,"83":0.0014,"84":0.0014,"85":0.16135,"86":0.21185,"87":0.00561,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03788,"13":0.00982,"14":0.01824,"15":0.00982,"16":0.02105,"17":0.00982,"18":0.03788,"80":0.00281,"84":0.03648,"85":0.03227,"87":0.00281,"89":0.00561,"90":0.00421,"92":0.01543,"93":0.00281,"94":0.0014,"95":0.00421,"96":0.00842,"97":0.02245,"98":0.01263,"99":0.07155,"100":0.13749,"101":1.4956,_:"79 81 83 86 88 91"},E:{"4":0,"12":0.0014,"13":0.02105,"14":0.07155,"15":0.01122,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00281,"11.1":0.00421,"12.1":0.00842,"13.1":0.10382,"14.1":0.05893,"15.1":0.02946,"15.2-15.3":0.01964,"15.4":0.19923,"15.5":0.01122},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00358,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.33888,"10.0-10.2":0.00477,"10.3":0.27922,"11.0-11.2":0.02029,"11.3-11.4":0.74816,"12.0-12.1":0.13484,"12.2-12.5":2.10845,"13.0-13.1":0.06921,"13.2":0.02983,"13.3":0.18615,"13.4-13.7":0.52383,"14.0-14.4":1.43308,"14.5-14.8":2.18959,"15.0-15.1":0.7935,"15.2-15.3":1.0417,"15.4":2.01896},P:{"4":0.26556,"5.0-5.4":0.17363,"6.2-6.4":0.02043,"7.2-7.4":0.32684,"8.2":0.01032,"9.2":0.21449,"10.1":0.01021,"11.1-11.2":0.38812,"12.0":0.03064,"13.0":0.21449,"14.0":0.31663,"15.0":0.12256,"16.0":1.00095},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00078,"4.2-4.3":0.00273,"4.4":0,"4.4.3-4.4.4":0.04808},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06734,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":71.97167},S:{"2.5":0},R:{_:"0"},M:{"0":0.12896},Q:{"10.4":0},O:{"0":0.18054},H:{"0":0.96041}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HU.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HU.js index aa4cd8bb4d447a..6df238d1659b43 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HU.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/HU.js @@ -1 +1 @@ -module.exports={C:{"47":0.00455,"50":0.00455,"51":0.00455,"52":0.1457,"60":0.00455,"66":0.00455,"68":0.01821,"69":0.00455,"72":0.00911,"74":0.00911,"78":0.03187,"80":0.00911,"81":0.00455,"83":0.01366,"84":0.0683,"87":0.00455,"88":0.03187,"89":0.01821,"90":0.00455,"91":0.10472,"92":0.00911,"93":0.00455,"94":0.01366,"95":0.04553,"96":0.94247,"97":2.18544,"98":3.84273,"99":0.00911,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 53 54 55 56 57 58 59 61 62 63 64 65 67 70 71 73 75 76 77 79 82 85 86 100 3.5 3.6"},D:{"34":0.01366,"38":0.03187,"47":0.00455,"49":0.19123,"53":0.01821,"66":0.02277,"68":0.00455,"71":0.00911,"74":0.00455,"76":0.00455,"77":0.00911,"78":0.00911,"79":0.28684,"80":0.00911,"81":0.01821,"83":0.02732,"84":0.01821,"85":0.01821,"86":0.02277,"87":0.3005,"88":0.02277,"89":0.03642,"90":0.02732,"91":0.03187,"92":0.04553,"93":0.2231,"94":0.02732,"95":0.03642,"96":0.18212,"97":0.56002,"98":6.16932,"99":20.53858,"100":0.06374,"101":0.00455,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 72 73 75 102 103"},F:{"36":0.00911,"46":0.00455,"82":0.03187,"83":0.48262,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00911,"18":0.00911,"87":0.00911,"89":0.00455,"92":0.00911,"96":0.00911,"97":0.09561,"98":0.97434,"99":2.47683,_:"12 13 14 15 16 79 80 81 83 84 85 86 88 90 91 93 94 95"},E:{"4":0,"13":0.12748,"14":0.10472,"15":0.05008,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01366,"12.1":0.02732,"13.1":0.09106,"14.1":0.23676,"15.1":0.10472,"15.2-15.3":0.11838,"15.4":0.11383},G:{"8":0.00106,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00212,"6.0-6.1":0,"7.0-7.1":0.00741,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02966,"10.0-10.2":0.00212,"10.3":0.03178,"11.0-11.2":0.01801,"11.3-11.4":0.00847,"12.0-12.1":0.01589,"12.2-12.5":0.27433,"13.0-13.1":0.01483,"13.2":0.00424,"13.3":0.04343,"13.4-13.7":0.1843,"14.0-14.4":0.35589,"14.5-14.8":1.26151,"15.0-15.1":0.56349,"15.2-15.3":7.00131,"15.4":0.76368},P:{"4":0.23855,"5.0-5.4":0.08215,"6.2-6.4":0.04107,"7.2-7.4":0.1545,"8.2":0.12322,"9.2":0.03255,"10.1":0.01085,"11.1-11.2":0.02074,"12.0":0.02074,"13.0":0.0726,"14.0":0.11409,"15.0":0.0726,"16.0":2.4892},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00255,"4.2-4.3":0.01528,"4.4":0,"4.4.3-4.4.4":0.08022},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.16391,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":39.8686},S:{"2.5":0},R:{_:"0"},M:{"0":0.31593},Q:{"10.4":0},O:{"0":0.04358},H:{"0":0.49506}}; +module.exports={C:{"47":0.00441,"51":0.00441,"52":0.11476,"56":0.00441,"66":0.00441,"68":0.01766,"69":0.00441,"72":0.00883,"74":0.00441,"75":0.00441,"78":0.03531,"81":0.01324,"82":0.00441,"83":0.00883,"84":0.01324,"88":0.02207,"89":0.01766,"91":0.09711,"92":0.00441,"93":0.00441,"94":0.00883,"95":0.01766,"96":0.31339,"97":0.02648,"98":0.26043,"99":1.89361,"100":4.83774,"101":0.01324,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 53 54 55 57 58 59 60 61 62 63 64 65 67 70 71 73 76 77 79 80 85 86 87 90 102 103 3.5 3.6"},D:{"34":0.00883,"38":0.02207,"49":0.07062,"53":0.01766,"58":0.00441,"66":0.00883,"68":0.00441,"69":0.01324,"71":0.00883,"73":0.00441,"74":0.00441,"76":0.00883,"77":0.00441,"78":0.01766,"79":0.27808,"80":0.00883,"81":0.01766,"83":0.01766,"84":0.0309,"85":0.02648,"86":0.02648,"87":0.21629,"88":0.01766,"89":0.0309,"90":0.02207,"91":0.03973,"92":0.02648,"93":0.01324,"94":0.01324,"95":0.03531,"96":0.06621,"97":0.04414,"98":0.12359,"99":0.61355,"100":4.76271,"101":19.11703,"102":1.71705,"103":0.00441,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 61 62 63 64 65 67 70 72 75 104"},F:{"28":0.00441,"36":0.00883,"46":0.00441,"83":0.00441,"84":0.01766,"85":0.8828,"86":1.0417,"87":0.04414,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.01324,"18":0.01324,"87":0.00883,"92":0.00883,"97":0.01766,"98":0.07504,"99":0.22511,"100":0.30015,"101":3.0589,_:"12 13 14 15 16 79 80 81 83 84 85 86 88 89 90 91 93 94 95 96"},E:{"4":0,"13":0.04414,"14":0.07504,"15":0.02648,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01324,"12.1":0.02648,"13.1":0.08828,"14.1":0.18539,"15.1":0.05738,"15.2-15.3":0.05297,"15.4":0.80335,"15.5":0.11476},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00319,"6.0-6.1":0,"7.0-7.1":0.00744,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02657,"10.0-10.2":0,"10.3":0.03188,"11.0-11.2":0.01169,"11.3-11.4":0.00956,"12.0-12.1":0.01382,"12.2-12.5":0.254,"13.0-13.1":0.0085,"13.2":0.00425,"13.3":0.02976,"13.4-13.7":0.12009,"14.0-14.4":0.27207,"14.5-14.8":0.85979,"15.0-15.1":0.26463,"15.2-15.3":0.76945,"15.4":7.93787},P:{"4":0.30985,"5.0-5.4":0.01035,"6.2-6.4":0.02043,"7.2-7.4":0.20692,"8.2":0.02069,"9.2":0.02163,"10.1":0.01081,"11.1-11.2":0.02066,"12.0":0.01033,"13.0":0.06197,"14.0":0.10328,"15.0":0.04131,"16.0":0.95022},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00267,"4.2-4.3":0.01067,"4.4":0,"4.4.3-4.4.4":0.07604},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10594,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":41.48966},S:{"2.5":0},R:{_:"0"},M:{"0":0.34075},Q:{"10.4":0},O:{"0":0.0391},H:{"0":0.49712}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ID.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ID.js index d01da771e6a2ca..a049532164f539 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ID.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ID.js @@ -1 +1 @@ -module.exports={C:{"36":0.16295,"45":0.00326,"47":0.00326,"52":0.02281,"56":0.00978,"60":0.00326,"62":0.00326,"66":0.00326,"68":0.00326,"69":0.00326,"72":0.01304,"78":0.01304,"79":0.00326,"80":0.00326,"81":0.00326,"83":0.00652,"84":0.00978,"85":0.00326,"86":0.00326,"87":0.00326,"88":0.02281,"89":0.01304,"90":0.00652,"91":0.02281,"92":0.00978,"93":0.01304,"94":0.02281,"95":0.02281,"96":0.03911,"97":1.01681,"98":1.72401,"99":0.06518,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 46 48 49 50 51 53 54 55 57 58 59 61 63 64 65 67 70 71 73 74 75 76 77 82 100 3.5 3.6"},D:{"25":0.00652,"49":0.01304,"58":0.00652,"63":0.01304,"67":0.00652,"68":0.00326,"69":0.00652,"70":0.01304,"71":0.0163,"72":0.00652,"73":0.00652,"74":0.01304,"75":0.00978,"76":0.00978,"77":0.00978,"78":0.00978,"79":0.04237,"80":0.01955,"81":0.01304,"83":0.02281,"84":0.02607,"85":0.02607,"86":0.04563,"87":0.06518,"88":0.02933,"89":0.10103,"90":0.02281,"91":0.03585,"92":0.04563,"93":0.11732,"94":0.04889,"95":0.04237,"96":0.15643,"97":0.26398,"98":4.90805,"99":17.66378,"100":0.01304,"101":0.00978,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 64 65 66 102 103"},F:{"82":0.00652,"83":0.08799,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00652,"14":0.00652,"15":0.00326,"17":0.00326,"18":0.0163,"84":0.00326,"89":0.00326,"92":0.00652,"94":0.00326,"95":0.00326,"96":0.0163,"97":0.02281,"98":0.41389,"99":1.68164,_:"13 16 79 80 81 83 85 86 87 88 90 91 93"},E:{"4":0,"12":0.00326,"13":0.0163,"14":0.0717,"15":0.02933,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 10.1","5.1":0.09125,"9.1":0.00326,"11.1":0.00652,"12.1":0.01955,"13.1":0.08148,"14.1":0.16295,"15.1":0.06844,"15.2-15.3":0.0554,"15.4":0.03259},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00051,"5.0-5.1":0.00051,"6.0-6.1":0,"7.0-7.1":0.00051,"8.1-8.4":0,"9.0-9.2":0.00051,"9.3":0.00926,"10.0-10.2":0.00154,"10.3":0.01388,"11.0-11.2":0.00771,"11.3-11.4":0.00668,"12.0-12.1":0.01286,"12.2-12.5":0.26637,"13.0-13.1":0.01286,"13.2":0.0072,"13.3":0.04217,"13.4-13.7":0.11262,"14.0-14.4":0.39699,"14.5-14.8":0.83974,"15.0-15.1":0.59856,"15.2-15.3":2.44671,"15.4":0.35945},P:{"4":0.18916,"5.0-5.4":0.08215,"6.2-6.4":0.02113,"7.2-7.4":0.09458,"8.2":0.12322,"9.2":0.03153,"10.1":0.01051,"11.1-11.2":0.10509,"12.0":0.03153,"13.0":0.1156,"14.0":0.14713,"15.0":0.1156,"16.0":1.20854},I:{"0":0,"3":0.00172,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00129,"4.4":0,"4.4.3-4.4.4":0.01721},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06192,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":59.09099},S:{"2.5":0},R:{_:"0"},M:{"0":0.10112},Q:{"10.4":0},O:{"0":1.03137},H:{"0":0.95729}}; +module.exports={C:{"36":0.14401,"45":0.00294,"47":0.00294,"52":0.02645,"56":0.00588,"60":0.00294,"66":0.00294,"68":0.00294,"72":0.00882,"78":0.01176,"80":0.00294,"81":0.00588,"82":0.00294,"83":0.00588,"84":0.00294,"85":0.00294,"88":0.02057,"89":0.00882,"90":0.00588,"91":0.01763,"92":0.00588,"93":0.00588,"94":0.00882,"95":0.01176,"96":0.01176,"97":0.0147,"98":0.03233,"99":0.32917,"100":2.04554,"101":0.06466,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 46 48 49 50 51 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 86 87 102 103 3.5","3.6":0.01176},D:{"25":0.00588,"41":0.00294,"49":0.00882,"58":0.00588,"63":0.01176,"66":0.00588,"67":0.00588,"68":0.00294,"69":0.00588,"70":0.00882,"71":0.01763,"72":0.00588,"73":0.00588,"74":0.00882,"75":0.00588,"76":0.00588,"77":0.00588,"78":0.00882,"79":0.03527,"80":0.02351,"81":0.01176,"83":0.02351,"84":0.02645,"85":0.02939,"86":0.04409,"87":0.04702,"88":0.01763,"89":0.08523,"90":0.0147,"91":0.02939,"92":0.03821,"93":0.02351,"94":0.03233,"95":0.02645,"96":0.07348,"97":0.06172,"98":0.08523,"99":0.1734,"100":2.45994,"101":16.09103,"102":1.47832,"103":0.00882,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 64 65 104"},F:{"84":0.00294,"85":0.18516,"86":0.25569,"87":0.0147,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00588,"14":0.00294,"15":0.00294,"18":0.0147,"84":0.00294,"92":0.00882,"96":0.00882,"97":0.00588,"98":0.00882,"99":0.02057,"100":0.1058,"101":1.79573,_:"13 16 17 79 80 81 83 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"12":0.00294,"13":0.0147,"14":0.04996,"15":0.01763,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 10.1","5.1":0.08229,"9.1":0.00588,"11.1":0.00588,"12.1":0.0147,"13.1":0.06466,"14.1":0.11168,"15.1":0.04115,"15.2-15.3":0.02939,"15.4":0.24688,"15.5":0.02645},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00052,"5.0-5.1":0.00052,"6.0-6.1":0,"7.0-7.1":0.00052,"8.1-8.4":0.00155,"9.0-9.2":0.00052,"9.3":0.00984,"10.0-10.2":0.00155,"10.3":0.01347,"11.0-11.2":0.01139,"11.3-11.4":0.00621,"12.0-12.1":0.01139,"12.2-12.5":0.22736,"13.0-13.1":0.01088,"13.2":0.0057,"13.3":0.03418,"13.4-13.7":0.07976,"14.0-14.4":0.28174,"14.5-14.8":0.55002,"15.0-15.1":0.31127,"15.2-15.3":0.50548,"15.4":3.1111},P:{"4":0.19959,"5.0-5.4":0.01035,"6.2-6.4":0.02125,"7.2-7.4":0.09454,"8.2":0.02069,"9.2":0.03151,"10.1":0.02101,"11.1-11.2":0.09454,"12.0":0.03151,"13.0":0.10505,"14.0":0.11555,"15.0":0.08404,"16.0":0.6723},I:{"0":0,"3":0.00226,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00169,"4.2-4.3":0.00226,"4.4":0,"4.4.3-4.4.4":0.02203},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01763,"11":0.08817,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":62.30338},S:{"2.5":0},R:{_:"0"},M:{"0":0.11296},Q:{"10.4":0},O:{"0":1.21432},H:{"0":1.13627}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IE.js index bd1644b0407372..03f30be4ad581c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IE.js @@ -1 +1 @@ -module.exports={C:{"11":0.01751,"38":0.0035,"43":0.0035,"44":0.01401,"45":0.0035,"52":0.01401,"57":0.007,"70":0.007,"72":0.0035,"78":0.04903,"79":0.01751,"80":0.02101,"81":0.01401,"82":0.01051,"83":0.01401,"84":0.007,"87":0.10506,"88":0.0035,"91":0.04903,"94":0.007,"95":0.01051,"96":0.01751,"97":0.57433,"98":0.86149,"99":0.007,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 48 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 71 73 74 75 76 77 85 86 89 90 92 93 100 3.5 3.6"},D:{"17":0.0035,"38":0.0035,"43":0.0035,"47":0.0035,"48":0.04202,"49":0.04553,"53":0.007,"63":0.007,"64":0.007,"65":0.01751,"67":0.007,"69":0.01751,"70":0.007,"71":0.01051,"72":0.007,"73":0.007,"74":0.01051,"75":0.007,"76":0.02451,"77":0.01751,"78":0.79145,"79":0.05603,"80":0.05253,"81":0.09455,"83":0.08755,"84":0.10506,"85":0.12957,"86":0.15059,"87":0.16459,"88":0.08055,"89":0.04553,"90":0.02802,"91":0.07354,"92":0.03152,"93":0.24164,"94":0.06654,"95":0.02802,"96":0.14358,"97":1.07511,"98":5.86585,"99":12.35856,"100":0.01401,"101":0.007,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 50 51 52 54 55 56 57 58 59 60 61 62 66 68 102 103"},F:{"68":0.007,"69":0.01401,"70":0.0035,"71":0.01051,"82":0.0035,"83":0.22063,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.007,"17":0.0035,"18":0.03502,"80":0.0035,"83":0.007,"84":0.01051,"85":0.01401,"86":0.007,"87":0.01401,"88":0.007,"92":0.007,"94":0.007,"95":0.007,"96":0.01401,"97":0.13308,"98":0.85099,"99":2.37085,_:"12 13 14 15 79 81 89 90 91 93"},E:{"4":0,"8":0.0035,"9":0.01051,"11":0.0035,"13":0.08755,"14":0.66188,"15":0.12607,_:"0 5 6 7 10 12 3.1 3.2 6.1 7.1","5.1":0.0035,"9.1":0.0035,"10.1":0.01051,"11.1":0.02451,"12.1":0.05953,"13.1":0.30818,"14.1":1.28523,"15.1":0.42374,"15.2-15.3":0.47977,"15.4":0.09806},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.01467,"7.0-7.1":0.05575,"8.1-8.4":0.0088,"9.0-9.2":0,"9.3":0.11736,"10.0-10.2":0,"10.3":0.15257,"11.0-11.2":0.03227,"11.3-11.4":0.02641,"12.0-12.1":0.03227,"12.2-12.5":1.10612,"13.0-13.1":0.02934,"13.2":0.03227,"13.3":0.10269,"13.4-13.7":0.33741,"14.0-14.4":1.10612,"14.5-14.8":5.51301,"15.0-15.1":1.82202,"15.2-15.3":18.17035,"15.4":0.66602},P:{"4":0.03117,"5.0-5.4":0.01039,"6.2-6.4":0.04029,"7.2-7.4":0.02078,"8.2":0.09059,"9.2":0.01039,"10.1":0.04029,"11.1-11.2":0.08312,"12.0":0.03117,"13.0":0.12468,"14.0":0.18702,"15.0":0.12468,"16.0":3.26241},I:{"0":0,"3":0,"4":0.00366,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00244,"4.2-4.3":0.00853,"4.4":0,"4.4.3-4.4.4":0.04386},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01091,"9":0.12001,"11":0.2473,_:"6 7 10 5.5"},J:{"7":0,"10":0.0065},N:{"10":0.03368,_:"11"},L:{"0":29.74575},S:{"2.5":0},R:{_:"0"},M:{"0":0.53933},Q:{"10.4":0},O:{"0":0.03249},H:{"0":0.19071}}; +module.exports={C:{"11":0.01357,"38":0.01696,"43":0.01696,"44":0.07462,"45":0.01696,"48":0.00678,"52":0.02035,"56":0.01357,"70":0.00678,"78":0.05766,"79":0.00678,"80":0.01018,"81":0.02035,"82":0.00339,"83":0.01018,"87":0.11533,"88":0.00339,"91":0.02714,"94":0.00339,"96":0.00339,"97":0.01018,"98":0.01696,"99":0.26458,"100":1.07866,"101":0.01018,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 84 85 86 89 90 92 93 95 102 103 3.5 3.6"},D:{"17":0.00339,"37":0.00339,"38":0.00678,"41":0.01018,"47":0.02035,"48":0.20352,"49":0.07802,"51":0.00339,"53":0.01018,"65":0.01357,"67":0.00339,"69":0.00678,"70":0.00678,"71":0.00678,"72":0.00678,"74":0.00339,"75":0.01696,"76":0.02035,"77":0.01357,"78":0.08141,"79":0.09498,"80":0.03053,"81":0.11194,"83":0.08141,"84":0.09158,"85":0.09498,"86":0.09158,"87":0.18995,"88":0.01357,"89":0.05088,"90":0.01696,"91":0.07462,"92":0.02714,"93":0.0407,"94":0.03731,"95":0.02035,"96":0.07123,"97":0.1696,"98":0.10854,"99":0.50202,"100":3.72442,"101":13.55104,"102":1.2313,"103":0.00678,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39 40 42 43 44 45 46 50 52 54 55 56 57 58 59 60 61 62 63 64 66 68 73 104"},F:{"85":0.27136,"86":0.24422,"87":0.01357,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00678,"13":0.00678,"15":0.00678,"16":0.00339,"17":0.00339,"18":0.03053,"80":0.00339,"84":0.00339,"86":0.01357,"88":0.01018,"90":0.00339,"92":0.00678,"95":0.00678,"96":0.01018,"97":0.01696,"98":0.02374,"99":0.0848,"100":0.19334,"101":3.14099,_:"14 79 81 83 85 87 89 91 93 94"},E:{"4":0,"6":0.00339,"7":0.00339,"8":0.00678,"9":0.03053,"13":0.06445,"14":0.48166,"15":0.07802,_:"0 5 10 11 12 3.1 3.2 6.1 7.1","5.1":0.00339,"9.1":0.00678,"10.1":0.01018,"11.1":0.02035,"12.1":0.0441,"13.1":0.26797,"14.1":0.89549,"15.1":0.20691,"15.2-15.3":0.19334,"15.4":2.43885,"15.5":0.28493},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.01212,"7.0-7.1":0.06062,"8.1-8.4":0.01212,"9.0-9.2":0.00606,"9.3":0.13337,"10.0-10.2":0,"10.3":0.1455,"11.0-11.2":0.01819,"11.3-11.4":0.02728,"12.0-12.1":0.02728,"12.2-12.5":1.08821,"13.0-13.1":0.02122,"13.2":0.0485,"13.3":0.06972,"13.4-13.7":0.24553,"14.0-14.4":0.87906,"14.5-14.8":3.81935,"15.0-15.1":0.89421,"15.2-15.3":2.58867,"15.4":20.19405},P:{"4":0.04133,"5.0-5.4":0.06059,"6.2-6.4":0.0505,"7.2-7.4":0.031,"8.2":0.07069,"9.2":0.07163,"10.1":0.10099,"11.1-11.2":0.09299,"12.0":0.02067,"13.0":0.09299,"14.0":0.16532,"15.0":0.062,"16.0":1.32256},I:{"0":0,"3":0,"4":0.00322,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00484,"4.2-4.3":0.00806,"4.4":0,"4.4.3-4.4.4":0.04996},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.13015,"11":0.22262,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":31.42736},S:{"2.5":0},R:{_:"0"},M:{"0":0.54846},Q:{"10.4":0},O:{"0":0.02643},H:{"0":0.18768}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IL.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IL.js index 1d407cc4153459..dae8e143d48bba 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IL.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IL.js @@ -1 +1 @@ -module.exports={C:{"24":0.00372,"25":0.01116,"26":0.02605,"27":0.00372,"36":0.00372,"52":0.02233,"56":0.01116,"66":0.00744,"68":0.00372,"72":0.00372,"78":0.01861,"79":0.11535,"80":0.18605,"84":0.00744,"88":0.00744,"89":0.00372,"91":0.01861,"93":0.00372,"94":0.00372,"95":0.01116,"96":0.03721,"97":0.46885,"98":0.82978,"99":0.00744,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 81 82 83 85 86 87 90 92 100 3.5 3.6"},D:{"31":0.03349,"32":0.00744,"38":0.02977,"49":0.02977,"53":0.00744,"55":0.00744,"56":0.00372,"58":0.00372,"63":0.01861,"64":0.00372,"65":0.00744,"66":0.00372,"67":0.00372,"68":0.01116,"69":0.00372,"70":0.00744,"71":0.00744,"72":0.00372,"73":0.03349,"74":0.01488,"75":0.01116,"76":0.00744,"77":0.00744,"78":0.01116,"79":0.08558,"80":0.39071,"81":0.01488,"83":0.01861,"84":0.01116,"85":0.02605,"86":0.03349,"87":0.0707,"88":0.01116,"89":0.08186,"90":0.02605,"91":0.03349,"92":0.02977,"93":0.0707,"94":0.04093,"95":0.04093,"96":0.27535,"97":0.38326,"98":6.70152,"99":20.21991,"100":0.17489,"101":0.00744,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 57 59 60 61 62 102 103"},F:{"28":0.00744,"77":0.00372,"79":0.00372,"80":0.00372,"81":0.00372,"82":0.00744,"83":0.15628,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01488,"90":0.00744,"91":0.00372,"92":0.00744,"93":0.00372,"95":0.00744,"96":0.03721,"97":0.04465,"98":0.50234,"99":1.77864,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 94"},E:{"4":0,"7":0.00372,"8":0.13024,"13":0.05209,"14":0.07814,"15":0.03349,_:"0 5 6 9 10 11 12 3.1 3.2 5.1 7.1 9.1 10.1","6.1":0.00744,"11.1":0.00744,"12.1":0.01488,"13.1":0.07814,"14.1":0.34605,"15.1":0.09303,"15.2-15.3":0.13024,"15.4":0.06698},G:{"8":0.00387,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00516,"6.0-6.1":0.00129,"7.0-7.1":0.0232,"8.1-8.4":0.00773,"9.0-9.2":0.00258,"9.3":0.07089,"10.0-10.2":0.00387,"10.3":0.08506,"11.0-11.2":0.03222,"11.3-11.4":0.03609,"12.0-12.1":0.03995,"12.2-12.5":0.38665,"13.0-13.1":0.02707,"13.2":0.0116,"13.3":0.058,"13.4-13.7":0.16239,"14.0-14.4":0.57998,"14.5-14.8":2.26062,"15.0-15.1":0.70757,"15.2-15.3":7.80649,"15.4":0.57224},P:{"4":0.05134,"5.0-5.4":0.01039,"6.2-6.4":0.04029,"7.2-7.4":0.01027,"8.2":0.09059,"9.2":0.09242,"10.1":0.02054,"11.1-11.2":0.22592,"12.0":0.1335,"13.0":0.22592,"14.0":0.31834,"15.0":0.20538,"16.0":5.84304},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00171,"4.2-4.3":0.00571,"4.4":0,"4.4.3-4.4.4":0.0177},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00744,"10":0.00744,"11":0.30884,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":42.23536},S:{"2.5":0},R:{_:"0"},M:{"0":0.17581},Q:{"10.4":0},O:{"0":0.06279},H:{"0":0.35667}}; +module.exports={C:{"24":0.00382,"25":0.01145,"26":0.03053,"27":0.00382,"36":0.00382,"52":0.02671,"56":0.0229,"66":0.00382,"78":0.0229,"79":0.1183,"80":0.06869,"81":0.00382,"88":0.00763,"89":0.00382,"91":0.01526,"95":0.00382,"97":0.01145,"98":0.01908,"99":0.24804,"100":1.08756,"101":0.00763,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 82 83 84 85 86 87 90 92 93 94 96 102 103 3.5 3.6"},D:{"31":0.04579,"32":0.01145,"34":0.00382,"35":0.1183,"38":0.0229,"49":0.03434,"53":0.00763,"55":0.00382,"63":0.00763,"65":0.01145,"67":0.00763,"68":0.01145,"69":0.00763,"70":0.00763,"71":0.00763,"72":0.00763,"73":0.0229,"74":0.01526,"75":0.00763,"76":0.01145,"77":0.00763,"78":0.01145,"79":0.09922,"80":0.37015,"81":0.01526,"83":0.03434,"84":0.03053,"85":0.04198,"86":0.03816,"87":0.07632,"88":0.01526,"89":0.06487,"90":0.04198,"91":0.04579,"92":0.06106,"93":0.03816,"94":0.04198,"95":0.04198,"96":0.14501,"97":0.08014,"98":0.12211,"99":0.32818,"100":5.19358,"101":20.20954,"102":2.0263,"103":0.00763,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 33 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 56 57 58 59 60 61 62 64 66 104"},F:{"28":0.00763,"85":0.31291,"86":0.32436,"87":0.01908,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01145,"84":0.00382,"85":0.00382,"91":0.00763,"92":0.01145,"96":0.03434,"97":0.01526,"98":0.01908,"99":0.05342,"100":0.14882,"101":2.25144,_:"12 13 14 15 16 17 79 80 81 83 86 87 88 89 90 93 94 95"},E:{"4":0,"7":0.00382,"8":0.14882,"13":0.01908,"14":0.0725,"15":0.01908,_:"0 5 6 9 10 11 12 3.1 3.2 5.1 7.1 10.1","6.1":0.01145,"9.1":0.00763,"11.1":0.00763,"12.1":0.00763,"13.1":0.08777,"14.1":0.27094,"15.1":0.06106,"15.2-15.3":0.06106,"15.4":0.72886,"15.5":0.07632},G:{"8":0.00266,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00399,"6.0-6.1":0.00266,"7.0-7.1":0.02397,"8.1-8.4":0.00799,"9.0-9.2":0,"9.3":0.0679,"10.0-10.2":0.00399,"10.3":0.06924,"11.0-11.2":0.01465,"11.3-11.4":0.02929,"12.0-12.1":0.02929,"12.2-12.5":0.34085,"13.0-13.1":0.01598,"13.2":0.01065,"13.3":0.05725,"13.4-13.7":0.13847,"14.0-14.4":0.56055,"14.5-14.8":1.55382,"15.0-15.1":0.34219,"15.2-15.3":1.04786,"15.4":8.98471},P:{"4":0.08235,"5.0-5.4":0.06059,"6.2-6.4":0.0505,"7.2-7.4":0.01029,"8.2":0.07069,"9.2":0.05147,"10.1":0.01029,"11.1-11.2":0.15441,"12.0":0.08235,"13.0":0.15441,"14.0":0.21617,"15.0":0.13382,"16.0":2.06905},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00251,"4.2-4.3":0.00418,"4.4":0,"4.4.3-4.4.4":0.02423},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00382,"9":0.01145,"10":0.01145,"11":0.3091,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":42.00641},S:{"2.5":0},R:{_:"0"},M:{"0":0.20407},Q:{"10.4":0},O:{"0":0.05566},H:{"0":0.29859}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IM.js index 05d6fe5fea9c3d..952064696fdcfe 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IM.js @@ -1 +1 @@ -module.exports={C:{"52":0.26251,"77":0.01486,"78":0.01486,"83":0.03962,"84":0.00991,"87":0.05448,"91":0.00991,"92":0.02477,"94":0.01486,"95":0.00991,"96":0.02972,"97":0.84696,"98":1.71869,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 85 86 88 89 90 93 99 100 3.5 3.6"},D:{"49":0.02972,"56":0.00991,"65":0.04458,"66":0.00495,"67":0.00991,"70":0.00991,"76":0.01981,"77":0.00495,"78":0.02477,"79":0.01486,"81":0.00495,"84":0.01486,"85":0.26251,"86":0.04953,"87":0.04458,"89":0.00991,"90":0.00991,"91":0.0743,"92":0.05448,"93":0.03467,"94":0.29223,"95":0.03962,"96":0.18326,"97":0.64389,"98":4.96786,"99":16.28546,"100":0.13373,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 68 69 71 72 73 74 75 80 83 88 101 102 103"},F:{"76":0.14859,"82":0.00495,"83":0.3368,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00991,"18":0.04458,"87":0.00991,"90":0.02972,"92":0.00991,"95":0.02972,"96":0.01981,"97":0.14364,"98":1.74346,"99":7.78116,_:"12 13 14 15 17 79 80 81 83 84 85 86 88 89 91 93 94"},E:{"4":0,"11":0.00991,"12":0.02477,"13":0.17831,"14":0.47549,"15":0.1684,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.03962,"10.1":0.05944,"11.1":0.10897,"12.1":0.20307,"13.1":0.95098,"14.1":1.27292,"15.1":0.55969,"15.2-15.3":0.76772,"15.4":0.52007},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.01433,"7.0-7.1":0.01146,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.39265,"10.0-10.2":0.00287,"10.3":0.33532,"11.0-11.2":0.0086,"11.3-11.4":0.12037,"12.0-12.1":0.02293,"12.2-12.5":1.79126,"13.0-13.1":0.01146,"13.2":0,"13.3":0.03439,"13.4-13.7":0.39838,"14.0-14.4":1.04896,"14.5-14.8":3.54527,"15.0-15.1":1.56485,"15.2-15.3":18.57183,"15.4":0.76236},P:{"4":0.03317,"5.0-5.4":0.01039,"6.2-6.4":0.04029,"7.2-7.4":0.02078,"8.2":0.09059,"9.2":0.03317,"10.1":0.04029,"11.1-11.2":0.08312,"12.0":0.04422,"13.0":0.06633,"14.0":0.02211,"15.0":0.06633,"16.0":4.15673},I:{"0":0,"3":0,"4":0.00524,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00291,"4.4":0,"4.4.3-4.4.4":0.00699},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00991,"11":0.28232,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":16.44621},S:{"2.5":0},R:{_:"0"},M:{"0":0.78244},Q:{"10.4":0},O:{"0":0},H:{"0":0.10036}}; +module.exports={C:{"48":0.06111,"52":0.25385,"78":0.0047,"83":0.03761,"84":0.05171,"91":0.0141,"95":0.0141,"96":0.0047,"98":0.0141,"99":0.4654,"100":2.02143,"101":0.0094,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 85 86 87 88 89 90 92 93 94 97 102 103 3.5 3.6"},D:{"49":0.02821,"65":0.0094,"67":0.0047,"78":0.0188,"79":0.0094,"84":0.0047,"85":0.23975,"86":0.0047,"87":0.11282,"90":0.04701,"91":0.12223,"92":0.09872,"93":0.07992,"94":0.06111,"95":0.03761,"96":0.05171,"97":0.07052,"98":0.20214,"99":0.30086,"100":3.10266,"101":13.43546,"102":1.43851,"103":0.0188,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 68 69 70 71 72 73 74 75 76 77 80 81 83 88 89 104"},F:{"46":0.0188,"71":0.02821,"74":0.0141,"85":0.22095,"86":0.30086,"87":0.0047,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.0141,"92":0.0047,"95":0.05171,"96":0.0141,"97":0.0141,"98":0.0141,"99":0.09872,"100":0.49831,"101":8.13273,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94"},E:{"4":0,"11":0.02821,"12":0.0188,"13":0.11753,"14":0.40429,"15":0.07992,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0141,"11.1":0.21625,"12.1":0.21155,"13.1":0.72395,"14.1":1.70176,"15.1":0.21625,"15.2-15.3":0.31497,"15.4":8.9084,"15.5":0.49831},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00642,"7.0-7.1":0.00962,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.37209,"10.0-10.2":0,"10.3":0.2085,"11.0-11.2":0.01925,"11.3-11.4":0.01283,"12.0-12.1":0.01604,"12.2-12.5":1.66159,"13.0-13.1":0.00321,"13.2":0.00321,"13.3":0.04812,"13.4-13.7":0.43946,"14.0-14.4":1.0393,"14.5-14.8":2.58862,"15.0-15.1":1.37931,"15.2-15.3":1.81236,"15.4":22.44433},P:{"4":0.04133,"5.0-5.4":0.06059,"6.2-6.4":0.0505,"7.2-7.4":0.031,"8.2":0.07069,"9.2":0.07163,"10.1":0.03281,"11.1-11.2":0.01094,"12.0":0.04374,"13.0":0.07655,"14.0":0.04374,"15.0":0.03281,"16.0":1.017},I:{"0":0,"3":0,"4":0.00421,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00118,"4.4":0,"4.4.3-4.4.4":0.00521},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0094,"11":0.21625,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":16.97092},S:{"2.5":0},R:{_:"0"},M:{"0":0.56699},Q:{"10.4":0},O:{"0":0.0106},H:{"0":0.03512}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IN.js index 07eced4de3484a..b10f0366c11255 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IN.js @@ -1 +1 @@ -module.exports={C:{"40":0.00233,"42":0.00466,"43":0.00233,"47":0.00699,"48":0.00233,"51":0.00233,"52":0.02796,"56":0.00466,"60":0.00233,"66":0.00466,"68":0.00233,"72":0.00699,"78":0.00699,"80":0.00233,"81":0.00233,"83":0.00233,"87":0.00233,"88":0.01398,"89":0.00699,"90":0.00699,"91":0.03728,"92":0.00932,"93":0.00932,"94":0.01631,"95":0.02097,"96":0.01631,"97":0.47998,"98":0.72929,"99":0.05126,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 44 45 46 49 50 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 82 84 85 86 100 3.5 3.6"},D:{"49":0.0233,"55":0.00233,"56":0.00233,"58":0.00233,"63":0.01631,"64":0.00466,"66":0.00233,"67":0.00466,"68":0.00233,"69":0.00466,"70":0.01398,"71":0.03262,"72":0.00466,"73":0.00466,"74":0.01165,"75":0.00466,"76":0.00466,"77":0.00466,"78":0.00932,"79":0.02097,"80":0.02796,"81":0.01398,"83":0.03262,"84":0.01631,"85":0.01631,"86":0.0233,"87":0.05592,"88":0.01631,"89":0.0233,"90":0.03029,"91":0.04427,"92":0.05825,"93":0.08388,"94":0.06058,"95":0.04194,"96":0.17941,"97":0.28659,"98":4.22895,"99":12.54472,"100":0.03029,"101":0.0233,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 57 59 60 61 62 65 102 103"},F:{"49":0.01398,"82":0.00699,"83":0.03728,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00699,"16":0.00233,"17":0.00233,"18":0.00932,"84":0.00233,"89":0.00233,"90":0.00233,"92":0.00466,"95":0.00233,"96":0.00699,"97":0.01398,"98":0.21902,"99":0.68502,_:"13 14 15 79 80 81 83 85 86 87 88 91 93 94"},E:{"4":0,"13":0.00699,"14":0.01864,"15":0.01165,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.00466,"12.1":0.00466,"13.1":0.01864,"14.1":0.05359,"15.1":0.02796,"15.2-15.3":0.03262,"15.4":0.0233},G:{"8":0.001,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00025,"5.0-5.1":0,"6.0-6.1":0.00075,"7.0-7.1":0.00778,"8.1-8.4":0,"9.0-9.2":0.0005,"9.3":0.00627,"10.0-10.2":0.00125,"10.3":0.00828,"11.0-11.2":0.0592,"11.3-11.4":0.00452,"12.0-12.1":0.00627,"12.2-12.5":0.12317,"13.0-13.1":0.01229,"13.2":0.00276,"13.3":0.01079,"13.4-13.7":0.03336,"14.0-14.4":0.13998,"14.5-14.8":0.28246,"15.0-15.1":0.24282,"15.2-15.3":1.37592,"15.4":0.18814},P:{"4":0.22189,"5.0-5.4":0.08215,"6.2-6.4":0.02113,"7.2-7.4":0.12679,"8.2":0.12322,"9.2":0.04226,"10.1":0.01049,"11.1-11.2":0.04226,"12.0":0.02113,"13.0":0.0951,"14.0":0.12679,"15.0":0.0951,"16.0":0.63397},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00418,"4.4":0,"4.4.3-4.4.4":0.01882},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04427,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":69.21074},S:{"2.5":0.73622},R:{_:"0"},M:{"0":0.14571},Q:{"10.4":0},O:{"0":1.90958},H:{"0":2.34515}}; +module.exports={C:{"42":0.00484,"47":0.00726,"48":0.00242,"52":0.0242,"56":0.00484,"66":0.00484,"72":0.00484,"78":0.00726,"79":0.00242,"80":0.00484,"82":0.00242,"83":0.00242,"88":0.01452,"89":0.00968,"90":0.00726,"91":0.0242,"92":0.00242,"93":0.00242,"94":0.00726,"95":0.00726,"96":0.00968,"97":0.00968,"98":0.01694,"99":0.26378,"100":1.0527,"101":0.07018,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 81 84 85 86 87 102 103 3.5 3.6"},D:{"49":0.01936,"55":0.00242,"56":0.00242,"58":0.00242,"63":0.01452,"64":0.00484,"65":0.00242,"66":0.00242,"67":0.00484,"68":0.00242,"69":0.00484,"70":0.0121,"71":0.02662,"72":0.00484,"73":0.00484,"74":0.00968,"75":0.00484,"76":0.00484,"77":0.00484,"78":0.00726,"79":0.01936,"80":0.02178,"81":0.01936,"83":0.03388,"84":0.02662,"85":0.0242,"86":0.0363,"87":0.05566,"88":0.0121,"89":0.01694,"90":0.02178,"91":0.02904,"92":0.03872,"93":0.0242,"94":0.0484,"95":0.02662,"96":0.07986,"97":0.07502,"98":0.09438,"99":0.1936,"100":3.23312,"101":13.18174,"102":0.79134,"103":0.01694,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 57 59 60 61 62 104"},F:{"84":0.00484,"85":0.11616,"86":0.13068,"87":0.00968,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00726,"16":0.00242,"17":0.00242,"18":0.0121,"84":0.00484,"85":0.00242,"89":0.00242,"92":0.00726,"96":0.00484,"97":0.00484,"98":0.00726,"99":0.0121,"100":0.05808,"101":0.89056,_:"13 14 15 79 80 81 83 86 87 88 90 91 93 94 95"},E:{"4":0,"13":0.00484,"14":0.01452,"15":0.00726,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00484,"13.1":0.01936,"14.1":0.03872,"15.1":0.01452,"15.2-15.3":0.01694,"15.4":0.16214,"15.5":0.01936},G:{"8":0.00142,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00047,"7.0-7.1":0.00641,"8.1-8.4":0,"9.0-9.2":0.00024,"9.3":0.00594,"10.0-10.2":0.00071,"10.3":0.00665,"11.0-11.2":0.01116,"11.3-11.4":0.0038,"12.0-12.1":0.00665,"12.2-12.5":0.10376,"13.0-13.1":0.00451,"13.2":0.00285,"13.3":0.00855,"13.4-13.7":0.02683,"14.0-14.4":0.10614,"14.5-14.8":0.19209,"15.0-15.1":0.13985,"15.2-15.3":0.27615,"15.4":1.46835},P:{"4":0.15937,"5.0-5.4":0.01035,"6.2-6.4":0.02125,"7.2-7.4":0.10625,"8.2":0.02069,"9.2":0.02125,"10.1":0.01081,"11.1-11.2":0.03187,"12.0":0.02125,"13.0":0.07437,"14.0":0.09562,"15.0":0.06375,"16.0":0.36125},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00359,"4.4":0,"4.4.3-4.4.4":0.01915},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04114,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":70.0541},S:{"2.5":0.62914},R:{_:"0"},M:{"0":0.1516},Q:{"10.4":0},O:{"0":1.50084},H:{"0":2.09547}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IQ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IQ.js index b994e4bc1ded21..0e4666ea1b5cb3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IQ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IQ.js @@ -1 +1 @@ -module.exports={C:{"34":0.00215,"35":0.00215,"38":0.00215,"39":0.00215,"40":0.0043,"41":0.0043,"42":0.00215,"43":0.00645,"44":0.0043,"45":0.0043,"46":0.0043,"47":0.01076,"48":0.00645,"49":0.0043,"50":0.00645,"51":0.16348,"52":0.14627,"53":0.16348,"54":0.08604,"55":0.15487,"56":0.1097,"57":0.1097,"58":0.04087,"59":0.03872,"68":0.0043,"72":0.00215,"78":0.00645,"88":0.0086,"89":0.0043,"91":0.01076,"92":0.00215,"94":0.0043,"95":0.00215,"96":0.0043,"97":0.22801,"98":0.43235,"99":0.01076,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 36 37 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 90 93 100 3.5 3.6"},D:{"11":0.0043,"26":0.0043,"31":0.0043,"33":0.00645,"34":0.0043,"36":0.00215,"38":0.02796,"39":0.04517,"40":0.04732,"41":0.05162,"42":0.04732,"43":0.1097,"44":0.04947,"45":0.06453,"46":0.06453,"47":0.06453,"48":0.05162,"49":0.06023,"50":0.03657,"51":0.04302,"52":0.03657,"53":0.04517,"54":0.04302,"55":0.04517,"56":0.05162,"57":0.05162,"58":0.06238,"59":0.06238,"60":0.06883,"61":0.05808,"62":0.05378,"63":0.06883,"64":0.05593,"65":0.06238,"66":0.00215,"67":0.0043,"68":0.01076,"69":0.00645,"70":0.0086,"71":0.0086,"72":0.00645,"73":0.0086,"74":0.00645,"75":0.0086,"76":0.00645,"77":0.00645,"78":0.0086,"79":0.1054,"80":0.01291,"81":0.01936,"83":0.01721,"84":0.00645,"85":0.01291,"86":0.04732,"87":0.02796,"88":0.01721,"89":0.05593,"90":0.01506,"91":0.03657,"92":0.06238,"93":0.15917,"94":0.02151,"95":0.02796,"96":0.114,"97":0.18929,"98":2.57475,"99":8.62981,"100":0.10325,"101":0.01506,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 32 35 37 102 103"},F:{"15":0.00215,"28":0.0043,"32":0.00215,"42":0.0043,"43":0.0043,"46":0.00215,"47":0.00215,"78":0.00215,"82":0.00645,"83":0.11615,_:"9 11 12 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 33 34 35 36 37 38 39 40 41 44 45 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0043},B:{"12":0.0086,"13":0.0043,"14":0.00645,"15":0.00645,"16":0.0043,"17":0.0043,"18":0.01936,"84":0.00645,"89":0.00645,"90":0.00215,"91":0.0086,"92":0.01291,"94":0.00215,"95":0.0086,"96":0.01076,"97":0.07744,"98":0.24737,"99":1.03463,_:"79 80 81 83 85 86 87 88 93"},E:{"4":0,"13":0.01721,"14":0.0968,"15":0.04947,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.03442,"9.1":0.01076,"11.1":0.00215,"12.1":0.0043,"13.1":0.04302,"14.1":0.27963,"15.1":0.08174,"15.2-15.3":0.1054,"15.4":0.1011},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0033,"6.0-6.1":0,"7.0-7.1":0.0462,"8.1-8.4":0,"9.0-9.2":0.04455,"9.3":0.05445,"10.0-10.2":0.06601,"10.3":0.09571,"11.0-11.2":0.03135,"11.3-11.4":0.02145,"12.0-12.1":0.0396,"12.2-12.5":0.82177,"13.0-13.1":0.0165,"13.2":0.0066,"13.3":0.10396,"13.4-13.7":0.22112,"14.0-14.4":0.80362,"14.5-14.8":2.43231,"15.0-15.1":1.46038,"15.2-15.3":8.96359,"15.4":1.26401},P:{"4":0.38277,"5.0-5.4":0.04029,"6.2-6.4":0.04029,"7.2-7.4":0.36262,"8.2":0.09059,"9.2":0.08058,"10.1":0.04029,"11.1-11.2":0.35255,"12.0":0.09066,"13.0":0.46335,"14.0":0.38277,"15.0":0.36262,"16.0":3.86796},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00068,"4.2-4.3":0.00307,"4.4":0,"4.4.3-4.4.4":0.04333},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.05914,"9":0.07448,"10":0.0241,"11":0.08105,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":53.79257},S:{"2.5":0},R:{_:"0"},M:{"0":0.10987},Q:{"10.4":0.07063},O:{"0":0.63569},H:{"0":0.31206}}; +module.exports={C:{"20":0.00208,"31":0.00208,"38":0.00208,"39":0.00417,"40":0.00417,"41":0.00625,"42":0.00417,"43":0.00625,"44":0.00625,"45":0.00417,"46":0.00417,"47":0.00834,"48":0.00417,"49":0.00417,"50":0.00625,"51":0.20632,"52":0.20006,"53":0.20006,"54":0.10628,"55":0.1959,"56":0.13963,"57":0.13754,"58":0.05418,"59":0.05835,"68":0.00834,"69":0.00834,"72":0.00208,"78":0.00417,"88":0.00417,"89":0.00834,"91":0.01667,"94":0.00208,"97":0.00417,"98":0.00625,"99":0.11462,"100":0.44806,"101":0.01042,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 60 61 62 63 64 65 66 67 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 90 92 93 95 96 102 103 3.5 3.6"},D:{"11":0.00417,"26":0.00417,"31":0.00208,"33":0.01042,"34":0.00417,"35":0.00625,"38":0.02084,"39":0.05627,"40":0.06252,"41":0.06252,"42":0.06044,"43":0.12296,"44":0.0646,"45":0.08128,"46":0.07919,"47":0.08544,"48":0.0646,"49":0.06877,"50":0.04376,"51":0.05418,"52":0.04793,"53":0.05418,"54":0.05418,"55":0.06044,"56":0.06669,"57":0.0646,"58":0.07919,"59":0.07711,"60":0.08753,"61":0.07294,"62":0.07086,"63":0.08336,"64":0.07086,"65":0.07502,"68":0.00834,"69":0.00625,"70":0.00625,"71":0.00625,"72":0.00834,"73":0.00417,"74":0.00417,"75":0.00417,"76":0.00417,"77":0.00417,"78":0.00625,"79":0.09378,"80":0.00625,"81":0.02501,"83":0.03126,"84":0.01042,"85":0.01042,"86":0.04376,"87":0.02084,"88":0.02292,"89":0.04585,"90":0.01876,"91":0.02709,"92":0.04168,"93":0.01459,"94":0.01667,"95":0.03334,"96":0.06669,"97":0.04168,"98":0.07502,"99":0.11879,"100":1.75473,"101":7.45864,"102":0.769,"103":0.01667,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 32 36 37 66 67 104"},F:{"12":0.00208,"15":0.00417,"28":0.00208,"32":0.00208,"34":0.00208,"36":0.00208,"42":0.00625,"43":0.00417,"46":0.00417,"47":0.00417,"79":0.00417,"84":0.00417,"85":0.21465,"86":0.23132,"87":0.01876,_:"9 11 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 33 35 37 38 39 40 41 44 45 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00625},B:{"12":0.00834,"13":0.00625,"14":0.00625,"15":0.00625,"16":0.00417,"17":0.00208,"18":0.01459,"84":0.00834,"85":0.00417,"86":0.00208,"87":0.00208,"88":0.00417,"89":0.00834,"90":0.00417,"91":0.00625,"92":0.01667,"93":0.00208,"94":0.00208,"95":0.00417,"96":0.00625,"97":0.02292,"98":0.00625,"99":0.03751,"100":0.06044,"101":1.0816,_:"79 80 81 83"},E:{"4":0,"12":0.00208,"13":0.01459,"14":0.10628,"15":0.02918,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.03543,"12.1":0.00834,"13.1":0.0396,"14.1":0.20632,"15.1":0.0396,"15.2-15.3":0.04585,"15.4":0.75024,"15.5":0.08961},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00317,"6.0-6.1":0.00158,"7.0-7.1":0.0396,"8.1-8.4":0,"9.0-9.2":0.06811,"9.3":0.04752,"10.0-10.2":0.08395,"10.3":0.11404,"11.0-11.2":0.02217,"11.3-11.4":0.01901,"12.0-12.1":0.03801,"12.2-12.5":0.79035,"13.0-13.1":0.01742,"13.2":0.01267,"13.3":0.08236,"13.4-13.7":0.17739,"14.0-14.4":0.56544,"14.5-14.8":1.6108,"15.0-15.1":0.64464,"15.2-15.3":1.33521,"15.4":10.16056},P:{"4":0.16372,"5.0-5.4":0.06059,"6.2-6.4":0.0505,"7.2-7.4":0.20465,"8.2":0.07069,"9.2":0.07163,"10.1":0.10099,"11.1-11.2":0.26604,"12.0":0.06139,"13.0":0.28651,"14.0":0.27627,"15.0":0.19441,"16.0":1.65764},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00103,"4.2-4.3":0.0041,"4.4":0,"4.4.3-4.4.4":0.06613},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.08036,"9":0.09727,"10":0.03172,"11":0.07824,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":58.53137},S:{"2.5":0},R:{_:"0"},M:{"0":0.11876},Q:{"10.4":0.02375},O:{"0":0.52252},H:{"0":0.26234}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IR.js index c3428d2b6ac364..4ec2e3298ed430 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IR.js @@ -1 +1 @@ -module.exports={C:{"25":0.00249,"29":0.00249,"32":0.00249,"33":0.00498,"38":0.00249,"39":0.00249,"40":0.00249,"41":0.00498,"43":0.00746,"47":0.01244,"48":0.00498,"49":0.00249,"50":0.00249,"52":0.07464,"56":0.00746,"60":0.00498,"66":0.00249,"68":0.00498,"72":0.0199,"73":0.00249,"77":0.00498,"78":0.01493,"79":0.00249,"80":0.00498,"81":0.00746,"82":0.00746,"83":0.00498,"84":0.00746,"85":0.00498,"86":0.00746,"87":0.00746,"88":0.01244,"89":0.01742,"90":0.00746,"91":0.09952,"92":0.01244,"93":0.01244,"94":0.02239,"95":0.03483,"96":0.0622,"97":1.62715,"98":2.21432,"99":0.0199,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 30 31 34 35 36 37 42 44 45 46 51 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 74 75 76 100 3.5 3.6"},D:{"34":0.01493,"38":0.00995,"41":0.00249,"48":0.00498,"49":0.0199,"51":0.00249,"55":0.00249,"58":0.00498,"60":0.00498,"62":0.00746,"63":0.01244,"64":0.00498,"65":0.00498,"66":0.00249,"67":0.00249,"68":0.00498,"69":0.00746,"70":0.00498,"71":0.01493,"72":0.00498,"73":0.00498,"74":0.00746,"75":0.00746,"76":0.00498,"77":0.00498,"78":0.01244,"79":0.02737,"80":0.0199,"81":0.0199,"83":0.02986,"84":0.03732,"85":0.03981,"86":0.06966,"87":0.07215,"88":0.0199,"89":0.0423,"90":0.02239,"91":0.05722,"92":0.0622,"93":0.13186,"94":0.0423,"95":0.03732,"96":0.18162,"97":0.23387,"98":3.54789,"99":10.67601,"100":0.00746,"101":0.00746,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 42 43 44 45 46 47 50 52 53 54 56 57 59 61 102 103"},F:{"64":0.00249,"77":0.02239,"78":0.01493,"79":0.02239,"80":0.01742,"81":0.01244,"82":0.00995,"83":0.05971,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00995,"13":0.00498,"14":0.00498,"15":0.00498,"16":0.00498,"17":0.00498,"18":0.03234,"81":0.00249,"84":0.00746,"85":0.00249,"89":0.01742,"90":0.00995,"92":0.02239,"95":0.00498,"96":0.01244,"97":0.0199,"98":0.18411,"99":0.58468,_:"79 80 83 86 87 88 91 93 94"},E:{"4":0,"13":0.00498,"14":0.01493,"15":0.00746,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.23138,"12.1":0.00249,"13.1":0.01244,"14.1":0.02737,"15.1":0.01493,"15.2-15.3":0.01244,"15.4":0.00746},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00259,"8.1-8.4":0,"9.0-9.2":0.00086,"9.3":0.00821,"10.0-10.2":0.00605,"10.3":0.03197,"11.0-11.2":0.02117,"11.3-11.4":0.02031,"12.0-12.1":0.02636,"12.2-12.5":0.45281,"13.0-13.1":0.02204,"13.2":0.0108,"13.3":0.05963,"13.4-13.7":0.12573,"14.0-14.4":0.42818,"14.5-14.8":0.68267,"15.0-15.1":0.6602,"15.2-15.3":1.53817,"15.4":0.22165},P:{"4":0.68443,"5.0-5.4":0.06039,"6.2-6.4":0.07046,"7.2-7.4":0.61397,"8.2":0.09059,"9.2":0.28182,"10.1":0.12078,"11.1-11.2":0.54352,"12.0":0.26169,"13.0":0.77502,"14.0":0.98638,"15.0":0.75489,"16.0":4.49912},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00235,"4.2-4.3":0.01585,"4.4":0,"4.4.3-4.4.4":0.05693},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.0025,"8":0.01498,"9":0.00749,"10":0.00499,"11":2.04005,_:"6 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":59.97359},S:{"2.5":0},R:{_:"0"},M:{"0":0.96905},Q:{"10.4":0},O:{"0":0.1277},H:{"0":0.48361}}; +module.exports={C:{"29":0.00247,"32":0.00247,"33":0.00742,"34":0.00494,"38":0.00247,"39":0.00247,"40":0.00494,"41":0.00494,"43":0.00742,"46":0.00494,"47":0.01236,"48":0.00494,"49":0.00494,"50":0.00494,"52":0.07169,"55":0.00247,"56":0.00742,"60":0.00247,"61":0.00247,"64":0.00247,"65":0.00247,"66":0.00247,"68":0.00742,"70":0.00247,"72":0.01978,"75":0.00247,"76":0.00247,"77":0.00494,"78":0.02225,"79":0.01483,"80":0.0173,"81":0.00989,"82":0.01978,"83":0.00989,"84":0.00742,"85":0.00247,"86":0.00494,"87":0.00247,"88":0.00989,"89":0.01236,"90":0.00494,"91":0.09394,"92":0.00742,"93":0.00742,"94":0.01483,"95":0.02225,"96":0.02472,"97":0.03955,"98":0.04697,"99":0.70699,"100":3.03067,"101":0.05191,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 35 36 37 42 44 45 51 53 54 57 58 59 62 63 67 69 71 73 74 102 103 3.5 3.6"},D:{"34":0.00989,"38":0.00989,"39":0.00247,"41":0.00494,"48":0.00494,"49":0.01978,"51":0.00247,"53":0.00247,"54":0.00247,"58":0.00494,"60":0.00247,"62":0.00742,"63":0.00989,"64":0.00247,"66":0.00247,"67":0.00247,"68":0.00247,"69":0.00742,"70":0.00494,"71":0.01483,"72":0.00742,"73":0.00494,"74":0.00989,"75":0.00494,"76":0.00742,"77":0.00742,"78":0.0173,"79":0.02719,"80":0.02225,"81":0.02225,"83":0.0791,"84":0.15574,"85":0.14338,"86":0.17798,"87":0.15326,"88":0.01978,"89":0.03955,"90":0.02225,"91":0.04944,"92":0.05438,"93":0.02225,"94":0.03214,"95":0.02472,"96":0.08652,"97":0.07416,"98":0.08899,"99":0.15326,"100":2.40526,"101":10.23902,"102":0.927,"103":0.00494,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 40 42 43 44 45 46 47 50 52 55 56 57 59 61 65 104"},F:{"64":0.00494,"68":0.00742,"69":0.00494,"70":0.00494,"71":0.01236,"72":0.00494,"76":0.00247,"79":0.00742,"82":0.00247,"83":0.00494,"84":0.00742,"85":0.17057,"86":0.22495,"87":0.01236,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 73 74 75 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00494,"13":0.00494,"14":0.00494,"15":0.00247,"16":0.00247,"17":0.00494,"18":0.03461,"81":0.00494,"83":0.00247,"84":0.01236,"85":0.00989,"86":0.00742,"87":0.00742,"89":0.01978,"90":0.00742,"92":0.01978,"96":0.00742,"97":0.00494,"98":0.00989,"99":0.01978,"100":0.03708,"101":0.63036,_:"79 80 88 91 93 94 95"},E:{"4":0,"13":0.00494,"14":0.01483,"15":0.00494,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.19529,"12.1":0.00247,"13.1":0.01483,"14.1":0.01978,"15.1":0.00989,"15.2-15.3":0.00742,"15.4":0.05438,"15.5":0.00989},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0025,"8.1-8.4":0,"9.0-9.2":0.001,"9.3":0.006,"10.0-10.2":0.006,"10.3":0.0265,"11.0-11.2":0.0195,"11.3-11.4":0.0205,"12.0-12.1":0.0255,"12.2-12.5":0.45396,"13.0-13.1":0.0245,"13.2":0.012,"13.3":0.06749,"13.4-13.7":0.13399,"14.0-14.4":0.43946,"14.5-14.8":0.57745,"15.0-15.1":0.44446,"15.2-15.3":0.65895,"15.4":2.07883},P:{"4":0.57565,"5.0-5.4":0.06059,"6.2-6.4":0.0505,"7.2-7.4":0.55545,"8.2":0.07069,"9.2":0.23228,"10.1":0.10099,"11.1-11.2":0.46456,"12.0":0.21208,"13.0":0.66654,"14.0":0.86852,"15.0":0.51506,"16.0":3.16103},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00278,"4.2-4.3":0.01596,"4.4":0,"4.4.3-4.4.4":0.05655},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01236,"9":0.00989,"11":2.26435,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":60.00405},S:{"2.5":0},R:{_:"0"},M:{"0":1.04639},Q:{"10.4":0},O:{"0":0.11292},H:{"0":0.45613}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IS.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IS.js index d8daf66ece181d..81d992da54b759 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IS.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IS.js @@ -1 +1 @@ -module.exports={C:{"48":0.00579,"52":0.04632,"59":0.01158,"60":0.01737,"62":0.01158,"63":0.00579,"75":0.00579,"78":0.13317,"91":0.12738,"92":0.00579,"94":0.01158,"95":0.02895,"96":0.03474,"97":1.57488,"98":2.68077,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 61 64 65 66 67 68 69 70 71 72 73 74 76 77 79 80 81 82 83 84 85 86 87 88 89 90 93 99 100 3.5 3.6"},D:{"41":0.00579,"43":0.01158,"44":0.01158,"45":0.01158,"46":0.01158,"49":0.01737,"51":0.05211,"63":0.02316,"65":0.02895,"66":0.04053,"67":0.01158,"68":0.00579,"69":0.00579,"70":0.01737,"71":0.01737,"72":0.01158,"73":0.01158,"77":0.01158,"78":0.02316,"79":0.10422,"80":0.04053,"81":0.00579,"83":0.01158,"84":0.04632,"85":0.03474,"86":0.00579,"87":0.16791,"88":0.01737,"89":0.02316,"90":0.01737,"91":0.02316,"92":0.05211,"93":0.08106,"94":0.02895,"95":0.14475,"96":0.44004,"97":0.82218,"98":9.61719,"99":21.91515,"100":0.02316,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 47 48 50 52 53 54 55 56 57 58 59 60 61 62 64 74 75 76 101 102 103"},F:{"79":0.01158,"82":0.02316,"83":0.83955,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01158,"86":0.01158,"89":0.01158,"95":0.01158,"96":0.04053,"97":0.02895,"98":1.14642,"99":3.83298,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88 90 91 92 93 94"},E:{"4":0,"9":0.02895,"13":0.06948,"14":0.50373,"15":0.32424,_:"0 5 6 7 8 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.01158,"10.1":0.04632,"11.1":0.18528,"12.1":0.14475,"13.1":0.74112,"14.1":1.90491,"15.1":0.7527,"15.2-15.3":0.82218,"15.4":0.26055},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00892,"8.1-8.4":0.01071,"9.0-9.2":0.00357,"9.3":0.02855,"10.0-10.2":0.00357,"10.3":0.05888,"11.0-11.2":0.08921,"11.3-11.4":0.01071,"12.0-12.1":0.04817,"12.2-12.5":0.28726,"13.0-13.1":0.00178,"13.2":0.00357,"13.3":0.03033,"13.4-13.7":0.20697,"14.0-14.4":0.39967,"14.5-14.8":2.84052,"15.0-15.1":0.91175,"15.2-15.3":12.4594,"15.4":0.43},P:{"4":0.05246,"5.0-5.4":0.08215,"6.2-6.4":0.01049,"7.2-7.4":0.1545,"8.2":0.12322,"9.2":0.03255,"10.1":0.01049,"11.1-11.2":0.01049,"12.0":0.02074,"13.0":0.1259,"14.0":0.07344,"15.0":0.05246,"16.0":3.63009},I:{"0":0,"3":0.00182,"4":0.02,"2.1":0.00364,"2.2":0.01273,"2.3":0.01545,"4.1":0.01182,"4.2-4.3":0.02091,"4.4":0,"4.4.3-4.4.4":0.07363},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.01158,"8":0.06948,"9":0.01737,"10":0.01158,"11":0.18528,_:"6 5.5"},J:{"7":0,"10":0.01263},N:{"10":0.03368,_:"11"},L:{"0":19.80342},S:{"2.5":0.02526},R:{_:"0"},M:{"0":0.421},Q:{"10.4":0},O:{"0":0.02526},H:{"0":0.17139}}; +module.exports={C:{"52":0.03905,"60":0.00558,"78":0.13948,"91":0.03905,"94":0.01116,"96":0.01674,"97":0.00558,"98":0.05021,"99":0.65274,"100":3.46456,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 95 101 102 103 3.5 3.6"},D:{"49":0.0279,"51":0.01116,"65":0.01674,"67":0.01116,"76":0.01116,"77":0.00558,"78":0.00558,"79":0.03905,"80":0.03347,"81":0.02232,"83":0.01116,"84":0.00558,"85":0.01674,"86":0.01674,"87":0.18969,"88":0.00558,"89":0.0279,"90":0.00558,"91":0.02232,"92":0.02232,"93":0.02232,"94":0.01674,"95":0.18969,"96":0.09484,"97":0.08926,"98":0.212,"99":0.60811,"100":7.93892,"101":21.32852,"102":1.46728,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 58 59 60 61 62 63 64 66 68 69 70 71 72 73 74 75 103 104"},F:{"83":0.00558,"84":0.00558,"85":0.91496,"86":0.95959,"87":0.06137,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"87":0.00558,"96":0.02232,"98":0.01116,"99":0.02232,"100":0.21758,"101":5.367,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 88 89 90 91 92 93 94 95 97"},E:{"4":0,"9":0.01116,"13":0.05021,"14":0.37937,"15":0.13948,_:"0 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.05579,"11.1":0.21758,"12.1":0.106,"13.1":0.60811,"14.1":1.42822,"15.1":0.32358,"15.2-15.3":0.29569,"15.4":4.30141,"15.5":0.36264},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00179,"8.1-8.4":0.00359,"9.0-9.2":0.00359,"9.3":0.03048,"10.0-10.2":0,"10.3":0.05738,"11.0-11.2":0.03586,"11.3-11.4":0.00717,"12.0-12.1":0.0251,"12.2-12.5":0.35323,"13.0-13.1":0.00359,"13.2":0,"13.3":0.03227,"13.4-13.7":0.12193,"14.0-14.4":0.30123,"14.5-14.8":1.71953,"15.0-15.1":0.4375,"15.2-15.3":1.53664,"15.4":13.24705},P:{"4":0.05255,"5.0-5.4":0.01035,"6.2-6.4":0.02043,"7.2-7.4":0.20692,"8.2":0.02069,"9.2":0.02163,"10.1":0.01081,"11.1-11.2":0.02102,"12.0":0.01033,"13.0":0.03153,"14.0":0.05255,"15.0":0.04204,"16.0":1.16671},I:{"0":0,"3":0,"4":0.00619,"2.1":0.00177,"2.2":0.00354,"2.3":0.00354,"4.1":0.00265,"4.2-4.3":0.00884,"4.4":0,"4.4.3-4.4.4":0.03095},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02232,"10":0.00558,"11":0.106,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":22.33926},S:{"2.5":0.00442},R:{_:"0"},M:{"0":0.33165},Q:{"10.4":0},O:{"0":0.01769},H:{"0":0.15071}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IT.js index 9f8c65e5a9d1d7..20d788cf4f4a1b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/IT.js @@ -1 +1 @@ -module.exports={C:{"48":0.01424,"52":0.1187,"55":0.00475,"56":0.01899,"59":0.0095,"66":0.00475,"68":0.0095,"72":0.00475,"78":0.10446,"81":0.00475,"83":0.00475,"84":0.00475,"87":0.04748,"88":0.01899,"89":0.0095,"90":0.0095,"91":0.09021,"92":0.01424,"93":0.01899,"94":0.07597,"95":0.02374,"96":0.03798,"97":1.42915,"98":2.40724,"99":0.01424,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 57 58 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 80 82 85 86 100 3.5 3.6"},D:{"38":0.0095,"47":0.00475,"49":0.1282,"60":0.0095,"63":0.07122,"65":0.0095,"66":0.07597,"67":0.01424,"68":0.00475,"69":0.32286,"70":0.0095,"71":0.0095,"72":0.00475,"73":0.00475,"74":0.02374,"75":0.0095,"76":0.0095,"77":0.01424,"78":0.01424,"79":0.05698,"80":0.03324,"81":0.02849,"83":0.02849,"84":0.03798,"85":0.04273,"86":0.07122,"87":0.09971,"88":0.02849,"89":0.06172,"90":0.03324,"91":0.04273,"92":0.09021,"93":0.39408,"94":0.29912,"95":0.04273,"96":0.20416,"97":0.32286,"98":7.20272,"99":21.99274,"100":0.02374,"101":0.01424,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 61 62 64 102 103"},F:{"46":0.00475,"82":0.01424,"83":0.28488,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00475,"16":0.00475,"17":0.0095,"18":0.01899,"91":0.00475,"92":0.0095,"94":0.0095,"95":0.0095,"96":0.02374,"97":0.06172,"98":0.81191,"99":3.04347,_:"13 14 15 79 80 81 83 84 85 86 87 88 89 90 93"},E:{"4":0,"12":0.0095,"13":0.04748,"14":0.33711,"15":0.16143,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.0095,"10.1":0.01424,"11.1":0.05698,"12.1":0.08072,"13.1":0.35135,"14.1":0.7027,"15.1":0.30387,"15.2-15.3":0.34186,"15.4":0.19942},G:{"8":0.00269,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00672,"8.1-8.4":0.00672,"9.0-9.2":0.00537,"9.3":0.08734,"10.0-10.2":0.00269,"10.3":0.09137,"11.0-11.2":0.04837,"11.3-11.4":0.04031,"12.0-12.1":0.02956,"12.2-12.5":0.41253,"13.0-13.1":0.03359,"13.2":0.01344,"13.3":0.05106,"13.4-13.7":0.18544,"14.0-14.4":0.58722,"14.5-14.8":1.82077,"15.0-15.1":1.02393,"15.2-15.3":8.16324,"15.4":0.817},P:{"4":0.08416,"5.0-5.4":0.01039,"6.2-6.4":0.04029,"7.2-7.4":0.01027,"8.2":0.09059,"9.2":0.03156,"10.1":0.01052,"11.1-11.2":0.09468,"12.0":0.03156,"13.0":0.11571,"14.0":0.16831,"15.0":0.13675,"16.0":2.89286},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00183,"4.2-4.3":0.00639,"4.4":0,"4.4.3-4.4.4":0.0338},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00962,"11":0.35598,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":34.04412},S:{"2.5":0},R:{_:"0"},M:{"0":0.32037},Q:{"10.4":0},O:{"0":0.1313},H:{"0":0.24364}}; +module.exports={C:{"47":0.00902,"48":0.00902,"52":0.10819,"55":0.00902,"56":0.01352,"59":0.01352,"66":0.00451,"68":0.00902,"72":0.00902,"78":0.09467,"81":0.00451,"87":0.00902,"88":0.02254,"89":0.00451,"90":0.00902,"91":0.09467,"92":0.00451,"93":0.02254,"94":0.06762,"95":0.02254,"96":0.03156,"97":0.01803,"98":0.04057,"99":0.77087,"100":3.16011,"101":0.02705,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 51 53 54 57 58 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 80 82 83 84 85 86 102 103 3.5 3.6"},D:{"38":0.00902,"49":0.12172,"59":0.00902,"60":0.01352,"62":0.00451,"63":0.09918,"65":0.01352,"66":0.09016,"67":0.01352,"68":0.00902,"69":0.19384,"70":0.00451,"71":0.00451,"72":0.00902,"73":0.00902,"74":0.04057,"75":0.00451,"76":0.00902,"77":0.01803,"78":0.01352,"79":0.06311,"80":0.02705,"81":0.02705,"83":0.03156,"84":0.04508,"85":0.04057,"86":0.07213,"87":0.10368,"88":0.02705,"89":0.04508,"90":0.02254,"91":0.04508,"92":0.10368,"93":0.01803,"94":0.04959,"95":0.02705,"96":0.10368,"97":0.06762,"98":0.12172,"99":0.23892,"100":5.0129,"101":20.71877,"102":1.83025,"103":0.00902,"104":0.00451,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 61 64"},F:{"46":0.00902,"71":0.00451,"84":0.00451,"85":0.50039,"86":0.40121,"87":0.03156,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00451,"17":0.00902,"18":0.01352,"85":0.00451,"89":0.00451,"92":0.00902,"93":0.00902,"96":0.00902,"97":0.02254,"98":0.02254,"99":0.04508,"100":0.1668,"101":3.69656,_:"12 13 14 15 79 80 81 83 84 86 87 88 90 91 94 95"},E:{"4":0,"12":0.00902,"13":0.04057,"14":0.25245,"15":0.09467,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00902,"10.1":0.00902,"11.1":0.0541,"12.1":0.07213,"13.1":0.33359,"14.1":0.52293,"15.1":0.1668,"15.2-15.3":0.16229,"15.4":1.92041,"15.5":0.24794},G:{"8":0.00136,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00136,"6.0-6.1":0.00407,"7.0-7.1":0.00679,"8.1-8.4":0.00679,"9.0-9.2":0.01901,"9.3":0.08689,"10.0-10.2":0.00679,"10.3":0.09096,"11.0-11.2":0.02715,"11.3-11.4":0.03937,"12.0-12.1":0.02851,"12.2-12.5":0.44802,"13.0-13.1":0.02172,"13.2":0.01222,"13.3":0.04344,"13.4-13.7":0.17649,"14.0-14.4":0.46838,"14.5-14.8":1.26123,"15.0-15.1":0.49146,"15.2-15.3":1.01279,"15.4":9.32144},P:{"4":0.12563,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1","9.2":0.01047,"11.1-11.2":0.08375,"12.0":0.02094,"13.0":0.10469,"14.0":0.14657,"15.0":0.08375,"16.0":1.24583},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00391,"4.2-4.3":0.00391,"4.4":0,"4.4.3-4.4.4":0.03613},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00456,"9":0.00913,"11":0.35597,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.35149},Q:{"10.4":0},O:{"0":0.10984},H:{"0":0.27037},L:{"0":36.71649},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JE.js index 4f3156dae3fd56..c7426124345bcb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JE.js @@ -1 +1 @@ -module.exports={C:{"48":0.00922,"52":0.00461,"66":0.49306,"78":0.01382,"80":0.00922,"83":0.00461,"91":0.01382,"96":0.02765,"97":0.81101,"98":1.04141,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 81 82 84 85 86 87 88 89 90 92 93 94 95 99 100 3.5 3.6"},D:{"49":0.03226,"57":0.00922,"63":0.01382,"65":0.01382,"66":0.00461,"67":0.00922,"72":0.08755,"76":0.00922,"79":0.02304,"80":0.10138,"81":0.00461,"83":0.03686,"84":0.01382,"85":0.01382,"87":0.10138,"88":0.00922,"89":0.02765,"90":0.04147,"91":0.00922,"92":0.01843,"93":0.02765,"94":0.03226,"95":0.00922,"96":0.09677,"97":0.46541,"98":5.48813,"99":12.87936,"100":0.2304,"101":0.00461,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 58 59 60 61 62 64 68 69 70 71 73 74 75 77 78 86 102 103"},F:{"83":0.29491,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.01382,"18":0.01843,"83":0.00461,"92":0.00922,"94":0.01382,"95":0.01843,"96":0.10138,"97":0.0599,"98":1.72339,"99":6.19776,_:"12 13 14 16 17 79 80 81 84 85 86 87 88 89 90 91 93"},E:{"4":0,"11":0.00922,"12":0.00922,"13":0.0553,"14":0.91699,"15":0.21197,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.00461,"9.1":0.01382,"10.1":0.01382,"11.1":0.06451,"12.1":0.25805,"13.1":0.89395,"14.1":2.27635,"15.1":0.58982,"15.2-15.3":0.90778,"15.4":0.74189},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.16425,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00657,"9.3":0.24637,"10.0-10.2":0.00328,"10.3":0.58472,"11.0-11.2":0.00985,"11.3-11.4":0.04927,"12.0-12.1":0.01971,"12.2-12.5":1.13331,"13.0-13.1":0,"13.2":0,"13.3":0.05913,"13.4-13.7":0.23652,"14.0-14.4":0.66356,"14.5-14.8":5.23949,"15.0-15.1":1.88556,"15.2-15.3":21.49014,"15.4":1.03476},P:{"4":0.29117,"5.0-5.4":0.01039,"6.2-6.4":0.04029,"7.2-7.4":0.2257,"8.2":0.09059,"9.2":0.03224,"10.1":0.01052,"11.1-11.2":0.02157,"12.0":0.03224,"13.0":0.15098,"14.0":0.03235,"15.0":0.08627,"16.0":3.69891},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.02696},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.54829,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":14.77696},S:{"2.5":0},R:{_:"0"},M:{"0":0.16176},Q:{"10.4":0},O:{"0":0},H:{"0":0.01531}}; +module.exports={C:{"52":0.00424,"78":0.01272,"80":0.01272,"81":0.01696,"83":0.00424,"91":0.01696,"92":0.0212,"95":0.00424,"96":0.00424,"97":0.00848,"98":0.00848,"99":0.34336,"100":1.40735,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 82 84 85 86 87 88 89 90 93 94 101 102 103 3.5 3.6"},D:{"49":0.0212,"65":0.02543,"72":0.05935,"75":0.00848,"79":0.02967,"80":0.10598,"81":0.0975,"83":0.01696,"84":0.04239,"85":0.05935,"87":0.13565,"90":0.02543,"91":0.00848,"92":0.01272,"93":0.02543,"94":0.00848,"95":0.00424,"96":0.03391,"97":0.02543,"98":0.06782,"99":0.36455,"100":2.99273,"101":12.64494,"102":1.42007,"103":0.03391,"104":0.00848,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 76 77 78 86 88 89"},F:{"70":0.00848,"85":0.24162,"86":0.17804,"87":0.00848,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.02967,"84":0.00848,"85":0.00848,"92":0.03391,"94":0.00848,"96":0.00424,"97":0.01696,"98":0.01696,"99":0.07206,"100":0.62313,"101":7.49031,_:"12 13 14 15 16 17 79 80 81 83 86 87 88 89 90 91 93 95"},E:{"4":0,"12":0.00848,"13":0.06359,"14":0.56803,"15":0.12293,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00424,"10.1":0.00848,"11.1":0.05935,"12.1":0.14413,"13.1":0.36455,"14.1":1.48789,"15.1":0.15684,"15.2-15.3":0.30097,"15.4":6.33307,"15.5":0.64857},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00703,"7.0-7.1":0,"8.1-8.4":0.00352,"9.0-9.2":0.06681,"9.3":0.32349,"10.0-10.2":0.02461,"10.3":1.2131,"11.0-11.2":0.00352,"11.3-11.4":0.08087,"12.0-12.1":0.00703,"12.2-12.5":1.32913,"13.0-13.1":0.00703,"13.2":0,"13.3":0.07736,"13.4-13.7":0.22855,"14.0-14.4":0.81928,"14.5-14.8":3.76236,"15.0-15.1":0.99861,"15.2-15.3":2.01831,"15.4":24.17757},P:{"4":0.22542,_:"5.0-5.4 6.2-6.4 8.2","7.2-7.4":0.2737,"9.2":0.02105,"10.1":0.01053,"11.1-11.2":0.0644,"12.0":0.03158,"13.0":0.0322,"14.0":0.0322,"15.0":0.04294,"16.0":1.17002},I:{"0":0,"3":0,"4":0.00112,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.02193},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.36072,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.25929},Q:{"10.4":0},O:{"0":0},H:{"0":0.06001},L:{"0":17.45028},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JM.js index ea72f66c53aa00..f2865eae22f7eb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JM.js @@ -1 +1 @@ -module.exports={C:{"52":0.01766,"73":0.04416,"78":0.06182,"87":0.01325,"91":0.01325,"94":0.00442,"95":0.00442,"96":0.0265,"97":0.42835,"98":0.79046,"99":0.00442,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 84 85 86 88 89 90 92 93 100 3.5 3.6"},D:{"47":0.00883,"49":0.05741,"53":0.00883,"61":0.00442,"63":0.00883,"65":0.01325,"66":0.01766,"68":0.00883,"69":0.00883,"73":0.01325,"74":0.01325,"75":0.03533,"76":0.07066,"77":0.01766,"78":0.02208,"79":0.07949,"80":0.03533,"81":0.04858,"83":0.03974,"84":0.03974,"85":0.01766,"86":0.01325,"87":0.07066,"88":0.0265,"89":0.01766,"90":0.0265,"91":0.05741,"92":0.04858,"93":0.23846,"94":0.05741,"95":0.06624,"96":0.19872,"97":0.39302,"98":7.54694,"99":20.04864,"100":0.20314,"101":0.05741,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 58 59 60 62 64 67 70 71 72 102 103"},F:{"82":0.00442,"83":0.28262,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00883,"13":0.00442,"15":0.01325,"16":0.00883,"17":0.00883,"18":0.02208,"84":0.00442,"89":0.03974,"92":0.0265,"94":0.01325,"95":0.00883,"96":0.03091,"97":0.05741,"98":1.4352,"99":4.56614,_:"14 79 80 81 83 85 86 87 88 90 91 93"},E:{"4":0,"13":0.01325,"14":0.07507,"15":0.07507,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01766,"11.1":0.00883,"12.1":0.01325,"13.1":0.20314,"14.1":0.37094,"15.1":0.1369,"15.2-15.3":0.14573,"15.4":0.10598},G:{"8":0.01829,"3.2":0.00261,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00392,"6.0-6.1":0,"7.0-7.1":0.11756,"8.1-8.4":0.00522,"9.0-9.2":0.00522,"9.3":0.10711,"10.0-10.2":0,"10.3":0.0627,"11.0-11.2":0.05486,"11.3-11.4":0.01045,"12.0-12.1":0.0209,"12.2-12.5":0.465,"13.0-13.1":0.01437,"13.2":0.00392,"13.3":0.02874,"13.4-13.7":0.1267,"14.0-14.4":0.45455,"14.5-14.8":1.57396,"15.0-15.1":0.98095,"15.2-15.3":8.10362,"15.4":0.89474},P:{"4":0.16122,"5.0-5.4":0.01039,"6.2-6.4":0.04029,"7.2-7.4":0.2257,"8.2":0.09059,"9.2":0.03224,"10.1":0.01052,"11.1-11.2":0.20421,"12.0":0.03224,"13.0":0.13972,"14.0":0.13972,"15.0":0.20421,"16.0":3.28884},I:{"0":0,"3":0,"4":0.00273,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00341,"4.2-4.3":0.00409,"4.4":0,"4.4.3-4.4.4":0.05119},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06182,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":39.75552},S:{"2.5":0},R:{_:"0"},M:{"0":0.10051},Q:{"10.4":0},O:{"0":0.58074},H:{"0":0.19032}}; +module.exports={C:{"52":0.00406,"73":0.04058,"78":0.02029,"87":0.00406,"98":0.01217,"99":0.15015,"100":0.69392,"101":0.02841,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"11":0.00406,"38":0.00406,"49":0.01623,"53":0.01623,"56":0.00812,"58":0.00406,"61":0.00406,"65":0.02435,"66":0.02841,"68":0.01623,"69":0.01217,"70":0.00812,"73":0.02841,"74":0.00812,"75":0.06493,"76":0.0771,"77":0.01217,"78":0.00406,"79":0.10145,"80":0.02435,"81":0.04058,"83":0.04058,"84":0.03246,"85":0.00812,"86":0.02841,"87":0.04464,"88":0.02029,"89":0.01217,"90":0.02029,"91":0.04058,"92":0.04058,"93":0.21102,"94":0.02435,"95":0.03652,"96":0.06899,"97":0.08522,"98":0.18667,"99":0.28,"100":5.79482,"101":17.98911,"102":1.55827,"103":0.06493,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 57 59 60 62 63 64 67 71 72 104"},F:{"28":0.00406,"85":0.45044,"86":0.47073,"87":0.02841,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00406,"15":0.00406,"16":0.00812,"17":0.00406,"18":0.01623,"84":0.00812,"86":0.00406,"92":0.01217,"96":0.01623,"97":0.01217,"98":0.01623,"99":0.05681,"100":0.35305,"101":4.37047,_:"13 14 79 80 81 83 85 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01217,"14":0.06087,"15":0.04058,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00812,"11.1":0.01217,"12.1":0.02841,"13.1":0.19073,"14.1":0.43015,"15.1":0.07304,"15.2-15.3":0.08928,"15.4":0.89276,"15.5":0.06899},G:{"8":0.00286,"3.2":0.00286,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00715,"6.0-6.1":0,"7.0-7.1":0.08007,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.09865,"10.0-10.2":0.00286,"10.3":0.06291,"11.0-11.2":0.06577,"11.3-11.4":0.01001,"12.0-12.1":0.02145,"12.2-12.5":0.49041,"13.0-13.1":0.01573,"13.2":0.00429,"13.3":0.01859,"13.4-13.7":0.11438,"14.0-14.4":0.37603,"14.5-14.8":1.09949,"15.0-15.1":0.42607,"15.2-15.3":1.1481,"15.4":10.24284},P:{"4":0.26317,_:"5.0-5.4 6.2-6.4 8.2","7.2-7.4":0.2737,"9.2":0.02105,"10.1":0.01053,"11.1-11.2":0.1579,"12.0":0.03158,"13.0":0.12632,"14.0":0.09474,"15.0":0.13685,"16.0":1.62115},I:{"0":0,"3":0,"4":0.00484,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00484,"4.4":0,"4.4.3-4.4.4":0.04975},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00812,"11":0.03652,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.1129},Q:{"10.4":0},O:{"0":0.53478},H:{"0":0.16877},L:{"0":43.2023},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JO.js index 6bb1a4a7bf1ef5..d3561a7f0c7131 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JO.js @@ -1 +1 @@ -module.exports={C:{"34":0.01353,"47":0.00271,"52":0.00812,"63":0.03247,"69":0.01353,"78":0.01082,"81":0.00271,"84":0.00812,"87":0.00541,"88":0.00812,"89":0.00271,"91":0.02435,"92":0.00271,"94":0.00271,"95":0.00541,"96":0.01082,"97":0.38425,"98":0.67109,"99":0.00812,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 82 83 85 86 90 93 100 3.5 3.6"},D:{"11":0.01082,"38":0.00812,"43":0.00812,"49":0.02706,"51":0.00541,"54":0.01353,"55":0.00541,"63":0.00541,"65":0.01624,"66":0.00271,"68":0.00271,"69":0.00541,"70":0.00812,"71":0.01082,"72":0.00271,"73":0.00271,"74":0.00541,"75":0.00812,"76":0.00541,"77":0.00271,"78":0.01353,"79":0.046,"80":0.01082,"81":0.02165,"83":0.01894,"84":0.01353,"85":0.01894,"86":0.03788,"87":0.05141,"88":0.02706,"89":0.046,"90":0.01624,"91":0.03788,"92":0.08659,"93":0.22189,"94":0.02435,"95":0.02435,"96":0.16236,"97":0.25436,"98":4.25924,"99":14.19297,"100":0.14342,"101":0.01082,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 52 53 56 57 58 59 60 61 62 64 67 102 103"},F:{"28":0.00541,"65":0.00541,"73":0.00271,"82":0.01353,"83":0.34907,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00271,"13":0.00812,"16":0.00271,"17":0.00271,"18":0.01894,"85":0.00541,"89":0.00541,"92":0.01624,"93":0.00271,"95":0.00271,"96":0.00812,"97":0.03788,"98":0.36531,"99":1.61007,_:"14 15 79 80 81 83 84 86 87 88 90 91 94"},E:{"4":0,"13":0.01082,"14":0.092,"15":0.07847,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00812,"11.1":0.00271,"12.1":0.00812,"13.1":0.11095,"14.1":0.30848,"15.1":0.092,"15.2-15.3":0.09471,"15.4":0.06494},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00227,"6.0-6.1":0.00113,"7.0-7.1":0.0204,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04308,"10.0-10.2":0.0034,"10.3":0.05441,"11.0-11.2":0.01247,"11.3-11.4":0.01474,"12.0-12.1":0.01927,"12.2-12.5":0.56338,"13.0-13.1":0.0238,"13.2":0.0034,"13.3":0.03401,"13.4-13.7":0.15076,"14.0-14.4":0.61212,"14.5-14.8":1.8545,"15.0-15.1":0.88758,"15.2-15.3":6.28672,"15.4":0.74588},P:{"4":0.11317,"5.0-5.4":0.01039,"6.2-6.4":0.04029,"7.2-7.4":0.15433,"8.2":0.09059,"9.2":0.02058,"10.1":0.01052,"11.1-11.2":0.14404,"12.0":0.02058,"13.0":0.13375,"14.0":0.23663,"15.0":0.14404,"16.0":2.48978},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.08184,"4.2-4.3":0.57291,"4.4":0,"4.4.3-4.4.4":5.23799},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08659,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":52.19683},S:{"2.5":0},R:{_:"0"},M:{"0":0.18233},Q:{"10.4":0},O:{"0":0.25526},H:{"0":0.24856}}; +module.exports={C:{"34":0.01096,"43":0.00822,"52":0.00822,"63":0.04112,"69":0.00274,"78":0.00822,"81":0.02193,"83":0.00548,"88":0.00274,"89":0.00548,"91":0.00822,"92":0.00822,"94":0.00274,"96":0.00548,"97":0.00822,"98":0.01919,"99":0.1535,"100":0.90727,"101":0.01096,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 82 84 85 86 87 90 93 95 102 103 3.5 3.6"},D:{"11":0.00822,"38":0.01096,"43":0.00274,"47":0.00274,"49":0.01919,"51":0.01645,"55":0.00548,"63":0.01096,"65":0.01645,"69":0.00822,"70":0.00548,"71":0.00274,"74":0.01096,"75":0.00548,"77":0.00274,"78":0.01096,"79":0.03563,"80":0.01096,"81":0.01919,"83":0.01371,"84":0.01096,"85":0.03563,"86":0.03563,"87":0.03837,"88":0.03015,"89":0.04934,"90":0.01645,"91":0.04386,"92":0.07127,"93":0.05756,"94":0.01919,"95":0.01371,"96":0.06853,"97":0.07675,"98":0.18091,"99":0.21654,"100":2.41208,"101":14.89459,"102":1.54044,"103":0.04112,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 50 52 53 54 56 57 58 59 60 61 62 64 66 67 68 72 73 76 104"},F:{"28":0.00548,"68":0.00274,"69":0.00548,"73":0.00274,"79":0.00548,"83":0.04112,"84":0.11786,"85":0.37826,"86":0.32344,"87":0.01096,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 70 71 72 74 75 76 77 78 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00548,"15":0.00274,"16":0.00548,"18":0.01096,"84":0.00274,"89":0.00548,"92":0.01096,"95":0.00274,"96":0.00274,"97":0.01096,"98":0.00822,"99":0.03289,"100":0.08771,"101":1.7981,_:"13 14 17 79 80 81 83 85 86 87 88 90 91 93 94"},E:{"4":0,"12":0.00274,"13":0.00548,"14":0.0603,"15":0.02741,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01645,"13.1":0.09868,"14.1":0.20832,"15.1":0.0603,"15.2-15.3":0.03563,"15.4":0.55642,"15.5":0.0603},G:{"8":0.01358,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00679,"6.0-6.1":0.00113,"7.0-7.1":0.01811,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03962,"10.0-10.2":0.00226,"10.3":0.07018,"11.0-11.2":0.00906,"11.3-11.4":0.01245,"12.0-12.1":0.01471,"12.2-12.5":0.49691,"13.0-13.1":0.01585,"13.2":0.00566,"13.3":0.02717,"13.4-13.7":0.12791,"14.0-14.4":0.56595,"14.5-14.8":1.27113,"15.0-15.1":0.43239,"15.2-15.3":0.93043,"15.4":7.25551},P:{"4":0.06134,_:"5.0-5.4 6.2-6.4 8.2","7.2-7.4":0.10223,"9.2":0.02045,"10.1":0.01053,"11.1-11.2":0.11245,"12.0":0.02045,"13.0":0.12267,"14.0":0.19423,"15.0":0.10223,"16.0":1.09383},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.08302,"4.2-4.3":0.41512,"4.4":0,"4.4.3-4.4.4":4.81544},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05482,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.16696},Q:{"10.4":0},O:{"0":0.22503},H:{"0":0.2474},L:{"0":53.33549},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JP.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JP.js index d75ae3c152180f..46123e33e8198e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JP.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/JP.js @@ -1 +1 @@ -module.exports={C:{"48":0.0129,"51":0.02581,"52":0.07742,"53":0.03226,"54":0.0129,"55":0.03871,"56":0.04516,"57":0.01936,"58":0.00645,"72":0.00645,"78":0.04516,"84":0.0129,"85":0.01936,"89":0.02581,"91":0.08388,"94":0.0129,"95":0.02581,"96":0.03871,"97":1.15491,"98":1.7743,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 86 87 88 90 92 93 99 100 3.5 3.6"},D:{"39":0.00645,"40":0.00645,"41":0.0129,"42":0.00645,"43":0.0129,"44":0.00645,"45":0.0129,"46":0.0129,"47":0.0129,"48":0.0129,"49":0.12904,"50":0.00645,"51":0.00645,"52":0.0129,"53":0.00645,"54":0.00645,"55":0.00645,"56":0.0129,"57":0.00645,"58":0.0129,"59":0.00645,"60":0.0129,"61":0.01936,"62":0.0129,"63":0.0129,"64":0.0129,"65":0.01936,"67":0.0129,"69":0.01936,"70":0.0129,"71":0.0129,"72":0.00645,"73":0.00645,"74":0.01936,"75":0.0129,"76":0.00645,"78":0.01936,"79":0.03871,"80":0.05807,"81":0.08388,"83":0.03871,"84":0.04516,"85":0.03226,"86":0.05807,"87":0.1484,"88":0.02581,"89":0.07097,"90":0.04516,"91":0.05162,"92":0.06452,"93":0.41293,"94":0.07742,"95":0.08388,"96":0.29679,"97":0.44519,"98":10.43934,"99":24.3563,"100":0.02581,"101":0.01936,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 66 68 77 102 103"},F:{"82":0.0129,"83":0.01936,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00645,"18":0.02581,"84":0.00645,"89":0.00645,"90":0.0129,"91":0.00645,"92":0.00645,"94":0.01936,"95":0.01936,"96":0.05162,"97":0.05807,"98":2.03883,"99":9.3425,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 93"},E:{"4":0,"12":0.00645,"13":0.05162,"14":0.18066,"15":0.06452,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00645,"10.1":0.0129,"11.1":0.02581,"12.1":0.05162,"13.1":0.19356,"14.1":0.54197,"15.1":0.1484,"15.2-15.3":0.16775,"15.4":0.12259},G:{"8":0.00437,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02184,"8.1-8.4":0.02184,"9.0-9.2":0.22494,"9.3":0.10701,"10.0-10.2":0.02402,"10.3":0.07425,"11.0-11.2":0.07207,"11.3-11.4":0.03494,"12.0-12.1":0.04149,"12.2-12.5":0.40183,"13.0-13.1":0.02402,"13.2":0.01747,"13.3":0.07644,"13.4-13.7":0.27735,"14.0-14.4":0.91504,"14.5-14.8":3.49418,"15.0-15.1":1.13561,"15.2-15.3":13.7496,"15.4":1.11159},P:{"4":0.16122,"5.0-5.4":0.01039,"6.2-6.4":0.04029,"7.2-7.4":0.2257,"8.2":0.09059,"9.2":0.03224,"10.1":0.01052,"11.1-11.2":0.20421,"12.0":0.03224,"13.0":0.02221,"14.0":0.02221,"15.0":0.02221,"16.0":0.8774},I:{"0":0,"3":0,"4":0.00574,"2.1":0,"2.2":0.04303,"2.3":0.05307,"4.1":0.00861,"4.2-4.3":0.11619,"4.4":0,"4.4.3-4.4.4":0.11762},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01397,"9":0.02095,"10":0.00698,"11":1.65498,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":17.62718},S:{"2.5":0},R:{_:"0"},M:{"0":0.29457},Q:{"10.4":0.03549},O:{"0":0.1881},H:{"0":0.08736}}; +module.exports={C:{"48":0.01196,"51":0.05978,"52":0.11358,"53":0.06576,"54":0.02989,"55":0.0538,"56":0.05978,"57":0.04185,"58":0.01793,"59":0.01793,"66":0.00598,"72":0.01196,"78":0.04782,"79":0.00598,"83":0.00598,"84":0.00598,"85":0.02989,"88":0.00598,"89":0.00598,"91":0.05978,"93":0.00598,"94":0.00598,"95":0.01196,"96":0.01196,"97":0.02391,"98":0.02989,"99":0.68747,"100":2.87542,"101":0.01196,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 80 81 82 86 87 90 92 102 103 3.5 3.6"},D:{"39":0.01793,"40":0.01793,"41":0.01793,"42":0.01793,"43":0.02391,"44":0.01793,"45":0.02391,"46":0.02391,"47":0.02391,"48":0.02391,"49":0.15543,"50":0.01196,"51":0.01793,"52":0.01793,"53":0.01793,"54":0.01793,"55":0.01793,"56":0.02391,"57":0.01793,"58":0.02391,"59":0.02391,"60":0.02391,"61":0.02989,"62":0.04185,"63":0.02391,"64":0.02391,"65":0.02989,"67":0.01196,"69":0.02391,"70":0.01196,"71":0.01196,"72":0.01196,"73":0.00598,"74":0.02391,"75":0.01196,"76":0.01196,"77":0.00598,"78":0.01793,"79":0.04185,"80":0.05978,"81":0.10163,"83":0.06576,"84":0.08967,"85":0.05978,"86":0.07771,"87":0.13749,"88":0.01793,"89":0.06576,"90":0.01793,"91":0.03587,"92":0.0538,"93":0.01793,"94":0.02989,"95":0.08369,"96":0.11358,"97":0.11358,"98":0.16141,"99":0.2989,"100":4.98565,"101":19.93065,"102":1.17767,"103":0.02391,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 66 68 104"},F:{"85":0.13749,"86":0.16738,"87":0.01196,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00598,"17":0.01196,"18":0.02391,"84":0.01196,"86":0.01196,"89":0.00598,"90":0.01196,"91":0.00598,"92":0.01196,"94":0.00598,"95":0.00598,"96":0.02989,"97":0.01196,"98":0.02989,"99":0.06576,"100":0.51411,"101":12.04567,_:"13 14 15 16 79 80 81 83 85 87 88 93"},E:{"4":0,"12":0.00598,"13":0.06576,"14":0.17336,"15":0.04782,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00598,"10.1":0.01793,"11.1":0.02989,"12.1":0.04782,"13.1":0.20325,"14.1":0.46628,"15.1":0.08967,"15.2-15.3":0.09565,"15.4":1.66188,"15.5":0.15543},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0024,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03357,"8.1-8.4":0.01918,"9.0-9.2":0.19183,"9.3":0.1079,"10.0-10.2":0.04796,"10.3":0.07913,"11.0-11.2":0.06714,"11.3-11.4":0.03357,"12.0-12.1":0.04076,"12.2-12.5":0.42682,"13.0-13.1":0.03357,"13.2":0.01679,"13.3":0.07433,"13.4-13.7":0.26137,"14.0-14.4":0.78171,"14.5-14.8":2.52496,"15.0-15.1":0.5659,"15.2-15.3":1.54423,"15.4":17.11605},P:{_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 11.1-11.2 15.0","12.0":0.01117,"13.0":0.02233,"14.0":0.01117,"16.0":0.40194},I:{"0":0,"3":0,"4":0.00759,"2.1":0,"2.2":0.02528,"2.3":0.03034,"4.1":0.01264,"4.2-4.3":0.10619,"4.4":0,"4.4.3-4.4.4":0.1517},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02626,"9":0.03938,"10":0.01313,"11":1.59507,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":21.59343},S:{"2.5":0},R:{_:"0"},M:{"0":0.36993},Q:{"10.4":0.04021},O:{"0":0.26539},H:{"0":0.10659}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KE.js index 0d0486a5f78539..db4a4fc582fdfd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KE.js @@ -1 +1 @@ -module.exports={C:{"34":0.00766,"43":0.00255,"47":0.01021,"48":0.00255,"52":0.19906,"57":0.00766,"65":0.00255,"68":0.00255,"72":0.0051,"73":0.01021,"78":0.02297,"82":0.01276,"83":0.0051,"84":0.00255,"86":0.00255,"87":0.01021,"88":0.02297,"89":0.01276,"90":0.00255,"91":0.02807,"92":0.0051,"93":0.0051,"94":0.00766,"95":0.02042,"96":0.02552,"97":0.68649,"98":1.22241,"99":0.07401,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 49 50 51 53 54 55 56 58 59 60 61 62 63 64 66 67 69 70 71 74 75 76 77 79 80 81 85 100 3.5 3.6"},D:{"11":0.00255,"38":0.0051,"43":0.0051,"47":0.0051,"49":0.02042,"50":0.00255,"54":0.01021,"56":0.00766,"57":0.00255,"60":0.00255,"61":0.00255,"62":0.0051,"63":0.0051,"64":0.0051,"65":0.00766,"66":0.00766,"67":0.00766,"68":0.01021,"69":0.16078,"70":0.00766,"71":0.00255,"72":0.0051,"73":0.01531,"74":0.0051,"75":0.00766,"76":0.00766,"77":0.01021,"78":0.00766,"79":0.05104,"80":0.01021,"81":0.01021,"83":0.01786,"84":0.01531,"85":0.01021,"86":0.03828,"87":0.0638,"88":0.02042,"89":0.01786,"90":0.02297,"91":0.0638,"92":0.10974,"93":0.02807,"94":0.03062,"95":0.05359,"96":0.14546,"97":0.21437,"98":3.16448,"99":11.02209,"100":0.11484,"101":0.01531,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 51 52 53 55 58 59 102 103"},F:{"28":0.01276,"36":0.00255,"65":0.0051,"66":0.0051,"67":0.0051,"68":0.0051,"80":0.0051,"81":0.00255,"82":0.01531,"83":0.06125,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 69 70 71 72 73 74 75 76 77 78 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01021,"13":0.00766,"14":0.00255,"15":0.0051,"16":0.00766,"17":0.01786,"18":0.05104,"84":0.0051,"85":0.0051,"89":0.00766,"90":0.00255,"91":0.00255,"92":0.02042,"93":0.00255,"94":0.00255,"95":0.0051,"96":0.01531,"97":0.03318,"98":0.30114,"99":1.17647,_:"79 80 81 83 86 87 88"},E:{"4":0,"13":0.01021,"14":0.02807,"15":0.01786,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 9.1","5.1":0.00766,"7.1":0.00255,"10.1":0.00255,"11.1":0.0051,"12.1":0.01276,"13.1":0.03828,"14.1":0.10718,"15.1":0.02807,"15.2-15.3":0.02807,"15.4":0.02042},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00042,"5.0-5.1":0.00649,"6.0-6.1":0,"7.0-7.1":0.03223,"8.1-8.4":0.00147,"9.0-9.2":0.00126,"9.3":0.02805,"10.0-10.2":0.00314,"10.3":0.02512,"11.0-11.2":0.00942,"11.3-11.4":0.00649,"12.0-12.1":0.00712,"12.2-12.5":0.15677,"13.0-13.1":0.00502,"13.2":0.00209,"13.3":0.01381,"13.4-13.7":0.04772,"14.0-14.4":0.13647,"14.5-14.8":0.30769,"15.0-15.1":0.19152,"15.2-15.3":1.00552,"15.4":0.10507},P:{"4":0.15799,"5.0-5.4":0.01039,"6.2-6.4":0.01029,"7.2-7.4":0.07373,"8.2":0.09059,"9.2":0.04117,"10.1":0.02059,"11.1-11.2":0.04213,"12.0":0.04117,"13.0":0.05266,"14.0":0.09479,"15.0":0.0632,"16.0":0.55822},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00095,"4.2-4.3":0.00308,"4.4":0,"4.4.3-4.4.4":0.03321},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00269,"11":0.09684,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":39.67178},S:{"2.5":0},R:{_:"0"},M:{"0":0.11172},Q:{"10.4":0},O:{"0":0.30537},H:{"0":33.05643}}; +module.exports={C:{"34":0.01062,"43":0.00266,"47":0.00797,"52":0.24692,"61":0.00266,"72":0.00531,"73":0.00531,"78":0.01593,"79":0.00266,"80":0.00531,"82":0.01062,"84":0.00531,"87":0.00266,"88":0.00797,"89":0.00531,"91":0.03452,"92":0.00266,"93":0.00266,"94":0.00797,"95":0.00797,"96":0.00531,"97":0.01593,"98":0.01859,"99":0.55755,"100":1.5107,"101":0.09027,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 74 75 76 77 81 83 85 86 90 102 103 3.5 3.6"},D:{"11":0.01328,"38":0.00531,"43":0.00531,"47":0.00531,"49":0.01328,"50":0.00266,"54":0.00797,"55":0.00531,"56":0.00797,"57":0.00531,"58":0.00531,"62":0.00266,"63":0.00531,"64":0.00531,"65":0.00531,"66":0.01328,"67":0.01062,"68":0.00797,"69":0.11417,"70":0.00797,"71":0.00266,"72":0.00531,"73":0.01328,"74":0.00531,"75":0.00531,"76":0.01328,"77":0.00797,"78":0.01328,"79":0.04779,"80":0.02921,"81":0.01062,"83":0.02124,"84":0.01062,"85":0.01062,"86":0.02921,"87":0.05045,"88":0.01593,"89":0.02124,"90":0.02124,"91":0.03717,"92":0.03717,"93":0.02655,"94":0.02655,"95":0.03717,"96":0.06107,"97":0.04779,"98":0.09293,"99":0.15665,"100":2.55146,"101":10.78992,"102":1.09121,"103":0.01593,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 51 52 53 59 60 61 104"},F:{"28":0.02124,"36":0.00266,"46":0.00266,"65":0.00531,"66":0.00266,"69":0.00797,"79":0.00531,"84":0.00531,"85":0.23895,"86":0.36108,"87":0.03983,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 67 68 70 71 72 73 74 75 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01062,"13":0.00531,"14":0.00266,"15":0.00266,"16":0.00797,"17":0.00531,"18":0.03186,"84":0.00531,"85":0.01062,"89":0.00797,"90":0.00266,"91":0.00266,"92":0.03452,"96":0.00797,"97":0.00797,"98":0.01062,"99":0.02921,"100":0.10355,"101":1.28768,_:"79 80 81 83 86 87 88 93 94 95"},E:{"4":0,"11":0.01328,"13":0.00797,"14":0.0239,"15":0.01328,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00531,"11.1":0.00266,"12.1":0.00797,"13.1":0.02655,"14.1":0.07965,"15.1":0.01593,"15.2-15.3":0.01328,"15.4":0.1832,"15.5":0.02921},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00531,"6.0-6.1":0,"7.0-7.1":0.02367,"8.1-8.4":0.00044,"9.0-9.2":0.00111,"9.3":0.03097,"10.0-10.2":0.00332,"10.3":0.02522,"11.0-11.2":0.00575,"11.3-11.4":0.01062,"12.0-12.1":0.00376,"12.2-12.5":0.16104,"13.0-13.1":0.0031,"13.2":0.00332,"13.3":0.01371,"13.4-13.7":0.03495,"14.0-14.4":0.11193,"14.5-14.8":0.23714,"15.0-15.1":0.07941,"15.2-15.3":0.22962,"15.4":1.22616},P:{"4":0.20617,_:"5.0-5.4 8.2","6.2-6.4":0.07216,"7.2-7.4":0.07216,"9.2":0.02069,"10.1":0.01053,"11.1-11.2":0.03093,"12.0":0.03104,"13.0":0.03093,"14.0":0.06185,"15.0":0.04123,"16.0":0.30926},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00185,"4.2-4.3":0.00317,"4.4":0,"4.4.3-4.4.4":0.0317},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00536,"11":0.27076,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.13954},Q:{"10.4":0},O:{"0":0.28642},H:{"0":28.61783},L:{"0":44.10409},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KG.js index fb98722bccd2b2..07cefd4e303d70 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KG.js @@ -1 +1 @@ -module.exports={C:{"52":0.01133,"55":0.01511,"78":0.00756,"84":0.00378,"91":0.04156,"95":0.02267,"96":0.00378,"97":0.18512,"98":0.34758,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 92 93 94 99 100 3.5 3.6"},D:{"49":0.02267,"59":0.04534,"67":0.02645,"68":0.00378,"70":0.00756,"71":0.01133,"73":0.00756,"74":0.06045,"77":0.01133,"78":0.01133,"79":0.03022,"80":0.01133,"81":0.03022,"83":0.04534,"84":0.03022,"85":0.01133,"86":0.03778,"87":0.03778,"88":0.02267,"89":0.07178,"90":0.01133,"91":0.01133,"92":0.01133,"93":0.00756,"94":0.13979,"95":0.01511,"96":0.20023,"97":0.27957,"98":15.91294,"99":14.4244,"100":0.02645,"101":0.01133,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 69 72 75 76 102 103"},F:{"42":0.01133,"77":0.00756,"81":0.00378,"82":0.01511,"83":0.1889,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00378,"90":0.00378,"92":0.00378,"97":0.00378,"98":0.08312,"99":0.41936,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94 95 96"},E:{"4":0,"13":0.01133,"14":0.08689,"15":0.02267,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1","5.1":0.54403,"13.1":0.03022,"14.1":0.12467,"15.1":0.04534,"15.2-15.3":0.05289,"15.4":0.07556},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00112,"6.0-6.1":0,"7.0-7.1":0.0028,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0359,"10.0-10.2":0.00168,"10.3":0.02188,"11.0-11.2":0.00393,"11.3-11.4":0.00954,"12.0-12.1":0.00841,"12.2-12.5":0.25862,"13.0-13.1":0.01066,"13.2":0.00561,"13.3":0.07012,"13.4-13.7":0.08864,"14.0-14.4":0.43421,"14.5-14.8":0.90264,"15.0-15.1":0.82522,"15.2-15.3":2.62658,"15.4":0.29845},P:{"4":0.24532,"5.0-5.4":0.01022,"6.2-6.4":0.06133,"7.2-7.4":0.25555,"8.2":0.09059,"9.2":0.08177,"10.1":0.02044,"11.1-11.2":0.092,"12.0":0.08177,"13.0":0.20444,"14.0":0.15333,"15.0":0.28621,"16.0":1.22662},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00055,"4.4":0,"4.4.3-4.4.4":0.00567},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04156,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":50.63051},S:{"2.5":0},R:{_:"0"},M:{"0":0.02489},Q:{"10.4":0},O:{"0":0.49154},H:{"0":0.32987}}; +module.exports={C:{"52":0.02222,"55":0.01333,"91":0.04,"97":0.01333,"98":0.00444,"99":0.32886,"100":0.34219,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 101 102 103 3.5 3.6"},D:{"49":0.02222,"56":0.00444,"66":0.00444,"67":0.00889,"71":0.01333,"74":0.07999,"79":0.02666,"80":0.01778,"81":0.06666,"83":0.01333,"84":0.00889,"85":0.01778,"86":0.03111,"87":0.00889,"88":0.01778,"89":0.05777,"90":0.02666,"91":0.01333,"92":0.01778,"93":0.00889,"94":0.02666,"95":0.00889,"96":0.0711,"97":0.05777,"98":0.20887,"99":0.3733,"100":25.57522,"101":10.39007,"102":1.00434,"103":0.00889,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 68 69 70 72 73 75 76 77 78 104"},F:{"42":0.04444,"82":0.00444,"84":0.00889,"85":0.60883,"86":0.61327,"87":0.04444,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00889,"92":0.00889,"99":0.00444,"100":0.04,"101":0.5155,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98"},E:{"4":0,"14":0.03555,"15":0.01333,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.40885,"12.1":0.00889,"13.1":0.02222,"14.1":0.11554,"15.1":0.03111,"15.2-15.3":0.06222,"15.4":0.26664,"15.5":0.04444},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00176,"6.0-6.1":0,"7.0-7.1":0.00353,"8.1-8.4":0,"9.0-9.2":0.00176,"9.3":0.02293,"10.0-10.2":0.00706,"10.3":0.01058,"11.0-11.2":0.0047,"11.3-11.4":0.01882,"12.0-12.1":0.01294,"12.2-12.5":0.22638,"13.0-13.1":0.01352,"13.2":0.00764,"13.3":0.01999,"13.4-13.7":0.07056,"14.0-14.4":0.38102,"14.5-14.8":0.76911,"15.0-15.1":0.59741,"15.2-15.3":0.74029,"15.4":2.96823},P:{"4":0.2748,"5.0-5.4":0.01018,"6.2-6.4":0.04071,"7.2-7.4":0.26462,"8.2":0.03053,"9.2":0.04071,"10.1":0.02036,"11.1-11.2":0.0916,"12.0":0.06107,"13.0":0.13231,"14.0":0.12213,"15.0":0.11196,"16.0":0.63102},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00058,"4.2-4.3":0.00117,"4.4":0,"4.4.3-4.4.4":0.02047},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07999,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.03334},Q:{"10.4":0},O:{"0":0.58338},H:{"0":0.33138},L:{"0":46.91135},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KH.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KH.js index 04d4468c4bcf17..ee1a97c483ae69 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KH.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KH.js @@ -1 +1 @@ -module.exports={C:{"43":0.00423,"44":0.00846,"47":0.00423,"48":0.00846,"50":0.00423,"51":0.00423,"52":0.01269,"56":0.01692,"60":0.01269,"61":0.02537,"65":0.00846,"67":0.00423,"68":0.00846,"69":0.01692,"72":0.00846,"78":0.03383,"79":0.0296,"80":0.04229,"81":0.05498,"82":0.03383,"83":0.01692,"84":0.00846,"87":0.00423,"88":0.01692,"89":0.00423,"90":0.00846,"91":0.00846,"92":0.00423,"93":0.00423,"94":0.00846,"95":0.02537,"96":0.0296,"97":0.57937,"98":1.26447,"99":0.04652,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 45 46 49 53 54 55 57 58 59 62 63 64 66 70 71 73 74 75 76 77 85 86 100 3.5 3.6"},D:{"33":0.00846,"38":0.02115,"40":0.01269,"43":0.00846,"47":0.00846,"48":0.00846,"49":0.01269,"53":0.0296,"56":0.01692,"63":0.00423,"65":0.00846,"67":0.02537,"69":0.00846,"70":0.00846,"71":0.00846,"73":0.00423,"74":0.00846,"75":0.00846,"76":0.01269,"77":0.00423,"78":0.01269,"79":0.09727,"80":0.02537,"81":0.0296,"83":0.10995,"84":0.21145,"85":0.26643,"86":0.19031,"87":0.22414,"88":0.01692,"89":0.0296,"90":0.05498,"91":0.08881,"92":0.07612,"93":2.66004,"94":0.03383,"95":0.04229,"96":0.19453,"97":0.29603,"98":4.89295,"99":20.28651,"100":0.17339,"101":0.05075,"102":0.00846,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 39 41 42 44 45 46 50 51 52 54 55 57 58 59 60 61 62 64 66 68 72 103"},F:{"28":0.01269,"36":0.00846,"43":0.00423,"69":0.00846,"70":0.00846,"71":0.01692,"72":0.01692,"82":0.00423,"83":0.14802,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00846,"17":0.00846,"18":0.04229,"84":0.00423,"85":0.01269,"86":0.01692,"87":0.00423,"89":0.01269,"92":0.03383,"93":0.00846,"95":0.00423,"96":0.01692,"97":0.0296,"98":0.35947,"99":1.40826,_:"13 14 15 16 79 80 81 83 88 90 91 94"},E:{"4":0,"12":0.00846,"13":0.05498,"14":0.2326,"15":0.11841,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00846,"12.1":0.03806,"13.1":0.16493,"14.1":0.73162,"15.1":0.25374,"15.2-15.3":0.2918,"15.4":0.18608},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00236,"5.0-5.1":0.00236,"6.0-6.1":0.00236,"7.0-7.1":0.02356,"8.1-8.4":0.02827,"9.0-9.2":0.01178,"9.3":0.09422,"10.0-10.2":0.0212,"10.3":0.13191,"11.0-11.2":0.03769,"11.3-11.4":0.10129,"12.0-12.1":0.08009,"12.2-12.5":1.55465,"13.0-13.1":0.08009,"13.2":0.03533,"13.3":0.23084,"13.4-13.7":0.58653,"14.0-14.4":1.96923,"14.5-14.8":4.74169,"15.0-15.1":2.29429,"15.2-15.3":10.2819,"15.4":1.22252},P:{"4":0.15149,"5.0-5.4":0.01082,"6.2-6.4":0.01027,"7.2-7.4":0.01082,"8.2":0.01082,"9.2":0.0308,"10.1":0.04107,"11.1-11.2":0.0308,"12.0":0.03246,"13.0":0.0541,"14.0":0.03246,"15.0":0.07574,"16.0":1.35258},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00721,"4.4":0,"4.4.3-4.4.4":0.0505},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01433,"8":0.03343,"9":0.03343,"10":0.00478,"11":0.61605,_:"7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":31.37182},S:{"2.5":0},R:{_:"0"},M:{"0":0.16159},Q:{"10.4":0.01154},O:{"0":0.77331},H:{"0":0.61192}}; +module.exports={C:{"45":0.01168,"47":0.00779,"48":0.00389,"52":0.01168,"55":0.00779,"60":0.00389,"61":0.02336,"67":0.00779,"68":0.03893,"72":0.00779,"75":0.01168,"77":0.00389,"78":0.04282,"79":0.09733,"80":0.03504,"81":0.01947,"82":0.00779,"83":0.01557,"84":0.00779,"86":0.00389,"88":0.00779,"89":0.02336,"90":0.00779,"91":0.01947,"92":0.00779,"94":0.00389,"95":0.01557,"96":0.01947,"97":0.00389,"98":0.01168,"99":0.31533,"100":1.52995,"101":0.08565,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 49 50 51 53 54 56 57 58 59 62 63 64 65 66 69 70 71 73 74 76 85 87 93 102 103 3.5 3.6"},D:{"38":0.00779,"48":0.02336,"49":0.02725,"53":0.03114,"56":0.01557,"59":0.00389,"63":0.01168,"64":0.01947,"65":0.01168,"68":0.00389,"69":0.04282,"70":0.00779,"71":0.00389,"72":0.01168,"73":0.00779,"74":0.00779,"76":0.02725,"77":0.02336,"78":0.07007,"79":0.10511,"80":0.03504,"81":0.04282,"83":0.19465,"84":0.71242,"85":0.40877,"86":0.45937,"87":0.48273,"88":0.01168,"89":0.01947,"90":0.04672,"91":0.04672,"92":0.0545,"93":0.02336,"94":0.03114,"95":0.03114,"96":0.09343,"97":0.12458,"98":0.1129,"99":0.25694,"100":4.68328,"101":17.46011,"102":1.68956,"103":0.04672,"104":0.01168,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 50 51 52 54 55 57 58 60 61 62 66 67 75"},F:{"28":0.01168,"36":0.00389,"40":0.00779,"46":0.01168,"52":0.00389,"68":0.02725,"69":0.07397,"71":0.01947,"72":0.01168,"85":0.3348,"86":0.43212,"87":0.04282,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 70 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.09343,"83":0.01947,"84":0.04672,"85":0.03114,"86":0.01557,"89":0.00779,"92":0.01947,"96":0.00389,"97":0.01557,"98":0.00779,"99":0.01168,"100":0.07007,"101":1.74796,_:"12 13 14 15 16 17 79 80 81 87 88 90 91 93 94 95"},E:{"4":0,"10":0.00389,"12":0.00779,"13":0.04282,"14":0.22969,"15":0.05061,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01168,"12.1":0.03504,"13.1":0.18297,"14.1":0.53334,"15.1":0.17908,"15.2-15.3":0.14404,"15.4":1.62338,"15.5":0.16351},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02111,"8.1-8.4":0.01056,"9.0-9.2":0,"9.3":0.08444,"10.0-10.2":0.01583,"10.3":0.10027,"11.0-11.2":0.0343,"11.3-11.4":0.08972,"12.0-12.1":0.05278,"12.2-12.5":1.48299,"13.0-13.1":0.0818,"13.2":0.03958,"13.3":0.17944,"13.4-13.7":0.63858,"14.0-14.4":1.80228,"14.5-14.8":4.14022,"15.0-15.1":1.5041,"15.2-15.3":2.68098,"15.4":13.41284},P:{"4":0.15879,"5.0-5.4":0.02117,"6.2-6.4":0.03029,"7.2-7.4":0.09087,"8.2":0.02288,"9.2":0.04039,"10.1":0.02019,"11.1-11.2":0.03029,"12.0":0.06352,"13.0":0.03176,"14.0":0.03176,"15.0":0.03176,"16.0":0.56107},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00076,"4.2-4.3":0.00229,"4.4":0,"4.4.3-4.4.4":0.02137},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03935,"9":0.01749,"11":0.51154,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":32.28211},S:{"2.5":0},R:{_:"0"},M:{"0":0.16486},Q:{"10.4":0.01221},O:{"0":0.66555},H:{"0":0.83821}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KI.js index f34352f0c8d3de..abae330a0726d5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KI.js @@ -1 +1 @@ -module.exports={C:{"30":0.2256,"56":0.03055,"72":0.0188,"94":0.03995,"95":0.03055,"97":0.7567,"98":1.6591,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 96 99 100 3.5 3.6"},D:{"38":0.03995,"54":0.0893,"55":0.07755,"63":0.0188,"67":0.04935,"69":0.03055,"71":0.0094,"72":0.03055,"76":0.0094,"81":0.0188,"85":0.0188,"86":0.07755,"88":0.0094,"89":0.04935,"93":0.03995,"94":0.0094,"95":0.0188,"96":0.17625,"97":0.2162,"98":2.28655,"99":9.57625,"100":0.14805,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 56 57 58 59 60 61 62 64 65 66 68 70 73 74 75 77 78 79 80 83 84 87 90 91 92 101 102 103"},F:{"77":0.0094,"78":0.1081,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.0188,"15":0.0094,"16":0.04935,"17":0.0094,"18":0.2162,"80":0.15745,"84":0.235,"85":0.0188,"89":0.0094,"92":0.06815,"96":0.0188,"97":0.0094,"98":1.14915,"99":2.5803,_:"12 14 79 81 83 86 87 88 90 91 93 94 95"},E:{"4":0,"14":0.0094,"15":0.0094,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4","14.1":0.0094},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0.09342,"12.0-12.1":0.00936,"12.2-12.5":0.11194,"13.0-13.1":0.00936,"13.2":0.00936,"13.3":0.06533,"13.4-13.7":0.04681,"14.0-14.4":0.23323,"14.5-14.8":1.3528,"15.0-15.1":0.05597,"15.2-15.3":0.08385,"15.4":0.00936},P:{"4":0.19128,"5.0-5.4":0.01039,"6.2-6.4":0.01029,"7.2-7.4":1.86251,"8.2":0.09059,"9.2":0.04117,"10.1":0.04027,"11.1-11.2":1.03696,"12.0":0.04117,"13.0":0.49331,"14.0":0.07047,"15.0":0.12081,"16.0":5.10428},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01024,"4.2-4.3":0.06826,"4.4":0,"4.4.3-4.4.4":0.14335},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.03055,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":65.96845},S:{"2.5":0},R:{_:"0"},M:{"0":0.06885},Q:{"10.4":0},O:{"0":1.39995},H:{"0":0.18831}}; +module.exports={C:{"59":0.02588,"67":0.04026,"82":0.18694,"84":0.01438,"86":0.01438,"97":0.01438,"99":0.40264,"100":2.34969,"101":0.02588,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 85 87 88 89 90 91 92 93 94 95 96 98 102 103 3.5 3.6"},D:{"55":0.02588,"74":0.04026,"76":0.02588,"84":0.01438,"88":0.04026,"89":0.18694,"91":0.01438,"92":0.04026,"94":0.01438,"95":0.06615,"96":0.14668,"97":0.13517,"98":0.08053,"99":0.05464,"100":3.39656,"101":8.95586,"102":0.95196,"103":0.01438,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 77 78 79 80 81 83 85 86 87 90 93 104"},F:{"83":0.09491,"86":0.04026,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02588,"13":0.12079,"14":0.01438,"15":0.01438,"16":0.02588,"18":0.06615,"80":0.30773,"84":0.02588,"85":0.10641,"86":0.01438,"87":0.01438,"88":0.02588,"89":0.05464,"90":0.01438,"94":0.02588,"95":0.02588,"96":0.01438,"98":0.28185,"99":0.12079,"100":0.64422,"101":4.21622,_:"17 79 81 83 91 92 93 97"},E:{"4":0,"13":0.04026,"14":0.02588,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.1 15.2-15.3 15.4","14.1":0.01438,"15.5":0.13517},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03106,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0.04138,"12.0-12.1":0,"12.2-12.5":0.08277,"13.0-13.1":0,"13.2":0.02074,"13.3":0.0517,"13.4-13.7":0.01032,"14.0-14.4":0.08277,"14.5-14.8":0.11383,"15.0-15.1":0.09319,"15.2-15.3":0.20692,"15.4":0.2483},P:{"4":0.1914,_:"5.0-5.4 8.2","6.2-6.4":0.07216,"7.2-7.4":2.2363,"9.2":1.26925,"10.1":0.01053,"11.1-11.2":0.07051,"12.0":0.01007,"13.0":0.43316,"14.0":0.12088,"15.0":0.16117,"16.0":0.9469},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.02849},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06615,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.01425},Q:{"10.4":0},O:{"0":1.15393},H:{"0":0.1551},L:{"0":67.81612},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KM.js index b84b5d6616cb0f..77a07d00f9b688 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KM.js @@ -1 +1 @@ -module.exports={C:{"26":0.00973,"43":0.00973,"52":0.00487,"78":0.0146,"81":0.00973,"86":0.00487,"91":0.0292,"95":0.01946,"96":0.03406,"97":0.58879,"98":0.96833,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 87 88 89 90 92 93 94 99 100 3.5 3.6"},D:{"11":0.00487,"49":0.00973,"63":0.00973,"65":0.0146,"66":0.0292,"68":0.01946,"74":0.00973,"79":0.00973,"81":0.26276,"83":0.00973,"87":0.00973,"88":0.00487,"89":0.0146,"90":0.00973,"91":0.03893,"92":0.09245,"93":0.0146,"94":0.0292,"95":0.00487,"96":0.04379,"97":0.21897,"98":1.36735,"99":4.27721,"100":0.07299,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 67 69 70 71 72 73 75 76 77 78 80 84 85 86 101 102 103"},F:{"83":0.0292,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00487,"13":0.01946,"14":0.0292,"15":0.01946,"16":0.0146,"17":0.00487,"18":0.03406,"84":0.01946,"85":0.01946,"89":0.00973,"96":0.00973,"97":0.00487,"98":0.13625,"99":0.58879,_:"79 80 81 83 86 87 88 90 91 92 93 94 95"},E:{"4":0,"14":0.0146,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.00973,"12.1":0.00973,"13.1":0.03406,"14.1":0.03893,"15.1":0.00973,"15.2-15.3":0.00973,"15.4":0.01946},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00336,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00168,"10.0-10.2":0,"10.3":0.04297,"11.0-11.2":0.0846,"11.3-11.4":0.03391,"12.0-12.1":0.00302,"12.2-12.5":0.25348,"13.0-13.1":0.03055,"13.2":0.00604,"13.3":0.01376,"13.4-13.7":0.15544,"14.0-14.4":0.80407,"14.5-14.8":0.38911,"15.0-15.1":0.49957,"15.2-15.3":0.93467,"15.4":0.10139},P:{"4":0.18233,"5.0-5.4":0.02026,"6.2-6.4":0.01013,"7.2-7.4":0.45582,"8.2":0.02072,"9.2":0.0709,"10.1":1.03318,"11.1-11.2":0.27349,"12.0":0.02046,"13.0":0.09116,"14.0":0.19246,"15.0":0.09116,"16.0":0.57737},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0136,"4.2-4.3":0.01409,"4.4":0,"4.4.3-4.4.4":0.16227},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.31629,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":81.38249},S:{"2.5":0.01027},R:{_:"0"},M:{"0":0.08214},Q:{"10.4":0},O:{"0":0.35938},H:{"0":1.23458}}; +module.exports={C:{"43":0.00192,"47":0.00384,"52":0.01151,"68":0.01151,"72":0.00192,"78":0.01534,"84":0.00384,"88":0.00767,"91":0.00767,"93":0.00767,"94":0.00192,"96":0.00192,"97":0.00192,"98":0.01534,"99":0.24167,"100":1.02229,"101":0.00192,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 87 89 90 92 95 102 103 3.5 3.6"},D:{"31":0.05946,"40":0.00192,"43":0.00767,"48":0.01343,"49":0.01343,"55":0.11124,"57":0.01534,"58":0.02493,"59":0.00192,"60":0.00192,"62":0.00192,"65":0.00959,"66":0.01343,"67":0.00767,"69":0.00192,"71":0.00959,"72":0.00384,"73":0.00384,"76":0.00767,"77":0.0211,"81":0.01918,"84":0.00767,"86":0.00192,"87":0.03452,"88":0.00767,"89":0.00767,"90":0.00384,"91":0.03069,"92":0.11124,"93":0.01151,"94":0.00192,"95":0.00959,"96":0.02302,"97":0.18605,"98":0.34524,"99":0.16303,"100":1.22368,"101":7.02755,"102":0.35867,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 41 42 44 45 46 47 50 51 52 53 54 56 61 63 64 68 70 74 75 78 79 80 83 85 103 104"},F:{"28":0.01534,"43":0.00959,"46":0.04028,"49":0.00192,"65":0.00192,"74":0.02877,"79":0.01151,"80":0.00192,"83":0.00767,"84":0.0211,"85":0.06329,"86":0.12467,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 75 76 77 78 81 82 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01151,"13":0.00959,"14":0.00384,"15":0.00767,"16":0.01343,"17":0.00192,"18":0.08439,"80":0.00384,"84":0.04028,"92":0.01534,"95":0.00767,"96":0.04028,"97":0.00959,"98":0.01918,"99":0.05562,"100":0.12467,"101":0.98969,_:"79 81 83 85 86 87 88 89 90 91 93 94"},E:{"4":0,"13":0.00767,"14":0.00959,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.5","12.1":0.00384,"13.1":0.01534,"14.1":0.10741,"15.1":0.05562,"15.2-15.3":0.00767,"15.4":0.06329},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01229,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00184,"10.0-10.2":0.06083,"10.3":0.04424,"11.0-11.2":0.08172,"11.3-11.4":0.02519,"12.0-12.1":0.02949,"12.2-12.5":0.79753,"13.0-13.1":0.01045,"13.2":0,"13.3":0.03809,"13.4-13.7":0.1278,"14.0-14.4":1.3837,"14.5-14.8":0.66789,"15.0-15.1":0.6089,"15.2-15.3":0.53517,"15.4":1.71795},P:{"4":0.152,"5.0-5.4":0.05067,"6.2-6.4":0.0304,"7.2-7.4":0.1824,"8.2":0.22305,"9.2":0.19253,"10.1":0.29386,"11.1-11.2":0.59786,"12.0":0.0304,"13.0":0.0304,"14.0":0.05067,"15.0":0.08107,"16.0":1.63145},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00319,"4.2-4.3":0.01099,"4.4":0,"4.4.3-4.4.4":0.06665},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.35099,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":73.28856},S:{"2.5":0.04042},R:{_:"0"},M:{"0":0.08891},Q:{"10.4":0.97804},O:{"0":0.3314},H:{"0":1.51519}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KN.js index 902ecf10ad8612..202cc8ef5095e5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KN.js @@ -1 +1 @@ -module.exports={C:{"78":0.00942,"86":0.00942,"96":0.00471,"97":0.26858,"98":0.67853,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 95 99 100 3.5 3.6"},D:{"23":0.00942,"29":0.00942,"57":0.01414,"70":0.00942,"75":0.02827,"76":0.13194,"77":0.03298,"78":0.01414,"79":0.00942,"83":0.05183,"85":0.17906,"86":0.00471,"87":0.02356,"88":0.00942,"90":0.00471,"91":0.01414,"92":0.03298,"93":0.02827,"94":0.00942,"95":0.00942,"96":0.0801,"97":0.77748,"98":6.13502,"99":19.79982,"100":0.20733,"101":0.07068,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 80 81 84 89 102 103"},F:{"83":0.22618,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03298,"17":0.00942,"18":0.05183,"85":0.06597,"90":0.00942,"92":0.00471,"93":0.00471,"94":0.00471,"96":0.00471,"97":0.12251,"98":2.14867,"99":6.21984,_:"13 14 15 16 79 80 81 83 84 86 87 88 89 91 95"},E:{"4":0,"12":0.02827,"13":0.00471,"14":0.44764,"15":0.05183,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00471,"12.1":0.07068,"13.1":0.25916,"14.1":0.6267,"15.1":0.16021,"15.2-15.3":0.44764,"15.4":0.0801},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00274,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00685,"10.0-10.2":0.03426,"10.3":0.36183,"11.0-11.2":0.00274,"11.3-11.4":0.00411,"12.0-12.1":0.04249,"12.2-12.5":0.73324,"13.0-13.1":0.00274,"13.2":0.00411,"13.3":0.03838,"13.4-13.7":0.09183,"14.0-14.4":0.3769,"14.5-14.8":1.5405,"15.0-15.1":0.81274,"15.2-15.3":8.92777,"15.4":0.71269},P:{"4":0.15823,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.18987,"8.2":0.02028,"9.2":0.0211,"10.1":0.03042,"11.1-11.2":0.09494,"12.0":0.01056,"13.0":0.08439,"14.0":0.08439,"15.0":0.0211,"16.0":3.40718},I:{"0":0,"3":0,"4":0.00288,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00288,"4.4":0,"4.4.3-4.4.4":0.07355},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08953,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":36.25933},S:{"2.5":0},R:{_:"0"},M:{"0":0.7033},Q:{"10.4":0},O:{"0":0.05288},H:{"0":1.83733}}; +module.exports={C:{"52":0.01675,"69":0.02094,"78":0.02512,"90":0.00837,"97":0.01256,"99":0.20516,"100":0.79972,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96 98 101 102 103 3.5 3.6"},D:{"29":0.01256,"57":0.00837,"63":0.01675,"66":0.00419,"75":0.14236,"76":0.07955,"78":0.00837,"79":0.06699,"83":0.02512,"85":0.00419,"86":0.01256,"89":0.01256,"91":0.07118,"92":0.04187,"93":0.05862,"94":0.03768,"96":0.07955,"97":0.04187,"98":0.05024,"99":0.56943,"100":5.67757,"101":18.02922,"102":1.47801,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 59 60 61 62 64 65 67 68 69 70 71 72 73 74 77 80 81 84 87 88 90 95 103 104"},F:{"85":0.0963,"86":0.15911,"87":0.00837,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00837,"84":0.02512,"91":0.02094,"92":0.00419,"97":0.06281,"98":0.04606,"99":0.22191,"100":0.92533,"101":5.45985,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 93 94 95 96"},E:{"4":0,"12":0.00837,"13":0.00837,"14":0.08793,"15":0.03768,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00837,"12.1":0.36008,"13.1":0.15492,"14.1":0.41033,"15.1":0.05862,"15.2-15.3":0.46057,"15.4":1.45289,"15.5":0.12142},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00955,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05185,"10.0-10.2":0,"10.3":0.43388,"11.0-11.2":0.00273,"11.3-11.4":0.00273,"12.0-12.1":0.05321,"12.2-12.5":0.7477,"13.0-13.1":0.00546,"13.2":0,"13.3":0.01501,"13.4-13.7":0.07231,"14.0-14.4":0.50483,"14.5-14.8":0.99466,"15.0-15.1":0.26879,"15.2-15.3":0.90597,"15.4":9.56862},P:{"4":0.24359,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.05296,"8.2":0.01022,"9.2":0.02051,"10.1":0.03041,"11.1-11.2":0.09532,"12.0":0.01135,"13.0":0.03177,"14.0":0.04236,"15.0":0.02118,"16.0":1.81106},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00338,"4.4":0,"4.4.3-4.4.4":0.01987},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0963,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.56386},Q:{"10.4":0},O:{"0":0.05813},H:{"0":1.88766},L:{"0":40.45735},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KP.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KP.js index 1b79f59a409e05..2371025cb1042a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KP.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KP.js @@ -1 +1 @@ -module.exports={C:{"94":0.01107,"96":0.03506,"99":0.02214,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 97 98 100 3.5 3.6"},D:{"17":0.01107,"74":0.06827,"83":0.14945,"91":0.01107,"96":0.34502,"98":0.32288,"99":0.16052,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 79 80 81 84 85 86 87 88 89 90 92 93 94 95 97 100 101 102 103"},F:{"56":0.01107,"71":0.02214,"74":0.04613,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 72 73 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01107,"98":0.12731,"99":0.02214,_:"13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1","15.1":0.71402,"15.2-15.3":2.42802,"15.4":6.18075},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.02441,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.02441,"13.0-13.1":0,"13.2":0.00814,"13.3":0,"13.4-13.7":0.00814,"14.0-14.4":0,"14.5-14.8":0.02441,"15.0-15.1":4.47493,"15.2-15.3":71.59081,"15.4":5.2072},P:{"4":0.19128,"5.0-5.4":0.01039,"6.2-6.4":0.01029,"7.2-7.4":1.86251,"8.2":0.09059,"9.2":0.04117,"10.1":0.04027,"11.1-11.2":1.03696,"12.0":0.04117,"13.0":0.49331,"14.0":0.07047,"15.0":0.12081,"16.0":5.10428},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02214,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":0.18757},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{"52":0.01466,"95":0.09774,"96":0.02769,"99":0.01466,"100":0.01466,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 97 98 101 102 103 3.5 3.6"},D:{"56":0.01466,"98":0.07005,"100":0.08471,"101":0.18245,"102":0.02769,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99 103 104"},F:{"71":0.01466,"74":0.15476,"85":0.01466,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 75 76 77 78 79 80 81 82 83 84 86 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"101":0.07005,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1 12.1 13.1 14.1","10.1":0.05539,"15.1":0.19548,"15.2-15.3":0.50499,"15.4":11.77604,"15.5":1.82285},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.02488,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.02488,"13.0-13.1":0,"13.2":0,"13.3":0.04146,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":1.2936,"15.2-15.3":5.64706,"15.4":75.89124},P:{"4":0.1914,_:"5.0-5.4 8.2","6.2-6.4":0.07216,"7.2-7.4":2.2363,"9.2":1.26925,"10.1":0.01053,"11.1-11.2":0.07051,"12.0":0.01007,"13.0":0.43316,"14.0":0.12088,"15.0":0.01256,"16.0":0.9469},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":0.72828},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KR.js index a67b30d660a7e9..7244184f6d4f1a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KR.js @@ -1 +1 @@ -module.exports={C:{"51":0.02981,"52":0.03975,"53":0.02981,"54":0.01491,"55":0.02485,"56":0.01988,"57":0.01988,"58":0.00994,"59":0.00497,"78":0.01988,"83":0.00497,"91":0.02485,"97":0.22857,"98":0.40249,"100":0.00497,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 88 89 90 92 93 94 95 96 99 3.5 3.6"},D:{"39":0.00994,"40":0.00994,"41":0.00994,"42":0.03975,"43":0.00994,"44":0.00994,"45":0.00994,"46":0.00994,"47":0.00994,"48":0.00994,"49":0.03478,"50":0.00994,"51":0.00497,"52":0.00497,"53":0.00497,"54":0.00994,"55":0.00994,"56":0.01491,"57":0.00994,"58":0.00994,"59":0.00994,"60":0.00994,"61":0.00994,"62":0.00994,"63":0.00994,"64":0.01988,"65":0.01491,"68":0.00994,"70":0.02981,"72":0.01491,"75":0.00497,"77":0.09441,"78":0.00497,"79":0.05466,"80":0.04472,"81":0.02485,"83":0.02485,"84":0.04472,"85":0.05466,"86":0.06957,"87":0.06957,"88":0.00994,"89":0.02485,"90":0.0795,"91":0.02485,"92":0.03478,"93":2.80749,"94":0.02485,"95":0.02485,"96":0.18882,"97":0.18385,"98":6.72306,"99":23.97046,"100":0.01491,"101":0.00994,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 66 67 69 71 73 74 76 102 103"},F:{"83":0.00994,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00497,"17":0.00497,"18":0.02485,"84":0.00994,"85":0.00497,"86":0.01491,"87":0.00497,"89":0.00994,"90":0.00994,"91":0.00994,"92":0.01988,"93":0.00497,"94":0.01491,"95":0.01988,"96":0.04472,"97":0.05963,"98":1.33666,"99":5.56528,_:"12 13 14 15 79 80 81 83 88"},E:{"4":0,"8":0.00994,"13":0.01491,"14":0.04969,"15":0.03975,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00994,"13.1":0.04969,"14.1":0.1441,"15.1":0.05963,"15.2-15.3":0.09441,"15.4":0.13416},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.15595,"9.3":0.0096,"10.0-10.2":0.0132,"10.3":0.0156,"11.0-11.2":0.012,"11.3-11.4":0.0048,"12.0-12.1":0.0096,"12.2-12.5":0.08637,"13.0-13.1":0.07198,"13.2":0.0036,"13.3":0.02639,"13.4-13.7":0.07078,"14.0-14.4":0.37668,"14.5-14.8":1.34838,"15.0-15.1":1.02209,"15.2-15.3":7.75921,"15.4":1.00769},P:{"4":0.19128,"5.0-5.4":0.01039,"6.2-6.4":0.01029,"7.2-7.4":1.86251,"8.2":0.09059,"9.2":0.02027,"10.1":0.04027,"11.1-11.2":0.07095,"12.0":0.09123,"13.0":0.18246,"14.0":0.28382,"15.0":0.26355,"16.0":12.79217},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.06037},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01524,"9":0.0254,"10":0.01016,"11":0.85355,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":18.58883},S:{"2.5":0},R:{_:"0"},M:{"0":0.12578},Q:{"10.4":0.01006},O:{"0":0.09559},H:{"0":0.1286}}; +module.exports={C:{"51":0.0412,"52":0.0412,"53":0.0412,"54":0.0206,"55":0.03605,"56":0.02575,"57":0.0309,"58":0.0103,"59":0.0103,"78":0.0206,"79":0.00515,"80":0.0103,"81":0.0103,"82":0.0103,"83":0.0103,"91":0.0206,"97":0.00515,"98":0.00515,"99":0.103,"100":0.5768,"101":0.00515,"102":0.0103,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 84 85 86 87 88 89 90 92 93 94 95 96 103 3.5 3.6"},D:{"39":0.0103,"40":0.0103,"41":0.0103,"42":0.0515,"43":0.0103,"44":0.0103,"45":0.01545,"46":0.01545,"47":0.01545,"48":0.01545,"49":0.04635,"50":0.0103,"51":0.01545,"52":0.0103,"53":0.0103,"54":0.0103,"55":0.01545,"56":0.0206,"57":0.01545,"58":0.01545,"59":0.01545,"60":0.01545,"61":0.01545,"62":0.01545,"63":0.01545,"64":0.01545,"65":0.01545,"67":0.00515,"68":0.0103,"70":0.01545,"72":0.00515,"75":0.00515,"76":0.0103,"77":0.16995,"78":0.0103,"79":0.0515,"80":0.0412,"81":0.03605,"83":0.0412,"84":0.0824,"85":0.09785,"86":0.1236,"87":0.08755,"88":0.0103,"89":0.0309,"90":0.103,"91":0.02575,"92":0.0206,"93":0.0103,"94":0.0927,"95":0.0206,"96":0.1236,"97":0.0721,"98":0.11845,"99":0.2266,"100":6.0564,"101":25.5131,"102":1.7613,"103":0.0103,"104":0.00515,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 66 69 71 73 74"},F:{"85":0.08755,"86":0.12875,"87":0.0103,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.0206,"84":0.00515,"85":0.00515,"86":0.01545,"87":0.00515,"89":0.0103,"90":0.00515,"91":0.0103,"92":0.01545,"94":0.0103,"95":0.01545,"96":0.02575,"97":0.02575,"98":0.0309,"99":0.0412,"100":0.2678,"101":7.5808,_:"12 13 14 15 16 17 79 80 81 83 88 93"},E:{"4":0,"8":0.0103,"13":0.00515,"14":0.0515,"15":0.0206,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.0103,"13.1":0.04635,"14.1":0.11845,"15.1":0.0412,"15.2-15.3":0.0515,"15.4":0.7519,"15.5":0.0927},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.17803,"9.3":0.00919,"10.0-10.2":0.02067,"10.3":0.01953,"11.0-11.2":0.01149,"11.3-11.4":0.00115,"12.0-12.1":0.00689,"12.2-12.5":0.06317,"13.0-13.1":0.13094,"13.2":0.00345,"13.3":0.01723,"13.4-13.7":0.05973,"14.0-14.4":0.33194,"14.5-14.8":0.87521,"15.0-15.1":0.46172,"15.2-15.3":0.89244,"15.4":8.39719},P:{_:"4 5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1","9.2":0.01017,"11.1-11.2":0.05083,"12.0":0.04066,"13.0":0.11183,"14.0":0.23382,"15.0":0.14232,"16.0":4.4629},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0582},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02112,"9":0.03169,"10":0.01584,"11":0.76049,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":18.26375},S:{"2.5":0},R:{_:"0"},M:{"0":0.11155},Q:{"10.4":0.0194},O:{"0":0.11155},H:{"0":0.12857}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KW.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KW.js index b8f626eaf21ec6..3b5ef8671e5f46 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KW.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KW.js @@ -1 +1 @@ -module.exports={C:{"34":0.0115,"52":0.02875,"78":0.01438,"84":0.023,"88":0.01438,"91":0.06325,"95":0.01438,"96":0.00863,"97":0.21563,"98":0.39675,"99":0.02013,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 89 90 92 93 94 100 3.5 3.6"},D:{"38":0.023,"43":0.00863,"47":0.01725,"49":0.023,"56":0.01438,"58":0.00575,"63":0.00575,"64":0.00863,"65":0.00288,"66":0.00288,"67":0.05463,"68":0.00575,"69":0.00575,"70":0.00575,"71":0.00863,"73":0.00288,"74":0.00863,"76":0.00575,"78":0.02588,"79":0.02588,"80":0.00575,"81":0.00863,"83":0.0115,"84":0.0115,"85":0.00863,"86":0.02013,"87":0.20125,"88":0.0115,"89":0.02013,"90":0.03163,"91":0.046,"92":0.19838,"93":0.01725,"94":0.01438,"95":0.046,"96":0.14088,"97":0.22138,"98":3.94738,"99":13.46363,"100":0.1035,"101":0.00863,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 50 51 52 53 54 55 57 59 60 61 62 72 75 77 102 103"},F:{"28":0.02588,"36":0.00288,"46":0.023,"53":0.00575,"80":0.00575,"82":0.00575,"83":0.32488,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00575,"16":0.00288,"17":0.00863,"18":0.01725,"84":0.00863,"85":0.00288,"89":0.00575,"90":0.0115,"92":0.023,"93":0.00288,"94":0.00288,"95":0.00575,"96":0.0345,"97":0.10925,"98":0.56063,"99":2.26838,_:"12 13 14 79 80 81 83 86 87 88 91"},E:{"4":0,"12":0.00288,"13":0.07188,"14":0.38525,"15":0.18113,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00575,"11.1":0.0115,"12.1":0.04025,"13.1":0.20125,"14.1":0.94875,"15.1":0.253,"15.2-15.3":0.23575,"15.4":0.16963},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01348,"8.1-8.4":0,"9.0-9.2":0.01685,"9.3":0.1449,"10.0-10.2":0.01348,"10.3":0.06739,"11.0-11.2":0.0337,"11.3-11.4":0.03707,"12.0-12.1":0.09098,"12.2-12.5":0.81884,"13.0-13.1":0.08761,"13.2":0.06065,"13.3":0.25947,"13.4-13.7":0.71438,"14.0-14.4":2.65533,"14.5-14.8":7.11683,"15.0-15.1":3.79092,"15.2-15.3":15.75003,"15.4":2.01509},P:{"4":0.18463,"5.0-5.4":0.01039,"6.2-6.4":0.01029,"7.2-7.4":0.08206,"8.2":0.09059,"9.2":0.04103,"10.1":0.01026,"11.1-11.2":0.12309,"12.0":0.06154,"13.0":0.18463,"14.0":0.28721,"15.0":0.19489,"16.0":3.33366},I:{"0":0,"3":0,"4":0.00238,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00713,"4.4":0,"4.4.3-4.4.4":0.03325},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.18113,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":30.81438},S:{"2.5":0},R:{_:"0"},M:{"0":0.09975},Q:{"10.4":0},O:{"0":1.72425},H:{"0":0.8297}}; +module.exports={C:{"34":0.00937,"52":0.20306,"78":0.00312,"84":0.0125,"91":0.06873,"95":0.00625,"97":0.00312,"98":0.0125,"99":0.10934,"100":0.53108,"101":0.00937,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 92 93 94 96 102 103 3.5 3.6"},D:{"36":0.00625,"38":0.00937,"47":0.00937,"49":0.00937,"56":0.0125,"62":0.10622,"63":0.00312,"64":0.00312,"67":0.05936,"68":0.00625,"69":0.00312,"70":0.02187,"71":0.00937,"73":0.00312,"74":0.00312,"75":0.0125,"76":0.00312,"78":0.02812,"79":0.01874,"80":0.00625,"81":0.0125,"83":0.01562,"84":0.01562,"85":0.03124,"86":0.00937,"87":0.1687,"88":0.0125,"89":0.01874,"90":0.02499,"91":0.02499,"92":0.06873,"93":0.00937,"94":0.00937,"95":0.01874,"96":0.03749,"97":0.03749,"98":0.06248,"99":0.14683,"100":2.16181,"101":17.27572,"102":1.3152,"103":0.00625,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 57 58 59 60 61 65 66 72 77 104"},F:{"28":0.02499,"46":0.0125,"84":0.00625,"85":0.41862,"86":0.38738,"87":0.03124,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00312,"17":0.00312,"18":0.0125,"84":0.00312,"89":0.00312,"90":0.00937,"92":0.0125,"93":0.00312,"96":0.0125,"97":0.02499,"98":0.0125,"99":0.08122,"100":0.17494,"101":2.43047,_:"12 13 14 16 79 80 81 83 85 86 87 88 91 94 95"},E:{"4":0,"13":0.02187,"14":0.26866,"15":0.09684,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00312,"11.1":0.0125,"12.1":0.04998,"13.1":0.12184,"14.1":0.58419,"15.1":0.13121,"15.2-15.3":0.12184,"15.4":1.28396,"15.5":0.1437},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00868,"8.1-8.4":0,"9.0-9.2":0.01735,"9.3":0.10412,"10.0-10.2":0,"10.3":0.06363,"11.0-11.2":0.02892,"11.3-11.4":0.0376,"12.0-12.1":0.04917,"12.2-12.5":0.72881,"13.0-13.1":0.06363,"13.2":0.05206,"13.3":0.17353,"13.4-13.7":0.45406,"14.0-14.4":1.7237,"14.5-14.8":4.43651,"15.0-15.1":1.73816,"15.2-15.3":3.36932,"15.4":15.85747},P:{"4":0.1649,_:"5.0-5.4 8.2","6.2-6.4":0.07216,"7.2-7.4":0.07214,"9.2":0.03092,"10.1":0.01053,"11.1-11.2":0.08245,"12.0":0.02061,"13.0":0.23704,"14.0":0.19582,"15.0":0.15459,"16.0":1.49439},I:{"0":0,"3":0,"4":0.00299,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00897,"4.4":0,"4.4.3-4.4.4":0.02242},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10622,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.09626},Q:{"10.4":0},O:{"0":1.59523},H:{"0":0.70305},L:{"0":33.74749},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KY.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KY.js index 575d32708e2595..c785a2a69de853 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KY.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KY.js @@ -1 +1 @@ -module.exports={C:{"78":0.0103,"91":0.01545,"96":0.00515,"97":0.63872,"98":1.34956,"99":0.05151,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 100 3.5 3.6"},D:{"23":0.00515,"49":0.0103,"65":0.00515,"67":0.0103,"75":0.0206,"76":0.0103,"78":0.00515,"79":0.06696,"83":0.01545,"84":0.0103,"85":0.05151,"87":0.02576,"88":0.0103,"89":0.00515,"91":0.05666,"92":0.01545,"93":0.01545,"94":0.02576,"95":0.02576,"96":0.07211,"97":0.43784,"98":7.7471,"99":22.41715,"100":0.44814,"101":0.05151,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 68 69 70 71 72 73 74 77 80 81 86 90 102 103"},F:{"68":0.00515,"83":0.2524,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00515,"18":0.07211,"92":0.00515,"93":0.04121,"95":0.00515,"97":0.06696,"98":1.75134,"99":5.96486,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 94 96"},E:{"4":0,"12":0.0103,"13":0.10302,"14":0.20089,"15":0.08242,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0103,"11.1":0.01545,"12.1":0.23695,"13.1":0.72114,"14.1":1.52985,"15.1":0.41208,"15.2-15.3":0.72629,"15.4":0.26785},G:{"8":0.00507,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00253,"9.0-9.2":0,"9.3":0.0152,"10.0-10.2":0,"10.3":0.04814,"11.0-11.2":0,"11.3-11.4":0.02027,"12.0-12.1":0.00507,"12.2-12.5":0.31924,"13.0-13.1":0.07854,"13.2":0.01013,"13.3":0.09374,"13.4-13.7":0.23309,"14.0-14.4":0.40285,"14.5-14.8":3.05808,"15.0-15.1":1.69499,"15.2-15.3":18.2573,"15.4":1.08692},P:{"4":0.05181,"5.0-5.4":0.01043,"6.2-6.4":0.01027,"7.2-7.4":0.13471,"8.2":0.02072,"9.2":0.02072,"10.1":0.01043,"11.1-11.2":0.19688,"12.0":0.46934,"13.0":0.11398,"14.0":0.05181,"15.0":0.03109,"16.0":4.37275},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0097},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.17513,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":18.00393},S:{"2.5":0},R:{_:"0"},M:{"0":0.12607},Q:{"10.4":0},O:{"0":0.06789},H:{"0":0.00918}}; +module.exports={C:{"52":0.00468,"78":0.01403,"91":0.00468,"94":0.00468,"99":0.57503,"100":3.29588,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 95 96 97 98 101 102 103 3.5 3.6"},D:{"29":0.00468,"31":0.0187,"49":0.03273,"63":0.06078,"67":0.00935,"75":0.00935,"77":0.0187,"79":0.0374,"83":0.01403,"85":0.02338,"86":0.00935,"87":0.0374,"88":0.00935,"89":0.00935,"90":0.01403,"91":0.13558,"92":0.05143,"93":0.03273,"95":0.00935,"96":0.04208,"97":0.15428,"98":0.54698,"99":0.33193,"100":5.96063,"101":18.16238,"102":1.78118,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 68 69 70 71 72 73 74 76 78 80 81 84 94 103 104"},F:{"85":0.71995,"86":0.57503,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.00935,"18":0.0187,"92":0.00935,"94":0.00468,"97":0.00468,"98":0.04208,"99":0.04208,"100":0.58438,"101":4.98355,_:"12 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 95 96"},E:{"4":0,"12":0.00468,"13":0.08415,"14":0.20103,"15":0.06078,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00468,"11.1":0.02338,"12.1":0.03273,"13.1":0.34128,"14.1":1.37913,"15.1":0.2057,"15.2-15.3":0.3927,"15.4":3.69325,"15.5":0.3366},G:{"8":0.00549,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01922,"10.0-10.2":0,"10.3":0.05491,"11.0-11.2":0,"11.3-11.4":0.00549,"12.0-12.1":0.00549,"12.2-12.5":0.45298,"13.0-13.1":0.00549,"13.2":0.00824,"13.3":0.07687,"13.4-13.7":0.08785,"14.0-14.4":0.32669,"14.5-14.8":2.34724,"15.0-15.1":0.96086,"15.2-15.3":2.15507,"15.4":20.93849},P:{"4":0.11423,"5.0-5.4":0.01036,"6.2-6.4":0.03029,"7.2-7.4":0.3323,"8.2":0.02288,"9.2":0.03107,"10.1":0.02077,"11.1-11.2":0.12461,"12.0":0.02077,"13.0":0.135,"14.0":0.25888,"15.0":0.02077,"16.0":1.68225},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00038,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01027},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10285,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":20.14313},S:{"2.5":0},R:{_:"0"},M:{"0":0.49523},Q:{"10.4":0},O:{"0":0.01065},H:{"0":0.02017}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KZ.js index 43f0b6c2654e3d..dca7f29e7c70db 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/KZ.js @@ -1 +1 @@ -module.exports={C:{"51":0.01148,"52":0.28327,"53":0.00383,"55":0.01531,"56":0.02297,"57":0.00766,"60":0.00383,"68":0.00383,"78":0.03445,"80":0.00383,"81":0.01914,"85":0.00383,"86":0.00383,"88":0.00383,"91":0.08422,"93":0.00766,"94":0.00766,"95":0.02297,"96":0.04211,"97":0.43639,"98":0.99145,"99":0.01914,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 54 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 82 83 84 87 89 90 92 100 3.5 3.6"},D:{"38":0.00383,"45":0.00766,"46":0.00766,"49":0.04594,"51":0.00766,"57":0.01148,"59":0.01148,"63":0.00766,"64":0.00766,"65":0.02297,"66":0.00766,"67":0.00766,"68":0.00383,"69":0.00383,"70":0.00766,"71":0.04976,"72":0.01148,"73":0.00766,"74":0.08804,"76":0.00766,"77":0.00766,"78":0.00766,"79":0.05742,"80":0.06508,"81":0.00766,"83":0.03062,"84":0.05359,"85":0.03062,"86":0.13398,"87":0.08422,"88":0.03062,"89":0.0268,"90":0.03062,"91":0.0957,"92":0.05742,"93":0.33304,"94":0.03445,"95":0.04976,"96":0.34452,"97":0.41342,"98":5.01851,"99":15.97807,"100":0.15312,"101":0.01531,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 47 48 50 52 53 54 55 56 58 60 61 62 75 102 103"},F:{"36":0.00383,"46":0.03828,"56":0.00383,"68":0.00383,"70":0.00766,"74":0.01148,"76":0.01148,"77":0.01148,"78":0.01148,"79":0.01914,"80":0.00766,"81":0.00383,"82":0.02297,"83":0.47084,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 69 71 72 73 75 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.42108},B:{"17":0.00383,"18":0.01148,"87":0.00383,"92":0.00383,"96":0.00766,"97":0.01531,"98":0.32538,"99":1.4355,_:"12 13 14 15 16 79 80 81 83 84 85 86 88 89 90 91 93 94 95"},E:{"4":0,"13":0.0268,"14":0.09953,"15":0.04211,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.24882,"12.1":0.00766,"13.1":0.07656,"14.1":0.32921,"15.1":0.14164,"15.2-15.3":0.0957,"15.4":0.12632},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00132,"8.1-8.4":0.00395,"9.0-9.2":0.00395,"9.3":0.01711,"10.0-10.2":0.01448,"10.3":0.02632,"11.0-11.2":0.01842,"11.3-11.4":0.01842,"12.0-12.1":0.025,"12.2-12.5":0.55268,"13.0-13.1":0.03421,"13.2":0.01974,"13.3":0.11185,"13.4-13.7":0.26713,"14.0-14.4":1.01062,"14.5-14.8":2.46339,"15.0-15.1":1.76727,"15.2-15.3":6.10846,"15.4":0.68822},P:{"4":0.07205,"5.0-5.4":0.01039,"6.2-6.4":0.01029,"7.2-7.4":0.14411,"8.2":0.09059,"9.2":0.04117,"10.1":0.02059,"11.1-11.2":0.13381,"12.0":0.04117,"13.0":0.17499,"14.0":0.22645,"15.0":0.14411,"16.0":2.18218},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00289,"4.4":0,"4.4.3-4.4.4":0.01562},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00383,"9":0.00766,"11":0.1225,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.03368,_:"11"},L:{"0":41.16525},S:{"2.5":0},R:{_:"0"},M:{"0":0.08641},Q:{"10.4":0},O:{"0":0.38266},H:{"0":0.23373}}; +module.exports={C:{"51":0.00803,"52":0.34538,"54":0.00402,"55":0.01205,"56":0.00402,"68":0.00402,"76":0.00402,"78":0.05221,"79":0.01205,"80":0.01205,"81":0.03213,"82":0.01205,"84":0.00803,"88":0.00402,"91":0.03614,"94":0.02008,"95":0.00803,"96":0.01606,"97":0.01205,"98":0.0241,"99":0.24096,"100":1.16062,"101":0.00803,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 77 83 85 86 87 89 90 92 93 102 103 3.5 3.6"},D:{"26":0.00803,"34":0.00402,"45":0.00402,"49":0.0241,"51":0.00803,"57":0.00803,"58":0.00402,"63":0.00803,"64":0.02008,"65":0.02008,"67":0.00803,"68":0.00402,"69":0.00803,"70":0.00803,"71":0.06024,"72":0.00803,"73":0.00803,"74":0.14056,"76":0.00402,"78":0.01205,"79":0.23293,"80":0.07229,"81":0.02008,"83":0.08835,"84":0.07229,"85":0.08835,"86":0.15261,"87":0.09638,"88":0.03614,"89":0.04016,"90":0.06426,"91":0.09638,"92":0.06426,"93":0.02811,"94":0.03614,"95":0.05221,"96":0.12851,"97":0.16064,"98":0.35742,"99":0.34136,"100":4.71077,"101":15.91541,"102":1.55018,"103":0.01606,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 46 47 48 50 52 53 54 55 56 59 60 61 62 66 75 77 104"},F:{"71":0.03614,"77":0.00803,"79":0.02811,"81":0.00402,"82":0.01205,"83":0.00402,"84":0.0241,"85":1.33331,"86":1.42166,"87":0.09237,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 78 80 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.56626},B:{"18":0.01205,"84":0.01205,"85":0.01205,"86":0.00803,"87":0.01606,"88":0.00803,"89":0.01205,"90":0.01205,"91":0.01205,"92":0.01205,"93":0.00402,"94":0.01205,"95":0.00803,"96":0.02008,"97":0.00803,"98":0.01606,"99":0.01205,"100":0.08434,"101":1.61443,_:"12 13 14 15 16 17 79 80 81 83"},E:{"4":0,"13":0.03614,"14":0.09638,"15":0.04016,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1 11.1","5.1":0.18474,"9.1":0.00402,"12.1":0.00803,"13.1":0.07229,"14.1":0.23293,"15.1":0.14458,"15.2-15.3":0.07229,"15.4":0.67067,"15.5":0.09638},G:{"8":0.00135,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00135,"8.1-8.4":0.00542,"9.0-9.2":0.00271,"9.3":0.01896,"10.0-10.2":0.00813,"10.3":0.03522,"11.0-11.2":0.01761,"11.3-11.4":0.01896,"12.0-12.1":0.02303,"12.2-12.5":0.53102,"13.0-13.1":0.04335,"13.2":0.02709,"13.3":0.10295,"13.4-13.7":0.26957,"14.0-14.4":0.85342,"14.5-14.8":1.74747,"15.0-15.1":0.92386,"15.2-15.3":1.52531,"15.4":7.38273},P:{"4":0.10345,_:"5.0-5.4 8.2","6.2-6.4":0.01035,"7.2-7.4":0.12414,"9.2":0.02069,"10.1":0.01053,"11.1-11.2":0.15518,"12.0":0.03104,"13.0":0.14483,"14.0":0.13449,"15.0":0.10345,"16.0":1.06555},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00319,"4.4":0,"4.4.3-4.4.4":0.02074},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02008,"11":0.09237,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.16154},Q:{"10.4":0},O:{"0":0.48462},H:{"0":0.26622},L:{"0":41.39851},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LA.js index 874716bca64f19..fc5998d42ddc7c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LA.js @@ -1 +1 @@ -module.exports={C:{"39":0.00294,"43":0.00883,"44":0.00589,"47":0.01178,"48":0.00589,"49":0.00589,"50":0.00589,"52":0.03533,"66":0.00589,"78":0.02061,"84":0.01178,"91":0.01178,"92":0.00294,"94":0.05005,"95":0.00589,"96":0.01766,"97":0.45043,"98":1.25414,"99":0.05594,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 45 46 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 93 100 3.5 3.6"},D:{"11":0.00589,"37":0.00589,"43":0.0265,"49":0.0471,"56":0.02061,"58":0.00294,"60":0.00294,"62":0.00294,"63":0.01472,"64":0.00589,"65":0.00589,"66":0.00589,"67":0.00294,"69":0.0265,"70":0.01472,"71":0.01178,"72":0.00883,"73":0.00589,"74":0.00589,"75":0.01766,"76":0.00589,"78":0.03533,"79":0.02355,"80":0.03238,"81":0.01178,"83":0.02355,"84":0.00883,"85":0.00883,"86":0.05299,"87":0.03533,"88":0.01766,"89":0.01178,"90":0.03827,"91":0.03238,"92":0.06771,"93":0.01766,"94":0.04416,"95":0.03533,"96":0.21786,"97":0.41216,"98":4.02445,"99":14.72589,"100":0.23258,"101":0.02944,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 57 59 61 68 77 102 103"},F:{"28":0.00294,"83":0.02944,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01178,"13":0.00883,"14":0.00589,"15":0.00883,"16":0.01766,"17":0.00589,"18":0.0265,"84":0.00294,"85":0.00294,"89":0.00589,"90":0.00883,"91":0.00883,"92":0.02061,"95":0.00294,"96":0.01178,"97":0.04416,"98":0.45043,"99":1.77523,_:"79 80 81 83 86 87 88 93 94"},E:{"4":0,"12":0.01178,"13":0.01178,"14":0.06771,"15":0.03533,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00294,"10.1":0.00883,"11.1":0.00589,"12.1":0.02944,"13.1":0.05888,"14.1":0.23552,"15.1":0.08538,"15.2-15.3":0.05594,"15.4":0.06182},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00239,"5.0-5.1":0,"6.0-6.1":0.00836,"7.0-7.1":0.00836,"8.1-8.4":0,"9.0-9.2":0.00119,"9.3":0.06685,"10.0-10.2":0.01791,"10.3":0.09192,"11.0-11.2":0.02507,"11.3-11.4":0.06566,"12.0-12.1":0.04536,"12.2-12.5":1.41581,"13.0-13.1":0.05014,"13.2":0.03701,"13.3":0.14922,"13.4-13.7":0.77953,"14.0-14.4":1.07797,"14.5-14.8":1.96733,"15.0-15.1":1.15318,"15.2-15.3":4.39425,"15.4":0.5742},P:{"4":0.3882,"5.0-5.4":0.02043,"6.2-6.4":0.04086,"7.2-7.4":0.3269,"8.2":0.09059,"9.2":0.07151,"10.1":0.01022,"11.1-11.2":0.15324,"12.0":0.06129,"13.0":0.16345,"14.0":0.3269,"15.0":0.17367,"16.0":1.98184},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00192,"4.2-4.3":0.0077,"4.4":0,"4.4.3-4.4.4":0.05388},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0056,"11":0.28585,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":54.02802},S:{"2.5":0},R:{_:"0"},M:{"0":0.22579},Q:{"10.4":0.18346},O:{"0":2.13091},H:{"0":0.31397}}; +module.exports={C:{"4":0.00547,"43":0.00273,"50":0.00273,"51":0.0082,"52":0.03554,"53":0.00547,"54":0.00547,"55":0.00273,"56":0.00547,"57":0.00547,"58":0.00273,"59":0.00273,"72":0.00273,"77":0.00273,"78":0.01094,"82":0.00547,"84":0.0082,"85":0.00273,"88":0.00273,"91":0.00547,"92":0.00547,"93":0.00547,"94":0.0164,"95":0.00273,"96":0.0082,"97":0.00547,"98":0.01367,"99":0.36636,"100":1.21663,"101":0.05741,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 79 80 81 83 86 87 89 90 102 103 3.5 3.6"},D:{"33":0.00547,"37":0.00547,"39":0.00273,"40":0.00273,"41":0.00547,"43":0.03281,"44":0.00273,"46":0.00547,"47":0.00547,"49":0.0164,"51":0.00273,"55":0.00273,"56":0.02187,"57":0.00547,"58":0.00547,"60":0.00273,"62":0.00273,"63":0.02461,"64":0.00547,"65":0.00273,"68":0.00547,"69":0.02734,"70":0.01094,"71":0.0082,"72":0.0082,"74":0.00547,"75":0.0082,"76":0.0082,"77":0.00273,"78":0.0164,"79":0.03554,"80":0.01914,"81":0.01914,"83":0.03281,"84":0.02187,"85":0.01094,"86":0.04101,"87":0.03554,"88":0.03281,"89":0.01914,"90":0.04374,"91":0.04648,"92":0.06562,"93":0.02187,"94":0.03554,"95":0.02734,"96":0.13123,"97":0.11209,"98":0.16404,"99":0.24059,"100":3.05935,"101":13.00564,"102":1.2467,"103":0.02461,"104":0.00273,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 38 42 45 48 50 52 53 54 59 61 66 67 73"},F:{"28":0.01367,"82":0.00273,"84":0.00547,"85":0.1367,"86":0.18865,"87":0.01094,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01094,"13":0.00547,"14":0.00547,"15":0.0082,"16":0.0164,"17":0.0082,"18":0.03007,"84":0.01367,"85":0.00547,"86":0.00547,"87":0.0082,"88":0.00547,"89":0.01094,"90":0.0082,"91":0.01367,"92":0.02734,"94":0.00547,"95":0.0082,"96":0.01094,"97":0.01367,"98":0.01914,"99":0.0164,"100":0.10936,"101":2.11338,_:"79 80 81 83 93"},E:{"4":0,"10":0.00273,"12":0.00547,"13":0.0164,"14":0.04648,"15":0.02461,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01367,"13.1":0.05741,"14.1":0.11483,"15.1":0.04101,"15.2-15.3":0.04648,"15.4":0.47845,"15.5":0.08475},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00577,"7.0-7.1":0,"8.1-8.4":0.00231,"9.0-9.2":0.00115,"9.3":0.10961,"10.0-10.2":0.01038,"10.3":0.10153,"11.0-11.2":0.03115,"11.3-11.4":0.03577,"12.0-12.1":0.045,"12.2-12.5":1.13761,"13.0-13.1":0.05192,"13.2":0.02538,"13.3":0.10961,"13.4-13.7":0.55611,"14.0-14.4":1.118,"14.5-14.8":1.62911,"15.0-15.1":0.63918,"15.2-15.3":1.22645,"15.4":4.69351},P:{"4":0.26635,"5.0-5.4":0.01018,"6.2-6.4":0.03073,"7.2-7.4":0.2766,"8.2":0.03053,"9.2":0.05122,"10.1":0.02036,"11.1-11.2":0.15367,"12.0":0.08195,"13.0":0.11269,"14.0":0.22538,"15.0":0.11269,"16.0":1.06541},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01211,"4.4":0,"4.4.3-4.4.4":0.04601},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00952,"11":0.24748,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.13077},Q:{"10.4":0.11624},O:{"0":1.66369},H:{"0":0.30263},L:{"0":57.64376},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LB.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LB.js index e6cba59eab48b2..e899e36aae50e5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LB.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LB.js @@ -1 +1 @@ -module.exports={C:{"2":0.00528,"4":0.00528,"21":0.00264,"47":0.00528,"52":0.03959,"66":0.00264,"68":0.00264,"78":0.01847,"88":0.00528,"89":0.00792,"90":0.00528,"91":0.02903,"94":0.00792,"95":0.00528,"96":0.01056,"97":0.50141,"98":0.82865,"99":0.01583,_:"3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 92 93 100 3.5","3.6":0.01056},D:{"4":0.01847,"5":0.00528,"6":0.00528,"8":0.00264,"9":0.00264,"10":0.00264,"11":0.00528,"12":0.00264,"13":0.00528,"14":0.00528,"17":0.00264,"22":0.00264,"34":0.00528,"38":0.00792,"49":0.03167,"55":0.00264,"56":0.00528,"58":0.00264,"60":0.01056,"63":0.00792,"65":0.02111,"67":0.01056,"68":0.00528,"69":0.00792,"70":0.00792,"71":0.00264,"72":0.00792,"73":0.01056,"74":0.00792,"75":0.00528,"76":0.00264,"77":0.00264,"78":0.00528,"79":0.02903,"80":0.02111,"81":0.0132,"83":0.01056,"84":0.01583,"85":0.00792,"86":0.01847,"87":0.0475,"88":0.0132,"89":0.01847,"90":0.01583,"91":0.07125,"92":0.02903,"93":0.01583,"94":0.02903,"95":0.02639,"96":0.17681,"97":0.24807,"98":3.67613,"99":12.17107,"100":0.11612,"101":0.01583,_:"7 15 16 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 57 59 61 62 64 66 102 103"},F:{"9":0.00528,"11":0.00528,"28":0.00528,"82":0.00264,"83":0.10028,_:"12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 10.6 11.1 11.5 11.6 12.1","9.5-9.6":0.01056,"10.0-10.1":0.00264,"10.5":0.00264},B:{"12":0.00792,"13":0.00264,"14":0.00528,"15":0.00792,"16":0.00792,"17":0.01583,"18":0.02639,"84":0.00528,"89":0.0132,"90":0.00528,"92":0.0132,"95":0.0132,"96":0.0132,"97":0.02903,"98":0.46446,"99":1.77341,_:"79 80 81 83 85 86 87 88 91 93 94"},E:{"4":0.01056,"5":0.00792,"10":0.00264,"12":0.01056,"13":0.03959,"14":0.13459,"15":0.05014,_:"0 6 7 8 9 11 6.1 7.1 9.1","3.1":0.00792,"3.2":0.00528,"5.1":0.0132,"10.1":0.00792,"11.1":0.0132,"12.1":0.05806,"13.1":0.11612,"14.1":0.35099,"15.1":0.14778,"15.2-15.3":0.12931,"15.4":0.06598},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00768,"6.0-6.1":0.00384,"7.0-7.1":0.02942,"8.1-8.4":0.00128,"9.0-9.2":0.00384,"9.3":0.07547,"10.0-10.2":0.01023,"10.3":0.12664,"11.0-11.2":0.02558,"11.3-11.4":0.07547,"12.0-12.1":0.03966,"12.2-12.5":0.95429,"13.0-13.1":0.01535,"13.2":0.0064,"13.3":0.08571,"13.4-13.7":0.19444,"14.0-14.4":0.64856,"14.5-14.8":1.9815,"15.0-15.1":0.96325,"15.2-15.3":6.85019,"15.4":0.69461},P:{"4":0.3436,"5.0-5.4":0.02043,"6.2-6.4":0.04086,"7.2-7.4":0.83878,"8.2":0.01011,"9.2":0.09095,"10.1":0.03032,"11.1-11.2":0.30317,"12.0":0.09095,"13.0":0.40423,"14.0":0.45476,"15.0":0.37391,"16.0":6.59907},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0005,"4.2-4.3":0.00351,"4.4":0,"4.4.3-4.4.4":0.0328},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01083,"7":0.01083,"8":0.01353,"9":0.00541,"11":0.17052,_:"10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":51.25627},S:{"2.5":0},R:{_:"0"},M:{"0":0.11778},Q:{"10.4":0},O:{"0":0.1693},H:{"0":0.20907}}; +module.exports={C:{"12":0.00304,"43":0.00304,"47":0.00304,"51":0.00609,"52":0.03044,"67":0.00304,"70":0.00609,"72":0.00609,"78":0.01522,"86":0.00304,"89":0.00304,"90":0.00609,"91":0.02435,"92":0.04262,"94":0.00304,"97":0.00609,"98":0.01218,"99":0.31353,"100":1.63767,"101":0.01522,_:"2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 71 73 74 75 76 77 79 80 81 82 83 84 85 87 88 93 95 96 102 103 3.5 3.6"},D:{"22":0.00304,"28":0.01522,"34":0.00609,"38":0.00913,"49":0.04566,"63":0.00609,"64":0.00304,"65":0.01218,"67":0.00609,"68":0.00304,"69":0.01522,"70":0.01218,"71":0.00304,"72":0.00304,"73":0.00304,"74":0.00609,"76":0.00609,"79":0.0487,"80":0.01826,"81":0.00913,"83":0.01826,"84":0.01826,"85":0.01218,"86":0.02131,"87":0.10958,"88":0.01522,"89":0.02131,"90":0.01826,"91":0.05175,"92":0.03044,"93":0.01522,"94":0.02435,"95":0.02435,"96":0.08828,"97":0.06088,"98":0.10045,"99":0.19482,"100":3.32405,"101":14.37986,"102":1.4185,"103":0.01218,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 66 75 77 78 104"},F:{"69":0.00304,"79":0.00304,"85":0.30136,"86":0.25874,"87":0.01522,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00913,"13":0.00304,"14":0.00609,"15":0.00304,"16":0.00913,"17":0.00913,"18":0.03044,"84":0.00609,"86":0.00304,"87":0.00913,"89":0.00609,"90":0.00609,"92":0.01522,"94":0.00609,"96":0.00609,"97":0.01218,"98":0.01218,"99":0.0274,"100":0.11567,"101":2.36519,_:"79 80 81 83 85 88 91 93 95"},E:{"4":0,"7":0.00609,"13":0.03957,"14":0.14611,"15":0.04262,_:"0 5 6 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00913,"10.1":0.00609,"11.1":0.02131,"12.1":0.0487,"13.1":0.12785,"14.1":0.34397,"15.1":0.16438,"15.2-15.3":0.16438,"15.4":0.78231,"15.5":0.08828},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00152,"6.0-6.1":0,"7.0-7.1":0.02285,"8.1-8.4":0.00457,"9.0-9.2":0.00305,"9.3":0.10207,"10.0-10.2":0.00762,"10.3":0.1493,"11.0-11.2":0.02133,"11.3-11.4":0.04875,"12.0-12.1":0.0457,"12.2-12.5":0.86989,"13.0-13.1":0.01828,"13.2":0.00457,"13.3":0.07008,"13.4-13.7":0.18738,"14.0-14.4":0.53473,"14.5-14.8":1.68189,"15.0-15.1":0.55606,"15.2-15.3":1.40919,"15.4":9.49262},P:{"4":0.19388,"5.0-5.4":0.01018,"6.2-6.4":0.03073,"7.2-7.4":0.33674,"8.2":0.03053,"9.2":0.04082,"10.1":0.0102,"11.1-11.2":0.18368,"12.0":0.05102,"13.0":0.27552,"14.0":0.25511,"15.0":0.16327,"16.0":2.12249},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00202,"4.2-4.3":0.00403,"4.4":0,"4.4.3-4.4.4":0.04959},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00304,"11":0.14002,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.11824},Q:{"10.4":0},O:{"0":0.25038},H:{"0":0.2963},L:{"0":48.98665},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LC.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LC.js index 1df4353d92c61c..5d80618e4b25fa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LC.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LC.js @@ -1 +1 @@ -module.exports={C:{"56":0.0164,"78":0.0041,"79":0.0082,"87":0.17626,"88":0.0082,"90":0.0041,"91":0.0082,"95":0.0082,"96":0.0164,"97":0.38941,"98":0.73372,"99":0.03279,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 81 82 83 84 85 86 89 92 93 94 100 3.5 3.6"},D:{"29":0.0041,"39":0.0041,"49":0.03279,"63":0.0041,"66":0.0123,"69":0.08198,"70":0.0205,"74":0.0041,"75":0.02459,"76":0.21725,"78":0.0164,"79":0.20905,"80":0.0041,"81":0.09428,"83":0.03689,"84":0.02869,"85":0.0205,"86":0.0205,"87":0.0082,"88":0.0205,"89":0.0164,"90":0.0205,"91":0.02869,"92":0.02459,"93":0.11067,"94":0.11477,"95":0.03279,"96":0.33202,"97":0.59026,"98":5.76319,"99":17.46994,"100":0.20495,"101":0.0041,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 67 68 71 72 73 77 102 103"},F:{"28":0.02459,"83":0.12707,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0164,"13":0.0082,"15":0.0082,"16":0.0041,"17":0.0205,"18":0.18446,"85":0.0041,"88":0.0082,"91":0.0041,"92":0.0123,"95":0.0041,"96":0.05739,"97":0.04099,"98":1.30348,"99":4.43922,_:"14 79 80 81 83 84 86 87 89 90 93 94"},E:{"4":0,"13":0.0164,"14":0.08198,"15":0.08198,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.08608,"12.1":0.02459,"13.1":0.13937,"14.1":0.29923,"15.1":0.17626,"15.2-15.3":0.13117,"15.4":0.12297},G:{"8":0,"3.2":0.008,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00571,"6.0-6.1":0,"7.0-7.1":0.008,"8.1-8.4":0,"9.0-9.2":0.00228,"9.3":0.06283,"10.0-10.2":0,"10.3":0.03427,"11.0-11.2":0.00914,"11.3-11.4":0.05483,"12.0-12.1":0.00914,"12.2-12.5":0.66825,"13.0-13.1":0.00228,"13.2":0.01142,"13.3":0.01828,"13.4-13.7":0.12223,"14.0-14.4":0.39067,"14.5-14.8":1.13545,"15.0-15.1":0.75278,"15.2-15.3":7.39068,"15.4":0.73221},P:{"4":0.16729,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.57506,"8.2":0.02028,"9.2":0.02091,"10.1":0.03042,"11.1-11.2":0.23002,"12.0":0.03137,"13.0":0.23002,"14.0":0.17774,"15.0":0.2823,"16.0":5.70874},I:{"0":0,"3":0,"4":0.00028,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00083,"4.4":0,"4.4.3-4.4.4":0.01069},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.03689,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":43.14574},S:{"2.5":0},R:{_:"0"},M:{"0":0.16523},Q:{"10.4":0},O:{"0":0.39537},H:{"0":0.22905}}; +module.exports={C:{"47":0.01182,"56":0.01576,"72":0.00788,"87":0.0394,"96":0.01576,"97":0.01182,"98":0.00788,"99":0.13396,"100":0.90226,"101":0.00788,"102":0.00788,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 91 92 93 94 95 103 3.5 3.6"},D:{"39":0.00788,"49":0.0197,"58":0.00788,"63":0.00788,"65":0.0197,"66":0.01182,"67":0.01576,"75":0.00394,"76":0.18912,"79":0.0394,"80":0.00394,"81":0.14578,"83":0.00788,"84":0.01182,"85":0.00394,"86":0.00788,"87":0.0197,"88":0.0197,"89":0.00788,"90":0.01576,"91":0.0197,"92":0.00788,"93":0.09062,"94":0.0788,"95":0.01182,"96":0.07486,"97":0.0985,"98":0.4925,"99":0.4531,"100":5.5948,"101":15.55512,"102":1.48538,"103":0.12214,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 64 68 69 70 71 72 73 74 77 78 104"},F:{"28":0.0197,"36":0.00394,"85":0.41764,"86":0.4925,"87":0.07092,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00394,"15":0.00788,"16":0.00788,"18":0.197,"84":0.00394,"92":0.01576,"96":0.00788,"97":0.00394,"98":0.00788,"99":0.05516,"100":0.53978,"101":4.83832,_:"12 13 17 79 80 81 83 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01182,"14":0.0788,"15":0.0197,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.01182,"12.1":0.03546,"13.1":0.15366,"14.1":0.16154,"15.1":0.0591,"15.2-15.3":0.0394,"15.4":0.86286,"15.5":0.0985},G:{"8":0.0034,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02038,"6.0-6.1":0,"7.0-7.1":0.00226,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01359,"10.0-10.2":0,"10.3":0.04415,"11.0-11.2":0.00679,"11.3-11.4":0.00226,"12.0-12.1":0.0034,"12.2-12.5":0.52078,"13.0-13.1":0,"13.2":0.00792,"13.3":0.01811,"13.4-13.7":0.05095,"14.0-14.4":0.24114,"14.5-14.8":0.70192,"15.0-15.1":0.26378,"15.2-15.3":0.65776,"15.4":8.76149},P:{"4":0.15641,"5.0-5.4":0.02027,"6.2-6.4":0.01043,"7.2-7.4":0.46922,"8.2":0.01022,"9.2":0.02051,"10.1":0.04171,"11.1-11.2":0.12512,"12.0":0.02085,"13.0":0.09384,"14.0":0.14598,"15.0":0.12512,"16.0":2.33566},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00308,"4.4":0,"4.4.3-4.4.4":0.0151},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06698,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.10302},Q:{"10.4":0},O:{"0":0.2727},H:{"0":0.45324},L:{"0":46.4417},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LI.js index 598446715c667c..52ee6acc027fd0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LI.js @@ -1 +1 @@ -module.exports={C:{"54":0.36372,"78":0.07794,"89":0.01299,"91":0.1299,"92":0.01299,"93":0.0065,"94":0.07794,"95":0.09093,"96":1.45488,"97":3.89051,"98":5.87148,"99":0.03248,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 100 3.5 3.6"},D:{"49":0.84435,"56":0.03248,"72":0.04547,"73":0.0065,"79":0.20784,"83":0.0065,"84":0.07145,"90":0.07145,"91":0.01949,"92":0.03248,"93":0.54558,"94":0.03248,"95":0.03897,"96":1.25354,"97":0.24681,"98":6.68985,"99":17.97816,"100":0.22083,"101":0.05196,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 75 76 77 78 80 81 85 86 87 88 89 102 103"},F:{"82":0.03897,"83":0.59754,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"84":0.0065,"92":0.1299,"93":0.17537,"95":0.08444,"96":0.03248,"97":0.12341,"98":2.13036,"99":8.14473,_:"12 13 14 15 16 17 18 79 80 81 83 85 86 87 88 89 90 91 94"},E:{"4":0,"13":0.17537,"14":0.66899,"15":0.07794,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":1.11714,"12.1":0.11042,"13.1":2.00696,"14.1":0.86384,"15.1":0.42218,"15.2-15.3":0.56507,"15.4":0.58455},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05911,"10.0-10.2":0,"10.3":0.06856,"11.0-11.2":0.01419,"11.3-11.4":0.02601,"12.0-12.1":0.01182,"12.2-12.5":0.53196,"13.0-13.1":0.05201,"13.2":0.00473,"13.3":0.0331,"13.4-13.7":0.0662,"14.0-14.4":0.76129,"14.5-14.8":3.04278,"15.0-15.1":1.33107,"15.2-15.3":16.91144,"15.4":0.72346},P:{"4":0.09489,"5.0-5.4":0.01002,"6.2-6.4":0.06012,"7.2-7.4":0.77158,"8.2":0.01002,"9.2":0.12025,"10.1":0.04008,"11.1-11.2":0.35072,"12.0":0.11023,"13.0":0.09489,"14.0":0.01054,"15.0":0.33068,"16.0":2.44596},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.1299,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":7.71318},S:{"2.5":0},R:{_:"0"},M:{"0":0.74306},Q:{"10.4":0},O:{"0":0.00701},H:{"0":0.20242}}; +module.exports={C:{"54":0.01886,"77":0.01258,"78":0.04402,"84":0.01258,"89":0.01258,"91":0.1572,"92":0.03144,"94":0.08803,"95":0.01258,"96":0.10061,"97":0.01886,"98":0.04402,"99":3.43954,"100":8.23099,"101":0.03773,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 85 86 87 88 90 93 102 103 3.5 3.6"},D:{"49":0.92434,"56":0.01258,"67":0.01258,"73":0.07546,"79":0.08174,"84":0.0503,"85":0.02515,"87":0.03773,"89":0.03144,"90":0.01886,"91":0.0503,"92":0.05659,"93":0.01258,"95":0.00629,"96":0.28925,"97":0.02515,"98":0.20122,"99":0.17606,"100":5.43912,"101":17.73216,"102":1.59715,"103":0.13205,"104":0.01886,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 74 75 76 77 78 80 81 83 86 88 94"},F:{"85":0.43387,"86":1.1507,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"85":0.01258,"97":0.01886,"98":0.42758,"99":0.06917,"100":1.15699,"101":10.50096,_:"12 13 14 15 16 17 18 79 80 81 83 84 86 87 88 89 90 91 92 93 94 95 96"},E:{"4":0,"12":0.08803,"13":0.05659,"14":0.28296,"15":0.30811,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.46531,"12.1":0.02515,"13.1":1.4148,"14.1":0.92434,"15.1":0.25152,"15.2-15.3":0.32698,"15.4":3.70363,"15.5":0.48418},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01226,"10.0-10.2":0,"10.3":0.01226,"11.0-11.2":0.01962,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.16434,"13.0-13.1":0.01472,"13.2":0,"13.3":0.01226,"13.4-13.7":0.0834,"14.0-14.4":0.79963,"14.5-14.8":1.43491,"15.0-15.1":0.34585,"15.2-15.3":2.59266,"15.4":19.03408},P:{"4":0.10305,"5.0-5.4":0.01031,"6.2-6.4":0.03063,"7.2-7.4":0.33694,"8.2":0.02038,"9.2":0.07147,"10.1":0.02042,"11.1-11.2":0.17357,"12.0":0.03063,"13.0":0.03092,"14.0":0.25526,"15.0":0.11231,"16.0":0.91718},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00194,"4.2-4.3":0.00452,"4.4":0,"4.4.3-4.4.4":0.00839},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.23266,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.6754},Q:{"10.4":0},O:{"0":0.01113},H:{"0":0.43565},L:{"0":8.68023},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LK.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LK.js index a230de805e3e5b..24513389bf29b1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LK.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LK.js @@ -1 +1 @@ -module.exports={C:{"52":0.02264,"72":0.00377,"78":0.00755,"88":0.01132,"89":0.00755,"90":0.00377,"91":0.0566,"92":0.00755,"93":0.13583,"94":0.00755,"95":0.01132,"96":0.02264,"97":0.51313,"98":1.05267,"99":0.07546,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 100 3.5 3.6"},D:{"22":0.00755,"49":0.01132,"63":0.01509,"65":0.00755,"70":0.00755,"71":0.00755,"74":0.01132,"75":0.00377,"77":0.00755,"78":0.00755,"79":0.01132,"80":0.01887,"81":0.0415,"83":0.02264,"84":0.00755,"85":0.02264,"86":0.02641,"87":0.02641,"88":0.02641,"89":0.01887,"90":0.02264,"91":0.03018,"92":0.04528,"93":0.0415,"94":0.03396,"95":0.03773,"96":0.12074,"97":0.21506,"98":4.74643,"99":16.80494,"100":0.15847,"101":0.00377,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 67 68 69 72 73 76 102 103"},F:{"72":0.00377,"82":0.02641,"83":0.09055,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00755,"13":0.00377,"16":0.00755,"17":0.00377,"18":0.02264,"84":0.01132,"89":0.00755,"90":0.00755,"91":0.00377,"92":0.02264,"94":0.00377,"95":0.00755,"96":0.02641,"97":0.03396,"98":2.19211,"99":7.9648,_:"14 15 79 80 81 83 85 86 87 88 93"},E:{"4":0,"13":0.01887,"14":0.04528,"15":0.02641,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00377,"12.1":0.01132,"13.1":0.03773,"14.1":0.10942,"15.1":0.0566,"15.2-15.3":0.06037,"15.4":0.03396},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00115,"5.0-5.1":0,"6.0-6.1":0.00057,"7.0-7.1":0.0063,"8.1-8.4":0.00115,"9.0-9.2":0.00229,"9.3":0.0321,"10.0-10.2":0.0063,"10.3":0.03726,"11.0-11.2":0.03439,"11.3-11.4":0.0235,"12.0-12.1":0.0298,"12.2-12.5":0.49293,"13.0-13.1":0.0298,"13.2":0.0149,"13.3":0.07623,"13.4-13.7":0.15074,"14.0-14.4":0.53076,"14.5-14.8":0.84199,"15.0-15.1":0.65628,"15.2-15.3":2.38152,"15.4":0.37887},P:{"4":0.59501,"5.0-5.4":0.01026,"6.2-6.4":0.03078,"7.2-7.4":0.94381,"8.2":0.01026,"9.2":0.08207,"10.1":0.03078,"11.1-11.2":0.30776,"12.0":0.07181,"13.0":0.26673,"14.0":0.36932,"15.0":0.22569,"16.0":1.50804},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00092,"4.2-4.3":0.00307,"4.4":0,"4.4.3-4.4.4":0.0396},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05282,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":49.51066},S:{"2.5":0},R:{_:"0"},M:{"0":0.13077},Q:{"10.4":0},O:{"0":1.60034},H:{"0":1.47973}}; +module.exports={C:{"52":0.01513,"72":0.00378,"77":0.00378,"78":0.00378,"88":0.00756,"89":0.00378,"91":0.02647,"92":0.00756,"93":0.11724,"94":0.00756,"95":0.00378,"96":0.00756,"97":0.01513,"98":0.01891,"99":0.295,"100":1.26319,"101":0.08699,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 79 80 81 82 83 84 85 86 87 90 102 103 3.5 3.6"},D:{"22":0.00378,"49":0.01135,"63":0.00756,"65":0.00756,"70":0.00756,"74":0.01135,"75":0.00378,"76":0.00378,"77":0.00378,"78":0.00378,"79":0.02269,"80":0.02269,"81":0.03782,"83":0.01513,"84":0.01513,"85":0.01891,"86":0.02647,"87":0.03026,"88":0.01513,"89":0.01891,"90":0.02647,"91":0.03026,"92":0.04917,"93":0.02269,"94":0.02269,"95":0.02647,"96":0.07186,"97":0.07186,"98":0.07942,"99":0.16263,"100":3.66854,"101":15.96382,"102":1.8494,"103":0.01135,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 67 68 69 71 72 73 104"},F:{"72":0.00756,"79":0.00378,"82":0.01135,"84":0.01135,"85":0.45762,"86":0.6732,"87":0.04917,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00756,"13":0.00378,"16":0.00378,"17":0.00378,"18":0.02647,"84":0.01513,"85":0.00378,"89":0.00756,"90":0.00378,"91":0.01135,"92":0.03026,"95":0.00378,"96":0.00756,"97":0.00756,"98":0.02269,"99":0.02647,"100":0.62025,"101":9.68192,_:"14 15 79 80 81 83 86 87 88 93 94"},E:{"4":0,"13":0.01135,"14":0.03782,"15":0.01513,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00756,"13.1":0.03404,"14.1":0.1059,"15.1":0.03782,"15.2-15.3":0.03404,"15.4":0.21936,"15.5":0.03404},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00061,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00547,"8.1-8.4":0.00121,"9.0-9.2":0.00182,"9.3":0.02915,"10.0-10.2":0.00729,"10.3":0.03644,"11.0-11.2":0.01943,"11.3-11.4":0.02915,"12.0-12.1":0.02915,"12.2-12.5":0.49617,"13.0-13.1":0.03097,"13.2":0.017,"13.3":0.06984,"13.4-13.7":0.14818,"14.0-14.4":0.48159,"14.5-14.8":0.66682,"15.0-15.1":0.44394,"15.2-15.3":0.70083,"15.4":2.85371},P:{"4":0.55234,"5.0-5.4":0.01011,"6.2-6.4":0.03069,"7.2-7.4":0.83875,"8.2":0.21569,"9.2":0.0716,"10.1":0.02046,"11.1-11.2":0.23526,"12.0":0.05114,"13.0":0.2148,"14.0":0.26594,"15.0":0.15343,"16.0":1.0024},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00125,"4.2-4.3":0.00282,"4.4":0,"4.4.3-4.4.4":0.03946},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02647,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.13058},Q:{"10.4":0},O:{"0":1.53585},H:{"0":1.58355},L:{"0":49.53834},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LR.js index 6e5b32a900248e..923a4cbaf7c9da 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LR.js @@ -1 +1 @@ -module.exports={C:{"29":0.00223,"42":0.00445,"43":0.00223,"49":0.00668,"66":0.00445,"72":0.01336,"78":0.00223,"84":0.00445,"90":0.00223,"91":0.01336,"93":0.00891,"94":0.01114,"95":0.00445,"96":0.00891,"97":0.3385,"98":0.56566,"99":0.01336,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 92 100 3.5 3.6"},D:{"30":0.00445,"38":0.00223,"47":0.00445,"50":0.00445,"51":0.00668,"53":0.00445,"55":0.01114,"59":0.00445,"60":0.00891,"61":0.00668,"62":0.00445,"63":0.01114,"64":0.04899,"65":0.00668,"67":0.00668,"68":0.00891,"69":0.0245,"74":0.01336,"75":0.01336,"76":0.02004,"77":0.01114,"78":0.00445,"79":0.01114,"80":0.02227,"81":0.02004,"83":0.00668,"84":0.01336,"85":0.01782,"86":0.02004,"87":0.04009,"88":0.03118,"89":0.03118,"90":0.02895,"91":0.0245,"92":0.04231,"93":0.02672,"94":0.03118,"95":0.02227,"96":0.08908,"97":0.11803,"98":1.93304,"99":6.05521,"100":0.07795,"101":0.00891,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 49 52 54 56 57 58 66 70 71 72 73 102 103"},F:{"21":0.01336,"68":0.00223,"72":0.01782,"77":0.00445,"78":0.00445,"79":0.00445,"83":0.01559,_:"9 11 12 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 73 74 75 76 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.22938,"13":0.03786,"14":0.02004,"15":0.02672,"16":0.02672,"17":0.01114,"18":0.15589,"80":0.00445,"81":0.00445,"84":0.02672,"85":0.00891,"87":0.00223,"88":0.00445,"89":0.02895,"90":0.0245,"91":0.01336,"92":0.02004,"93":0.02004,"94":0.0245,"95":0.02004,"96":0.0579,"97":0.05568,"98":0.56566,"99":1.86177,_:"79 83 86"},E:{"4":0,"13":0.01114,"14":0.0245,"15":0.00891,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.01114,"10.1":0.00223,"11.1":0.00668,"12.1":0.00891,"13.1":0.04009,"14.1":0.05345,"15.1":0.01782,"15.2-15.3":0.01336,"15.4":0.00445},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00371,"6.0-6.1":0,"7.0-7.1":0.02223,"8.1-8.4":0,"9.0-9.2":0.00556,"9.3":0.05929,"10.0-10.2":0.01019,"10.3":0.01482,"11.0-11.2":0.02872,"11.3-11.4":0.01853,"12.0-12.1":0.05651,"12.2-12.5":0.74301,"13.0-13.1":0.05095,"13.2":0.0491,"13.3":0.22698,"13.4-13.7":0.30388,"14.0-14.4":1.55829,"14.5-14.8":2.56348,"15.0-15.1":1.058,"15.2-15.3":2.1123,"15.4":0.37984},P:{"4":0.1234,"5.0-5.4":0.05142,"6.2-6.4":0.02057,"7.2-7.4":0.11312,"8.2":0.01015,"9.2":0.10284,"10.1":0.01028,"11.1-11.2":0.07198,"12.0":0.02029,"13.0":0.05142,"14.0":0.16454,"15.0":0.0617,"16.0":0.88438},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00316,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.02016},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00967,"11":0.10391,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.01555},N:{"10":0.00745,_:"11"},L:{"0":67.06283},S:{"2.5":0.15546},R:{_:"0"},M:{"0":0.05441},Q:{"10.4":0.00777},O:{"0":0.59852},H:{"0":6.19626}}; +module.exports={C:{"30":0.00233,"36":0.00933,"44":0.00466,"47":0.00466,"48":0.00233,"56":0.00466,"72":0.02798,"91":0.0583,"94":0.00466,"97":0.007,"98":0.01399,"99":0.1749,"100":0.74158,"101":0.02332,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 37 38 39 40 41 42 43 45 46 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 95 96 102 103 3.5 3.6"},D:{"43":0.007,"49":0.00466,"52":0.00466,"53":0.007,"55":0.00466,"59":0.01166,"60":0.00466,"61":0.00933,"63":0.00233,"64":0.03964,"65":0.00233,"67":0.00233,"68":0.00233,"70":0.00933,"71":0.00233,"72":0.007,"74":0.007,"75":0.01632,"76":0.02099,"77":0.00466,"78":0.00466,"79":0.007,"80":0.01632,"81":0.007,"83":0.007,"84":0.01166,"85":0.007,"86":0.02565,"87":0.01399,"88":0.03731,"89":0.007,"90":0.02565,"91":0.02099,"92":0.02798,"93":0.02099,"94":0.02099,"95":0.01866,"96":0.04198,"97":0.04198,"98":0.88849,"99":0.15624,"100":1.60208,"101":5.03246,"102":0.43608,"103":0.007,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 54 56 57 58 62 66 69 73 104"},F:{"36":0.007,"60":0.01399,"72":0.00233,"79":0.01632,"82":0.00233,"84":0.007,"85":0.13992,"86":0.21454,"87":0.01399,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.06296,"13":0.05364,"14":0.01166,"15":0.03265,"16":0.01632,"17":0.01632,"18":0.16324,"80":0.00466,"84":0.02565,"85":0.0513,"87":0.00466,"88":0.007,"89":0.01866,"90":0.02099,"91":0.00466,"92":0.02565,"93":0.007,"94":0.007,"95":0.01166,"96":0.04198,"97":0.03731,"98":0.03265,"99":0.07696,"100":0.21921,"101":2.04983,_:"79 81 83 86"},E:{"4":0,"13":0.01166,"14":0.01866,"15":0.01632,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 7.1 10.1 12.1","6.1":0.00466,"9.1":0.01632,"11.1":0.01166,"13.1":0.04897,"14.1":0.78122,"15.1":0.01166,"15.2-15.3":0.01399,"15.4":0.09561,"15.5":0.01866},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0029,"6.0-6.1":0,"7.0-7.1":0.01741,"8.1-8.4":0,"9.0-9.2":0.0029,"9.3":0.07157,"10.0-10.2":0.0058,"10.3":0.059,"11.0-11.2":0.03385,"11.3-11.4":0.03095,"12.0-12.1":0.03772,"12.2-12.5":0.78055,"13.0-13.1":0.08028,"13.2":0.02902,"13.3":0.23213,"13.4-13.7":0.26405,"14.0-14.4":1.62591,"14.5-14.8":1.75648,"15.0-15.1":1.13262,"15.2-15.3":1.07362,"15.4":2.43257},P:{"4":0.063,"5.0-5.4":0.07349,"6.2-6.4":0.08399,"7.2-7.4":0.09449,"8.2":0.02038,"9.2":0.042,"10.1":0.0315,"11.1-11.2":0.09449,"12.0":0.04075,"13.0":0.0315,"14.0":0.10499,"15.0":0.0315,"16.0":0.41997},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00217,"4.4":0,"4.4.3-4.4.4":0.02083},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08628,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.03834},Q:{"10.4":0.00767},O:{"0":0.7668},H:{"0":7.4338},L:{"0":65.42251},S:{"2.5":0.13802}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LS.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LS.js index 227a6259198688..179e04c8023ec4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LS.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LS.js @@ -1 +1 @@ -module.exports={C:{"30":0.01313,"45":0.00656,"52":0.01641,"56":0.00328,"59":0.00328,"63":0.01641,"68":0.00328,"72":0.00328,"78":0.01313,"88":0.10502,"89":0.00985,"90":0.00328,"91":0.02626,"96":0.00656,"97":0.35774,"98":0.6925,"99":0.03938,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 53 54 55 57 58 60 61 62 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 92 93 94 95 100 3.5 3.6"},D:{"41":0.00328,"43":0.01313,"49":0.12472,"51":0.00656,"53":0.00656,"56":0.02954,"63":0.01313,"65":0.00656,"69":0.00985,"70":0.02297,"71":0.00328,"72":0.00328,"74":0.11487,"75":0.03938,"77":0.00328,"78":0.00656,"79":0.0361,"80":0.00656,"81":0.03282,"83":0.00328,"85":0.00985,"86":0.01969,"87":0.15425,"88":0.01641,"89":0.01969,"90":0.00328,"91":0.05251,"92":0.03282,"93":0.02297,"94":0.05251,"95":0.04595,"96":0.15097,"97":0.29866,"98":3.47564,"99":9.96743,"100":0.19364,"101":0.01641,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 44 45 46 47 48 50 52 54 55 57 58 59 60 61 62 64 66 67 68 73 76 84 102 103"},F:{"28":0.00328,"63":0.00656,"72":0.00656,"77":0.00656,"79":0.00656,"83":0.02626,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 73 74 75 76 78 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.06236,"13":0.01641,"14":0.00985,"15":0.00985,"16":0.0361,"17":0.03938,"18":0.10502,"80":0.02626,"84":0.01641,"85":0.04267,"89":0.01641,"90":0.00328,"91":0.00328,"92":0.04595,"93":0.01969,"94":0.00985,"95":0.04595,"96":0.04267,"97":0.07549,"98":1.08306,"99":3.35092,_:"79 81 83 86 87 88"},E:{"4":0,"14":0.05908,"15":0.02626,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00328,"13.1":0.01641,"14.1":0.04267,"15.1":0.07877,"15.2-15.3":0.0361,"15.4":0.03938},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0008,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01467,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.14507,"10.0-10.2":0.00281,"10.3":0.02672,"11.0-11.2":0.00844,"11.3-11.4":0.01165,"12.0-12.1":0.00663,"12.2-12.5":0.24011,"13.0-13.1":0.02451,"13.2":0.01025,"13.3":0.02492,"13.4-13.7":0.05124,"14.0-14.4":0.12699,"14.5-14.8":0.23649,"15.0-15.1":0.25337,"15.2-15.3":0.7784,"15.4":0.04561},P:{"4":0.48708,"5.0-5.4":0.02043,"6.2-6.4":0.04059,"7.2-7.4":1.10607,"8.2":0.01015,"9.2":0.08118,"10.1":0.24354,"11.1-11.2":0.24354,"12.0":0.02029,"13.0":0.15221,"14.0":0.65959,"15.0":0.23339,"16.0":1.07563},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00106,"4.2-4.3":0.00106,"4.4":0,"4.4.3-4.4.4":0.05834},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.20677,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":61.65886},S:{"2.5":0.03359},R:{_:"0"},M:{"0":0.30903},Q:{"10.4":0.16123},O:{"0":1.35704},H:{"0":6.23297}}; +module.exports={C:{"52":0.00732,"78":0.00732,"85":0.00732,"88":0.00732,"91":0.00732,"96":0.01464,"98":0.01831,"99":1.00678,"100":1.58521,"101":0.06224,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 86 87 89 90 92 93 94 95 97 102 103 3.5 3.6"},D:{"35":0.00366,"43":0.00366,"49":0.25627,"56":0.01831,"59":0.00366,"63":0.04393,"69":0.01464,"70":0.02929,"72":0.01464,"74":0.03661,"75":0.01464,"78":0.01098,"79":0.01098,"80":0.00732,"81":0.01831,"83":0.00732,"84":0.00366,"85":0.03295,"86":0.04027,"87":0.08786,"88":0.00366,"89":0.00366,"90":0.01098,"91":0.00732,"92":0.02563,"93":0.01464,"94":0.02929,"95":0.01464,"96":0.05492,"97":0.05125,"98":0.09153,"99":0.23797,"100":2.6945,"101":12.4291,"102":0.66264,"103":0.00732,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 57 58 60 61 62 64 65 66 67 68 71 73 76 77 104"},F:{"42":0.00366,"68":0.00732,"78":0.00366,"79":0.00366,"82":0.00366,"85":0.54183,"86":0.75051,"87":0.03295,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 80 81 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.21234,"13":0.22332,"14":0.01098,"15":0.01464,"16":0.00732,"17":0.01464,"18":0.29654,"80":0.00732,"84":0.02197,"85":0.00732,"88":0.10251,"89":0.01831,"92":0.08054,"93":0.01464,"94":0.00366,"95":0.00366,"96":0.02563,"97":0.04759,"98":0.03295,"99":0.21966,"100":0.29654,"101":5.14737,_:"79 81 83 86 87 90 91"},E:{"4":0,"13":0.00732,"14":0.01098,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.02563,"13.1":0.05492,"14.1":0.05125,"15.1":0.00732,"15.2-15.3":0.01464,"15.4":0.09885,"15.5":0.05125},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00074,"5.0-5.1":0.00316,"6.0-6.1":0.0013,"7.0-7.1":0.00019,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07187,"10.0-10.2":0.00037,"10.3":0.00706,"11.0-11.2":0.00501,"11.3-11.4":0.00613,"12.0-12.1":0.00706,"12.2-12.5":0.16342,"13.0-13.1":0.00316,"13.2":0.00056,"13.3":0.01021,"13.4-13.7":0.07465,"14.0-14.4":0.12368,"14.5-14.8":0.18236,"15.0-15.1":0.13519,"15.2-15.3":0.41263,"15.4":0.64829},P:{"4":0.25472,"5.0-5.4":0.01018,"6.2-6.4":0.02038,"7.2-7.4":1.00868,"8.2":0.02038,"9.2":0.16302,"10.1":0.03057,"11.1-11.2":0.10189,"12.0":0.04075,"13.0":0.0917,"14.0":0.40755,"15.0":0.05094,"16.0":0.85585},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00143,"4.2-4.3":0.00251,"4.4":0,"4.4.3-4.4.4":0.05944},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.1318,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01268},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.27887},Q:{"10.4":0},O:{"0":1.32464},H:{"0":5.7964},L:{"0":58.12188},S:{"2.5":0.02535}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LT.js index a6351c2b280b6c..8bab8e7cf30dbe 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LT.js @@ -1 +1 @@ -module.exports={C:{"48":0.02698,"51":0.0054,"52":0.11871,"60":0.01619,"66":0.0054,"68":0.0054,"71":0.02698,"72":0.0054,"77":0.01619,"78":0.03238,"80":0.0054,"83":0.0054,"84":0.02698,"88":0.02158,"89":0.01079,"90":0.01619,"91":0.09173,"92":0.02158,"94":0.03238,"95":0.06475,"96":0.07554,"97":1.71053,"98":3.05953,"99":0.01619,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 73 74 75 76 79 81 82 85 86 87 93 100 3.5 3.6"},D:{"34":0.0054,"41":0.02158,"49":0.07015,"53":0.01079,"56":0.01619,"61":0.0054,"63":0.01619,"64":0.01079,"65":0.01079,"66":0.01619,"68":0.01079,"70":0.01079,"71":0.01619,"72":0.0054,"73":0.05396,"74":0.01079,"75":0.04856,"76":0.01619,"77":0.03777,"78":0.01079,"79":0.06475,"80":0.02158,"81":0.02698,"83":0.03777,"84":0.09173,"85":0.04317,"86":0.04856,"87":0.09713,"88":0.03777,"89":0.03777,"90":0.04317,"91":0.04856,"92":0.08634,"93":0.36153,"94":0.11871,"95":0.08634,"96":0.25361,"97":0.60975,"98":8.06162,"99":25.37199,"100":0.09173,"101":0.02158,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 54 55 57 58 59 60 62 67 69 102 103"},F:{"28":0.01079,"36":0.01619,"77":0.01079,"79":0.01079,"80":0.0054,"82":0.04856,"83":1.349,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01619,"86":0.01079,"89":0.0054,"90":0.01079,"92":0.01619,"94":0.0054,"95":0.0054,"96":0.02158,"97":0.04317,"98":0.87415,"99":3.45344,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88 91 93"},E:{"4":0,"12":0.0054,"13":0.02698,"14":0.15109,"15":0.09173,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01619,"12.1":0.02698,"13.1":0.16728,"14.1":0.44247,"15.1":0.21044,"15.2-15.3":0.17807,"15.4":0.11332},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00178,"7.0-7.1":0,"8.1-8.4":0.00355,"9.0-9.2":0.00178,"9.3":0.02042,"10.0-10.2":0.00178,"10.3":0.0719,"11.0-11.2":0.00533,"11.3-11.4":0.01243,"12.0-12.1":0.00799,"12.2-12.5":0.13936,"13.0-13.1":0.01598,"13.2":0.02042,"13.3":0.02574,"13.4-13.7":0.10829,"14.0-14.4":0.31511,"14.5-14.8":1.23559,"15.0-15.1":0.69058,"15.2-15.3":5.59742,"15.4":0.59649},P:{"4":0.10376,"5.0-5.4":0.01002,"6.2-6.4":0.06012,"7.2-7.4":0.77158,"8.2":0.01002,"9.2":0.12025,"10.1":0.01038,"11.1-11.2":0.03113,"12.0":0.02075,"13.0":0.05188,"14.0":0.07264,"15.0":0.06226,"16.0":2.38658},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0017,"4.4":0,"4.4.3-4.4.4":0.03053},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01722,"11":0.34432,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":24.13149},S:{"2.5":0},R:{_:"0"},M:{"0":0.23941},Q:{"10.4":0},O:{"0":0.08287},H:{"0":0.46203}}; +module.exports={C:{"28":0.01705,"48":0.05683,"51":0.00568,"52":0.27278,"60":0.01705,"66":0.01137,"68":0.0341,"72":0.01137,"77":0.01137,"78":0.04546,"79":0.01705,"80":0.00568,"81":0.01705,"82":0.00568,"83":0.01137,"84":0.02273,"85":0.00568,"87":0.01137,"88":0.02273,"89":0.00568,"90":0.01705,"91":0.11366,"92":0.01137,"94":0.01705,"95":0.06251,"96":0.06251,"97":0.0341,"98":0.05115,"99":0.89223,"100":4.3134,"101":0.02842,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 86 93 102 103 3.5 3.6"},D:{"41":0.03978,"49":0.0682,"56":0.11934,"60":0.00568,"61":0.01137,"62":0.00568,"63":0.01705,"64":0.01705,"65":0.01137,"66":0.02273,"68":0.01137,"70":0.01137,"71":0.00568,"72":0.01137,"73":0.02273,"74":0.01137,"75":0.00568,"76":0.02273,"77":0.01137,"78":0.01705,"79":0.07388,"80":0.02842,"81":0.02842,"83":0.06251,"84":0.14776,"85":0.05115,"86":0.09661,"87":0.22732,"88":0.05115,"89":0.05115,"90":0.05683,"91":0.08525,"92":0.10229,"93":0.12503,"94":0.06251,"95":0.10798,"96":0.3012,"97":0.28415,"98":0.18754,"99":0.39213,"100":6.69457,"101":24.94837,"102":2.68238,"103":0.00568,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 67 69 104"},F:{"36":0.01705,"48":0.00568,"70":0.00568,"78":0.00568,"79":0.01137,"80":0.01137,"82":0.06251,"83":0.01137,"84":0.01137,"85":2.10839,"86":2.05725,"87":0.07956,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.02842,"85":0.00568,"89":0.01137,"90":0.00568,"92":0.01137,"94":0.01137,"95":0.00568,"96":0.01705,"97":0.0341,"98":0.01137,"99":0.05115,"100":0.19322,"101":4.4782,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 91 93"},E:{"4":0,"13":0.02842,"14":0.15912,"15":0.05683,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01705,"12.1":0.0341,"13.1":0.20459,"14.1":0.38644,"15.1":0.15912,"15.2-15.3":0.11934,"15.4":0.85245,"15.5":0.12503},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00306,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01633,"10.0-10.2":0.00817,"10.3":0.07962,"11.0-11.2":0.00408,"11.3-11.4":0.01123,"12.0-12.1":0.00919,"12.2-12.5":0.14596,"13.0-13.1":0.00919,"13.2":0.00612,"13.3":0.0245,"13.4-13.7":0.1184,"14.0-14.4":0.31642,"14.5-14.8":0.9707,"15.0-15.1":0.35011,"15.2-15.3":0.94212,"15.4":7.18587},P:{"4":0.08305,"5.0-5.4":0.01031,"6.2-6.4":0.03063,"7.2-7.4":0.33694,"8.2":0.02038,"9.2":0.07147,"10.1":0.02076,"11.1-11.2":0.02076,"12.0":0.01038,"13.0":0.03114,"14.0":0.06228,"15.0":0.0519,"16.0":1.06921},I:{"0":0,"3":0,"4":0.0022,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0022,"4.2-4.3":0.0044,"4.4":0,"4.4.3-4.4.4":0.04732},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01137,"11":0.29552,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.03885},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.31514},Q:{"10.4":0},O:{"0":0.05612},H:{"0":0.47819},L:{"0":28.90541},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LU.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LU.js index c28c1118dadcfa..0020a643cbbb22 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LU.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LU.js @@ -1 +1 @@ -module.exports={C:{"24":0.03866,"48":0.00966,"50":0.03866,"52":0.08698,"59":0.00966,"60":0.01933,"61":0.00966,"63":0.00966,"66":0.03382,"68":0.01933,"78":0.17395,"81":0.00966,"84":0.00483,"86":0.00966,"88":0.00966,"89":0.02899,"90":0.00966,"91":0.61366,"92":0.00966,"93":0.00966,"94":1.38678,"95":0.08214,"96":0.04349,"97":1.93763,"98":3.21811,"99":0.00483,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 51 53 54 55 56 57 58 62 64 65 67 69 70 71 72 73 74 75 76 77 79 80 82 83 85 87 100 3.5 3.6"},D:{"39":0.00966,"49":0.01933,"53":0.02899,"60":0.07248,"65":0.03866,"66":0.15946,"67":0.04832,"68":0.03866,"69":0.00966,"70":0.00966,"72":0.34307,"73":0.0145,"74":0.04349,"75":0.0145,"76":0.0145,"77":0.1208,"78":0.09664,"79":0.17395,"80":0.04349,"81":0.05315,"83":0.05798,"84":0.1063,"85":0.1353,"86":0.20778,"87":1.08237,"88":0.0145,"89":0.02899,"90":0.05798,"91":0.11597,"92":0.08214,"93":0.80694,"94":0.02899,"95":0.08214,"96":0.45421,"97":0.25126,"98":4.85133,"99":12.02685,"100":0.00483,"101":0.00966,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 61 62 63 64 71 102 103"},F:{"46":0.00483,"56":0.00966,"82":0.00483,"83":0.41555,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.03866,"16":0.04832,"18":0.00966,"89":0.00483,"90":0.00966,"91":0.01933,"92":0.00483,"94":0.01933,"95":0.03382,"96":0.06282,"97":0.19811,"98":1.27565,"99":4.02022,_:"12 13 14 17 79 80 81 83 84 85 86 87 88 93"},E:{"4":0,"12":0.00966,"13":0.07248,"14":0.42038,"15":0.29475,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.00483,"9.1":0.0145,"10.1":0.00966,"11.1":0.05315,"12.1":0.16912,"13.1":0.75379,"14.1":1.5849,"15.1":0.68131,"15.2-15.3":0.66682,"15.4":0.40589},G:{"8":0.00178,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00178,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07486,"10.0-10.2":0,"10.3":0.08199,"11.0-11.2":0.0303,"11.3-11.4":0.04278,"12.0-12.1":0.01069,"12.2-12.5":0.34933,"13.0-13.1":0.03565,"13.2":0.00891,"13.3":0.0303,"13.4-13.7":0.29052,"14.0-14.4":0.52044,"14.5-14.8":2.24215,"15.0-15.1":1.28327,"15.2-15.3":11.96466,"15.4":0.84125},P:{"4":0.10412,"5.0-5.4":0.01002,"6.2-6.4":0.06012,"7.2-7.4":0.02082,"8.2":0.01002,"9.2":0.12025,"10.1":0.01038,"11.1-11.2":0.02082,"12.0":0.07288,"13.0":0.04165,"14.0":0.07288,"15.0":0.05206,"16.0":3.77938},I:{"0":0,"3":0,"4":0.00048,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00072,"4.2-4.3":0.00286,"4.4":0,"4.4.3-4.4.4":0.01145},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.08425,"11":0.32647,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":20.32362},S:{"2.5":0},R:{_:"0"},M:{"0":0.78538},Q:{"10.4":0.02584},O:{"0":0.5787},H:{"0":0.60658}}; +module.exports={C:{"24":0.036,"45":0.009,"48":0.009,"50":0.036,"51":0.0045,"52":0.108,"60":0.0135,"61":0.009,"66":0.0405,"68":0.027,"77":0.009,"78":0.126,"84":0.108,"87":0.0045,"88":0.1755,"89":0.0225,"91":0.6255,"92":0.009,"93":0.0045,"94":1.395,"95":0.0135,"96":0.018,"97":0.045,"98":0.0315,"99":1.0125,"100":3.9735,"101":0.018,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 53 54 55 56 57 58 59 62 63 64 65 67 69 70 71 72 73 74 75 76 79 80 81 82 83 85 86 90 102 103 3.5 3.6"},D:{"38":0.009,"49":0.018,"53":0.0225,"60":0.0765,"62":0.009,"65":0.0405,"67":0.0585,"68":0.0405,"72":0.2295,"74":0.0495,"75":0.018,"76":0.0045,"77":0.009,"78":0.117,"79":0.1665,"80":0.054,"81":0.054,"83":0.054,"84":0.135,"85":0.1485,"86":0.2115,"87":0.5895,"88":0.009,"89":0.0315,"90":0.0945,"91":0.0945,"92":0.0315,"93":0.0225,"94":0.036,"95":0.045,"96":0.108,"97":0.099,"98":0.0855,"99":0.2925,"100":3.1545,"101":12.1455,"102":0.981,"103":0.018,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 61 63 64 66 69 70 71 73 104"},F:{"42":0.0045,"69":0.009,"73":0.009,"75":0.0045,"79":0.0045,"80":0.0045,"82":0.0045,"85":0.6075,"86":0.6525,"87":0.0405,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 74 76 77 78 81 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.036,"16":0.0405,"18":0.0045,"85":0.009,"86":0.0045,"90":0.009,"91":0.0135,"92":0.009,"96":0.0225,"97":0.0135,"98":0.1845,"99":0.072,"100":0.315,"101":4.878,_:"12 13 14 17 79 80 81 83 84 87 88 89 93 94 95"},E:{"4":0,"13":0.594,"14":0.2655,"15":0.1395,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.0135,"10.1":0.018,"11.1":0.0315,"12.1":0.189,"13.1":0.729,"14.1":0.9585,"15.1":0.324,"15.2-15.3":0.2115,"15.4":4.248,"15.5":0.6165},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.03807,"5.0-5.1":0,"6.0-6.1":0.0019,"7.0-7.1":0.0019,"8.1-8.4":0,"9.0-9.2":0.12373,"9.3":0.07805,"10.0-10.2":0,"10.3":0.09327,"11.0-11.2":0.02855,"11.3-11.4":0.04378,"12.0-12.1":0.00571,"12.2-12.5":0.33503,"13.0-13.1":0.02094,"13.2":0.00571,"13.3":0.04188,"13.4-13.7":0.34835,"14.0-14.4":0.4835,"14.5-14.8":1.73033,"15.0-15.1":0.57107,"15.2-15.3":1.64277,"15.4":13.4334},P:{"4":0.13327,"5.0-5.4":0.01031,"6.2-6.4":0.03063,"7.2-7.4":0.01025,"8.2":0.02038,"9.2":0.07147,"10.1":0.02076,"11.1-11.2":0.03076,"12.0":0.04101,"13.0":0.06151,"14.0":0.06151,"15.0":0.05126,"16.0":1.42501},I:{"0":0,"3":0.00836,"4":0,"2.1":0.00386,"2.2":0.01222,"2.3":0,"4.1":0.01029,"4.2-4.3":0.01222,"4.4":0,"4.4.3-4.4.4":0.05208},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.07792,"11":0.27758,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.69313},Q:{"10.4":0.44558},O:{"0":0.79765},H:{"0":0.60413},L:{"0":22.03087},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LV.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LV.js index eb5443fe62639b..10c97927803289 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LV.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LV.js @@ -1 +1 @@ -module.exports={C:{"52":0.08953,"56":0.01279,"60":0.0064,"62":0.0064,"68":0.01919,"70":0.01279,"72":0.0064,"78":0.03837,"79":0.01279,"81":0.03198,"84":0.01279,"85":0.0064,"86":0.0064,"87":0.01919,"88":0.03198,"89":0.01919,"90":0.01919,"91":0.14069,"92":0.03198,"93":0.01279,"94":0.0064,"95":0.06395,"96":0.03837,"97":1.61794,"98":3.21669,"99":0.01919,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 61 63 64 65 66 67 69 71 73 74 75 76 77 80 82 83 100 3.5 3.6"},D:{"49":0.08953,"57":0.0064,"63":0.0064,"68":0.01279,"69":0.01919,"70":0.01279,"71":0.01279,"72":0.0064,"74":0.01279,"76":0.0064,"78":0.02558,"79":0.12151,"80":0.01919,"81":0.02558,"83":0.03837,"84":0.04477,"85":0.05756,"86":0.08314,"87":0.17267,"88":0.05116,"89":0.07035,"90":0.07674,"91":0.30057,"92":0.08953,"93":0.90809,"94":0.04477,"95":0.04477,"96":0.30696,"97":0.56916,"98":9.95062,"99":33.47783,"100":0.22383,"101":0.0064,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 58 59 60 61 62 64 65 66 67 73 75 77 102 103"},F:{"36":0.01279,"72":0.0064,"77":0.01279,"82":0.01279,"83":0.56276,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"89":0.0064,"92":0.01279,"95":0.0064,"96":0.05116,"97":0.08953,"98":0.95286,"99":4.33581,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 90 91 93 94"},E:{"4":0,"13":0.01279,"14":0.16627,"15":0.08314,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.0064,"10.1":0.0064,"11.1":0.0064,"12.1":0.03198,"13.1":0.18546,"14.1":0.42207,"15.1":0.17906,"15.2-15.3":0.18546,"15.4":0.16627},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00181,"9.3":0.01264,"10.0-10.2":0.00361,"10.3":0.05686,"11.0-11.2":0.01534,"11.3-11.4":0.01173,"12.0-12.1":0.01083,"12.2-12.5":0.18413,"13.0-13.1":0.00812,"13.2":0.00542,"13.3":0.02076,"13.4-13.7":0.16879,"14.0-14.4":0.42603,"14.5-14.8":1.2122,"15.0-15.1":0.81325,"15.2-15.3":5.3723,"15.4":0.6923},P:{"4":0.03156,"5.0-5.4":0.02043,"6.2-6.4":0.04086,"7.2-7.4":0.3269,"8.2":0.09059,"9.2":0.07151,"10.1":0.01022,"11.1-11.2":0.09468,"12.0":0.02104,"13.0":0.07364,"14.0":0.08416,"15.0":0.11571,"16.0":2.78767},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00328,"4.2-4.3":0.00492,"4.4":0,"4.4.3-4.4.4":0.04588},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0064,"11":0.1279,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":20.9638},S:{"2.5":0},R:{_:"0"},M:{"0":0.29561},Q:{"10.4":0},O:{"0":0.08652},H:{"0":0.30034}}; +module.exports={C:{"52":0.06779,"55":0.01356,"56":0.02034,"68":0.00678,"75":0.00678,"76":0.01356,"78":0.02712,"79":0.01356,"81":0.01356,"82":0.00678,"84":0.01356,"86":0.00678,"87":0.02034,"88":0.0339,"89":0.01356,"90":0.01356,"91":0.07457,"92":0.00678,"93":0.02034,"94":0.01356,"95":0.02712,"96":0.02712,"97":0.02034,"98":0.06101,"99":0.73213,"100":3.38272,"101":0.02034,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 77 80 83 85 102 103 3.5 3.6"},D:{"38":0.00678,"49":0.07457,"65":0.01356,"70":0.00678,"71":0.00678,"74":0.01356,"76":0.01356,"78":0.00678,"79":0.15592,"80":0.02034,"81":0.05423,"83":0.07457,"84":0.05423,"85":0.05423,"86":0.12202,"87":0.20337,"88":0.02034,"89":0.04745,"90":0.06101,"91":0.06779,"92":0.08813,"93":0.06779,"94":0.04745,"95":0.04067,"96":0.14914,"97":0.37962,"98":0.42708,"99":0.49487,"100":8.07379,"101":35.57619,"102":4.66395,"103":0.02712,"104":0.00678,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 72 73 75 77"},F:{"77":0.02034,"78":0.01356,"79":0.01356,"80":0.01356,"81":0.01356,"85":0.90839,"86":1.05075,"87":0.04745,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01356,"85":0.00678,"89":0.01356,"92":0.00678,"94":0.11524,"95":0.00678,"96":0.02712,"97":0.06101,"98":0.02712,"99":0.06779,"100":0.2576,"101":5.77571,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 90 91 93"},E:{"4":0,"13":0.01356,"14":0.11524,"15":0.04067,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00678,"11.1":0.01356,"12.1":0.05423,"13.1":0.15592,"14.1":0.25082,"15.1":0.08135,"15.2-15.3":0.1288,"15.4":1.01685,"15.5":0.13558},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00085,"9.0-9.2":0.00169,"9.3":0.00847,"10.0-10.2":0.00254,"10.3":0.01525,"11.0-11.2":0.01017,"11.3-11.4":0.00424,"12.0-12.1":0.00424,"12.2-12.5":0.14656,"13.0-13.1":0.00678,"13.2":0.00762,"13.3":0.01948,"13.4-13.7":0.10844,"14.0-14.4":0.30328,"14.5-14.8":0.79548,"15.0-15.1":0.37021,"15.2-15.3":0.76752,"15.4":5.89197},P:{"4":0.04197,"5.0-5.4":0.01018,"6.2-6.4":0.03073,"7.2-7.4":0.2766,"8.2":0.03053,"9.2":0.05122,"10.1":0.02036,"11.1-11.2":0.02099,"12.0":0.01049,"13.0":0.04197,"14.0":0.08394,"15.0":0.05246,"16.0":1.11224},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00455,"4.2-4.3":0.00303,"4.4":0,"4.4.3-4.4.4":0.04396},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06779,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00644},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.27056},Q:{"10.4":0},O:{"0":0.08375},H:{"0":0.30799},L:{"0":20.20971},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LY.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LY.js index b5f14a149f1c73..d7351cb5df28af 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LY.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/LY.js @@ -1 +1 @@ -module.exports={C:{"23":0.01963,"29":0.00604,"34":0.00302,"35":0.00453,"38":0.00302,"41":0.00151,"43":0.00453,"44":0.00302,"45":0.00302,"47":0.00604,"48":0.00151,"52":0.02265,"61":0.00302,"63":0.00151,"65":0.00302,"66":0.00151,"70":0.00302,"72":0.00604,"75":0.00151,"78":0.00302,"79":0.00453,"84":0.00302,"86":0.00151,"87":0.00302,"88":0.00302,"89":0.00302,"91":0.00604,"93":0.00302,"94":0.03322,"95":0.00906,"96":0.01208,"97":0.27331,"98":0.46206,"99":0.01208,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 30 31 32 33 36 37 39 40 42 46 49 50 51 53 54 55 56 57 58 59 60 62 64 67 68 69 71 73 74 76 77 80 81 82 83 85 90 92 100 3.5 3.6"},D:{"19":0.00453,"23":0.00151,"29":0.00151,"31":0.00453,"32":0.00453,"33":0.01208,"37":0.00302,"38":0.00302,"40":0.00302,"43":0.0151,"47":0.00151,"48":0.00151,"49":0.02567,"53":0.00302,"54":0.00151,"55":0.00604,"56":0.00302,"57":0.00302,"58":0.00453,"60":0.00604,"61":0.00604,"63":0.01208,"64":0.00453,"65":0.01208,"66":0.00453,"67":0.00302,"68":0.00906,"69":0.00755,"70":0.01057,"71":0.01208,"72":0.00302,"73":0.00302,"74":0.00302,"75":0.00302,"76":0.00453,"77":0.00302,"78":0.00755,"79":0.0151,"80":0.01359,"81":0.00604,"83":0.02265,"84":0.00604,"85":0.01208,"86":0.04681,"87":0.05285,"88":0.03322,"89":0.02718,"90":0.01661,"91":0.02416,"92":0.06946,"93":0.04832,"94":0.02114,"95":0.0302,"96":0.12986,"97":0.21895,"98":2.04605,"99":7.42316,"100":0.08003,"101":0.02718,"102":0.00453,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 24 25 26 27 28 30 34 35 36 39 41 42 44 45 46 50 51 52 59 62 103"},F:{"28":0.00151,"73":0.00302,"74":0.00453,"78":0.00453,"79":0.00906,"80":0.00302,"82":0.02114,"83":0.11174,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 75 76 77 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00604,"13":0.00151,"14":0.00302,"15":0.00151,"16":0.00453,"17":0.00453,"18":0.02718,"84":0.01057,"89":0.00453,"90":0.00302,"91":0.00302,"92":0.0151,"94":0.00302,"95":0.00453,"96":0.01359,"97":0.06493,"98":0.20083,"99":0.83805,_:"79 80 81 83 85 86 87 88 93"},E:{"4":0,"13":0.00604,"14":0.03473,"15":0.01208,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00302,"10.1":0.01057,"11.1":0.00453,"12.1":0.00302,"13.1":0.01359,"14.1":0.06342,"15.1":0.06946,"15.2-15.3":0.03775,"15.4":0.02567},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00137,"6.0-6.1":0.00137,"7.0-7.1":0.01229,"8.1-8.4":0.00546,"9.0-9.2":0.00137,"9.3":0.06146,"10.0-10.2":0.0041,"10.3":0.06078,"11.0-11.2":0.028,"11.3-11.4":0.03209,"12.0-12.1":0.03892,"12.2-12.5":0.63097,"13.0-13.1":0.02527,"13.2":0.00819,"13.3":0.06351,"13.4-13.7":0.1673,"14.0-14.4":0.56132,"14.5-14.8":1.12605,"15.0-15.1":0.78462,"15.2-15.3":2.82913,"15.4":0.38241},P:{"4":0.38078,"5.0-5.4":0.01002,"6.2-6.4":0.06012,"7.2-7.4":0.77158,"8.2":0.01002,"9.2":0.12025,"10.1":0.04008,"11.1-11.2":0.35072,"12.0":0.11023,"13.0":0.31063,"14.0":0.47096,"15.0":0.33068,"16.0":2.31473},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00081,"4.2-4.3":0.00619,"4.4":0,"4.4.3-4.4.4":0.05244},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00302,"11":0.05889,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":68.88808},S:{"2.5":0},R:{_:"0"},M:{"0":0.06792},Q:{"10.4":0},O:{"0":0.4245},H:{"0":3.07043}}; +module.exports={C:{"30":0.00223,"31":0.00112,"34":0.00558,"37":0.00223,"42":0.00112,"43":0.00223,"45":0.00893,"47":0.00335,"52":0.00446,"61":0.00223,"70":0.00112,"72":0.00223,"78":0.00223,"84":0.00223,"87":0.00112,"88":0.00223,"89":0.00112,"91":0.00446,"93":0.00112,"94":0.0067,"95":0.00335,"96":0.00558,"97":0.00558,"98":0.01339,"99":0.0904,"100":0.44417,"101":0.01339,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 32 33 35 36 38 39 40 41 44 46 48 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 71 73 74 75 76 77 79 80 81 82 83 85 86 90 92 102 103 3.5 3.6"},D:{"25":0.00558,"31":0.00112,"32":0.00335,"33":0.0067,"37":0.00223,"38":0.00335,"39":0.00223,"40":0.00112,"43":0.01004,"49":0.00893,"50":0.00223,"53":0.00335,"54":0.00223,"55":0.00335,"56":0.00335,"57":0.00112,"58":0.00335,"60":0.00335,"61":0.00112,"62":0.00223,"63":0.01451,"64":0.00335,"65":0.00893,"66":0.00223,"67":0.00223,"68":0.00335,"69":0.00558,"70":0.00223,"71":0.00446,"72":0.00223,"73":0.00335,"74":0.00335,"75":0.00223,"76":0.00558,"77":0.00335,"78":0.00781,"79":0.02455,"80":0.0067,"81":0.01004,"83":0.0346,"84":0.0279,"85":0.01451,"86":0.06584,"87":0.05245,"88":0.0279,"89":0.0212,"90":0.01562,"91":0.0212,"92":0.02567,"93":0.01339,"94":0.02678,"95":0.01451,"96":0.05692,"97":0.04352,"98":0.077,"99":0.14062,"100":1.0948,"101":4.97624,"102":0.48323,"103":0.0067,"104":0.00223,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 34 35 36 41 42 44 45 46 47 48 51 52 59"},F:{"28":0.00112,"75":0.00223,"79":0.0067,"80":0.00112,"81":0.00223,"82":0.01116,"83":0.00558,"84":0.02567,"85":0.18414,"86":0.22543,"87":0.0212,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00335,"13":0.00112,"14":0.00223,"17":0.00335,"18":0.04129,"84":0.01116,"85":0.00335,"86":0.00335,"87":0.00223,"88":0.00335,"89":0.00893,"90":0.00446,"91":0.00558,"92":0.01004,"93":0.00223,"94":0.00781,"95":0.00223,"96":0.0067,"97":0.01116,"98":0.00781,"99":0.0279,"100":0.05692,"101":0.68857,_:"15 16 79 80 81 83"},E:{"4":0,"12":0.00112,"13":0.04018,"14":0.05692,"15":0.03013,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00446,"10.1":0.00335,"11.1":0.00335,"12.1":0.00223,"13.1":0.03125,"14.1":0.05468,"15.1":0.01674,"15.2-15.3":0.01674,"15.4":0.11941,"15.5":0.0212},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00111,"6.0-6.1":0,"7.0-7.1":0.0083,"8.1-8.4":0.00387,"9.0-9.2":0.00387,"9.3":0.0498,"10.0-10.2":0.00221,"10.3":0.0332,"11.0-11.2":0.02822,"11.3-11.4":0.01937,"12.0-12.1":0.02213,"12.2-12.5":0.44325,"13.0-13.1":0.03652,"13.2":0.00719,"13.3":0.05921,"13.4-13.7":0.0985,"14.0-14.4":0.46815,"14.5-14.8":0.68341,"15.0-15.1":0.37574,"15.2-15.3":0.69724,"15.4":2.48517},P:{"4":0.19399,"5.0-5.4":0.07349,"6.2-6.4":0.03063,"7.2-7.4":0.33694,"8.2":0.02038,"9.2":0.07147,"10.1":0.02042,"11.1-11.2":0.17357,"12.0":0.03063,"13.0":0.14294,"14.0":0.25526,"15.0":0.11231,"16.0":1.01081},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00073,"4.2-4.3":0.0066,"4.4":0,"4.4.3-4.4.4":0.09929},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00361,"11":0.04214,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.07108},Q:{"10.4":0},O:{"0":0.32875},H:{"0":2.48988},L:{"0":77.83746},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MA.js index f9dd9a4f0eb3aa..a6e7a545b3ac82 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MA.js @@ -1 +1 @@ -module.exports={C:{"2":0.53471,"15":0.53471,"18":0.53081,"21":0.523,"23":0.53081,"25":1.06162,"30":0.52691,"51":0.523,"52":0.08977,"55":0.00781,"65":0.03513,"72":0.0039,"78":0.01952,"80":0.0039,"81":0.00781,"84":0.01952,"87":0.0039,"88":0.0039,"89":0.00781,"91":0.03122,"92":0.0039,"93":0.0039,"94":0.00781,"95":0.01171,"96":0.02342,"97":0.42933,"98":0.76109,"99":0.01561,_:"3 4 5 6 7 8 9 10 11 12 13 14 16 17 19 20 22 24 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 79 82 83 85 86 90 100 3.5 3.6"},D:{"19":0.53081,"24":1.61584,"30":0.53471,"33":0.54252,"35":1.07723,"38":0.00781,"43":0.00781,"49":0.06635,"53":0.01171,"54":0.53471,"55":0.54642,"56":2.66575,"62":0.0039,"63":0.01171,"65":0.0039,"66":0.0039,"67":0.21076,"68":0.01171,"69":0.01171,"70":0.00781,"72":0.01171,"73":0.0039,"74":0.00781,"75":0.03122,"76":0.00781,"77":0.0039,"78":0.00781,"79":0.05855,"80":0.01561,"81":0.01561,"83":0.03513,"84":0.03122,"85":0.03122,"86":0.04684,"87":0.14831,"88":0.01952,"89":0.02732,"90":0.07025,"91":0.03513,"92":0.03513,"93":0.48788,"94":0.02342,"95":0.04293,"96":0.14831,"97":0.21467,"98":2.80235,"99":9.35549,"100":0.01171,"101":0.00781,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 25 26 27 28 29 31 32 34 36 37 39 40 41 42 44 45 46 47 48 50 51 52 57 58 59 60 61 64 71 102 103"},F:{"28":0.00781,"40":0.0039,"43":0.54252,"82":0.00781,"83":0.21076,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0.523},B:{"16":0.0039,"17":0.00781,"18":0.01171,"92":0.01171,"96":0.00781,"97":0.02342,"98":0.24589,"99":1.09284,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"5":0.523,"13":0.02342,"14":0.04684,"15":0.01561,_:"0 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.0039,"10.1":0.00781,"11.1":0.00781,"12.1":0.01171,"13.1":0.05855,"14.1":0.08587,"15.1":0.02732,"15.2-15.3":0.03122,"15.4":0.01171},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00925,"6.0-6.1":10.15387,"7.0-7.1":0.03083,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07709,"10.0-10.2":1.39373,"10.3":0.09096,"11.0-11.2":0.11255,"11.3-11.4":0.08171,"12.0-12.1":0.1218,"12.2-12.5":0.75699,"13.0-13.1":0.00771,"13.2":0.00308,"13.3":0.02929,"13.4-13.7":0.09867,"14.0-14.4":0.24051,"14.5-14.8":0.52573,"15.0-15.1":0.31143,"15.2-15.3":1.25651,"15.4":0.10792},P:{"4":0.56616,"5.0-5.4":0.05094,"6.2-6.4":0.01019,"7.2-7.4":0.1742,"8.2":0.01002,"9.2":0.06533,"10.1":0.04099,"11.1-11.2":0.0871,"12.0":0.03266,"13.0":0.16331,"14.0":0.10888,"15.0":0.10888,"16.0":1.53515},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01906,"4.2-4.3":0.40018,"4.4":0,"4.4.3-4.4.4":0.80646},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":1.06162,"9":1.06942,"10":1.07333,"11":0.04684,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":41.18569},S:{"2.5":0},R:{_:"0"},M:{"0":0.09757},Q:{"10.4":0},O:{"0":0.09147},H:{"0":0.24825}}; +module.exports={C:{"50":0.00366,"52":0.14266,"55":0.01097,"56":0.07682,"64":0.00366,"65":0.05853,"66":0.00366,"68":0.00366,"72":0.00732,"78":0.02561,"79":0.00732,"80":0.01097,"81":0.01097,"82":0.01097,"83":0.00732,"84":0.01097,"87":0.00366,"88":0.00732,"89":0.0695,"90":0.00366,"91":0.07316,"93":0.04755,"94":0.00732,"95":0.01097,"96":0.00732,"97":0.01463,"98":0.02926,"99":0.3658,"100":1.66073,"101":0.03292,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 57 58 59 60 61 62 63 67 69 70 71 73 74 75 76 77 85 86 92 102 103 3.5 3.6"},D:{"11":0.00366,"22":0.00732,"34":0.00732,"38":0.01463,"41":0.00366,"43":0.00732,"48":0.00366,"49":0.08413,"53":0.01463,"55":0.00732,"56":0.01463,"58":0.00732,"62":0.00366,"63":0.01463,"64":0.01097,"65":0.01097,"66":0.00732,"67":4.25425,"68":0.02195,"69":0.02195,"70":0.01463,"71":0.00366,"72":0.01463,"73":0.00732,"74":0.00732,"75":0.04024,"76":0.01097,"77":0.00732,"78":0.01097,"79":0.14266,"80":0.02561,"81":0.02926,"83":0.06219,"84":0.07316,"85":0.08779,"86":0.14266,"87":0.15364,"88":0.03292,"89":0.03658,"90":0.2963,"91":0.08048,"92":0.05121,"93":0.02926,"94":0.02926,"95":0.0439,"96":0.11706,"97":0.13535,"98":0.139,"99":0.2524,"100":3.54826,"101":15.67087,"102":1.70463,"103":0.01097,"104":0.00366,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 42 44 45 46 47 50 51 52 54 57 59 60 61"},F:{"28":0.02561,"36":0.00366,"40":0.00732,"46":0.01097,"68":0.00366,"69":0.00732,"72":0.00732,"79":0.00366,"82":0.00366,"83":0.00732,"84":0.01829,"85":0.68039,"86":0.75721,"87":0.0439,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 70 71 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00366,"17":0.00732,"18":0.02195,"84":0.01829,"89":0.00732,"92":0.01829,"96":0.01097,"97":0.01463,"98":0.01097,"99":0.03658,"100":0.10974,"101":2.01556,_:"12 13 14 15 79 80 81 83 85 86 87 88 90 91 93 94 95"},E:{"4":0,"12":0.00732,"13":0.01463,"14":0.06584,"15":0.01829,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00732,"10.1":0.00366,"11.1":0.01097,"12.1":0.02561,"13.1":0.09511,"14.1":0.12803,"15.1":0.03292,"15.2-15.3":0.03658,"15.4":0.22314,"15.5":0.05121},G:{"8":0.00152,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01819,"6.0-6.1":0.00076,"7.0-7.1":0.07956,"8.1-8.4":0.00606,"9.0-9.2":0.00076,"9.3":0.10835,"10.0-10.2":0.03258,"10.3":0.09926,"11.0-11.2":0.13639,"11.3-11.4":0.09471,"12.0-12.1":0.15079,"12.2-12.5":1.01534,"13.0-13.1":0.0197,"13.2":0.00909,"13.3":0.05607,"13.4-13.7":0.14245,"14.0-14.4":0.47357,"14.5-14.8":0.95624,"15.0-15.1":0.40083,"15.2-15.3":0.64633,"15.4":3.13013},P:{"4":0.9642,"5.0-5.4":0.0204,"6.2-6.4":0.03077,"7.2-7.4":0.25644,"8.2":0.01019,"9.2":0.0718,"10.1":0.01026,"11.1-11.2":0.16412,"12.0":0.05129,"13.0":0.21541,"14.0":0.1436,"15.0":0.12309,"16.0":1.22064},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00335,"4.2-4.3":0.00503,"4.4":0,"4.4.3-4.4.4":0.04235},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10974,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.15855},Q:{"10.4":0},O:{"0":0.10147},H:{"0":0.40829},L:{"0":51.31504},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MC.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MC.js index 8dea06aaad2ce6..41de155229b54b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MC.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MC.js @@ -1 +1 @@ -module.exports={C:{"50":0.01903,"68":0.00634,"72":0.02538,"75":0.01903,"78":0.41236,"79":0.01269,"80":0.01269,"81":0.01903,"82":0.00634,"84":0.41236,"91":0.13957,"92":0.02538,"94":0.01903,"95":0.04441,"96":0.1015,"97":1.70654,"98":2.84846,"99":0.01269,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 76 77 83 85 86 87 88 89 90 93 100 3.5 3.6"},D:{"18":0.19032,"49":0.01269,"56":0.01903,"65":0.01903,"74":0.01269,"75":0.01269,"76":0.01269,"77":0.15226,"79":0.03806,"80":0.00634,"81":0.01903,"84":0.01903,"85":0.10785,"86":0.01269,"87":0.71053,"89":0.23473,"90":0.06344,"91":0.03806,"92":0.04441,"93":0.09516,"94":0.41236,"95":0.01269,"96":0.45042,"97":0.58999,"98":7.59377,"99":23.08582,"100":0.1586,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 78 83 88 101 102 103"},F:{"65":0.01269,"69":0.06344,"70":0.01903,"82":0.02538,"83":0.13957,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01269,"85":0.01903,"93":0.01269,"94":0.03806,"95":0.05075,"96":0.01903,"97":0.03806,"98":1.09751,"99":4.15532,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 92"},E:{"4":0,"11":0.00634,"13":0.22838,"14":0.87547,"15":0.12688,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1","9.1":0.01269,"10.1":0.01269,"11.1":0.08882,"12.1":0.20935,"13.1":1.2688,"14.1":1.86514,"15.1":0.43139,"15.2-15.3":0.65978,"15.4":1.35127},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00229,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0183,"10.0-10.2":0.03202,"10.3":0.06404,"11.0-11.2":0.00229,"11.3-11.4":0.18753,"12.0-12.1":0.06175,"12.2-12.5":0.51686,"13.0-13.1":0.03888,"13.2":0.00457,"13.3":0.13722,"13.4-13.7":0.4208,"14.0-14.4":0.67466,"14.5-14.8":4.37728,"15.0-15.1":1.41564,"15.2-15.3":14.16784,"15.4":0.73641},P:{"4":0.06311,"5.0-5.4":0.06037,"6.2-6.4":0.15093,"7.2-7.4":0.04208,"8.2":0.01002,"9.2":0.02104,"10.1":0.04099,"11.1-11.2":0.05434,"12.0":0.02104,"13.0":0.07363,"14.0":0.11571,"15.0":0.07363,"16.0":1.17374},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14591,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":12.28649},S:{"2.5":0},R:{_:"0"},M:{"0":0.09503},Q:{"10.4":0},O:{"0":0},H:{"0":0.0173}}; +module.exports={C:{"48":0.00632,"52":0.01265,"72":0.00632,"78":0.4679,"91":0.14543,"94":0.23395,"95":0.21498,"96":0.01265,"97":0.03794,"98":0.08852,"99":0.73347,"100":2.5292,"101":0.01897,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 102 103 3.5 3.6"},D:{"18":1.90955,"53":0.00632,"62":0.01897,"77":0.25924,"84":0.00632,"86":0.10749,"87":0.35409,"88":0.06955,"89":0.10117,"90":0.03162,"92":0.01897,"93":0.02529,"94":0.33512,"95":0.09485,"96":0.12646,"97":0.02529,"98":0.54378,"99":1.22034,"100":6.05743,"101":21.09353,"102":1.17608,"103":0.00632,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 59 60 61 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 83 85 91 104"},F:{"85":0.43629,"86":0.86625,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.10117,"92":0.00632,"97":0.00632,"98":0.00632,"99":0.01897,"100":0.3288,"101":5.87407,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96"},E:{"4":0,"12":0.01265,"13":0.00632,"14":1.03065,"15":0.12646,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02529,"11.1":0.05058,"12.1":0.15175,"13.1":1.03697,"14.1":1.1824,"15.1":0.25292,"15.2-15.3":0.37306,"15.4":8.98498,"15.5":1.35312},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00473,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00946,"10.0-10.2":0.02838,"10.3":0.11351,"11.0-11.2":0,"11.3-11.4":0.03074,"12.0-12.1":0.02601,"12.2-12.5":0.52025,"13.0-13.1":0.00946,"13.2":0.00946,"13.3":0.05439,"13.4-13.7":0.15371,"14.0-14.4":0.31215,"14.5-14.8":2.23472,"15.0-15.1":1.03341,"15.2-15.3":3.39583,"15.4":15.7069},P:{"4":0.05169,"5.0-5.4":0.04028,"6.2-6.4":0.0705,"7.2-7.4":0.03101,"8.2":0.01019,"9.2":0.01034,"10.1":0.06042,"11.1-11.2":0.04227,"12.0":0.02068,"13.0":0.05169,"14.0":0.07237,"15.0":0.03101,"16.0":0.52844},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01103},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00632,"11":0.07588,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.21327},Q:{"10.4":0},O:{"0":0.00735},H:{"0":0.10443},L:{"0":11.13017},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MD.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MD.js index 3228debc8bd814..00742970c2bd0b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MD.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MD.js @@ -1 +1 @@ -module.exports={C:{"50":0.00421,"52":0.09262,"53":0.00421,"56":0.00421,"72":0.00842,"78":0.01263,"80":0.00421,"81":0.01684,"82":0.00842,"84":0.02105,"85":0.00421,"87":0.47994,"88":0.01263,"89":0.01263,"90":0.00421,"91":0.10104,"93":0.0421,"94":0.0421,"95":0.01263,"96":0.11788,"97":0.51783,"98":1.23353,"99":0.01684,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 83 86 92 100 3.5 3.6"},D:{"34":0.00421,"41":0.00842,"49":0.10525,"53":0.00421,"57":0.00842,"58":0.00421,"63":0.00421,"64":0.00421,"65":0.00421,"66":0.00421,"67":0.05052,"69":0.01263,"70":0.00842,"71":0.01684,"72":0.00421,"73":0.00842,"74":0.02526,"75":0.01684,"76":0.02526,"77":0.01684,"78":0.00842,"79":0.0421,"80":0.20208,"81":0.02947,"83":0.03368,"84":0.03789,"85":0.06736,"86":0.09262,"87":0.09683,"88":0.02105,"89":0.0421,"90":0.07157,"91":0.07999,"92":0.07999,"93":1.62506,"94":0.20629,"95":0.02526,"96":0.21471,"97":0.47573,"98":5.88137,"99":21.15104,"100":0.18524,"101":0.01263,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 54 55 56 59 60 61 62 68 102 103"},F:{"70":0.01684,"80":0.00421,"82":0.01263,"83":0.49678,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.01263,"18":0.00842,"84":0.00421,"85":0.00421,"92":0.00842,"97":0.01263,"98":0.24839,"99":1.07776,_:"12 13 14 16 17 79 80 81 83 86 87 88 89 90 91 93 94 95 96"},E:{"4":0,"13":0.02947,"14":0.18103,"15":0.09262,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.0421,"9.1":0.00842,"11.1":0.00421,"12.1":0.01263,"13.1":0.10946,"14.1":0.21471,"15.1":0.07157,"15.2-15.3":0.16419,"15.4":0.06736},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00101,"6.0-6.1":0,"7.0-7.1":0.00705,"8.1-8.4":0.00101,"9.0-9.2":0.00101,"9.3":0.01813,"10.0-10.2":0.00101,"10.3":0.03425,"11.0-11.2":0.00906,"11.3-11.4":0.01209,"12.0-12.1":0.01007,"12.2-12.5":0.34245,"13.0-13.1":0.01108,"13.2":0.00504,"13.3":0.03425,"13.4-13.7":0.1531,"14.0-14.4":0.44619,"14.5-14.8":1.51283,"15.0-15.1":0.79469,"15.2-15.3":5.85894,"15.4":0.81383},P:{"4":0.06311,"5.0-5.4":0.06037,"6.2-6.4":0.15093,"7.2-7.4":0.04208,"8.2":0.01002,"9.2":0.02104,"10.1":0.04099,"11.1-11.2":0.06311,"12.0":0.02104,"13.0":0.07363,"14.0":0.11571,"15.0":0.07363,"16.0":2.11433},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00116,"4.2-4.3":0.00405,"4.4":0,"4.4.3-4.4.4":0.02952},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02175,"9":0.00435,"11":0.10441,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":43.63059},S:{"2.5":0},R:{_:"0"},M:{"0":0.06947},Q:{"10.4":0},O:{"0":0.07526},H:{"0":0.22471}}; +module.exports={C:{"51":0.01007,"52":0.08053,"53":0.01007,"55":0.01007,"56":0.00503,"57":0.00503,"78":0.0151,"87":0.03523,"88":0.02013,"89":0.01007,"91":0.11576,"93":0.01007,"94":0.0151,"95":0.01007,"96":0.14596,"97":0.0151,"98":0.02013,"99":9.93011,"100":1.39414,"101":0.01007,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 54 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 90 92 102 103 3.5","3.6":0.0151},D:{"38":0.01007,"49":0.08556,"51":0.01007,"53":0.03523,"58":0.00503,"59":0.09563,"63":0.00503,"64":0.0151,"65":0.00503,"67":0.02517,"69":0.0151,"70":0.0151,"71":0.0151,"73":0.01007,"74":0.0755,"75":0.01007,"76":0.0302,"78":0.01007,"79":0.04026,"80":0.11073,"81":0.0151,"83":0.06543,"84":0.0302,"85":0.06543,"86":0.20635,"87":0.08053,"88":0.02013,"89":0.02013,"90":0.11576,"91":0.06543,"92":0.0453,"93":0.02013,"94":0.10569,"95":0.02517,"96":0.09059,"97":0.11576,"98":0.39257,"99":0.32211,"100":5.16889,"101":19.85015,"102":1.82698,"103":0.01007,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 52 54 55 56 57 60 61 62 66 68 72 77 104"},F:{"68":0.02013,"70":0.03523,"82":0.01007,"83":0.0151,"84":0.02517,"85":1.21295,"86":2.06353,"87":0.0604,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01007,"84":0.01007,"85":0.04026,"86":0.01007,"98":0.02013,"99":0.01007,"100":0.05536,"101":1.29851,_:"12 13 14 15 16 17 79 80 81 83 87 88 89 90 91 92 93 94 95 96 97"},E:{"4":0,"13":0.02517,"14":0.15099,"15":0.0151,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.0151,"13.1":0.07046,"14.1":0.16609,"15.1":0.05536,"15.2-15.3":0.08053,"15.4":0.4429,"15.5":0.07046},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00191,"7.0-7.1":0.00766,"8.1-8.4":0.00096,"9.0-9.2":0.00383,"9.3":0.02968,"10.0-10.2":0.00479,"10.3":0.02776,"11.0-11.2":0.00766,"11.3-11.4":0.00957,"12.0-12.1":0.0067,"12.2-12.5":0.25274,"13.0-13.1":0.0134,"13.2":0.01053,"13.3":0.03063,"13.4-13.7":0.11775,"14.0-14.4":0.34177,"14.5-14.8":1.04062,"15.0-15.1":0.35326,"15.2-15.3":0.90276,"15.4":6.4055},P:{"4":0.05169,"5.0-5.4":0.04028,"6.2-6.4":0.0705,"7.2-7.4":0.03101,"8.2":0.01019,"9.2":0.01034,"10.1":0.06042,"11.1-11.2":0.04135,"12.0":0.02068,"13.0":0.05169,"14.0":0.07237,"15.0":0.03101,"16.0":0.72365},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00385,"4.2-4.3":0.00771,"4.4":0,"4.4.3-4.4.4":0.03314},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0151,"11":0.0604,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.09932},Q:{"10.4":0},O:{"0":0.07449},H:{"0":0.18806},L:{"0":38.36716},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ME.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ME.js index e7bc88df650de7..59e39721585a78 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ME.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ME.js @@ -1 +1 @@ -module.exports={C:{"52":1.1421,"69":0.0081,"78":0.00405,"84":0.01215,"87":0.00405,"88":0.00405,"91":0.05265,"93":0.0162,"94":0.0243,"95":0.0081,"96":0.02835,"97":0.567,"98":1.19475,"99":0.01215,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 89 90 92 100 3.5 3.6"},D:{"26":0.00405,"38":0.0243,"49":0.10125,"53":0.081,"62":0.0081,"66":0.0729,"67":0.00405,"68":0.03645,"69":0.02025,"71":0.0081,"74":0.00405,"75":0.00405,"77":0.0081,"78":0.0324,"79":0.1944,"80":0.02025,"81":0.0162,"83":0.0162,"84":0.0648,"85":0.06075,"86":0.01215,"87":0.05265,"88":0.06075,"89":0.02835,"90":0.0324,"91":0.0243,"92":0.0486,"93":0.36045,"94":0.0243,"95":0.0162,"96":0.2187,"97":0.36855,"98":4.2606,"99":16.0704,"100":0.15795,"101":0.0081,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 63 64 65 70 72 73 76 102 103"},F:{"28":0.0081,"40":0.00405,"46":0.0486,"68":10.67985,"82":0.0081,"83":0.25515,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01215,"91":0.0081,"92":0.0243,"96":0.00405,"97":0.0081,"98":0.2106,"99":0.89505,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 93 94 95"},E:{"4":0,"13":0.02025,"14":0.0648,"15":0.02025,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.0081,"12.1":0.02025,"13.1":0.0486,"14.1":0.15795,"15.1":0.04455,"15.2-15.3":0.07695,"15.4":0.04455},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00211,"6.0-6.1":0,"7.0-7.1":0.02845,"8.1-8.4":0.00316,"9.0-9.2":0.00105,"9.3":0.05058,"10.0-10.2":0.00105,"10.3":0.07797,"11.0-11.2":0.00948,"11.3-11.4":0.02529,"12.0-12.1":0.04742,"12.2-12.5":0.44149,"13.0-13.1":0.01686,"13.2":0.00527,"13.3":0.04215,"13.4-13.7":0.16543,"14.0-14.4":0.50576,"14.5-14.8":2.18216,"15.0-15.1":0.77235,"15.2-15.3":5.64455,"15.4":0.50893},P:{"4":0.13317,"5.0-5.4":0.05094,"6.2-6.4":0.01019,"7.2-7.4":0.03073,"8.2":0.01002,"9.2":0.01024,"10.1":0.04099,"11.1-11.2":0.0922,"12.0":0.04098,"13.0":0.08195,"14.0":0.14342,"15.0":0.07171,"16.0":2.74544},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00051,"4.2-4.3":0.00076,"4.4":0,"4.4.3-4.4.4":0.01063},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0972,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":42.67795},S:{"2.5":0},R:{_:"0"},M:{"0":0.1309},Q:{"10.4":0},O:{"0":0.00595},H:{"0":0.23659}}; +module.exports={C:{"52":0.72221,"72":0.00374,"75":0.00748,"78":0.00374,"84":0.00748,"88":0.02245,"91":0.02994,"94":0.01123,"95":0.00748,"96":0.00748,"97":0.01123,"98":0.02619,"99":0.27317,"100":1.871,"101":0.00748,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 76 77 79 80 81 82 83 85 86 87 89 90 92 93 102 103 3.5 3.6"},D:{"38":0.02245,"49":0.03742,"53":0.05613,"58":0.00748,"62":0.00374,"63":0.01123,"65":0.00748,"66":0.02619,"67":0.01497,"68":0.02994,"69":0.02245,"70":0.00748,"78":0.02245,"79":0.15342,"80":0.01123,"81":0.01871,"83":0.01871,"84":0.13471,"85":0.0449,"86":0.03742,"87":0.11226,"88":0.03368,"89":0.03368,"90":0.00748,"91":0.02994,"92":0.02245,"93":0.03742,"94":0.01497,"95":0.01871,"96":0.16465,"97":0.08607,"98":0.38168,"99":0.26942,"100":4.20601,"101":14.75096,"102":1.57538,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 61 64 71 72 73 74 75 76 77 103 104"},F:{"28":0.02245,"40":0.00374,"42":0.02994,"46":0.01871,"68":6.6907,"79":0.00748,"84":0.00748,"85":0.58001,"86":0.68479,"87":0.09729,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00748,"81":0.05239,"92":0.01497,"99":0.00748,"100":0.05613,"101":1.3097,_:"12 13 14 15 16 17 79 80 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98"},E:{"4":0,"13":0.01123,"14":0.05239,"15":0.01123,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01123,"12.1":0.03368,"13.1":0.09729,"14.1":0.15342,"15.1":0.0449,"15.2-15.3":0.04116,"15.4":0.58749,"15.5":0.06361},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00121,"7.0-7.1":0.01821,"8.1-8.4":0.00243,"9.0-9.2":0.00121,"9.3":0.04005,"10.0-10.2":0.00485,"10.3":0.12987,"11.0-11.2":0.01821,"11.3-11.4":0.01092,"12.0-12.1":0.03398,"12.2-12.5":0.3714,"13.0-13.1":0.0267,"13.2":0.00364,"13.3":0.03398,"13.4-13.7":0.17235,"14.0-14.4":0.45879,"14.5-14.8":1.82547,"15.0-15.1":0.36048,"15.2-15.3":1.00134,"15.4":7.62108},P:{"4":0.1861,"5.0-5.4":0.0204,"6.2-6.4":0.0102,"7.2-7.4":0.04135,"8.2":0.01019,"9.2":0.01034,"10.1":0.06042,"11.1-11.2":0.12406,"12.0":0.03102,"13.0":0.06203,"14.0":0.08271,"15.0":0.03102,"16.0":1.10624},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00103,"4.2-4.3":0.00377,"4.4":0,"4.4.3-4.4.4":0.02023},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0711,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.19403},Q:{"10.4":0},O:{"0":0.01878},H:{"0":0.2548},L:{"0":46.84723},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MG.js index 33ceee6b238ee0..69b653eb1dd506 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MG.js @@ -1 +1 @@ -module.exports={C:{"37":0.00916,"38":0.00458,"40":0.00458,"43":0.00916,"47":0.00916,"48":0.03206,"49":0.00458,"52":0.12366,"56":0.01832,"60":0.01374,"61":0.01374,"64":0.00916,"68":0.01374,"69":0.00916,"70":0.00916,"72":0.0916,"74":0.00458,"77":0.00458,"78":0.03664,"79":0.00458,"80":0.00916,"81":0.01374,"82":0.00458,"83":0.00916,"84":0.01832,"85":0.01374,"87":0.00916,"88":0.03664,"89":0.05038,"90":0.00458,"91":0.1374,"92":0.03206,"93":0.03664,"94":0.02748,"95":0.06412,"96":0.0916,"97":1.90986,"98":3.05944,"99":0.05496,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39 41 42 44 45 46 50 51 53 54 55 57 58 59 62 63 65 66 67 71 73 75 76 86 100 3.5 3.6"},D:{"11":0.06412,"32":0.00458,"38":0.00458,"40":0.01374,"42":0.06412,"43":0.03664,"49":0.05038,"55":0.00916,"57":0.07786,"58":0.00916,"60":0.0229,"63":0.0229,"64":0.01832,"65":0.01374,"67":0.00916,"69":0.04122,"70":0.03664,"71":0.01832,"73":0.00916,"74":0.02748,"75":0.00916,"76":0.01374,"77":0.01374,"78":0.07786,"79":0.05954,"80":0.03206,"81":0.11908,"83":0.0687,"84":0.0229,"85":0.01832,"86":0.17862,"87":0.09618,"88":0.10992,"89":0.12366,"90":0.07786,"91":0.11908,"92":0.08244,"93":0.3435,"94":0.07786,"95":0.17404,"96":0.25648,"97":0.75112,"98":4.43802,"99":15.39338,"100":0.229,"101":0.00916,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 39 41 44 45 46 47 48 50 51 52 53 54 56 59 61 62 66 68 72 102 103"},F:{"37":0.00916,"53":0.05038,"62":0.00916,"64":0.00458,"66":0.01374,"68":0.01832,"79":0.00916,"82":0.00458,"83":0.14656,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 63 65 67 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00458,"13":0.00458,"15":0.00458,"17":0.01374,"18":0.05496,"84":0.01374,"85":0.00916,"89":0.01374,"90":0.00916,"92":0.01832,"93":0.0229,"94":0.00916,"95":0.00916,"96":0.01832,"97":0.0229,"98":0.4351,"99":1.97398,_:"14 16 79 80 81 83 86 87 88 91"},E:{"4":0,"13":0.00916,"14":0.01832,"15":0.01374,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.10534,"12.1":0.05038,"13.1":0.07328,"14.1":0.11908,"15.1":0.0229,"15.2-15.3":0.00916,"15.4":0.01374},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0013,"5.0-5.1":0.00074,"6.0-6.1":0.00019,"7.0-7.1":0.02318,"8.1-8.4":0.00389,"9.0-9.2":0.00037,"9.3":0.02207,"10.0-10.2":0.0128,"10.3":0.08085,"11.0-11.2":0.00705,"11.3-11.4":0.00334,"12.0-12.1":0.00538,"12.2-12.5":0.19768,"13.0-13.1":0.05415,"13.2":0.00797,"13.3":0.01076,"13.4-13.7":0.06212,"14.0-14.4":0.21307,"14.5-14.8":0.21325,"15.0-15.1":0.19601,"15.2-15.3":0.66053,"15.4":0.07696},P:{"4":0.06682,"5.0-5.4":0.01114,"6.2-6.4":0.01114,"7.2-7.4":0.02227,"8.2":0.01002,"9.2":0.02065,"10.1":0.02227,"11.1-11.2":0.02227,"12.0":0.01114,"13.0":0.03341,"14.0":0.10023,"15.0":0.03341,"16.0":0.47889},I:{"0":0,"3":0,"4":0.00057,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00606,"4.2-4.3":0.01951,"4.4":0,"4.4.3-4.4.4":0.07142},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06412,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":56.75448},S:{"2.5":0.1355},R:{_:"0"},M:{"0":0.3252},Q:{"10.4":0.01084},O:{"0":1.06774},H:{"0":3.93058}}; +module.exports={C:{"41":0.00456,"43":0.00913,"47":0.00913,"48":0.00913,"52":0.0867,"56":0.02738,"57":0.00456,"61":0.00456,"64":0.00456,"68":0.01369,"69":0.00913,"70":0.00456,"72":0.03194,"75":0.02282,"77":0.00913,"78":0.05476,"79":0.00456,"80":0.00456,"81":0.02738,"82":0.00456,"84":0.00913,"85":0.00456,"86":0.00913,"88":0.02738,"89":0.04107,"90":0.00456,"91":0.09126,"92":0.02738,"93":0.01369,"94":0.05932,"95":0.05476,"96":0.05476,"97":0.09126,"98":0.06845,"99":1.10425,"100":3.94243,"101":0.05019,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 44 45 46 49 50 51 53 54 55 58 59 60 62 63 65 66 67 71 73 74 76 83 87 102 103 3.5 3.6"},D:{"11":0.04563,"38":0.01825,"40":0.00913,"42":0.02738,"43":0.01369,"49":0.09582,"50":0.00913,"51":0.00456,"55":0.00456,"56":0.00913,"57":0.07301,"58":0.00913,"60":0.01369,"63":0.01369,"64":0.04563,"65":0.01369,"69":0.01369,"70":0.04107,"71":0.02282,"72":0.00456,"73":0.00456,"74":0.02738,"75":0.00913,"76":0.00913,"77":0.00456,"78":0.01825,"79":0.01825,"80":0.03194,"81":0.15514,"83":0.10951,"84":0.03194,"85":0.02282,"86":0.0867,"87":0.09126,"88":0.09582,"89":0.16427,"90":0.07301,"91":0.09582,"92":0.04107,"93":0.2464,"94":0.06388,"95":0.06388,"96":0.13233,"97":0.30572,"98":0.25553,"99":0.4198,"100":3.8603,"101":14.20006,"102":1.29133,"103":0.01825,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 44 45 46 47 48 52 53 54 59 61 62 66 67 68 104"},F:{"37":0.01369,"53":0.05019,"62":0.00913,"68":0.00913,"76":0.01369,"79":0.01369,"80":0.00456,"84":0.01825,"85":0.52931,"86":0.54756,"87":0.0365,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 63 64 65 66 67 69 70 71 72 73 74 75 77 78 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00456,"14":0.00913,"15":0.00913,"17":0.00913,"18":0.04563,"84":0.05019,"85":0.00913,"89":0.00913,"90":0.02282,"92":0.01825,"93":0.00913,"96":0.04107,"97":0.00456,"98":0.00913,"99":0.01825,"100":0.13233,"101":2.245,_:"13 16 79 80 81 83 86 87 88 91 94 95"},E:{"4":0,"13":0.00913,"14":0.01369,"15":0.00913,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02282,"12.1":0.01369,"13.1":0.05932,"14.1":0.06388,"15.1":0.01825,"15.2-15.3":0.01369,"15.4":0.18252,"15.5":0.02738},G:{"8":0.00215,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00351,"5.0-5.1":0.00098,"6.0-6.1":0.00312,"7.0-7.1":0.02791,"8.1-8.4":0.00078,"9.0-9.2":0.00234,"9.3":0.02479,"10.0-10.2":0.00625,"10.3":0.07906,"11.0-11.2":0.00625,"11.3-11.4":0.00234,"12.0-12.1":0.00976,"12.2-12.5":0.23035,"13.0-13.1":0.04509,"13.2":0.00273,"13.3":0.01659,"13.4-13.7":0.0732,"14.0-14.4":0.17783,"14.5-14.8":0.14406,"15.0-15.1":0.09019,"15.2-15.3":0.17334,"15.4":0.82924},P:{"4":0.01118,"5.0-5.4":0.01031,"6.2-6.4":0.03063,"7.2-7.4":0.01118,"8.2":0.02038,"9.2":0.06499,"10.1":0.02076,"11.1-11.2":0.08259,"12.0":0.03097,"13.0":0.05591,"14.0":0.03355,"15.0":0.04129,"16.0":0.43613},I:{"0":0,"3":0,"4":0.00133,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01731,"4.2-4.3":0.0253,"4.4":0,"4.4.3-4.4.4":0.11917},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05932,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01087},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.33709},Q:{"10.4":0.00544},O:{"0":0.97322},H:{"0":3.41787},L:{"0":58.37023},S:{"2.5":0.05437}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MH.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MH.js index 7c95fc266e4f78..e351eef6abc416 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MH.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MH.js @@ -1 +1 @@ -module.exports={C:{"78":0.00431,"86":0.00108,"97":0.16817,"98":0.65542,"99":0.00108,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 88 89 90 91 92 93 94 95 96 100 3.5 3.6"},D:{"49":0.00108,"68":0.00108,"73":0.16601,"75":0.0097,"76":0.01186,"77":0.00216,"78":0.00323,"79":0.07977,"83":0.00431,"84":0.03018,"90":0.00108,"91":0.00108,"92":0.00108,"93":0.0097,"95":0.00216,"96":0.01294,"97":0.1078,"98":1.37768,"99":5.70478,"100":0.06252,"101":0.00431,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 74 80 81 85 86 87 88 89 94 102 103"},F:{"82":0.00216,"83":0.02479,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.03881,"18":0.00108,"84":0.00323,"91":0.00108,"92":0.01186,"97":0.00108,"98":0.09271,"99":0.40748,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 89 90 93 94 95 96"},E:{"4":0,"13":0.00862,"14":0.0097,"15":0.01294,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.04312,"12.1":0.0097,"13.1":0.12613,"14.1":0.05282,"15.1":0.02264,"15.2-15.3":0.03989,"15.4":0.00431},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00099,"10.0-10.2":0,"10.3":0.06966,"11.0-11.2":0.27567,"11.3-11.4":0.00099,"12.0-12.1":0.01487,"12.2-12.5":0.09668,"13.0-13.1":0.00273,"13.2":0.00273,"13.3":0.00694,"13.4-13.7":0.05156,"14.0-14.4":0.14949,"14.5-14.8":0.47474,"15.0-15.1":0.46607,"15.2-15.3":0.55754,"15.4":0.30964},P:{"4":0.09596,"5.0-5.4":0.01114,"6.2-6.4":0.02096,"7.2-7.4":0.01066,"8.2":0.01002,"9.2":0.02058,"10.1":0.02227,"11.1-11.2":0.02133,"12.0":0.01066,"13.0":0.04265,"14.0":0.09596,"15.0":0.0853,"16.0":0.12491},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.00108,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":5.58744},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0.06245},H:{"0":0.00845}}; +module.exports={C:{"63":0.00481,"71":0.01442,"77":0.00481,"78":0.01442,"89":0.01442,"90":0.00481,"91":0.02884,"92":0.01442,"94":0.01922,"98":0.01442,"99":0.14418,"100":0.73532,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 72 73 74 75 76 79 80 81 82 83 84 85 86 87 88 93 95 96 97 101 102 103 3.5 3.6"},D:{"56":0.00481,"72":0.00481,"73":0.27394,"75":0.15379,"76":0.04806,"79":0.7209,"84":0.0817,"87":0.01922,"91":0.01442,"92":0.01922,"93":0.2403,"94":0.01922,"96":0.0817,"97":0.05287,"98":0.13937,"99":1.45141,"100":7.22342,"101":24.41448,"102":1.80225,"103":0.00481,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 77 78 80 81 83 85 86 88 89 90 95 104"},F:{"79":0.01442,"80":0.02884,"85":0.03364,"86":0.09612,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00481,"84":0.00481,"89":0.01442,"92":0.00481,"98":0.01442,"99":0.04325,"100":0.33161,"101":4.61857,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 90 91 93 94 95 96 97"},E:{"4":0,"14":0.05287,"15":0.01922,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00481,"11.1":0.02884,"12.1":0.01442,"13.1":1.06693,"14.1":0.18743,"15.1":0.14418,"15.2-15.3":0.04806,"15.4":0.79299,"15.5":0.28836},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.06863,"8.1-8.4":0,"9.0-9.2":0,"9.3":2.77473,"10.0-10.2":0,"10.3":0.0619,"11.0-11.2":0.18705,"11.3-11.4":0,"12.0-12.1":0.01077,"12.2-12.5":0.19243,"13.0-13.1":0.07401,"13.2":0.00538,"13.3":0.07401,"13.4-13.7":1.03346,"14.0-14.4":0.39697,"14.5-14.8":0.76029,"15.0-15.1":1.42908,"15.2-15.3":2.16784,"15.4":4.21592},P:{"4":0.02196,"5.0-5.4":0.02196,"6.2-6.4":0.02083,"7.2-7.4":0.07685,"8.2":0.02038,"9.2":0.04166,"10.1":0.01051,"11.1-11.2":0.0549,"12.0":0.01051,"13.0":0.04392,"14.0":0.04392,"15.0":0.09461,"16.0":0.3184},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00107,"4.4":0,"4.4.3-4.4.4":0.01451},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01442,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.24931},Q:{"10.4":0},O:{"0":0.25451},H:{"0":0},L:{"0":37.53703},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MK.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MK.js index fc52123fd56569..b58231fff1cff2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MK.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MK.js @@ -1 +1 @@ -module.exports={C:{"13":0.00703,"38":0.01405,"40":0.03162,"43":0.00351,"47":0.00703,"50":0.00351,"51":0.02108,"52":0.19322,"56":0.01054,"65":0.01054,"68":0.00351,"70":0.00351,"72":0.02108,"74":0.00351,"78":0.03513,"79":0.02108,"80":0.02108,"81":0.01405,"82":0.01757,"83":0.00703,"85":0.00351,"88":0.00703,"89":0.00703,"91":0.04216,"92":0.00703,"93":0.00351,"94":0.01054,"95":0.03162,"96":0.01405,"97":0.80799,"98":1.48249,"99":0.00703,_:"2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 44 45 46 48 49 53 54 55 57 58 59 60 61 62 63 64 66 67 69 71 73 75 76 77 84 86 87 90 100 3.5 3.6"},D:{"22":0.00703,"34":0.00703,"38":0.01054,"47":0.02459,"49":0.14052,"53":0.02108,"56":0.00703,"63":0.01757,"64":0.01054,"65":0.00351,"66":0.00703,"68":0.01054,"69":0.04216,"71":0.00703,"72":0.01405,"74":0.00703,"75":0.00351,"76":0.01054,"77":0.01054,"78":0.01054,"79":0.08431,"80":0.03162,"81":0.0281,"83":0.10188,"84":0.08783,"85":0.13701,"86":0.16511,"87":0.14755,"88":0.02459,"89":0.01757,"90":0.02108,"91":0.02108,"92":0.0527,"93":0.01405,"94":0.03864,"95":0.08431,"96":0.13349,"97":0.28104,"98":5.36435,"99":19.12477,"100":0.22132,"101":0.00703,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 57 58 59 60 61 62 67 70 73 102 103"},F:{"28":0.00703,"36":0.01054,"46":0.00703,"69":0.01054,"70":0.01405,"71":0.02108,"72":0.00351,"73":0.00703,"82":0.00351,"83":0.40751,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00351,"17":0.00351,"18":0.01405,"84":0.00703,"85":0.01054,"87":0.00351,"92":0.00703,"96":0.0281,"97":0.01405,"98":0.31617,"99":1.42979,_:"12 13 14 15 79 80 81 83 86 88 89 90 91 93 94 95"},E:{"4":0,"13":0.00703,"14":0.03513,"15":0.03513,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01054,"12.1":0.00351,"13.1":0.03162,"14.1":0.08431,"15.1":0.06675,"15.2-15.3":0.0281,"15.4":0.07026},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00119,"6.0-6.1":0,"7.0-7.1":0.01792,"8.1-8.4":0,"9.0-9.2":0.00358,"9.3":0.03941,"10.0-10.2":0.01314,"10.3":0.03941,"11.0-11.2":0.01433,"11.3-11.4":0.01911,"12.0-12.1":0.01911,"12.2-12.5":0.51955,"13.0-13.1":0.00956,"13.2":0.01314,"13.3":0.06569,"13.4-13.7":0.21021,"14.0-14.4":0.52075,"14.5-14.8":2.16302,"15.0-15.1":0.71663,"15.2-15.3":7.03488,"15.4":0.52194},P:{"4":0.10325,"5.0-5.4":0.01002,"6.2-6.4":0.06012,"7.2-7.4":0.02082,"8.2":0.01002,"9.2":0.02065,"10.1":0.01038,"11.1-11.2":0.09293,"12.0":0.02065,"13.0":0.10325,"14.0":0.10325,"15.0":0.0826,"16.0":1.95145},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00299,"4.2-4.3":0.00399,"4.4":0,"4.4.3-4.4.4":0.02545},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02108,"9":0.01757,"11":0.17565,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":49.42177},S:{"2.5":0},R:{_:"0"},M:{"0":0.09731},Q:{"10.4":0},O:{"0":0.01297},H:{"0":0.15968}}; +module.exports={C:{"40":0.01869,"43":0.00374,"47":0.00374,"48":0.00374,"51":0.01495,"52":0.14578,"56":0.00748,"61":0.01121,"65":0.01121,"68":0.01121,"72":0.02617,"78":0.01869,"79":0.02243,"80":0.05233,"81":0.01869,"82":0.04112,"83":0.01495,"84":0.00374,"88":0.00748,"89":0.00374,"91":0.03738,"93":0.00374,"94":0.00748,"95":0.01121,"96":0.00374,"97":0.01869,"98":0.01869,"99":0.42987,"100":1.86152,"101":0.01495,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 46 49 50 53 54 55 57 58 59 60 62 63 64 66 67 69 70 71 73 74 75 76 77 85 86 87 90 92 102 103 3.5 3.6"},D:{"22":0.00748,"31":0.00374,"34":0.00374,"38":0.00748,"41":0.00748,"47":0.0299,"48":0.01869,"49":0.14204,"53":0.02617,"55":0.00748,"56":0.00748,"63":0.16821,"64":0.01495,"65":0.00374,"66":0.00748,"68":0.01121,"69":0.02617,"70":0.00374,"71":0.00748,"72":0.01495,"73":0.00748,"74":0.01121,"75":0.01495,"76":0.00748,"77":0.02243,"78":0.00374,"79":0.16821,"80":0.01869,"81":0.02617,"83":0.17195,"84":0.26914,"85":0.35511,"86":0.38128,"87":0.20933,"88":0.02243,"89":0.01869,"90":0.02243,"91":0.02617,"92":0.0299,"93":0.01869,"94":0.01869,"95":0.03738,"96":0.0785,"97":0.05981,"98":0.12335,"99":0.20933,"100":4.95659,"101":18.86942,"102":2.03347,"103":0.00748,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 32 33 35 36 37 39 40 42 43 44 45 46 50 51 52 54 57 58 59 60 61 62 67 104"},F:{"28":0.01121,"31":0.00748,"36":0.01495,"46":0.00748,"68":0.03738,"70":0.01121,"71":0.03738,"72":0.00748,"73":0.00748,"84":0.00374,"85":0.69153,"86":0.69153,"87":0.03364,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.00374,"18":0.01495,"84":0.01869,"86":0.03738,"92":0.00374,"96":0.00374,"97":0.00748,"98":0.00374,"99":0.01495,"100":0.09345,"101":1.75686,_:"12 14 15 16 17 79 80 81 83 85 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01121,"14":0.02617,"15":0.01121,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02243,"12.1":0.00374,"13.1":0.02617,"14.1":0.08224,"15.1":0.02617,"15.2-15.3":0.0299,"15.4":0.24671,"15.5":0.04859},G:{"8":0,"3.2":0.00129,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00129,"6.0-6.1":0,"7.0-7.1":0.02187,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02573,"10.0-10.2":0.00386,"10.3":0.03474,"11.0-11.2":0.02573,"11.3-11.4":0.01287,"12.0-12.1":0.01287,"12.2-12.5":0.48248,"13.0-13.1":0.00643,"13.2":0.01029,"13.3":0.05404,"13.4-13.7":0.21358,"14.0-14.4":0.46576,"14.5-14.8":1.68547,"15.0-15.1":0.39371,"15.2-15.3":0.87747,"15.4":8.52642},P:{"4":0.18582,"5.0-5.4":0.01031,"6.2-6.4":0.03063,"7.2-7.4":0.01032,"8.2":0.02038,"9.2":0.06499,"10.1":0.02076,"11.1-11.2":0.08259,"12.0":0.03097,"13.0":0.08259,"14.0":0.08259,"15.0":0.04129,"16.0":0.77423},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00489,"4.2-4.3":0.00294,"4.4":0,"4.4.3-4.4.4":0.02348},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01121,"9":0.00748,"11":0.08224,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.11898},Q:{"10.4":0},O:{"0":0.01879},H:{"0":0.15414},L:{"0":47.67113},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ML.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ML.js index 517d9e5abf686b..c321e85e9b5f7f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ML.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ML.js @@ -1 +1 @@ -module.exports={C:{"30":0.00464,"43":0.00232,"47":0.00232,"49":0.00232,"52":0.00232,"63":0.01393,"68":0.00232,"72":0.01393,"78":0.00464,"89":0.01857,"90":0.00696,"91":0.01857,"93":0.00464,"94":0.00464,"95":0.00928,"96":0.17175,"97":0.78218,"98":1.82663,"99":0.01625,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 50 51 53 54 55 56 57 58 59 60 61 62 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 92 100 3.5 3.6"},D:{"40":0.00464,"43":0.00464,"49":0.00464,"50":0.00928,"52":0.00464,"57":0.00232,"63":0.00464,"64":0.00464,"74":0.00464,"76":0.00464,"77":0.01857,"79":0.00696,"80":0.01625,"83":0.00464,"85":0.00464,"86":0.00928,"87":0.01393,"88":0.00928,"89":0.00464,"90":0.0441,"91":0.01161,"92":0.02785,"93":0.16015,"94":0.00464,"95":0.00464,"96":1.09551,"97":0.08124,"98":2.31868,"99":7.63609,"100":0.07195,"101":0.00464,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 46 47 48 51 53 54 55 56 58 59 60 61 62 65 66 67 68 69 70 71 72 73 75 78 81 84 102 103"},F:{"62":0.00464,"82":0.00232,"83":0.01161,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00928,"13":0.00232,"14":0.00232,"15":0.00232,"16":0.00232,"17":0.00928,"18":0.21817,"84":0.01161,"85":0.00928,"86":0.00696,"88":0.00464,"89":0.04642,"90":0.01161,"92":0.01161,"96":0.01161,"97":0.01857,"98":0.61042,"99":2.1887,_:"79 80 81 83 87 91 93 94 95"},E:{"4":0,"12":0.00232,"13":0.00928,"14":0.03714,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01161,"12.1":0.00928,"13.1":0.02089,"14.1":0.06963,"15.1":0.00696,"15.2-15.3":0.01625,"15.4":0.01857},G:{"8":0.00146,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.05695,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04089,"10.0-10.2":0,"10.3":0.165,"11.0-11.2":0.10514,"11.3-11.4":0.02774,"12.0-12.1":0.04673,"12.2-12.5":5.50501,"13.0-13.1":0.00876,"13.2":0.07593,"13.3":0.04965,"13.4-13.7":0.54758,"14.0-14.4":1.14627,"14.5-14.8":1.77416,"15.0-15.1":1.53761,"15.2-15.3":3.14969,"15.4":0.35921},P:{"4":0.63797,"5.0-5.4":0.01114,"6.2-6.4":0.02096,"7.2-7.4":0.27783,"8.2":0.01002,"9.2":0.02058,"10.1":0.02227,"11.1-11.2":0.08232,"12.0":0.02058,"13.0":0.11319,"14.0":0.29841,"15.0":0.14406,"16.0":0.97754},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00087,"4.2-4.3":0.00349,"4.4":0,"4.4.3-4.4.4":0.09547},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05803,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.28412},N:{"10":0.02879,_:"11"},L:{"0":61.52571},S:{"2.5":0.05375},R:{_:"0"},M:{"0":0.06143},Q:{"10.4":0},O:{"0":0.90612},H:{"0":0.61068}}; +module.exports={C:{"37":0.00229,"43":0.00457,"49":0.00229,"56":0.01601,"67":0.00457,"68":0.00457,"72":0.00457,"78":0.00686,"89":0.00915,"91":0.00686,"93":0.00229,"95":0.00457,"96":0.00229,"97":0.00915,"98":0.00915,"99":0.99256,"100":1.63749,"101":0.01144,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 92 94 102 103 3.5 3.6"},D:{"11":0.00229,"28":0.00457,"43":0.00457,"57":0.00457,"62":0.00229,"63":0.00457,"64":0.00686,"71":0.00457,"72":0.00457,"74":0.05718,"76":0.00686,"79":0.00686,"80":0.00457,"83":0.00457,"84":0.00915,"86":0.00457,"87":0.00686,"88":0.00229,"89":0.00457,"90":0.02287,"91":0.02744,"92":0.00457,"93":0.07318,"94":0.00915,"95":0.00457,"96":0.02058,"97":0.01372,"98":0.01601,"99":0.04803,"100":1.78386,"101":7.93132,"102":0.47112,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 58 59 60 61 65 66 67 68 69 70 73 75 77 78 81 85 103 104"},F:{"79":0.00229,"85":0.04574,"86":0.12121,"87":0.00457,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02516,"13":0.00686,"16":0.01601,"17":0.00915,"18":0.35906,"84":0.00457,"85":0.00915,"89":0.0183,"90":0.0183,"92":0.00686,"94":0.00229,"95":0.00229,"98":0.00915,"99":0.03659,"100":0.25614,"101":2.42879,_:"14 15 79 80 81 83 86 87 88 91 93 96 97"},E:{"4":0,"7":0.00229,"13":0.00686,"14":0.09605,"15":0.00686,_:"0 5 6 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1 12.1","9.1":0.00229,"11.1":0.00686,"13.1":0.01372,"14.1":0.02973,"15.1":0.00457,"15.2-15.3":0.00686,"15.4":0.08691,"15.5":0.00457},G:{"8":0.00149,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.06844,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02678,"10.0-10.2":0,"10.3":0.08034,"11.0-11.2":0.06546,"11.3-11.4":0.02083,"12.0-12.1":0.07439,"12.2-12.5":2.76738,"13.0-13.1":0.0119,"13.2":0.00744,"13.3":0.5133,"13.4-13.7":0.15027,"14.0-14.4":1.57116,"14.5-14.8":1.47891,"15.0-15.1":1.41791,"15.2-15.3":1.81814,"15.4":4.80423},P:{"4":0.05207,"5.0-5.4":0.03124,"6.2-6.4":0.02083,"7.2-7.4":0.19788,"8.2":0.02038,"9.2":0.04166,"10.1":0.02076,"11.1-11.2":0.05207,"12.0":0.02083,"13.0":0.08332,"14.0":0.13539,"15.0":0.05207,"16.0":0.68737},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00097,"4.2-4.3":0.00484,"4.4":0,"4.4.3-4.4.4":0.07132},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0095,"11":0.05225,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.08484},Q:{"10.4":0.00771},O:{"0":1.04897},H:{"0":0.97119},L:{"0":63.56522},S:{"2.5":0.05399}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MM.js index 6ae03e0160ef7a..4f62f88d297b80 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MM.js @@ -1 +1 @@ -module.exports={C:{"29":0.0083,"30":0.0083,"35":0.00554,"36":0.0083,"37":0.00554,"38":0.00554,"39":0.00277,"41":0.0083,"42":0.00277,"43":0.0083,"44":0.00554,"45":0.00554,"46":0.00277,"47":0.00554,"48":0.0083,"49":0.00277,"50":0.00277,"51":0.00277,"52":0.01384,"53":0.00554,"54":0.00554,"55":0.00277,"56":0.01938,"57":0.01384,"58":0.00554,"60":0.13286,"61":0.00554,"62":0.00554,"66":0.0692,"67":0.00554,"68":0.00277,"72":0.02491,"78":0.03045,"79":0.00277,"80":0.00277,"81":0.00554,"82":0.00277,"83":0.00277,"84":0.01384,"85":0.00277,"87":0.00277,"88":0.01661,"89":0.01661,"90":0.00277,"91":0.12733,"92":0.01938,"93":0.01107,"94":0.02768,"95":0.05259,"96":0.04982,"97":0.87192,"98":1.70509,"99":0.12179,"100":0.0083,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31 32 33 34 40 59 63 64 65 69 70 71 73 74 75 76 77 86 3.5 3.6"},D:{"31":0.0083,"32":0.01107,"37":0.00554,"38":0.0083,"49":0.01107,"51":0.00277,"53":0.01107,"56":0.00554,"57":0.00277,"60":0.00277,"61":0.01107,"62":0.00554,"63":0.01384,"64":0.00277,"65":0.0083,"67":0.02491,"69":0.00277,"70":0.00554,"71":0.01107,"73":0.00277,"74":0.00554,"75":0.00554,"76":0.00277,"78":0.01384,"79":0.04982,"80":0.01661,"81":0.01938,"83":0.01661,"84":0.01661,"85":0.01107,"86":0.01938,"87":0.04152,"88":0.02214,"89":0.02214,"90":0.01661,"91":0.04706,"92":0.06366,"93":0.01661,"94":0.02214,"95":0.04706,"96":0.11072,"97":0.22698,"98":3.1749,"99":12.63315,"100":0.1467,"101":0.00554,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 33 34 35 36 39 40 41 42 43 44 45 46 47 48 50 52 54 55 58 59 66 68 72 77 102 103"},F:{"36":0.00277,"54":0.01107,"73":0.00277,"77":0.00277,"79":0.00277,"82":0.04706,"83":0.10518,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01107,"14":0.00554,"15":0.00277,"16":0.00554,"17":0.01107,"18":0.04706,"84":0.01661,"85":0.00554,"88":0.00277,"89":0.0083,"90":0.0083,"91":0.00554,"92":0.02491,"93":0.00277,"95":0.00554,"96":0.01107,"97":0.03598,"98":0.40136,"99":1.67741,_:"13 79 80 81 83 86 87 94"},E:{"4":0,"12":0.00277,"13":0.01938,"14":0.1384,"15":0.08581,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01107,"11.1":0.01661,"12.1":0.02491,"13.1":0.1301,"14.1":0.35154,"15.1":0.18546,"15.2-15.3":0.19653,"15.4":0.1384},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00089,"5.0-5.1":0.00445,"6.0-6.1":0.00356,"7.0-7.1":0.01424,"8.1-8.4":0.0089,"9.0-9.2":0.00445,"9.3":0.06674,"10.0-10.2":0.00534,"10.3":0.11124,"11.0-11.2":0.01869,"11.3-11.4":0.01157,"12.0-12.1":0.01335,"12.2-12.5":0.46452,"13.0-13.1":0.02492,"13.2":0.00712,"13.3":0.05695,"13.4-13.7":0.14505,"14.0-14.4":0.35952,"14.5-14.8":1.05897,"15.0-15.1":0.82671,"15.2-15.3":4.98162,"15.4":0.70657},P:{"4":0.28575,"5.0-5.4":0.0104,"6.2-6.4":0.01019,"7.2-7.4":0.02117,"8.2":0.13519,"9.2":0.0416,"10.1":0.0208,"11.1-11.2":0.04233,"12.0":0.01058,"13.0":0.10583,"14.0":0.0635,"15.0":0.05292,"16.0":1.15359},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00136,"4.2-4.3":0.0034,"4.4":0,"4.4.3-4.4.4":0.26283},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00379,"11":0.06818,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":53.39395},S:{"2.5":0},R:{_:"0"},M:{"0":0.28928},Q:{"10.4":0.05786},O:{"0":2.35763},H:{"0":0.67783}}; +module.exports={C:{"29":0.00294,"30":0.00882,"35":0.00588,"36":0.00588,"37":0.00588,"38":0.00588,"39":0.00294,"40":0.00882,"41":0.01176,"42":0.00294,"43":0.00294,"44":0.00588,"45":0.00588,"47":0.01176,"48":0.00588,"49":0.00294,"50":0.00588,"52":0.00588,"54":0.00294,"56":0.01176,"57":0.01176,"58":0.00588,"59":0.00294,"60":0.26745,"61":0.0147,"62":0.00588,"66":0.0147,"67":0.00294,"69":0.00588,"70":0.00588,"72":0.02057,"76":0.00294,"77":0.00588,"78":0.02939,"79":0.00588,"82":0.00294,"83":0.00588,"84":0.00882,"85":0.00588,"88":0.01763,"89":0.01176,"90":0.00294,"91":0.28214,"92":0.01176,"93":0.00882,"94":0.01176,"95":0.01763,"96":0.02939,"97":0.02645,"98":0.03527,"99":0.50257,"100":2.43643,"101":0.14107,"102":0.00588,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31 32 33 34 46 51 53 55 63 64 65 68 71 73 74 75 80 81 86 87 103 3.5 3.6"},D:{"11":0.00294,"31":0.00588,"32":0.00882,"37":0.00294,"38":0.00588,"40":0.00294,"47":0.00294,"49":0.00882,"53":0.01176,"56":0.00588,"58":0.00294,"61":0.00882,"62":0.00882,"63":0.0147,"64":0.00588,"65":0.00882,"67":0.00588,"68":0.00294,"69":0.00588,"70":0.0147,"71":0.0147,"72":0.00294,"74":0.01763,"75":0.02057,"76":0.00588,"78":0.00882,"79":0.09993,"80":0.02057,"81":0.01763,"83":0.01763,"84":0.01176,"85":0.01176,"86":0.0147,"87":0.02939,"88":0.03233,"89":0.02645,"90":0.01763,"91":0.02057,"92":0.07348,"93":0.01176,"94":0.02351,"95":0.02939,"96":0.06172,"97":0.07935,"98":0.07641,"99":0.13226,"100":2.83907,"101":12.42021,"102":1.28728,"103":0.0147,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 33 34 35 36 39 41 42 43 44 45 46 48 50 51 52 54 55 57 59 60 66 73 77 104"},F:{"28":0.01176,"36":0.00588,"73":0.00294,"79":0.00588,"82":0.00294,"83":0.00294,"84":0.00882,"85":0.19104,"86":0.27921,"87":0.02645,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0147,"13":0.00294,"14":0.00588,"15":0.00882,"16":0.00882,"17":0.00588,"18":0.07054,"83":0.00882,"84":0.00882,"85":0.00294,"88":0.00294,"89":0.01176,"90":0.00588,"91":0.00294,"92":0.02645,"95":0.00588,"96":0.00588,"97":0.0147,"98":0.01176,"99":0.01763,"100":0.07935,"101":2.23952,_:"79 80 81 86 87 93 94"},E:{"4":0,"11":0.00294,"12":0.00294,"13":0.01763,"14":0.13813,"15":0.05878,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02939,"11.1":0.0147,"12.1":0.02645,"13.1":0.14401,"14.1":0.27333,"15.1":0.09993,"15.2-15.3":0.09699,"15.4":1.04041,"15.5":0.09699},G:{"8":0.00084,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00167,"6.0-6.1":0.00167,"7.0-7.1":0.0159,"8.1-8.4":0.00837,"9.0-9.2":0.00586,"9.3":0.08789,"10.0-10.2":0.01004,"10.3":0.10295,"11.0-11.2":0.0226,"11.3-11.4":0.01758,"12.0-12.1":0.01674,"12.2-12.5":0.46706,"13.0-13.1":0.01172,"13.2":0.00837,"13.3":0.03264,"13.4-13.7":0.10798,"14.0-14.4":0.28877,"14.5-14.8":0.5809,"15.0-15.1":0.44363,"15.2-15.3":0.90985,"15.4":5.22306},P:{"4":0.18978,"5.0-5.4":0.0204,"6.2-6.4":0.03077,"7.2-7.4":0.02109,"8.2":0.02049,"9.2":0.01054,"10.1":0.01025,"11.1-11.2":0.04217,"12.0":0.01054,"13.0":0.04217,"14.0":0.04217,"15.0":0.04217,"16.0":0.49555},I:{"0":0,"3":0,"4":0.00108,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00108,"4.2-4.3":0.00539,"4.4":0,"4.4.3-4.4.4":0.28192},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07054,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.24004},Q:{"10.4":0.02824},O:{"0":2.24508},H:{"0":0.61492},L:{"0":55.58705},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MN.js index 5faafad1f7974d..b3cf6148efa4d2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MN.js @@ -1 +1 @@ -module.exports={C:{"52":0.06165,"78":0.00771,"87":0.00771,"88":0.02697,"89":0.01927,"90":0.00385,"91":0.02312,"92":0.00385,"94":0.00771,"95":0.01156,"96":0.02697,"97":0.52016,"98":1.06728,"99":0.03468,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 93 100 3.5 3.6"},D:{"39":0.00771,"49":0.03082,"53":0.00771,"54":0.00385,"62":0.00771,"63":0.00771,"65":0.00771,"66":0.00771,"67":0.00385,"69":0.00771,"70":0.01927,"71":0.00771,"72":0.00385,"73":0.00771,"74":0.01927,"76":0.01156,"78":0.03082,"79":0.03082,"80":0.01541,"81":0.00385,"83":0.01541,"84":0.03468,"85":0.01927,"86":0.02697,"87":0.04624,"88":0.01541,"89":0.02697,"90":0.03082,"91":0.04624,"92":0.06935,"93":0.09633,"94":0.04238,"95":0.04238,"96":0.23118,"97":0.35833,"98":5.67547,"99":20.62511,"100":0.23889,"101":0.07321,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 55 56 57 58 59 60 61 64 68 75 77 102 103"},F:{"82":0.00771,"83":0.18109,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00771,"16":0.00385,"18":0.01927,"84":0.01156,"89":0.00771,"90":0.00771,"91":0.01156,"92":0.02312,"94":0.00771,"95":0.00771,"96":0.03082,"97":0.06935,"98":0.59336,"99":2.26556,_:"13 14 15 17 79 80 81 83 85 86 87 88 93"},E:{"4":0,"13":0.02697,"14":0.15412,"15":0.0655,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00771,"10.1":0.01927,"11.1":0.02312,"12.1":0.03082,"13.1":0.06165,"14.1":0.39301,"15.1":0.24659,"15.2-15.3":0.13486,"15.4":0.08477},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00444,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08428,"10.0-10.2":0,"10.3":0.05988,"11.0-11.2":0.01774,"11.3-11.4":0.03327,"12.0-12.1":0.01774,"12.2-12.5":0.99583,"13.0-13.1":0.02661,"13.2":0.01331,"13.3":0.41253,"13.4-13.7":0.25284,"14.0-14.4":1.25976,"14.5-14.8":2.94092,"15.0-15.1":2.49734,"15.2-15.3":12.37138,"15.4":1.18435},P:{"4":0.26491,"5.0-5.4":0.05094,"6.2-6.4":0.01019,"7.2-7.4":0.21397,"8.2":0.01002,"9.2":0.08151,"10.1":0.04099,"11.1-11.2":0.06113,"12.0":0.03057,"13.0":0.1834,"14.0":0.20378,"15.0":0.17321,"16.0":3.9329},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00271,"4.2-4.3":0.00181,"4.4":0,"4.4.3-4.4.4":0.02622},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.03853,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":35.68277},S:{"2.5":0},R:{_:"0"},M:{"0":0.17826},Q:{"10.4":0},O:{"0":0.13523},H:{"0":0.15131}}; +module.exports={C:{"30":0.00405,"52":0.03242,"78":0.00811,"87":0.00405,"88":0.01621,"89":0.01621,"90":0.00405,"91":0.01621,"94":0.00405,"96":0.00811,"97":0.00811,"98":0.00811,"99":0.37288,"100":1.22401,"101":0.04864,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 92 93 95 102 103 3.5 3.6"},D:{"37":0.00405,"49":0.02837,"50":0.01216,"63":0.00811,"67":0.00811,"69":0.02027,"70":0.01216,"71":0.00405,"72":0.00405,"73":0.00405,"74":0.02837,"75":0.01621,"76":0.00405,"78":0.01216,"79":0.03242,"80":0.02027,"81":0.02027,"83":0.01621,"84":0.02432,"85":0.04053,"86":0.04864,"87":0.05269,"88":0.03242,"89":0.04053,"90":0.04053,"91":0.04864,"92":0.05674,"93":0.02027,"94":0.04053,"95":0.02837,"96":0.10538,"97":0.1378,"98":0.15807,"99":0.32424,"100":5.68636,"101":20.79189,"102":1.75495,"103":0.02027,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 68 77 104"},F:{"28":0.00405,"36":0.01216,"84":0.00811,"85":0.535,"86":0.52284,"87":0.04864,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.04458,"84":0.01621,"85":0.00405,"86":0.00811,"87":0.00405,"88":0.00405,"89":0.00811,"90":0.01216,"91":0.00811,"92":0.02432,"93":0.00811,"94":0.00811,"95":0.00811,"96":0.02432,"97":0.01216,"98":0.02027,"99":0.03648,"100":0.2067,"101":2.92627,_:"12 13 14 15 16 17 79 80 81 83"},E:{"4":0,"11":0.00811,"13":0.02432,"14":0.12564,"15":0.04458,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00405,"11.1":0.01621,"12.1":0.02837,"13.1":0.07295,"14.1":0.28776,"15.1":0.09727,"15.2-15.3":0.09727,"15.4":0.82276,"15.5":0.04864},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03817,"10.0-10.2":0,"10.3":0.05302,"11.0-11.2":0.01485,"11.3-11.4":0.03817,"12.0-12.1":0.01909,"12.2-12.5":0.86738,"13.0-13.1":0.04029,"13.2":0.01697,"13.3":0.10392,"13.4-13.7":0.26297,"14.0-14.4":1.03916,"14.5-14.8":2.13559,"15.0-15.1":1.39757,"15.2-15.3":2.88845,"15.4":12.28546},P:{"4":0.21417,"5.0-5.4":0.0204,"6.2-6.4":0.0102,"7.2-7.4":0.18357,"8.2":0.01019,"9.2":0.10199,"10.1":0.06042,"11.1-11.2":0.05099,"12.0":0.0204,"13.0":0.15298,"14.0":0.13258,"15.0":0.14278,"16.0":1.78475},I:{"0":0,"3":0,"4":0.00053,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0008,"4.2-4.3":0.0016,"4.4":0,"4.4.3-4.4.4":0.01491},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06485,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.15462},Q:{"10.4":0.01784},O:{"0":0.09515},H:{"0":0.19706},L:{"0":35.17046},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MO.js index 127679c69a2b5b..88fd42a7a7f89c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MO.js @@ -1 +1 @@ -module.exports={C:{"34":0.05564,"52":0.02996,"57":0.00428,"75":0.00856,"81":0.00428,"84":0.00428,"87":0.00428,"91":0.00856,"93":0.01284,"94":0.03424,"95":0.00856,"96":0.00856,"97":0.321,"98":0.67196,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 82 83 85 86 88 89 90 92 99 100 3.5 3.6"},D:{"22":0.0428,"26":0.03424,"30":0.0214,"34":0.07276,"38":0.15836,"45":0.00856,"47":0.00428,"49":0.08132,"53":0.0856,"55":0.0214,"57":0.00428,"58":0.01712,"60":0.00428,"61":0.09844,"62":0.00856,"63":0.00428,"65":0.00856,"66":0.00856,"67":0.0428,"68":0.0428,"69":0.03424,"70":0.02568,"71":0.09416,"72":0.02996,"73":0.0214,"74":0.03852,"75":0.03424,"76":0.03852,"77":0.02568,"78":0.03852,"79":0.37664,"80":0.05136,"81":0.06848,"83":0.03852,"84":0.00856,"85":0.00856,"86":0.02996,"87":0.11984,"88":0.01284,"89":0.07704,"90":0.0214,"91":0.06848,"92":0.17548,"93":0.03852,"94":0.05992,"95":0.0856,"96":0.3638,"97":0.93732,"98":5.3286,"99":16.02004,"100":0.15836,"101":0.02996,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 31 32 33 35 36 37 39 40 41 42 43 44 46 48 50 51 52 54 56 59 64 102 103"},F:{"28":0.00856,"36":0.03424,"46":0.05564,"73":0.00428,"83":0.03852,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.01284,"17":0.00856,"18":0.05136,"89":0.00856,"96":0.00856,"97":0.01284,"98":0.58208,"99":2.46528,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 90 91 92 93 94 95"},E:{"4":0,"11":0.00428,"12":0.00856,"13":0.16692,"14":0.79608,"15":0.27392,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02568,"11.1":0.04708,"12.1":0.11128,"13.1":0.5136,"14.1":2.82052,"15.1":0.51788,"15.2-15.3":0.60776,"15.4":0.29104},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.06485,"7.0-7.1":0.05512,"8.1-8.4":0.07134,"9.0-9.2":0.12322,"9.3":0.34046,"10.0-10.2":0.08431,"10.3":0.36316,"11.0-11.2":0.16537,"11.3-11.4":0.18158,"12.0-12.1":0.21401,"12.2-12.5":1.51101,"13.0-13.1":0.06809,"13.2":0.02918,"13.3":0.22373,"13.4-13.7":0.59662,"14.0-14.4":1.70231,"14.5-14.8":5.46037,"15.0-15.1":1.79635,"15.2-15.3":17.1042,"15.4":2.26002},P:{"4":0.81136,"5.0-5.4":0.01002,"6.2-6.4":0.06012,"7.2-7.4":0.02082,"8.2":0.01002,"9.2":0.06491,"10.1":0.01038,"11.1-11.2":0.02082,"12.0":0.07288,"13.0":0.04327,"14.0":0.07573,"15.0":0.02164,"16.0":2.07708},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00036,"4.2-4.3":0.00107,"4.4":0,"4.4.3-4.4.4":0.01573},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.50504,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":21.69736},S:{"2.5":0},R:{_:"0"},M:{"0":0.18873},Q:{"10.4":0.06863},O:{"0":0.4518},H:{"0":0.07039}}; +module.exports={C:{"34":0.04871,"51":0.06199,"52":0.1107,"53":0.06199,"54":0.031,"55":0.05756,"56":0.04428,"57":0.04428,"58":0.01771,"59":0.01328,"78":0.01328,"81":0.00443,"84":0.00443,"91":0.01328,"92":0.00886,"93":0.00443,"94":0.02657,"95":0.00443,"97":0.00443,"98":0.02657,"99":0.1904,"100":0.87674,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 85 86 87 88 89 90 96 101 102 103 3.5 3.6"},D:{"22":0.031,"26":0.03985,"30":0.01771,"34":0.05756,"38":0.16826,"39":0.01771,"40":0.01771,"41":0.01771,"42":0.01771,"43":0.02214,"44":0.01771,"45":0.03542,"46":0.02214,"47":0.02657,"48":0.02214,"49":0.10184,"50":0.01328,"51":0.01771,"52":0.01328,"53":0.11513,"54":0.01771,"55":0.03985,"56":0.02214,"57":0.02214,"58":0.04871,"59":0.02657,"60":0.02657,"61":0.12398,"62":0.03542,"63":0.02657,"64":0.02657,"65":0.04871,"66":0.00443,"67":0.01771,"68":0.03985,"69":0.01328,"70":0.02214,"71":0.03985,"72":0.01771,"73":0.02214,"74":0.04428,"75":0.02657,"76":0.02657,"77":0.04871,"78":0.07085,"79":0.42509,"80":0.04871,"81":0.0797,"83":0.03542,"84":0.02214,"85":0.00886,"86":0.04428,"87":0.08856,"88":0.01328,"89":0.05756,"90":0.01328,"91":0.03985,"92":0.18155,"93":0.031,"94":0.04871,"95":0.05314,"96":0.18155,"97":0.43837,"98":0.33653,"99":0.54907,"100":4.69811,"101":15.23675,"102":1.5188,"103":0.06199,"104":0.00886,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 31 32 33 35 36 37"},F:{"28":0.02657,"36":0.04428,"46":0.05756,"85":0.06642,"86":0.07085,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00886,"18":0.05756,"97":0.00443,"99":0.01771,"100":0.18598,"101":2.92691,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98"},E:{"4":0,"11":0.00443,"12":0.00886,"13":0.11956,"14":0.71291,"15":0.19483,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01771,"11.1":0.031,"12.1":0.06642,"13.1":0.34981,"14.1":2.09002,"15.1":0.23026,"15.2-15.3":0.27011,"15.4":5.66784,"15.5":0.29668},G:{"8":0.00598,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00299,"6.0-6.1":0.05683,"7.0-7.1":0.07777,"8.1-8.4":0.08375,"9.0-9.2":0.12862,"9.3":0.34397,"10.0-10.2":0.09571,"10.3":0.35893,"11.0-11.2":0.14357,"11.3-11.4":0.09272,"12.0-12.1":0.16152,"12.2-12.5":1.42972,"13.0-13.1":0.0658,"13.2":0.04187,"13.3":0.17049,"13.4-13.7":0.52942,"14.0-14.4":1.21138,"14.5-14.8":3.46364,"15.0-15.1":0.72982,"15.2-15.3":1.86043,"15.4":18.85558},P:{"4":0.84485,"5.0-5.4":0.01031,"6.2-6.4":0.03063,"7.2-7.4":0.01025,"8.2":0.02038,"9.2":0.06499,"10.1":0.02076,"11.1-11.2":0.03076,"12.0":0.04101,"13.0":0.03249,"14.0":0.04333,"15.0":0.02166,"16.0":0.67155},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00062,"4.2-4.3":0.00062,"4.4":0,"4.4.3-4.4.4":0.02662},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.05502,"9":0.07703,"10":0.02201,"11":0.59426,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.20059},Q:{"10.4":0.08358},O:{"0":0.47362},H:{"0":0.07385},L:{"0":22.79935},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MP.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MP.js index 6da3d726f7909c..1660867b74e1d1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MP.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MP.js @@ -1 +1 @@ -module.exports={C:{"52":0.1247,"78":0.06859,"97":0.4988,"98":0.82302,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 99 100 3.5 3.6"},D:{"29":0.02494,"49":0.02494,"53":0.06235,"63":0.20576,"67":0.00624,"73":0.01247,"76":0.01871,"78":0.01871,"79":0.18082,"80":0.00624,"83":0.11847,"87":0.11223,"89":0.01247,"90":0.01247,"91":0.04365,"92":0.14964,"93":0.03741,"94":0.04988,"95":0.08106,"96":0.30552,"97":1.55252,"98":9.34003,"99":29.0364,"100":0.17458,"101":0.06235,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 65 66 68 69 70 71 72 74 75 77 81 84 85 86 88 102 103"},F:{"82":0.01871,"83":0.51127,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.01247,"18":0.00624,"96":0.01247,"97":0.01871,"98":1.02254,"99":5.18752,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95"},E:{"4":0,"13":0.19329,"14":1.39664,"15":0.07482,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01871,"12.1":0.11223,"13.1":0.28058,"14.1":4.02781,"15.1":0.52374,"15.2-15.3":0.39281,"15.4":0.11847},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00098,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.3598,"10.0-10.2":0,"10.3":0.33137,"11.0-11.2":0.12647,"11.3-11.4":0.00588,"12.0-12.1":0.02353,"12.2-12.5":1.06666,"13.0-13.1":0.00784,"13.2":0.00196,"13.3":0.02549,"13.4-13.7":0.13922,"14.0-14.4":0.97941,"14.5-14.8":1.06764,"15.0-15.1":0.86176,"15.2-15.3":4.39116,"15.4":0.41372},P:{"4":0.10875,"5.0-5.4":0.0104,"6.2-6.4":0.04109,"7.2-7.4":0.0435,"8.2":0.13519,"9.2":0.04059,"10.1":0.01128,"11.1-11.2":0.06525,"12.0":0.05438,"13.0":0.0435,"14.0":0.02175,"15.0":0.16313,"16.0":3.66494},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06859,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":23.84533},S:{"2.5":0},R:{_:"0"},M:{"0":0.33517},Q:{"10.4":0.00377},O:{"0":0.03389},H:{"0":0.04992}}; +module.exports={C:{"52":0.08589,"96":0.01718,"97":0.00573,"99":0.39509,"100":1.39714,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 98 101 102 103 3.5 3.6"},D:{"29":0.01718,"53":0.04581,"63":0.19468,"67":0.05153,"71":0.01718,"76":0.01145,"79":0.32638,"83":0.04008,"87":0.1317,"90":0.02863,"91":0.05153,"92":0.01718,"93":0.05726,"94":0.02863,"95":0.04008,"96":0.2863,"97":0.05153,"98":0.66422,"99":1.11657,"100":11.29167,"101":24.0492,"102":1.86095,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 59 60 61 62 64 65 66 68 69 70 72 73 74 75 77 78 80 81 84 85 86 88 89 103 104"},F:{"69":0.00573,"84":0.00573,"85":0.81882,"86":1.89531,"87":0.05153,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.0229,"92":0.04581,"96":0.00573,"99":0.04581,"100":0.16605,"101":4.2945,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 97 98"},E:{"4":0,"13":0.66994,"14":0.73293,"15":0.06299,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.05726,"12.1":0.04581,"13.1":0.30348,"14.1":1.67772,"15.1":0.18323,"15.2-15.3":0.40082,"15.4":1.95829,"15.5":0.06299},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.02936,"9.3":0.1897,"10.0-10.2":0.00565,"10.3":0.12195,"11.0-11.2":0.11743,"11.3-11.4":0.01694,"12.0-12.1":0,"12.2-12.5":1.47692,"13.0-13.1":0,"13.2":0,"13.3":0.06549,"13.4-13.7":0.12985,"14.0-14.4":1.28609,"14.5-14.8":0.78588,"15.0-15.1":0.17953,"15.2-15.3":0.74862,"15.4":6.13688},P:{"4":0.13774,"5.0-5.4":0.02027,"6.2-6.4":0.07095,"7.2-7.4":0.02119,"8.2":0.01022,"9.2":0.02119,"10.1":0.1419,"11.1-11.2":0.02119,"12.0":0.011,"13.0":0.02119,"14.0":0.65692,"15.0":0.02119,"16.0":2.19325},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00023,"4.4":0,"4.4.3-4.4.4":0.01687},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01718,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.7353},Q:{"10.4":0},O:{"0":0.00855},H:{"0":0.06071},L:{"0":24.08326},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MQ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MQ.js index 4934691fe3a0fe..fcac6b44ba6844 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MQ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MQ.js @@ -1 +1 @@ -module.exports={C:{"48":0.00822,"52":0.01233,"61":0.00822,"78":0.03698,"82":0.11505,"83":0.00411,"84":0.01233,"88":0.00822,"89":0.01644,"91":0.05753,"94":0.01233,"95":0.02465,"96":0.04109,"97":2.13668,"98":2.95848,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 85 86 87 90 92 93 99 100 3.5 3.6"},D:{"23":0.00411,"38":0.01644,"39":0.00411,"49":0.01233,"53":0.00822,"63":0.00411,"65":0.02055,"67":0.00822,"71":0.00411,"74":0.00822,"75":0.00822,"76":0.01233,"77":0.02055,"78":0.00822,"79":0.02055,"83":0.02876,"84":0.01233,"85":0.00822,"86":0.05342,"87":0.08218,"88":0.00822,"89":0.01644,"90":0.00822,"91":0.01644,"92":0.01233,"93":0.01233,"94":0.01233,"95":0.02876,"96":0.14382,"97":0.40268,"98":5.53893,"99":15.31835,"100":0.09862,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 66 68 69 70 72 73 80 81 101 102 103"},F:{"28":0.00822,"40":0.0452,"46":0.00822,"83":0.29174,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.02055,"18":0.01644,"85":0.01233,"86":0.00411,"89":0.02055,"90":0.00822,"92":0.01644,"94":0.00411,"95":0.00822,"96":0.03287,"97":0.08629,"98":1.26146,"99":5.08694,_:"12 13 14 15 16 79 80 81 83 84 87 88 91 93"},E:{"4":0,"12":0.00822,"13":0.02876,"14":0.32872,"15":0.17258,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00822,"11.1":0.0452,"12.1":0.10273,"13.1":0.28763,"14.1":1.47924,"15.1":0.33283,"15.2-15.3":0.3205,"15.4":0.18901},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.13378,"10.0-10.2":0,"10.3":0.2245,"11.0-11.2":0.01076,"11.3-11.4":0.0246,"12.0-12.1":0.0123,"12.2-12.5":0.469,"13.0-13.1":0.0369,"13.2":0.00923,"13.3":0.07689,"13.4-13.7":0.14147,"14.0-14.4":1.00873,"14.5-14.8":1.83294,"15.0-15.1":1.101,"15.2-15.3":9.33387,"15.4":0.95953},P:{"4":0.04218,"5.0-5.4":0.01114,"6.2-6.4":0.02096,"7.2-7.4":0.06327,"8.2":0.01002,"9.2":0.01054,"10.1":0.02227,"11.1-11.2":0.32687,"12.0":0.04218,"13.0":0.36905,"14.0":0.31633,"15.0":0.14762,"16.0":3.90139},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02363,"4.4":0,"4.4.3-4.4.4":0.07652},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.17258,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":37.79011},S:{"2.5":0},R:{_:"0"},M:{"0":0.51841},Q:{"10.4":0},O:{"0":0.01178},H:{"0":0.13385}}; +module.exports={C:{"52":0.00792,"60":0.00396,"78":0.02772,"83":0.00396,"86":0.00792,"91":0.06336,"94":0.00396,"95":0.01188,"96":0.00396,"98":0.03168,"99":1.01376,"100":4.25304,"101":0.00396,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 87 88 89 90 92 93 97 102 103 3.5 3.6"},D:{"49":0.02772,"65":0.00792,"67":0.01584,"68":0.00396,"76":0.00792,"77":0.0198,"79":0.01584,"80":0.01188,"83":0.01188,"84":0.0396,"86":0.25344,"87":0.01188,"88":0.00396,"89":0.01188,"90":0.0198,"91":0.00792,"92":0.00792,"94":0.00792,"95":0.00792,"96":0.02772,"97":0.02376,"98":0.20196,"99":0.19404,"100":3.861,"101":15.9786,"102":1.3662,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 69 70 71 72 73 74 75 78 81 85 93 103 104"},F:{"40":0.01584,"85":0.44352,"86":0.3762,"87":0.00792,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00792,"16":0.01188,"17":0.00396,"18":0.02376,"85":0.00396,"90":0.00396,"92":0.00792,"96":0.00396,"97":0.01188,"98":0.00792,"99":0.04356,"100":0.43956,"101":4.68072,_:"12 13 14 79 80 81 83 84 86 87 88 89 91 93 94 95"},E:{"4":0,"13":0.0198,"14":0.20988,"15":0.13464,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.18216,"12.1":0.0792,"13.1":0.19008,"14.1":0.88308,"15.1":0.26928,"15.2-15.3":0.1386,"15.4":1.68696,"15.5":0.12276},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00157,"9.0-9.2":0,"9.3":0.22623,"10.0-10.2":0,"10.3":0.16339,"11.0-11.2":0.00157,"11.3-11.4":0.02357,"12.0-12.1":0.01728,"12.2-12.5":0.35662,"13.0-13.1":0.00786,"13.2":0.00471,"13.3":0.09112,"13.4-13.7":0.08484,"14.0-14.4":0.52629,"14.5-14.8":1.52233,"15.0-15.1":0.67554,"15.2-15.3":1.32438,"15.4":10.67671},P:{"4":0.02196,"5.0-5.4":0.02196,"6.2-6.4":0.02083,"7.2-7.4":0.07288,"8.2":0.02038,"9.2":0.01041,"10.1":0.01051,"11.1-11.2":0.20824,"12.0":0.01041,"13.0":0.28112,"14.0":0.22906,"15.0":0.09371,"16.0":1.73881},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.03706,"4.4":0,"4.4.3-4.4.4":0.12602},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11484,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.3624},Q:{"10.4":0},O:{"0":0.02416},H:{"0":0.21158},L:{"0":38.60772},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MR.js index f01202eeef477b..a425b74fc8eb33 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MR.js @@ -1 +1 @@ -module.exports={C:{"34":0.0039,"35":0.0026,"36":0.0052,"38":0.0026,"43":0.0013,"47":0.00909,"49":0.00779,"52":0.03377,"56":0.0039,"63":0.0026,"68":0.00909,"72":0.0052,"78":0.0026,"88":0.0039,"89":0.06495,"91":0.01169,"93":0.0026,"95":0.0039,"96":0.01429,"97":0.23772,"98":0.61832,"99":0.0026,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 37 39 40 41 42 44 45 46 48 50 51 53 54 55 57 58 59 60 61 62 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 90 92 94 100 3.5 3.6"},D:{"20":0.0013,"21":0.0013,"25":0.0039,"33":0.01689,"39":0.0039,"40":0.00909,"43":0.02858,"44":0.0052,"49":0.01689,"55":0.0013,"56":0.0065,"57":0.0013,"60":0.01689,"63":0.0039,"65":0.0065,"67":0.0052,"69":0.00909,"70":0.00779,"71":0.01039,"72":0.01169,"74":0.0052,"76":0.01429,"77":0.0026,"78":0.0065,"79":0.01299,"80":0.0052,"81":0.02598,"83":0.01689,"84":0.01949,"85":0.02598,"86":0.03637,"87":0.02858,"88":0.01429,"89":0.01169,"90":0.04287,"91":0.03118,"92":0.0039,"93":0.02858,"94":0.10132,"95":0.01169,"96":0.1312,"97":0.06495,"98":1.44449,"99":5.43112,"100":0.08184,"101":0.0065,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 22 23 24 26 27 28 29 30 31 32 34 35 36 37 38 41 42 45 46 47 48 50 51 52 53 54 58 59 61 62 64 66 68 73 75 102 103"},F:{"28":0.0039,"40":0.0013,"79":0.0026,"82":0.01559,"83":0.01819,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0052,"13":0.0052,"14":0.00779,"15":0.0013,"16":0.0065,"17":0.01819,"18":0.03248,"84":0.0026,"85":0.0052,"89":0.0039,"90":0.0065,"91":0.0026,"92":0.01039,"93":0.0013,"94":0.0026,"96":0.01039,"97":0.02078,"98":0.22213,"99":1.00023,_:"79 80 81 83 86 87 88 95"},E:{"4":0,"9":0.0013,"12":0.0026,"13":0.00909,"14":0.03897,"15":0.03767,_:"0 5 6 7 8 10 11 3.1 3.2 6.1 7.1 11.1","5.1":0.0013,"9.1":0.0039,"10.1":0.01039,"12.1":0.00909,"13.1":0.05975,"14.1":0.11561,"15.1":0.07794,"15.2-15.3":0.03248,"15.4":0.07794},G:{"8":0.00302,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03175,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04839,"10.0-10.2":0.00302,"10.3":0.0499,"11.0-11.2":0.21926,"11.3-11.4":0.09526,"12.0-12.1":0.07409,"12.2-12.5":2.96527,"13.0-13.1":0.07107,"13.2":0.03024,"13.3":0.23287,"13.4-13.7":0.3992,"14.0-14.4":1.99297,"14.5-14.8":2.39066,"15.0-15.1":1.81152,"15.2-15.3":4.25057,"15.4":0.44456},P:{"4":0.99616,"5.0-5.4":0.06037,"6.2-6.4":0.15093,"7.2-7.4":2.53569,"8.2":0.01002,"9.2":0.36224,"10.1":0.02012,"11.1-11.2":0.76473,"12.0":0.09056,"13.0":0.40249,"14.0":1.02635,"15.0":0.80498,"16.0":2.30426},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00038,"4.2-4.3":0.00163,"4.4":0,"4.4.3-4.4.4":0.02409},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00745,"11":0.08348,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":61.48244},S:{"2.5":0},R:{_:"0"},M:{"0":0.10441},Q:{"10.4":0},O:{"0":0.37414},H:{"0":0.83199}}; +module.exports={C:{"24":0.003,"30":0.0015,"34":0.02547,"36":0.003,"38":0.0015,"43":0.0015,"47":0.003,"49":0.00749,"52":0.02547,"56":0.003,"66":0.003,"68":0.003,"72":0.00449,"76":0.003,"78":0.00449,"81":0.00749,"88":0.01049,"89":0.00749,"91":0.00599,"92":0.0015,"95":0.003,"97":0.00449,"98":0.01798,"99":0.2277,"100":1.08006,"101":0.00749,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 31 32 33 35 37 39 40 41 42 44 45 46 48 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 77 79 80 82 83 84 85 86 87 90 93 94 96 102 103 3.5 3.6"},D:{"11":0.01049,"19":0.00749,"22":0.00749,"25":0.00599,"26":0.0015,"33":0.02547,"34":0.00599,"39":0.0015,"40":0.01198,"43":0.02696,"44":0.003,"46":0.01798,"49":0.03445,"50":0.003,"52":0.00599,"53":0.00449,"55":0.003,"58":0.00449,"60":0.00449,"63":0.01198,"65":0.02696,"66":0.00599,"67":0.0015,"69":0.003,"70":0.00749,"72":0.01348,"74":0.01198,"75":0.003,"76":0.01049,"77":0.00749,"78":0.01198,"79":0.01947,"80":0.01049,"81":0.01798,"83":0.03296,"84":0.01498,"85":0.00749,"86":0.02996,"87":0.01648,"88":0.00899,"89":0.01947,"90":0.02846,"91":0.04943,"92":0.00599,"93":0.02996,"94":0.10186,"95":0.00899,"96":0.03296,"97":0.02846,"98":0.05992,"99":0.15729,"100":1.38565,"101":5.68791,"102":0.53778,"103":0.003,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 23 24 27 28 29 30 31 32 35 36 37 38 41 42 45 47 48 51 54 56 57 59 61 62 64 68 71 73 104"},F:{"28":0.00599,"65":0.00899,"79":0.00449,"82":0.01798,"83":0.01198,"85":0.1468,"86":0.24567,"87":0.01798,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01947,"13":0.00599,"14":0.00449,"15":0.00449,"16":0.02097,"17":0.0719,"18":0.03445,"83":0.0015,"84":0.01348,"85":0.00449,"89":0.00599,"91":0.0015,"92":0.01498,"96":0.02846,"97":0.01348,"98":0.00599,"99":0.31009,"100":0.10336,"101":1.27779,_:"79 80 81 86 87 88 90 93 94 95"},E:{"4":0,"8":0.02547,"13":0.00449,"14":0.04194,"15":0.00599,_:"0 5 6 7 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.003,"12.1":0.02397,"13.1":0.04794,"14.1":0.11385,"15.1":0.06441,"15.2-15.3":0.03296,"15.4":0.20073,"15.5":0.01049},G:{"8":0.00159,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00318,"7.0-7.1":0.03179,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02226,"10.0-10.2":0,"10.3":0.04928,"11.0-11.2":0.08902,"11.3-11.4":0.1081,"12.0-12.1":0.05882,"12.2-12.5":1.99191,"13.0-13.1":0.04133,"13.2":0.02067,"13.3":0.12241,"13.4-13.7":0.25912,"14.0-14.4":2.08571,"14.5-14.8":2.1795,"15.0-15.1":1.31628,"15.2-15.3":2.2574,"15.4":5.26037},P:{"4":0.58411,"5.0-5.4":0.04028,"6.2-6.4":0.0705,"7.2-7.4":1.24878,"8.2":0.02038,"9.2":0.1712,"10.1":0.06042,"11.1-11.2":0.4834,"12.0":0.39276,"13.0":0.22156,"14.0":0.43305,"15.0":0.25177,"16.0":1.87317},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00111,"4.4":0,"4.4.3-4.4.4":0.0414},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.23668,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.17854},Q:{"10.4":0},O:{"0":0.26356},H:{"0":1.4086},L:{"0":61.76366},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MS.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MS.js index 37d16dd88be1fb..e116c1975e0f2c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MS.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MS.js @@ -1 +1 @@ -module.exports={C:{"59":0.07885,"91":0.01213,"97":0.13343,"98":2.47452,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 99 100 3.5 3.6"},D:{"69":0.01213,"75":0.01213,"83":0.01213,"87":0.10311,"90":0.01213,"91":0.01213,"92":0.03033,"93":0.06065,"95":0.03033,"96":0.80058,"97":0.33964,"98":8.78212,"99":36.29296,"100":0.18195,"101":0.01213,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 76 77 78 79 80 81 84 85 86 88 89 94 102 103"},F:{"83":0.06065,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.01213,"16":0.01213,"18":0.01213,"97":0.03033,"98":0.89156,"99":3.3964,_:"12 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96"},E:{"4":0,"13":0.11524,"14":0.01213,"15":0.17589,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1","11.1":0.01213,"13.1":0.01213,"14.1":0.53979,"15.1":0.34571,"15.2-15.3":0.17589,"15.4":0.17589},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.13902,"11.0-11.2":0,"11.3-11.4":0.02506,"12.0-12.1":0.00647,"12.2-12.5":0.03799,"13.0-13.1":0,"13.2":0.01859,"13.3":0.00647,"13.4-13.7":2.16287,"14.0-14.4":0.1075,"14.5-14.8":0.20934,"15.0-15.1":0.49303,"15.2-15.3":4.59813,"15.4":0.27804},P:{"4":0.094,"5.0-5.4":0.05094,"6.2-6.4":0.01019,"7.2-7.4":0.03073,"8.2":0.01002,"9.2":0.03525,"10.1":0.04099,"11.1-11.2":0.0705,"12.0":0.04098,"13.0":0.70499,"14.0":0.14342,"15.0":0.0235,"16.0":1.58623},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.06065,"11":0.14556,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":30.21551},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{"52":0.04773,"78":0.0179,"91":0.02983,"99":0.14318,"100":0.6145,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 101 102 103 3.5 3.6"},D:{"49":0.02983,"76":0.19091,"79":0.0179,"85":0.06563,"87":0.0179,"92":0.0179,"95":0.45342,"99":0.86507,"100":5.76912,"101":37.49631,"102":3.06056,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 80 81 83 84 86 88 89 90 91 93 94 96 97 98 103 104"},F:{"84":0.02983,"85":0.04773,"86":0.22074,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.0179,"16":0.0179,"18":0.0179,"96":0.06563,"97":0.02983,"98":0.09546,"99":0.04773,"100":0.19091,"101":5.89441,_:"12 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95"},E:{"4":0,"13":0.0179,"14":0.19091,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 15.5","12.1":0.0179,"13.1":0.12529,"14.1":0.40569,"15.1":0.0179,"15.4":1.24093},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0.05905,"10.3":0.02952,"11.0-11.2":0,"11.3-11.4":0.04428,"12.0-12.1":0,"12.2-12.5":0.2229,"13.0-13.1":0,"13.2":0,"13.3":0.01476,"13.4-13.7":0.44506,"14.0-14.4":0.02952,"14.5-14.8":0.10407,"15.0-15.1":0.17861,"15.2-15.3":0.93514,"15.4":5.31709},P:{"4":0.04393,"5.0-5.4":0.0204,"6.2-6.4":0.0102,"7.2-7.4":0.07687,"8.2":0.01019,"9.2":0.01034,"10.1":0.06042,"11.1-11.2":0.12406,"12.0":0.03102,"13.0":0.03295,"14.0":0.08785,"15.0":0.03102,"16.0":0.70284},I:{"0":0,"3":0,"4":0.00371,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.03261},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.02018},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":32.3321},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MT.js index 1531e7db3f4580..f8b354a12387dd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MT.js @@ -1 +1 @@ -module.exports={C:{"52":0.02761,"68":0.03313,"78":0.02208,"84":0.01656,"91":0.01104,"95":0.01104,"96":0.02761,"97":0.61283,"98":0.88336,"99":0.01104,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 92 93 94 100 3.5 3.6"},D:{"26":0.00552,"49":0.03865,"67":0.01656,"69":0.28709,"70":0.01104,"72":0.01656,"76":0.01656,"77":0.12146,"78":0.01656,"79":0.04969,"80":0.06625,"81":0.01104,"83":0.01656,"84":0.01104,"85":0.00552,"86":0.01656,"87":0.09386,"88":0.00552,"89":0.01656,"90":0.01104,"91":0.02208,"92":0.02761,"93":0.02761,"94":0.02208,"95":0.04417,"96":0.1325,"97":0.4196,"98":9.64519,"99":28.97973,"100":0.02208,"101":0.02208,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 71 73 74 75 102 103"},F:{"28":0.00552,"37":0.01656,"67":0.25397,"72":0.02761,"83":0.59075,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.01656,"15":0.00552,"18":0.03865,"90":0.00552,"92":0.01104,"95":0.00552,"96":0.02761,"97":0.06073,"98":1.35265,"99":5.39954,_:"12 13 16 17 79 80 81 83 84 85 86 87 88 89 91 93 94"},E:{"4":0,"13":0.03313,"14":0.24292,"15":0.14355,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.05521,"12.1":0.02761,"13.1":0.19324,"14.1":0.66804,"15.1":0.34782,"15.2-15.3":0.24845,"15.4":0.11594},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00448,"8.1-8.4":0.0112,"9.0-9.2":0.00784,"9.3":0.04143,"10.0-10.2":0.00672,"10.3":0.36284,"11.0-11.2":0.0168,"11.3-11.4":0.01232,"12.0-12.1":0.01568,"12.2-12.5":0.27661,"13.0-13.1":0.00672,"13.2":0.00112,"13.3":0.0168,"13.4-13.7":0.07615,"14.0-14.4":0.49162,"14.5-14.8":1.56781,"15.0-15.1":0.67528,"15.2-15.3":7.12568,"15.4":0.47594},P:{"4":0.09596,"5.0-5.4":0.01114,"6.2-6.4":0.02096,"7.2-7.4":0.01066,"8.2":0.01002,"9.2":0.02058,"10.1":0.02227,"11.1-11.2":0.02133,"12.0":0.01066,"13.0":0.04265,"14.0":0.09596,"15.0":0.0853,"16.0":2.27113},I:{"0":0,"3":0,"4":0.0009,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00179,"4.4":0,"4.4.3-4.4.4":0.0421},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.18771,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":24.50567},S:{"2.5":0},R:{_:"0"},M:{"0":0.16572},Q:{"10.4":0},O:{"0":0.11198},H:{"0":0.12721}}; +module.exports={C:{"48":0.00537,"52":0.06976,"68":0.00537,"78":0.01073,"91":0.02146,"97":0.01073,"98":0.0161,"99":0.32196,"100":1.54541,"101":0.02146,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 102 103 3.5 3.6"},D:{"49":0.04293,"63":0.00537,"69":0.44538,"70":0.01073,"72":0.01073,"76":0.02146,"77":0.18781,"78":0.03756,"79":0.05366,"80":0.0161,"83":0.02683,"84":0.02146,"85":0.01073,"86":0.0161,"87":0.05366,"88":0.0161,"89":0.02146,"90":0.00537,"91":0.01073,"92":0.02146,"93":0.04829,"94":0.02146,"95":0.0161,"96":0.04293,"97":0.04293,"98":0.11269,"99":0.66002,"100":6.2031,"101":26.8622,"102":2.84935,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 71 73 74 75 81 103 104"},F:{"28":0.0161,"46":0.01073,"85":0.61172,"86":0.72978,"87":0.0161,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.0161,"18":0.0161,"85":0.00537,"92":0.00537,"94":0.00537,"96":0.00537,"97":0.01073,"98":0.00537,"99":0.03756,"100":0.27367,"101":6.27822,_:"12 13 15 16 17 79 80 81 83 84 86 87 88 89 90 91 93 95"},E:{"4":0,"13":0.02683,"14":0.20391,"15":0.10195,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.12342,"12.1":0.0322,"13.1":0.2361,"14.1":0.56343,"15.1":0.31659,"15.2-15.3":0.13415,"15.4":2.05518,"15.5":0.16635},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00423,"8.1-8.4":0.00141,"9.0-9.2":0,"9.3":0.08181,"10.0-10.2":0.00141,"10.3":0.38648,"11.0-11.2":0.00282,"11.3-11.4":0.00987,"12.0-12.1":0.01552,"12.2-12.5":0.25812,"13.0-13.1":0.00987,"13.2":0.00141,"13.3":0.01693,"13.4-13.7":0.06911,"14.0-14.4":0.38648,"14.5-14.8":1.35691,"15.0-15.1":0.41187,"15.2-15.3":1.12418,"15.4":9.95819},P:{"4":0.09461,"5.0-5.4":0.03124,"6.2-6.4":0.02083,"7.2-7.4":0.19788,"8.2":0.02038,"9.2":0.04166,"10.1":0.01051,"11.1-11.2":0.01051,"12.0":0.01051,"13.0":0.03154,"14.0":0.06308,"15.0":0.09461,"16.0":0.94615},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00434,"4.4":0,"4.4.3-4.4.4":0.042},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12878,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.28731},Q:{"10.4":0},O:{"0":0.12512},H:{"0":0.13162},L:{"0":28.28134},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MU.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MU.js index 8b433ab73bb9a5..80fa4755b65077 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MU.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MU.js @@ -1 +1 @@ -module.exports={C:{"24":0.01391,"34":0.00695,"52":0.14603,"68":0.00348,"69":0.00695,"78":0.03129,"84":0.00348,"91":0.0452,"92":0.03477,"94":0.00348,"95":0.00695,"96":0.02086,"97":0.81362,"98":1.5125,"99":0.00695,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 93 100 3.5 3.6"},D:{"26":0.00695,"38":0.05216,"39":0.00348,"47":0.00695,"49":0.03477,"51":0.00695,"53":0.00695,"55":0.00348,"58":0.00348,"65":0.00695,"67":0.02434,"68":0.00348,"69":0.00695,"71":0.01739,"73":0.01043,"74":0.00348,"75":0.01391,"76":0.01043,"77":0.00695,"78":0.00695,"79":0.15647,"80":0.02782,"81":0.01739,"83":0.02086,"84":0.04868,"85":0.02086,"86":0.01391,"87":0.03129,"88":0.01391,"89":0.01043,"90":0.02086,"91":0.02086,"92":0.06259,"93":0.03129,"94":0.01391,"95":0.02086,"96":0.12865,"97":0.37899,"98":4.84694,"99":16.63049,"100":0.1356,"101":0.01739,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 48 50 52 54 56 57 59 60 61 62 63 64 66 70 72 102 103"},F:{"28":0.06259,"80":0.00348,"82":0.00695,"83":0.21557,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01043,"15":0.00348,"16":0.00695,"17":0.01043,"18":0.02782,"83":0.00695,"84":0.02434,"91":0.00695,"92":0.01043,"96":0.05216,"97":0.02434,"98":0.57023,"99":2.20094,_:"13 14 79 80 81 85 86 87 88 89 90 93 94 95"},E:{"4":0,"12":0.02086,"13":0.01739,"14":0.20514,"15":0.05563,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02086,"12.1":0.04868,"13.1":0.24339,"14.1":0.39986,"15.1":0.1217,"15.2-15.3":0.25034,"15.4":0.11474},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02312,"6.0-6.1":0,"7.0-7.1":0.02312,"8.1-8.4":0.00748,"9.0-9.2":0.00068,"9.3":0.06324,"10.0-10.2":0.0034,"10.3":0.08296,"11.0-11.2":0.0034,"11.3-11.4":0.00612,"12.0-12.1":0.0102,"12.2-12.5":0.34272,"13.0-13.1":0.00816,"13.2":0.0034,"13.3":0.01428,"13.4-13.7":0.10132,"14.0-14.4":0.1836,"14.5-14.8":0.72421,"15.0-15.1":0.47464,"15.2-15.3":4.21875,"15.4":0.5032},P:{"4":0.20386,"5.0-5.4":0.06037,"6.2-6.4":0.15093,"7.2-7.4":0.23444,"8.2":0.01002,"9.2":0.01019,"10.1":0.02039,"11.1-11.2":0.12232,"12.0":0.04077,"13.0":0.17328,"14.0":0.30579,"15.0":0.12232,"16.0":4.24028},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00188,"4.2-4.3":0.00113,"4.4":0,"4.4.3-4.4.4":0.03613},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15994,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":50.65911},S:{"2.5":0},R:{_:"0"},M:{"0":0.25444},Q:{"10.4":0},O:{"0":0.63935},H:{"0":0.40765}}; +module.exports={C:{"34":0.00701,"48":0.0035,"52":0.05256,"69":0.0035,"78":0.01752,"80":0.01752,"89":0.0035,"91":0.05256,"92":0.02102,"96":0.01051,"97":0.02102,"98":0.03504,"99":0.40296,"100":1.96925,"101":0.01051,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 79 81 82 83 84 85 86 87 88 90 93 94 95 102 103 3.5 3.6"},D:{"26":0.01051,"34":0.0035,"38":0.01051,"39":0.00701,"48":0.0035,"49":0.02453,"53":0.01051,"55":0.01051,"58":0.01051,"62":0.01402,"63":0.0035,"67":0.0035,"73":0.0035,"74":0.01051,"77":0.01051,"78":0.01051,"79":0.1752,"80":0.03504,"81":0.01752,"83":0.01752,"84":0.09461,"85":0.01402,"86":0.01051,"87":0.06307,"88":0.01051,"89":0.02803,"90":0.01051,"91":0.04555,"92":0.04555,"93":0.02102,"94":0.00701,"95":0.01402,"96":0.04555,"97":0.09811,"98":0.0876,"99":0.31186,"100":3.74227,"101":16.45128,"102":1.64688,"103":0.00701,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 40 41 42 43 44 45 46 47 50 51 52 54 56 57 59 60 61 64 65 66 68 69 70 71 72 75 76 104"},F:{"28":0.05957,"85":0.438,"86":0.45902,"87":0.01752,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00701,"17":0.01051,"18":0.05256,"83":0.01051,"84":0.01402,"91":0.00701,"92":0.00701,"93":0.0035,"97":0.00701,"98":0.01752,"99":0.03504,"100":0.12264,"101":2.90131,_:"12 13 14 15 79 80 81 85 86 87 88 89 90 94 95 96"},E:{"4":0,"12":0.01402,"13":0.01402,"14":0.15768,"15":0.05957,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0035,"11.1":0.01402,"12.1":0.04205,"13.1":0.20323,"14.1":0.29434,"15.1":0.09461,"15.2-15.3":0.10512,"15.4":1.12128,"15.5":0.16118},G:{"8":0.00218,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03121,"6.0-6.1":0,"7.0-7.1":0.01742,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07403,"10.0-10.2":0.00073,"10.3":0.06532,"11.0-11.2":0.00653,"11.3-11.4":0.00435,"12.0-12.1":0.01234,"12.2-12.5":0.26781,"13.0-13.1":0.00653,"13.2":0.00218,"13.3":0.01161,"13.4-13.7":0.07258,"14.0-14.4":0.12629,"14.5-14.8":0.42168,"15.0-15.1":0.19378,"15.2-15.3":0.61329,"15.4":5.32506},P:{"4":0.15279,"5.0-5.4":0.04028,"6.2-6.4":0.0705,"7.2-7.4":0.20372,"8.2":0.01019,"9.2":0.02037,"10.1":0.06042,"11.1-11.2":0.10186,"12.0":0.05093,"13.0":0.19354,"14.0":0.24447,"15.0":0.08149,"16.0":1.94554},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00162,"4.2-4.3":0.00162,"4.4":0,"4.4.3-4.4.4":0.05521},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10862,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.30527},Q:{"10.4":0},O:{"0":0.66249},H:{"0":0.38739},L:{"0":52.30388},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MV.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MV.js index 3267f98dcbe5e7..15d3a4d4a28ccb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MV.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MV.js @@ -1 +1 @@ -module.exports={C:{"3":0.0028,"39":0.0056,"40":0.0056,"57":0.0028,"68":0.0028,"72":0.0056,"78":0.0056,"80":0.02801,"85":0.02241,"88":0.0056,"89":0.17086,"90":0.0084,"91":0.0084,"95":0.0084,"96":0.0112,"97":0.41175,"98":0.75347,"99":0.02521,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 81 82 83 84 86 87 92 93 94 100 3.5","3.6":0.0056},D:{"21":0.0056,"29":0.0028,"31":0.0028,"33":0.0028,"39":0.0112,"40":0.0084,"41":0.0028,"42":0.0056,"43":0.0112,"44":0.0112,"45":0.0112,"46":0.0112,"47":0.0084,"49":0.01961,"51":0.02801,"63":0.0112,"65":0.0028,"67":0.0056,"69":0.0028,"70":0.0112,"71":0.0028,"73":0.01681,"74":0.01401,"75":0.0028,"76":0.0084,"77":0.0056,"78":0.03361,"79":0.01681,"80":0.02241,"81":0.0028,"83":0.08683,"84":0.02521,"85":0.0084,"86":0.0112,"87":0.02801,"88":0.0028,"89":0.02521,"90":0.0112,"91":0.03921,"92":0.07283,"93":0.0112,"94":0.02241,"95":0.04202,"96":0.12324,"97":0.40615,"98":4.63285,"99":15.08058,"100":0.14845,"101":0.01681,"102":0.0056,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 30 32 34 35 36 37 38 48 50 52 53 54 55 56 57 58 59 60 61 62 64 66 68 72 103"},F:{"28":0.0028,"31":0.0028,"83":0.09804,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0056,"15":0.0084,"16":0.0084,"18":0.01681,"84":0.0084,"89":0.0056,"91":0.0028,"92":0.01681,"93":0.0056,"95":0.0084,"96":0.01681,"97":0.09243,"98":0.30811,"99":1.19603,_:"13 14 17 79 80 81 83 85 86 87 88 90 94"},E:{"4":0.0028,"8":0.0056,"9":0.05042,"13":0.0084,"14":0.09523,"15":0.08683,_:"0 5 6 7 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.0056,"12.1":0.02801,"13.1":0.06722,"14.1":0.2801,"15.1":0.10364,"15.2-15.3":0.12324,"15.4":0.06442},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0041,"6.0-6.1":0.0041,"7.0-7.1":0.01639,"8.1-8.4":0.0123,"9.0-9.2":0.00205,"9.3":0.03484,"10.0-10.2":0,"10.3":0.03484,"11.0-11.2":0.09222,"11.3-11.4":0.01639,"12.0-12.1":0.05943,"12.2-12.5":0.39551,"13.0-13.1":0.02254,"13.2":0.0123,"13.3":0.04508,"13.4-13.7":0.21312,"14.0-14.4":0.6947,"14.5-14.8":2.3669,"15.0-15.1":1.94475,"15.2-15.3":13.05997,"15.4":1.44678},P:{"4":0.68047,"5.0-5.4":0.01114,"6.2-6.4":0.02096,"7.2-7.4":0.03144,"8.2":0.01002,"9.2":0.01047,"10.1":0.02227,"11.1-11.2":0.01048,"12.0":0.03144,"13.0":0.06288,"14.0":0.03144,"15.0":0.11529,"16.0":1.60353},I:{"0":0,"3":0.00534,"4":0.0347,"2.1":0.00534,"2.2":0.01869,"2.3":0.02403,"4.1":0.01602,"4.2-4.3":0.0347,"4.4":0,"4.4.3-4.4.4":0.26428},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.0084,"8":0.07843,"9":0.04762,"10":0.01681,"11":0.07283,_:"6 5.5"},J:{"7":0,"10":0.0144},N:{"10":0.02879,_:"11"},L:{"0":47.64896},S:{"2.5":0.0144},R:{_:"0"},M:{"0":0.66222},Q:{"10.4":0},O:{"0":0.87816},H:{"0":0.64739}}; +module.exports={C:{"34":0.00806,"52":0.00269,"53":0.00269,"55":0.00537,"57":0.00269,"78":0.0188,"80":0.01074,"81":0.06715,"83":0.01612,"89":0.01074,"90":0.00537,"91":0.01074,"93":0.00806,"94":0.00269,"95":0.00269,"96":0.00269,"97":0.00537,"98":0.0188,"99":0.12087,"100":0.80311,"101":0.02686,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 54 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 82 84 85 86 87 88 92 102 103 3.5 3.6"},D:{"38":0.0188,"43":0.00269,"49":0.00537,"61":0.00537,"63":0.00806,"65":0.00269,"67":0.00269,"69":0.01074,"71":0.00269,"73":0.00806,"74":0.00806,"76":0.00269,"79":0.00806,"80":0.01343,"83":0.05103,"85":0.06446,"86":0.15579,"87":0.01343,"88":0.00537,"89":0.02686,"90":0.00537,"91":0.08864,"92":0.02149,"93":0.01074,"94":0.01612,"95":0.08595,"96":0.03223,"97":0.04029,"98":0.05103,"99":0.17459,"100":3.65565,"101":14.60647,"102":1.34031,"103":0.01074,"104":0.02149,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 62 64 66 68 70 72 75 77 78 81 84"},F:{"28":0.00537,"75":0.00537,"85":0.16116,"86":0.14773,"87":0.01074,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00269,"15":0.01074,"16":0.01074,"18":0.01612,"84":0.00269,"89":0.01074,"92":0.00537,"94":0.00269,"95":0.00269,"96":0.00269,"97":0.01343,"98":0.01343,"99":0.01343,"100":0.09401,"101":1.26511,_:"13 14 17 79 80 81 83 85 86 87 88 90 91 93"},E:{"4":0,"12":0.00537,"13":0.0188,"14":0.11013,"15":0.04835,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.04566,"13.1":0.07252,"14.1":0.19876,"15.1":0.09938,"15.2-15.3":0.08864,"15.4":0.8434,"15.5":0.06715},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00618,"6.0-6.1":0.00618,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04325,"10.0-10.2":0,"10.3":0.01648,"11.0-11.2":0.00412,"11.3-11.4":0.02265,"12.0-12.1":0.01854,"12.2-12.5":0.26567,"13.0-13.1":0.01854,"13.2":0.01236,"13.3":0.03913,"13.4-13.7":0.14004,"14.0-14.4":0.5437,"14.5-14.8":1.36748,"15.0-15.1":0.85879,"15.2-15.3":2.29835,"15.4":14.93928},P:{"4":0.01044,"5.0-5.4":0.01031,"6.2-6.4":0.03063,"7.2-7.4":0.02087,"8.2":0.02038,"9.2":0.06313,"10.1":0.02076,"11.1-11.2":0.03131,"12.0":0.01044,"13.0":0.03131,"14.0":0.05219,"15.0":0.03131,"16.0":0.83496},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.13895},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02417,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.48997},Q:{"10.4":0},O:{"0":0.68011},H:{"0":0.51234},L:{"0":49.71448},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MW.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MW.js index 0e1971e15dc81d..7c98bbb140bf01 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MW.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MW.js @@ -1 +1 @@ -module.exports={C:{"27":0.00629,"29":0.00944,"34":0.00315,"39":0.00629,"40":0.00629,"42":0.00315,"45":0.00315,"52":0.00944,"56":0.00315,"59":0.00315,"61":0.02831,"63":0.04718,"64":0.00944,"69":0.00944,"71":0.00629,"72":0.01887,"78":0.03145,"80":0.00629,"81":0.00629,"82":0.00315,"84":0.00629,"88":0.0346,"89":0.00944,"91":0.04089,"93":0.00944,"94":0.02831,"95":0.01573,"96":0.03145,"97":1.00326,"98":2.12288,"99":0.16354,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 30 31 32 33 35 36 37 38 41 43 44 46 47 48 49 50 51 53 54 55 57 58 60 62 65 66 67 68 70 73 74 75 76 77 79 83 85 86 87 90 92 100 3.5 3.6"},D:{"28":0.01258,"39":0.00315,"40":0.00629,"49":0.02202,"50":0.03145,"55":0.00315,"56":0.01258,"57":0.00629,"62":0.00629,"63":0.02202,"64":0.00629,"66":0.00315,"67":0.00315,"68":0.00315,"69":0.01258,"70":0.01258,"71":0.01258,"72":0.01573,"73":0.00315,"74":0.03145,"75":0.01258,"76":0.00629,"77":0.00315,"78":0.01258,"79":0.03145,"80":0.01887,"81":0.03145,"83":0.02202,"84":0.00944,"85":0.02202,"86":0.04718,"87":0.10379,"88":0.05347,"89":0.02831,"90":0.01573,"91":0.02516,"92":0.07863,"93":0.0346,"94":0.0346,"95":0.05976,"96":0.23902,"97":0.22959,"98":2.63866,"99":11.34716,"100":0.22644,"101":0.00315,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 41 42 43 44 45 46 47 48 51 52 53 54 58 59 60 61 65 102 103"},F:{"34":0.00315,"36":0.00944,"42":0.00944,"47":0.00315,"54":0.00629,"64":0.17298,"68":0.00629,"74":0.00629,"77":0.00315,"79":0.02516,"81":0.00629,"82":0.01258,"83":0.05347,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 43 44 45 46 48 49 50 51 52 53 55 56 57 58 60 62 63 65 66 67 69 70 71 72 73 75 76 78 80 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.00315},B:{"12":0.08492,"13":0.05661,"14":0.02516,"15":0.07234,"16":0.05032,"17":0.05032,"18":0.2233,"80":0.01573,"84":0.04089,"85":0.03774,"86":0.01258,"89":0.04089,"90":0.04718,"91":0.01573,"92":0.06605,"93":0.00944,"94":0.01887,"95":0.03145,"96":0.08492,"97":0.05347,"98":0.72335,"99":2.65124,_:"79 81 83 87 88"},E:{"4":0,"10":0.00944,"13":0.01258,"14":0.03774,"15":0.00629,_:"0 5 6 7 8 9 11 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.01887,"10.1":0.00629,"12.1":0.01573,"13.1":0.04403,"14.1":0.19814,"15.1":0.01887,"15.2-15.3":0.04089,"15.4":0.00944},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00153,"5.0-5.1":0.00109,"6.0-6.1":0,"7.0-7.1":0.00349,"8.1-8.4":0.00022,"9.0-9.2":0.00654,"9.3":0.16335,"10.0-10.2":0.00065,"10.3":0.05845,"11.0-11.2":0.00829,"11.3-11.4":0.01919,"12.0-12.1":0.00502,"12.2-12.5":0.21438,"13.0-13.1":0.00807,"13.2":0.00196,"13.3":0.0277,"13.4-13.7":0.03991,"14.0-14.4":0.27632,"14.5-14.8":0.36486,"15.0-15.1":0.21656,"15.2-15.3":0.64968,"15.4":0.11232},P:{"4":0.18865,"5.0-5.4":0.01114,"6.2-6.4":0.01048,"7.2-7.4":0.17817,"8.2":0.01002,"9.2":0.0524,"10.1":0.02227,"11.1-11.2":0.0524,"12.0":0.02096,"13.0":0.12577,"14.0":0.13625,"15.0":0.16769,"16.0":1.22623},I:{"0":0,"3":0,"4":0.0007,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00491,"4.2-4.3":0.00771,"4.4":0,"4.4.3-4.4.4":0.13746},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.17612,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01371},N:{"10":0.00745,_:"11"},L:{"0":53.13821},S:{"2.5":0.03427},R:{_:"0"},M:{"0":0.24674},Q:{"10.4":0.00685},O:{"0":7.47086},H:{"0":7.34546}}; +module.exports={C:{"29":0.00877,"34":0.00292,"47":0.00585,"52":0.00585,"59":0.00585,"61":0.00877,"63":0.04092,"69":0.00292,"72":0.00877,"78":0.01169,"80":0.00877,"81":0.01169,"82":0.00585,"87":0.00877,"88":0.01754,"91":0.02631,"94":0.00877,"95":0.00585,"96":0.00585,"97":0.01462,"98":0.02631,"99":0.53783,"100":1.92918,"101":0.09061,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 60 62 64 65 66 67 68 70 71 73 74 75 76 77 79 83 84 85 86 89 90 92 93 102 103 3.5 3.6"},D:{"11":0.00585,"25":0.00585,"40":0.00585,"42":0.00292,"49":0.00292,"50":0.00585,"55":0.00292,"57":0.00877,"61":0.00877,"63":0.00585,"64":0.01169,"67":0.00585,"69":0.01169,"70":0.01754,"71":0.02631,"74":0.01462,"75":0.03215,"76":0.00585,"77":0.00292,"78":0.00877,"79":0.02338,"80":0.01754,"81":0.02631,"83":0.00292,"84":0.01169,"85":0.00585,"86":0.04677,"87":0.10523,"88":0.04092,"89":0.02046,"90":0.01169,"91":0.07308,"92":0.06431,"93":0.02631,"94":0.00877,"95":0.02631,"96":0.13154,"97":0.08184,"98":0.07308,"99":0.21046,"100":2.40271,"101":8.77485,"102":0.75706,"103":0.00292,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 43 44 45 46 47 48 51 52 53 54 56 58 59 60 62 65 66 68 72 73 104"},F:{"34":0.00292,"36":0.00585,"37":0.00877,"42":0.00877,"45":0.00292,"54":0.01169,"64":0.04092,"69":0.01169,"79":0.02923,"80":0.00292,"81":0.00585,"82":0.00292,"84":0.00585,"85":0.37999,"86":0.5846,"87":0.05846,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 38 39 40 41 43 44 46 47 48 49 50 51 52 53 55 56 57 58 60 62 63 65 66 67 68 70 71 72 73 74 75 76 77 78 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.07308,"13":0.02631,"14":0.02923,"15":0.04677,"16":0.04092,"17":0.04969,"18":0.2163,"81":0.00292,"84":0.03508,"85":0.02046,"86":0.00585,"88":0.00292,"89":0.02923,"90":0.04385,"91":0.00585,"92":0.08477,"94":0.00292,"95":0.01169,"96":0.01462,"97":0.01462,"98":0.04092,"99":0.09938,"100":0.31861,"101":2.60147,_:"79 80 83 87 93"},E:{"4":0,"9":0.00585,"10":0.00585,"12":0.00585,"14":0.03215,"15":0.00292,_:"0 5 6 7 8 11 13 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.01462,"10.1":0.00292,"12.1":0.00585,"13.1":0.04385,"14.1":0.12277,"15.1":0.00877,"15.2-15.3":0.01462,"15.4":0.08184,"15.5":0.00585},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00124,"5.0-5.1":0.00082,"6.0-6.1":0.01421,"7.0-7.1":0.0103,"8.1-8.4":0,"9.0-9.2":0.00185,"9.3":0.13202,"10.0-10.2":0.00062,"10.3":0.03069,"11.0-11.2":0.00124,"11.3-11.4":0.00721,"12.0-12.1":0.00947,"12.2-12.5":0.1625,"13.0-13.1":0.00515,"13.2":0.00309,"13.3":0.01071,"13.4-13.7":0.06261,"14.0-14.4":0.23562,"14.5-14.8":0.2039,"15.0-15.1":0.16024,"15.2-15.3":0.1625,"15.4":0.84341},P:{"4":0.18938,"5.0-5.4":0.01031,"6.2-6.4":0.03063,"7.2-7.4":0.14729,"8.2":0.02038,"9.2":0.06313,"10.1":0.02076,"11.1-11.2":0.02104,"12.0":0.03097,"13.0":0.03156,"14.0":0.17886,"15.0":0.08417,"16.0":0.87323},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00257,"4.2-4.3":0.00836,"4.4":0,"4.4.3-4.4.4":0.10229},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00877,"11":0.09938,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.01415},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.38216},Q:{"10.4":0.01415},O:{"0":7.12654},H:{"0":7.83235},L:{"0":56.84131},S:{"2.5":0.04246}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MX.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MX.js index 9388573d803ebe..a1c5c07ec16465 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MX.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MX.js @@ -1 +1 @@ -module.exports={C:{"4":0.70501,"34":0.00959,"52":0.02878,"56":0.0048,"66":0.0048,"73":0.0048,"78":0.03357,"84":0.00959,"88":0.00959,"90":0.00959,"91":0.02398,"93":0.0048,"94":0.09112,"95":0.01918,"96":0.04796,"97":0.5947,"98":0.94002,"99":0.00959,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 85 86 87 89 92 100 3.5 3.6"},D:{"22":0.00959,"35":0.02398,"38":0.01439,"47":0.0048,"49":0.07674,"52":0.00959,"53":0.0048,"60":0.0048,"63":0.0048,"65":0.01439,"66":0.02398,"67":0.01918,"68":0.0048,"69":0.00959,"70":0.0048,"72":0.00959,"73":0.0048,"74":0.00959,"75":0.00959,"76":0.04316,"77":0.00959,"78":0.01439,"79":0.07674,"80":0.01918,"81":0.02398,"83":0.01918,"84":0.01918,"85":0.01918,"86":0.02398,"87":0.08633,"88":0.02398,"89":0.02398,"90":0.03837,"91":0.08633,"92":0.06714,"93":0.25898,"94":0.06235,"95":0.05276,"96":0.20143,"97":0.36929,"98":8.67117,"99":25.14543,"100":0.01439,"101":0.0048,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 40 41 42 43 44 45 46 48 50 51 54 55 56 57 58 59 61 62 64 71 102 103"},F:{"28":0.0048,"82":0.0048,"83":0.43644,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01439,"15":0.00959,"16":0.0048,"17":0.00959,"18":0.02878,"85":0.00959,"90":0.0048,"91":0.0048,"92":0.00959,"94":0.0048,"95":0.00959,"96":0.01918,"97":0.16786,"98":0.82491,"99":2.6426,_:"13 14 79 80 81 83 84 86 87 88 89 93"},E:{"4":0,"12":0.0048,"13":0.01918,"14":0.13429,"15":0.07674,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.01439,"10.1":0.0048,"11.1":0.01918,"12.1":0.04316,"13.1":0.16306,"14.1":0.41246,"15.1":0.13908,"15.2-15.3":0.16306,"15.4":0.08633},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00676,"6.0-6.1":0.00169,"7.0-7.1":0.01183,"8.1-8.4":0.00507,"9.0-9.2":0.01436,"9.3":0.06673,"10.0-10.2":0.00084,"10.3":0.05575,"11.0-11.2":0.01014,"11.3-11.4":0.03548,"12.0-12.1":0.01098,"12.2-12.5":0.41136,"13.0-13.1":0.01014,"13.2":0.00338,"13.3":0.02956,"13.4-13.7":0.1039,"14.0-14.4":0.27283,"14.5-14.8":1.17664,"15.0-15.1":0.48991,"15.2-15.3":5.13565,"15.4":0.5879},P:{"4":0.11591,"5.0-5.4":0.06037,"6.2-6.4":0.15093,"7.2-7.4":0.07376,"8.2":0.01002,"9.2":0.03074,"10.1":0.04099,"11.1-11.2":0.04215,"12.0":0.01054,"13.0":0.04215,"14.0":0.04215,"15.0":0.03161,"16.0":0.91672},I:{"0":0,"3":0,"4":0.00104,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00156,"4.2-4.3":0.00416,"4.4":0,"4.4.3-4.4.4":0.02966},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00959,"11":0.16786,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":41.53676},S:{"2.5":0.0052},R:{_:"0"},M:{"0":0.18734},Q:{"10.4":0},O:{"0":0.05204},H:{"0":0.18229}}; +module.exports={C:{"4":0.84093,"34":0.00475,"52":0.02376,"56":0.00475,"66":0.0095,"73":0.00475,"78":0.03326,"88":0.01425,"90":0.0095,"91":0.02851,"94":0.06176,"95":0.00475,"96":0.10927,"97":0.0095,"98":0.01425,"99":0.28981,"100":1.24951,"101":0.01425,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 84 85 86 87 89 92 93 102 103 3.5 3.6"},D:{"22":0.00475,"38":0.0095,"49":0.06651,"52":0.019,"63":0.00475,"65":0.0095,"66":0.02376,"67":0.01425,"69":0.0095,"70":0.00475,"72":0.00475,"73":0.00475,"74":0.0095,"75":0.0095,"76":0.02851,"77":0.01425,"78":0.0095,"79":0.07127,"80":0.01425,"81":0.019,"83":0.01425,"84":0.02376,"85":0.019,"86":0.019,"87":0.06651,"88":0.02851,"89":0.019,"90":0.02851,"91":0.09027,"92":0.05701,"93":0.02851,"94":0.03801,"95":0.02851,"96":0.09502,"97":0.09977,"98":0.11402,"99":0.30882,"100":6.56113,"101":24.52941,"102":2.50853,"103":0.00475,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 64 68 71 104"},F:{"28":0.00475,"84":0.00475,"85":0.55112,"86":0.54161,"87":0.03801,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01425,"15":0.0095,"16":0.00475,"17":0.0095,"18":0.019,"85":0.00475,"92":0.0095,"94":0.00475,"95":0.00475,"96":0.0095,"97":0.03326,"98":0.01425,"99":0.13303,"100":0.16629,"101":3.33995,_:"13 14 79 80 81 83 84 86 87 88 89 90 91 93"},E:{"4":0,"13":0.01425,"14":0.10927,"15":0.04751,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.0095,"10.1":0.00475,"11.1":0.01425,"12.1":0.03326,"13.1":0.14728,"14.1":0.30882,"15.1":0.07602,"15.2-15.3":0.07127,"15.4":0.87418,"15.5":0.11402},G:{"8":0.0009,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0054,"6.0-6.1":0.0009,"7.0-7.1":0.0144,"8.1-8.4":0.0063,"9.0-9.2":0.01711,"9.3":0.06032,"10.0-10.2":0.0009,"10.3":0.05852,"11.0-11.2":0.0081,"11.3-11.4":0.03151,"12.0-12.1":0.0072,"12.2-12.5":0.38533,"13.0-13.1":0.0081,"13.2":0.0036,"13.3":0.02881,"13.4-13.7":0.08193,"14.0-14.4":0.23408,"14.5-14.8":0.82197,"15.0-15.1":0.21607,"15.2-15.3":0.6032,"15.4":6.40383},P:{"4":0.0945,"5.0-5.4":0.04028,"6.2-6.4":0.0705,"7.2-7.4":0.0735,"8.2":0.01019,"9.2":0.02051,"10.1":0.06042,"11.1-11.2":0.0315,"12.0":0.02051,"13.0":0.021,"14.0":0.0315,"15.0":0.021,"16.0":0.3465},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00212,"4.2-4.3":0.00564,"4.4":0,"4.4.3-4.4.4":0.03949},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00475,"11":0.14728,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.17325},Q:{"10.4":0},O:{"0":0.05775},H:{"0":0.18887},L:{"0":43.29847},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MY.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MY.js index 56f17da6840dd5..2c88fbbc27db7a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MY.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MY.js @@ -1 +1 @@ -module.exports={C:{"34":0.01716,"39":0.00858,"52":0.02575,"60":0.02146,"72":0.00429,"78":0.01716,"88":0.00429,"89":0.00429,"91":0.03433,"92":0.00429,"93":0.00429,"94":0.00858,"95":0.01287,"96":0.01716,"97":0.4291,"98":0.9526,"99":0.02146,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 90 100 3.5 3.6"},D:{"22":0.00858,"34":0.02146,"38":0.07724,"47":0.00858,"49":0.06437,"53":0.06437,"55":0.06007,"56":0.02575,"61":0.13731,"62":0.00858,"65":0.01287,"66":0.00429,"67":0.00858,"68":0.00858,"69":0.01287,"70":0.02146,"71":0.01287,"72":0.01287,"73":0.01716,"74":0.01716,"75":0.03433,"76":0.01287,"77":0.00858,"78":0.01287,"79":0.29179,"80":0.02146,"81":0.05149,"83":0.04291,"84":0.03004,"85":0.03862,"86":0.0472,"87":0.07295,"88":0.03433,"89":0.03862,"90":0.02575,"91":0.08582,"92":0.15448,"93":0.06866,"94":0.05578,"95":0.04291,"96":0.21026,"97":0.45056,"98":5.42812,"99":25.27399,"100":0.07724,"101":0.02575,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 57 58 59 60 63 64 102 103"},F:{"28":0.03433,"36":0.0472,"40":0.00858,"46":0.05149,"82":0.00429,"83":0.12873,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00858,"84":0.00429,"92":0.00429,"96":0.00858,"97":0.01287,"98":0.35615,"99":1.86229,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"8":0.00858,"13":0.03004,"14":0.1888,"15":0.13302,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00858,"11.1":0.01287,"12.1":0.02575,"13.1":0.1416,"14.1":0.69943,"15.1":0.26175,"15.2-15.3":0.27462,"15.4":0.20597},G:{"8":0.00138,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00275,"5.0-5.1":0.00688,"6.0-6.1":0.01101,"7.0-7.1":0.02202,"8.1-8.4":0.03303,"9.0-9.2":0.02202,"9.3":0.24499,"10.0-10.2":0.01514,"10.3":0.16929,"11.0-11.2":0.02065,"11.3-11.4":0.0234,"12.0-12.1":0.03716,"12.2-12.5":0.64963,"13.0-13.1":0.03303,"13.2":0.01101,"13.3":0.07157,"13.4-13.7":0.17755,"14.0-14.4":0.64963,"14.5-14.8":1.58279,"15.0-15.1":1.40662,"15.2-15.3":7.00831,"15.4":1.56214},P:{"4":0.68047,"5.0-5.4":0.01114,"6.2-6.4":0.01048,"7.2-7.4":0.05234,"8.2":0.01002,"9.2":0.01047,"10.1":0.02227,"11.1-11.2":0.04188,"12.0":0.01047,"13.0":0.06281,"14.0":0.07328,"15.0":0.06281,"16.0":1.40282},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00152,"4.2-4.3":0.00304,"4.4":0,"4.4.3-4.4.4":0.01827},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12015,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.00745,_:"11"},L:{"0":40.42261},S:{"2.5":0},R:{_:"0"},M:{"0":0.11987},Q:{"10.4":0.00571},O:{"0":0.86191},H:{"0":0.50257}}; +module.exports={C:{"34":0.02392,"39":0.00797,"52":0.01994,"60":0.02791,"66":0.00399,"78":0.01595,"79":0.00399,"81":0.00399,"88":0.00399,"91":0.03987,"94":0.00399,"95":0.00797,"96":0.00399,"97":0.00797,"98":0.01595,"99":0.23125,"100":1.20407,"101":0.02392,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 80 82 83 84 85 86 87 89 90 92 93 102 103 3.5 3.6"},D:{"22":0.00797,"34":0.02392,"38":0.08373,"47":0.01196,"49":0.07177,"53":0.07974,"55":0.06778,"56":0.03588,"58":0.00399,"60":0.00399,"61":0.00399,"62":0.00797,"63":0.00399,"65":0.01196,"66":0.00797,"67":0.01196,"68":0.00797,"69":0.01196,"70":0.02791,"71":0.01196,"72":0.01196,"73":0.01595,"74":0.01595,"75":0.0319,"76":0.01196,"77":0.00797,"78":0.01595,"79":0.37478,"80":0.02392,"81":0.05582,"83":0.05981,"84":0.0319,"85":0.04386,"86":0.06379,"87":0.07177,"88":0.0319,"89":0.03987,"90":0.01994,"91":0.08373,"92":0.15549,"93":0.02392,"94":0.03588,"95":0.02791,"96":0.09569,"97":0.27909,"98":0.11961,"99":0.23922,"100":4.10262,"101":21.27862,"102":1.65461,"103":0.02791,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 57 59 64 104"},F:{"28":0.04784,"36":0.05981,"40":0.01196,"46":0.06379,"85":0.23922,"86":0.23523,"87":0.00797,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00797,"84":0.00399,"98":0.00797,"99":0.01196,"100":0.09968,"101":2.00546,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 91 92 93 94 95 96 97"},E:{"4":0,"12":0.00399,"13":0.0319,"14":0.17543,"15":0.08373,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00797,"11.1":0.01595,"12.1":0.02392,"13.1":0.13157,"14.1":0.56217,"15.1":0.13556,"15.2-15.3":0.13157,"15.4":1.99749,"15.5":0.11961},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00281,"5.0-5.1":0.00844,"6.0-6.1":0.01125,"7.0-7.1":0.02531,"8.1-8.4":0.03516,"9.0-9.2":0.03234,"9.3":0.24328,"10.0-10.2":0.01406,"10.3":0.18141,"11.0-11.2":0.01969,"11.3-11.4":0.02813,"12.0-12.1":0.03797,"12.2-12.5":0.64547,"13.0-13.1":0.02672,"13.2":0.00984,"13.3":0.05906,"13.4-13.7":0.15047,"14.0-14.4":0.48375,"14.5-14.8":1.09969,"15.0-15.1":0.59484,"15.2-15.3":1.08703,"15.4":9.27002},P:{"4":0.86487,_:"5.0-5.4 6.2-6.4 8.2 10.1","7.2-7.4":0.0521,"9.2":0.01042,"11.1-11.2":0.0521,"12.0":0.01042,"13.0":0.0521,"14.0":0.0521,"15.0":0.0521,"16.0":0.84403},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.002,"4.2-4.3":0.00401,"4.4":0,"4.4.3-4.4.4":0.02406},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14353,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":42.71637},S:{"2.5":0},R:{_:"0"},M:{"0":0.15035},Q:{"10.4":0.00601},O:{"0":0.99231},H:{"0":0.60922}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MZ.js index e2223f26b5d694..9d100910c5fb53 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/MZ.js @@ -1 +1 @@ -module.exports={C:{"35":0.00439,"59":0.00878,"61":0.00878,"63":0.00878,"66":0.01755,"72":0.00439,"78":0.00878,"81":0.01316,"88":0.02194,"89":0.00439,"90":0.00878,"91":0.01755,"92":0.00439,"94":0.00439,"95":0.01316,"96":0.02633,"97":0.67575,"98":1.4612,"99":0.00878,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 67 68 69 70 71 73 74 75 76 77 79 80 82 83 84 85 86 87 93 100 3.5 3.6"},D:{"33":0.02633,"40":0.00878,"43":0.03072,"49":0.00878,"56":0.00439,"60":0.00439,"63":0.03949,"65":0.00878,"68":0.00878,"69":0.00439,"70":0.00878,"72":0.00439,"73":0.01755,"74":0.0351,"77":0.00878,"78":0.00878,"79":0.03949,"80":0.02194,"81":0.3642,"83":0.01755,"85":0.00439,"86":0.06143,"87":0.05704,"88":0.01755,"89":0.02633,"90":0.0351,"91":0.0351,"92":0.01316,"93":0.25012,"94":0.03949,"95":0.03072,"96":0.11409,"97":0.32032,"98":3.78684,"99":13.57208,"100":0.12725,"101":0.02633,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 41 42 44 45 46 47 48 50 51 52 53 54 55 57 58 59 61 62 64 66 67 71 75 76 84 102 103"},F:{"34":0.00439,"53":0.00878,"79":0.01316,"80":0.01755,"82":0.02633,"83":0.06582,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03072,"13":0.00878,"14":0.00439,"15":0.00878,"16":0.00878,"17":0.01316,"18":0.14042,"84":0.00878,"88":0.04388,"89":0.06143,"90":0.00878,"91":0.01755,"92":0.06143,"93":0.00439,"95":0.01316,"96":0.01755,"97":0.15797,"98":0.44758,"99":1.81663,_:"79 80 81 83 85 86 87 94"},E:{"4":0,"13":0.01316,"14":0.01755,"15":0.00439,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00439,"12.1":0.00439,"13.1":0.06582,"14.1":0.04388,"15.1":0.02194,"15.2-15.3":0.02633,"15.4":0.01755},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00053,"6.0-6.1":0,"7.0-7.1":0.01114,"8.1-8.4":0.00424,"9.0-9.2":0,"9.3":0.02917,"10.0-10.2":0.00212,"10.3":0.03023,"11.0-11.2":0.01167,"11.3-11.4":0.03978,"12.0-12.1":0.01697,"12.2-12.5":1.47663,"13.0-13.1":0.12995,"13.2":0.08645,"13.3":0.04031,"13.4-13.7":0.22807,"14.0-14.4":0.51714,"14.5-14.8":0.49911,"15.0-15.1":0.35218,"15.2-15.3":1.69781,"15.4":0.12889},P:{"4":0.93591,"5.0-5.4":0.0104,"6.2-6.4":0.01019,"7.2-7.4":0.16638,"8.2":0.13519,"9.2":0.0416,"10.1":0.0208,"11.1-11.2":0.11439,"12.0":0.0312,"13.0":0.06239,"14.0":0.15599,"15.0":0.0416,"16.0":0.62394},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00026,"4.2-4.3":0.00073,"4.4":0,"4.4.3-4.4.4":0.01585},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14919,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01122},N:{"10":0.02879,_:"11"},L:{"0":60.63061},S:{"2.5":0.02806},R:{_:"0"},M:{"0":0.07294},Q:{"10.4":0},O:{"0":0.24127},H:{"0":3.95223}}; +module.exports={C:{"57":0.03923,"59":0.00872,"61":0.0218,"66":0.00436,"72":0.00436,"78":0.00436,"88":0.03487,"89":0.00872,"91":0.0218,"97":0.00436,"98":0.00436,"99":0.27462,"100":1.63027,"101":0.03923,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 90 92 93 94 95 96 102 103 3.5 3.6"},D:{"11":0.00872,"33":0.02615,"40":0.02615,"43":0.03487,"49":0.06974,"56":0.00436,"58":0.00436,"59":0.01308,"60":0.03051,"63":0.00872,"65":0.00436,"68":0.01744,"69":0.00872,"70":0.01308,"71":0.00436,"73":0.00872,"74":0.0741,"77":0.00436,"79":0.05231,"80":0.05667,"81":0.38795,"83":0.0218,"84":0.00872,"85":0.01308,"86":0.01308,"87":0.47513,"88":0.00872,"89":0.00872,"90":0.04795,"91":0.03051,"92":0.15257,"93":0.0218,"94":0.01744,"95":0.03487,"96":0.05667,"97":0.0741,"98":0.06974,"99":0.26154,"100":3.97541,"101":13.26008,"102":0.88488,"103":0.00436,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 41 42 44 45 46 47 48 50 51 52 53 54 55 57 61 62 64 66 67 72 75 76 78 104"},F:{"42":0.00436,"53":0.00436,"79":0.00872,"80":0.01744,"81":0.00872,"84":0.0218,"85":0.4359,"86":0.7759,"87":0.08718,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03051,"13":0.01744,"14":0.00436,"15":0.00872,"16":0.06103,"17":0.00436,"18":0.08282,"84":0.01744,"89":0.04795,"90":0.01308,"91":0.01744,"92":0.04359,"94":0.00872,"96":0.00872,"97":0.00436,"98":0.02615,"99":0.22667,"100":0.21795,"101":2.14899,_:"79 80 81 83 85 86 87 88 93 95"},E:{"4":0,"13":0.00872,"14":0.00872,"15":0.00436,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00436,"12.1":0.00872,"13.1":0.04795,"14.1":0.03923,"15.1":0.01744,"15.2-15.3":0.01744,"15.4":0.11333,"15.5":0.01744},G:{"8":0,"3.2":0,"4.0-4.1":0.00638,"4.2-4.3":0.00046,"5.0-5.1":0.00046,"6.0-6.1":0,"7.0-7.1":0.08295,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01322,"10.0-10.2":0.00228,"10.3":0.08477,"11.0-11.2":0.01003,"11.3-11.4":0.04649,"12.0-12.1":0.01914,"12.2-12.5":1.10567,"13.0-13.1":0.03646,"13.2":0.02826,"13.3":0.03783,"13.4-13.7":0.11713,"14.0-14.4":0.54098,"14.5-14.8":0.34364,"15.0-15.1":0.13399,"15.2-15.3":0.64854,"15.4":1.29845},P:{"4":0.99382,"5.0-5.4":0.0204,"6.2-6.4":0.03077,"7.2-7.4":0.16393,"8.2":0.02049,"9.2":0.07172,"10.1":0.01025,"11.1-11.2":0.05123,"12.0":0.02049,"13.0":0.10246,"14.0":0.10246,"15.0":0.03074,"16.0":0.49179},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00026,"4.2-4.3":0.00052,"4.4":0,"4.4.3-4.4.4":0.01614},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10462,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01692},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.47376},Q:{"10.4":0},O:{"0":0.29892},H:{"0":4.53331},L:{"0":59.93598},S:{"2.5":0.06768}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NA.js index 9f2d7a4e15946a..dd4d934bcf8635 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NA.js @@ -1 +1 @@ -module.exports={C:{"31":0.00811,"34":0.02434,"43":0.00406,"47":0.00406,"52":0.02839,"56":0.00811,"60":0.01622,"68":0.00811,"72":0.00406,"78":0.01217,"82":0.01622,"83":0.00406,"86":0.01217,"88":0.00811,"89":0.00406,"91":0.0365,"93":0.00406,"94":0.01217,"95":0.01622,"96":0.01622,"97":0.71791,"98":1.58995,"99":0.0365,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 84 85 87 90 92 100 3.5 3.6"},D:{"34":0.00406,"40":0.00406,"48":0.00811,"49":0.04056,"55":0.00406,"59":0.00811,"62":0.00811,"63":0.00811,"65":0.00406,"67":0.01217,"68":0.00811,"69":0.03245,"70":0.00811,"71":0.00811,"72":0.00811,"73":0.00406,"74":0.02028,"75":0.01622,"76":0.01217,"77":0.00406,"79":0.02839,"80":0.01217,"81":0.01622,"83":0.01217,"84":0.02839,"85":0.01217,"86":0.0365,"87":0.05678,"88":0.05273,"89":0.02434,"90":0.03245,"91":0.04462,"92":0.03245,"93":0.03245,"94":0.05678,"95":0.05273,"96":0.17846,"97":0.30014,"98":4.87531,"99":17.95591,"100":0.31231,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 41 42 43 44 45 46 47 50 51 52 53 54 56 57 58 60 61 64 66 78 101 102 103"},F:{"82":0.00811,"83":0.09329,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02839,"13":0.01622,"14":0.02028,"15":0.01622,"16":0.04056,"17":0.08112,"18":0.10546,"81":0.13385,"84":0.04462,"85":0.00406,"89":0.01622,"90":0.01217,"91":0.00811,"92":0.04462,"93":0.01217,"94":0.04867,"95":0.02839,"96":0.33665,"97":0.08518,"98":0.96127,"99":4.14523,_:"79 80 83 86 87 88"},E:{"4":0,"8":0.01217,"10":0.00406,"11":0.00811,"13":0.01217,"14":0.08518,"15":0.0649,_:"0 5 6 7 9 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00406,"11.1":0.01622,"12.1":0.02028,"13.1":0.12168,"14.1":0.2393,"15.1":0.06895,"15.2-15.3":0.1379,"15.4":0.09329},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00328,"6.0-6.1":0.00591,"7.0-7.1":0.01248,"8.1-8.4":0.00985,"9.0-9.2":0,"9.3":0.07751,"10.0-10.2":0.00197,"10.3":0.05321,"11.0-11.2":0.01117,"11.3-11.4":0.00526,"12.0-12.1":0.04138,"12.2-12.5":0.5058,"13.0-13.1":0.01051,"13.2":0.00197,"13.3":0.06372,"13.4-13.7":0.07488,"14.0-14.4":0.41712,"14.5-14.8":0.81321,"15.0-15.1":0.78694,"15.2-15.3":3.30935,"15.4":0.3626},P:{"4":0.67286,"5.0-5.4":0.0104,"6.2-6.4":0.02039,"7.2-7.4":0.70345,"8.2":0.13519,"9.2":0.0416,"10.1":0.0208,"11.1-11.2":0.23448,"12.0":0.04078,"13.0":0.13253,"14.0":0.24468,"15.0":0.2039,"16.0":2.79339},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00173,"4.2-4.3":0.0052,"4.4":0,"4.4.3-4.4.4":0.07034},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00408,"11":0.58404,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":48.44894},S:{"2.5":0},R:{_:"0"},M:{"0":0.73706},Q:{"10.4":0},O:{"0":0.5944},H:{"0":1.51377}}; +module.exports={C:{"34":0.01082,"44":0.00361,"47":0.00361,"52":0.02524,"60":0.01442,"72":0.03245,"78":0.01082,"82":0.00721,"86":0.02163,"89":0.00361,"91":0.02163,"94":0.00361,"95":0.00361,"96":0.01442,"98":0.04687,"99":0.36771,"100":2.35046,"101":0.04326,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 45 46 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 83 84 85 87 88 90 92 93 97 102 103 3.5 3.6"},D:{"49":0.02524,"56":0.00721,"63":0.00721,"68":0.00361,"69":0.04326,"70":0.00721,"71":0.00361,"74":0.00361,"75":0.00721,"76":0.00721,"77":0.01442,"78":0.00361,"79":0.05408,"80":0.01082,"81":0.00721,"83":0.00721,"84":0.01442,"85":0.00361,"86":0.02163,"87":0.02524,"88":0.02524,"89":0.01082,"90":0.02524,"91":0.04326,"92":0.05047,"93":0.02884,"94":0.03245,"95":0.04687,"96":0.04687,"97":0.13339,"98":0.06129,"99":0.34248,"100":3.51848,"101":14.62909,"102":1.41677,"103":0.01803,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 64 65 66 67 72 73 104"},F:{"28":0.01442,"79":0.00361,"83":0.00361,"84":0.00721,"85":0.37492,"86":0.52633,"87":0.02163,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01803,"13":0.01082,"14":0.00721,"15":0.01082,"16":0.01803,"17":0.01803,"18":0.0685,"83":0.00361,"84":0.01442,"85":0.00721,"89":0.01442,"92":0.05768,"93":0.00721,"94":0.00721,"95":0.02163,"96":0.09373,"97":0.02884,"98":0.02163,"99":0.11176,"100":0.23072,"101":3.97271,_:"79 80 81 86 87 88 90 91"},E:{"4":0,"13":0.01082,"14":0.03966,"15":0.02163,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00721,"12.1":0.01803,"13.1":0.05047,"14.1":0.18025,"15.1":0.05408,"15.2-15.3":0.05408,"15.4":0.85078,"15.5":0.05768},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00214,"6.0-6.1":0,"7.0-7.1":0.01856,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.16778,"10.0-10.2":0.00143,"10.3":0.15779,"11.0-11.2":0.00143,"11.3-11.4":0.00428,"12.0-12.1":0.01999,"12.2-12.5":0.46622,"13.0-13.1":0.01285,"13.2":0.00143,"13.3":0.02499,"13.4-13.7":0.08996,"14.0-14.4":0.4448,"14.5-14.8":0.66756,"15.0-15.1":0.51191,"15.2-15.3":0.69897,"15.4":3.84472},P:{"4":1.15522,"5.0-5.4":0.0204,"6.2-6.4":0.03077,"7.2-7.4":0.89964,"8.2":0.02049,"9.2":0.01022,"10.1":0.02045,"11.1-11.2":0.14313,"12.0":0.02045,"13.0":0.12268,"14.0":0.21469,"15.0":0.06134,"16.0":1.68683},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00289,"4.2-4.3":0.00347,"4.4":0,"4.4.3-4.4.4":0.02562},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.33166,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.53079},Q:{"10.4":0},O:{"0":0.49242},H:{"0":1.58019},L:{"0":52.40107},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NC.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NC.js index 48ec6e2e672b0e..7673ab6ade365c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NC.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NC.js @@ -1 +1 @@ -module.exports={C:{"45":0.00894,"51":0.00894,"52":0.16978,"56":0.25021,"60":0.01787,"68":0.03574,"78":0.41552,"80":0.01787,"82":0.0134,"83":0.00894,"84":0.00894,"85":0.0134,"87":0.00447,"88":0.0134,"89":0.02681,"91":0.18766,"93":0.00894,"94":0.0134,"95":0.00894,"96":0.03574,"97":2.3457,"98":4.91927,"99":0.00447,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 53 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 81 86 90 92 100 3.5 3.6"},D:{"49":0.21446,"53":0.00447,"55":0.00447,"56":0.00447,"65":0.00894,"67":0.04468,"73":0.00447,"74":0.01787,"76":0.2368,"77":0.00894,"79":0.05808,"80":0.01787,"81":0.00894,"83":0.00894,"85":0.06702,"86":0.02234,"87":0.07149,"88":0.00447,"89":0.05362,"90":0.04021,"91":0.07149,"92":0.03574,"93":0.04915,"94":0.09383,"95":0.05362,"96":0.25021,"97":0.55403,"98":4.44119,"99":15.99544,"100":0.21893,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 57 58 59 60 61 62 63 64 66 68 69 70 71 72 75 78 84 101 102 103"},F:{"28":0.00894,"83":0.16532,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00894,"16":0.00894,"17":0.01787,"18":0.06702,"84":0.00894,"85":0.01787,"91":0.00894,"92":0.01787,"94":0.00894,"96":0.01787,"97":0.08489,"98":1.23764,"99":3.5878,_:"12 13 15 79 80 81 83 86 87 88 89 90 93 95"},E:{"4":0,"12":0.03574,"13":0.05362,"14":0.19212,"15":0.07596,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00894,"10.1":0.0134,"11.1":0.04468,"12.1":0.08936,"13.1":0.49148,"14.1":1.29572,"15.1":0.21,"15.2-15.3":0.33063,"15.4":0.3217},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00545,"8.1-8.4":0.00136,"9.0-9.2":0.00272,"9.3":0.05856,"10.0-10.2":0.00545,"10.3":0.3078,"11.0-11.2":0.0109,"11.3-11.4":0.39088,"12.0-12.1":0.01634,"12.2-12.5":0.96834,"13.0-13.1":0.0109,"13.2":0.00272,"13.3":0.22608,"13.4-13.7":0.1648,"14.0-14.4":0.37862,"14.5-14.8":1.47226,"15.0-15.1":1.01601,"15.2-15.3":7.97963,"15.4":0.59789},P:{"4":0.06389,"5.0-5.4":0.0104,"6.2-6.4":0.02039,"7.2-7.4":1.27784,"8.2":0.13519,"9.2":0.06389,"10.1":0.01065,"11.1-11.2":0.48984,"12.0":0.06389,"13.0":0.29816,"14.0":0.25557,"15.0":0.18103,"16.0":4.9197},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00019,"4.4":0,"4.4.3-4.4.4":0.03854},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21446,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":33.92413},S:{"2.5":0},R:{_:"0"},M:{"0":0.51457},Q:{"10.4":0},O:{"0":0.0166},H:{"0":0.0681}}; +module.exports={C:{"48":0.00817,"50":0.00817,"52":0.18782,"56":0.00817,"60":0.03266,"68":0.04083,"69":0.00817,"72":0.01633,"78":0.27356,"80":0.00817,"83":0.00817,"88":0.00408,"91":0.20415,"94":0.02042,"95":0.00817,"96":0.00817,"97":0.15515,"98":0.05308,"99":1.05341,"100":4.72811,"101":0.02858,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 51 53 54 55 57 58 59 61 62 63 64 65 66 67 70 71 73 74 75 76 77 79 81 82 84 85 86 87 89 90 92 93 102 103 3.5 3.6"},D:{"30":0.00817,"49":0.03675,"53":0.05716,"59":0.00817,"60":0.00817,"62":0.00408,"63":0.01633,"64":0.00408,"65":0.00817,"67":0.00408,"70":0.00817,"73":0.00817,"74":0.02042,"76":0.13066,"77":0.00817,"78":0.0245,"79":0.01633,"80":0.01225,"81":0.00817,"83":0.00817,"85":0.01225,"86":0.01225,"87":0.03675,"88":0.01225,"89":0.0245,"90":0.09391,"91":0.01225,"92":0.049,"93":0.07758,"94":0.11841,"95":0.02042,"96":0.14699,"97":0.17965,"98":0.13066,"99":0.56754,"100":3.86252,"101":14.7478,"102":1.26573,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 61 66 68 69 71 72 75 84 103 104"},F:{"84":0.00408,"85":0.32256,"86":0.35522,"87":0.02042,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.02042,"16":0.00817,"17":0.00408,"18":0.07349,"84":0.00817,"85":0.00817,"87":0.00408,"90":0.00408,"91":0.01225,"92":0.01225,"94":0.00817,"95":0.00408,"97":0.11432,"98":0.01225,"99":0.04491,"100":0.1674,"101":4.64645,_:"12 13 14 79 80 81 83 86 88 89 93 96"},E:{"4":0,"12":0.02858,"13":0.02858,"14":0.15515,"15":0.03266,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01225,"10.1":0.02858,"11.1":0.04491,"12.1":0.10616,"13.1":0.38789,"14.1":0.91051,"15.1":0.11841,"15.2-15.3":0.20415,"15.4":1.88226,"15.5":0.37155},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00313,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06568,"10.0-10.2":0.00469,"10.3":0.07507,"11.0-11.2":0.00469,"11.3-11.4":0.2643,"12.0-12.1":0.02502,"12.2-12.5":0.83199,"13.0-13.1":0.01095,"13.2":0.00156,"13.3":0.18767,"13.4-13.7":0.12511,"14.0-14.4":0.34406,"14.5-14.8":1.28552,"15.0-15.1":0.60366,"15.2-15.3":1.38718,"15.4":10.41243},P:{"4":0.02081,"5.0-5.4":0.02006,"6.2-6.4":0.03077,"7.2-7.4":0.79062,"8.2":0.02049,"9.2":0.05201,"10.1":0.02045,"11.1-11.2":0.38491,"12.0":0.04161,"13.0":0.27047,"14.0":0.27047,"15.0":0.15604,"16.0":2.30944},I:{"0":0,"3":0,"4":0.00032,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00032,"4.4":0,"4.4.3-4.4.4":0.02895},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.09799,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.26627},Q:{"10.4":0},O:{"0":0.02959},H:{"0":0.06722},L:{"0":36.4731},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NE.js index 021c0953a97716..85fcab1a4b69a7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NE.js @@ -1 +1 @@ -module.exports={C:{"30":0.00298,"36":0.00149,"37":0.00298,"39":0.00149,"43":0.00149,"45":0.00596,"47":0.00447,"49":0.00149,"52":0.00746,"58":0.00447,"59":0.00149,"60":0.00149,"61":0.0328,"63":0.00149,"68":0.00149,"70":0.00298,"72":0.00746,"77":0.00298,"78":0.00746,"87":0.00149,"88":0.01193,"89":0.02535,"91":0.02237,"93":0.00149,"94":0.01044,"95":0.01491,"96":0.02535,"97":0.87522,"98":1.30015,"99":0.00596,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 38 40 41 42 44 46 48 50 51 53 54 55 56 57 62 64 65 66 67 69 71 73 74 75 76 79 80 81 82 83 84 85 86 90 92 100 3.5 3.6"},D:{"11":0.00298,"21":0.00596,"25":0.00298,"26":0.00447,"28":0.00596,"31":0.00298,"37":0.00149,"43":0.00746,"46":0.00298,"49":0.00596,"50":0.00596,"52":0.00298,"55":0.00746,"56":0.00447,"57":0.00895,"58":0.03877,"60":0.00149,"64":0.00746,"67":0.00746,"69":0.01044,"70":0.00298,"71":0.00746,"73":0.00149,"75":0.00596,"76":0.00596,"79":0.15805,"80":0.00447,"81":0.01938,"83":0.01193,"85":0.00447,"86":0.03728,"87":0.00746,"88":0.01789,"89":0.00298,"90":0.00746,"91":0.00596,"92":0.03429,"93":0.00746,"94":0.00895,"95":0.00746,"96":0.05368,"97":0.05666,"98":1.2256,"99":3.67382,"100":0.01789,"101":0.00447,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 22 23 24 27 29 30 32 33 34 35 36 38 39 40 41 42 44 45 47 48 51 53 54 59 61 62 63 65 66 68 72 74 77 78 84 102 103"},F:{"28":0.00149,"36":0.00149,"76":0.00149,"77":0.00298,"79":0.00298,"80":0.00746,"82":0.01342,"83":0.01193,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03578,"13":0.01044,"14":0.00746,"15":0.00447,"16":0.01044,"17":0.01491,"18":0.09542,"84":0.02237,"85":0.00746,"88":0.00596,"89":0.01193,"90":0.00149,"92":0.00895,"93":0.02535,"94":0.01342,"95":0.01193,"96":0.31013,"97":0.06113,"98":0.44581,"99":1.02432,_:"79 80 81 83 86 87 91"},E:{"4":0,"13":0.00298,"14":0.01342,"15":0.00596,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.00298,"10.1":0.00298,"12.1":0.00298,"13.1":0.01342,"14.1":0.06411,"15.1":0.00596,"15.2-15.3":0.02087,"15.4":0.00746},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0175,"8.1-8.4":0.00648,"9.0-9.2":0,"9.3":0.01361,"10.0-10.2":0,"10.3":0.29433,"11.0-11.2":0.03501,"11.3-11.4":0.07585,"12.0-12.1":0.10892,"12.2-12.5":0.90569,"13.0-13.1":0.01556,"13.2":0.02334,"13.3":0.03112,"13.4-13.7":0.13226,"14.0-14.4":0.87781,"14.5-14.8":1.51834,"15.0-15.1":0.46549,"15.2-15.3":1.77961,"15.4":0.18217},P:{"4":0.10272,"5.0-5.4":0.0104,"6.2-6.4":0.04109,"7.2-7.4":0.0719,"8.2":0.13519,"9.2":0.11299,"10.1":0.01065,"11.1-11.2":0.03082,"12.0":0.01027,"13.0":0.21571,"14.0":0.06163,"15.0":0.34924,"16.0":0.68821},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00537,"4.4":0,"4.4.3-4.4.4":0.5987},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14612,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":73.85894},S:{"2.5":0.03403},R:{_:"0"},M:{"0":0.05956},Q:{"10.4":0.1021},O:{"0":1.96535},H:{"0":3.68911}}; +module.exports={C:{"38":0.00332,"42":0.00166,"43":0.00166,"47":0.02159,"51":0.00498,"58":0.00332,"60":0.00664,"63":0.00332,"65":0.00498,"67":0.00166,"69":0.00332,"72":0.00997,"73":0.00166,"77":0.00332,"80":0.01163,"81":0.00166,"84":0.00498,"85":0.02159,"89":0.02325,"91":0.01495,"92":0.00664,"94":0.00332,"95":0.00166,"96":0.00332,"97":0.02325,"98":0.01827,"99":0.50827,"100":1.74405,"101":0.18769,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 44 45 46 48 49 50 52 53 54 55 56 57 59 61 62 64 66 68 70 71 74 75 76 78 79 82 83 86 87 88 90 93 102 103 3.5 3.6"},D:{"26":0.00332,"37":0.00166,"38":0.00997,"43":0.00332,"49":0.01163,"50":0.00664,"51":0.00332,"57":0.00332,"58":0.0382,"63":0.00498,"64":0.01827,"66":0.01163,"68":0.00332,"70":0.00498,"71":0.00332,"73":0.00498,"75":0.00498,"79":0.25579,"80":0.00997,"81":0.02492,"83":0.00332,"84":0.01329,"86":0.01993,"87":0.02325,"88":0.00831,"89":0.01163,"90":0.01163,"91":0.01495,"92":0.01661,"93":0.00997,"94":0.00664,"95":0.00664,"96":0.01163,"97":0.01329,"98":0.03156,"99":0.0681,"100":1.14775,"101":3.76217,"102":0.33884,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 39 40 41 42 44 45 46 47 48 52 53 54 55 56 59 60 61 62 65 67 69 72 74 76 77 78 85 103 104"},F:{"44":0.00664,"65":0.07973,"73":0.00332,"76":0.00166,"79":0.00664,"84":0.00664,"85":0.1063,"86":0.23088,"87":0.03156,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 74 75 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.11295,"13":0.00664,"14":0.00831,"15":0.00332,"16":0.06312,"17":0.00831,"18":0.0598,"84":0.00831,"85":0.00997,"89":0.00664,"90":0.00166,"91":0.00498,"92":0.01163,"94":0.00332,"95":0.00166,"96":0.49332,"97":0.00997,"98":0.0299,"99":0.01827,"100":0.19268,"101":1.50487,_:"79 80 81 83 86 87 88 93"},E:{"4":0,"13":0.00498,"14":0.00498,"15":0.00664,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.02325,"12.1":0.00664,"13.1":0.00997,"14.1":0.01495,"15.1":0.00166,"15.2-15.3":0.01163,"15.4":0.26908,"15.5":0.09302},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00063,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01264,"10.0-10.2":0,"10.3":0.1694,"11.0-11.2":0.02655,"11.3-11.4":0.0493,"12.0-12.1":0.02592,"12.2-12.5":0.8154,"13.0-13.1":0.00759,"13.2":0.00316,"13.3":0.0512,"13.4-13.7":0.09229,"14.0-14.4":0.92792,"14.5-14.8":1.13904,"15.0-15.1":0.41276,"15.2-15.3":1.14283,"15.4":1.44434},P:{"4":0.08109,"5.0-5.4":0.02027,"6.2-6.4":0.07095,"7.2-7.4":0.15204,"8.2":0.01022,"9.2":0.35475,"10.1":0.1419,"11.1-11.2":0.03041,"12.0":0.04087,"13.0":0.02027,"14.0":0.06081,"15.0":0.09122,"16.0":0.60815},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00617,"4.2-4.3":0.00494,"4.4":0,"4.4.3-4.4.4":0.49757},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0168,"11":0.19415,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.15844},Q:{"10.4":0.07505},O:{"0":2.14312},H:{"0":3.18162},L:{"0":73.03603},S:{"2.5":0.01668}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NF.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NF.js index 4e4503aafaedc3..da227cb64abd83 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NF.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NF.js @@ -1 +1 @@ -module.exports={C:{"45":0.03951,"91":0.16024,"97":1.52114,"98":2.96325,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 99 100 3.5 3.6"},D:{"74":0.03951,"93":0.07902,"97":0.32047,"98":2.24329,"99":4.72584,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 95 96 100 101 102 103"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"92":0.03951,"97":0.55973,"98":0.12073,"99":2.48255,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95 96"},E:{"4":0,"14":1.8021,"15":0.07902,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.4","13.1":0.19975,"14.1":0.07902,"15.1":0.8802,"15.2-15.3":0.16024},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.15815,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.99705,"13.0-13.1":0,"13.2":0.04126,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0.44008,"15.0-15.1":18.39385,"15.2-15.3":46.08433,"15.4":2.64734},P:{"4":0.10272,"5.0-5.4":0.0104,"6.2-6.4":0.04109,"7.2-7.4":0.02255,"8.2":0.13519,"9.2":0.04059,"10.1":0.01128,"11.1-11.2":0.03383,"12.0":0.01128,"13.0":0.0451,"14.0":0.10148,"15.0":0.07893,"16.0":0.16234},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.3609,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":8.45425},S:{"2.5":0},R:{_:"0"},M:{"0":0.85855},Q:{"10.4":0},O:{"0":0},H:{"0":0.15517}}; +module.exports={C:{"78":0.12958,"91":0.12958,"98":0.39463,"99":0.12958,"100":9.81863,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 101 102 103 3.5 3.6"},D:{"97":0.12958,"99":0.25916,"100":4.45284,"101":19.10716,"102":7.068,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98 103 104"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"99":0.12958,"100":0.25916,"101":6.01958,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98"},E:{"4":0,"14":0.65379,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.39463,"14.1":0.78337,"15.1":0.65379,"15.2-15.3":0.25916,"15.4":4.31737,"15.5":0.39463},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":3.01634,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.39358,"14.0-14.4":0.52423,"14.5-14.8":1.5743,"15.0-15.1":2.09853,"15.2-15.3":1.70496,"15.4":6.81982},P:{"4":0.08109,"5.0-5.4":0.02027,"6.2-6.4":0.07095,"7.2-7.4":0.05499,"8.2":0.01022,"9.2":0.022,"10.1":0.1419,"11.1-11.2":0.033,"12.0":0.011,"13.0":0.04399,"14.0":0.38278,"15.0":0.05499,"16.0":2.30942},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.83179,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":21.19139},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NG.js index 595ba091e6b141..d77b9ee4f23a9d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NG.js @@ -1 +1 @@ -module.exports={C:{"34":0.00134,"43":0.02403,"47":0.00801,"50":0.00134,"52":0.01202,"56":0.00267,"57":0.00134,"58":0.00401,"61":0.00267,"65":0.00801,"66":0.00134,"68":0.00267,"72":0.00801,"77":0.00267,"78":0.00801,"79":0.00134,"80":0.00401,"81":0.00134,"82":0.00267,"83":0.00267,"84":0.00401,"85":0.00401,"86":0.00267,"87":0.00134,"88":0.00534,"89":0.00668,"90":0.00267,"91":0.01469,"92":0.00668,"93":0.00401,"94":0.01068,"95":0.01469,"96":0.02804,"97":0.52599,"98":0.74894,"99":0.0494,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 48 49 51 53 54 55 59 60 62 63 64 67 69 70 71 73 74 75 76 100 3.5 3.6"},D:{"47":0.01335,"49":0.00267,"50":0.00267,"53":0.00267,"55":0.00534,"56":0.00401,"57":0.00267,"58":0.01068,"62":0.00668,"63":0.00935,"64":0.01068,"65":0.00134,"66":0.00267,"68":0.00267,"69":0.06141,"70":0.00935,"71":0.00267,"72":0.00267,"73":0.01068,"74":0.00668,"75":0.00668,"76":0.00668,"77":0.01202,"78":0.00401,"79":0.02003,"80":0.02403,"81":0.02136,"83":0.01202,"84":0.00801,"85":0.01335,"86":0.04139,"87":0.03471,"88":0.01869,"89":0.01736,"90":0.01602,"91":0.04139,"92":0.02403,"93":0.03338,"94":0.02136,"95":0.02804,"96":0.08411,"97":0.20693,"98":1.61802,"99":4.20926,"100":0.01335,"101":0.00534,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 51 52 54 59 60 61 67 102 103"},F:{"36":0.01335,"51":0.00134,"65":0.00267,"66":0.00401,"67":0.00401,"68":0.00401,"79":0.06008,"80":0.00935,"82":0.03872,"83":0.02937,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 60 62 63 64 69 70 71 72 73 74 75 76 77 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01202,"13":0.00267,"14":0.00134,"15":0.00401,"16":0.00267,"17":0.00401,"18":0.02937,"84":0.00534,"85":0.00668,"88":0.00801,"89":0.00534,"90":0.00267,"91":0.00267,"92":0.01068,"93":0.00267,"94":0.00267,"95":0.00534,"96":0.01335,"97":0.0227,"98":0.24297,"99":0.59007,_:"79 80 81 83 86 87"},E:{"4":0,"11":0.00134,"12":0.00534,"13":0.00668,"14":0.03338,"15":0.01068,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.01068,"10.1":0.00267,"11.1":0.00267,"12.1":0.00668,"13.1":0.02403,"14.1":0.05474,"15.1":0.02403,"15.2-15.3":0.02403,"15.4":0.00801},G:{"8":0.00066,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00066,"5.0-5.1":0.00066,"6.0-6.1":0,"7.0-7.1":0.00328,"8.1-8.4":0,"9.0-9.2":0.00131,"9.3":0.01708,"10.0-10.2":0.00394,"10.3":0.03678,"11.0-11.2":0.09457,"11.3-11.4":0.02758,"12.0-12.1":0.04137,"12.2-12.5":0.80253,"13.0-13.1":0.0637,"13.2":0.02233,"13.3":0.12675,"13.4-13.7":0.29881,"14.0-14.4":1.1125,"14.5-14.8":1.14468,"15.0-15.1":0.94372,"15.2-15.3":1.71604,"15.4":0.10836},P:{"4":0.10272,"5.0-5.4":0.0104,"6.2-6.4":0.04109,"7.2-7.4":0.02255,"8.2":0.13519,"9.2":0.01128,"10.1":0.01128,"11.1-11.2":0.03383,"12.0":0.01128,"13.0":0.0451,"14.0":0.10148,"15.0":0.07893,"16.0":0.50738},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00233,"4.4":0,"4.4.3-4.4.4":0.03233},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00146,"11":0.02924,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":38.66126},S:{"2.5":0.00866},R:{_:"0"},M:{"0":0.26858},Q:{"10.4":0},O:{"0":1.15231},H:{"0":39.65916}}; +module.exports={C:{"34":0.0051,"43":0.02211,"47":0.01021,"52":0.01361,"56":0.0017,"57":0.01361,"58":0.0034,"61":0.0017,"65":0.0051,"66":0.0034,"68":0.0034,"72":0.0068,"78":0.01021,"80":0.0017,"81":0.0017,"82":0.0017,"84":0.0017,"85":0.0034,"87":0.0017,"88":0.0034,"89":0.0051,"90":0.0017,"91":0.01531,"92":0.0034,"93":0.0034,"94":0.01021,"95":0.0068,"96":0.00851,"97":0.01191,"98":0.02381,"99":0.35211,"100":0.98828,"101":0.06294,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 59 60 62 63 64 67 69 70 71 73 74 75 76 77 79 83 86 102 103 3.5 3.6"},D:{"43":0.0017,"47":0.01191,"49":0.0068,"53":0.0017,"55":0.0068,"56":0.0034,"57":0.0017,"58":0.01361,"60":0.0017,"61":0.0034,"62":0.00851,"63":0.0051,"64":0.01361,"67":0.0017,"68":0.0034,"69":0.04763,"70":0.01191,"71":0.0034,"72":0.0068,"73":0.0034,"74":0.02552,"75":0.01021,"76":0.01021,"77":0.01701,"78":0.0034,"79":0.02722,"80":0.04253,"81":0.02552,"83":0.01701,"84":0.01361,"85":0.05103,"86":0.59875,"87":0.03742,"88":0.01531,"89":0.02552,"90":0.01701,"91":0.03232,"92":0.02211,"93":0.03572,"94":0.04253,"95":0.02552,"96":0.06124,"97":0.05954,"98":0.07995,"99":0.165,"100":1.536,"101":4.89718,"102":0.44396,"103":0.01191,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 50 51 52 54 59 65 66 104"},F:{"36":0.01191,"64":0.0034,"65":0.0017,"66":0.0017,"67":0.0034,"68":0.0017,"69":0.0068,"70":0.0034,"79":0.0051,"80":0.0017,"82":0.02211,"83":0.0017,"84":0.0051,"85":0.18711,"86":0.1752,"87":0.01531,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 71 72 73 74 75 76 77 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01191,"13":0.0017,"14":0.0017,"15":0.0034,"16":0.0017,"17":0.0034,"18":0.03062,"84":0.0068,"85":0.0051,"88":0.01021,"89":0.0068,"90":0.0034,"91":0.0017,"92":0.01191,"95":0.0034,"96":0.0068,"97":0.01021,"98":0.01191,"99":0.02552,"100":0.09696,"101":0.77566,_:"79 80 81 83 86 87 93 94"},E:{"4":0,"11":0.0017,"12":0.0034,"13":0.00851,"14":0.04933,"15":0.0068,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.01021,"10.1":0.0034,"11.1":0.0034,"12.1":0.0051,"13.1":0.03062,"14.1":0.06804,"15.1":0.02381,"15.2-15.3":0.01871,"15.4":0.08335,"15.5":0.01191},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00468,"5.0-5.1":0.00312,"6.0-6.1":0,"7.0-7.1":0.0039,"8.1-8.4":0,"9.0-9.2":0.00156,"9.3":0.01717,"10.0-10.2":0.00624,"10.3":0.04292,"11.0-11.2":0.05619,"11.3-11.4":0.02029,"12.0-12.1":0.03434,"12.2-12.5":0.82178,"13.0-13.1":0.05697,"13.2":0.02497,"13.3":0.14282,"13.4-13.7":0.27549,"14.0-14.4":1.14721,"14.5-14.8":1.1558,"15.0-15.1":0.91231,"15.2-15.3":1.08634,"15.4":1.98694},P:{"4":0.08109,"5.0-5.4":0.02027,"6.2-6.4":0.07095,"7.2-7.4":0.05499,"8.2":0.01022,"9.2":0.022,"10.1":0.1419,"11.1-11.2":0.033,"12.0":0.011,"13.0":0.04399,"14.0":0.06599,"15.0":0.05499,"16.0":0.38495},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00059,"4.2-4.3":0.00178,"4.4":0,"4.4.3-4.4.4":0.03082},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02552,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.30706},Q:{"10.4":0},O:{"0":1.21995},H:{"0":29.69144},L:{"0":45.61971},S:{"2.5":0.0166}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NI.js index aaf880e17ae0e4..00c08fd21358b1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NI.js @@ -1 +1 @@ -module.exports={C:{"52":0.02424,"72":0.00404,"78":0.01212,"80":0.00404,"81":0.01212,"84":0.00404,"87":0.00808,"88":0.05252,"89":0.02828,"90":0.01212,"91":0.03636,"92":0.00808,"93":0.00808,"94":0.01212,"95":0.02424,"96":0.02828,"97":1.38572,"98":1.9796,"99":0.00808,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 82 83 85 86 100 3.5 3.6"},D:{"38":0.00808,"42":0.00808,"49":0.03232,"58":0.00404,"63":0.00808,"66":0.00404,"69":0.00808,"70":0.01616,"72":0.00404,"73":0.00808,"74":0.00808,"75":0.0404,"76":0.02828,"77":0.00404,"78":0.00404,"79":0.07676,"80":0.0202,"81":0.02828,"83":0.01616,"84":0.00808,"85":0.0202,"86":0.0202,"87":0.05252,"88":0.01616,"89":0.03636,"90":0.03232,"91":0.04848,"92":0.06868,"93":0.03636,"94":0.03636,"95":0.06868,"96":0.21816,"97":0.31108,"98":7.85376,"99":18.38604,"100":0.35552,"101":0.00808,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 64 65 67 68 71 102 103"},F:{"36":0.02424,"82":0.00404,"83":0.38784,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00404,"18":0.03636,"84":0.01616,"85":0.00404,"89":0.00808,"90":0.01212,"92":0.02424,"93":0.00404,"94":0.00808,"95":0.00808,"96":0.0202,"97":0.04848,"98":0.61812,"99":2.20988,_:"13 14 15 16 17 79 80 81 83 86 87 88 91"},E:{"4":0,"12":0.03636,"13":0.07272,"14":0.06464,"15":0.03232,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.01616,"12.1":0.00808,"13.1":0.10504,"14.1":0.14544,"15.1":0.06464,"15.2-15.3":0.06464,"15.4":0.03232},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00283,"6.0-6.1":0,"7.0-7.1":0.01866,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04693,"10.0-10.2":0.00283,"10.3":0.02827,"11.0-11.2":0.02149,"11.3-11.4":0.00509,"12.0-12.1":0.01074,"12.2-12.5":0.37828,"13.0-13.1":0.00848,"13.2":0.00339,"13.3":0.06955,"13.4-13.7":0.07294,"14.0-14.4":0.35057,"14.5-14.8":0.83912,"15.0-15.1":0.34549,"15.2-15.3":3.00363,"15.4":0.44274},P:{"4":0.26912,"5.0-5.4":0.0104,"6.2-6.4":0.01035,"7.2-7.4":0.36228,"8.2":0.13519,"9.2":0.07246,"10.1":0.01065,"11.1-11.2":0.22772,"12.0":0.06211,"13.0":0.15526,"14.0":0.19667,"15.0":0.21737,"16.0":2.43246},I:{"0":0,"3":0,"4":0.00167,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0025,"4.2-4.3":0.00835,"4.4":0,"4.4.3-4.4.4":0.07094},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0808,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":51.38736},S:{"2.5":0},R:{_:"0"},M:{"0":0.17883},Q:{"10.4":0},O:{"0":0.16691},H:{"0":0.36118}}; +module.exports={C:{"52":0.03818,"78":0.00424,"88":0.03394,"89":0.02121,"91":0.02121,"93":0.01273,"94":0.00848,"95":0.00848,"96":0.01273,"97":0.02121,"98":0.02969,"99":0.47086,"100":1.42955,"101":0.01697,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 90 92 102 103 3.5 3.6"},D:{"38":0.01273,"42":0.00424,"49":0.03394,"63":0.00848,"65":0.00848,"67":0.00424,"69":0.01273,"70":0.01273,"71":0.00424,"72":0.00848,"73":0.00848,"74":0.01273,"75":0.02969,"76":0.04242,"77":0.00424,"79":0.12726,"80":0.02969,"81":0.03394,"83":0.05515,"84":0.05515,"85":0.01273,"86":0.06787,"87":0.02969,"88":0.02121,"89":0.01697,"90":0.02545,"91":0.03394,"92":0.04242,"93":0.01697,"94":0.02545,"95":0.03818,"96":0.11878,"97":0.0806,"98":0.11029,"99":0.22907,"100":5.82427,"101":22.77954,"102":1.60348,"103":0.01273,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 68 78 104"},F:{"68":0.00848,"69":0.00424,"79":0.00848,"82":0.00424,"84":0.00424,"85":0.64903,"86":0.55146,"87":0.02545,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 70 71 72 73 74 75 76 77 78 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.02545,"14":0.00848,"16":0.00424,"18":0.03394,"83":0.00424,"84":0.02121,"85":0.00424,"89":0.01697,"92":0.02969,"96":0.00848,"97":0.02121,"98":0.03394,"99":0.03394,"100":0.09332,"101":2.54944,_:"12 15 17 79 80 81 86 87 88 90 91 93 94 95"},E:{"4":0,"14":0.10181,"15":0.01697,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00848,"11.1":0.00424,"12.1":0.00424,"13.1":0.0806,"14.1":0.15695,"15.1":0.05515,"15.2-15.3":0.04666,"15.4":0.30967,"15.5":0.03394},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00057,"5.0-5.1":0.00057,"6.0-6.1":0,"7.0-7.1":0.02729,"8.1-8.4":0.00398,"9.0-9.2":0.00057,"9.3":0.07504,"10.0-10.2":0.00284,"10.3":0.02103,"11.0-11.2":0.01137,"11.3-11.4":0.00398,"12.0-12.1":0.01308,"12.2-12.5":0.332,"13.0-13.1":0.01364,"13.2":0.00455,"13.3":0.05912,"13.4-13.7":0.05628,"14.0-14.4":0.17794,"14.5-14.8":0.50993,"15.0-15.1":0.21659,"15.2-15.3":0.42409,"15.4":3.72869},P:{"4":0.26565,"5.0-5.4":0.05109,"6.2-6.4":0.02043,"7.2-7.4":0.38826,"8.2":0.01022,"9.2":0.05109,"10.1":0.01022,"11.1-11.2":0.16348,"12.0":0.04087,"13.0":0.13283,"14.0":0.19413,"15.0":0.13283,"16.0":1.13412},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00288,"4.2-4.3":0.0096,"4.4":0,"4.4.3-4.4.4":0.08541},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.31815,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.14971},Q:{"10.4":0},O:{"0":0.16698},H:{"0":0.55058},L:{"0":49.92831},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NL.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NL.js index 92c6dd69fa7bd0..51f2cac7327cf9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NL.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NL.js @@ -1 +1 @@ -module.exports={C:{"11":0.01513,"38":0.00504,"43":0.00504,"44":0.02521,"45":0.01008,"52":0.02521,"56":0.01513,"60":0.01008,"66":0.00504,"68":0.00504,"74":0.00504,"78":0.05042,"79":0.01008,"80":0.01008,"81":0.01513,"82":0.00504,"83":0.01008,"84":0.01008,"87":0.00504,"88":0.01513,"89":0.00504,"91":0.10084,"93":0.00504,"94":0.04538,"95":0.02017,"96":0.04034,"97":1.28571,"98":1.90588,"99":0.01008,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 48 49 50 51 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 72 73 75 76 77 85 86 90 92 100 3.5 3.6"},D:{"47":0.07059,"48":0.06555,"49":0.04538,"52":0.08571,"53":0.01008,"56":0.01008,"60":0.00504,"64":0.03025,"65":0.01008,"66":0.02017,"67":0.01008,"69":0.02521,"70":0.0605,"71":0.00504,"72":0.05042,"73":0.01008,"74":0.00504,"75":0.01008,"76":0.02017,"77":0.01513,"78":0.02017,"79":0.17143,"80":0.08571,"81":0.01513,"83":0.04538,"84":0.0958,"85":0.07563,"86":0.09076,"87":0.13109,"88":0.03529,"89":0.03529,"90":0.03529,"91":0.05042,"92":0.10588,"93":0.68571,"94":0.14118,"95":0.1563,"96":0.40336,"97":0.60504,"98":7.63863,"99":19.07389,"100":0.02017,"101":0.01008,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 50 51 54 55 57 58 59 61 62 63 68 102 103"},F:{"67":0.00504,"82":0.01008,"83":0.22689,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.01008,"18":0.02017,"84":0.00504,"89":0.00504,"92":0.01513,"94":0.01008,"95":0.01513,"96":0.04034,"97":0.08067,"98":1.47731,"99":5.17309,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 90 91 93"},E:{"4":0,"9":0.01008,"13":0.05042,"14":0.32269,"15":0.17143,_:"0 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00504,"11.1":0.03025,"12.1":0.0605,"13.1":0.37815,"14.1":1.12941,"15.1":0.38823,"15.2-15.3":0.46386,"15.4":0.31765},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00525,"8.1-8.4":0.00874,"9.0-9.2":0.08393,"9.3":0.07169,"10.0-10.2":0.00175,"10.3":0.16087,"11.0-11.2":0.01049,"11.3-11.4":0.03322,"12.0-12.1":0.01399,"12.2-12.5":0.60151,"13.0-13.1":0.02098,"13.2":0.00874,"13.3":0.05246,"13.4-13.7":0.18185,"14.0-14.4":0.58053,"14.5-14.8":2.35357,"15.0-15.1":1.02291,"15.2-15.3":11.60001,"15.4":0.66446},P:{"4":0.11618,"5.0-5.4":0.0104,"6.2-6.4":0.02039,"7.2-7.4":0.04311,"8.2":0.13519,"9.2":0.3039,"10.1":0.0208,"11.1-11.2":0.02112,"12.0":0.02112,"13.0":0.06337,"14.0":0.0845,"15.0":0.06337,"16.0":4.57345},I:{"0":0,"3":0,"4":0.00113,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00339,"4.2-4.3":0.00905,"4.4":0,"4.4.3-4.4.4":0.05088},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02108,"9":0.08434,"11":0.47441,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":25.41269},S:{"2.5":0},R:{_:"0"},M:{"0":0.47101},Q:{"10.4":0.00496},O:{"0":0.44126},H:{"0":0.3849}}; +module.exports={C:{"11":0.02411,"52":0.01928,"56":0.01446,"60":0.00964,"74":0.00482,"78":0.04339,"79":0.00482,"80":0.00482,"81":0.02411,"82":0.00482,"83":0.00964,"84":0.00964,"88":0.01446,"89":0.00482,"91":0.07714,"94":0.04339,"95":0.00964,"96":0.00964,"97":0.01446,"98":0.10606,"99":0.56888,"100":2.5021,"101":0.01446,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 85 86 87 90 92 93 102 103 3.5 3.6"},D:{"42":0.00482,"47":0.07714,"48":0.00482,"49":0.02893,"52":0.07232,"53":0.00964,"61":0.00482,"65":0.00482,"66":0.01928,"67":0.01446,"69":0.06749,"70":0.03857,"71":0.00482,"72":0.01446,"73":0.00964,"74":0.00964,"75":0.00964,"76":0.10606,"77":0.01446,"78":0.01446,"79":0.1832,"80":0.08678,"81":0.01446,"83":0.05303,"84":0.09642,"85":0.10606,"86":0.07714,"87":0.1157,"88":0.02411,"89":0.02893,"90":0.02411,"91":0.03857,"92":0.07232,"93":0.07714,"94":0.05785,"95":0.08678,"96":0.17356,"97":0.16874,"98":0.26516,"99":0.51585,"100":5.20186,"101":19.18276,"102":1.52344,"103":0.00964,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 50 51 54 55 56 57 58 59 60 62 63 64 68 104"},F:{"36":0.00482,"69":0.00482,"71":0.00964,"72":0.00482,"84":0.00482,"85":0.53031,"86":0.34229,"87":0.01928,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00482,"18":0.02411,"84":0.00482,"85":0.00964,"86":0.00964,"92":0.00964,"95":0.00482,"96":0.01446,"97":0.02411,"98":0.02893,"99":0.06749,"100":0.3664,"101":6.30587,_:"12 13 14 15 16 79 80 81 83 87 88 89 90 91 93 94"},E:{"4":0,"13":0.03857,"14":0.24587,"15":0.0916,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02893,"12.1":0.05785,"13.1":0.34229,"14.1":0.80993,"15.1":0.21212,"15.2-15.3":0.19284,"15.4":3.25418,"15.5":0.37122},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00372,"8.1-8.4":0.01117,"9.0-9.2":0.08194,"9.3":0.07449,"10.0-10.2":0.00186,"10.3":0.10243,"11.0-11.2":0.00745,"11.3-11.4":0.03352,"12.0-12.1":0.01304,"12.2-12.5":0.70767,"13.0-13.1":0.01676,"13.2":0.01117,"13.3":0.04469,"13.4-13.7":0.15829,"14.0-14.4":0.48047,"14.5-14.8":1.6891,"15.0-15.1":0.50468,"15.2-15.3":1.37623,"15.4":13.29304},P:{"4":0.13621,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.01048,"12.0":0.02095,"13.0":0.06286,"14.0":0.06286,"15.0":0.04191,"16.0":1.50876},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00423,"4.2-4.3":0.0074,"4.4":0,"4.4.3-4.4.4":0.04017},A:{"8":0.01438,"9":0.05751,"11":0.33789,_:"6 7 10 5.5"},K:{_:"0 10 11 12 11.1 11.5 12.1"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.50246},Q:{"10.4":0.01036},O:{"0":0.46102},H:{"0":0.39233},L:{"0":26.78127},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NO.js index bc56962451ee18..61aad39e004f8c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NO.js @@ -1 +1 @@ -module.exports={C:{"52":0.01294,"59":0.01942,"78":0.0453,"91":0.07119,"95":0.01294,"96":0.02589,"97":2.68588,"98":2.20695,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 99 100 3.5 3.6"},D:{"38":0.00647,"49":0.02589,"64":0.01294,"66":0.09708,"67":0.00647,"69":0.12297,"70":0.00647,"72":0.00647,"73":0.00647,"76":0.01294,"78":0.00647,"79":0.06472,"80":0.0453,"81":0.01294,"83":0.01942,"84":0.02589,"85":3.10009,"86":0.02589,"87":0.11002,"88":0.01942,"89":0.02589,"90":0.12297,"91":0.05825,"92":0.09061,"93":0.0453,"94":0.07766,"95":0.24594,"96":0.55659,"97":0.97727,"98":13.46823,"99":22.09541,"100":0.01294,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 65 68 71 74 75 77 101 102 103"},F:{"82":0.01294,"83":0.54365,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.01294,"18":0.00647,"83":0.00647,"84":0.00647,"85":0.0453,"86":0.01294,"87":0.00647,"89":0.01294,"90":0.00647,"92":0.01294,"94":0.01294,"95":0.00647,"96":0.02589,"97":0.11002,"98":1.98043,"99":5.11288,_:"12 13 14 15 16 79 80 81 88 91 93"},E:{"4":0,"13":0.0453,"14":0.38832,"15":0.22005,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00647,"10.1":0.00647,"11.1":0.02589,"12.1":0.05178,"13.1":0.3689,"14.1":1.88335,"15.1":0.77017,"15.2-15.3":0.72486,"15.4":0.29124},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00196,"8.1-8.4":0.00196,"9.0-9.2":0.00393,"9.3":0.04911,"10.0-10.2":0.00393,"10.3":0.09429,"11.0-11.2":0.01768,"11.3-11.4":0.055,"12.0-12.1":0.01571,"12.2-12.5":0.38696,"13.0-13.1":0.01964,"13.2":0.00589,"13.3":0.04321,"13.4-13.7":0.11196,"14.0-14.4":0.58143,"14.5-14.8":2.91105,"15.0-15.1":1.26696,"15.2-15.3":13.4651,"15.4":0.60107},P:{"4":0.02134,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.02134,"12.0":0.01067,"13.0":0.02134,"14.0":0.02134,"15.0":0.02134,"16.0":2.45452},I:{"0":0,"3":0,"4":0.00265,"2.1":0,"2.2":0.00198,"2.3":0.00198,"4.1":0.00265,"4.2-4.3":0.00529,"4.4":0,"4.4.3-4.4.4":0.0172},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01294,"11":0.26535,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":12.76386},S:{"2.5":0},R:{_:"0"},M:{"0":0.21168},Q:{"10.4":0},O:{"0":0.02117},H:{"0":0.17368}}; +module.exports={C:{"52":0.02212,"59":0.03319,"78":0.04425,"82":0.00553,"83":0.00553,"88":0.00553,"91":0.04978,"94":0.00553,"96":0.00553,"97":0.01106,"98":0.02212,"99":2.00222,"100":6.85844,"101":0.00553,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 84 85 86 87 89 90 92 93 95 102 103 3.5 3.6"},D:{"38":0.00553,"49":0.02766,"64":0.01106,"66":0.12721,"67":0.01106,"69":0.09956,"76":0.01106,"78":0.01106,"79":0.06637,"80":0.02766,"83":0.00553,"84":0.03319,"85":4.72901,"86":0.02212,"87":0.05531,"88":0.01106,"89":0.02766,"90":0.02212,"91":0.02766,"92":0.03872,"93":0.02766,"94":0.02766,"95":0.02766,"96":0.14381,"97":0.11615,"98":0.20465,"99":0.56969,"100":5.41485,"101":16.39942,"102":1.27213,"103":0.00553,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 65 68 70 71 72 73 74 75 77 81 104"},F:{"84":0.00553,"85":0.68584,"86":0.70797,"87":0.02212,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.01659,"83":0.00553,"85":0.01106,"86":0.01106,"92":0.02212,"95":0.00553,"96":0.01106,"97":0.02212,"98":0.01659,"99":0.04978,"100":0.47014,"101":5.27104,_:"12 13 14 15 16 18 79 80 81 84 87 88 89 90 91 93 94"},E:{"4":0,"13":0.04978,"14":0.30974,"15":0.12168,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 7.1","6.1":0.00553,"9.1":0.01106,"10.1":0.00553,"11.1":0.03872,"12.1":0.0719,"13.1":0.35952,"14.1":1.29425,"15.1":0.29867,"15.2-15.3":0.27655,"15.4":4.09847,"15.5":0.42036},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00488,"9.3":0.05368,"10.0-10.2":0.00732,"10.3":0.11956,"11.0-11.2":0.0122,"11.3-11.4":0.06832,"12.0-12.1":0.01464,"12.2-12.5":0.43676,"13.0-13.1":0.0122,"13.2":0.00488,"13.3":0.0366,"13.4-13.7":0.11224,"14.0-14.4":0.52948,"14.5-14.8":2.21551,"15.0-15.1":0.70272,"15.2-15.3":2.06668,"15.4":17.9852},P:{"4":0.09333,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 12.0","11.1-11.2":0.02074,"13.0":0.02074,"14.0":0.04148,"15.0":0.02074,"16.0":0.98517},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00291,"4.2-4.3":0.0068,"4.4":0,"4.4.3-4.4.4":0.01263},A:{"8":0.01106,"9":0.00553,"11":0.25996,_:"6 7 10 5.5"},K:{_:"0 10 11 12 11.1 11.5 12.1"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.26814},Q:{"10.4":0},O:{"0":0.02235},H:{"0":0.21578},L:{"0":16.49048},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NP.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NP.js index 6a831daf602e9e..1188fc386ec3f9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NP.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NP.js @@ -1 +1 @@ -module.exports={C:{"52":0.006,"71":0.022,"72":0.008,"73":0.006,"74":0.004,"75":0.01,"76":0.034,"78":0.018,"87":0.098,"88":0.002,"89":0.004,"91":0.012,"94":0.004,"95":0.006,"96":0.022,"97":0.27,"98":0.586,"99":0.038,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 77 79 80 81 82 83 84 85 86 90 92 93 100 3.5 3.6"},D:{"49":0.004,"62":0.002,"63":0.004,"64":0.002,"65":0.006,"67":0.002,"69":0.002,"71":0.002,"75":0.002,"76":0.01,"78":0.002,"79":0.018,"80":0.004,"81":0.006,"83":0.008,"84":0.024,"85":0.004,"86":0.012,"87":0.018,"88":0.02,"89":0.102,"90":0.006,"91":0.014,"92":0.016,"93":0.024,"94":0.01,"95":0.02,"96":0.064,"97":0.176,"98":2.938,"99":12.97,"100":0.126,"101":0.014,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 66 68 70 72 73 74 77 102 103"},F:{"63":0.01,"75":0.012,"82":0.002,"83":0.036,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.002,"18":0.004,"81":0.012,"89":0.036,"92":0.004,"93":0.004,"95":0.002,"96":0.006,"97":0.02,"98":0.15,"99":0.686,_:"13 14 15 16 17 79 80 83 84 85 86 87 88 90 91 94"},E:{"4":0,"13":0.004,"14":0.03,"15":0.008,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.004,"12.1":0.004,"13.1":0.016,"14.1":0.054,"15.1":0.02,"15.2-15.3":0.024,"15.4":0.016},G:{"8":0.00133,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00443,"8.1-8.4":0,"9.0-9.2":0.00089,"9.3":0.01996,"10.0-10.2":0,"10.3":0.03858,"11.0-11.2":0.0133,"11.3-11.4":0.0133,"12.0-12.1":0.01818,"12.2-12.5":0.46298,"13.0-13.1":0.04124,"13.2":0.00443,"13.3":0.02439,"13.4-13.7":0.07007,"14.0-14.4":0.17473,"14.5-14.8":0.69447,"15.0-15.1":0.22218,"15.2-15.3":2.46745,"15.4":0.16009},P:{"4":0.11856,"5.0-5.4":0.0104,"6.2-6.4":0.02039,"7.2-7.4":0.04311,"8.2":0.13519,"9.2":0.3039,"10.1":0.0208,"11.1-11.2":0.02156,"12.0":0.04078,"13.0":0.03233,"14.0":0.03233,"15.0":0.03233,"16.0":0.49578},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0008,"4.2-4.3":0.004,"4.4":0,"4.4.3-4.4.4":0.0592},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.008,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":73.34},S:{"2.5":0},R:{_:"0"},M:{"0":0.104},Q:{"10.4":0},O:{"0":0.816},H:{"0":0.46201}}; +module.exports={C:{"52":0.00486,"71":0.15802,"72":0.04133,"73":0.04376,"74":0.03403,"75":0.07536,"76":0.18962,"78":0.00486,"87":0.43272,"89":0.00243,"91":0.01459,"96":0.00243,"97":0.00243,"98":0.00486,"99":0.13857,"100":0.57858,"101":0.04133,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 77 79 80 81 82 83 84 85 86 88 90 92 93 94 95 102 103 3.5 3.6"},D:{"49":0.00486,"65":0.00729,"70":0.00486,"76":0.04376,"79":0.01459,"80":0.00243,"81":0.00486,"83":0.00729,"84":0.01216,"85":0.00243,"86":0.00972,"87":0.01216,"88":0.01945,"89":0.85328,"90":0.00729,"91":0.00972,"92":0.00972,"93":0.00729,"94":0.00486,"95":0.00729,"96":0.02431,"97":0.02674,"98":0.02917,"99":0.05348,"100":1.84999,"101":15.75774,"102":1.28114,"103":0.01459,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 71 72 73 74 75 77 78 104"},F:{"85":0.14586,"86":0.24067,"87":0.02917,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00486,"88":0.00243,"89":0.26255,"92":0.00243,"96":0.00243,"99":0.00486,"100":0.02431,"101":0.72201,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 90 91 93 94 95 97 98"},E:{"4":0,"13":0.00243,"14":0.01459,"15":0.00729,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00486,"13.1":0.01702,"14.1":0.04133,"15.1":0.00972,"15.2-15.3":0.00972,"15.4":0.11912,"15.5":0.01459},G:{"8":0.00607,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00055,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00442,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01932,"10.0-10.2":0,"10.3":0.03809,"11.0-11.2":0.31575,"11.3-11.4":0.01546,"12.0-12.1":0.05189,"12.2-12.5":0.51393,"13.0-13.1":0.18989,"13.2":0.00994,"13.3":0.02374,"13.4-13.7":0.05851,"14.0-14.4":0.77117,"14.5-14.8":0.48191,"15.0-15.1":0.0966,"15.2-15.3":0.33563,"15.4":2.58566},P:{"4":0.06853,"5.0-5.4":0.02006,"6.2-6.4":0.03077,"7.2-7.4":0.04569,"8.2":0.02049,"9.2":0.26082,"10.1":0.02045,"11.1-11.2":0.01142,"12.0":0.02045,"13.0":0.03426,"14.0":0.01142,"15.0":0.01142,"16.0":0.19416},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00079,"4.2-4.3":0.00393,"4.4":0,"4.4.3-4.4.4":0.05584},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00972,"11":0.00486,_:"7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.62074},Q:{"10.4":0},O:{"0":0.61317},H:{"0":0.60918},L:{"0":67.3757},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NR.js index 9588474807318b..139501f3128b7a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NR.js @@ -1 +1 @@ -module.exports={C:{"97":0.03755,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98 99 100 3.5 3.6"},D:{"75":0.07169,"79":0.01366,"80":0.01366,"84":0.06145,"92":0.01366,"95":0.01366,"96":0.03755,"97":0.01366,"98":3.54032,"99":14.5095,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 81 83 85 86 87 88 89 90 91 93 94 100 101 102 103"},F:{"78":0.06145,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.01366,"14":0.0478,"84":0.01366,"94":0.03755,"98":0.3414,"99":2.17813,_:"12 15 16 17 18 79 80 81 83 85 86 87 88 89 90 91 92 93 95 96 97"},E:{"4":0,"11":0.09901,"14":7.30937,_:"0 5 6 7 8 9 10 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1","14.1":1.72748,"15.1":0.0239,"15.2-15.3":0.01366,"15.4":0.03755},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0.00981,"12.0-12.1":0,"12.2-12.5":0.10704,"13.0-13.1":0.00981,"13.2":0.36902,"13.3":0.04847,"13.4-13.7":0.05828,"14.0-14.4":0.16475,"14.5-14.8":0.9227,"15.0-15.1":0.2138,"15.2-15.3":0.95184,"15.4":0.02914},P:{"4":0.07091,"5.0-5.4":0.0104,"6.2-6.4":0.02039,"7.2-7.4":0.01013,"8.2":0.13519,"9.2":0.3039,"10.1":0.0208,"11.1-11.2":0.06078,"12.0":0.04078,"13.0":0.13253,"14.0":0.16208,"15.0":0.2039,"16.0":3.91019},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.10657,"11":0.26897,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":55.39586},S:{"2.5":0},R:{_:"0"},M:{"0":0.01317},Q:{"10.4":0},O:{"0":1.21841},H:{"0":4.01547}}; +module.exports={C:{"52":0.04494,"100":0.05692,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 3.5 3.6"},D:{"76":0.05692,"77":0.04494,"78":0.03296,"79":0.02097,"80":0.04494,"87":0.01198,"89":0.01198,"90":0.01198,"97":0.01198,"99":0.04494,"100":3.0739,"101":10.52195,"102":0.79993,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 81 83 84 85 86 88 91 92 93 94 95 96 98 103 104"},F:{"85":0.02097,"86":0.01198,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.01198,"16":0.03296,"18":0.02097,"84":0.06591,"89":0.04494,"97":0.01198,"99":0.02097,"100":0.48835,"101":2.53162,_:"12 13 15 17 79 80 81 83 85 86 87 88 90 91 92 93 94 95 96 98"},E:{"4":0,"14":5.24,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.2-15.3","14.1":0.03296,"15.1":0.14381,"15.4":0.08988,"15.5":0.02097},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.11652,"13.0-13.1":0.01071,"13.2":0,"13.3":0.06298,"13.4-13.7":0.13667,"14.0-14.4":0.5788,"14.5-14.8":1.37992,"15.0-15.1":2.98027,"15.2-15.3":0.22106,"15.4":0.81057},P:{"4":0.31098,"5.0-5.4":0.02006,"6.2-6.4":0.03077,"7.2-7.4":0.04013,"8.2":0.02049,"9.2":0.26082,"10.1":0.02045,"11.1-11.2":0.14313,"12.0":0.02045,"13.0":0.0301,"14.0":0.13041,"15.0":0.07022,"16.0":2.28723},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01198,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.01401},Q:{"10.4":0},O:{"0":1.80729},H:{"0":2.37421},L:{"0":58.80069},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NU.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NU.js index 1cf15f30645524..588bca1def6890 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NU.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NU.js @@ -1 +1 @@ -module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 3.5 3.6"},D:{"98":15.21625,"99":8.695,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 100 101 102 103"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.2-15.3 15.4","15.1":8.695},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":4.34952,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":8.69317,"15.2-15.3":41.30578,"15.4":4.34952},P:{"4":0.10272,"5.0-5.4":0.0104,"6.2-6.4":0.04109,"7.2-7.4":0.02255,"8.2":0.13519,"9.2":0.01128,"10.1":0.01128,"11.1-11.2":0.03383,"12.0":0.01128,"13.0":0.0451,"14.0":0.10148,"15.0":0.07893,"16.0":0.50738},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":2.17375,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":6.522},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 3.5 3.6"},D:{"101":0.645,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104"},F:{"52":1.29,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"101":1.935,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1","15.1":0.645,"15.2-15.3":3.87,"15.4":1.29,"15.5":0.645},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0.64424,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0.64424,"15.4":81.29784},P:{"4":0.08109,"5.0-5.4":0.02027,"6.2-6.4":0.07095,"7.2-7.4":0.05499,"8.2":0.01022,"9.2":0.022,"10.1":0.1419,"11.1-11.2":0.033,"12.0":0.011,"13.0":0.04399,"14.0":0.06599,"15.0":0.05499,"16.0":0.38495},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":7.09369},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NZ.js index c40076b2a7dd4b..57640bb486d683 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/NZ.js @@ -1 +1 @@ -module.exports={C:{"11":0.0247,"34":0.00618,"51":0.06794,"52":0.08029,"53":0.06176,"54":0.04323,"55":0.06176,"56":0.04323,"57":0.04323,"58":0.01853,"59":0.03706,"78":0.06794,"88":0.01235,"89":0.0247,"90":0.01235,"91":0.07411,"92":0.01235,"93":0.01235,"94":0.11734,"95":0.01235,"96":0.03706,"97":0.9264,"98":1.45754,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 99 100 3.5 3.6"},D:{"26":0.00618,"34":0.03088,"38":0.11117,"39":0.01853,"40":0.01853,"41":0.01853,"42":0.01853,"43":0.01853,"44":0.0247,"45":0.0247,"46":0.0247,"47":0.0247,"48":0.01853,"49":0.08029,"50":0.01235,"51":0.01853,"52":0.01235,"53":0.05558,"54":0.01853,"55":0.01853,"56":0.0247,"57":0.01853,"58":0.0247,"59":0.04323,"60":0.0247,"61":0.04941,"62":0.0247,"63":0.0247,"64":0.0247,"65":0.04323,"66":0.06176,"67":0.01235,"68":0.00618,"69":0.00618,"70":0.01235,"71":0.00618,"72":0.01235,"73":0.01235,"74":0.01853,"75":0.01235,"76":0.04941,"77":0.01235,"78":0.01235,"79":0.35821,"80":0.0247,"81":0.01853,"83":0.03088,"84":0.0247,"85":0.01235,"86":0.01853,"87":0.14205,"88":0.01853,"89":0.04323,"90":0.16058,"91":0.08029,"92":0.09882,"93":0.88934,"94":0.18528,"95":0.13587,"96":0.47555,"97":1.00051,"98":11.92586,"99":26.01949,"100":0.05558,"101":0.03088,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 102 103"},F:{"36":0.01235,"46":0.07411,"82":0.00618,"83":0.20381,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00618,"18":0.01235,"90":0.00618,"92":0.01235,"95":0.0247,"96":0.03088,"97":0.11117,"98":1.24138,"99":4.68758,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 91 93 94"},E:{"4":0,"12":0.01235,"13":0.06176,"14":0.38909,"15":0.24704,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01853,"11.1":0.05558,"12.1":0.10499,"13.1":0.4879,"14.1":1.38342,"15.1":0.45085,"15.2-15.3":0.42614,"15.4":0.23469},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00925,"7.0-7.1":0.00925,"8.1-8.4":0.02621,"9.0-9.2":0.03546,"9.3":0.15418,"10.0-10.2":0.03392,"10.3":0.20968,"11.0-11.2":0.09867,"11.3-11.4":0.08326,"12.0-12.1":0.02929,"12.2-12.5":0.82947,"13.0-13.1":0.01388,"13.2":0.00463,"13.3":0.05859,"13.4-13.7":0.1588,"14.0-14.4":0.41628,"14.5-14.8":2.01354,"15.0-15.1":0.74775,"15.2-15.3":9.89349,"15.4":0.58895},P:{"4":0.61156,"5.0-5.4":0.0104,"6.2-6.4":0.02039,"7.2-7.4":1.27784,"8.2":0.13519,"9.2":0.06389,"10.1":0.01065,"11.1-11.2":0.03276,"12.0":0.01092,"13.0":0.10921,"14.0":0.09829,"15.0":0.0546,"16.0":2.64281},I:{"0":0,"3":0,"4":0.00311,"2.1":0,"2.2":0.00124,"2.3":0.00124,"4.1":0.00124,"4.2-4.3":0.00808,"4.4":0,"4.4.3-4.4.4":0.0348},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.05272,"9":0.05272,"10":0.02109,"11":0.30579,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":18.89104},S:{"2.5":0},R:{_:"0"},M:{"0":0.40917},Q:{"10.4":0.0153},O:{"0":0.0803},H:{"0":0.16653}}; +module.exports={C:{"11":0.02774,"34":0.00555,"41":0.00555,"44":0.00555,"46":0.00555,"47":0.00555,"48":0.00555,"50":0.00555,"51":0.25516,"52":0.23297,"53":0.24962,"54":0.14422,"55":0.24407,"56":0.17196,"57":0.17196,"58":0.06656,"59":0.08875,"66":0.00555,"78":0.07766,"84":0.00555,"86":0.00555,"88":0.00555,"91":0.08321,"93":0.01664,"94":0.1775,"95":0.00555,"96":0.01109,"97":0.01664,"98":0.02774,"99":0.52142,"100":2.14114,"101":0.00555,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 42 43 45 49 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 87 89 90 92 102 103 3.5 3.6"},D:{"26":0.01109,"34":0.02219,"38":0.08875,"39":0.06656,"40":0.06656,"41":0.07766,"42":0.07211,"43":0.07211,"44":0.08321,"45":0.0943,"46":0.09985,"47":0.09985,"48":0.07766,"49":0.13868,"50":0.05547,"51":0.06656,"52":0.05547,"53":0.08321,"54":0.06656,"55":0.06656,"56":0.07766,"57":0.07766,"58":0.0943,"59":0.10539,"60":0.09985,"61":0.10539,"62":0.08321,"63":0.08321,"64":0.08321,"65":0.09985,"66":0.07211,"67":0.01109,"68":0.01109,"69":0.01109,"70":0.00555,"71":0.01109,"72":0.00555,"73":0.01109,"74":0.01109,"75":0.01664,"76":0.05547,"77":0.01109,"78":0.01109,"79":0.25516,"80":0.02219,"81":0.01664,"83":0.02219,"84":0.01109,"85":0.01109,"86":0.01109,"87":0.09985,"88":0.01109,"89":0.02774,"90":0.18305,"91":0.02774,"92":0.07211,"93":0.1775,"94":0.07766,"95":0.04992,"96":0.13868,"97":0.19415,"98":0.22743,"99":0.65455,"100":6.83945,"101":21.34486,"102":1.55871,"103":0.01664,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 104"},F:{"28":0.00555,"36":0.00555,"42":0.00555,"43":0.00555,"45":0.00555,"46":0.06102,"85":0.32173,"86":0.27735,"87":0.01664,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 44 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00555},B:{"12":0.00555,"13":0.00555,"14":0.01109,"15":0.01109,"17":0.01109,"18":0.03883,"92":0.00555,"95":0.02219,"96":0.01109,"97":0.02774,"98":0.01109,"99":0.08875,"100":0.28844,"101":5.21973,_:"16 79 80 81 83 84 85 86 87 88 89 90 91 93 94"},E:{"4":0,"12":0.00555,"13":0.06656,"14":0.29954,"15":0.14422,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01664,"11.1":0.04438,"12.1":0.0943,"13.1":0.47704,"14.1":1.0151,"15.1":0.26071,"15.2-15.3":0.18305,"15.4":3.93837,"15.5":0.32173},G:{"8":0.00174,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00174,"6.0-6.1":0.00522,"7.0-7.1":0.00695,"8.1-8.4":0.01912,"9.0-9.2":0.08693,"9.3":0.15473,"10.0-10.2":0.10605,"10.3":0.25383,"11.0-11.2":0.04173,"11.3-11.4":0.0678,"12.0-12.1":0.01912,"12.2-12.5":0.79975,"13.0-13.1":0.01043,"13.2":0.00522,"13.3":0.05563,"13.4-13.7":0.1669,"14.0-14.4":0.34598,"14.5-14.8":1.55951,"15.0-15.1":0.41378,"15.2-15.3":1.1266,"15.4":12.13183},P:{"4":0.3885,"5.0-5.4":0.02006,"6.2-6.4":0.03077,"7.2-7.4":0.79062,"8.2":0.02049,"9.2":0.05201,"10.1":0.02045,"11.1-11.2":0.03237,"12.0":0.04161,"13.0":0.08633,"14.0":0.09712,"15.0":0.04317,"16.0":1.16549},I:{"0":0,"3":0,"4":0.00132,"2.1":0,"2.2":0,"2.3":0.00132,"4.1":0.00132,"4.2-4.3":0.00794,"4.4":0,"4.4.3-4.4.4":0.03706},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.13432,"9":0.1567,"10":0.05223,"11":0.28356,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.4452},Q:{"10.4":0.01336},O:{"0":0.12911},H:{"0":0.17702},L:{"0":23.16029},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/OM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/OM.js index 90e4e036a5f34f..8efcc50bf1f088 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/OM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/OM.js @@ -1 +1 @@ -module.exports={C:{"34":0.00309,"47":0.00309,"91":0.01234,"96":0.00617,"97":0.1327,"98":0.31477,"99":0.01543,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 100 3.5 3.6"},D:{"11":0.00617,"34":0.00309,"38":0.01234,"49":0.01852,"53":0.00309,"62":0.01543,"63":0.00617,"65":0.01852,"67":0.00617,"69":0.00926,"70":0.00617,"71":0.00617,"74":0.01852,"75":0.01234,"76":0.00926,"78":0.00617,"79":0.05555,"80":0.00926,"81":0.00926,"83":0.0216,"84":0.00617,"85":0.01234,"86":0.03703,"87":0.12653,"88":0.0216,"89":0.04629,"90":0.01234,"91":0.04629,"92":0.17282,"93":0.31786,"94":0.01852,"95":0.05246,"96":0.12344,"97":0.2654,"98":4.51482,"99":15.6275,"100":0.07406,"101":0.00926,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 64 66 68 72 73 77 102 103"},F:{"28":0.00926,"46":0.00926,"82":0.00617,"83":0.12344,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00309,"13":0.00309,"14":0.00617,"15":0.00617,"16":0.00309,"17":0.00926,"18":0.02469,"84":0.00617,"92":0.01234,"93":0.00309,"94":0.00926,"95":0.00926,"96":0.0216,"97":0.04629,"98":0.43821,"99":2.12317,_:"79 80 81 83 85 86 87 88 89 90 91"},E:{"4":0,"13":0.01852,"14":0.11727,"15":0.07406,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00309,"10.1":0.00309,"11.1":0.00309,"12.1":0.00617,"13.1":0.08024,"14.1":0.33329,"15.1":0.12961,"15.2-15.3":0.10801,"15.4":0.06481},G:{"8":0.00159,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00318,"7.0-7.1":0.02543,"8.1-8.4":0,"9.0-9.2":0.00159,"9.3":0.03179,"10.0-10.2":0.00477,"10.3":0.03338,"11.0-11.2":0.02861,"11.3-11.4":0.01113,"12.0-12.1":0.01749,"12.2-12.5":0.54206,"13.0-13.1":0.02861,"13.2":0.01908,"13.3":0.08266,"13.4-13.7":0.23049,"14.0-14.4":0.86634,"14.5-14.8":2.60061,"15.0-15.1":1.3019,"15.2-15.3":9.03061,"15.4":1.03166},P:{"4":0.15315,"5.0-5.4":0.0104,"6.2-6.4":0.03063,"7.2-7.4":0.2042,"8.2":0.13519,"9.2":0.03063,"10.1":0.01021,"11.1-11.2":0.23483,"12.0":0.05105,"13.0":0.28588,"14.0":0.3063,"15.0":0.27567,"16.0":3.06299},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00059,"4.2-4.3":0.00352,"4.4":0,"4.4.3-4.4.4":0.03046},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":2.25278,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":47.12092},S:{"2.5":0},R:{_:"0"},M:{"0":0.09678},Q:{"10.4":0},O:{"0":0.67056},H:{"0":0.40578}}; +module.exports={C:{"34":0.00527,"86":0.00527,"91":0.00527,"98":0.00527,"99":0.05274,"100":0.37182,"101":0.00527,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 89 90 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"11":0.00264,"34":0.00264,"38":0.00791,"49":0.00791,"56":0.00264,"62":0.00791,"63":0.00527,"64":0.00527,"65":0.00791,"67":0.00527,"69":0.00527,"70":0.00791,"71":0.00264,"74":0.01055,"75":0.00791,"76":0.00791,"78":0.00527,"79":0.07384,"80":0.01055,"81":0.01582,"83":0.00791,"84":0.00791,"85":0.03164,"86":0.03956,"87":0.08438,"88":0.01319,"89":0.06065,"90":0.01055,"91":0.03692,"92":0.18986,"93":0.03164,"94":0.0211,"95":0.03956,"96":0.04483,"97":0.05274,"98":0.05801,"99":0.13712,"100":1.72724,"101":14.17388,"102":1.35014,"103":0.03692,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 66 68 72 73 77 104"},F:{"28":0.00791,"46":0.01319,"84":0.00264,"85":0.17141,"86":0.25579,"87":0.00791,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00264,"13":0.01055,"14":0.00527,"15":0.00791,"16":0.01055,"17":0.00791,"18":0.01846,"84":0.00527,"89":0.00264,"92":0.01055,"93":0.00264,"94":0.00527,"95":0.00264,"96":0.00791,"97":0.00791,"98":0.01055,"99":0.02637,"100":0.11075,"101":2.16234,_:"79 80 81 83 85 86 87 88 90 91"},E:{"4":0,"13":0.01055,"14":0.08175,"15":0.04219,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00791,"12.1":0.00791,"13.1":0.05538,"14.1":0.20569,"15.1":0.07911,"15.2-15.3":0.05801,"15.4":0.66452,"15.5":0.06856},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00154,"6.0-6.1":0.00307,"7.0-7.1":0.02767,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04151,"10.0-10.2":0.00154,"10.3":0.03229,"11.0-11.2":0.00922,"11.3-11.4":0.01691,"12.0-12.1":0.01691,"12.2-12.5":0.53655,"13.0-13.1":0.02152,"13.2":0.01845,"13.3":0.07994,"13.4-13.7":0.20294,"14.0-14.4":0.63956,"14.5-14.8":1.60658,"15.0-15.1":0.55807,"15.2-15.3":1.40364,"15.4":10.15603},P:{"4":0.14277,"5.0-5.4":0.02027,"6.2-6.4":0.07095,"7.2-7.4":0.32632,"8.2":0.01022,"9.2":0.05099,"10.1":0.1419,"11.1-11.2":0.35692,"12.0":0.09178,"13.0":0.35692,"14.0":0.46909,"15.0":0.27533,"16.0":1.64181},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00627,"4.4":0,"4.4.3-4.4.4":0.06736},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.27895,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.08099},Q:{"10.4":0},O:{"0":0.64794},H:{"0":0.39734},L:{"0":52.12861},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PA.js index c97cfe88985222..15ace812d39b89 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PA.js @@ -1 +1 @@ -module.exports={C:{"41":0.00389,"43":0.00389,"44":0.00389,"45":0.00389,"46":0.00389,"47":0.00778,"48":0.00389,"49":0.00389,"50":0.00778,"51":0.20228,"52":0.17505,"53":0.20617,"54":0.10892,"55":0.19839,"56":0.13615,"57":0.14004,"58":0.05446,"59":0.05057,"65":0.00778,"72":0.00778,"73":0.03501,"78":0.01945,"83":0.00389,"84":0.00389,"85":0.00389,"88":0.00778,"90":0.04668,"91":0.01945,"93":0.01556,"95":0.00389,"96":0.00778,"97":0.389,"98":0.83635,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 60 61 62 63 64 66 67 68 69 70 71 74 75 76 77 79 80 81 82 86 87 89 92 94 99 100 3.5 3.6"},D:{"38":0.01556,"39":0.05446,"40":0.05446,"41":0.05835,"42":0.06224,"43":0.06224,"44":0.06613,"45":0.0778,"46":0.0778,"47":0.08558,"48":0.06224,"49":0.08169,"50":0.04279,"51":0.05446,"52":0.04668,"53":0.05057,"54":0.05446,"55":0.05835,"56":0.06613,"57":0.06224,"58":0.08169,"59":0.07391,"60":0.0778,"61":0.07002,"62":0.07391,"63":0.07002,"64":0.07002,"65":0.0778,"67":0.00778,"68":0.00389,"69":0.00389,"70":0.01167,"73":0.01556,"75":0.02723,"76":0.01556,"77":0.01167,"78":0.00778,"79":0.15949,"80":0.01556,"81":0.01167,"83":0.01556,"84":0.00778,"85":0.01167,"86":0.01556,"87":0.08558,"88":0.01167,"89":0.03501,"90":0.01945,"91":0.08947,"92":0.07002,"93":0.21006,"94":0.03112,"95":0.09336,"96":0.1945,"97":0.33843,"98":4.83916,"99":17.91345,"100":0.19061,"101":0.03501,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 66 71 72 74 102 103"},F:{"28":0.01167,"42":0.00389,"43":0.00389,"46":0.00778,"82":0.00778,"83":0.66908,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00778},B:{"12":0.00778,"13":0.01167,"14":0.00778,"15":0.01167,"16":0.00778,"17":0.00778,"18":0.02723,"84":0.01167,"89":0.00389,"90":0.00389,"92":0.01556,"94":0.00389,"95":0.00389,"96":0.01945,"97":0.0389,"98":0.61073,"99":2.53628,_:"79 80 81 83 85 86 87 88 91 93"},E:{"4":0,"12":0.00778,"13":0.01556,"14":0.14004,"15":0.07391,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01167,"11.1":0.00778,"12.1":0.05057,"13.1":0.14782,"14.1":0.51737,"15.1":0.12059,"15.2-15.3":0.23729,"15.4":0.12448},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00114,"6.0-6.1":0.00572,"7.0-7.1":0.04007,"8.1-8.4":0.00229,"9.0-9.2":0.05495,"9.3":0.05838,"10.0-10.2":0.08242,"10.3":0.08471,"11.0-11.2":0.02747,"11.3-11.4":0.00572,"12.0-12.1":0.00343,"12.2-12.5":0.30908,"13.0-13.1":0.01145,"13.2":0.00343,"13.3":0.04236,"13.4-13.7":0.11447,"14.0-14.4":0.36861,"14.5-14.8":1.48016,"15.0-15.1":0.5552,"15.2-15.3":7.25655,"15.4":0.9364},P:{"4":0.19464,"5.0-5.4":0.01064,"6.2-6.4":0.02127,"7.2-7.4":0.30733,"8.2":0.0205,"9.2":0.08196,"10.1":0.01021,"11.1-11.2":0.1844,"12.0":0.02049,"13.0":0.15367,"14.0":0.15367,"15.0":0.21513,"16.0":3.47285},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00255,"4.4":0,"4.4.3-4.4.4":0.06466},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.07464,"9":0.09036,"10":0.03143,"11":0.20035,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":44.90368},S:{"2.5":0},R:{_:"0"},M:{"0":0.26273},Q:{"10.4":0.00611},O:{"0":0.20163},H:{"0":0.19089}}; +module.exports={C:{"47":0.00818,"50":0.00409,"51":0.14717,"52":0.12673,"53":0.13899,"54":0.07767,"55":0.13899,"56":0.1022,"57":0.09811,"58":0.03679,"59":0.03679,"72":0.01226,"73":0.04497,"78":0.01226,"88":0.00409,"90":0.06132,"91":0.01226,"93":0.00818,"97":0.01226,"99":0.21258,"100":1.04244,"101":0.00818,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 60 61 62 63 64 65 66 67 68 69 70 71 74 75 76 77 79 80 81 82 83 84 85 86 87 89 92 94 95 96 98 102 103 3.5 3.6"},D:{"11":0.00818,"38":0.00818,"39":0.03679,"40":0.03679,"41":0.04497,"42":0.04088,"43":0.04497,"44":0.04906,"45":0.05314,"46":0.05314,"47":0.0695,"48":0.04088,"49":0.07358,"50":0.0327,"51":0.03679,"52":0.0327,"53":0.04088,"54":0.04088,"55":0.04088,"56":0.04497,"57":0.04497,"58":0.05723,"59":0.05314,"60":0.05723,"61":0.04906,"62":0.05723,"63":0.05314,"64":0.04906,"65":0.05723,"67":0.00409,"68":0.00818,"69":0.00409,"70":0.01635,"71":0.00818,"73":0.02453,"74":0.00409,"75":0.0327,"76":0.03679,"77":0.00818,"78":0.02044,"79":0.11038,"80":0.02453,"81":0.01635,"83":0.00818,"84":0.01226,"85":0.02044,"86":0.02044,"87":0.07358,"88":0.02453,"89":0.02862,"90":0.02862,"91":0.07358,"92":0.04906,"93":0.05314,"94":0.01635,"95":0.02453,"96":0.10629,"97":0.1022,"98":0.17578,"99":0.19622,"100":4.1902,"101":19.16046,"102":1.97042,"103":0.00409,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 66 72 104"},F:{"28":0.01226,"46":0.00409,"85":0.7154,"86":0.67043,"87":0.02044,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00409},B:{"12":0.00409,"13":0.00409,"14":0.00818,"15":0.01226,"16":0.00818,"17":0.01226,"18":0.02044,"84":0.00818,"89":0.00409,"90":0.00409,"92":0.01226,"96":0.01226,"97":0.01226,"98":0.01226,"99":0.04497,"100":0.17578,"101":3.75278,_:"79 80 81 83 85 86 87 88 91 93 94 95"},E:{"4":0,"8":0.00818,"12":0.01226,"13":0.00818,"14":0.09811,"15":0.04088,_:"0 5 6 7 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00409,"11.1":0.01226,"12.1":0.02044,"13.1":0.10629,"14.1":0.41289,"15.1":0.08176,"15.2-15.3":0.11446,"15.4":1.05062,"15.5":0.14717},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0009,"6.0-6.1":0.01616,"7.0-7.1":0.03412,"8.1-8.4":0.00449,"9.0-9.2":0.04399,"9.3":0.05028,"10.0-10.2":0.05836,"10.3":0.06734,"11.0-11.2":0.02334,"11.3-11.4":0.00449,"12.0-12.1":0.0018,"12.2-12.5":0.22804,"13.0-13.1":0.01077,"13.2":0.00539,"13.3":0.01526,"13.4-13.7":0.07182,"14.0-14.4":0.21368,"14.5-14.8":0.83765,"15.0-15.1":0.2047,"15.2-15.3":0.6114,"15.4":6.47045},P:{"4":0.18392,"5.0-5.4":0.01045,"6.2-6.4":0.01045,"7.2-7.4":0.3474,"8.2":0.01022,"9.2":0.05109,"10.1":0.01017,"11.1-11.2":0.15327,"12.0":0.03065,"13.0":0.08174,"14.0":0.14305,"15.0":0.12261,"16.0":1.41005},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00578,"4.4":0,"4.4.3-4.4.4":0.05925},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.05458,"9":0.06718,"10":0.02099,"11":0.16794,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.33107},Q:{"10.4":0.00591},O:{"0":0.1478},H:{"0":0.1959},L:{"0":46.38142},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PE.js index e588859c6721a2..a280f100f1b24c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PE.js @@ -1 +1 @@ -module.exports={C:{"52":0.02065,"78":0.01032,"84":0.01549,"88":0.01032,"90":0.01032,"91":0.01032,"92":0.00516,"94":0.00516,"95":0.00516,"96":0.01032,"97":0.38199,"98":0.71236,"99":0.00516,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 89 93 100 3.5 3.6"},D:{"22":0.00516,"34":0.00516,"38":0.0413,"47":0.01032,"49":0.03097,"53":0.01549,"55":0.01032,"63":0.00516,"65":0.01032,"66":0.00516,"68":0.01032,"69":0.01032,"70":0.00516,"72":0.00516,"74":0.01032,"75":0.00516,"76":0.01032,"77":0.02065,"78":0.01032,"79":0.23745,"80":0.02065,"81":0.03613,"83":0.02581,"84":0.02065,"85":0.02065,"86":0.0413,"87":0.11873,"88":0.02065,"89":0.03613,"90":0.03097,"91":0.1497,"92":0.07227,"93":0.1497,"94":0.05678,"95":0.05678,"96":0.26842,"97":0.46974,"98":8.06821,"99":32.0457,"100":0.4078,"101":0.01032,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 56 57 58 59 60 61 62 64 67 71 73 102 103"},F:{"28":0.00516,"36":0.00516,"82":0.01032,"83":0.94465,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00516,"18":0.02581,"84":0.00516,"88":0.01032,"91":0.00516,"92":0.01032,"94":0.00516,"95":0.00516,"96":0.02581,"97":0.04646,"98":0.45942,"99":2.12158,_:"13 14 15 16 17 79 80 81 83 85 86 87 89 90 93"},E:{"4":0,"13":0.01549,"14":0.05162,"15":0.03097,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00516,"12.1":0.01032,"13.1":0.06194,"14.1":0.13421,"15.1":0.06194,"15.2-15.3":0.06711,"15.4":0.06194},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00452,"6.0-6.1":0.00028,"7.0-7.1":0.00254,"8.1-8.4":0,"9.0-9.2":0.00141,"9.3":0.01611,"10.0-10.2":0.00283,"10.3":0.02516,"11.0-11.2":0.00707,"11.3-11.4":0.00594,"12.0-12.1":0.00678,"12.2-12.5":0.132,"13.0-13.1":0.00424,"13.2":0.00283,"13.3":0.01696,"13.4-13.7":0.05483,"14.0-14.4":0.14811,"14.5-14.8":0.46694,"15.0-15.1":0.22358,"15.2-15.3":1.51473,"15.4":0.18853},P:{"4":0.22769,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.09758,"8.2":0.02028,"9.2":0.02169,"10.1":0.03042,"11.1-11.2":0.0759,"12.0":0.06084,"13.0":0.06506,"14.0":0.11927,"15.0":0.06506,"16.0":0.85657},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00312,"4.2-4.3":0.00312,"4.4":0,"4.4.3-4.4.4":0.06633},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12389,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":43.01575},S:{"2.5":0},R:{_:"0"},M:{"0":0.09192},Q:{"10.4":0},O:{"0":0.01935},H:{"0":0.17405}}; +module.exports={C:{"52":0.01112,"55":0.00556,"73":0.00556,"78":0.01112,"84":0.00556,"88":0.01112,"90":0.01112,"91":0.00556,"96":0.01112,"97":0.02224,"98":0.00556,"99":0.16121,"100":0.90056,"101":0.01112,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 85 86 87 89 92 93 94 95 102 103 3.5 3.6"},D:{"22":0.01112,"31":0.01112,"38":0.03335,"47":0.01112,"49":0.03335,"53":0.01668,"56":0.00556,"58":0.03335,"63":0.00556,"65":0.00556,"67":0.00556,"68":0.01112,"69":0.00556,"70":0.00556,"72":0.00556,"74":0.01112,"75":0.00556,"77":0.01112,"78":0.01668,"79":0.27239,"80":0.0278,"81":0.04447,"83":0.0278,"84":0.02224,"85":0.0278,"86":0.06671,"87":0.0945,"88":0.01668,"89":0.0278,"90":0.02224,"91":0.25016,"92":0.06671,"93":0.05559,"94":0.04447,"95":0.05559,"96":0.15009,"97":0.15565,"98":0.12786,"99":0.27239,"100":7.21558,"101":33.20947,"102":3.61891,"103":0.01112,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 57 59 60 61 62 64 66 71 73 76 104"},F:{"36":0.00556,"84":0.00556,"85":1.17295,"86":1.10068,"87":0.03891,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01668,"92":0.01112,"96":0.00556,"97":0.0278,"98":0.01112,"99":0.02224,"100":0.10006,"101":2.59605,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01112,"14":0.06115,"15":0.01668,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00556,"13.1":0.04447,"14.1":0.11118,"15.1":0.03335,"15.2-15.3":0.03335,"15.4":0.36134,"15.5":0.05003},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00392,"6.0-6.1":0.0009,"7.0-7.1":0.00181,"8.1-8.4":0,"9.0-9.2":0.00151,"9.3":0.01416,"10.0-10.2":0.00301,"10.3":0.01175,"11.0-11.2":0.00271,"11.3-11.4":0.00422,"12.0-12.1":0.00783,"12.2-12.5":0.1211,"13.0-13.1":0.00362,"13.2":0.00241,"13.3":0.01235,"13.4-13.7":0.03766,"14.0-14.4":0.10845,"14.5-14.8":0.3133,"15.0-15.1":0.11026,"15.2-15.3":0.27745,"15.4":1.97259},P:{"4":0.15145,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.07572,"8.2":0.01022,"9.2":0.10137,"10.1":0.03041,"11.1-11.2":0.05409,"12.0":0.06082,"13.0":0.05409,"14.0":0.08654,"15.0":0.04327,"16.0":0.35699},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00193,"4.2-4.3":0.0029,"4.4":0,"4.4.3-4.4.4":0.03958},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08339,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.11547},Q:{"10.4":0},O:{"0":0.01776},H:{"0":0.17238},L:{"0":41.23949},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PF.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PF.js index a798afed8caac3..3d0f50cb862327 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PF.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PF.js @@ -1 +1 @@ -module.exports={C:{"47":0.00867,"48":0.3338,"52":0.02168,"59":0.04335,"60":0.03468,"62":0.00434,"66":0.01301,"68":0.23409,"70":0.02168,"72":0.00434,"78":0.11705,"82":0.11705,"85":0.00434,"87":0.00434,"89":0.01301,"91":0.52887,"93":0.04335,"94":0.02168,"95":0.03468,"96":0.06069,"97":1.721,"98":2.70504,"99":0.01301,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 51 53 54 55 56 57 58 61 63 64 65 67 69 71 73 74 75 76 77 79 80 81 83 84 86 88 90 92 100 3.5 3.6"},D:{"44":0.00867,"49":0.06069,"55":0.00434,"62":0.00867,"65":0.00434,"67":0.04769,"69":0.00867,"76":0.01301,"77":0.01301,"80":0.00867,"83":0.02601,"84":0.03035,"85":0.00867,"86":0.04769,"87":0.13872,"89":0.01301,"90":0.00867,"91":0.00867,"92":0.12572,"93":0.02601,"94":0.03035,"95":0.03035,"96":0.15173,"97":0.39449,"98":4.28298,"99":16.77212,"100":0.10838,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 63 64 66 68 70 71 72 73 74 75 78 79 81 88 101 102 103"},F:{"71":0.00867,"83":0.1734,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.01301,"18":0.01301,"80":0.03468,"89":0.00867,"90":0.00867,"91":0.03902,"92":0.01301,"93":0.10838,"94":0.00867,"96":0.01301,"97":0.07803,"98":0.62858,"99":2.86977,_:"12 13 14 15 16 79 81 83 84 85 86 87 88 95"},E:{"4":0,"12":0.03468,"13":0.03468,"14":0.40316,"15":0.29478,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00434,"11.1":0.11705,"12.1":0.11271,"13.1":0.63291,"14.1":1.48257,"15.1":0.46385,"15.2-15.3":0.54188,"15.4":0.19508},G:{"8":0.01281,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0064,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.26687,"10.0-10.2":0.0064,"10.3":0.11315,"11.0-11.2":0.05337,"11.3-11.4":0.04697,"12.0-12.1":0.12383,"12.2-12.5":1.49659,"13.0-13.1":0.02562,"13.2":0.02135,"13.3":0.08326,"13.4-13.7":0.28181,"14.0-14.4":0.69599,"14.5-14.8":3.06576,"15.0-15.1":1.57985,"15.2-15.3":12.45734,"15.4":0.99701},P:{"4":0.06238,"5.0-5.4":0.02114,"6.2-6.4":0.02033,"7.2-7.4":0.10396,"8.2":0.0104,"9.2":0.03172,"10.1":0.02033,"11.1-11.2":0.15594,"12.0":0.02079,"13.0":0.11435,"14.0":0.2599,"15.0":0.04158,"16.0":3.13956},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00361,"4.2-4.3":0.00361,"4.4":0,"4.4.3-4.4.4":0.03245},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.42917,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":31.85318},S:{"2.5":0},R:{_:"0"},M:{"0":0.20961},Q:{"10.4":0},O:{"0":0.3569},H:{"0":0.1019}}; +module.exports={C:{"45":0.00403,"48":0.02418,"49":0.00403,"52":0.01612,"60":0.01209,"68":0.19747,"78":0.10075,"81":0.00403,"82":0.03627,"89":0.02418,"91":0.3627,"92":0.00403,"94":0.03224,"95":0.00806,"96":0.01209,"97":0.02015,"98":0.06851,"99":0.66495,"100":3.19176,"101":0.01612,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 83 84 85 86 87 88 90 93 102 103 3.5 3.6"},D:{"49":0.08866,"65":0.00806,"67":0.02015,"77":0.02418,"79":0.00403,"83":0.00403,"87":0.06045,"88":0.00806,"89":0.0403,"90":0.02015,"91":0.00806,"92":0.03627,"93":0.02418,"94":0.00403,"95":0.02821,"96":0.08463,"97":0.10075,"98":0.10881,"99":0.3627,"100":3.72372,"101":13.28691,"102":0.94705,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 68 69 70 71 72 73 74 75 76 78 80 81 84 85 86 103 104"},F:{"85":0.29419,"86":0.22165,"87":0.01612,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01209,"84":0.00403,"91":0.00806,"92":0.01209,"93":0.02418,"94":0.00403,"96":0.00403,"97":0.03627,"98":0.00806,"99":0.01612,"100":0.17329,"101":2.9822,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 95"},E:{"4":0,"12":0.02015,"13":0.05642,"14":0.41509,"15":0.34658,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00403,"11.1":0.49166,"12.1":0.16926,"13.1":0.63271,"14.1":1.55155,"15.1":0.31837,"15.2-15.3":0.30225,"15.4":3.39326,"15.5":0.33449},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03585,"6.0-6.1":0,"7.0-7.1":0.00422,"8.1-8.4":0.00211,"9.0-9.2":0,"9.3":0.10121,"10.0-10.2":0.00633,"10.3":0.09278,"11.0-11.2":0.01687,"11.3-11.4":0.04006,"12.0-12.1":0.0738,"12.2-12.5":0.99739,"13.0-13.1":0.03796,"13.2":0.00422,"13.3":0.04639,"13.4-13.7":0.13074,"14.0-14.4":0.87719,"14.5-14.8":2.45235,"15.0-15.1":1.05432,"15.2-15.3":2.20985,"15.4":12.89644},P:{"4":0.10208,"5.0-5.4":0.02148,"6.2-6.4":0.03059,"7.2-7.4":0.11346,"8.2":0.01032,"9.2":0.03094,"10.1":0.01021,"11.1-11.2":0.05157,"12.0":0.02063,"13.0":0.03094,"14.0":0.13409,"15.0":0.03094,"16.0":1.54719},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01791},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.40703,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":36.09167},S:{"2.5":0},R:{_:"0"},M:{"0":0.75222},Q:{"10.4":0},O:{"0":0.42387},H:{"0":0.07913}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PG.js index 15a23dfaa2d40e..53834654a8c8bb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PG.js @@ -1 +1 @@ -module.exports={C:{"33":0.00705,"35":0.00352,"47":0.00705,"48":0.00352,"52":0.00352,"56":0.01409,"60":0.00352,"61":0.01409,"70":0.00705,"72":0.01057,"75":0.00352,"77":0.05285,"78":0.05637,"82":0.03171,"83":0.01762,"84":0.01762,"85":0.02818,"87":0.01762,"88":0.03171,"89":0.01409,"90":0.00352,"91":0.10921,"92":0.01409,"93":0.03523,"94":0.01762,"95":0.08808,"96":0.03523,"97":0.66585,"98":1.00053,"99":0.04228,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 36 37 38 39 40 41 42 43 44 45 46 49 50 51 53 54 55 57 58 59 62 63 64 65 66 67 68 69 71 73 74 76 79 80 81 86 100 3.5 3.6"},D:{"34":0.00705,"37":0.01762,"40":0.00705,"43":0.01762,"47":0.01057,"49":0.02466,"51":0.00705,"52":0.00705,"55":0.01762,"56":0.00705,"60":0.01409,"61":0.02114,"63":0.00352,"64":0.01762,"65":0.00705,"67":0.02466,"68":0.01057,"69":0.09512,"70":0.11274,"72":0.01409,"73":0.00352,"74":0.02466,"75":0.00705,"76":0.01057,"77":0.00705,"78":0.01409,"79":0.00705,"80":0.01409,"81":0.07398,"83":0.03523,"84":0.02114,"85":0.01409,"86":0.01762,"87":0.06694,"88":0.13035,"89":0.05285,"90":0.04932,"91":0.03523,"92":0.09512,"93":0.05285,"94":0.07751,"95":0.05637,"96":0.19729,"97":0.16558,"98":3.61812,"99":10.7381,"100":0.11274,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 38 39 41 42 44 45 46 48 50 53 54 57 58 59 62 66 71 101 102 103"},F:{"34":0.00352,"37":0.00352,"67":0.00352,"79":0.02818,"80":0.02114,"81":0.02466,"82":0.01057,"83":0.05637,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.05637,"13":0.07046,"14":0.02818,"15":0.05285,"16":0.07046,"17":0.07398,"18":0.31355,"80":0.05285,"81":0.00352,"84":0.19377,"85":0.0458,"87":0.00705,"88":0.01762,"89":0.04932,"90":0.06341,"91":0.01762,"92":0.07751,"93":0.01762,"94":0.0458,"95":0.03875,"96":0.10217,"97":0.10921,"98":1.2401,"99":3.0333,_:"79 83 86"},E:{"4":0,"13":0.03171,"14":0.03523,"15":0.00705,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02114,"12.1":0.01057,"13.1":0.12331,"14.1":0.08808,"15.1":0.02466,"15.2-15.3":0.01762,"15.4":0.02466},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00023,"7.0-7.1":0.00093,"8.1-8.4":0.0007,"9.0-9.2":0.00023,"9.3":0.00511,"10.0-10.2":0.00023,"10.3":0.01441,"11.0-11.2":0.00279,"11.3-11.4":0.01813,"12.0-12.1":0.00953,"12.2-12.5":0.20737,"13.0-13.1":0.01581,"13.2":0.01093,"13.3":0.04417,"13.4-13.7":0.09462,"14.0-14.4":0.25433,"14.5-14.8":0.28386,"15.0-15.1":0.47146,"15.2-15.3":0.77438,"15.4":0.11601},P:{"4":0.22387,"5.0-5.4":0.02035,"6.2-6.4":0.02035,"7.2-7.4":1.26184,"8.2":0.0205,"9.2":0.09159,"10.1":0.03053,"11.1-11.2":0.33581,"12.0":0.02035,"13.0":0.31546,"14.0":0.49863,"15.0":0.2544,"16.0":1.5773},I:{"0":0,"3":0,"4":0.00232,"2.1":0,"2.2":0,"2.3":0.00232,"4.1":0.01159,"4.2-4.3":0.02666,"4.4":0,"4.4.3-4.4.4":0.25505},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0071,"11":0.45089,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":62.0221},S:{"2.5":0.24613},R:{_:"0"},M:{"0":0.20079},Q:{"10.4":0.02591},O:{"0":2.07912},H:{"0":1.41036}}; +module.exports={C:{"44":0.00349,"45":0.01047,"47":0.01396,"48":0.01047,"53":0.01396,"56":0.00698,"61":0.00349,"67":0.00698,"70":0.00698,"71":0.00349,"72":0.01047,"77":0.05586,"78":0.01746,"82":0.00349,"83":0.00698,"84":0.00698,"85":0.01047,"87":0.00698,"88":0.04538,"89":0.00698,"90":0.01047,"91":0.02793,"92":0.01746,"93":0.01047,"94":0.01396,"95":0.05586,"96":0.01047,"97":0.09426,"98":0.18153,"99":0.53063,"100":1.22185,"101":0.06982,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 46 49 50 51 52 54 55 57 58 59 60 62 63 64 65 66 68 69 73 74 75 76 79 80 81 86 102 103 3.5 3.6"},D:{"26":0.00698,"36":0.00349,"37":0.00698,"43":0.00698,"49":0.00698,"53":0.00349,"55":0.01746,"56":0.00349,"58":0.00349,"60":0.01047,"63":0.00698,"64":0.00698,"65":0.01396,"66":0.00698,"67":0.01746,"68":0.01396,"69":0.0768,"70":0.10473,"72":0.01396,"73":0.00698,"74":0.01746,"75":0.06284,"76":0.02095,"77":0.00698,"78":0.01047,"79":0.01396,"80":0.02095,"81":0.05586,"83":0.01047,"84":0.00349,"85":0.01396,"86":0.00698,"87":0.01746,"88":0.17455,"89":0.02793,"90":0.04189,"91":0.03491,"92":0.06982,"93":0.01047,"94":0.04538,"95":0.02793,"96":0.09077,"97":0.06284,"98":0.09426,"99":0.26532,"100":2.93593,"101":8.70655,"102":1.0089,"103":0.00698,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 38 39 40 41 42 44 45 46 47 48 50 51 52 54 57 59 61 62 71 104"},F:{"68":0.01047,"77":0.01746,"80":0.01047,"81":0.01396,"82":0.00349,"84":0.01396,"85":0.1152,"86":0.44336,"87":0.0384,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 78 79 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.06633,"13":0.08029,"14":0.03142,"15":0.04189,"16":0.04887,"17":0.05237,"18":0.21644,"80":0.03142,"84":0.16757,"85":0.02444,"87":0.00349,"89":0.04189,"90":0.04538,"91":0.01746,"92":0.05935,"94":0.04538,"95":0.03491,"96":0.14662,"97":0.02793,"98":0.11171,"99":0.18153,"100":0.46081,"101":3.69348,_:"79 81 83 86 88 93"},E:{"4":0,"10":0.00698,"12":0.00349,"13":0.00698,"14":0.03142,"15":0.00698,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00349,"12.1":0.01396,"13.1":0.08378,"14.1":0.1152,"15.1":0.01746,"15.2-15.3":0.01047,"15.4":0.14313,"15.5":0.01746},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0004,"6.0-6.1":0.00238,"7.0-7.1":0.0006,"8.1-8.4":0.0006,"9.0-9.2":0.0002,"9.3":0.02065,"10.0-10.2":0.0002,"10.3":0.01291,"11.0-11.2":0.00159,"11.3-11.4":0.01291,"12.0-12.1":0.03097,"12.2-12.5":0.1499,"13.0-13.1":0.00893,"13.2":0.00496,"13.3":0.02363,"13.4-13.7":0.05976,"14.0-14.4":0.12349,"14.5-14.8":0.12826,"15.0-15.1":0.328,"15.2-15.3":0.28491,"15.4":0.79001},P:{"4":0.21485,"5.0-5.4":0.01045,"6.2-6.4":0.02046,"7.2-7.4":0.86961,"8.2":0.01022,"9.2":0.06138,"10.1":0.01017,"11.1-11.2":0.29669,"12.0":0.06138,"13.0":0.21485,"14.0":0.32738,"15.0":0.24554,"16.0":1.28907},I:{"0":0,"3":0,"4":0.00216,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00648,"4.2-4.3":0.03996,"4.4":0,"4.4.3-4.4.4":0.19874},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00729,"11":0.24407,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.39054},Q:{"10.4":0.07811},O:{"0":1.77696},H:{"0":2.27389},L:{"0":64.18},S:{"2.5":0.20178}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PH.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PH.js index f7dfd0406eb5d1..2270684cf806df 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PH.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PH.js @@ -1 +1 @@ -module.exports={C:{"36":0.01442,"52":0.00961,"56":0.03365,"59":0.01442,"78":0.00961,"88":0.00481,"91":0.00961,"92":0.00481,"94":0.00481,"95":0.00961,"96":0.00961,"97":0.274,"98":0.52396,"99":0.01442,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 93 100 3.5 3.6"},D:{"49":0.02884,"52":0.00481,"53":0.00481,"55":0.00481,"58":0.00481,"63":0.00481,"65":0.01442,"66":0.06249,"67":0.00961,"69":0.01442,"70":0.00961,"71":0.00961,"72":0.00961,"73":0.00961,"74":0.02404,"75":0.02404,"76":0.03365,"77":0.01442,"78":0.1394,"79":0.07691,"80":0.03365,"81":0.02884,"83":0.04326,"84":0.03846,"85":0.02884,"86":0.03846,"87":0.08172,"88":0.05288,"89":0.04807,"90":0.05288,"91":0.12018,"92":0.15382,"93":0.10575,"94":0.07211,"95":0.08653,"96":0.25958,"97":0.44224,"98":7.37394,"99":26.54906,"100":0.25958,"101":0.02404,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 54 56 57 59 60 61 62 64 68 102 103"},F:{"28":0.03365,"46":0.00961,"82":0.00961,"83":0.44705,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00961,"18":0.01442,"84":0.00961,"92":0.00961,"95":0.00961,"96":0.01442,"97":0.02404,"98":0.71624,"99":2.91785,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 89 90 91 93 94"},E:{"4":0,"13":0.01442,"14":0.09133,"15":0.05288,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00481,"11.1":0.02404,"12.1":0.01442,"13.1":0.0673,"14.1":0.23554,"15.1":0.09614,"15.2-15.3":0.09133,"15.4":0.08172},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00812,"6.0-6.1":0.00225,"7.0-7.1":0.01127,"8.1-8.4":0.00045,"9.0-9.2":0.00676,"9.3":0.05681,"10.0-10.2":0.00541,"10.3":0.03742,"11.0-11.2":0.02074,"11.3-11.4":0.03156,"12.0-12.1":0.01849,"12.2-12.5":0.39769,"13.0-13.1":0.01127,"13.2":0.00857,"13.3":0.03021,"13.4-13.7":0.08973,"14.0-14.4":0.24844,"14.5-14.8":0.59473,"15.0-15.1":0.36973,"15.2-15.3":2.12054,"15.4":0.43646},P:{"4":0.22592,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.09758,"8.2":0.02028,"9.2":0.02169,"10.1":0.03042,"11.1-11.2":0.05379,"12.0":0.06084,"13.0":0.03227,"14.0":0.05379,"15.0":0.04303,"16.0":0.78535},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00146,"4.2-4.3":0.00437,"4.4":0,"4.4.3-4.4.4":0.03571},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":2.76403,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":44.78761},S:{"2.5":0},R:{_:"0"},M:{"0":0.09865},Q:{"10.4":0},O:{"0":0.9761},H:{"0":0.69308}}; +module.exports={C:{"36":0.00935,"52":0.00935,"56":0.00935,"59":0.01403,"66":0.00468,"78":0.00935,"88":0.00468,"91":0.00935,"95":0.00468,"97":0.00468,"98":0.00935,"99":0.17769,"100":0.72946,"101":0.0187,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 96 102 103 3.5 3.6"},D:{"49":0.0187,"52":0.04208,"53":0.00935,"55":0.00468,"58":0.00468,"63":0.00468,"65":0.00935,"66":0.06546,"67":0.00935,"68":0.00468,"69":0.01403,"70":0.00935,"71":0.00935,"72":0.00935,"73":0.00935,"74":0.02338,"75":0.0187,"76":0.03741,"77":0.01403,"78":0.06546,"79":0.11222,"80":0.02338,"81":0.02806,"83":0.07014,"84":0.03273,"85":0.02806,"86":0.04208,"87":0.07014,"88":0.04676,"89":0.04676,"90":0.07482,"91":0.10287,"92":0.1169,"93":0.07949,"94":0.04676,"95":0.06079,"96":0.14028,"97":0.15431,"98":0.16834,"99":0.34135,"100":5.52236,"101":22.80485,"102":2.58115,"103":0.0187,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 54 56 57 59 60 61 62 64 104"},F:{"28":0.04208,"36":0.00468,"46":0.00935,"84":0.00468,"85":0.67334,"86":0.51904,"87":0.02806,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00935,"18":0.01403,"84":0.00935,"89":0.00468,"92":0.00935,"95":0.00935,"96":0.00468,"97":0.00935,"98":0.00935,"99":0.0187,"100":0.1169,"101":3.24514,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 90 91 93 94"},E:{"4":0,"13":0.01403,"14":0.07482,"15":0.03741,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02338,"12.1":0.00935,"13.1":0.06546,"14.1":0.19172,"15.1":0.06079,"15.2-15.3":0.05144,"15.4":0.67334,"15.5":0.07949},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00873,"6.0-6.1":0.00194,"7.0-7.1":0.01261,"8.1-8.4":0.00194,"9.0-9.2":0.01698,"9.3":0.06162,"10.0-10.2":0.00437,"10.3":0.04318,"11.0-11.2":0.01116,"11.3-11.4":0.04561,"12.0-12.1":0.01795,"12.2-12.5":0.38231,"13.0-13.1":0.01164,"13.2":0.00922,"13.3":0.02571,"13.4-13.7":0.07811,"14.0-14.4":0.20377,"14.5-14.8":0.44538,"15.0-15.1":0.18922,"15.2-15.3":0.37746,"15.4":2.90033},P:{"4":0.31259,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.07572,"8.2":0.01022,"9.2":0.10137,"10.1":0.03041,"11.1-11.2":0.03234,"12.0":0.06082,"13.0":0.03234,"14.0":0.03234,"15.0":0.03234,"16.0":0.34493},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00581,"4.4":0,"4.4.3-4.4.4":0.04742},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":4.5404,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.11178},Q:{"10.4":0},O:{"0":0.70796},H:{"0":0.72064},L:{"0":46.6458},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PK.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PK.js index bfca32d4de6b0a..c7346a73079389 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PK.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PK.js @@ -1 +1 @@ -module.exports={C:{"11":0.00282,"31":0.00563,"47":0.00845,"50":0.00563,"52":0.03379,"57":0.00282,"68":0.00563,"72":0.00845,"78":0.00563,"79":0.00282,"80":0.00282,"81":0.00563,"82":0.00563,"83":0.00282,"84":0.01408,"88":0.00563,"89":0.00563,"90":0.00282,"91":0.01971,"94":0.02534,"95":0.0169,"96":0.0169,"97":0.39706,"98":0.68429,"99":0.03098,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 85 86 87 92 93 100 3.5 3.6"},D:{"38":0.00282,"40":0.00282,"42":0.00282,"43":0.01971,"49":0.02253,"50":0.00282,"54":0.00282,"56":0.03942,"58":0.00282,"60":0.00282,"63":0.00845,"64":0.03661,"65":0.00845,"66":0.00282,"67":0.00563,"68":0.00845,"69":0.00845,"70":0.00563,"71":0.00845,"72":0.00845,"73":0.00845,"74":0.0169,"75":0.00845,"76":0.00845,"77":0.00845,"78":0.00845,"79":0.02253,"80":0.01971,"81":0.03661,"83":0.04224,"84":0.08166,"85":0.10701,"86":0.06477,"87":0.12109,"88":0.01971,"89":0.03379,"90":0.02253,"91":0.04224,"92":0.0535,"93":0.36326,"94":0.04506,"95":0.06195,"96":0.17459,"97":0.30413,"98":4.66893,"99":15.06278,"100":0.04224,"101":0.0535,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 44 45 46 47 48 51 52 53 55 57 59 61 62 102 103"},F:{"28":0.00282,"82":0.00563,"83":0.08166,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01126,"13":0.00563,"15":0.00563,"16":0.00563,"17":0.00282,"18":0.02253,"84":0.00282,"89":0.00282,"92":0.00845,"93":0.01408,"95":0.00282,"96":0.00563,"97":0.01126,"98":0.22246,"99":0.78566,_:"14 79 80 81 83 85 86 87 88 90 91 94"},E:{"4":0,"13":0.02253,"14":0.03379,"15":0.01126,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00563,"10.1":0.00282,"11.1":0.00563,"12.1":0.00563,"13.1":0.02253,"14.1":0.09011,"15.1":0.02816,"15.2-15.3":0.02534,"15.4":0.01408},G:{"8":0.00035,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00071,"5.0-5.1":0.00354,"6.0-6.1":0.00035,"7.0-7.1":0.04286,"8.1-8.4":0.00071,"9.0-9.2":0.00319,"9.3":0.09493,"10.0-10.2":0.00319,"10.3":0.05632,"11.0-11.2":0.01275,"11.3-11.4":0.01063,"12.0-12.1":0.01027,"12.2-12.5":0.34358,"13.0-13.1":0.01098,"13.2":0.00319,"13.3":0.02232,"13.4-13.7":0.08501,"14.0-14.4":0.1895,"14.5-14.8":0.46897,"15.0-15.1":0.29399,"15.2-15.3":1.73632,"15.4":0.14806},P:{"4":0.21274,"5.0-5.4":0.01064,"6.2-6.4":0.02127,"7.2-7.4":0.05319,"8.2":0.13519,"9.2":0.03191,"10.1":0.01021,"11.1-11.2":0.04255,"12.0":0.02127,"13.0":0.07446,"14.0":0.0851,"15.0":0.07446,"16.0":1.29772},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00138,"4.2-4.3":0.00688,"4.4":0,"4.4.3-4.4.4":0.0564},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00563,"9":0.00563,"11":0.13235,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":61.6085},S:{"2.5":0.12213},R:{_:"0"},M:{"0":0.07902},Q:{"10.4":0},O:{"0":4.49718},H:{"0":1.73434}}; +module.exports={C:{"11":0.00253,"47":0.00506,"50":0.00253,"52":0.03037,"56":0.00253,"68":0.00506,"72":0.00506,"78":0.00759,"79":0.00253,"80":0.01012,"81":0.00506,"82":0.00506,"83":0.00506,"84":0.00506,"88":0.00506,"89":0.00253,"91":0.01266,"94":0.00506,"95":0.01519,"96":0.00759,"97":0.01266,"98":0.0329,"99":0.15439,"100":0.85801,"101":0.0329,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 85 86 87 90 92 93 102 103 3.5 3.6"},D:{"40":0.00506,"43":0.01519,"49":0.01772,"50":0.00253,"56":0.03037,"62":0.00506,"63":0.00759,"64":0.02025,"65":0.00759,"67":0.00506,"68":0.00759,"69":0.00506,"70":0.00506,"71":0.00506,"72":0.00759,"73":0.00759,"74":0.02025,"75":0.01012,"76":0.01012,"77":0.01772,"78":0.01266,"79":0.02784,"80":0.02025,"81":0.02531,"83":0.05315,"84":0.09365,"85":0.27335,"86":0.07846,"87":0.08859,"88":0.02278,"89":0.03543,"90":0.02025,"91":0.0329,"92":0.03797,"93":0.03543,"94":0.02784,"95":0.04303,"96":0.0734,"97":0.06834,"98":0.11896,"99":0.16705,"100":2.16907,"101":13.38393,"102":1.50088,"103":0.02784,"104":0.00506,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 46 47 48 51 52 53 54 55 57 58 59 60 61 66"},F:{"28":0.00253,"69":0.00253,"71":0.00506,"79":0.00506,"84":0.00759,"85":0.23032,"86":0.34422,"87":0.03797,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 72 73 74 75 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01012,"13":0.00506,"15":0.00506,"16":0.00759,"17":0.00253,"18":0.03037,"84":0.00506,"89":0.00253,"92":0.00759,"96":0.00253,"97":0.00253,"98":0.00759,"99":0.01519,"100":0.04809,"101":0.87826,_:"14 79 80 81 83 85 86 87 88 90 91 93 94 95"},E:{"4":0,"13":0.00506,"14":0.02531,"15":0.00759,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00253,"10.1":0.00253,"11.1":0.00253,"12.1":0.00506,"13.1":0.02531,"14.1":0.0734,"15.1":0.01772,"15.2-15.3":0.01772,"15.4":0.13414,"15.5":0.01772},G:{"8":0,"3.2":0.00117,"4.0-4.1":0,"4.2-4.3":0.00156,"5.0-5.1":0.00234,"6.0-6.1":0.00039,"7.0-7.1":0.04611,"8.1-8.4":0.00078,"9.0-9.2":0.00156,"9.3":0.07346,"10.0-10.2":0.0043,"10.3":0.05353,"11.0-11.2":0.00977,"11.3-11.4":0.01211,"12.0-12.1":0.00977,"12.2-12.5":0.3329,"13.0-13.1":0.00781,"13.2":0.00899,"13.3":0.0211,"13.4-13.7":0.06408,"14.0-14.4":0.17036,"14.5-14.8":0.36846,"15.0-15.1":0.16606,"15.2-15.3":0.37745,"15.4":2.17169},P:{"4":0.18805,"5.0-5.4":0.01045,"6.2-6.4":0.01045,"7.2-7.4":0.05224,"8.2":0.01022,"9.2":0.01045,"10.1":0.1419,"11.1-11.2":0.03134,"12.0":0.02089,"13.0":0.07313,"14.0":0.06268,"15.0":0.05224,"16.0":0.56414},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00092,"4.2-4.3":0.00459,"4.4":0,"4.4.3-4.4.4":0.04677},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00253,"9":0.00506,"11":0.08859,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.07468},Q:{"10.4":0},O:{"0":3.79374},H:{"0":1.61908},L:{"0":65.92892},S:{"2.5":0.11949}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PL.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PL.js index 5e57a76f7003d6..639dfcd0f5d9dd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PL.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PL.js @@ -1 +1 @@ -module.exports={C:{"51":0.00348,"52":0.08359,"66":0.00348,"68":0.00697,"72":0.01045,"78":0.0209,"79":0.00348,"82":0.00697,"83":0.00348,"84":0.01393,"86":0.00348,"87":0.0209,"88":0.01742,"89":0.01742,"90":0.01045,"91":0.09404,"92":0.01393,"93":0.03831,"94":0.04876,"95":0.8394,"96":0.05921,"97":1.14591,"98":3.51783,"99":0.01045,"100":0.00348,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 80 81 85 3.5 3.6"},D:{"34":0.00348,"48":0.00348,"49":0.04528,"58":0.00348,"63":0.01045,"70":0.00348,"71":0.00697,"72":0.00348,"74":0.00348,"75":0.00348,"76":0.02786,"78":0.00697,"79":0.13932,"80":0.00697,"81":0.00697,"83":0.01393,"84":0.03483,"85":0.01045,"86":0.0209,"87":0.03135,"88":0.01393,"89":0.0209,"90":0.01393,"91":0.01742,"92":0.02438,"93":0.10101,"94":0.05225,"95":0.07314,"96":0.13235,"97":0.18808,"98":2.84909,"99":14.51018,"100":0.00697,"101":0.00348,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 59 60 61 62 64 65 66 67 68 69 73 77 102 103"},F:{"36":0.01045,"68":0.00697,"73":0.01045,"75":0.01045,"76":0.00697,"77":0.01393,"78":0.01742,"79":0.01393,"80":0.01393,"81":0.00697,"82":0.03483,"83":2.1316,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00348,"18":0.00697,"91":0.00697,"92":0.01045,"93":0.00348,"94":0.00697,"95":0.00348,"96":0.01742,"97":0.03135,"98":0.42493,"99":1.87734,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90"},E:{"4":0,"13":0.00697,"14":0.0418,"15":0.03483,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00348,"12.1":0.01045,"13.1":0.04528,"14.1":0.10449,"15.1":0.05573,"15.2-15.3":0.05921,"15.4":0.05225},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00056,"7.0-7.1":0.00056,"8.1-8.4":0.00056,"9.0-9.2":0.00056,"9.3":0.01183,"10.0-10.2":0,"10.3":0.00676,"11.0-11.2":0.00169,"11.3-11.4":0.00169,"12.0-12.1":0.00676,"12.2-12.5":0.07889,"13.0-13.1":0.01071,"13.2":0.00338,"13.3":0.0186,"13.4-13.7":0.06424,"14.0-14.4":0.16906,"14.5-14.8":0.62663,"15.0-15.1":0.30036,"15.2-15.3":3.86405,"15.4":0.46378},P:{"4":0.08213,_:"5.0-5.4 6.2-6.4 8.2 10.1","7.2-7.4":0.01027,"9.2":0.01027,"11.1-11.2":0.07187,"12.0":0.02053,"13.0":0.08213,"14.0":0.16426,"15.0":0.07187,"16.0":2.48449},I:{"0":0,"3":0,"4":0.00136,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00625,"4.2-4.3":0.00462,"4.4":0,"4.4.3-4.4.4":0.01385},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06269,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":53.41607},S:{"2.5":0},R:{_:"0"},M:{"0":0.6126},Q:{"10.4":0},O:{"0":0.02607},H:{"0":2.41859}}; +module.exports={C:{"51":0.00353,"52":0.09895,"68":0.00707,"72":0.00707,"78":0.01767,"79":0.00353,"81":0.00353,"83":0.00353,"84":0.0106,"86":0.00353,"87":0.00707,"88":0.01767,"89":0.01414,"90":0.00353,"91":0.08128,"92":0.00707,"93":0.03534,"94":0.05301,"95":0.0212,"96":0.0212,"97":0.02827,"98":0.07068,"99":0.93651,"100":4.17365,"101":0.01414,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 80 82 85 102 103 3.5 3.6"},D:{"38":0.00353,"49":0.06361,"58":0.00353,"63":0.0106,"69":0.00353,"71":0.00707,"74":0.00353,"75":0.00353,"76":0.04594,"77":0.00353,"78":0.00707,"79":0.23678,"80":0.00707,"81":0.0106,"83":0.0106,"84":0.03534,"85":0.0212,"86":0.03181,"87":0.03181,"88":0.01414,"89":0.0212,"90":0.0106,"91":0.0212,"92":0.03534,"93":0.01767,"94":0.02827,"95":0.08128,"96":0.07421,"97":0.07421,"98":0.10249,"99":0.19437,"100":3.39617,"101":12.63052,"102":1.21923,"103":0.00353,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 64 65 66 67 68 70 72 73 104"},F:{"36":0.0106,"73":0.00707,"78":0.00707,"79":0.00707,"80":0.00707,"82":0.0106,"83":0.0106,"84":0.06008,"85":2.8166,"86":2.61869,"87":0.07421,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00353,"17":0.00353,"18":0.00707,"84":0.00353,"86":0.00353,"92":0.0106,"96":0.0106,"97":0.0106,"98":0.02474,"99":0.03534,"100":0.15903,"101":2.50561,_:"12 13 14 16 79 80 81 83 85 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.00707,"14":0.03181,"15":0.0212,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.0106,"13.1":0.04241,"14.1":0.08482,"15.1":0.03534,"15.2-15.3":0.03181,"15.4":0.31099,"15.5":0.04594},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00108,"6.0-6.1":0.00054,"7.0-7.1":0.00108,"8.1-8.4":0.00162,"9.0-9.2":0.00162,"9.3":0.01401,"10.0-10.2":0,"10.3":0.00754,"11.0-11.2":0.00108,"11.3-11.4":0.00216,"12.0-12.1":0.00485,"12.2-12.5":0.07435,"13.0-13.1":0.01131,"13.2":0.00323,"13.3":0.01239,"13.4-13.7":0.06142,"14.0-14.4":0.13523,"14.5-14.8":0.41055,"15.0-15.1":0.1417,"15.2-15.3":0.43803,"15.4":4.0624},P:{"4":0.18469,_:"5.0-5.4 6.2-6.4 8.2 10.1","7.2-7.4":0.01026,"9.2":0.02052,"11.1-11.2":0.08209,"12.0":0.02052,"13.0":0.06156,"14.0":0.09235,"15.0":0.0513,"16.0":0.9953},I:{"0":0,"3":0,"4":0.00233,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01491,"4.2-4.3":0.00792,"4.4":0,"4.4.3-4.4.4":0.02656},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07068,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":53.78752},S:{"2.5":0},R:{_:"0"},M:{"0":0.54961},Q:{"10.4":0},O:{"0":0.03233},H:{"0":2.27723}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PM.js index 11fc67760297df..e2dec846e857c6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PM.js @@ -1 +1 @@ -module.exports={C:{"43":0.00319,"45":0.00638,"52":0.00638,"64":0.00956,"68":0.00956,"78":0.03826,"79":0.11796,"86":0.00319,"89":0.00319,"91":0.16896,"95":0.00319,"97":0.43038,"98":1.06798,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 65 66 67 69 70 71 72 73 74 75 76 77 80 81 82 83 84 85 87 88 90 92 93 94 96 99 100 3.5 3.6"},D:{"29":0.00319,"47":0.01594,"49":0.04463,"76":0.00638,"78":0.00319,"83":0.00638,"91":0.00319,"94":0.00319,"95":0.00319,"96":0.06376,"97":0.06376,"98":2.1264,"99":10.38332,"100":0.06695,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 81 84 85 86 87 88 89 90 92 93 101 102 103"},F:{"83":0.0797,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"94":0.00319,"96":0.00319,"97":0.01275,"98":0.33155,"99":2.81182,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 95"},E:{"4":0,"13":0.00319,"14":0.06057,"15":0.01913,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00638,"12.1":0.00638,"13.1":0.07651,"14.1":0.93727,"15.1":0.797,"15.2-15.3":1.07754,"15.4":0.14027},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00531,"9.3":0,"10.0-10.2":0.02123,"10.3":0.069,"11.0-11.2":0.01592,"11.3-11.4":0.01592,"12.0-12.1":0,"12.2-12.5":1.65071,"13.0-13.1":0.01592,"13.2":0,"13.3":0.069,"13.4-13.7":0.05308,"14.0-14.4":0.15923,"14.5-14.8":3.04665,"15.0-15.1":3.27489,"15.2-15.3":44.38349,"15.4":0.29193},P:{"4":0.01048,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.57506,"8.2":0.02028,"9.2":0.02091,"10.1":0.03042,"11.1-11.2":0.23002,"12.0":0.03137,"13.0":0.23002,"14.0":0.17774,"15.0":0.03144,"16.0":0.63928},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01362,"4.4":0,"4.4.3-4.4.4":0.04768},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.00638,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":14.40416},S:{"2.5":0},R:{_:"0"},M:{"0":0.02044},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{"52":0.01255,"75":0.00628,"78":0.03138,"91":0.35146,"97":0.00628,"98":0.00628,"99":0.28242,"100":1.69766,"101":0.01255,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 102 103 3.5 3.6"},D:{"23":0.00314,"29":0.01883,"49":0.02197,"61":0.04079,"63":0.0251,"76":0.00628,"77":0.00628,"78":0.01255,"83":0.05335,"84":0.00314,"86":0.04707,"89":0.00314,"90":0.01255,"91":0.04707,"94":0.00628,"96":0.10042,"97":0.01255,"98":0.01255,"99":0.46129,"100":3.20076,"101":7.30526,"102":1.09202,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 62 64 65 66 67 68 69 70 71 72 73 74 75 79 80 81 85 87 88 92 93 95 103 104"},F:{"85":0.36401,"86":0.20397,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"94":0.01255,"100":0.03138,"101":3.47377,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99"},E:{"4":0,"14":0.01569,"15":0.01569,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.08159,"14.1":0.53032,"15.1":0.54915,"15.2-15.3":0.77195,"15.4":6.50821,"15.5":1.06692},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00481,"10.0-10.2":0,"10.3":0.06258,"11.0-11.2":0.01444,"11.3-11.4":0.04333,"12.0-12.1":0,"12.2-12.5":1.68491,"13.0-13.1":0,"13.2":0,"13.3":0.20219,"13.4-13.7":0.11072,"14.0-14.4":0.12998,"14.5-14.8":3.90419,"15.0-15.1":1.97857,"15.2-15.3":6.14753,"15.4":33.83308},P:{"4":0.15641,"5.0-5.4":0.02027,"6.2-6.4":0.01043,"7.2-7.4":0.46922,"8.2":0.01022,"9.2":0.02051,"10.1":0.04171,"11.1-11.2":0.12512,"12.0":0.02085,"13.0":0.09384,"14.0":0.14598,"15.0":0.12512,"16.0":1.13955},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.09291,"4.4":0,"4.4.3-4.4.4":0.00316},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.20397,"11":0.01255,_:"7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.08921},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":19.21192},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PN.js index 674d969d8ccc0f..ce55ef378f85d6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PN.js @@ -1 +1 @@ -module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 3.5 3.6"},D:{"98":15.62674,"99":81.25326,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 100 101 102 103"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":3.13,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0},P:{"4":0.22592,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.09758,"8.2":0.02028,"9.2":0.02169,"10.1":0.03042,"11.1-11.2":0.05379,"12.0":0.06084,"13.0":0.03227,"14.0":0.05379,"15.0":0.04303,"16.0":0.78535},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":0},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 3.5 3.6"},D:{"101":77.78,"102":22.22,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 103 104"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0},P:{"4":0.31259,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.07572,"8.2":0.01022,"9.2":0.10137,"10.1":0.03041,"11.1-11.2":0.03234,"12.0":0.06082,"13.0":0.03234,"14.0":0.03234,"15.0":0.03234,"16.0":0.34493},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":0},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PR.js index feae38966cdadc..ec7ef068d354aa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PR.js @@ -1 +1 @@ -module.exports={C:{"52":0.02712,"73":0.04068,"78":0.01808,"90":0.07684,"91":0.03164,"95":0.00452,"96":0.05424,"97":0.70964,"98":1.22944,"99":0.01356,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 92 93 94 100 3.5 3.6"},D:{"49":0.04972,"54":0.0226,"56":0.00452,"58":0.00904,"65":0.01356,"67":0.00452,"73":0.00452,"75":0.01356,"76":0.00904,"77":0.01356,"78":0.00904,"79":0.06328,"80":0.00904,"81":0.01808,"83":0.01808,"84":0.05876,"85":0.01356,"86":0.02712,"87":0.42488,"88":0.01356,"89":0.05424,"90":0.02712,"91":0.03164,"92":0.03616,"93":0.0452,"94":0.06328,"95":0.0226,"96":0.16724,"97":0.4294,"98":5.89408,"99":18.28792,"100":0.1808,"101":0.01356,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 55 57 59 60 61 62 63 64 66 68 69 70 71 72 74 102 103"},F:{"79":0.00904,"82":0.01356,"83":0.23956,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00452,"16":0.00904,"17":0.01356,"18":0.02712,"85":0.00452,"90":0.00904,"91":0.00452,"92":0.00904,"93":0.00452,"94":0.00904,"95":0.00904,"96":0.02712,"97":0.18532,"98":1.48708,"99":5.50536,_:"13 14 15 79 80 81 83 84 86 87 88 89"},E:{"4":0,"12":0.00904,"13":0.0678,"14":0.3616,"15":0.18532,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.05424,"11.1":0.03164,"12.1":0.0678,"13.1":0.47912,"14.1":1.47804,"15.1":0.35708,"15.2-15.3":0.4746,"15.4":0.57404},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.11903,"10.0-10.2":0.00271,"10.3":0.03787,"11.0-11.2":0.04058,"11.3-11.4":0.03246,"12.0-12.1":0.01082,"12.2-12.5":0.33815,"13.0-13.1":0.01353,"13.2":0.01082,"13.3":0.05951,"13.4-13.7":0.21912,"14.0-14.4":0.68171,"14.5-14.8":3.53298,"15.0-15.1":1.77461,"15.2-15.3":18.12749,"15.4":2.04242},P:{"4":0.22847,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.04154,"8.2":0.02028,"9.2":0.02077,"10.1":0.03042,"11.1-11.2":0.06231,"12.0":0.01039,"13.0":0.10385,"14.0":0.0727,"15.0":0.0727,"16.0":2.35743},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00263,"4.4":0,"4.4.3-4.4.4":0.01381},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.23956,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":25.32556},S:{"2.5":0},R:{_:"0"},M:{"0":0.22468},Q:{"10.4":0},O:{"0":0.01096},H:{"0":0.10895}}; +module.exports={C:{"38":0.00423,"43":0.01269,"44":0.02537,"45":0.00846,"49":0.00423,"52":0.03383,"73":0.04229,"78":0.01692,"84":0.00846,"88":0.00846,"90":0.1015,"91":0.01692,"95":0.00423,"97":0.00423,"98":0.00846,"99":0.41444,"100":1.52667,"101":0.02115,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 85 86 87 89 92 93 94 96 102 103 3.5 3.6"},D:{"25":0.00423,"47":0.00423,"48":0.07189,"49":0.10573,"53":0.00846,"58":0.01692,"65":0.01269,"67":0.00423,"73":0.01269,"75":0.00423,"76":0.01269,"77":0.00423,"79":0.07612,"80":0.00423,"81":0.00846,"83":0.00423,"84":0.0296,"85":0.00846,"86":0.02537,"87":0.12264,"88":0.01269,"89":0.03383,"90":0.00846,"91":0.02115,"92":0.02115,"93":0.04652,"94":0.02537,"95":0.01269,"96":0.04229,"97":0.1015,"98":0.12687,"99":0.20299,"100":5.07057,"101":16.28165,"102":1.44209,"103":0.00846,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 50 51 52 54 55 56 57 59 60 61 62 63 64 66 68 69 70 71 72 74 78 104"},F:{"79":0.00423,"85":0.44827,"86":0.4229,"87":0.02537,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00423,"17":0.01269,"18":0.02537,"85":0.00423,"91":0.00423,"92":0.00846,"93":0.00846,"94":0.01692,"95":0.00846,"96":0.01269,"97":0.05075,"98":0.01692,"99":0.1311,"100":0.36792,"101":6.19971,_:"13 14 15 16 79 80 81 83 84 86 87 88 89 90"},E:{"4":0,"9":0.00846,"12":0.01269,"13":0.04229,"14":0.31718,"15":0.10995,_:"0 5 6 7 8 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.05921,"11.1":0.0296,"12.1":0.05075,"13.1":0.35524,"14.1":0.8162,"15.1":0.1607,"15.2-15.3":0.2326,"15.4":2.97722,"15.5":0.38061},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00562,"9.3":0.09555,"10.0-10.2":0,"10.3":0.02529,"11.0-11.2":0.01124,"11.3-11.4":0.0281,"12.0-12.1":0.01405,"12.2-12.5":0.27259,"13.0-13.1":0.01405,"13.2":0.00843,"13.3":0.05339,"13.4-13.7":0.15175,"14.0-14.4":0.55922,"14.5-14.8":2.15259,"15.0-15.1":1.03976,"15.2-15.3":2.28466,"15.4":21.37693},P:{"4":0.2305,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.04191,"8.2":0.01022,"9.2":0.10137,"10.1":0.03041,"11.1-11.2":0.05239,"12.0":0.06082,"13.0":0.14668,"14.0":0.08382,"15.0":0.05239,"16.0":0.95345},I:{"0":0,"3":0,"4":0.00162,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00162,"4.4":0,"4.4.3-4.4.4":0.01407},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00443,"11":0.18588,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.28855},Q:{"10.4":0},O:{"0":0.01731},H:{"0":0.08742},L:{"0":27.17313},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PS.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PS.js index 0d4b4adb12897a..74bc776560739a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PS.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PS.js @@ -1 +1 @@ -module.exports={C:{"52":0.01407,"56":0.00563,"71":0.00281,"72":0.00281,"79":0.00563,"82":0.00281,"88":0.00844,"90":0.00281,"91":0.01407,"94":0.00563,"95":0.00563,"96":0.00563,"97":0.32631,"98":0.66106,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 73 74 75 76 77 78 80 81 83 84 85 86 87 89 92 93 99 100 3.5 3.6"},D:{"31":0.00281,"35":0.01969,"38":0.01407,"41":0.00844,"43":0.00563,"49":0.01969,"58":0.00563,"60":0.00281,"63":0.00844,"67":0.00563,"68":0.00563,"69":0.00563,"71":0.00844,"72":0.00844,"73":0.00563,"74":0.00844,"76":0.00281,"77":0.21379,"78":0.02813,"79":0.07595,"80":0.00844,"81":0.01407,"83":0.01969,"84":0.01407,"85":0.01125,"86":0.02813,"87":0.05345,"88":0.00844,"89":0.16878,"90":0.01407,"91":0.02813,"92":0.0422,"93":0.14346,"94":0.0225,"95":0.03094,"96":0.18285,"97":0.29818,"98":4.77929,"99":16.21413,"100":0.16878,"101":0.19128,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 36 37 39 40 42 44 45 46 47 48 50 51 52 53 54 55 56 57 59 61 62 64 65 66 70 75 102 103"},F:{"70":0.00281,"75":0.02532,"83":0.1294,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.00281,"17":0.00281,"18":0.01688,"84":0.00281,"92":0.01125,"96":0.00844,"97":0.01969,"98":0.33475,"99":1.3193,_:"12 14 15 16 79 80 81 83 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01407,"14":0.04782,"15":0.0225,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00281,"13.1":0.02813,"14.1":0.10127,"15.1":0.04501,"15.2-15.3":0.05345,"15.4":0.05345},G:{"8":0,"3.2":0.00087,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.04346,"6.0-6.1":0,"7.0-7.1":0.0226,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03216,"10.0-10.2":0.00087,"10.3":0.0113,"11.0-11.2":0.00695,"11.3-11.4":0.01651,"12.0-12.1":0.01565,"12.2-12.5":0.30508,"13.0-13.1":0.01391,"13.2":0.00348,"13.3":0.02347,"13.4-13.7":0.08866,"14.0-14.4":0.39026,"14.5-14.8":1.38632,"15.0-15.1":0.58756,"15.2-15.3":5.1168,"15.4":0.62319},P:{"4":0.07161,"5.0-5.4":0.01064,"6.2-6.4":0.02127,"7.2-7.4":0.10229,"8.2":0.0205,"9.2":0.03069,"10.1":0.01021,"11.1-11.2":0.14321,"12.0":0.06138,"13.0":0.2455,"14.0":0.19436,"15.0":0.16367,"16.0":2.32206},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0062,"4.2-4.3":0.00775,"4.4":0,"4.4.3-4.4.4":0.14416},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07314,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":58.76923},S:{"2.5":0},R:{_:"0"},M:{"0":0.11499},Q:{"10.4":0},O:{"0":0.0575},H:{"0":0.42866}}; +module.exports={C:{"52":0.01892,"78":0.01577,"83":0.00631,"88":0.00315,"91":0.00946,"95":0.00315,"98":0.01892,"99":0.17657,"100":1.12247,"101":0.00946,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 89 90 92 93 94 96 97 102 103 3.5 3.6"},D:{"22":0.00631,"38":0.02207,"43":0.00631,"49":0.02207,"53":0.00315,"56":0.00315,"58":0.00946,"60":0.00631,"63":0.00946,"69":0.00631,"70":0.00315,"71":0.00631,"72":0.00946,"73":0.00315,"74":0.00631,"76":0.00631,"77":0.29323,"78":0.01261,"79":0.06621,"80":0.00946,"81":0.01892,"83":0.01892,"84":0.01577,"85":0.00631,"86":0.05045,"87":0.0473,"88":0.01261,"89":0.16711,"90":0.01261,"91":0.02207,"92":0.01577,"93":0.01577,"94":0.01577,"95":0.02522,"96":0.05991,"97":0.08828,"98":0.11666,"99":0.29323,"100":3.23183,"101":18.62162,"102":2.06837,"103":0.01577,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 54 55 57 59 61 62 64 65 66 67 68 75 104"},F:{"28":0.00631,"48":0.00631,"70":0.00946,"84":0.00315,"85":0.43196,"86":0.44457,"87":0.03784,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.02207,"85":0.00315,"89":0.00631,"92":0.00631,"97":0.01261,"98":0.00631,"99":0.02207,"100":0.08198,"101":1.72154,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 90 91 93 94 95 96"},E:{"4":0,"14":0.05045,"15":0.03784,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.00315,"12.1":0.00631,"13.1":0.02838,"14.1":0.11036,"15.1":0.06306,"15.2-15.3":0.0473,"15.4":0.29638,"15.5":0.05045},G:{"8":0,"3.2":0.00804,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.001,"7.0-7.1":0.02311,"8.1-8.4":0.00201,"9.0-9.2":0,"9.3":0.03818,"10.0-10.2":0.00201,"10.3":0.01607,"11.0-11.2":0.00703,"11.3-11.4":0.01005,"12.0-12.1":0.01708,"12.2-12.5":0.24814,"13.0-13.1":0.01206,"13.2":0.00402,"13.3":0.03215,"13.4-13.7":0.09544,"14.0-14.4":0.35061,"14.5-14.8":1.00662,"15.0-15.1":0.27325,"15.2-15.3":0.80771,"15.4":7.08853},P:{"4":0.07249,"5.0-5.4":0.01045,"6.2-6.4":0.01045,"7.2-7.4":0.10356,"8.2":0.01022,"9.2":0.02071,"10.1":0.01017,"11.1-11.2":0.13462,"12.0":0.03107,"13.0":0.20711,"14.0":0.16569,"15.0":0.11391,"16.0":0.96308},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00231,"4.2-4.3":0.00578,"4.4":0,"4.4.3-4.4.4":0.08091},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07883,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.11638},Q:{"10.4":0},O:{"0":0.12323},H:{"0":0.51851},L:{"0":54.99848},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PT.js index a5069ad6b476f2..05547212303dec 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PT.js @@ -1 +1 @@ -module.exports={C:{"49":0.05723,"52":0.0744,"78":0.04006,"87":0.01145,"88":0.00572,"91":0.05151,"93":0.01717,"94":0.01717,"95":0.01717,"96":0.02289,"97":1.08737,"98":1.68829,"99":0.00572,"100":0.00572,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 89 90 92 3.5 3.6"},D:{"23":0.02289,"38":0.00572,"43":0.44067,"49":0.10301,"63":0.01717,"65":0.01145,"66":0.00572,"67":0.01145,"68":0.01145,"69":0.01717,"70":0.01145,"71":0.01717,"73":0.01145,"74":0.00572,"76":0.01145,"77":0.01145,"78":0.00572,"79":0.04578,"80":0.02862,"81":0.04578,"83":0.01717,"84":0.04578,"85":0.02862,"86":0.02862,"87":0.10301,"88":0.02289,"89":0.06868,"90":0.09157,"91":0.15452,"92":0.04578,"93":0.32621,"94":0.04006,"95":0.06868,"96":0.16024,"97":0.33193,"98":9.18542,"99":27.89963,"100":0.02862,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 72 75 101 102 103"},F:{"82":0.01717,"83":2.26631,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.01145,"17":0.00572,"18":0.01717,"84":0.00572,"89":0.01717,"91":0.00572,"92":0.01145,"93":0.00572,"94":0.00572,"95":0.00572,"96":0.03434,"97":0.05151,"98":1.21328,"99":4.44677,_:"12 13 14 16 79 80 81 83 85 86 87 88 90"},E:{"4":0,"13":0.03434,"14":0.18886,"15":0.12591,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00572,"11.1":0.02862,"12.1":0.04578,"13.1":0.21175,"14.1":0.52079,"15.1":0.21747,"15.2-15.3":0.29187,"15.4":0.13735},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0017,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0034,"8.1-8.4":0.00425,"9.0-9.2":0,"9.3":0.07058,"10.0-10.2":0.00085,"10.3":0.05442,"11.0-11.2":0.02466,"11.3-11.4":0.0068,"12.0-12.1":0.00765,"12.2-12.5":0.27465,"13.0-13.1":0.01871,"13.2":0.0051,"13.3":0.02381,"13.4-13.7":0.09949,"14.0-14.4":0.24744,"14.5-14.8":1.09266,"15.0-15.1":0.5289,"15.2-15.3":5.5594,"15.4":0.47193},P:{"4":0.01063,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.09758,"8.2":0.02028,"9.2":0.02169,"10.1":0.03042,"11.1-11.2":0.01063,"12.0":0.01063,"13.0":0.05316,"14.0":0.05316,"15.0":0.0319,"16.0":1.40345},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0057,"4.2-4.3":0.00855,"4.4":0,"4.4.3-4.4.4":0.06271},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.3491,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":24.48743},S:{"2.5":0},R:{_:"0"},M:{"0":0.17532},Q:{"10.4":0},O:{"0":0.16676},H:{"0":0.22265}}; +module.exports={C:{"49":0.04075,"52":0.04657,"78":0.03493,"87":0.01164,"88":0.01746,"91":0.05239,"94":0.00582,"95":0.01164,"96":0.00582,"97":0.02911,"98":0.02328,"99":0.50061,"100":2.51467,"101":0.01746,"102":0.00582,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 89 90 92 93 103 3.5 3.6"},D:{"23":0.03493,"43":0.2503,"49":0.08732,"63":0.02911,"65":0.00582,"67":0.01164,"68":0.01164,"69":0.03493,"70":0.00582,"71":0.02328,"76":0.01746,"77":0.01746,"78":0.00582,"79":0.04657,"80":0.01746,"81":0.01746,"83":0.00582,"84":0.05239,"85":0.02911,"86":0.02328,"87":0.16299,"88":0.01746,"89":0.08149,"90":0.02911,"91":0.09314,"92":0.02328,"93":0.01746,"94":0.02911,"95":0.04075,"96":0.08732,"97":0.06403,"98":0.15135,"99":0.28523,"100":5.85593,"101":29.07007,"102":2.57288,"103":0.00582,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 72 73 74 75 104"},F:{"71":0.00582,"84":0.01164,"85":1.84526,"86":1.94421,"87":0.03493,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01164,"89":0.02328,"90":0.00582,"92":0.01164,"96":0.01746,"97":0.01164,"98":0.01746,"99":0.04075,"100":0.31433,"101":5.9607,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 91 93 94 95"},E:{"4":0,"13":0.02328,"14":0.17463,"15":0.09314,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02328,"12.1":0.04075,"13.1":0.20956,"14.1":0.46568,"15.1":0.1106,"15.2-15.3":0.15717,"15.4":1.64734,"15.5":0.19209},G:{"8":0.00382,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00191,"6.0-6.1":0.00382,"7.0-7.1":0.00477,"8.1-8.4":0.00477,"9.0-9.2":0,"9.3":0.0544,"10.0-10.2":0.00095,"10.3":0.05344,"11.0-11.2":0.0105,"11.3-11.4":0.00763,"12.0-12.1":0.00477,"12.2-12.5":0.29202,"13.0-13.1":0.01336,"13.2":0.00382,"13.3":0.02672,"13.4-13.7":0.07062,"14.0-14.4":0.23572,"14.5-14.8":0.78826,"15.0-15.1":0.26721,"15.2-15.3":0.68615,"15.4":7.00182},P:{"4":0.03156,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.07572,"8.2":0.01022,"9.2":0.10137,"10.1":0.03041,"11.1-11.2":0.02104,"12.0":0.06082,"13.0":0.04208,"14.0":0.04208,"15.0":0.02104,"16.0":0.55763},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00958,"4.4":0,"4.4.3-4.4.4":0.06982},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.25612,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.28417},Q:{"10.4":0},O:{"0":0.14209},H:{"0":0.20969},L:{"0":27.47891},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PW.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PW.js index 100bf68959fec9..f322dc34c03d35 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PW.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PW.js @@ -1 +1 @@ -module.exports={C:{"86":0.00447,"89":0.04468,"95":0.00447,"96":0.27255,"97":0.85339,"98":0.86679,"99":0.00447,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 88 90 91 92 93 94 100 3.5 3.6"},D:{"33":0.00894,"43":0.07149,"49":0.02234,"75":0.21,"76":0.19659,"78":0.00447,"79":1.17955,"81":0.11617,"83":0.01787,"84":0.0134,"86":0.13404,"87":0.04468,"88":0.00894,"89":0.00447,"90":0.00894,"92":0.0134,"93":0.0134,"94":0.1117,"95":0.16532,"96":0.4334,"97":0.45574,"98":5.83968,"99":21.9915,"100":0.20106,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 77 80 85 91 101 102 103"},F:{"83":0.00447,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"83":0.00447,"91":0.02234,"96":0.01787,"97":0.0134,"98":0.74169,"99":2.94441,_:"12 13 14 15 16 17 18 79 80 81 84 85 86 87 88 89 90 92 93 94 95"},E:{"4":0,"11":0.04021,"14":1.25551,"15":0.03128,_:"0 5 6 7 8 9 10 12 13 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.00894,"12.1":0.00894,"13.1":0.1117,"14.1":1.26444,"15.1":0.15638,"15.2-15.3":0.18319,"15.4":0.09383},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0.00832,"10.3":0.26617,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.00475,"12.2-12.5":0.53829,"13.0-13.1":0,"13.2":0,"13.3":0.01307,"13.4-13.7":0.04634,"14.0-14.4":0.4658,"14.5-14.8":2.80789,"15.0-15.1":0.71059,"15.2-15.3":5.5326,"15.4":1.48891},P:{"4":0.01025,"5.0-5.4":0.01064,"6.2-6.4":0.02127,"7.2-7.4":0.16401,"8.2":0.0205,"9.2":0.03191,"10.1":0.01021,"11.1-11.2":0.03075,"12.0":0.0615,"13.0":0.03075,"14.0":0.16401,"15.0":0.41002,"16.0":3.63892},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.30829,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":40.66309},S:{"2.5":0},R:{_:"0"},M:{"0":0.11617},Q:{"10.4":0},O:{"0":0.23788},H:{"0":0.30377}}; +module.exports={C:{"88":0.02689,"91":0.01792,"97":0.03585,"98":0.02689,"99":0.48843,"100":0.19716,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 96 101 102 103 3.5 3.6"},D:{"48":0.04033,"75":0.0717,"76":0.17028,"79":0.02689,"81":0.01344,"83":0.00896,"85":0.02241,"86":1.62212,"90":0.00896,"93":0.00896,"94":0.05377,"95":0.01792,"96":0.40777,"98":0.0717,"99":0.0717,"100":3.79093,"101":23.68657,"102":1.56387,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 77 78 80 84 87 88 89 91 92 97 103 104"},F:{"85":0.01344,"86":0.01792,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"89":0.03137,"99":0.03585,"100":0.15684,"101":2.01645,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 90 91 92 93 94 95 96 97 98"},E:{"4":0,"11":0.01344,"14":0.08514,"15":0.00896,_:"0 5 6 7 8 9 10 12 13 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.00896,"12.1":0.23749,"13.1":0.22405,"14.1":0.83795,"15.1":0.02241,"15.2-15.3":0.11203,"15.4":2.41526,"15.5":0.0941},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01991,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0.00332,"12.0-12.1":0,"12.2-12.5":0.20405,"13.0-13.1":0,"13.2":0,"13.3":0.26875,"13.4-13.7":0.03484,"14.0-14.4":0.33677,"14.5-14.8":3.16036,"15.0-15.1":0.15263,"15.2-15.3":1.08497,"15.4":11.32752},P:{"4":0.18805,"5.0-5.4":0.01045,"6.2-6.4":0.01045,"7.2-7.4":0.09153,"8.2":0.01022,"9.2":0.01045,"10.1":0.01017,"11.1-11.2":0.02034,"12.0":0.02089,"13.0":0.04068,"14.0":0.04068,"15.0":0.05224,"16.0":2.22727},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.04968},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.52428,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.20424},Q:{"10.4":0},O:{"0":0.0828},H:{"0":0.66893},L:{"0":37.19096},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PY.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PY.js index 44c4cfd3608036..861087ab3fbf73 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PY.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/PY.js @@ -1 +1 @@ -module.exports={C:{"24":0.03742,"30":0.01871,"35":0.139,"38":0.00535,"43":0.00267,"47":0.00802,"52":0.39828,"56":0.00535,"57":0.00535,"60":0.00267,"61":0.00535,"64":0.00535,"66":0.00267,"68":0.00535,"69":0.00802,"72":0.00802,"73":0.0401,"77":0.00802,"78":0.00535,"84":0.00267,"86":0.00267,"88":0.03475,"89":0.00802,"90":0.00535,"91":0.01604,"93":0.00535,"94":0.00535,"95":0.00802,"96":0.02406,"97":0.41164,"98":0.85269,"99":0.00535,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 31 32 33 34 36 37 39 40 41 42 44 45 46 48 49 50 51 53 54 55 58 59 62 63 65 67 70 71 74 75 76 79 80 81 82 83 85 87 92 100 3.5 3.6"},D:{"11":0.00535,"31":0.01337,"38":0.01069,"47":0.0294,"49":0.0401,"53":0.00267,"54":0.00267,"62":0.00535,"63":0.00535,"64":0.25126,"65":0.01871,"66":0.00267,"67":0.00267,"68":0.01069,"69":0.01604,"70":0.00267,"71":0.01337,"72":0.00802,"73":0.00535,"74":0.00535,"75":0.00802,"76":0.00535,"77":0.00802,"78":0.00267,"79":0.08554,"80":0.01604,"81":0.01069,"83":0.01871,"84":0.00802,"85":0.01337,"86":0.01871,"87":0.61212,"88":0.02138,"89":0.03208,"90":0.01871,"91":0.16038,"92":0.05881,"93":0.03208,"94":0.02406,"95":0.03742,"96":0.35284,"97":0.22453,"98":3.87852,"99":13.81674,"100":0.16038,"101":0.00267,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 55 56 57 58 59 60 61 102 103"},F:{"36":0.00267,"82":0.00535,"83":0.32343,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.01069,"16":0.00267,"17":0.00535,"18":0.01069,"84":0.01069,"86":0.00267,"89":0.00267,"91":0.00267,"92":0.01069,"95":0.00802,"96":0.00802,"97":0.02673,"98":0.3074,"99":1.3071,_:"12 13 15 79 80 81 83 85 87 88 90 93 94"},E:{"4":0,"11":0.00535,"13":0.00535,"14":0.03475,"15":0.02406,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.03475,"11.1":0.00267,"12.1":0.00802,"13.1":0.05079,"14.1":0.10157,"15.1":0.0401,"15.2-15.3":0.04811,"15.4":0.03208},G:{"8":0,"3.2":0.00183,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00457,"6.0-6.1":0.00046,"7.0-7.1":0.02561,"8.1-8.4":0,"9.0-9.2":0.00229,"9.3":0.00915,"10.0-10.2":0.00274,"10.3":0.03064,"11.0-11.2":0.01692,"11.3-11.4":0.00777,"12.0-12.1":0.00412,"12.2-12.5":0.23552,"13.0-13.1":0.00366,"13.2":0.00229,"13.3":0.01006,"13.4-13.7":0.0471,"14.0-14.4":0.15137,"14.5-14.8":0.68233,"15.0-15.1":0.22821,"15.2-15.3":2.82078,"15.4":0.284},P:{"4":0.43604,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.67941,"8.2":0.02028,"9.2":0.08112,"10.1":0.03042,"11.1-11.2":0.21295,"12.0":0.06084,"13.0":0.24337,"14.0":0.45632,"15.0":0.23323,"16.0":2.92047},I:{"0":0,"3":0,"4":0.00476,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00476,"4.2-4.3":0.00476,"4.4":0,"4.4.3-4.4.4":0.08095},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00535,"11":0.09088,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":60.43485},S:{"2.5":0},R:{_:"0"},M:{"0":0.08059},Q:{"10.4":0},O:{"0":0.05128},H:{"0":0.18727}}; +module.exports={C:{"30":0.0066,"35":0.07477,"38":0.0022,"43":0.0022,"44":0.0022,"47":0.0044,"52":0.11875,"61":0.0022,"64":0.0044,"68":0.01539,"69":0.0066,"72":0.0044,"73":0.03518,"78":0.0066,"86":0.0044,"88":0.01979,"89":0.0022,"91":0.0088,"94":0.011,"95":0.0022,"96":0.0044,"97":0.0088,"98":0.011,"99":0.2111,"100":0.8774,"101":0.011,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 36 37 39 40 41 42 45 46 48 49 50 51 53 54 55 56 57 58 59 60 62 63 65 66 67 70 71 74 75 76 77 79 80 81 82 83 84 85 87 90 92 93 102 103 3.5 3.6"},D:{"27":0.0066,"31":0.0022,"38":0.0066,"47":0.01539,"49":0.02859,"52":0.0044,"55":0.0022,"58":0.0088,"60":0.0022,"62":0.0044,"63":0.0022,"64":0.02419,"65":0.03079,"68":0.0066,"69":0.0088,"71":0.0044,"73":0.0066,"74":0.0066,"75":0.0022,"76":0.0066,"77":0.0066,"78":0.0044,"79":0.06597,"80":0.0088,"81":0.0088,"83":0.01319,"84":0.0044,"85":0.0088,"86":0.02859,"87":0.8752,"88":0.0066,"89":0.03079,"90":0.0088,"91":0.08576,"92":0.03518,"93":0.01319,"94":0.01759,"95":0.01759,"96":0.05278,"97":0.09016,"98":0.23749,"99":0.10555,"100":2.46948,"101":10.92243,"102":1.18086,"103":0.0088,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 53 54 56 57 59 61 66 67 70 72 104"},F:{"36":0.0044,"78":0.0066,"85":0.47279,"86":0.36064,"87":0.01319,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.03079,"17":0.0044,"18":0.0088,"91":0.02639,"92":0.0066,"94":0.0022,"96":0.0022,"97":0.0044,"98":0.0088,"99":0.011,"100":0.05937,"101":1.35239,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 89 90 93 95"},E:{"4":0,"14":0.01759,"15":0.0066,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1","5.1":0.01759,"13.1":0.02199,"14.1":0.05717,"15.1":0.01539,"15.2-15.3":0.01539,"15.4":0.36064,"15.5":0.03738},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00367,"6.0-6.1":0,"7.0-7.1":0.01885,"8.1-8.4":0,"9.0-9.2":0.00419,"9.3":0.00681,"10.0-10.2":0.00105,"10.3":0.01362,"11.0-11.2":0.00681,"11.3-11.4":0.00733,"12.0-12.1":0.00471,"12.2-12.5":0.26081,"13.0-13.1":0.00367,"13.2":0.00314,"13.3":0.01257,"13.4-13.7":0.04556,"14.0-14.4":0.15135,"14.5-14.8":0.54518,"15.0-15.1":0.11364,"15.2-15.3":0.29066,"15.4":3.74085},P:{"4":0.4156,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.65887,"8.2":0.01022,"9.2":0.10137,"10.1":0.03041,"11.1-11.2":0.16218,"12.0":0.06082,"13.0":0.18246,"14.0":0.53724,"15.0":0.17232,"16.0":1.30761},I:{"0":0,"3":0,"4":0.00382,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00382,"4.2-4.3":0.00382,"4.4":0,"4.4.3-4.4.4":0.08215},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0022,"11":0.05937,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.06241},Q:{"10.4":0},O:{"0":0.0312},H:{"0":0.16248},L:{"0":68.05846},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/QA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/QA.js index 6a0b2761c5c33d..2798bf5d6e9692 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/QA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/QA.js @@ -1 +1 @@ -module.exports={C:{"38":0.07328,"52":0.00319,"65":0.00319,"78":0.00637,"84":0.01274,"91":0.01912,"93":0.00319,"95":0.01593,"96":0.00319,"97":0.25807,"98":0.43648,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 92 94 99 100 3.5 3.6"},D:{"38":0.00956,"41":0.00637,"49":0.0223,"61":0.00637,"65":0.00637,"67":0.00637,"68":0.01274,"69":0.00637,"73":0.00319,"74":0.00637,"75":0.01593,"76":0.00956,"78":0.00319,"79":0.06372,"80":0.00956,"83":0.01274,"84":0.0223,"85":0.00956,"86":0.04142,"87":0.07009,"88":0.00956,"89":0.03505,"90":0.01274,"91":0.02867,"92":0.07009,"93":0.04142,"94":0.02867,"95":0.03823,"96":0.11788,"97":0.19435,"98":6.15217,"99":15.64007,"100":0.2039,"101":0.00956,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 62 63 64 66 70 71 72 77 81 102 103"},F:{"28":0.01593,"40":0.00637,"46":0.00637,"82":0.00319,"83":0.20709,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00637,"18":0.02549,"84":0.00956,"85":0.00637,"91":0.00637,"92":0.00319,"94":0.00637,"95":0.01274,"96":0.0223,"97":0.04142,"98":0.63401,"99":2.14736,_:"12 13 14 15 16 79 80 81 83 86 87 88 89 90 93"},E:{"4":0,"13":0.02549,"14":0.11788,"15":0.08284,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00956,"12.1":0.0223,"13.1":0.12425,"14.1":0.41099,"15.1":0.18797,"15.2-15.3":0.21028,"15.4":0.12107},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00409,"6.0-6.1":0.00273,"7.0-7.1":0.0109,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04771,"10.0-10.2":0,"10.3":0.0368,"11.0-11.2":0.03816,"11.3-11.4":0.0109,"12.0-12.1":0.00818,"12.2-12.5":0.30668,"13.0-13.1":0.00682,"13.2":0.00409,"13.3":0.02862,"13.4-13.7":0.1472,"14.0-14.4":0.41844,"14.5-14.8":1.40117,"15.0-15.1":0.88868,"15.2-15.3":8.83911,"15.4":1.42571},P:{"4":0.17696,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.06246,"8.2":0.02028,"9.2":0.02077,"10.1":0.03042,"11.1-11.2":0.05205,"12.0":0.02082,"13.0":0.05205,"14.0":0.08328,"15.0":0.05205,"16.0":2.30049},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.02725},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14018,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":47.61878},S:{"2.5":0},R:{_:"0"},M:{"0":0.08857},Q:{"10.4":0},O:{"0":4.09461},H:{"0":1.12877}}; +module.exports={C:{"34":0.00859,"38":0.05438,"47":0.00572,"78":0.00572,"91":0.01431,"97":0.00286,"98":0.00572,"99":0.10589,"100":0.49799,"101":0.00859,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 102 103 3.5 3.6"},D:{"38":0.01431,"41":0.00572,"49":0.01717,"65":0.01431,"67":0.00859,"68":0.00572,"69":0.00572,"71":0.01431,"73":0.00286,"74":0.00572,"75":0.01717,"76":0.01431,"78":0.00572,"79":0.0601,"80":0.00859,"81":0.00286,"83":0.01145,"84":0.02576,"85":0.00859,"86":0.02576,"87":0.06869,"88":0.01145,"89":0.03148,"90":0.00859,"91":0.0229,"92":0.03148,"93":0.03434,"94":0.01145,"95":0.01431,"96":0.04293,"97":0.05152,"98":0.06583,"99":0.18889,"100":2.84197,"101":14.96254,"102":1.50541,"103":0.00572,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 70 72 77 104"},F:{"28":0.01431,"40":0.01145,"46":0.00859,"85":0.2862,"86":0.28906,"87":0.02003,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01431,"84":0.00286,"89":0.00572,"92":0.00572,"94":0.00572,"95":0.00572,"96":0.01431,"97":0.02003,"98":0.01431,"99":0.05724,"100":0.17458,"101":2.39263,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 90 91 93"},E:{"4":0,"13":0.02003,"14":0.1202,"15":0.04579,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01145,"12.1":0.04007,"13.1":0.07441,"14.1":0.38923,"15.1":0.07727,"15.2-15.3":0.08586,"15.4":1.1677,"15.5":0.12307},G:{"8":0.00264,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00925,"6.0-6.1":0,"7.0-7.1":0.01982,"8.1-8.4":0,"9.0-9.2":0.00396,"9.3":0.04624,"10.0-10.2":0,"10.3":0.04227,"11.0-11.2":0.01585,"11.3-11.4":0.00793,"12.0-12.1":0.00528,"12.2-12.5":0.2695,"13.0-13.1":0.00661,"13.2":0.00528,"13.3":0.03171,"13.4-13.7":0.11097,"14.0-14.4":0.37782,"14.5-14.8":0.97362,"15.0-15.1":0.41085,"15.2-15.3":1.03307,"15.4":9.83264},P:{"4":0.07247,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.05176,"8.2":0.01022,"9.2":0.10137,"10.1":0.03041,"11.1-11.2":0.05176,"12.0":0.02071,"13.0":0.03106,"14.0":0.06212,"15.0":0.03106,"16.0":0.80752},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00292,"4.4":0,"4.4.3-4.4.4":0.01849},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.09445,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.08566},Q:{"10.4":0},O:{"0":3.54759},H:{"0":1.02719},L:{"0":52.09717},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RE.js index 88be0258274972..ab1db396a45dbe 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RE.js @@ -1 +1 @@ -module.exports={C:{"11":0.00434,"23":0.00868,"41":0.00868,"48":0.00868,"49":0.01302,"52":0.03037,"54":0.00434,"56":0.03905,"57":0.00868,"60":0.01302,"61":0.01302,"68":0.01302,"78":0.1779,"84":0.03905,"85":0.00868,"87":0.00434,"88":0.01302,"89":0.11281,"91":0.16054,"92":0.00434,"93":0.00434,"94":0.01302,"95":0.02603,"96":0.06075,"97":1.82238,"98":3.48422,"99":0.00868,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 50 51 53 55 58 59 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 86 90 100 3.5 3.6"},D:{"34":0.00434,"47":0.01302,"49":0.0781,"53":0.00434,"54":0.00868,"58":0.00434,"61":0.00434,"62":0.00868,"63":0.00868,"67":0.0217,"68":0.00434,"71":0.00868,"72":0.00434,"73":0.00434,"76":0.03471,"77":0.00868,"79":0.14319,"80":0.00868,"81":0.00868,"83":0.01302,"84":0.00868,"85":0.01736,"86":0.01302,"87":0.16054,"88":0.01302,"89":0.02603,"90":0.01302,"91":0.01736,"92":0.02603,"93":0.00868,"94":0.03037,"95":0.0781,"96":0.13017,"97":0.28204,"98":5.26321,"99":16.40142,"100":0.12583,"101":0.00434,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 55 56 57 59 60 64 65 66 69 70 74 75 78 102 103"},F:{"28":0.00868,"82":0.00434,"83":0.56841,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00434,"15":0.00868,"16":0.01302,"17":0.32543,"18":0.0217,"84":0.0217,"89":0.01302,"90":0.00434,"92":0.0217,"94":0.00434,"95":0.00868,"96":0.03905,"97":0.05641,"98":1.05438,"99":4.78158,_:"12 13 79 80 81 83 85 86 87 88 91 93"},E:{"4":0,"11":0.00868,"12":0.00868,"13":0.05641,"14":0.21261,"15":0.1562,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01736,"11.1":0.05641,"12.1":0.09112,"13.1":0.47295,"14.1":0.73329,"15.1":0.24732,"15.2-15.3":0.37315,"15.4":0.21261},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00758,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.09701,"10.0-10.2":0.00909,"10.3":0.08943,"11.0-11.2":0.01213,"11.3-11.4":0.01667,"12.0-12.1":0.02122,"12.2-12.5":0.44261,"13.0-13.1":0.02577,"13.2":0.00455,"13.3":0.06973,"13.4-13.7":0.14248,"14.0-14.4":0.53659,"14.5-14.8":1.87655,"15.0-15.1":0.91402,"15.2-15.3":9.92841,"15.4":0.95798},P:{"4":0.0416,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.06239,"8.2":0.02028,"9.2":0.0104,"10.1":0.03042,"11.1-11.2":0.14559,"12.0":0.0208,"13.0":0.09359,"14.0":0.13519,"15.0":0.07279,"16.0":2.48537},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00197,"4.2-4.3":0.00118,"4.4":0,"4.4.3-4.4.4":0.02516},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14753,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":38.423},S:{"2.5":0},R:{_:"0"},M:{"0":0.43582},Q:{"10.4":0},O:{"0":0.3679},H:{"0":0.19827}}; +module.exports={C:{"11":0.00823,"32":0.01647,"48":0.00412,"49":0.00412,"51":0.00412,"52":0.02059,"53":0.00412,"54":0.00412,"55":0.02882,"56":0.02059,"57":0.00412,"60":0.02882,"68":0.01647,"70":0.01235,"72":0.01647,"78":0.13998,"82":0.02882,"85":0.01235,"88":0.00412,"89":0.23467,"91":0.15645,"93":0.00823,"95":0.00823,"96":0.00823,"97":0.0247,"98":0.03705,"99":1.01278,"100":5.1092,"101":0.02059,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 58 59 61 62 63 64 65 66 67 69 71 73 74 75 76 77 79 80 81 83 84 86 87 90 92 94 102 103 3.5 3.6"},D:{"47":0.05352,"49":0.03705,"54":0.01647,"57":0.00412,"58":0.00823,"61":0.01235,"63":0.01235,"64":0.00412,"65":0.01235,"67":0.01235,"68":0.00412,"70":0.01235,"71":0.01235,"72":0.00823,"75":0.00412,"76":0.01235,"78":0.00412,"79":0.06587,"80":0.02882,"81":0.00823,"83":0.00823,"84":0.0247,"85":0.03294,"86":0.0247,"87":0.12763,"88":0.00823,"89":0.0247,"90":0.01647,"91":0.01647,"92":0.07822,"93":0.00412,"94":0.00412,"95":0.0247,"96":0.07822,"97":0.04117,"98":0.06176,"99":0.37465,"100":4.0923,"101":14.70181,"102":1.50271,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 55 56 59 60 62 66 69 73 74 77 103 104"},F:{"28":0.00412,"63":0.00412,"78":0.00412,"85":0.86869,"86":0.40347,"87":0.03705,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00412,"16":0.00823,"17":0.01235,"18":0.02882,"84":0.00823,"86":0.01235,"87":0.00412,"89":0.00412,"92":0.01235,"95":0.00823,"96":0.00823,"97":0.03705,"98":0.0247,"99":0.0494,"100":0.19762,"101":4.55752,_:"12 13 15 79 80 81 83 85 88 90 91 93 94"},E:{"4":0,"11":0.00823,"13":0.02882,"14":0.13998,"15":0.05352,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00823,"11.1":0.04117,"12.1":0.08646,"13.1":0.40758,"14.1":0.62578,"15.1":0.16468,"15.2-15.3":0.18938,"15.4":1.69209,"15.5":0.31289},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00309,"6.0-6.1":0,"7.0-7.1":0.00464,"8.1-8.4":0,"9.0-9.2":0.00155,"9.3":0.10815,"10.0-10.2":0.017,"10.3":0.0618,"11.0-11.2":0.00618,"11.3-11.4":0.02163,"12.0-12.1":0.02318,"12.2-12.5":0.40325,"13.0-13.1":0.02472,"13.2":0.00309,"13.3":0.04481,"13.4-13.7":0.15141,"14.0-14.4":0.45269,"14.5-14.8":1.22366,"15.0-15.1":0.49441,"15.2-15.3":1.01045,"15.4":11.39305},P:{"4":0.03107,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.08286,"8.2":0.01022,"9.2":0.01036,"10.1":0.03041,"11.1-11.2":0.09321,"12.0":0.01036,"13.0":0.08286,"14.0":0.11393,"15.0":0.04143,"16.0":1.07714},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00192,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.02161},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06587,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.3118},Q:{"10.4":0},O:{"0":0.553},H:{"0":0.18937},L:{"0":40.57344},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RO.js index 7c8a57dfb96fa1..6f96af9c7b28bd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RO.js @@ -1 +1 @@ -module.exports={C:{"52":0.14637,"66":0.00396,"68":0.00396,"72":0.00791,"78":0.01978,"79":0.00791,"80":0.00396,"81":0.00791,"82":0.00396,"84":0.01582,"88":0.01582,"89":0.00791,"90":0.00396,"91":0.06725,"92":0.01187,"93":0.00396,"94":0.01187,"95":0.01978,"96":0.0356,"97":1.10768,"98":1.78416,"99":0.01582,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 83 85 86 87 100 3.5 3.6"},D:{"38":0.00396,"49":0.11077,"51":0.02769,"58":0.00396,"60":0.36791,"61":0.00791,"64":0.00396,"66":0.01187,"67":0.01978,"69":0.08308,"70":0.00791,"71":0.01187,"72":0.00396,"73":0.00396,"74":0.00791,"75":0.00791,"76":0.01582,"77":0.00791,"78":0.01187,"79":0.04352,"80":0.01582,"81":0.03956,"83":0.01978,"84":0.03956,"85":0.02769,"86":0.03956,"87":0.11077,"88":0.02374,"89":0.0356,"90":0.04352,"91":0.04352,"92":0.04747,"93":0.38769,"94":0.04747,"95":0.03165,"96":0.13846,"97":0.29274,"98":6.4285,"99":20.40109,"100":0.01582,"101":0.00791,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 59 62 63 65 68 102 103"},F:{"36":0.00396,"82":0.01187,"83":0.80702,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01582,"84":0.00396,"85":0.00396,"89":0.00396,"92":0.00791,"95":0.00791,"96":0.01187,"97":0.02374,"98":0.51824,"99":1.87119,_:"12 13 14 15 16 17 79 80 81 83 86 87 88 90 91 93 94"},E:{"4":0,"13":0.01187,"14":0.06725,"15":0.03165,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00791,"12.1":0.01582,"13.1":0.06725,"14.1":0.17406,"15.1":0.06725,"15.2-15.3":0.07912,"15.4":0.05143},G:{"8":0,"3.2":0.01888,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.07317,"6.0-6.1":0,"7.0-7.1":0.0059,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02597,"10.0-10.2":0.00354,"10.3":0.03423,"11.0-11.2":0.17704,"11.3-11.4":0.01298,"12.0-12.1":0.01534,"12.2-12.5":0.24903,"13.0-13.1":0.01416,"13.2":0.00826,"13.3":0.04603,"13.4-13.7":0.14753,"14.0-14.4":0.46619,"14.5-14.8":1.63581,"15.0-15.1":0.78604,"15.2-15.3":7.27381,"15.4":0.8061},P:{"4":0.08242,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.06239,"8.2":0.02028,"9.2":0.04121,"10.1":0.03042,"11.1-11.2":0.10302,"12.0":0.04121,"13.0":0.12363,"14.0":0.28847,"15.0":0.13393,"16.0":3.20404},I:{"0":0,"3":0,"4":0.01579,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01842,"4.4":0,"4.4.3-4.4.4":0.12893},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.22154,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":42.11481},S:{"2.5":0},R:{_:"0"},M:{"0":0.20543},Q:{"10.4":0},O:{"0":0.04229},H:{"0":0.27457}}; +module.exports={C:{"52":0.13212,"68":0.00852,"78":0.01705,"79":0.00426,"80":0.00852,"81":0.00426,"84":0.00852,"88":0.00852,"89":0.00426,"91":0.05967,"92":0.00426,"94":0.00426,"95":0.01279,"96":0.01279,"97":0.02131,"98":0.02983,"99":1.00157,"100":5.77075,"101":0.02131,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 82 83 85 86 87 90 93 102 103 3.5 3.6"},D:{"38":0.00426,"39":0.00426,"49":0.09803,"58":0.00852,"60":0.3921,"61":0.00426,"62":0.06393,"64":0.00426,"66":0.02983,"67":0.02131,"69":0.10655,"70":0.00852,"71":0.01279,"73":0.00426,"74":0.00426,"75":0.01705,"76":0.01705,"77":0.00852,"78":0.00852,"79":0.03836,"80":0.01279,"81":0.02131,"83":0.01279,"84":0.04262,"85":0.02983,"86":0.04688,"87":0.07672,"88":0.02131,"89":0.02983,"90":0.02131,"91":0.03836,"92":0.03836,"93":0.01705,"94":0.01705,"95":0.02131,"96":0.05541,"97":0.06393,"98":0.0895,"99":0.179,"100":4.58591,"101":19.96747,"102":2.06281,"103":0.00852,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 63 65 68 72 104"},F:{"84":0.00852,"85":1.39794,"86":0.89502,"87":0.06819,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00426,"16":0.14491,"18":0.01705,"85":0.00426,"92":0.00852,"96":0.00852,"97":0.01279,"98":0.01279,"99":0.02131,"100":0.11081,"101":2.18641,_:"12 13 14 17 79 80 81 83 84 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01705,"14":0.04688,"15":0.02131,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00852,"12.1":0.01279,"13.1":0.05541,"14.1":0.12786,"15.1":0.04262,"15.2-15.3":0.04262,"15.4":0.43899,"15.5":0.06819},G:{"8":0,"3.2":0.01963,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.07391,"6.0-6.1":0,"7.0-7.1":0.00462,"8.1-8.4":0.00231,"9.0-9.2":0,"9.3":0.02772,"10.0-10.2":0.00115,"10.3":0.03926,"11.0-11.2":0.03003,"11.3-11.4":0.01039,"12.0-12.1":0.01155,"12.2-12.5":0.22057,"13.0-13.1":0.01039,"13.2":0.00924,"13.3":0.04966,"13.4-13.7":0.11664,"14.0-14.4":0.36839,"14.5-14.8":1.05898,"15.0-15.1":0.33952,"15.2-15.3":0.85342,"15.4":8.29172},P:{"4":0.0923,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.05128,"8.2":0.01022,"9.2":0.02051,"10.1":0.03041,"11.1-11.2":0.0923,"12.0":0.03077,"13.0":0.0923,"14.0":0.26666,"15.0":0.08205,"16.0":1.25125},I:{"0":0,"3":0,"4":0.005,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02749,"4.4":0,"4.4.3-4.4.4":0.12244},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00426,"11":0.19605,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.25821},Q:{"10.4":0},O:{"0":0.0459},H:{"0":0.27705},L:{"0":41.05235},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RS.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RS.js index 59dab384650569..8ea3e006486cf1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RS.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RS.js @@ -1 +1 @@ -module.exports={C:{"38":0.00368,"40":0.00368,"43":0.00368,"48":0.01104,"50":0.00736,"51":0.00368,"52":0.19499,"56":0.01472,"60":0.00368,"61":0.00368,"66":0.02207,"68":0.01104,"71":0.00368,"72":0.00736,"77":0.00368,"78":0.02575,"79":0.00736,"80":0.00736,"81":0.01104,"82":0.00736,"83":0.01104,"84":0.04783,"87":0.00736,"88":0.03679,"89":0.0184,"90":0.00736,"91":0.04415,"92":0.15452,"93":0.01472,"94":0.02575,"95":0.05151,"96":0.06254,"97":1.37963,"98":2.66728,"99":0.02207,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 44 45 46 47 49 53 54 55 57 58 59 62 63 64 65 67 69 70 73 74 75 76 85 86 100 3.5 3.6"},D:{"22":0.00736,"34":0.00736,"38":0.01104,"43":0.00368,"47":0.01104,"49":0.16923,"53":0.01472,"56":0.00368,"63":0.00736,"65":0.00736,"67":0.00368,"68":0.02943,"69":0.00368,"70":0.00736,"71":0.00368,"72":0.01104,"73":0.00736,"74":0.01104,"75":0.0184,"76":0.01104,"77":0.00736,"78":0.01472,"79":0.09565,"80":0.02575,"81":0.02575,"83":0.02943,"84":0.04047,"85":0.06254,"86":0.06622,"87":0.12141,"88":0.03311,"89":0.05519,"90":0.02575,"91":0.04047,"92":0.06254,"93":0.3863,"94":0.04783,"95":0.05519,"96":0.17291,"97":0.33847,"98":5.20579,"99":18.10068,"100":0.19867,"101":0.00736,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 50 51 52 54 55 57 58 59 60 61 62 64 66 102 103"},F:{"28":0.00736,"36":0.00736,"68":0.00368,"77":0.00368,"82":0.01472,"83":0.44516,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01472,"85":0.00736,"86":0.00368,"90":0.00736,"91":0.00368,"92":0.00368,"95":0.00368,"96":0.01104,"97":0.0184,"98":0.31639,"99":1.29133,_:"12 13 14 15 16 17 79 80 81 83 84 87 88 89 93 94"},E:{"4":0,"13":0.02943,"14":0.05519,"15":0.02575,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00736,"12.1":0.01472,"13.1":0.08462,"14.1":0.11037,"15.1":0.04047,"15.2-15.3":0.04783,"15.4":0.05519},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.035,"8.1-8.4":0.00539,"9.0-9.2":0.00135,"9.3":0.02558,"10.0-10.2":0.00404,"10.3":0.06058,"11.0-11.2":0.01885,"11.3-11.4":0.02962,"12.0-12.1":0.01616,"12.2-12.5":0.61121,"13.0-13.1":0.02154,"13.2":0.01077,"13.3":0.07808,"13.4-13.7":0.24368,"14.0-14.4":0.65833,"14.5-14.8":2.78411,"15.0-15.1":0.77411,"15.2-15.3":7.60244,"15.4":0.47658},P:{"4":0.05166,"5.0-5.4":0.01035,"6.2-6.4":0.02049,"7.2-7.4":0.02066,"8.2":0.02046,"9.2":0.02066,"10.1":0.06146,"11.1-11.2":0.11364,"12.0":0.03099,"13.0":0.10331,"14.0":0.12397,"15.0":0.08265,"16.0":2.33483},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.002,"4.2-4.3":0.0056,"4.4":0,"4.4.3-4.4.4":0.024},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00377,"9":0.00377,"11":0.13961,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":46.01487},S:{"2.5":0},R:{_:"0"},M:{"0":0.20227},Q:{"10.4":0},O:{"0":0.03161},H:{"0":0.36504}}; +module.exports={C:{"32":0.00371,"43":0.00371,"47":0.00371,"48":0.00742,"50":0.00742,"52":0.19668,"56":0.01113,"61":0.00742,"65":0.00371,"66":0.01484,"67":0.00371,"68":0.04824,"72":0.00742,"77":0.00371,"78":0.01856,"79":0.00742,"80":0.01113,"81":0.00742,"82":0.00371,"84":0.00742,"87":0.00742,"88":0.04824,"89":0.01484,"90":0.00742,"91":0.04082,"92":0.17442,"93":0.07793,"94":0.01856,"95":0.01856,"96":0.02227,"97":0.02598,"98":0.03711,"99":0.76076,"100":3.22857,"101":0.04453,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 40 41 42 44 45 46 49 51 53 54 55 57 58 59 60 62 63 64 69 70 71 73 74 75 76 83 85 86 102 103 3.5 3.6"},D:{"33":0.00371,"34":0.00742,"38":0.01113,"41":0.00371,"43":0.00742,"47":0.01484,"48":0.00371,"49":0.10762,"53":0.01856,"56":0.00742,"58":0.00371,"62":0.00371,"63":0.00742,"65":0.00742,"67":0.01113,"68":0.02227,"69":0.00371,"70":0.00742,"71":0.00742,"72":0.01484,"73":0.00371,"74":0.01113,"75":0.01856,"76":0.01113,"77":0.00742,"78":0.02227,"79":0.11504,"80":0.05195,"81":0.0334,"83":0.04453,"84":0.08535,"85":0.07793,"86":0.11133,"87":0.12617,"88":0.02598,"89":0.05195,"90":0.02227,"91":0.04082,"92":0.05567,"93":0.02598,"94":0.04824,"95":0.04082,"96":0.09278,"97":0.11504,"98":0.11504,"99":0.21524,"100":4.2157,"101":17.51592,"102":1.95941,"103":0.01113,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 36 37 39 40 42 44 45 46 50 51 52 54 55 57 59 60 61 64 66 104"},F:{"28":0.01113,"36":0.00742,"72":0.00742,"79":0.00371,"82":0.00371,"84":0.01856,"85":1.01681,"86":1.09846,"87":0.08164,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01113,"92":0.00371,"96":0.00742,"97":0.00742,"98":0.00742,"99":0.02598,"100":0.06309,"101":1.59202,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"12":0.00371,"13":0.01113,"14":0.03711,"15":0.02969,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00742,"12.1":0.01113,"13.1":0.05567,"14.1":0.1002,"15.1":0.02598,"15.2-15.3":0.02969,"15.4":0.31915,"15.5":0.05195},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00636,"6.0-6.1":0,"7.0-7.1":0.03055,"8.1-8.4":0.00636,"9.0-9.2":0,"9.3":0.02037,"10.0-10.2":0.00255,"10.3":0.05855,"11.0-11.2":0.01527,"11.3-11.4":0.02164,"12.0-12.1":0.014,"12.2-12.5":0.48498,"13.0-13.1":0.01782,"13.2":0.00636,"13.3":0.04837,"13.4-13.7":0.18457,"14.0-14.4":0.48625,"14.5-14.8":1.81898,"15.0-15.1":0.37296,"15.2-15.3":0.91903,"15.4":8.20767},P:{"4":0.08189,"5.0-5.4":0.01045,"6.2-6.4":0.01043,"7.2-7.4":0.02047,"8.2":0.01022,"9.2":0.03054,"10.1":0.03054,"11.1-11.2":0.09212,"12.0":0.02047,"13.0":0.10236,"14.0":0.11259,"15.0":0.06142,"16.0":0.92123},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00381,"4.2-4.3":0.00429,"4.4":0,"4.4.3-4.4.4":0.02335},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01113,"9":0.00742,"11":0.15215,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.2264},Q:{"10.4":0},O:{"0":0.03145},H:{"0":0.3751},L:{"0":47.69331},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RU.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RU.js index ff9f7ad4cd0e1d..722bd63a7cbf12 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RU.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RU.js @@ -1 +1 @@ -module.exports={C:{"33":0.0185,"38":0.0185,"44":0.01234,"45":0.0185,"50":0.06168,"51":0.03701,"52":0.41326,"53":0.05551,"54":0.0185,"55":0.09252,"56":0.08018,"57":0.00617,"60":0.0185,"65":0.00617,"68":0.02467,"69":0.00617,"70":0.0185,"71":0.01234,"72":0.02467,"75":0.00617,"78":0.06785,"79":0.02467,"80":0.03084,"81":0.04934,"82":0.03084,"83":0.0185,"84":0.03701,"85":0.01234,"86":0.03084,"87":0.02467,"88":0.04934,"89":0.04934,"90":0.05551,"91":0.14186,"92":0.03701,"93":0.03084,"94":0.03701,"95":0.28373,"96":0.11102,"97":1.06706,"98":1.89974,"99":0.00617,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 39 40 41 42 43 46 47 48 49 58 59 61 62 63 64 66 67 73 74 76 77 100 3.5 3.6"},D:{"22":0.00617,"38":0.00617,"41":0.01234,"47":0.00617,"48":0.01234,"49":0.14186,"51":0.21588,"53":0.01234,"55":0.03701,"56":0.06785,"57":0.0185,"58":0.00617,"59":0.0185,"61":0.01234,"62":0.00617,"63":0.01234,"64":0.0185,"65":0.00617,"66":0.02467,"67":0.0185,"68":0.0185,"69":0.0185,"70":0.0185,"71":0.0185,"72":0.03084,"73":0.02467,"74":0.1357,"75":0.03084,"76":0.04934,"77":0.0185,"78":0.03084,"79":0.45643,"80":0.12336,"81":0.06785,"83":0.12336,"84":0.26522,"85":0.20971,"86":0.31457,"87":0.33307,"88":0.17887,"89":0.20971,"90":0.1542,"91":0.1727,"92":0.24055,"93":0.88202,"94":0.08635,"95":0.1357,"96":0.53662,"97":0.76483,"98":5.62522,"99":16.25268,"100":0.0185,"101":0.02467,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 43 44 45 46 50 52 54 60 102 103"},F:{"36":0.03701,"54":0.00617,"60":0.01234,"68":0.01234,"69":0.00617,"70":0.01234,"71":0.01234,"72":0.00617,"73":0.01234,"74":0.00617,"75":0.01234,"76":0.01234,"77":0.25906,"78":0.1542,"79":0.20354,"80":0.1727,"81":0.12336,"82":0.09252,"83":1.0979,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 62 63 64 65 66 67 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0185},B:{"16":0.01234,"17":0.0185,"18":0.07402,"84":0.0185,"85":0.00617,"86":0.01234,"89":0.00617,"90":0.00617,"91":0.01234,"92":0.01234,"94":0.01234,"95":0.00617,"96":0.0185,"97":0.04318,"98":0.51194,"99":2.10329,_:"12 13 14 15 79 80 81 83 87 88 93"},E:{"4":0,"10":0.01234,"13":0.06168,"14":0.12953,"15":0.05551,_:"0 5 6 7 8 9 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.07402,"9.1":0.03701,"11.1":0.01234,"12.1":0.03084,"13.1":0.1357,"14.1":0.33924,"15.1":0.14186,"15.2-15.3":0.14803,"15.4":0.09252},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00561,"6.0-6.1":0.004,"7.0-7.1":0.02002,"8.1-8.4":0.00721,"9.0-9.2":0.00881,"9.3":0.06568,"10.0-10.2":0.01041,"10.3":0.06568,"11.0-11.2":0.02723,"11.3-11.4":0.02483,"12.0-12.1":0.02643,"12.2-12.5":0.33801,"13.0-13.1":0.03124,"13.2":0.01201,"13.3":0.04566,"13.4-13.7":0.1666,"14.0-14.4":0.43973,"14.5-14.8":1.21747,"15.0-15.1":0.88267,"15.2-15.3":4.26035,"15.4":0.34922},P:{"4":0.05472,"5.0-5.4":0.01094,_:"6.2-6.4 8.2","7.2-7.4":0.0985,"9.2":0.03283,"10.1":0.01094,"11.1-11.2":0.05472,"12.0":0.03283,"13.0":0.0985,"14.0":0.07661,"15.0":0.06567,"16.0":0.98502},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00374,"4.2-4.3":0.01123,"4.4":0,"4.4.3-4.4.4":0.0655},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03214,"9":0.02571,"10":0.01286,"11":0.38572,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":24.74888},S:{"2.5":0},R:{_:"0"},M:{"0":0.13412},Q:{"10.4":0.00383},O:{"0":0.21842},H:{"0":0.74372}}; +module.exports={C:{"44":0.02872,"50":0.02297,"51":0.02872,"52":0.36181,"53":0.02297,"54":0.00574,"55":0.03446,"56":0.02872,"57":0.01149,"59":0.00574,"60":0.02297,"68":0.02297,"69":0.00574,"70":0.00574,"72":0.02297,"74":0.00574,"77":0.00574,"78":0.20101,"79":0.01723,"80":0.02872,"81":0.03446,"82":0.02872,"83":0.02297,"84":0.03446,"86":0.01723,"87":0.01149,"88":0.02872,"89":0.02297,"90":0.03446,"91":0.1206,"92":0.01149,"93":0.01149,"94":0.01723,"95":0.1608,"96":0.05743,"97":0.04594,"98":0.0804,"99":0.55707,"100":2.23403,"101":0.01149,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 58 61 62 63 64 65 66 67 71 73 75 76 85 102 103 3.5 3.6"},D:{"22":0.01149,"34":0.00574,"38":0.01149,"39":0.00574,"41":0.01723,"45":0.00574,"46":0.00574,"47":0.01149,"48":0.01723,"49":0.11486,"51":0.17229,"53":0.01723,"55":0.01723,"56":0.02872,"57":0.01149,"58":0.01149,"59":0.01723,"60":0.00574,"61":0.01723,"62":0.00574,"63":0.00574,"64":0.02872,"65":0.01149,"66":0.01149,"67":0.01723,"68":0.01149,"69":0.02872,"70":0.01149,"71":0.01723,"72":0.01723,"73":0.03446,"74":0.18952,"75":0.01723,"76":0.05743,"77":0.02297,"78":0.02872,"79":0.22398,"80":0.11486,"81":0.09189,"83":0.17803,"84":0.34458,"85":0.26992,"86":0.4537,"87":0.33884,"88":0.10912,"89":0.16655,"90":0.4135,"91":0.15506,"92":0.28141,"93":0.0804,"94":0.0804,"95":0.08615,"96":0.22972,"97":0.35032,"98":0.52836,"99":0.48816,"100":3.98564,"101":15.83919,"102":1.03374,"103":0.01723,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 40 42 43 44 50 52 54 104"},F:{"36":0.04594,"37":0.01149,"42":0.00574,"47":0.00574,"54":0.00574,"60":0.00574,"68":0.01723,"69":0.00574,"70":0.01149,"71":0.01723,"72":0.01723,"73":0.01149,"75":0.00574,"76":0.01149,"77":0.05743,"78":0.02872,"79":0.0402,"80":0.02872,"81":0.02297,"82":0.03446,"83":0.01723,"84":0.09763,"85":2.55564,"86":2.97487,"87":0.13783,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 38 39 40 41 43 44 45 46 48 49 50 51 52 53 55 56 57 58 62 63 64 65 66 67 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01723},B:{"13":0.00574,"16":0.00574,"17":0.01149,"18":0.07466,"83":0.00574,"84":0.01723,"85":0.02297,"86":0.01723,"87":0.01149,"89":0.01149,"90":0.00574,"91":0.01149,"92":0.01723,"94":0.01149,"95":0.00574,"96":0.01149,"97":0.01723,"98":0.02297,"99":0.02872,"100":0.10337,"101":2.4178,_:"12 14 15 79 80 81 88 93"},E:{"4":0,"13":0.04594,"14":0.11486,"15":0.0402,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.01149,"9.1":0.01723,"11.1":0.01149,"12.1":0.02872,"13.1":0.12635,"14.1":0.28141,"15.1":0.08615,"15.2-15.3":0.09189,"15.4":0.68342,"15.5":0.0804},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00525,"6.0-6.1":0.00437,"7.0-7.1":0.01487,"8.1-8.4":0.00612,"9.0-9.2":0.00787,"9.3":0.05511,"10.0-10.2":0.01137,"10.3":0.06211,"11.0-11.2":0.02274,"11.3-11.4":0.01662,"12.0-12.1":0.02362,"12.2-12.5":0.35427,"13.0-13.1":0.02799,"13.2":0.01662,"13.3":0.05073,"13.4-13.7":0.1627,"14.0-14.4":0.4295,"14.5-14.8":1.1599,"15.0-15.1":0.67967,"15.2-15.3":1.86319,"15.4":3.76924},P:{"4":0.07676,_:"5.0-5.4 6.2-6.4 8.2 10.1","7.2-7.4":0.08773,"9.2":0.01097,"11.1-11.2":0.04386,"12.0":0.02193,"13.0":0.05483,"14.0":0.05483,"15.0":0.05483,"16.0":0.47154},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00431,"4.2-4.3":0.00948,"4.4":0,"4.4.3-4.4.4":0.05858},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02394,"9":0.02394,"10":0.00599,"11":0.37111,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":28.70991},S:{"2.5":0},R:{_:"0"},M:{"0":0.14048},Q:{"10.4":0},O:{"0":0.23839},H:{"0":0.68917}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RW.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RW.js index 970585bf5c241b..3f304bc0e080c6 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RW.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/RW.js @@ -1 +1 @@ -module.exports={C:{"31":0.00482,"37":0.00482,"40":0.00482,"41":0.00482,"47":0.01447,"50":0.00965,"52":0.01447,"56":0.00965,"68":0.00482,"72":0.00482,"78":0.03858,"82":0.00482,"88":0.00965,"89":0.00965,"91":0.02894,"93":0.00482,"94":0.00482,"95":0.01447,"96":0.02412,"97":0.97425,"98":1.83756,"99":0.12058,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 38 39 42 43 44 45 46 48 49 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 83 84 85 86 87 90 92 100 3.5 3.6"},D:{"34":0.00482,"38":0.01447,"41":0.10611,"43":0.03858,"49":0.05788,"50":0.00965,"58":0.00965,"60":0.00965,"61":0.00482,"63":0.00965,"65":0.01447,"66":0.0627,"69":0.01447,"71":0.04823,"74":0.01929,"75":0.00965,"76":0.00482,"77":0.02412,"79":0.03858,"80":0.04341,"81":0.01929,"83":0.01929,"84":0.01929,"85":0.00965,"86":0.03376,"87":0.05305,"88":0.01447,"89":0.04341,"90":0.03858,"91":0.0627,"92":0.07235,"93":0.13022,"94":0.07235,"95":0.04823,"96":0.27491,"97":0.47748,"98":6.85348,"99":22.81279,"100":0.27973,"101":0.01929,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 42 44 45 46 47 48 51 52 53 54 55 56 57 59 62 64 67 68 70 72 73 78 102 103"},F:{"82":0.01447,"83":0.03376,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.07717,"13":0.05788,"14":0.02894,"15":0.01447,"16":0.03376,"17":0.01929,"18":0.09646,"84":0.01929,"85":0.01447,"89":0.01929,"90":0.01447,"91":0.00482,"92":0.03376,"93":0.00965,"94":0.00482,"95":0.00965,"96":0.04341,"97":2.66712,"98":1.18164,"99":3.22176,_:"79 80 81 83 86 87 88"},E:{"4":0,"12":0.00482,"13":0.01929,"14":0.05788,"15":0.02412,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00482,"11.1":0.01447,"12.1":0.01929,"13.1":0.05788,"14.1":0.19292,"15.1":0.04823,"15.2-15.3":0.04823,"15.4":0.08681},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00509,"6.0-6.1":0,"7.0-7.1":0.00566,"8.1-8.4":0.00339,"9.0-9.2":0.0017,"9.3":0.02093,"10.0-10.2":0.00736,"10.3":0.06337,"11.0-11.2":0.01018,"11.3-11.4":0.01358,"12.0-12.1":0.03734,"12.2-12.5":0.58841,"13.0-13.1":0.00849,"13.2":0.00453,"13.3":0.03338,"13.4-13.7":0.08996,"14.0-14.4":0.47016,"14.5-14.8":0.80001,"15.0-15.1":0.58615,"15.2-15.3":2.59465,"15.4":0.31005},P:{"4":0.09502,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.13725,"8.2":0.02028,"9.2":0.0739,"10.1":0.03042,"11.1-11.2":0.09502,"12.0":0.01056,"13.0":0.05279,"14.0":0.11614,"15.0":0.13725,"16.0":0.90797},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00082,"4.2-4.3":0.00131,"4.4":0,"4.4.3-4.4.4":0.02894},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15434,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.02589},N:{"10":0.02879,"11":0.04426},L:{"0":39.99565},S:{"2.5":0.02589},R:{_:"0"},M:{"0":0.18123},Q:{"10.4":0},O:{"0":0.2123},H:{"0":6.51992}}; +module.exports={C:{"31":0.02069,"45":0.01379,"56":0.0069,"72":0.0069,"78":0.02758,"89":0.01379,"91":0.01379,"96":0.01379,"97":0.01379,"98":0.02069,"99":3.30271,"100":3.21997,"101":0.09653,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 92 93 94 95 102 103 3.5 3.6"},D:{"11":0.02069,"49":0.01379,"55":0.0069,"60":0.01379,"63":0.0069,"65":0.0069,"71":0.01379,"74":0.02069,"75":0.01379,"76":0.01379,"77":0.04137,"79":0.02758,"80":0.06895,"81":0.0069,"83":0.0069,"84":0.01379,"85":0.02069,"86":0.02069,"87":0.03448,"88":0.0069,"89":0.01379,"90":0.02069,"91":0.02069,"92":0.06206,"93":0.04137,"94":0.02758,"95":0.02758,"96":0.08964,"97":0.07585,"98":0.17927,"99":0.26891,"100":5.83317,"101":17.72705,"102":1.26179,"103":0.01379,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 61 62 64 66 67 68 69 70 72 73 78 104"},F:{"85":0.21375,"86":0.39991,"87":0.08274,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.05516,"13":0.09653,"14":0.03448,"15":0.01379,"16":0.02069,"17":0.01379,"18":0.09653,"84":0.01379,"85":0.01379,"89":0.01379,"90":0.0069,"92":0.03448,"96":0.0069,"97":0.0069,"98":0.02758,"99":0.03448,"100":0.75845,"101":31.12403,_:"79 80 81 83 86 87 88 91 93 94 95"},E:{"4":0,"13":0.02069,"14":0.02069,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01379,"12.1":0.0069,"13.1":0.04137,"14.1":0.09653,"15.1":0.02758,"15.2-15.3":0.02758,"15.4":0.17927,"15.5":0.02069},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00129,"6.0-6.1":0,"7.0-7.1":0.00647,"8.1-8.4":0,"9.0-9.2":0.00432,"9.3":0.09712,"10.0-10.2":0.00604,"10.3":0.02935,"11.0-11.2":0.00388,"11.3-11.4":0.01036,"12.0-12.1":0.01338,"12.2-12.5":0.35092,"13.0-13.1":0.00518,"13.2":0.00129,"13.3":0.01813,"13.4-13.7":0.07813,"14.0-14.4":0.25941,"14.5-14.8":0.43854,"15.0-15.1":0.18733,"15.2-15.3":0.47351,"15.4":2.33128},P:{"4":0.0923,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.06808,"8.2":0.01022,"9.2":0.02051,"10.1":0.03041,"11.1-11.2":0.09077,"12.0":0.01135,"13.0":0.02269,"14.0":0.02269,"15.0":0.03404,"16.0":0.35175},I:{"0":0,"3":0,"4":0.00022,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00051,"4.2-4.3":0.00255,"4.4":0,"4.4.3-4.4.4":0.01845},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0069,"11":0.08274,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.00311},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.11178},Q:{"10.4":0.00621},O:{"0":0.13352},H:{"0":3.87735},L:{"0":23.51638},S:{"2.5":0.03105}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SA.js index d11d80cb20b529..a66903eeaf0d02 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SA.js @@ -1 +1 @@ -module.exports={C:{"34":0.00485,"52":0.00728,"78":0.01213,"84":0.02183,"91":0.0291,"94":0.00243,"95":0.00485,"96":0.0097,"97":0.29585,"98":0.41953,"99":0.00728,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 88 89 90 92 93 100 3.5 3.6"},D:{"11":0.00728,"38":0.0097,"43":0.00728,"47":0.00728,"49":0.02183,"53":0.00243,"56":0.0097,"63":0.00485,"64":0.00485,"65":0.00243,"66":0.00485,"67":0.0097,"68":0.00728,"69":0.00728,"70":0.00243,"71":0.00728,"72":0.00243,"73":0.00243,"74":0.01213,"75":0.0097,"76":0.00485,"77":0.00243,"78":0.0097,"79":0.07033,"80":0.0097,"81":0.00728,"83":0.02183,"84":0.01455,"85":0.0291,"86":0.0388,"87":0.16975,"88":0.02183,"89":0.02668,"90":0.01455,"91":0.04123,"92":0.06548,"93":0.48743,"94":0.02183,"95":0.0291,"96":0.12853,"97":0.22795,"98":3.99398,"99":11.70548,"100":0.01213,"101":0.0485,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 50 51 52 54 55 57 58 59 60 61 62 102 103"},F:{"28":0.01455,"46":0.00728,"70":0.00243,"71":0.00243,"72":0.00485,"73":0.00485,"75":0.00243,"76":0.00728,"77":0.0097,"78":0.00485,"79":0.00728,"80":0.00728,"81":0.0097,"82":0.04123,"83":0.07518,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00485,"14":0.00485,"15":0.00728,"16":0.00485,"17":0.00485,"18":0.01455,"84":0.00485,"89":0.00243,"91":0.00485,"92":0.00728,"93":0.00243,"94":0.00485,"95":0.00728,"96":0.0194,"97":0.06063,"98":0.5626,"99":1.5229,_:"13 79 80 81 83 85 86 87 88 90"},E:{"4":0,"7":0.00243,"13":0.03395,"14":0.16733,"15":0.09943,_:"0 5 6 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00243,"11.1":0.00728,"12.1":0.01455,"13.1":0.09458,"14.1":0.3977,"15.1":0.18188,"15.2-15.3":0.1649,"15.4":0.0873},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02965,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04942,"10.0-10.2":0.00329,"10.3":0.05271,"11.0-11.2":0.02306,"11.3-11.4":0.02636,"12.0-12.1":0.06259,"12.2-12.5":0.73136,"13.0-13.1":0.11201,"13.2":0.07248,"13.3":0.28332,"13.4-13.7":0.72477,"14.0-14.4":3.2384,"14.5-14.8":6.09794,"15.0-15.1":4.34202,"15.2-15.3":15.32885,"15.4":1.74274},P:{"4":0.0621,"5.0-5.4":0.01035,"6.2-6.4":0.04093,"7.2-7.4":0.13455,"8.2":0.02046,"9.2":0.0207,"10.1":0.02046,"11.1-11.2":0.0828,"12.0":0.0207,"13.0":0.1035,"14.0":0.1863,"15.0":0.13455,"16.0":2.06995},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00486,"4.4":0,"4.4.3-4.4.4":0.03302},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.24008,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":38.26323},S:{"2.5":0},R:{_:"0"},M:{"0":0.09848},Q:{"10.4":0},O:{"0":1.00748},H:{"0":0.12909}}; +module.exports={C:{"34":0.00504,"52":0.00504,"78":0.01259,"91":0.03273,"94":0.00252,"95":0.00252,"97":0.00504,"98":0.00755,"99":0.11079,"100":0.63202,"101":0.01007,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 96 102 103 3.5 3.6"},D:{"11":0.00755,"34":0.00252,"38":0.01007,"43":0.00504,"47":0.00755,"49":0.02014,"50":0.00252,"53":0.00252,"56":0.0277,"62":0.00504,"63":0.00504,"64":0.00504,"65":0.04784,"66":0.00755,"67":0.01007,"68":0.01007,"69":0.01007,"70":0.00504,"71":0.01007,"72":0.03273,"73":0.00504,"74":0.01259,"75":0.01259,"76":0.00504,"77":0.00504,"78":0.01007,"79":0.08813,"80":0.02266,"81":0.00755,"83":0.02518,"84":0.01259,"85":0.0277,"86":0.03022,"87":0.04029,"88":0.01511,"89":0.03022,"90":0.01007,"91":0.03273,"92":0.0705,"93":0.02266,"94":0.01259,"95":0.02014,"96":0.06295,"97":0.05791,"98":0.08058,"99":0.1964,"100":1.99677,"101":13.18425,"102":1.19857,"103":0.01259,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 51 52 54 55 57 58 59 60 61 104"},F:{"11":0.00504,"15":0.00504,"28":0.01259,"36":0.00252,"46":0.01007,"71":0.00252,"73":0.00504,"76":0.00755,"77":0.00755,"78":0.00504,"79":0.00504,"80":0.00504,"81":0.01007,"82":0.03777,"83":0.02014,"84":0.01511,"85":0.0982,"86":0.07806,"87":0.00504,_:"9 12 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00504,"14":0.00504,"15":0.00504,"16":0.00504,"17":0.00504,"18":0.01259,"84":0.00504,"89":0.00252,"91":0.00252,"92":0.01007,"94":0.00504,"95":0.00755,"96":0.01511,"97":0.0277,"98":0.01763,"99":0.06295,"100":0.28202,"101":1.99426,_:"13 79 80 81 83 85 86 87 88 90 93"},E:{"4":0,"13":0.02518,"14":0.13345,"15":0.05791,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00252,"10.1":0.00252,"11.1":0.00755,"12.1":0.01511,"13.1":0.09568,"14.1":0.32734,"15.1":0.12338,"15.2-15.3":0.08309,"15.4":0.94677,"15.5":0.10324},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00548,"6.0-6.1":0,"7.0-7.1":0.03835,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05479,"10.0-10.2":0.00548,"10.3":0.03835,"11.0-11.2":0.0137,"11.3-11.4":0.01918,"12.0-12.1":0.04657,"12.2-12.5":0.62187,"13.0-13.1":0.08219,"13.2":0.04657,"13.3":0.18355,"13.4-13.7":0.46024,"14.0-14.4":2.08203,"14.5-14.8":3.55314,"15.0-15.1":1.86834,"15.2-15.3":3.13674,"15.4":15.12756},P:{"4":0.05223,"5.0-5.4":0.01045,"6.2-6.4":0.01043,"7.2-7.4":0.11491,"8.2":0.01022,"9.2":0.01045,"10.1":0.04171,"11.1-11.2":0.06268,"12.0":0.01045,"13.0":0.08357,"14.0":0.1358,"15.0":0.06268,"16.0":0.85657},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00898,"4.4":0,"4.4.3-4.4.4":0.0434},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.02014,"8":0.01007,"11":0.16871,_:"7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.09727},Q:{"10.4":0},O:{"0":1.01755},H:{"0":0.14875},L:{"0":44.50237},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SB.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SB.js index 7ec553cd625cb1..6227138628203d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SB.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SB.js @@ -1 +1 @@ -module.exports={C:{"42":0.00334,"46":0.00668,"47":0.03004,"60":0.00668,"67":0.00334,"68":0.00334,"78":0.02337,"80":0.00668,"88":0.01001,"89":0.00668,"94":0.00334,"95":0.00668,"96":0.01669,"97":0.59416,"98":1.49542,"99":0.03004,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 69 70 71 72 73 74 75 76 77 79 81 82 83 84 85 86 87 90 91 92 93 100 3.5 3.6"},D:{"11":0.0267,"37":0.10014,"52":0.00668,"55":0.00334,"56":0.00334,"63":0.00668,"65":0.00334,"69":0.10348,"70":0.00668,"71":0.03004,"75":0.12351,"76":0.00668,"78":0.00668,"79":0.00334,"80":0.01001,"81":0.14687,"84":0.05341,"87":0.0701,"89":0.01335,"90":0.00668,"91":0.00668,"92":0.00668,"94":0.01001,"95":0.00668,"96":0.04006,"97":0.09346,"98":3.00754,"99":10.60816,"100":0.14353,"101":0.00334,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 57 58 59 60 61 62 64 66 67 68 72 73 74 77 83 85 86 88 93 102 103"},F:{"19":0.01669,"27":0.00668,"83":0.07677,_:"9 11 12 15 16 17 18 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01669,"13":0.04673,"14":0.85453,"15":0.10014,"16":0.0701,"17":0.14353,"18":0.44395,"80":0.00668,"84":0.0267,"86":0.00334,"88":0.00334,"89":0.03004,"91":0.03338,"92":0.05007,"93":0.02003,"94":0.03338,"95":0.06008,"96":0.05007,"97":0.68429,"98":0.55411,"99":2.98083,_:"79 81 83 85 87 90"},E:{"4":0,"8":0.01335,"12":0.00334,"14":0.00334,"15":0.01669,_:"0 5 6 7 9 10 11 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01335,"12.1":0.02337,"13.1":0.02003,"14.1":0.1402,"15.1":0.02003,"15.2-15.3":0.04673,"15.4":0.06676},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00138,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.02307,"9.3":0.0093,"10.0-10.2":0,"10.3":0.01687,"11.0-11.2":0.02893,"11.3-11.4":0.0062,"12.0-12.1":0.06887,"12.2-12.5":0.33781,"13.0-13.1":0,"13.2":0.01377,"13.3":0.05062,"13.4-13.7":0.0582,"14.0-14.4":0.24897,"14.5-14.8":1.40394,"15.0-15.1":0.09814,"15.2-15.3":0.97556,"15.4":0.10262},P:{"4":0.4178,"5.0-5.4":0.01044,"6.2-6.4":0.05095,"7.2-7.4":0.3159,"8.2":0.0522,"9.2":0.25476,"10.1":0.15634,"11.1-11.2":0.21399,"12.0":0.16304,"13.0":0.49932,"14.0":0.2038,"15.0":0.05095,"16.0":0.92731},I:{"0":0,"3":0,"4":0.00275,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00138,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.12245},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00683,"11":1.16481,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":59.36688},S:{"2.5":0},R:{_:"0"},M:{"0":0.07994},Q:{"10.4":0.04663},O:{"0":3.81733},H:{"0":3.60138}}; +module.exports={C:{"45":0.04434,"47":0.02729,"56":0.02729,"67":0.01023,"72":0.01023,"78":0.00682,"81":0.01023,"87":0.00341,"88":0.00682,"94":0.00682,"97":0.00682,"99":0.37521,"100":1.54518,"101":0.19443,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 68 69 70 71 73 74 75 76 77 79 80 82 83 84 85 86 89 90 91 92 93 95 96 98 102 103 3.5 3.6"},D:{"42":0.00341,"49":0.0307,"65":0.00682,"66":0.00341,"68":0.00682,"69":0.02388,"70":0.00341,"71":0.02388,"75":0.05458,"78":0.00682,"79":0.00341,"80":0.03411,"81":0.05117,"83":0.20125,"84":0.0307,"86":0.02047,"87":0.04434,"88":0.01023,"89":0.01364,"90":0.00682,"91":0.01023,"92":0.03752,"94":0.04775,"95":0.02388,"96":0.06822,"97":0.06481,"98":0.0307,"99":0.11939,"100":3.91924,"101":9.90896,"102":1.2416,"103":0.01023,"104":0.00682,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 67 72 73 74 76 77 85 93"},F:{"68":0.00682,"85":0.10233,"86":0.27629,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02047,"13":0.05458,"14":0.52529,"15":0.11256,"16":0.15691,"17":0.12621,"18":0.37521,"80":0.01706,"84":0.01023,"87":0.00682,"89":0.02388,"90":0.01023,"92":0.02388,"94":0.00341,"95":0.05799,"96":0.05458,"97":0.00341,"98":0.02729,"99":0.06822,"100":0.33428,"101":3.61907,_:"79 81 83 85 86 88 91 93"},E:{"4":0,"13":0.01706,"14":0.00341,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.01706,"11.1":0.01023,"12.1":0.02729,"13.1":0.0307,"14.1":0.03411,"15.1":0.10574,"15.2-15.3":0.00341,"15.4":0.08869,"15.5":0.00682},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00139,"8.1-8.4":0,"9.0-9.2":0.07634,"9.3":0.00418,"10.0-10.2":0,"10.3":0.0129,"11.0-11.2":0.09063,"11.3-11.4":0,"12.0-12.1":0.01987,"12.2-12.5":0.41587,"13.0-13.1":0.00279,"13.2":0.01848,"13.3":0.00837,"13.4-13.7":0.69196,"14.0-14.4":0.22205,"14.5-14.8":0.68429,"15.0-15.1":0.08331,"15.2-15.3":0.51069,"15.4":0.64246},P:{"4":0.18114,"5.0-5.4":0.03019,"6.2-6.4":0.01006,"7.2-7.4":0.42265,"8.2":0.21569,"9.2":0.82518,"10.1":0.01023,"11.1-11.2":0.27171,"12.0":0.15095,"13.0":0.42265,"14.0":0.1107,"15.0":0.10063,"16.0":0.65411},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00373,"4.2-4.3":0.01118,"4.4":0,"4.4.3-4.4.4":0.07734},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.03694,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.76432},Q:{"10.4":0},O:{"0":7.97269},H:{"0":1.38484},L:{"0":56.15028},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SC.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SC.js index 249030ab11edc0..e878e6ca2ae7f0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SC.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SC.js @@ -1 +1 @@ -module.exports={C:{"3":0.0045,"4":0.0045,"38":0.02248,"52":0.01798,"55":0.10341,"56":0.00899,"59":0.06744,"60":0.13938,"61":0.04496,"62":0.06744,"63":0.09891,"64":0.01349,"65":0.09442,"66":0.09891,"67":0.01798,"68":0.04496,"69":0.02698,"70":0.02248,"71":0.01798,"72":0.04046,"73":0.04946,"74":0.02698,"75":0.02698,"76":0.03147,"77":0.02248,"78":0.08992,"79":0.18434,"80":0.21131,"81":0.03597,"82":0.03597,"83":0.02698,"85":0.00899,"86":0.0045,"87":0.02248,"89":0.01349,"90":0.00899,"91":1.06555,"92":0.03147,"93":0.01798,"94":0.00899,"95":0.1124,"96":0.01349,"97":0.49906,"98":0.82277,"99":0.04946,_:"2 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 57 58 84 88 100","3.5":0.0045,"3.6":0.0045},D:{"4":0.0045,"20":0.0045,"43":0.00899,"48":0.00899,"49":0.00899,"51":0.00899,"53":0.0045,"57":0.01349,"59":0.52603,"63":0.00899,"65":0.01798,"66":0.14837,"68":0.94416,"69":0.19333,"70":0.23829,"71":0.18883,"72":1.65003,"73":1.56011,"74":0.2248,"75":0.13938,"76":0.13938,"77":0.13038,"78":0.44061,"79":0.39115,"80":0.62494,"81":0.18883,"83":0.54402,"84":0.72386,"85":1.09702,"86":0.76432,"87":0.49906,"88":0.32821,"89":0.35518,"90":0.26526,"91":0.12589,"92":2.81899,"93":0.00899,"94":0.07643,"95":0.01798,"96":0.12139,"97":0.18883,"98":1.83437,"99":5.46714,"100":0.04946,"101":0.00899,_:"5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 50 52 54 55 56 58 60 61 62 64 67 102 103"},F:{"11":0.0045,"53":0.05395,"54":0.03147,"55":0.03147,"56":0.0045,"58":0.02248,"60":0.0045,"65":0.00899,"66":0.0045,"67":0.04946,"68":0.0045,"70":0.01349,"71":0.1124,"72":0.02698,"73":0.0045,"75":0.0045,"76":0.02698,"82":0.04046,"83":0.04046,_:"9 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 57 62 63 64 69 74 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00899},B:{"12":0.0045,"13":0.0045,"14":0.00899,"16":0.03147,"17":0.03147,"18":0.28774,"79":0.01349,"80":0.05845,"81":0.03147,"83":0.02698,"84":0.13488,"85":0.04496,"86":0.05395,"87":0.01349,"88":0.02698,"89":0.05395,"90":0.01798,"92":0.01349,"95":0.00899,"96":0.03597,"97":0.00899,"98":0.31022,"99":1.11501,_:"15 91 93 94"},E:{"4":0,"5":0.00899,"11":0.00899,"12":0.05845,"13":0.28325,"14":0.08093,"15":0.02698,_:"0 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 10.1","9.1":1.03858,"11.1":0.01798,"12.1":0.04946,"13.1":0.07643,"14.1":0.43162,"15.1":0.97114,"15.2-15.3":0.92168,"15.4":0.04946},G:{"8":0.01925,"3.2":0.00963,"4.0-4.1":0.00642,"4.2-4.3":0.03851,"5.0-5.1":0.04172,"6.0-6.1":0.06097,"7.0-7.1":0.07702,"8.1-8.4":0.10269,"9.0-9.2":0.09948,"9.3":0.16046,"10.0-10.2":0.11874,"10.3":0.13478,"11.0-11.2":0.21501,"11.3-11.4":0.15404,"12.0-12.1":0.20539,"12.2-12.5":0.43324,"13.0-13.1":0.09948,"13.2":0.04493,"13.3":0.17329,"13.4-13.7":0.60332,"14.0-14.4":0.54235,"14.5-14.8":0.52951,"15.0-15.1":2.06349,"15.2-15.3":25.82405,"15.4":0.33054},P:{"4":0.0938,"5.0-5.4":0.03127,"6.2-6.4":0.03127,"7.2-7.4":0.12507,"8.2":0.02046,"9.2":0.07296,"10.1":0.15634,"11.1-11.2":0.1876,"12.0":0.10422,"13.0":0.4169,"14.0":0.08338,"15.0":0.06253,"16.0":1.08394},I:{"0":0,"3":0.00275,"4":0.00413,"2.1":0.00206,"2.2":0.00757,"2.3":0.00413,"4.1":0.00757,"4.2-4.3":0.0227,"4.4":0,"4.4.3-4.4.4":0.05366},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.09517,"7":0.0056,"8":0.04478,"9":0.06718,"10":0.0112,"11":0.34707,_:"5.5"},J:{"7":0,"10":0.01101},N:{"10":0.02879,"11":0.04426},L:{"0":18.76557},S:{"2.5":0},R:{_:"0"},M:{"0":0.48435},Q:{"10.4":0.03853},O:{"0":1.34848},H:{"0":0.40644}}; +module.exports={C:{"36":0.01881,"52":0.05644,"55":0.06584,"56":0.00941,"59":0.01411,"60":0.02352,"61":0.01881,"62":0.01411,"63":0.01881,"65":0.00941,"66":0.00941,"67":0.00941,"68":0.04233,"69":0.02822,"70":0.04233,"71":0.03292,"72":0.18812,"73":0.05644,"74":0.03762,"75":0.03292,"76":0.08465,"77":0.03292,"78":0.09406,"79":0.02822,"80":0.02822,"81":1.47674,"82":0.02352,"83":0.03762,"84":0.02822,"86":0.00941,"87":0.01881,"88":0.00941,"89":0.04703,"90":0.00941,"91":0.53144,"92":0.0047,"94":0.03292,"95":0.0047,"96":0.00941,"97":0.02352,"98":0.05173,"99":0.21164,"100":1.16634,"101":0.07055,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 57 58 64 85 93 102 103 3.5 3.6"},D:{"41":0.0047,"49":0.08465,"53":0.0047,"57":0.00941,"59":0.26337,"60":0.05644,"61":0.01881,"62":0.01881,"63":0.06114,"64":0.03292,"65":0.02822,"66":0.03762,"67":0.05173,"68":0.19282,"69":0.19753,"70":0.20693,"71":0.14109,"72":1.04877,"73":0.08465,"74":0.26337,"75":0.14109,"76":0.14109,"77":0.1552,"78":0.39035,"79":0.36213,"80":0.6255,"81":0.18342,"83":0.90298,"84":0.9453,"85":1.05347,"86":0.76659,"87":0.27277,"88":0.26807,"89":0.48441,"90":0.45149,"91":0.24456,"92":0.55966,"93":0.1599,"94":0.1552,"95":0.03762,"96":0.18342,"97":0.25867,"98":0.07525,"99":1.47204,"100":1.67897,"101":6.07157,"102":0.67253,"103":0.00941,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 54 55 56 58 104"},F:{"48":0.0047,"49":0.00941,"51":0.0047,"52":0.00941,"53":0.02822,"54":0.04233,"55":0.03762,"56":0.01411,"65":0.0047,"66":0.00941,"67":0.05644,"68":0.00941,"69":0.19753,"70":0.00941,"71":1.02055,"72":0.00941,"73":0.03762,"74":0.01881,"75":0.03762,"76":0.00941,"83":0.00941,"84":0.0047,"85":0.08936,"86":0.1505,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 57 58 60 62 63 64 77 78 79 80 81 82 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00941,"13":0.00941,"14":0.03292,"15":0.02352,"16":0.02822,"17":0.04703,"18":0.1505,"79":0.01411,"80":0.07525,"81":0.03762,"83":0.02352,"84":0.07055,"85":0.61139,"86":0.02822,"87":0.05644,"88":0.02822,"89":0.05644,"90":0.04233,"91":0.05173,"92":0.00941,"96":0.00941,"97":0.0047,"98":0.01411,"99":0.01411,"100":0.11287,"101":1.75892,_:"93 94 95"},E:{"4":0,"10":0.0047,"13":0.06114,"14":0.08936,"15":0.01881,_:"0 5 6 7 8 9 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.99704,"10.1":0.00941,"11.1":0.05173,"12.1":0.29159,"13.1":0.07995,"14.1":0.35743,"15.1":0.59728,"15.2-15.3":0.37154,"15.4":3.83295,"15.5":0.07995},G:{"8":0.03624,"3.2":0.01691,"4.0-4.1":0.01208,"4.2-4.3":0.0459,"5.0-5.1":0.03866,"6.0-6.1":0.08214,"7.0-7.1":0.12805,"8.1-8.4":0.15704,"9.0-9.2":0.15462,"9.3":0.20053,"10.0-10.2":0.12563,"10.3":0.16187,"11.0-11.2":0.2875,"11.3-11.4":0.21985,"12.0-12.1":0.24885,"12.2-12.5":0.59433,"13.0-13.1":0.14254,"13.2":0.0749,"13.3":0.21261,"13.4-13.7":0.48078,"14.0-14.4":1.59697,"14.5-14.8":0.6499,"15.0-15.1":0.76345,"15.2-15.3":2.87503,"15.4":14.84867},P:{"4":0.07279,"5.0-5.4":0.01045,"6.2-6.4":0.04159,"7.2-7.4":0.16637,"8.2":0.01022,"9.2":0.11438,"10.1":0.17677,"11.1-11.2":0.25995,"12.0":0.09358,"13.0":0.57189,"14.0":0.08318,"15.0":0.04159,"16.0":0.5303},I:{"0":0,"3":0,"4":0.00191,"2.1":0,"2.2":0.0023,"2.3":0,"4.1":0.00613,"4.2-4.3":0.0134,"4.4":0,"4.4.3-4.4.4":0.07159},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":1.4656,"9":1.26858,"10":0.8265,"11":2.18638,_:"6 7 5.5"},J:{"7":0,"10":0.0053},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":1.23397},Q:{"10.4":0.01059},O:{"0":1.38226},H:{"0":0.33092},L:{"0":23.74865},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SD.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SD.js index 0ef251b26b01e3..a795b5bc4ddf7a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SD.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SD.js @@ -1 +1 @@ -module.exports={C:{"18":0.00239,"26":0.0012,"27":0.00239,"28":0.0012,"29":0.00239,"30":0.00478,"33":0.00239,"34":0.00359,"35":0.00359,"36":0.00478,"37":0.00239,"38":0.01195,"39":0.00478,"40":0.00359,"41":0.00239,"42":0.00359,"43":0.00837,"44":0.00478,"45":0.00359,"47":0.02868,"48":0.00598,"49":0.00837,"50":0.0012,"51":0.0012,"52":0.03107,"54":0.0012,"56":0.00717,"57":0.00598,"58":0.0012,"60":0.00239,"63":0.00239,"64":0.0012,"65":0.0012,"66":0.00239,"67":0.0012,"68":0.00239,"69":0.00239,"70":0.00239,"72":0.01315,"73":0.00239,"74":0.00239,"78":0.02032,"80":0.0012,"81":0.00239,"82":0.00239,"83":0.0012,"84":0.00239,"85":0.00359,"86":0.00239,"87":0.00478,"88":0.00717,"89":0.02629,"90":0.00598,"91":0.0251,"92":0.00598,"93":0.00956,"94":0.01076,"95":0.01673,"96":0.02749,"97":0.59272,"98":1.08387,"99":0.02629,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 31 32 46 53 55 59 61 62 71 75 76 77 79 100 3.5 3.6"},D:{"11":0.00359,"26":0.00239,"28":0.0012,"29":0.00478,"32":0.0012,"33":0.00717,"35":0.0012,"37":0.00598,"38":0.0012,"40":0.00717,"43":0.04661,"46":0.00359,"47":0.00239,"48":0.00239,"49":0.00359,"50":0.00359,"51":0.00239,"52":0.00239,"54":0.00239,"55":0.00478,"56":0.00239,"57":0.00359,"58":0.00239,"59":0.0012,"60":0.00239,"61":0.00239,"62":0.00837,"63":0.01315,"64":0.00598,"65":0.00598,"66":0.00359,"67":0.00239,"68":0.00598,"69":0.02271,"70":0.01793,"71":0.00717,"72":0.00717,"73":0.0012,"74":0.01195,"75":0.02151,"76":0.00598,"77":0.00478,"78":0.01912,"79":0.02151,"80":0.00837,"81":0.04063,"83":0.01673,"84":0.00717,"85":0.12906,"86":0.03227,"87":0.05497,"88":0.0239,"89":0.01673,"90":0.03227,"91":0.03227,"92":0.04661,"93":0.01793,"94":0.02151,"95":0.00956,"96":0.11831,"97":0.14938,"98":1.29897,"99":3.8479,"100":0.04183,"101":0.00239,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 30 31 34 36 39 41 42 44 45 53 102 103"},F:{"18":0.0012,"28":0.00239,"36":0.00239,"42":0.00239,"71":0.00239,"74":0.0012,"75":0.00478,"79":0.01554,"80":0.00239,"81":0.0012,"82":0.02032,"83":0.04183,_:"9 11 12 15 16 17 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 76 77 78 9.5-9.6 10.5 10.6 11.1 11.6 12.1","10.0-10.1":0,"11.5":0.00359},B:{"12":0.01793,"13":0.00598,"14":0.01195,"15":0.01076,"16":0.01076,"17":0.01315,"18":0.05019,"84":0.01315,"85":0.00478,"89":0.00956,"90":0.00837,"91":0.00359,"92":0.01793,"93":0.00359,"94":0.00478,"95":0.00239,"96":0.02151,"97":0.02749,"98":0.17447,"99":0.60706,_:"79 80 81 83 86 87 88"},E:{"4":0,"12":0.00359,"13":0.01315,"14":0.02629,"15":0.00956,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.00837,"9.1":0.00359,"10.1":0.00239,"11.1":0.03227,"12.1":0.00717,"13.1":0.01912,"14.1":0.06573,"15.1":0.01315,"15.2-15.3":0.01673,"15.4":0.01434},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00222,"5.0-5.1":0.00089,"6.0-6.1":0.00178,"7.0-7.1":0.0302,"8.1-8.4":0,"9.0-9.2":0.00044,"9.3":0.0111,"10.0-10.2":0.00355,"10.3":0.02354,"11.0-11.2":0.02709,"11.3-11.4":0.02709,"12.0-12.1":0.0493,"12.2-12.5":0.51208,"13.0-13.1":0.05063,"13.2":0.03242,"13.3":0.05818,"13.4-13.7":0.14434,"14.0-14.4":0.72215,"14.5-14.8":0.73281,"15.0-15.1":0.49032,"15.2-15.3":1.38701,"15.4":0.13057},P:{"4":1.32857,"5.0-5.4":0.09058,"6.2-6.4":0.11071,"7.2-7.4":0.70454,"8.2":0.01006,"9.2":0.15097,"10.1":0.04026,"11.1-11.2":0.43279,"12.0":0.09058,"13.0":0.36234,"14.0":0.72467,"15.0":0.4026,"16.0":1.67078},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00198,"4.2-4.3":0.00842,"4.4":0,"4.4.3-4.4.4":0.06884},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00239,"11":0.13743,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":67.94325},S:{"2.5":0.02642},R:{_:"0"},M:{"0":0.15849},Q:{"10.4":0},O:{"0":1.68176},H:{"0":8.02757}}; +module.exports={C:{"20":0.00141,"26":0.00283,"27":0.00141,"28":0.00141,"29":0.00707,"30":0.00283,"32":0.00141,"33":0.00283,"34":0.00424,"35":0.00141,"36":0.00141,"37":0.00141,"38":0.00424,"40":0.00283,"42":0.00141,"43":0.00566,"44":0.00283,"45":0.00283,"47":0.0099,"48":0.00283,"49":0.00424,"50":0.00141,"51":0.00283,"52":0.03535,"53":0.00141,"54":0.00283,"55":0.00283,"56":0.00707,"57":0.00283,"58":0.00141,"66":0.00141,"67":0.00283,"68":0.00283,"69":0.00283,"70":0.00283,"72":0.04666,"73":0.00141,"78":0.0099,"80":0.00283,"81":0.00283,"83":0.00424,"84":0.00141,"85":0.00566,"87":0.00424,"88":0.00707,"89":0.01131,"91":0.02687,"92":0.0099,"93":0.00141,"94":0.0099,"95":0.01555,"96":0.01273,"97":0.01414,"98":0.04525,"99":0.36764,"100":1.54692,"101":0.03676,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 31 39 41 46 59 60 61 62 63 64 65 71 74 75 76 77 79 82 86 90 102 103 3.5 3.6"},D:{"23":0.00141,"26":0.00566,"29":0.00283,"31":0.00141,"33":0.00566,"36":0.00424,"37":0.00141,"38":0.00424,"40":0.00848,"42":0.44682,"43":0.04525,"46":0.00424,"47":0.00141,"49":0.00283,"50":0.00424,"52":0.00283,"55":0.00566,"56":0.00424,"57":0.00566,"58":0.00424,"59":0.00283,"60":0.00283,"61":0.00283,"62":0.00424,"63":0.01697,"64":0.00848,"65":0.00283,"67":0.00141,"68":0.00424,"69":0.0099,"70":0.01697,"71":0.00848,"72":0.00283,"74":0.00566,"75":0.00283,"76":0.00707,"77":0.00283,"78":0.0198,"79":0.05373,"80":0.0099,"81":0.01414,"83":0.01697,"84":0.00424,"85":0.0099,"86":0.06504,"87":0.03111,"88":0.0198,"89":0.00707,"90":0.04101,"91":0.04242,"92":0.05656,"93":0.04383,"94":0.03252,"95":0.00848,"96":0.04383,"97":0.04949,"98":0.1923,"99":0.20927,"100":0.85547,"101":3.95496,"102":0.51187,"103":0.00848,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 27 28 30 32 34 35 39 41 44 45 48 51 53 54 66 73 104"},F:{"34":0.00141,"36":0.02545,"42":0.00141,"43":0.00141,"75":0.01555,"79":0.0099,"82":0.00566,"83":0.00424,"84":0.01697,"85":0.31674,"86":0.3634,"87":0.02545,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.6 12.1","10.0-10.1":0,"11.5":0.02828},B:{"12":0.02262,"13":0.00707,"14":0.00848,"15":0.00707,"16":0.01838,"17":0.01131,"18":0.04383,"81":0.00283,"84":0.0198,"85":0.00566,"87":0.00141,"88":0.00283,"89":0.0198,"90":0.00848,"91":0.00424,"92":0.0198,"93":0.00283,"94":0.00424,"95":0.00283,"96":0.00848,"97":0.01131,"98":0.01414,"99":0.02969,"100":0.08484,"101":1.00253,_:"79 80 83 86"},E:{"4":0,"8":0.00283,"11":0.00141,"12":0.00141,"13":0.0198,"14":0.02262,"15":0.00707,_:"0 5 6 7 9 10 3.1 3.2 6.1 7.1","5.1":0.02404,"9.1":0.00283,"10.1":0.00283,"11.1":0.01414,"12.1":0.01131,"13.1":0.01555,"14.1":0.05656,"15.1":0.01131,"15.2-15.3":0.01131,"15.4":0.13574,"15.5":0.02262},G:{"8":0.00109,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00327,"5.0-5.1":0,"6.0-6.1":0.00327,"7.0-7.1":0.0049,"8.1-8.4":0.00109,"9.0-9.2":0.00436,"9.3":0.01634,"10.0-10.2":0.00327,"10.3":0.02995,"11.0-11.2":0.01361,"11.3-11.4":0.02559,"12.0-12.1":0.02505,"12.2-12.5":0.3877,"13.0-13.1":0.03703,"13.2":0.03213,"13.3":0.06207,"13.4-13.7":0.11925,"14.0-14.4":0.63708,"14.5-14.8":0.69426,"15.0-15.1":0.40948,"15.2-15.3":0.83747,"15.4":2.0953},P:{"4":0.83929,"5.0-5.4":0.04045,"6.2-6.4":0.07078,"7.2-7.4":0.36403,"8.2":0.21569,"9.2":0.0809,"10.1":0.02046,"11.1-11.2":0.21235,"12.0":0.07078,"13.0":0.24269,"14.0":0.43481,"15.0":0.18202,"16.0":1.19321},I:{"0":0,"3":0,"4":0.00078,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00129,"4.2-4.3":0.00828,"4.4":0,"4.4.3-4.4.4":0.07552},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00146,"9":0.00437,"11":0.14123,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.19748},Q:{"10.4":0},O:{"0":2.05205},H:{"0":9.03908},L:{"0":65.3385},S:{"2.5":0.03434}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SE.js index c76ea5aa0aff73..82be439166e584 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SE.js @@ -1 +1 @@ -module.exports={C:{"51":0.00512,"52":0.02558,"53":0.00512,"55":0.01023,"56":0.00512,"57":0.00512,"68":0.01023,"78":0.05116,"84":0.0307,"88":0.01023,"89":0.00512,"91":0.06139,"92":0.01023,"94":0.01023,"95":0.02046,"96":0.0307,"97":0.85437,"98":1.23807,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 54 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 90 93 99 100 3.5 3.6"},D:{"38":0.01023,"48":0.01023,"49":0.0307,"63":0.00512,"65":0.01535,"67":0.01023,"69":0.17906,"71":0.00512,"73":0.00512,"75":0.02558,"76":0.04093,"77":0.01535,"78":0.01023,"79":0.05628,"80":0.0307,"81":0.01023,"83":0.01535,"84":0.04093,"85":0.02558,"86":0.0307,"87":0.13813,"88":0.02558,"89":0.07162,"90":0.04604,"91":0.05116,"92":0.05628,"93":0.52695,"94":0.14325,"95":0.07162,"96":0.39905,"97":1.18691,"98":11.55193,"99":16.81118,"100":0.06651,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 68 70 72 74 101 102 103"},F:{"82":0.03581,"83":0.46044,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.01535,"18":0.01535,"80":0.00512,"85":0.01023,"86":0.01023,"88":0.01023,"89":0.01023,"90":0.00512,"91":0.01023,"92":0.02558,"93":0.01023,"94":0.00512,"95":0.01023,"96":0.0307,"97":0.08697,"98":1.95431,"99":4.46627,_:"12 13 14 15 17 79 81 83 84 87"},E:{"4":0,"13":0.07674,"14":0.47579,"15":0.19952,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00512,"10.1":0.01535,"11.1":0.0307,"12.1":0.08697,"13.1":0.42463,"14.1":1.60642,"15.1":0.43998,"15.2-15.3":0.55253,"15.4":0.21487},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00242,"8.1-8.4":0.01209,"9.0-9.2":0.00483,"9.3":0.07976,"10.0-10.2":0.00483,"10.3":0.13294,"11.0-11.2":0.02659,"11.3-11.4":0.02175,"12.0-12.1":0.03867,"12.2-12.5":0.81697,"13.0-13.1":0.02417,"13.2":0.0145,"13.3":0.0846,"13.4-13.7":0.24171,"14.0-14.4":0.80972,"14.5-14.8":4.06553,"15.0-15.1":1.26655,"15.2-15.3":15.89715,"15.4":0.61636},P:{"4":0.08387,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.02097,"12.0":0.02097,"13.0":0.05242,"14.0":0.09436,"15.0":0.07339,"16.0":3.58564},I:{"0":0,"3":0,"4":0.0023,"2.1":0,"2.2":0.00575,"2.3":0.00115,"4.1":0.00345,"4.2-4.3":0.0069,"4.4":0,"4.4.3-4.4.4":0.03907},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01023,"9":0.00512,"11":0.18418,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":18.80893},S:{"2.5":0},R:{_:"0"},M:{"0":0.29304},Q:{"10.4":0},O:{"0":0.0293},H:{"0":0.98026}}; +module.exports={C:{"51":0.05006,"52":0.07737,"53":0.04551,"54":0.03186,"55":0.05006,"56":0.03186,"57":0.03641,"58":0.01365,"59":0.0182,"60":0.0091,"65":0.0091,"68":0.0091,"70":0.0091,"77":0.0091,"78":0.08192,"79":0.02731,"80":0.02276,"81":0.02731,"82":0.03186,"83":0.01365,"84":0.01365,"88":0.0091,"91":0.06371,"92":0.00455,"94":0.0182,"95":0.01365,"96":0.0091,"97":0.0091,"98":0.02731,"99":0.47786,"100":1.85681,"101":0.0091,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 61 62 63 64 66 67 69 71 72 73 74 75 76 85 86 87 89 90 93 102 103 3.5 3.6"},D:{"38":0.01365,"39":0.01365,"40":0.01365,"41":0.0182,"42":0.01365,"43":0.01365,"44":0.0182,"45":0.0182,"46":0.0182,"47":0.0182,"48":0.02276,"49":0.04096,"50":0.0091,"51":0.01365,"52":0.01365,"53":0.01365,"54":0.0182,"55":0.01365,"56":0.0182,"57":0.01365,"58":0.03641,"59":0.0182,"60":0.0182,"61":0.0182,"62":0.0182,"63":0.02731,"64":0.0182,"65":0.02276,"66":0.04096,"67":0.0091,"69":0.16839,"71":0.00455,"73":0.00455,"74":0.00455,"75":0.02276,"76":0.02731,"77":0.0091,"78":0.00455,"79":0.06827,"80":0.05461,"81":0.0182,"83":0.12743,"84":0.25486,"85":0.2412,"86":0.29582,"87":0.26851,"88":0.01365,"89":0.07282,"90":0.02276,"91":0.03641,"92":0.02731,"93":0.10922,"94":0.05916,"95":0.02731,"96":0.12288,"97":0.08647,"98":0.24575,"99":0.4551,"100":5.89355,"101":16.57474,"102":0.98302,"103":0.00455,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 68 70 72 104"},F:{"46":0.00455,"68":0.0091,"69":0.0091,"70":0.00455,"71":0.0091,"72":0.0091,"84":0.00455,"85":0.66445,"86":0.48241,"87":0.01365,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.0091,"18":0.02731,"80":0.0091,"83":0.01365,"84":0.0182,"85":0.02731,"86":0.02276,"88":0.0091,"89":0.00455,"92":0.00455,"93":0.00455,"95":0.00455,"96":0.01365,"97":0.0182,"98":0.02276,"99":0.06827,"100":0.57343,"101":5.6933,_:"12 13 14 15 16 79 81 87 90 91 94"},E:{"4":0,"13":0.05006,"14":0.33677,"15":0.10012,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00455,"10.1":0.01365,"11.1":0.03186,"12.1":0.07737,"13.1":0.34588,"14.1":1.07404,"15.1":0.19114,"15.2-15.3":0.20935,"15.4":3.12199,"15.5":0.2321},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00822,"9.0-9.2":0.01644,"9.3":0.08494,"10.0-10.2":0.0274,"10.3":0.13974,"11.0-11.2":0.02466,"11.3-11.4":0.0411,"12.0-12.1":0.03288,"12.2-12.5":0.81927,"13.0-13.1":0.01918,"13.2":0.01918,"13.3":0.0822,"13.4-13.7":0.27126,"14.0-14.4":0.74529,"14.5-14.8":3.09624,"15.0-15.1":0.65213,"15.2-15.3":1.90707,"15.4":19.39946},P:{"4":0.11537,"5.0-5.4":0.01049,_:"6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.01049,"12.0":0.02098,"13.0":0.05244,"14.0":0.06293,"15.0":0.04195,"16.0":1.40539},I:{"0":0,"3":0,"4":0.00567,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00283,"4.2-4.3":0.0085,"4.4":0,"4.4.3-4.4.4":0.05384},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02276,"9":0.03641,"10":0.0091,"11":0.25486,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":22.24051},S:{"2.5":0},R:{_:"0"},M:{"0":0.36508},Q:{"10.4":0},O:{"0":0.03269},H:{"0":0.325}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SG.js index 1a5d3382a21952..8e9433cd9bae45 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SG.js @@ -1 +1 @@ -module.exports={C:{"48":0.00547,"52":0.00547,"65":0.00273,"78":0.03826,"80":0.00273,"83":0.0082,"84":0.00273,"85":0.00273,"87":0.00547,"88":0.00547,"89":0.0082,"90":0.01093,"91":0.01367,"92":0.00547,"93":0.00273,"94":0.00547,"95":0.0082,"96":0.02733,"97":0.45641,"98":0.8117,"99":0.00273,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 79 81 82 86 100 3.5 3.6"},D:{"22":0.00547,"26":0.00273,"34":0.03006,"38":0.09566,"47":0.02186,"49":0.02186,"51":0.00547,"53":0.0246,"55":0.00547,"56":0.01093,"57":0.00547,"60":0.01093,"61":0.00273,"62":0.00547,"63":0.00273,"64":0.01093,"65":0.01093,"66":0.01093,"67":0.01367,"68":0.00547,"69":0.00273,"70":0.01367,"71":0.0082,"72":0.01367,"73":0.00547,"74":0.00547,"75":0.00547,"76":0.01093,"77":0.0082,"78":0.0164,"79":0.26237,"80":0.04373,"81":0.03006,"83":0.03553,"84":0.03006,"85":0.03553,"86":0.03006,"87":0.07379,"88":0.02733,"89":0.0246,"90":0.0164,"91":0.05466,"92":0.04646,"93":0.16398,"94":0.07926,"95":0.041,"96":0.18858,"97":0.3143,"98":4.11863,"99":12.53354,"100":0.01093,"101":0.0082,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 52 54 58 59 102 103"},F:{"28":0.00273,"36":0.01367,"40":0.00547,"46":0.02733,"77":0.00547,"78":0.00547,"79":0.00547,"80":0.00547,"81":0.00273,"82":0.0082,"83":0.07106,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00273,"18":0.01093,"91":0.00273,"96":0.00547,"97":0.02186,"98":0.44821,"99":1.62067,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 92 93 94 95"},E:{"4":0,"8":0.01093,"11":0.00273,"12":0.00547,"13":0.04373,"14":0.18584,"15":0.09839,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01093,"11.1":0.01913,"12.1":0.03006,"13.1":0.18038,"14.1":0.66412,"15.1":0.22411,"15.2-15.3":0.24597,"15.4":0.19951},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00152,"6.0-6.1":0.00303,"7.0-7.1":0.01364,"8.1-8.4":0.01819,"9.0-9.2":0.0091,"9.3":0.13948,"10.0-10.2":0.01819,"10.3":0.08035,"11.0-11.2":0.02729,"11.3-11.4":0.02426,"12.0-12.1":0.02123,"12.2-12.5":0.39873,"13.0-13.1":0.01971,"13.2":0.01213,"13.3":0.05306,"13.4-13.7":0.17738,"14.0-14.4":0.45937,"14.5-14.8":1.63888,"15.0-15.1":0.96119,"15.2-15.3":9.759,"15.4":1.31596},P:{"4":0.44942,"5.0-5.4":0.01044,"6.2-6.4":0.03127,"7.2-7.4":0.09396,"8.2":0.0522,"9.2":0.04176,"10.1":0.15634,"11.1-11.2":0.07308,"12.0":0.03064,"13.0":0.05107,"14.0":0.03064,"15.0":0.05107,"16.0":3.06425},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":7.2997,"4.4":0,"4.4.3-4.4.4":21.8991},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00462,"9":0.00924,"11":0.18018,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":19.6018},S:{"2.5":0},R:{_:"0"},M:{"0":0.39242},Q:{"10.4":0.01453},O:{"0":0.45782},H:{"0":0.47471}}; +module.exports={C:{"48":0.00248,"52":0.00744,"56":0.00248,"65":0.00248,"78":0.02728,"80":0.00496,"81":0.00992,"82":0.00496,"83":0.00496,"84":0.00248,"87":0.00248,"88":0.00744,"89":0.00496,"90":0.00496,"91":0.01488,"92":0.00496,"94":0.00248,"95":0.00496,"96":0.01736,"97":0.00496,"98":0.0124,"99":0.20832,"100":0.93,"101":0.00248,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 79 85 86 93 102 103 3.5 3.6"},D:{"22":0.00496,"34":0.03224,"38":0.07688,"47":0.01736,"48":0.00248,"49":0.02232,"51":0.00248,"53":0.01984,"55":0.00248,"56":0.00992,"57":0.00496,"60":0.03224,"61":0.00248,"62":0.00496,"65":0.00992,"66":0.00248,"67":0.0124,"68":0.00248,"69":0.00248,"70":0.00496,"71":0.00496,"72":0.00248,"73":0.00496,"74":0.00496,"75":0.00248,"76":0.00744,"77":0.00496,"78":0.01488,"79":0.23064,"80":0.03224,"81":0.03472,"83":0.04464,"84":0.08432,"85":0.05952,"86":0.07936,"87":0.08928,"88":0.02232,"89":0.01984,"90":0.00992,"91":0.03472,"92":0.03224,"93":0.00992,"94":0.062,"95":0.02232,"96":0.06944,"97":0.07688,"98":0.1116,"99":0.24304,"100":3.04792,"101":10.88224,"102":1.0788,"103":0.00992,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 50 52 54 58 59 63 64 104"},F:{"28":0.00744,"36":0.00992,"40":0.00248,"46":0.02728,"68":0.00248,"69":0.00248,"71":0.00496,"72":0.00248,"85":0.14136,"86":0.1612,"87":0.00744,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 70 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.0124,"84":0.00496,"85":0.00496,"86":0.00496,"96":0.00248,"98":0.00496,"99":0.02976,"100":0.10664,"101":1.80296,_:"12 13 14 15 16 17 79 80 81 83 87 88 89 90 91 92 93 94 95 97"},E:{"4":0,"8":0.00992,"12":0.00248,"13":0.03968,"14":0.1488,"15":0.05456,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00248,"10.1":0.00496,"11.1":0.01984,"12.1":0.0248,"13.1":0.15128,"14.1":0.40424,"15.1":0.09424,"15.2-15.3":0.09424,"15.4":1.72112,"15.5":0.17856},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00148,"6.0-6.1":0.00593,"7.0-7.1":0.01186,"8.1-8.4":0.01335,"9.0-9.2":0.00593,"9.3":0.10529,"10.0-10.2":0.01038,"10.3":0.06376,"11.0-11.2":0.01928,"11.3-11.4":0.01779,"12.0-12.1":0.01483,"12.2-12.5":0.32772,"13.0-13.1":0.01779,"13.2":0.01928,"13.3":0.04152,"13.4-13.7":0.14236,"14.0-14.4":0.36183,"14.5-14.8":1.11217,"15.0-15.1":0.43745,"15.2-15.3":0.96685,"15.4":11.13061},P:{"4":0.39904,"5.0-5.4":0.02054,"6.2-6.4":0.04159,"7.2-7.4":0.13352,"8.2":0.21569,"9.2":0.02054,"10.1":0.01023,"11.1-11.2":0.0719,"12.0":0.02046,"13.0":0.04093,"14.0":0.02046,"15.0":0.0307,"16.0":0.99249},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":7.69946,"4.4":0,"4.4.3-4.4.4":23.09837},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00815,"9":0.01222,"10":0.00407,"11":0.14667,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.44362},Q:{"10.4":0.01504},O:{"0":0.4737},H:{"0":0.50541},L:{"0":19.81994},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SH.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SH.js index 216d84683e339a..3f63180020f74f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SH.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SH.js @@ -1 +1 @@ -module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 3.5 3.6"},D:{"99":66.67,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0},P:{"4":0.09502,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.13725,"8.2":0.02028,"9.2":0.0739,"10.1":0.03042,"11.1-11.2":0.09502,"12.0":0.01056,"13.0":0.05279,"14.0":0.11614,"15.0":0.13725,"16.0":0.90797},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":33.33},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 3.5 3.6"},D:{"101":94.12,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 102 103 104"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.1 15.2-15.3 15.4 15.5"},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":0,"15.2-15.3":0,"15.4":0},P:{"4":0.0923,"5.0-5.4":0.02027,"6.2-6.4":0.02046,"7.2-7.4":0.06808,"8.2":0.01022,"9.2":0.02051,"10.1":0.03041,"11.1-11.2":0.09077,"12.0":0.01135,"13.0":0.02269,"14.0":0.02269,"15.0":0.03404,"16.0":0.35175},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":5.88},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SI.js index f32c37301dc121..64c5a7b7b967b5 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SI.js @@ -1 +1 @@ -module.exports={C:{"48":0.01055,"52":0.153,"60":0.02638,"66":0.01583,"68":0.02638,"76":0.01055,"77":0.0211,"78":0.07386,"83":0.0211,"84":0.01055,"87":0.00528,"88":0.05804,"89":0.02638,"91":0.14245,"92":0.0211,"93":0.00528,"94":0.01583,"95":0.04748,"96":0.13718,"97":2.40586,"98":3.83565,"99":0.01055,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 72 73 74 75 79 80 81 82 85 86 90 100 3.5 3.6"},D:{"49":0.06859,"51":0.03166,"58":0.00528,"67":0.01055,"69":0.01583,"70":0.00528,"73":0.00528,"76":0.02638,"77":0.00528,"78":0.01583,"79":0.04748,"80":0.02638,"81":0.01055,"83":0.03693,"84":0.06331,"85":0.03166,"86":0.03166,"87":0.05804,"88":0.0211,"89":0.03166,"90":0.06859,"91":0.07386,"92":0.05804,"93":0.33239,"94":0.02638,"95":0.03693,"96":0.21632,"97":0.33239,"98":8.34136,"99":25.07683,"100":0.01583,"101":0.00528,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 59 60 61 62 63 64 65 66 68 71 72 74 75 102 103"},F:{"82":0.01055,"83":0.50122,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00528,"18":0.01583,"84":0.01055,"86":0.01055,"87":0.01055,"92":0.01055,"93":0.01055,"94":0.00528,"96":0.0211,"97":0.04221,"98":0.99716,"99":3.75124,_:"12 13 14 15 17 79 80 81 83 85 88 89 90 91 95"},E:{"4":0,"5":0.0211,"9":0.00528,"12":0.00528,"13":0.02638,"14":0.12135,"15":0.07386,_:"0 6 7 8 10 11 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.01055,"11.1":0.01583,"12.1":0.03693,"13.1":0.19521,"14.1":0.41153,"15.1":0.13718,"15.2-15.3":0.19521,"15.4":0.17938},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00378,"8.1-8.4":0.00189,"9.0-9.2":0,"9.3":0.01703,"10.0-10.2":0.00095,"10.3":0.03974,"11.0-11.2":0.01798,"11.3-11.4":0.01041,"12.0-12.1":0.01419,"12.2-12.5":0.1495,"13.0-13.1":0.00946,"13.2":0.00378,"13.3":0.01892,"13.4-13.7":0.09841,"14.0-14.4":0.36618,"14.5-14.8":1.2348,"15.0-15.1":0.82131,"15.2-15.3":6.1863,"15.4":0.4608},P:{"4":0.02092,"5.0-5.4":0.01044,"6.2-6.4":0.03127,"7.2-7.4":0.09396,"8.2":0.0522,"9.2":0.04176,"10.1":0.15634,"11.1-11.2":0.04183,"12.0":0.02092,"13.0":0.1255,"14.0":0.10458,"15.0":0.07321,"16.0":2.68772},I:{"0":0,"3":0,"4":0.00253,"2.1":0,"2.2":0.00633,"2.3":0.00127,"4.1":0.00759,"4.2-4.3":0.0038,"4.4":0,"4.4.3-4.4.4":0.04934},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01055,"11":0.35349,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":29.84372},S:{"2.5":0},R:{_:"0"},M:{"0":0.41562},Q:{"10.4":0},O:{"0":0.00945},H:{"0":0.19674}}; +module.exports={C:{"52":0.14693,"60":0.02177,"66":0.01633,"68":0.01633,"72":0.01088,"73":0.02177,"76":0.00544,"78":0.11972,"83":0.01088,"88":0.04354,"89":0.00544,"91":0.13605,"92":0.00544,"95":0.03265,"96":0.04354,"97":0.03809,"98":0.07619,"99":1.11017,"100":5.43112,"101":0.02177,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 74 75 77 79 80 81 82 84 85 86 87 90 93 94 102 103 3.5 3.6"},D:{"49":0.07075,"51":0.03265,"63":0.01088,"67":0.00544,"69":0.02177,"70":0.00544,"76":0.02721,"77":0.05986,"78":0.01633,"79":0.05442,"80":0.03809,"81":0.01088,"83":0.01633,"84":0.04354,"85":0.02721,"86":0.02177,"87":0.04898,"88":0.03809,"89":0.02721,"90":0.05442,"91":0.05986,"92":0.03265,"93":0.01633,"94":0.02721,"95":0.02177,"96":0.08163,"97":0.05442,"98":0.1687,"99":0.25577,"100":6.68278,"101":25.01687,"102":2.57407,"103":0.00544,"104":0.05442,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 58 59 60 61 62 64 65 66 68 71 72 73 74 75"},F:{"28":0.01633,"85":0.7129,"86":0.87072,"87":0.02721,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01633,"87":0.01088,"92":0.00544,"96":0.00544,"97":0.01088,"98":0.01088,"99":0.04354,"100":0.28298,"101":4.93045,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 88 89 90 91 93 94 95"},E:{"4":0,"5":0.02177,"13":0.04354,"14":0.11972,"15":0.05442,_:"0 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00544,"11.1":0.05442,"12.1":0.03265,"13.1":0.1687,"14.1":0.41359,"15.1":0.08707,"15.2-15.3":0.09251,"15.4":1.20268,"15.5":0.16326},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00836,"8.1-8.4":0.00105,"9.0-9.2":0,"9.3":0.02718,"10.0-10.2":0.00105,"10.3":0.04599,"11.0-11.2":0.00732,"11.3-11.4":0.01254,"12.0-12.1":0.00836,"12.2-12.5":0.13903,"13.0-13.1":0.01568,"13.2":0.00418,"13.3":0.01673,"13.4-13.7":0.07004,"14.0-14.4":0.27597,"14.5-14.8":0.92722,"15.0-15.1":0.49235,"15.2-15.3":1.15823,"15.4":7.23792},P:{"4":0.05224,"5.0-5.4":0.02054,"6.2-6.4":0.04159,"7.2-7.4":0.13352,"8.2":0.21569,"9.2":0.02054,"10.1":0.01023,"11.1-11.2":0.04179,"12.0":0.01045,"13.0":0.05224,"14.0":0.09403,"15.0":0.06269,"16.0":1.28507},I:{"0":0,"3":0,"4":0.00556,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00667,"4.2-4.3":0.00222,"4.4":0,"4.4.3-4.4.4":0.03112},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00544,"11":0.2721,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.48304},Q:{"10.4":0},O:{"0":0.01367},H:{"0":0.25454},L:{"0":31.39121},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SK.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SK.js index ac987269db9dbe..7b90f03feb01d2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SK.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SK.js @@ -1 +1 @@ -module.exports={C:{"33":0.00482,"47":0.01927,"52":0.14451,"56":0.00963,"68":0.01927,"72":0.00963,"77":0.00482,"78":0.03854,"80":0.00482,"81":0.00963,"82":0.00482,"84":0.00963,"86":0.00482,"88":0.01927,"89":0.00963,"90":0.01445,"91":0.10597,"92":0.00963,"93":0.00963,"94":0.01927,"95":0.03372,"96":0.11079,"97":2.14838,"98":3.66092,"99":0.01445,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 79 83 85 87 100 3.5 3.6"},D:{"34":0.00482,"38":0.08671,"43":0.00963,"47":0.01445,"49":0.12524,"53":0.01927,"63":0.10116,"65":0.00963,"66":0.00482,"67":0.00482,"68":0.00963,"70":0.00482,"71":0.00963,"72":0.04335,"74":0.00963,"75":0.01445,"76":0.01445,"77":0.00482,"78":0.00963,"79":0.35646,"80":0.00963,"81":0.04817,"83":0.03854,"84":0.05299,"85":0.04335,"86":0.06262,"87":0.07226,"88":0.01445,"89":0.05299,"90":0.02409,"91":0.04335,"92":0.03372,"93":0.17341,"94":0.0289,"95":0.02409,"96":0.15896,"97":0.30347,"98":6.9702,"99":21.58498,"100":0.01927,"101":0.00482,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 50 51 52 54 55 56 57 58 59 60 61 62 64 69 73 102 103"},F:{"28":0.02409,"36":0.01927,"46":0.01927,"69":0.00963,"70":0.00963,"77":0.01927,"78":0.00482,"79":0.01445,"80":0.01445,"81":0.01445,"82":0.04335,"83":0.65511,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00963,"17":0.00482,"18":0.02409,"84":0.00482,"85":0.00482,"86":0.00482,"87":0.01445,"89":0.00482,"91":0.02409,"92":0.02409,"94":0.00482,"95":0.00482,"96":0.01445,"97":0.06744,"98":0.82852,"99":3.18404,_:"12 13 14 16 79 80 81 83 88 90 93"},E:{"4":0,"12":0.00482,"13":0.01445,"14":0.13006,"15":0.06262,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00963,"12.1":0.0289,"13.1":0.13488,"14.1":0.33719,"15.1":0.20713,"15.2-15.3":0.19268,"15.4":0.14933},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01853,"6.0-6.1":0,"7.0-7.1":0.00103,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02162,"10.0-10.2":0,"10.3":0.07617,"11.0-11.2":0.00618,"11.3-11.4":0.01029,"12.0-12.1":0.00618,"12.2-12.5":0.2316,"13.0-13.1":0.00515,"13.2":0.00926,"13.3":0.01956,"13.4-13.7":0.12352,"14.0-14.4":0.33351,"14.5-14.8":1.17037,"15.0-15.1":0.77304,"15.2-15.3":6.76384,"15.4":0.71643},P:{"4":0.40653,"5.0-5.4":0.01044,"6.2-6.4":0.03127,"7.2-7.4":0.09396,"8.2":0.0522,"9.2":0.04176,"10.1":0.15634,"11.1-11.2":0.03127,"12.0":0.01042,"13.0":0.0417,"14.0":0.07297,"15.0":0.0417,"16.0":2.10561},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0019,"4.2-4.3":0.01232,"4.4":0,"4.4.3-4.4.4":0.06351},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21677,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":34.41402},S:{"2.5":0},R:{_:"0"},M:{"0":0.26428},Q:{"10.4":0},O:{"0":0.03627},H:{"0":0.51513}}; +module.exports={C:{"33":0.00477,"52":0.15277,"56":0.01432,"57":0.00955,"68":0.02387,"74":0.00477,"75":0.00477,"78":0.03819,"79":0.00955,"81":0.00477,"82":0.00955,"84":0.00955,"88":0.00955,"89":0.00955,"90":0.00955,"91":0.1098,"92":0.00955,"94":0.00955,"95":0.01432,"96":0.02864,"97":0.03342,"98":0.10025,"99":1.10279,"100":4.75968,"101":0.0191,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 76 77 80 83 85 86 87 93 102 103 3.5 3.6"},D:{"34":0.00477,"38":0.06206,"43":0.00477,"47":0.00955,"49":0.14799,"53":0.02864,"63":0.1098,"65":0.00477,"66":0.00477,"69":0.10025,"70":0.00477,"71":0.00477,"72":0.03342,"74":0.00477,"75":0.00477,"76":0.0191,"79":0.26734,"80":0.00955,"81":0.02864,"83":0.05251,"84":0.03819,"85":0.0191,"86":0.06206,"87":0.04774,"88":0.00955,"89":0.04774,"90":0.02864,"91":0.02387,"92":0.03342,"93":0.0191,"94":0.10503,"95":0.01432,"96":0.06684,"97":0.04774,"98":0.1289,"99":0.27689,"100":5.17979,"101":20.99605,"102":1.99076,"103":0.00955,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 50 51 52 54 55 56 57 58 59 60 61 62 64 67 68 73 77 78 104"},F:{"28":0.0191,"36":0.00955,"40":0.00955,"46":0.00955,"69":0.01432,"77":0.00477,"79":0.00477,"80":0.00955,"82":0.00477,"84":0.01432,"85":1.29853,"86":1.57065,"87":0.04297,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 78 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.02387,"87":0.00955,"89":0.00477,"91":0.00955,"92":0.00955,"96":0.00955,"97":0.01432,"98":0.0191,"99":0.05251,"100":0.2578,"101":3.78101,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 88 90 93 94 95"},E:{"4":0,"13":0.00955,"14":0.11458,"15":0.06206,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01432,"12.1":0.02864,"13.1":0.15277,"14.1":0.28167,"15.1":0.13367,"15.2-15.3":0.10025,"15.4":1.0646,"15.5":0.15277},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01669,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01892,"10.0-10.2":0,"10.3":0.08234,"11.0-11.2":0.00445,"11.3-11.4":0.01001,"12.0-12.1":0.00779,"12.2-12.5":0.21808,"13.0-13.1":0.00445,"13.2":0.01446,"13.3":0.01669,"13.4-13.7":0.08901,"14.0-14.4":0.26815,"14.5-14.8":0.82225,"15.0-15.1":0.35382,"15.2-15.3":0.86898,"15.4":8.32484},P:{"4":0.30195,"5.0-5.4":0.02054,"6.2-6.4":0.04159,"7.2-7.4":0.13352,"8.2":0.21569,"9.2":0.02054,"10.1":0.01023,"11.1-11.2":0.03124,"12.0":0.02082,"13.0":0.04165,"14.0":0.05206,"15.0":0.03124,"16.0":0.83297},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.004,"4.2-4.3":0.01119,"4.4":0,"4.4.3-4.4.4":0.05275},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21006,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.27175},Q:{"10.4":0},O:{"0":0.04703},H:{"0":0.5195},L:{"0":36.38095},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SL.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SL.js index a06e7130183215..b092b0ccd08004 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SL.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SL.js @@ -1 +1 @@ -module.exports={C:{"15":0.00394,"31":0.00591,"43":0.00197,"44":0.00197,"45":0.00394,"47":0.01181,"48":0.00197,"56":0.00197,"60":0.00591,"72":0.00591,"77":0.00197,"78":0.00394,"80":0.00197,"82":0.00197,"84":0.00591,"89":0.00394,"90":0.00591,"91":0.00985,"92":0.00394,"94":0.00197,"95":0.01575,"96":0.00985,"97":0.34851,"98":0.53951,"99":0.03938,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 46 49 50 51 52 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 79 81 83 85 86 87 88 93 100 3.5 3.6"},D:{"30":0.00985,"34":0.00394,"37":0.00591,"38":0.00394,"43":0.01969,"48":0.01378,"49":0.00591,"50":0.00394,"55":0.00394,"60":0.00985,"61":0.00197,"63":0.00788,"64":0.00985,"65":0.00788,"67":0.00591,"69":0.00985,"70":0.00591,"71":0.00985,"72":0.08073,"74":0.00394,"75":0.01969,"76":0.00985,"77":0.00591,"78":0.00394,"79":0.0256,"80":0.00788,"81":0.00394,"83":0.01181,"84":0.02954,"85":0.00394,"86":0.01181,"87":0.08073,"88":0.01378,"89":0.00197,"90":0.00591,"91":0.01378,"92":0.01181,"93":0.03347,"94":0.0256,"95":0.01772,"96":0.06301,"97":0.16343,"98":1.83314,"99":4.67047,"100":0.10239,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 35 36 39 40 41 42 44 45 46 47 51 52 53 54 56 57 58 59 62 66 68 73 101 102 103"},F:{"28":0.00591,"42":0.00394,"77":0.00197,"79":0.00985,"80":0.00591,"82":0.01575,"83":0.11026,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 81 9.5-9.6 10.5 10.6 11.1 11.6","10.0-10.1":0,"11.5":0.00394,"12.1":0.00197},B:{"12":0.04529,"13":0.03347,"14":0.01772,"15":0.01772,"16":0.04923,"17":0.01181,"18":0.1142,"84":0.02954,"85":0.01378,"86":0.00591,"87":0.00197,"89":0.01181,"90":0.00985,"92":0.05907,"93":0.00394,"94":0.00197,"95":0.00985,"96":0.02954,"97":0.0827,"98":0.5651,"99":1.55945,_:"79 80 81 83 88 91"},E:{"4":0,"9":0.00197,"13":0.00591,"14":0.02757,"15":0.00591,_:"0 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00197,"12.1":0.00394,"13.1":0.02954,"14.1":0.2796,"15.1":0.04923,"15.2-15.3":0.01575,"15.4":0.01772},G:{"8":0.00077,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00154,"6.0-6.1":0.00154,"7.0-7.1":0.00924,"8.1-8.4":0.00693,"9.0-9.2":0,"9.3":0.07625,"10.0-10.2":0.00077,"10.3":0.06393,"11.0-11.2":0.03697,"11.3-11.4":0.02157,"12.0-12.1":0.06008,"12.2-12.5":0.53995,"13.0-13.1":0.06008,"13.2":0.04544,"13.3":0.10783,"13.4-13.7":0.1656,"14.0-14.4":1.72382,"14.5-14.8":1.30018,"15.0-15.1":1.01981,"15.2-15.3":2.27609,"15.4":0.18332},P:{"4":0.42805,"5.0-5.4":0.01044,"6.2-6.4":0.03127,"7.2-7.4":0.09396,"8.2":0.0522,"9.2":0.04176,"10.1":0.15634,"11.1-11.2":0.07308,"12.0":0.10422,"13.0":0.02088,"14.0":0.09396,"15.0":0.06264,"16.0":0.68906},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00165,"4.2-4.3":0.00264,"4.4":0,"4.4.3-4.4.4":0.06799},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03325,"10":0.01995,"11":0.35242,_:"6 7 9 5.5"},J:{"7":0,"10":0.02409},N:{"10":0.02879,"11":0.04426},L:{"0":55.00502},S:{"2.5":0.05622},R:{_:"0"},M:{"0":0.12047},Q:{"10.4":0},O:{"0":1.5018},H:{"0":19.03849}}; +module.exports={C:{"25":0.00394,"35":0.00197,"43":0.00197,"44":0.00197,"46":0.00591,"47":0.00788,"53":0.00197,"72":0.00788,"73":0.00197,"77":0.00394,"78":0.00591,"80":0.00197,"83":0.00394,"91":0.00986,"95":0.00591,"96":0.01774,"97":0.00394,"98":0.00788,"99":0.23258,"100":0.65043,"101":0.07884,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 45 48 49 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 75 76 79 81 82 84 85 86 87 88 89 90 92 93 94 102 103 3.5 3.6"},D:{"11":0.00788,"22":0.00197,"37":0.00197,"38":0.00591,"43":0.00197,"46":0.00197,"48":0.00788,"49":0.00591,"50":0.00591,"51":0.00788,"53":0.00394,"60":0.02168,"63":0.00197,"64":0.00591,"65":0.00591,"67":0.00394,"68":0.00394,"70":0.00197,"71":0.00394,"72":0.12614,"73":0.00197,"74":0.00394,"75":0.02957,"76":0.0138,"77":0.00197,"78":0.00197,"79":0.02759,"80":0.00788,"81":0.00986,"83":0.00591,"84":0.00197,"85":0.00591,"86":0.01774,"87":0.02759,"88":0.00394,"89":0.00591,"90":0.0138,"91":0.01774,"92":0.04928,"93":0.03351,"94":0.04533,"95":0.02562,"96":0.03351,"97":0.04928,"98":0.0473,"99":0.17148,"100":1.47431,"101":4.55892,"102":0.54991,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39 40 41 42 44 45 47 52 54 55 56 57 58 59 61 62 66 69 103 104"},F:{"37":0.00394,"42":0.00591,"74":0.00197,"79":0.01971,"82":0.00394,"83":0.00394,"84":0.00591,"85":0.25229,"86":0.4691,"87":0.03351,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.04336,"13":0.03548,"14":0.02168,"15":0.00986,"16":0.01183,"17":0.00197,"18":0.09658,"84":0.02168,"85":0.00788,"89":0.02759,"90":0.01183,"92":0.05125,"94":0.00197,"95":0.00197,"96":0.00788,"97":0.02562,"98":0.02365,"99":0.03745,"100":0.16556,"101":1.60834,_:"79 80 81 83 86 87 88 91 93"},E:{"4":0,"12":0.00197,"13":0.00197,"14":0.01183,"15":0.00197,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01183,"12.1":0.00591,"13.1":0.02759,"14.1":0.04139,"15.1":0.00986,"15.2-15.3":0.0138,"15.4":0.09658,"15.5":0.03154},G:{"8":0.00249,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01243,"8.1-8.4":0,"9.0-9.2":0.00166,"9.3":0.08453,"10.0-10.2":0.00083,"10.3":0.05553,"11.0-11.2":0.0116,"11.3-11.4":0.02652,"12.0-12.1":0.0489,"12.2-12.5":0.59339,"13.0-13.1":0.06547,"13.2":0.02818,"13.3":0.13923,"13.4-13.7":0.12183,"14.0-14.4":1.55309,"14.5-14.8":1.30861,"15.0-15.1":0.79727,"15.2-15.3":1.09148,"15.4":2.3429},P:{"4":0.1746,"5.0-5.4":0.02054,"6.2-6.4":0.04159,"7.2-7.4":0.13352,"8.2":0.21569,"9.2":0.02054,"10.1":0.17677,"11.1-11.2":0.0719,"12.0":0.09358,"13.0":0.09244,"14.0":0.0719,"15.0":0.04108,"16.0":0.40056},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00115,"4.2-4.3":0.00115,"4.4":0,"4.4.3-4.4.4":0.02982},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00719,"10":0.01199,"11":0.06952,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.20073},Q:{"10.4":0},O:{"0":1.51748},H:{"0":17.17902},L:{"0":57.34772},S:{"2.5":0.04015}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SM.js index 0fe592b3a6fa72..c93a64f8f86ff3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SM.js @@ -1 +1 @@ -module.exports={C:{"48":0.02947,"52":0.03536,"56":0.19447,"78":0.0825,"88":0.02947,"91":0.06482,"96":0.04125,"97":1.57343,"98":3.04668,"99":0.09429,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 95 100 3.5 3.6"},D:{"49":0.00589,"65":0.01179,"76":0.45376,"79":0.4184,"81":0.01179,"84":0.05893,"86":0.03536,"87":0.07072,"88":0.04714,"91":0.02947,"92":0.02947,"95":0.06482,"96":0.54805,"97":0.17679,"98":8.57432,"99":32.02256,"100":0.22983,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 77 78 80 83 85 89 90 93 94 101 102 103"},F:{"82":0.01179,"83":0.11786,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"96":0.01179,"97":0.01179,"98":1.25521,"99":3.82456,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95"},E:{"4":0,"13":0.01179,"14":0.18268,"15":0.32412,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01179,"11.1":0.18268,"12.1":0.0825,"13.1":0.63055,"14.1":0.78966,"15.1":0.0825,"15.2-15.3":0.14143,"15.4":0.9252},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01294,"9.0-9.2":0.01035,"9.3":0.02329,"10.0-10.2":0.00517,"10.3":0.02329,"11.0-11.2":0.05433,"11.3-11.4":0.00776,"12.0-12.1":0.00517,"12.2-12.5":0.54593,"13.0-13.1":0.00517,"13.2":0.00259,"13.3":0.00259,"13.4-13.7":0.07633,"14.0-14.4":0.62744,"14.5-14.8":1.05564,"15.0-15.1":0.31048,"15.2-15.3":7.65213,"15.4":2.51233},P:{"4":0.07192,"5.0-5.4":0.02035,"6.2-6.4":0.04093,"7.2-7.4":0.60372,"8.2":0.02046,"9.2":0.05116,"10.1":0.02046,"11.1-11.2":0.11301,"12.0":0.04093,"13.0":0.01027,"14.0":0.59348,"15.0":0.15349,"16.0":3.02057},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.03286},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07661,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":24.85593},S:{"2.5":0},R:{_:"0"},M:{"0":0.10268},Q:{"10.4":0},O:{"0":0},H:{"0":0.01944}}; +module.exports={C:{"48":0.01105,"52":0.05524,"56":0.02762,"65":0.01105,"78":0.06629,"81":0.01105,"89":0.01105,"91":0.03867,"93":0.00552,"95":0.00552,"96":0.00552,"99":2.32008,"100":2.46923,"101":0.04972,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 79 80 82 83 84 85 86 87 88 90 92 94 97 98 102 103 3.5 3.6"},D:{"49":0.01657,"53":0.01657,"66":0.01105,"75":0.01657,"76":0.14362,"79":0.86174,"81":0.00552,"84":0.06076,"87":0.02762,"89":0.01105,"91":0.02762,"95":0.01105,"96":0.03867,"97":0.01105,"98":1.15452,"99":0.12153,"100":4.65121,"101":28.23316,"102":3.80051,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 77 78 80 83 85 86 88 90 92 93 94 103 104"},F:{"85":0.04419,"86":0.41982,"87":0.01657,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00552,"18":0.01657,"95":0.01657,"99":0.0221,"100":0.12153,"101":5.62343,_:"12 13 14 15 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 96 97 98"},E:{"4":0,"14":0.16572,"15":0.60764,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.08838,"11.1":0.14915,"12.1":0.06076,"13.1":0.18782,"14.1":0.53583,"15.1":0.05524,"15.2-15.3":0.17124,"15.4":1.11585,"15.5":0.18229},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00162,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02917,"10.0-10.2":0,"10.3":0.05834,"11.0-11.2":0.00162,"11.3-11.4":0.00162,"12.0-12.1":0.00486,"12.2-12.5":0.75357,"13.0-13.1":0,"13.2":0.01621,"13.3":0,"13.4-13.7":0.05996,"14.0-14.4":0.54128,"14.5-14.8":1.47312,"15.0-15.1":0.14261,"15.2-15.3":0.39704,"15.4":12.71676},P:{"4":0.06373,"5.0-5.4":0.02027,"6.2-6.4":0.01043,"7.2-7.4":0.58467,"8.2":0.01022,"9.2":0.08206,"10.1":0.04171,"11.1-11.2":0.12309,"12.0":0.05129,"13.0":0.01062,"14.0":0.01062,"15.0":0.15386,"16.0":0.55234},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00448},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01105,"11":0.11048,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.29996},Q:{"10.4":0},O:{"0":0},H:{"0":0.01272},L:{"0":26.53662},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SN.js index bb2e77e287680b..31bef3ef14453d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SN.js @@ -1 +1 @@ -module.exports={C:{"35":0.00253,"36":0.00253,"42":0.00506,"43":0.00506,"47":0.00506,"49":0.01012,"52":0.01518,"57":0.01265,"60":0.00253,"68":0.00253,"70":0.02024,"72":0.00506,"73":0.00253,"78":0.02024,"80":0.05566,"84":0.00759,"85":0.00253,"88":0.0253,"89":0.01771,"91":0.02783,"94":0.08855,"95":0.00506,"96":0.01012,"97":0.43769,"98":1.14356,"99":0.00759,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 37 38 39 40 41 44 45 46 48 50 51 53 54 55 56 58 59 61 62 63 64 65 66 67 69 71 74 75 76 77 79 81 82 83 86 87 90 92 93 100 3.5 3.6"},D:{"32":0.01771,"38":0.00253,"40":0.00253,"47":0.00506,"49":0.02277,"50":0.00253,"51":0.00253,"53":0.00253,"56":0.00253,"58":0.00506,"60":0.00253,"62":0.00506,"63":0.00759,"64":0.00253,"65":0.01012,"67":0.00506,"68":0.00506,"69":0.01771,"70":0.00759,"71":0.00506,"72":0.00253,"73":0.00506,"74":0.02024,"75":0.00759,"76":0.02024,"77":0.00506,"79":0.0506,"80":0.01265,"81":0.01265,"83":0.00506,"84":0.01265,"85":0.01265,"86":0.03542,"87":0.03036,"88":0.01265,"89":0.0253,"90":0.02277,"91":0.07843,"92":0.0253,"93":0.06325,"94":0.03036,"95":0.04807,"96":0.11638,"97":0.50853,"98":2.15556,"99":9.75568,"100":0.18722,"101":0.00253,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 39 41 42 43 44 45 46 48 52 54 55 57 59 61 66 78 102 103"},F:{"36":0.00506,"79":0.00506,"83":0.03795,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01265,"13":0.01265,"14":0.00759,"15":0.00506,"16":0.00506,"17":0.01012,"18":0.03542,"83":0.00253,"85":0.00759,"86":0.00253,"87":0.01265,"89":0.00506,"91":0.00253,"92":0.01265,"93":0.00253,"95":0.00506,"96":0.01771,"97":0.02024,"98":0.44781,"99":1.98605,_:"79 80 81 84 88 90 94"},E:{"4":0,"8":0.00253,"12":0.00506,"13":0.00506,"14":0.06072,"15":0.00759,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01012,"11.1":0.04807,"12.1":0.03036,"13.1":0.05566,"14.1":0.08602,"15.1":0.02024,"15.2-15.3":0.03036,"15.4":0.03289},G:{"8":0.0043,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.06446,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08738,"10.0-10.2":0.00716,"10.3":0.09741,"11.0-11.2":0.1189,"11.3-11.4":0.07449,"12.0-12.1":0.14182,"12.2-12.5":3.12423,"13.0-13.1":0.04441,"13.2":0.04154,"13.3":0.1676,"13.4-13.7":0.59305,"14.0-14.4":1.64878,"14.5-14.8":2.2891,"15.0-15.1":1.24482,"15.2-15.3":4.02956,"15.4":0.54291},P:{"4":0.58384,"5.0-5.4":0.01035,"6.2-6.4":0.02049,"7.2-7.4":0.66579,"8.2":0.02046,"9.2":0.05121,"10.1":0.06146,"11.1-11.2":0.22534,"12.0":0.2151,"13.0":0.12291,"14.0":0.1434,"15.0":0.12291,"16.0":1.32133},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00097,"4.2-4.3":0.00217,"4.4":0,"4.4.3-4.4.4":0.03421},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08855,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.02241},N:{"10":0.02879,"11":0.04426},L:{"0":60.39528},S:{"2.5":0.01494},R:{_:"0"},M:{"0":0.05977},Q:{"10.4":0},O:{"0":0.11207},H:{"0":0.42438}}; +module.exports={C:{"35":0.01283,"36":0.00428,"41":0.00428,"42":0.0107,"43":0.00428,"48":0.00428,"49":0.00428,"52":0.02353,"57":0.00428,"58":0.00428,"60":0.00428,"64":0.00214,"70":0.0385,"72":0.00856,"76":0.00214,"78":0.04492,"79":0.0107,"80":0.01711,"81":0.00214,"84":0.00642,"85":0.00856,"86":0.00214,"88":0.00642,"89":0.00856,"91":0.02353,"92":0.00214,"94":0.00856,"95":0.00856,"96":0.00856,"97":0.00428,"98":0.01283,"99":0.32941,"100":1.5358,"101":0.0107,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 37 38 39 40 44 45 46 47 50 51 53 54 55 56 59 61 62 63 65 66 67 68 69 71 73 74 75 77 82 83 87 90 93 102 103 3.5 3.6"},D:{"11":0.00214,"33":0.00214,"43":0.00214,"49":0.04064,"50":0.00428,"56":0.00214,"60":0.00214,"63":0.00428,"64":0.00428,"65":0.0107,"67":0.00428,"69":0.04278,"72":0.00428,"74":0.00642,"75":0.0107,"76":0.0107,"77":0.00642,"78":0.00214,"79":0.03636,"80":0.00642,"81":0.01283,"83":0.00428,"84":0.00856,"85":0.00856,"86":0.02139,"87":0.02139,"88":0.0107,"89":0.00856,"90":0.00642,"91":0.02995,"92":0.04064,"93":0.01711,"94":0.0107,"95":0.02139,"96":0.0492,"97":0.10909,"98":0.08128,"99":0.08128,"100":1.69195,"101":8.20093,"102":0.75079,"103":0.00428,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 44 45 46 47 48 51 52 53 54 55 57 58 59 61 62 66 68 70 71 73 104"},F:{"79":0.00428,"84":0.00214,"85":0.19037,"86":0.27165,"87":0.01497,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01711,"13":0.00856,"14":0.00428,"15":0.00856,"16":0.00856,"17":0.01711,"18":0.0492,"84":0.01283,"85":0.00428,"87":0.01711,"89":0.00428,"92":0.01925,"94":0.00214,"95":0.00214,"96":0.0107,"97":0.0107,"98":0.04064,"99":0.02781,"100":0.1647,"101":1.91013,_:"79 80 81 83 86 88 90 91 93"},E:{"4":0,"6":0.00428,"10":0.00856,"11":0.00214,"12":0.0107,"13":0.00642,"14":0.02781,"15":0.00642,_:"0 5 7 8 9 3.1 3.2 5.1 6.1 7.1","9.1":0.00214,"10.1":0.0107,"11.1":0.02139,"12.1":0.01711,"13.1":0.05134,"14.1":0.06845,"15.1":0.01711,"15.2-15.3":0.01711,"15.4":0.24385,"15.5":0.03209},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03095,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.09112,"10.0-10.2":0.00172,"10.3":0.19255,"11.0-11.2":0.12722,"11.3-11.4":0.0533,"12.0-12.1":0.0808,"12.2-12.5":1.46822,"13.0-13.1":0.03954,"13.2":0.0533,"13.3":0.20459,"13.4-13.7":0.42121,"14.0-14.4":1.53355,"14.5-14.8":2.44474,"15.0-15.1":1.14672,"15.2-15.3":1.89115,"15.4":7.40127},P:{"4":0.43769,"5.0-5.4":0.01045,"6.2-6.4":0.01043,"7.2-7.4":0.47841,"8.2":0.01022,"9.2":0.03054,"10.1":0.03054,"11.1-11.2":0.18322,"12.0":0.11197,"13.0":0.11197,"14.0":0.13233,"15.0":0.08143,"16.0":0.88557},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00105,"4.2-4.3":0.00228,"4.4":0,"4.4.3-4.4.4":0.05169},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19679,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.12576},Q:{"10.4":0},O:{"0":0.04716},H:{"0":0.27533},L:{"0":61.46514},S:{"2.5":0.02358}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SO.js index 55f7d95f7538b1..60e9f6a5ee31e2 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SO.js @@ -1 +1 @@ -module.exports={C:{"66":0.00394,"72":0.00197,"78":0.00394,"87":0.00197,"88":0.00197,"89":0.00197,"91":0.00986,"94":0.00394,"95":0.00197,"96":0.00394,"97":0.14001,"98":0.36088,"99":0.03747,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 90 92 93 100 3.5 3.6"},D:{"33":0.00197,"38":0.00197,"39":0.00197,"41":0.00394,"43":0.02958,"46":0.00197,"49":0.00789,"53":0.00197,"60":0.00197,"63":0.00592,"64":0.00394,"65":0.00394,"68":0.01775,"70":0.00394,"71":0.00592,"73":0.00394,"74":0.00592,"75":0.03747,"76":0.00394,"77":0.00986,"78":0.00197,"79":0.07296,"80":0.01183,"81":0.0138,"83":0.00592,"85":0.00197,"86":0.01578,"87":0.03944,"88":0.00592,"89":0.01183,"90":0.0138,"91":0.01578,"92":0.02169,"93":0.01775,"94":0.01578,"95":0.02761,"96":0.0848,"97":0.17748,"98":2.82193,"99":10.48512,"100":0.09071,"101":0.00394,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 40 42 44 45 47 48 50 51 52 54 55 56 57 58 59 61 62 66 67 69 72 84 102 103"},F:{"68":0.00197,"77":0.00394,"79":0.00394,"80":0.00197,"82":0.00592,"83":0.01775,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 78 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0138,"13":0.00592,"14":0.00592,"15":0.00394,"16":0.00986,"17":0.01183,"18":0.06705,"83":0.00197,"84":0.0138,"85":0.00592,"89":0.02761,"90":0.00592,"92":0.0138,"93":0.00592,"94":0.00197,"95":0.00592,"96":0.01775,"97":0.03155,"98":0.35693,"99":1.65845,_:"79 80 81 86 87 88 91"},E:{"4":0,"12":0.00197,"13":0.00197,"14":0.07296,"15":0.01578,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.0355,"12.1":0.00394,"13.1":0.02958,"14.1":0.13015,"15.1":0.06113,"15.2-15.3":0.04536,"15.4":0.0138},G:{"8":0.00141,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00071,"6.0-6.1":0.00141,"7.0-7.1":0.00637,"8.1-8.4":0,"9.0-9.2":0.00141,"9.3":0.13866,"10.0-10.2":0,"10.3":0.01769,"11.0-11.2":0.01132,"11.3-11.4":0.00849,"12.0-12.1":0.01769,"12.2-12.5":0.7874,"13.0-13.1":0.07145,"13.2":0.01415,"13.3":0.08702,"13.4-13.7":0.22568,"14.0-14.4":0.95578,"14.5-14.8":1.19137,"15.0-15.1":0.95649,"15.2-15.3":2.35655,"15.4":0.22073},P:{"4":0.24227,"5.0-5.4":0.05047,"6.2-6.4":0.10095,"7.2-7.4":0.90851,"8.2":0.0522,"9.2":0.05047,"10.1":0.01009,"11.1-11.2":0.25236,"12.0":0.08076,"13.0":0.21199,"14.0":0.44416,"15.0":0.31293,"16.0":1.99872},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.03282,"4.4":0,"4.4.3-4.4.4":0.10364},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01775,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":63.43728},S:{"2.5":0},R:{_:"0"},M:{"0":0.16857},Q:{"10.4":0},O:{"0":2.06294},H:{"0":2.04425}}; +module.exports={C:{"34":0.00179,"37":0.00179,"48":0.00179,"55":0.00357,"66":0.01251,"78":0.00357,"79":0.00536,"87":0.00536,"91":0.00715,"98":0.00357,"99":0.07327,"100":0.68263,"101":0.01787,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 80 81 82 83 84 85 86 88 89 90 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"33":0.00179,"38":0.00536,"39":0.00357,"43":0.01966,"47":0.00357,"49":0.0143,"50":0.00179,"53":0.00715,"59":0.00179,"60":0.01072,"63":0.01251,"64":0.00357,"65":0.00536,"66":0.01787,"68":0.01251,"70":0.01251,"71":0.00179,"74":0.00357,"76":0.00357,"77":0.00357,"78":0.00357,"79":0.06969,"80":0.00536,"81":0.01787,"83":0.00179,"85":0.00357,"86":0.01787,"87":0.03217,"88":0.00536,"89":0.00179,"90":0.00536,"91":0.02502,"92":0.01072,"93":0.04289,"94":0.01251,"95":0.03931,"96":0.03038,"97":0.06969,"98":0.05182,"99":0.14832,"100":2.25162,"101":8.99576,"102":0.8113,"103":0.00715,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 40 41 42 44 45 46 48 51 52 54 55 56 57 58 61 62 67 69 72 73 75 84 104"},F:{"36":0.00179,"79":0.00357,"82":0.00536,"84":0.00536,"85":0.11437,"86":0.14475,"87":0.01251,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01072,"13":0.00357,"14":0.00894,"15":0.00715,"16":0.02502,"17":0.01072,"18":0.07327,"84":0.00715,"85":0.00715,"89":0.0143,"90":0.00357,"92":0.02502,"95":0.00357,"96":0.01072,"97":0.02502,"98":0.01787,"99":0.04468,"100":0.1233,"101":1.59579,_:"79 80 81 83 86 87 88 91 93 94"},E:{"4":0,"13":0.00536,"14":0.02144,"15":0.01072,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00715,"13.1":0.01251,"14.1":0.10901,"15.1":0.04289,"15.2-15.3":0.01966,"15.4":0.11616,"15.5":0.01251},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00607,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00781,"10.0-10.2":0,"10.3":0.02688,"11.0-11.2":0.01561,"11.3-11.4":0.00954,"12.0-12.1":0.02602,"12.2-12.5":0.73194,"13.0-13.1":0.01561,"13.2":0.00867,"13.3":0.13182,"13.4-13.7":0.16131,"14.0-14.4":0.99645,"14.5-14.8":1.30692,"15.0-15.1":0.84642,"15.2-15.3":1.12567,"15.4":3.24692},P:{"4":0.24288,"5.0-5.4":0.06072,"6.2-6.4":0.12144,"7.2-7.4":0.99174,"8.2":0.21569,"9.2":0.06072,"10.1":0.01023,"11.1-11.2":0.21252,"12.0":0.06072,"13.0":0.21252,"14.0":0.42503,"15.0":0.253,"16.0":1.41678},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00908,"4.2-4.3":0.01816,"4.4":0,"4.4.3-4.4.4":0.25197},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01608,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.04927},Q:{"10.4":0},O:{"0":1.94624},H:{"0":2.3246},L:{"0":64.45122},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SR.js index 1d268c323d0a8d..02b10a561a9d87 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SR.js @@ -1 +1 @@ -module.exports={C:{"52":0.04763,"72":0.01361,"78":0.01021,"91":0.04082,"97":0.58855,"98":1.12266,"99":0.01701,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 100 3.5 3.6"},D:{"33":0.0034,"39":0.0068,"49":0.11907,"61":0.01021,"63":0.01021,"65":0.01701,"69":0.02041,"70":0.01021,"74":0.0034,"75":0.03062,"76":0.0068,"79":0.07484,"80":0.0068,"81":0.0068,"83":0.03062,"84":0.0068,"86":0.01701,"87":0.02722,"88":0.08165,"89":0.0068,"90":0.0068,"91":0.01701,"92":0.0068,"93":0.05443,"94":0.0068,"95":0.01021,"96":0.19051,"97":0.20072,"98":4.84105,"99":16.56774,"100":0.1701,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 62 64 66 67 68 71 72 73 77 78 85 101 102 103"},F:{"63":0.19732,"75":0.0034,"83":0.12928,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.03062},B:{"12":0.01021,"13":0.0068,"15":0.0034,"16":0.01021,"18":0.05443,"84":0.0034,"85":0.0034,"89":0.01701,"90":0.0034,"92":0.01361,"96":0.08845,"97":0.08505,"98":0.79267,"99":3.37478,_:"14 17 79 80 81 83 86 87 88 91 93 94 95"},E:{"4":0,"8":0.01361,"12":0.02041,"14":0.01361,"15":0.01021,_:"0 5 6 7 9 10 11 13 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0068,"11.1":0.0034,"12.1":0.01361,"13.1":0.03742,"14.1":0.43886,"15.1":0.04423,"15.2-15.3":0.14629,"15.4":0.04082},G:{"8":0.00098,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01367,"6.0-6.1":0,"7.0-7.1":0.06349,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04102,"10.0-10.2":0,"10.3":0.14163,"11.0-11.2":0.00879,"11.3-11.4":0.02735,"12.0-12.1":0.01465,"12.2-12.5":0.77652,"13.0-13.1":0.10451,"13.2":0.00195,"13.3":0.1553,"13.4-13.7":0.16312,"14.0-14.4":0.50693,"14.5-14.8":1.09103,"15.0-15.1":0.62707,"15.2-15.3":5.28617,"15.4":0.74233},P:{"4":0.63128,"5.0-5.4":0.09058,"6.2-6.4":0.01018,"7.2-7.4":0.69237,"8.2":0.01006,"9.2":0.07127,"10.1":0.04026,"11.1-11.2":0.50909,"12.0":0.12218,"13.0":0.24437,"14.0":0.15273,"15.0":0.31564,"16.0":7.20878},I:{"0":0,"3":0,"4":0.00021,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00021,"4.2-4.3":0.00124,"4.4":0,"4.4.3-4.4.4":0.01815},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.10886,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":46.67647},S:{"2.5":0},R:{_:"0"},M:{"0":0.19797},Q:{"10.4":0},O:{"0":0.40914},H:{"0":0.19992}}; +module.exports={C:{"52":0.0194,"78":0.00647,"79":0.00323,"81":0.00647,"89":0.00323,"91":0.00323,"96":0.01617,"97":0.00323,"99":0.48187,"100":2.16031,"101":0.00647,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 82 83 84 85 86 87 88 90 92 93 94 95 98 102 103 3.5 3.6"},D:{"49":0.03557,"60":0.00323,"63":0.00647,"65":0.02587,"69":0.01617,"70":0.01617,"75":0.01617,"76":0.00647,"79":0.02911,"81":0.00647,"83":0.0194,"84":0.00323,"86":0.00647,"87":0.02587,"88":0.10672,"89":0.00647,"90":0.00647,"91":0.06145,"92":0.01617,"93":0.12936,"94":0.00647,"95":0.01294,"96":0.10996,"97":0.09702,"98":0.05821,"99":0.10349,"100":4.20097,"101":14.09701,"102":1.30654,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 61 62 64 66 67 68 71 72 73 74 77 78 80 85 103 104"},F:{"63":0.03881,"84":0.00647,"85":0.27812,"86":0.32987,"87":0.02911,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01294,"15":0.00647,"16":0.00323,"17":0.00647,"18":0.02264,"84":0.0097,"89":0.0097,"91":0.00323,"92":0.01294,"96":0.04204,"97":0.0097,"98":0.01617,"99":0.03557,"100":0.22638,"101":3.77408,_:"13 14 79 80 81 83 85 86 87 88 90 93 94 95"},E:{"4":0,"11":0.00323,"13":0.00323,"14":0.05174,"15":0.0097,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.0097,"13.1":0.07115,"14.1":0.35897,"15.1":0.0194,"15.2-15.3":0.152,"15.4":0.79556,"15.5":0.12613},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00968,"6.0-6.1":0,"7.0-7.1":0.16233,"8.1-8.4":0,"9.0-9.2":0.00323,"9.3":0.03655,"10.0-10.2":0,"10.3":0.18813,"11.0-11.2":0.0043,"11.3-11.4":0.01075,"12.0-12.1":0.01183,"12.2-12.5":0.79121,"13.0-13.1":0.1763,"13.2":0.0043,"13.3":0.1075,"13.4-13.7":0.17093,"14.0-14.4":0.26338,"14.5-14.8":0.90516,"15.0-15.1":0.30315,"15.2-15.3":0.90623,"15.4":6.69624},P:{"4":0.58016,"5.0-5.4":0.04045,"6.2-6.4":0.07078,"7.2-7.4":0.68195,"8.2":0.21569,"9.2":0.06107,"10.1":0.01018,"11.1-11.2":0.29517,"12.0":0.1425,"13.0":0.2341,"14.0":0.18321,"15.0":0.12214,"16.0":2.98224},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00047,"4.2-4.3":0.00153,"4.4":0,"4.4.3-4.4.4":0.01153},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19081,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.18268},Q:{"10.4":0.0203},O:{"0":0.32477},H:{"0":0.2306},L:{"0":48.63486},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ST.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ST.js index e17da2ff8766ee..4f83f64c73dbbd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ST.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ST.js @@ -1 +1 @@ -module.exports={C:{"45":0.0236,"77":0.00944,"91":0.00944,"93":0.00944,"95":0.0236,"96":0.13213,"97":0.42471,"98":1.25054,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 82 83 84 85 86 87 88 89 90 92 94 99 100 3.5 3.6"},D:{"22":0.0236,"26":0.06607,"29":0.00944,"43":0.03303,"49":0.08022,"64":0.08966,"68":0.18876,"69":0.00944,"70":0.03303,"72":0.03303,"74":0.00944,"75":0.05663,"78":0.72673,"79":0.53797,"80":0.00944,"81":0.08022,"88":0.06607,"89":0.00944,"91":0.0236,"92":0.13213,"94":0.00944,"95":0.05663,"96":0.16988,"97":0.79279,"98":4.61518,"99":16.66279,"100":0.12269,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 65 66 67 71 73 76 77 83 84 85 86 87 90 93 101 102 103"},F:{"28":0.0991,"46":0.11326,"82":0.04247,"83":0.0236,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.04247,"14":0.00944,"16":0.03303,"17":0.0236,"18":0.00944,"84":0.08022,"87":0.03303,"92":0.04247,"96":0.0236,"97":0.05663,"98":0.78335,"99":5.45988,_:"13 15 79 80 81 83 85 86 88 89 90 91 93 94 95"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.4","14.1":0.06607,"15.1":0.18876,"15.2-15.3":0.00944},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.12204,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00875,"11.0-11.2":0.05249,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.24453,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.03499,"14.0-14.4":0,"14.5-14.8":0.26159,"15.0-15.1":0.30533,"15.2-15.3":3.18673,"15.4":0.15704},P:{"4":0.17382,"5.0-5.4":0.02045,"6.2-6.4":0.04093,"7.2-7.4":0.10224,"8.2":0.02046,"9.2":0.03067,"10.1":0.02046,"11.1-11.2":0.13292,"12.0":0.06135,"13.0":0.01022,"14.0":0.05112,"15.0":0.01022,"16.0":0.8384},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02246,"4.2-4.3":0.01884,"4.4":0,"4.4.3-4.4.4":0.12244},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.52381,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":52.97175},S:{"2.5":0},R:{_:"0"},M:{"0":0.06867},Q:{"10.4":0},O:{"0":2.51423},H:{"0":0.08501}}; +module.exports={C:{"56":0.04694,"92":0.01043,"99":0.05738,"100":1.79952,"101":0.04694,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 95 96 97 98 102 103 3.5 3.6"},D:{"34":0.08346,"43":0.33904,"50":0.02608,"64":0.23472,"68":0.01043,"74":0.16691,"78":0.32861,"79":0.70416,"81":0.02608,"86":0.01043,"88":0.15126,"89":7.69882,"90":0.01043,"91":0.01043,"92":0.10432,"93":0.02608,"95":0.03651,"96":0.11997,"97":0.33904,"98":0.03651,"99":0.46944,"100":5.60198,"101":15.38198,"102":2.02381,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 47 48 49 51 52 53 54 55 56 57 58 59 60 61 62 63 65 66 67 69 70 71 72 73 75 76 77 80 83 84 85 87 94 103 104"},F:{"85":1.15274,"86":0.35469,"87":0.01043,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.01043,"14":0.1304,"17":0.07302,"18":0.02608,"80":0.03651,"84":0.01043,"89":0.01043,"91":0.09389,"92":0.08346,"96":0.02608,"98":0.36512,"99":0.04694,"100":0.2921,"101":5.8367,_:"12 15 16 79 81 83 85 86 87 88 90 93 94 95 97"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 15.1","13.1":0.01043,"14.1":0.03651,"15.2-15.3":0.17734,"15.4":0.48509,"15.5":0.10432},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01113,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02176,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.04403,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.07692,"13.0-13.1":0,"13.2":0,"13.3":0.01113,"13.4-13.7":0,"14.0-14.4":0.1756,"14.5-14.8":0.15333,"15.0-15.1":0.17509,"15.2-15.3":0.55867,"15.4":3.8338},P:{"4":0.06373,"5.0-5.4":0.02027,"6.2-6.4":0.01043,"7.2-7.4":0.58467,"8.2":0.01022,"9.2":0.08206,"10.1":0.04171,"11.1-11.2":0.02048,"12.0":0.05129,"13.0":0.15362,"14.0":0.05121,"15.0":0.15386,"16.0":0.40965},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01408,"4.2-4.3":0.00585,"4.4":0,"4.4.3-4.4.4":0.01834},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.48134,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.3301},Q:{"10.4":0},O:{"0":1.49739},H:{"0":0.23099},L:{"0":42.14238},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SV.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SV.js index 85f05b63e4c650..59397328f2a4cb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SV.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SV.js @@ -1 +1 @@ -module.exports={C:{"35":0.00472,"52":0.01887,"57":0.00944,"68":0.00472,"70":0.01415,"73":0.04718,"78":0.03303,"88":0.01887,"89":0.00944,"90":0.16985,"91":0.02831,"92":0.00472,"93":0.00472,"94":0.03303,"95":0.01415,"96":0.03303,"97":0.58031,"98":1.26914,"99":0.01415,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 69 71 72 74 75 76 77 79 80 81 82 83 84 85 86 87 100 3.5 3.6"},D:{"38":0.00944,"49":0.07077,"56":0.00472,"59":0.00944,"63":0.00472,"65":0.00944,"67":0.01415,"68":0.00472,"69":0.00472,"70":0.01415,"71":0.01887,"72":0.02359,"73":0.01415,"74":0.03303,"75":0.02359,"76":0.02831,"77":0.01415,"78":0.01887,"79":0.16041,"80":0.01415,"81":0.01415,"83":0.01415,"84":0.02831,"85":0.00944,"86":0.02831,"87":0.06133,"88":0.01887,"89":0.02831,"90":0.03774,"91":0.24062,"92":0.04718,"93":0.03774,"94":0.08964,"95":0.06133,"96":0.18872,"97":0.27836,"98":6.69484,"99":24.21749,"100":0.28308,"101":0.00944,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 60 61 62 64 66 102 103"},F:{"36":0.00472,"82":0.00472,"83":0.64165,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00944,"16":0.00472,"18":0.02359,"84":0.00472,"89":0.00944,"92":0.01415,"93":0.02359,"94":0.02831,"95":0.00944,"96":0.04718,"97":0.04246,"98":0.71242,"99":3.14219,_:"12 13 14 17 79 80 81 83 85 86 87 88 90 91"},E:{"4":0,"12":0.01415,"13":0.02359,"14":0.05662,"15":0.06133,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.01887,"12.1":0.01887,"13.1":0.06605,"14.1":0.22175,"15.1":0.10851,"15.2-15.3":0.12739,"15.4":0.07549},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00051,"6.0-6.1":0.01491,"7.0-7.1":0.0144,"8.1-8.4":0,"9.0-9.2":0.00103,"9.3":0.02519,"10.0-10.2":0,"10.3":0.01388,"11.0-11.2":0.0036,"11.3-11.4":0.00668,"12.0-12.1":0.00823,"12.2-12.5":0.23496,"13.0-13.1":0.00411,"13.2":0.00308,"13.3":0.01748,"13.4-13.7":0.06067,"14.0-14.4":0.26941,"14.5-14.8":0.69101,"15.0-15.1":0.31568,"15.2-15.3":3.05916,"15.4":0.39538},P:{"4":0.2065,"5.0-5.4":0.02021,"6.2-6.4":0.04042,"7.2-7.4":0.1652,"8.2":0.03097,"9.2":0.01032,"10.1":0.02021,"11.1-11.2":0.18585,"12.0":0.03097,"13.0":0.18585,"14.0":0.14455,"15.0":0.14455,"16.0":1.63132},I:{"0":0,"3":0,"4":0.00158,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00158,"4.2-4.3":0.00631,"4.4":0,"4.4.3-4.4.4":0.04336},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.08021,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02584,_:"11"},L:{"0":47.81824},S:{"2.5":0},R:{_:"0"},M:{"0":0.47538},Q:{"10.4":0},O:{"0":0.1162},H:{"0":0.20503}}; +module.exports={C:{"35":0.00904,"47":0.00904,"52":0.02261,"60":0.00452,"68":0.00452,"73":0.04522,"78":0.01809,"88":0.00452,"90":0.17636,"91":0.03165,"94":0.0407,"95":0.01357,"96":0.01357,"97":0.01357,"98":0.01357,"99":0.33463,"100":1.44704,"101":0.03165,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 72 74 75 76 77 79 80 81 82 83 84 85 86 87 89 92 93 102 103 3.5 3.6"},D:{"38":0.00452,"49":0.05426,"55":0.00904,"63":0.00452,"65":0.00452,"67":0.01357,"70":0.01357,"71":0.02713,"72":0.03165,"73":0.00904,"74":0.01357,"75":0.00904,"76":0.01357,"77":0.00904,"78":0.00904,"79":0.14018,"80":0.02261,"81":0.01357,"83":0.00452,"84":0.0407,"85":0.00452,"86":0.04522,"87":0.02713,"88":0.01357,"89":0.01809,"90":0.05426,"91":0.19445,"92":0.03618,"93":0.02713,"94":0.02713,"95":0.06783,"96":0.05426,"97":0.07687,"98":0.14923,"99":0.2261,"100":5.11438,"101":22.62809,"102":2.30622,"103":0.00452,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 62 64 66 68 69 104"},F:{"28":0.00904,"85":0.91344,"86":0.87727,"87":0.0407,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.00452,"15":0.00904,"18":0.01809,"89":0.00452,"90":0.00452,"92":0.00904,"94":0.00904,"95":0.00452,"96":0.02713,"97":0.00904,"98":0.02261,"99":0.05879,"100":0.15375,"101":3.62212,_:"12 14 16 17 79 80 81 83 84 85 86 87 88 91 93"},E:{"4":0,"13":0.01357,"14":0.03618,"15":0.04974,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.01357,"12.1":0.00904,"13.1":0.08592,"14.1":0.14018,"15.1":0.0814,"15.2-15.3":0.07687,"15.4":0.54716,"15.5":0.0814},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00232,"6.0-6.1":0.01801,"7.0-7.1":0.01918,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01976,"10.0-10.2":0,"10.3":0.01918,"11.0-11.2":0.00349,"11.3-11.4":0.00639,"12.0-12.1":0.00697,"12.2-12.5":0.2121,"13.0-13.1":0.00523,"13.2":0.00232,"13.3":0.10053,"13.4-13.7":0.05055,"14.0-14.4":0.23011,"14.5-14.8":0.44395,"15.0-15.1":0.15108,"15.2-15.3":0.40502,"15.4":4.10943},P:{"4":0.13419,"5.0-5.4":0.0107,"6.2-6.4":0.03051,"7.2-7.4":0.15483,"8.2":0.01032,"9.2":0.02064,"10.1":0.04105,"11.1-11.2":0.12386,"12.0":0.02064,"13.0":0.17547,"14.0":0.11354,"15.0":0.08258,"16.0":0.78447},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00246,"4.2-4.3":0.00822,"4.4":0,"4.4.3-4.4.4":0.03861},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06331,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.06871,_:"11"},L:{"0":48.51973},S:{"2.5":0},R:{_:"0"},M:{"0":0.48745},Q:{"10.4":0},O:{"0":0.1424},H:{"0":0.21778}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SY.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SY.js index 2e0052c889c34b..37e909b309fc1c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SY.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SY.js @@ -1 +1 @@ -module.exports={C:{"17":0.0011,"29":0.0011,"39":0.0022,"43":0.0055,"47":0.0033,"48":0.0022,"50":0.0011,"52":0.022,"56":0.0022,"58":0.0011,"66":0.0022,"68":0.0022,"72":0.0066,"73":0.0011,"78":0.0132,"80":0.0077,"81":0.0066,"83":0.0033,"84":0.0132,"85":0.0022,"86":0.0033,"87":0.0022,"88":0.0033,"89":0.011,"90":0.0022,"91":0.0088,"92":0.0132,"93":0.0066,"94":0.0286,"95":0.022,"96":0.0275,"97":0.3982,"98":0.6402,"99":0.0033,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 44 45 46 49 51 53 54 55 57 59 60 61 62 63 64 65 67 69 70 71 74 75 76 77 79 82 100 3.5 3.6"},D:{"11":0.0011,"24":0.0022,"25":0.0011,"28":0.0011,"33":0.0011,"34":0.0022,"36":0.0033,"37":0.0022,"38":0.0099,"39":0.0011,"40":0.0011,"42":0.0022,"43":0.0099,"44":0.0011,"47":0.0011,"49":0.011,"50":0.0022,"53":0.0022,"55":0.0022,"56":0.0022,"57":0.0022,"58":0.0033,"60":0.0044,"62":0.0011,"63":0.011,"64":0.0011,"65":0.0055,"66":0.0022,"67":0.0033,"68":0.0044,"69":0.011,"70":0.1133,"71":0.0099,"72":0.0044,"73":0.0033,"74":0.0044,"75":0.0033,"76":0.0022,"77":0.0022,"78":0.0154,"79":0.033,"80":0.0143,"81":0.0143,"83":0.011,"84":0.0077,"85":0.0088,"86":0.0231,"87":0.0374,"88":0.0187,"89":0.0506,"90":0.0187,"91":0.0308,"92":0.0286,"93":0.1232,"94":0.0352,"95":0.0506,"96":0.1144,"97":0.1232,"98":1.4267,"99":4.939,"100":0.0528,"101":0.0099,"102":0.0077,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 26 27 29 30 31 32 35 41 45 46 48 51 52 54 59 61 103"},F:{"79":0.0022,"82":0.0044,"83":0.0484,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0022,"13":0.0011,"14":0.0022,"15":0.0022,"16":0.0044,"17":0.0033,"18":0.0209,"84":0.0077,"85":0.0011,"89":0.0044,"90":0.0033,"91":0.0077,"92":0.0121,"95":0.0066,"96":0.0099,"97":0.0154,"98":0.1386,"99":0.4664,_:"79 80 81 83 86 87 88 93 94"},E:{"4":0,"13":0.0033,"14":0.0165,"15":0.0033,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.0781,"10.1":0.0033,"12.1":0.0011,"13.1":0.0044,"14.1":0.0374,"15.1":0.0143,"15.2-15.3":0.022,"15.4":0.0055},G:{"8":0.00026,"3.2":0.00288,"4.0-4.1":0,"4.2-4.3":0.00052,"5.0-5.1":0.00288,"6.0-6.1":0.00052,"7.0-7.1":0.01649,"8.1-8.4":0.00105,"9.0-9.2":0.00236,"9.3":0.05758,"10.0-10.2":0.00576,"10.3":0.05182,"11.0-11.2":0.01649,"11.3-11.4":0.04214,"12.0-12.1":0.06543,"12.2-12.5":0.40229,"13.0-13.1":0.02042,"13.2":0.00759,"13.3":0.03743,"13.4-13.7":0.09344,"14.0-14.4":0.24263,"14.5-14.8":0.42009,"15.0-15.1":0.26462,"15.2-15.3":0.79778,"15.4":0.06413},P:{"4":3.28997,"5.0-5.4":0.15046,"6.2-6.4":0.32097,"7.2-7.4":0.7924,"8.2":0.08024,"9.2":0.45137,"10.1":0.29088,"11.1-11.2":0.52158,"12.0":0.28085,"13.0":1.00304,"14.0":1.40425,"15.0":0.72219,"16.0":3.1696},I:{"0":0,"3":0,"4":0.00114,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01164,"4.2-4.3":0.02396,"4.4":0,"4.4.3-4.4.4":0.13236},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.044,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":71.6582},S:{"2.5":0},R:{_:"0"},M:{"0":0.1513},Q:{"10.4":0},O:{"0":0.9256},H:{"0":1.28917}}; +module.exports={C:{"35":0.00147,"38":0.00293,"43":0.00733,"47":0.00586,"48":0.0044,"49":0.00293,"50":0.00147,"52":0.04984,"56":0.00733,"58":0.00147,"61":0.00147,"63":0.00147,"65":0.00147,"66":0.00147,"69":0.00147,"72":0.01613,"74":0.00147,"78":0.00586,"80":0.00293,"81":0.00586,"84":0.03372,"85":0.00147,"86":0.00293,"87":0.00293,"88":0.00293,"89":0.01026,"90":0.00293,"91":0.00733,"92":0.0044,"93":0.00147,"94":0.01906,"95":0.01613,"96":0.01759,"97":0.01613,"98":0.01759,"99":0.32252,"100":1.21238,"101":0.01173,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 40 41 42 44 45 46 51 53 54 55 57 59 60 62 64 67 68 70 71 73 75 76 77 79 82 83 102 103 3.5 3.6"},D:{"11":0.00147,"23":0.00293,"26":0.00147,"28":0.00147,"31":0.0044,"32":0.00147,"33":0.00293,"34":0.00293,"36":0.00293,"37":0.00293,"38":0.01173,"39":0.00147,"40":0.00293,"43":0.01026,"44":0.00293,"47":0.0044,"49":0.01319,"50":0.00293,"52":0.00293,"53":0.00147,"55":0.00293,"56":0.00293,"57":0.00586,"58":0.0044,"59":0.0044,"60":0.0044,"61":0.00147,"62":0.00733,"63":0.02199,"64":0.00586,"65":0.00293,"66":0.01466,"67":0.0044,"68":0.0044,"69":0.02052,"70":0.18325,"71":0.01173,"72":0.0044,"73":0.0044,"74":0.00733,"75":0.0088,"76":0.0044,"77":0.0044,"78":0.00733,"79":0.04251,"80":0.01173,"81":0.03225,"83":0.01466,"84":0.02346,"85":0.02052,"86":0.04251,"87":0.03665,"88":0.01906,"89":0.03812,"90":0.02346,"91":0.04105,"92":0.03812,"93":0.01173,"94":0.02785,"95":0.08649,"96":0.09236,"97":0.04251,"98":0.09969,"99":0.11142,"100":1.66244,"101":6.18359,"102":0.62452,"103":0.00293,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 24 25 27 29 30 35 41 42 45 46 48 51 54 104"},F:{"75":0.00147,"79":0.00733,"83":0.00733,"84":0.00586,"85":0.17152,"86":0.25069,"87":0.01759,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00733,"13":0.00147,"14":0.0044,"15":0.00147,"16":0.00586,"17":0.01026,"18":0.04545,"83":0.00147,"84":0.00733,"85":0.00586,"87":0.00147,"89":0.00586,"90":0.0044,"92":0.02052,"94":0.00147,"95":0.00147,"96":0.0044,"97":0.01613,"98":0.0088,"99":0.01319,"100":0.06597,"101":0.86787,_:"79 80 81 86 88 91 93"},E:{"4":0,"13":0.0044,"14":0.03518,"15":0.0044,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.1378,"10.1":0.00147,"12.1":0.00293,"13.1":0.00586,"14.1":0.02052,"15.1":0.01173,"15.2-15.3":0.0044,"15.4":0.04398,"15.5":0.00293},G:{"8":0,"3.2":0.00101,"4.0-4.1":0,"4.2-4.3":0.00101,"5.0-5.1":0.00227,"6.0-6.1":0.0005,"7.0-7.1":0.02392,"8.1-8.4":0.00025,"9.0-9.2":0.0005,"9.3":0.06648,"10.0-10.2":0.00378,"10.3":0.03828,"11.0-11.2":0.01284,"11.3-11.4":0.03903,"12.0-12.1":0.04256,"12.2-12.5":0.36842,"13.0-13.1":0.01032,"13.2":0.00705,"13.3":0.04281,"13.4-13.7":0.09746,"14.0-14.4":0.23948,"14.5-14.8":0.36892,"15.0-15.1":0.18585,"15.2-15.3":0.32712,"15.4":0.63737},P:{"4":2.13109,"5.0-5.4":0.08042,"6.2-6.4":0.19099,"7.2-7.4":0.41214,"8.2":0.06031,"9.2":0.26136,"10.1":0.26136,"11.1-11.2":0.45235,"12.0":0.13068,"13.0":0.51267,"14.0":0.78408,"15.0":0.33173,"16.0":1.83957},I:{"0":0,"3":0,"4":0.00162,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02078,"4.2-4.3":0.02726,"4.4":0,"4.4.3-4.4.4":0.1722},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00293,"11":0.05424,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.21333},Q:{"10.4":0},O:{"0":1.16049},H:{"0":1.58338},L:{"0":70.95177},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SZ.js index 1087a23e33ce16..6572b4a3550213 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/SZ.js @@ -1 +1 @@ -module.exports={C:{"23":0.01363,"34":0.0109,"36":0.0436,"44":0.00545,"52":0.01908,"60":0.07358,"61":0.00273,"71":0.00273,"72":0.00545,"77":0.00545,"78":0.00818,"80":0.00273,"87":0.00545,"88":0.0109,"89":0.01363,"91":0.0654,"92":0.00545,"93":0.00545,"94":0.00545,"95":0.00818,"96":0.0545,"97":0.5014,"98":0.84748,"99":0.04633,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 43 45 46 47 48 49 50 51 53 54 55 56 57 58 59 62 63 64 65 66 67 68 69 70 73 74 75 76 79 81 82 83 84 85 86 90 100 3.5 3.6"},D:{"38":0.00818,"64":0.0109,"69":0.0109,"70":0.0327,"74":0.02725,"76":0.01363,"79":0.0109,"80":0.00545,"81":0.00545,"83":0.00545,"84":0.0109,"85":0.01908,"86":0.0327,"87":0.02725,"88":0.02998,"89":0.00545,"90":0.01908,"91":0.03543,"92":0.04905,"93":0.0327,"94":0.01908,"95":0.02725,"96":0.06813,"97":0.20983,"98":2.3435,"99":7.79078,"100":0.05723,"101":0.0109,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 65 66 67 68 71 72 73 75 77 78 102 103"},F:{"36":0.00273,"40":0.00545,"42":0.00273,"65":0.00273,"79":0.00273,"82":0.0109,"83":0.0545,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0327,"13":0.00818,"14":0.02453,"15":0.01635,"16":0.00818,"17":0.02453,"18":0.0763,"80":0.00818,"84":0.0436,"85":0.01635,"86":0.08448,"89":0.01908,"90":0.0109,"91":0.00273,"92":0.03543,"95":0.00818,"96":0.0109,"97":0.02453,"98":0.40058,"99":1.4933,_:"79 81 83 87 88 93 94"},E:{"4":0,"14":0.01363,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1","9.1":0.00818,"12.1":0.00818,"13.1":0.0218,"14.1":0.04633,"15.1":0.28885,"15.2-15.3":0.28068,"15.4":0.01908},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00092,"5.0-5.1":0,"6.0-6.1":0.00555,"7.0-7.1":0.0037,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00555,"10.0-10.2":0.00092,"10.3":0.02958,"11.0-11.2":0.00277,"11.3-11.4":0,"12.0-12.1":0.00647,"12.2-12.5":0.17099,"13.0-13.1":0.00555,"13.2":0.00185,"13.3":0.02865,"13.4-13.7":0.03974,"14.0-14.4":0.20057,"14.5-14.8":0.62113,"15.0-15.1":0.87438,"15.2-15.3":7.14018,"15.4":0.10075},P:{"4":0.27336,"5.0-5.4":0.09058,"6.2-6.4":0.01018,"7.2-7.4":0.92133,"8.2":0.01006,"9.2":0.37461,"10.1":0.04026,"11.1-11.2":0.15187,"12.0":0.02025,"13.0":0.18224,"14.0":0.15187,"15.0":0.15187,"16.0":1.18457},I:{"0":0,"3":0,"4":0.00041,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00061,"4.2-4.3":0.00163,"4.4":0,"4.4.3-4.4.4":0.03373},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00273,"11":0.10083,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.01455},N:{"10":0.02879,"11":0.04426},L:{"0":51.88185},S:{"2.5":0.10913},R:{_:"0"},M:{"0":0.13095},Q:{"10.4":0},O:{"0":0.80025},H:{"0":14.74614}}; +module.exports={C:{"23":0.0054,"34":0.0054,"43":0.0027,"52":0.0054,"60":0.0135,"68":0.0081,"72":0.0135,"91":0.0297,"98":0.0108,"99":0.2754,"100":0.8856,"101":0.0405,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"40":0.0027,"49":0.0081,"50":0.0162,"55":0.0027,"69":0.0108,"70":0.0513,"74":0.0135,"75":0.0108,"79":0.0108,"81":0.0081,"83":0.0108,"85":0.0108,"86":0.0108,"87":0.2106,"88":0.0324,"89":0.2079,"90":0.0324,"91":0.0162,"92":0.0162,"94":0.0108,"95":0.0405,"96":0.0243,"97":0.0432,"98":0.0459,"99":0.1134,"100":1.9521,"101":7.6275,"102":0.5805,"103":0.0324,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 71 72 73 76 77 78 80 84 93 104"},F:{"79":0.0054,"83":0.0027,"84":0.0054,"85":0.297,"86":0.3294,"87":0.0297,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0432,"13":0.0108,"14":0.0081,"15":0.0135,"16":0.0297,"17":0.0081,"18":0.0567,"84":0.0081,"85":0.0108,"86":0.0594,"89":0.0054,"90":0.0054,"92":0.0135,"93":0.0027,"96":0.0918,"97":0.0027,"98":0.0243,"99":0.0162,"100":0.0837,"101":1.8063,_:"79 80 81 83 87 88 91 94 95"},E:{"4":0,"13":0.0027,"14":0.0243,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 10.1 11.1","5.1":0.0027,"9.1":0.0054,"12.1":0.0054,"13.1":0.027,"14.1":0.0243,"15.1":0.1107,"15.2-15.3":0.4428,"15.4":0.7398,"15.5":0.0189},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00271,"7.0-7.1":0.00407,"8.1-8.4":0.00271,"9.0-9.2":0.00542,"9.3":0.00452,"10.0-10.2":0,"10.3":0.01853,"11.0-11.2":0.00497,"11.3-11.4":0.00226,"12.0-12.1":0.0113,"12.2-12.5":0.12294,"13.0-13.1":0.00362,"13.2":0.00136,"13.3":0.00723,"13.4-13.7":0.02079,"14.0-14.4":0.13469,"14.5-14.8":0.25808,"15.0-15.1":0.13876,"15.2-15.3":0.68023,"15.4":3.09514},P:{"4":0.3377,"5.0-5.4":0.04045,"6.2-6.4":0.07078,"7.2-7.4":1.00285,"8.2":0.21569,"9.2":0.06107,"10.1":0.01018,"11.1-11.2":0.37863,"12.0":0.02047,"13.0":0.0921,"14.0":0.34793,"15.0":0.22513,"16.0":0.53213},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00166,"4.4":0,"4.4.3-4.4.4":0.07865},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0702,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.43076},Q:{"10.4":0},O:{"0":1.32878},H:{"0":15.53152},L:{"0":55.91924},S:{"2.5":0.11682}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TC.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TC.js index 693f2d209ad1ef..9e1f1c0d8b7d42 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TC.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TC.js @@ -1 +1 @@ -module.exports={C:{"52":0.014,"56":0.00933,"63":0.00933,"78":0.01866,"91":0.01866,"93":0.00933,"97":0.67643,"98":0.86303,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 94 95 96 99 100 3.5 3.6"},D:{"29":0.014,"49":0.00933,"65":0.00933,"66":0.00467,"68":0.00933,"76":0.06998,"79":0.05598,"80":0.00933,"83":0.04199,"84":0.00933,"86":0.00933,"87":0.06998,"89":0.00933,"91":0.00933,"92":0.014,"93":0.20526,"94":0.00933,"95":0.00933,"96":0.29856,"97":0.76973,"98":7.34738,"99":16.50477,"100":0.41985,"101":0.1866,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 67 69 70 71 72 73 74 75 77 78 81 85 88 90 102 103"},F:{"69":0.00467,"83":0.04199,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.02333,"14":0.00467,"16":0.05132,"18":0.15861,"86":0.00467,"96":0.014,"97":0.03732,"98":2.09925,"99":5.19215,_:"12 15 17 79 80 81 83 84 85 87 88 89 90 91 92 93 94 95"},E:{"4":0,"8":0.00467,"13":0.02799,"14":0.33122,"15":0.56913,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.02333,"10.1":0.014,"11.1":0.00933,"12.1":0.05598,"13.1":0.49916,"14.1":2.26719,"15.1":0.37787,"15.2-15.3":0.59712,"15.4":0.13995},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00276,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.03858,"9.0-9.2":0,"9.3":0.03307,"10.0-10.2":0,"10.3":0.01929,"11.0-11.2":0,"11.3-11.4":0.01653,"12.0-12.1":0.06062,"12.2-12.5":1.12427,"13.0-13.1":0,"13.2":0,"13.3":0.07991,"13.4-13.7":0.04684,"14.0-14.4":0.56213,"14.5-14.8":3.8633,"15.0-15.1":1.69192,"15.2-15.3":17.85605,"15.4":2.14934},P:{"4":0.06241,"5.0-5.4":0.02048,"6.2-6.4":0.02064,"7.2-7.4":0.06241,"8.2":0.02029,"9.2":0.09362,"10.1":0.0104,"11.1-11.2":0.04161,"12.0":0.18724,"13.0":0.05201,"14.0":0.06241,"15.0":0.07282,"16.0":2.67342},I:{"0":0,"3":0,"4":0.01027,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01107},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.24258,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":22.93159},S:{"2.5":0},R:{_:"0"},M:{"0":0.05869},Q:{"10.4":0},O:{"0":0},H:{"0":0.15153}}; +module.exports={C:{"63":0.00442,"78":0.00442,"97":0.02651,"98":0.01325,"99":0.28717,"100":0.99405,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 101 102 103 3.5 3.6"},D:{"29":0.01325,"49":0.02651,"65":0.00884,"75":0.00442,"76":0.01767,"79":0.00442,"80":0.01325,"83":0.01767,"87":0.05302,"88":0.03093,"89":0.00442,"90":0.01325,"91":0.00884,"92":0.07069,"93":0.29601,"94":0.00884,"95":0.09278,"96":0.01325,"97":0.05743,"98":0.63619,"99":0.26508,"100":10.69156,"101":14.18178,"102":1.34307,"103":0.14579,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 77 78 81 84 85 86 104"},F:{"83":0.00442,"85":0.07952,"86":0.06185,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.04418,"18":0.11929,"84":0.00884,"86":0.00884,"92":0.0486,"99":0.05743,"100":0.32693,"101":4.67866,_:"12 13 14 15 17 79 80 81 83 85 87 88 89 90 91 93 94 95 96 97 98"},E:{"4":0,"13":0.00442,"14":0.10603,"15":0.12812,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00884,"10.1":0.2209,"11.1":0.00884,"12.1":0.05302,"13.1":0.25624,"14.1":1.59048,"15.1":0.22974,"15.2-15.3":0.539,"15.4":3.03958,"15.5":0.28717},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00564,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.1072,"10.0-10.2":0,"10.3":0.04796,"11.0-11.2":0,"11.3-11.4":0.00846,"12.0-12.1":0,"12.2-12.5":0.93943,"13.0-13.1":0,"13.2":0,"13.3":0.01128,"13.4-13.7":0.18901,"14.0-14.4":0.72785,"14.5-14.8":2.67723,"15.0-15.1":0.7081,"15.2-15.3":2.53053,"15.4":20.24145},P:{"4":0.05254,"5.0-5.4":0.01021,"6.2-6.4":0.01051,"7.2-7.4":0.1261,"8.2":0.04047,"9.2":0.14135,"10.1":0.13125,"11.1-11.2":0.06305,"12.0":0.02102,"13.0":0.02102,"14.0":0.13661,"15.0":0.04203,"16.0":1.16641},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0036,"4.4":0,"4.4.3-4.4.4":0.02431},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11045,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.12841},Q:{"10.4":0},O:{"0":0.02792},H:{"0":0.222},L:{"0":24.39299},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TD.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TD.js index 91ade3ebc7a5d8..2b015ecb656883 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TD.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TD.js @@ -1 +1 @@ -module.exports={C:{"30":0.0048,"35":0.00192,"39":0.00671,"43":0.01247,"45":0.00767,"47":0.00288,"56":0.00384,"57":0.00288,"60":0.00096,"65":0.00096,"66":0.00671,"69":0.00192,"72":0.00671,"78":0.00575,"84":0.00384,"88":0.00288,"91":0.0163,"92":0.00096,"93":0.00288,"94":0.00384,"95":0.01822,"96":0.0048,"97":0.29154,"98":0.56293,"99":0.00384,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 36 37 38 40 41 42 44 46 48 49 50 51 52 53 54 55 58 59 61 62 63 64 67 68 70 71 73 74 75 76 77 79 80 81 82 83 85 86 87 89 90 100 3.5 3.6"},D:{"11":0.00575,"32":0.00096,"37":0.00575,"38":0.00288,"42":0.00192,"44":0.01151,"48":0.00192,"49":0.04028,"50":0.00288,"55":0.01151,"57":0.00384,"63":0.00671,"64":0.00192,"67":0.00192,"70":0.0048,"71":0.00288,"72":0.00288,"77":0.01055,"78":0.00192,"79":0.02302,"80":0.04795,"81":0.00288,"83":0.00192,"84":0.06905,"86":0.01534,"87":0.00863,"88":0.01247,"89":0.00959,"90":0.00671,"91":0.01726,"92":0.01151,"93":0.03644,"94":0.02685,"95":0.0163,"96":0.03261,"97":0.08823,"98":0.75569,"99":2.40421,"100":0.00767,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 39 40 41 43 45 46 47 51 52 53 54 56 58 59 60 61 62 65 66 68 69 73 74 75 76 85 101 102 103"},F:{"34":0.00959,"36":0.00096,"37":0.02973,"42":0.00384,"45":0.00192,"46":0.01247,"72":0.00096,"73":0.00192,"78":0.00384,"79":0.02685,"80":0.00288,"81":0.00288,"82":0.01726,"83":0.01439,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 38 39 40 41 43 44 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02973,"13":0.01247,"14":0.03357,"15":0.00096,"16":0.00767,"17":0.01918,"18":0.04411,"85":0.00384,"88":0.00192,"89":0.00959,"90":0.00288,"91":0.00384,"92":0.0163,"93":0.00192,"95":0.00863,"96":0.08343,"97":0.02302,"98":0.23016,"99":0.75665,_:"79 80 81 83 84 86 87 94"},E:{"4":0,"13":0.00096,"14":0.01822,"15":0.00288,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.00288,"9.1":0.00096,"10.1":0.00096,"11.1":0.00767,"12.1":0.01151,"13.1":0.01822,"14.1":0.01534,"15.1":0.0048,"15.2-15.3":0.02781,"15.4":0.01343},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00227,"7.0-7.1":0.00907,"8.1-8.4":0,"9.0-9.2":0.00378,"9.3":0.01058,"10.0-10.2":0.00227,"10.3":0.00605,"11.0-11.2":0.04763,"11.3-11.4":0.03175,"12.0-12.1":0.24645,"12.2-12.5":2.19612,"13.0-13.1":0.02797,"13.2":0.00227,"13.3":0.03629,"13.4-13.7":0.26762,"14.0-14.4":1.13397,"14.5-14.8":0.56169,"15.0-15.1":0.60327,"15.2-15.3":2.16437,"15.4":0.20487},P:{"4":0.75959,"5.0-5.4":0.0709,"6.2-6.4":0.04051,"7.2-7.4":0.28358,"8.2":0.02072,"9.2":0.13166,"10.1":0.03038,"11.1-11.2":0.2532,"12.0":0.03038,"13.0":0.16205,"14.0":0.871,"15.0":0.23294,"16.0":0.84062},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00111,"4.4":0,"4.4.3-4.4.4":0.0441},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.20139,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":78.52881},S:{"2.5":0.03616},R:{_:"0"},M:{"0":0.09041},Q:{"10.4":0.03616},O:{"0":0.54246},H:{"0":2.43088}}; +module.exports={C:{"16":0.00216,"30":0.00216,"31":0.00324,"33":0.00108,"43":0.00108,"44":0.00216,"45":0.00216,"48":0.00324,"49":0.00108,"52":0.01188,"56":0.0054,"66":0.0054,"70":0.00216,"71":0.00216,"72":0.01512,"78":0.00216,"85":0.00864,"86":0.00108,"88":0.00216,"89":0.00216,"91":0.00972,"94":0.00432,"95":0.0162,"96":0.00216,"97":0.01188,"98":0.0108,"99":0.189,"100":1.22472,"101":0.0054,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28 29 32 34 35 36 37 38 39 40 41 42 46 47 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 73 74 75 76 77 79 80 81 82 83 84 87 90 92 93 102 103 3.5 3.6"},D:{"37":0.00324,"40":0.00864,"48":0.00216,"49":0.00216,"55":0.00648,"56":0.0054,"60":0.00108,"68":0.00216,"69":0.00324,"70":0.00432,"75":0.0054,"78":0.00324,"79":0.00216,"80":0.00216,"81":0.00324,"83":0.00216,"84":0.0054,"86":0.00648,"87":0.01728,"88":0.00432,"89":0.00216,"90":0.00756,"91":0.00324,"92":0.01188,"93":0.00972,"94":0.00864,"95":0.01512,"96":0.00972,"97":0.05184,"98":0.02484,"99":0.05724,"100":0.56808,"101":2.12868,"102":0.19224,"103":0.01728,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 41 42 43 44 45 46 47 50 51 52 53 54 57 58 59 61 62 63 64 65 66 67 71 72 73 74 76 77 85 104"},F:{"28":0.00216,"40":0.00108,"45":0.00864,"46":0.0054,"47":0.00648,"51":0.00216,"62":0.00108,"79":0.0108,"80":0.00324,"83":0.01188,"84":0.01296,"85":0.04644,"86":0.04536,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 48 49 50 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 81 82 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02808,"13":0.01296,"14":0.0216,"15":0.00108,"16":0.00648,"17":0.0216,"18":0.03132,"81":0.00324,"84":0.00972,"85":0.00432,"87":0.00108,"89":0.00216,"92":0.00432,"94":0.00108,"96":0.00756,"97":0.00216,"98":0.0054,"99":0.03132,"100":0.06156,"101":0.60156,_:"79 80 83 86 88 90 91 93 95"},E:{"4":0,"14":0.05616,"15":0.00108,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 11.1 15.5","5.1":0.00324,"10.1":0.00432,"12.1":0.00324,"13.1":0.02592,"14.1":0.05076,"15.1":0.00432,"15.2-15.3":0.01296,"15.4":0.03456},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02211,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03979,"10.0-10.2":0.00088,"10.3":0.32363,"11.0-11.2":0.00707,"11.3-11.4":0.03449,"12.0-12.1":0.15828,"12.2-12.5":2.68278,"13.0-13.1":0.00619,"13.2":0.01415,"13.3":0.02564,"13.4-13.7":0.07604,"14.0-14.4":0.89396,"14.5-14.8":0.70916,"15.0-15.1":0.71623,"15.2-15.3":0.7967,"15.4":2.33262},P:{"4":0.19264,"5.0-5.4":0.06083,"6.2-6.4":0.05069,"7.2-7.4":0.4461,"8.2":0.22305,"9.2":0.28388,"10.1":0.02077,"11.1-11.2":0.34472,"12.0":0.03042,"13.0":0.05069,"14.0":0.72999,"15.0":0.07097,"16.0":0.75027},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00047,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01737},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11772,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":78.42584},S:{"2.5":0.05352},R:{_:"0"},M:{"0":0.33896},Q:{"10.4":0.08028},O:{"0":0.46384},H:{"0":1.79876}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TG.js index 03444fdffe0be1..6b0c7485de3130 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TG.js @@ -1 +1 @@ -module.exports={C:{"43":0.01049,"50":0.01049,"52":0.04894,"56":0.0035,"60":0.0035,"65":0.02098,"69":0.01049,"72":0.05594,"75":0.00699,"77":0.00699,"78":0.01049,"80":0.05943,"81":0.00699,"84":0.00699,"85":0.00699,"86":0.01049,"87":0.01049,"88":0.00699,"89":0.01748,"90":0.01049,"91":0.08041,"92":0.02447,"93":0.01049,"94":0.0874,"95":0.03496,"96":0.13984,"97":1.34246,"98":3.01705,"99":0.03146,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 51 53 54 55 57 58 59 61 62 63 64 66 67 68 70 71 73 74 76 79 82 83 100 3.5 3.6"},D:{"18":0.0035,"22":0.00699,"23":0.01398,"26":0.09789,"33":0.03146,"40":0.00699,"43":0.06992,"49":0.00699,"50":0.01398,"58":0.0035,"63":0.06992,"64":0.01748,"65":0.04894,"67":0.0035,"69":0.00699,"70":0.00699,"72":0.07342,"73":0.0035,"74":0.01398,"75":0.02098,"76":0.0035,"78":0.01398,"79":0.02098,"80":0.01748,"81":0.02098,"83":0.01049,"84":0.01398,"85":0.01398,"86":0.03846,"87":0.01748,"88":0.03146,"89":0.02098,"90":0.01398,"91":0.03846,"92":0.10488,"93":0.06992,"94":0.0874,"95":0.06642,"96":0.24472,"97":0.30415,"98":3.51698,"99":11.95632,"100":0.24472,"101":0.04894,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 24 25 27 28 29 30 31 32 34 35 36 37 38 39 41 42 44 45 46 47 48 51 52 53 54 55 56 57 59 60 61 62 66 68 71 77 102 103"},F:{"12":0.0035,"18":0.01049,"79":0.0035,"82":0.01049,"83":0.05594,_:"9 11 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02447,"13":0.0035,"14":0.0035,"15":0.00699,"16":0.0035,"17":0.02098,"18":0.10138,"84":0.01398,"85":0.00699,"89":0.01049,"90":0.0035,"91":0.00699,"92":0.04545,"95":0.01049,"96":0.01398,"97":0.03146,"98":0.53139,"99":2.13955,_:"79 80 81 83 86 87 88 93 94"},E:{"4":0,"14":0.01049,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00699,"11.1":0.00699,"12.1":0.01398,"13.1":0.03146,"14.1":0.05244,"15.1":0.01049,"15.2-15.3":0.02098,"15.4":0.02797},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00273,"5.0-5.1":0.0738,"6.0-6.1":0,"7.0-7.1":0.11161,"8.1-8.4":0.00456,"9.0-9.2":0,"9.3":0.04647,"10.0-10.2":0,"10.3":0.06332,"11.0-11.2":0.04146,"11.3-11.4":0.00137,"12.0-12.1":0.00911,"12.2-12.5":1.11018,"13.0-13.1":0.00547,"13.2":0.00364,"13.3":0.05786,"13.4-13.7":0.1394,"14.0-14.4":0.24828,"14.5-14.8":0.42321,"15.0-15.1":0.27743,"15.2-15.3":1.7352,"15.4":0.19771},P:{"4":0.11626,"5.0-5.4":0.04094,"6.2-6.4":0.01023,"7.2-7.4":0.08455,"8.2":0.02005,"9.2":0.04248,"10.1":0.02124,"11.1-11.2":0.1062,"12.0":0.02124,"13.0":0.03171,"14.0":0.01057,"15.0":0.02114,"16.0":0.32764},I:{"0":0,"3":0,"4":0.00238,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0046,"4.2-4.3":0.00841,"4.4":0,"4.4.3-4.4.4":0.10819},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0035,"10":0.00699,"11":0.50342,_:"6 7 8 5.5"},J:{"7":0,"10":0.03252},N:{"10":0.02879,"11":0.04426},L:{"0":55.62352},S:{"2.5":0.01951},R:{_:"0"},M:{"0":0.06504},Q:{"10.4":0.01301},O:{"0":0.6569},H:{"0":3.5406}}; +module.exports={C:{"43":0.00373,"47":0.00373,"52":0.04107,"56":0.00747,"60":0.00747,"65":0.0112,"66":0.00373,"68":0.00747,"72":0.01867,"75":0.00373,"76":0.00373,"77":0.00747,"78":0.01494,"79":0.02614,"80":0.0224,"81":0.00373,"84":0.01867,"85":0.00373,"86":0.00747,"87":0.00373,"88":0.0112,"89":0.00747,"90":0.00747,"91":0.05601,"92":0.0112,"93":0.0112,"94":0.03734,"95":0.0224,"96":0.01494,"97":0.04854,"98":0.04481,"99":0.87002,"100":4.1074,"101":0.04481,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 57 58 59 61 62 63 64 67 69 70 71 73 74 82 83 102 103 3.5 3.6"},D:{"11":0.01867,"18":0.00373,"25":0.00747,"28":0.0112,"29":0.00373,"31":0.00747,"32":0.01494,"33":0.01494,"39":0.00373,"40":0.00373,"42":0.00373,"43":0.02614,"49":0.00373,"50":0.00373,"58":0.00747,"63":0.00747,"64":0.01494,"65":0.07468,"68":0.00373,"69":0.00747,"70":0.0112,"72":0.05228,"73":0.01494,"74":0.0112,"75":0.01867,"76":0.00373,"77":0.05228,"78":0.00747,"79":0.05228,"80":0.01867,"81":0.04481,"83":0.0224,"84":0.02987,"85":0.01494,"86":0.03734,"87":0.02614,"88":0.02614,"89":0.00747,"90":0.0112,"91":0.16056,"92":0.08588,"93":0.03734,"94":0.04481,"95":0.07095,"96":0.11949,"97":0.08588,"98":0.09335,"99":0.3958,"100":2.9872,"101":12.21018,"102":1.20608,"103":0.0112,"104":0.00747,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 26 27 30 34 35 36 37 38 41 44 45 46 47 48 51 52 53 54 55 56 57 59 60 61 62 66 67 71"},F:{"12":0.00373,"69":0.01494,"77":0.00373,"79":0.0224,"82":0.01867,"85":1.34797,"86":1.20235,"87":0.05228,_:"9 11 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 78 80 81 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.04854,"14":0.00747,"15":0.01494,"16":0.00373,"17":0.0112,"18":0.02987,"84":0.00373,"85":0.00373,"88":0.00373,"89":0.02614,"90":0.00373,"91":0.00373,"92":0.08588,"95":0.00747,"96":0.0112,"97":0.01867,"98":0.00747,"99":0.01867,"100":0.1755,"101":2.94239,_:"13 79 80 81 83 86 87 93 94"},E:{"4":0,"12":0.00747,"13":0.02614,"14":0.0112,_:"0 5 6 7 8 9 10 11 15 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.04481,"12.1":0.00373,"13.1":0.0224,"14.1":0.05228,"15.1":0.00373,"15.2-15.3":0.00747,"15.4":0.15683,"15.5":0.08962},G:{"8":0,"3.2":0.00163,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00327,"6.0-6.1":0,"7.0-7.1":0.06317,"8.1-8.4":0.00327,"9.0-9.2":0,"9.3":0.1356,"10.0-10.2":0,"10.3":0.27502,"11.0-11.2":0.06372,"11.3-11.4":0.00327,"12.0-12.1":0.02178,"12.2-12.5":0.80709,"13.0-13.1":0.00708,"13.2":0.00109,"13.3":0.01361,"13.4-13.7":0.18952,"14.0-14.4":0.36215,"14.5-14.8":0.36161,"15.0-15.1":0.21784,"15.2-15.3":0.574,"15.4":2.33957},P:{"4":0.15814,"5.0-5.4":0.04074,"6.2-6.4":0.04518,"7.2-7.4":0.0113,"8.2":0.04047,"9.2":0.03389,"10.1":0.02078,"11.1-11.2":0.09385,"12.0":0.0113,"13.0":0.0113,"14.0":0.37542,"15.0":0.0113,"16.0":0.19203},I:{"0":0,"3":0,"4":0.00546,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00758,"4.2-4.3":0.01456,"4.4":0,"4.4.3-4.4.4":0.11649},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.23898,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.07518},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.07518},Q:{"10.4":0.03133},O:{"0":0.51373},H:{"0":3.68927},L:{"0":56.41495},S:{"2.5":0.0188}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TH.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TH.js index 974da24dd27c18..e78eb851310712 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TH.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TH.js @@ -1 +1 @@ -module.exports={C:{"51":0.02427,"52":0.05259,"53":0.02427,"54":0.01214,"55":0.02832,"56":0.07686,"57":0.01618,"58":0.00809,"59":0.00405,"68":0.00809,"72":0.00405,"76":0.00405,"77":0.00405,"78":0.02023,"79":0.00405,"80":0.00405,"81":0.00405,"82":0.00405,"83":0.00405,"89":0.00405,"91":0.01214,"94":0.00405,"95":0.02832,"96":0.01214,"97":0.45709,"98":0.81709,"99":0.00809,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 60 61 62 63 64 65 66 67 69 70 71 73 74 75 84 85 86 87 88 90 92 93 100 3.5 3.6"},D:{"38":0.00809,"39":0.00405,"40":0.00809,"41":0.00809,"42":0.00809,"43":0.01618,"44":0.00809,"45":0.00809,"46":0.00809,"47":0.00809,"48":0.00809,"49":0.08495,"50":0.00809,"51":0.00809,"52":0.00405,"53":0.02427,"54":0.00809,"55":0.00809,"56":0.02023,"57":0.01214,"58":0.01618,"59":0.00809,"60":0.01214,"61":0.00809,"62":0.00809,"63":0.01618,"64":0.00809,"65":0.01618,"68":0.03236,"69":0.02427,"70":0.02427,"71":0.02832,"72":0.03236,"73":0.01618,"74":0.0445,"75":0.03236,"76":0.03641,"77":0.02832,"78":0.03641,"79":0.12135,"80":0.05663,"81":0.0445,"83":0.05663,"84":0.05259,"85":0.06877,"86":0.08495,"87":0.0809,"88":0.06068,"89":0.05663,"90":0.05663,"91":0.04854,"92":0.06472,"93":0.10113,"94":0.05663,"95":0.0445,"96":0.11731,"97":0.21439,"98":6.30211,"99":21.00164,"100":0.04045,"101":0.01618,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 66 67 102 103"},F:{"28":0.01618,"46":0.00809,"54":0.00405,"55":0.00405,"82":0.00405,"83":0.09304,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01214},B:{"16":0.00809,"17":0.00809,"18":0.02427,"80":0.00405,"81":0.00405,"83":0.00405,"84":0.01214,"85":0.00405,"86":0.00809,"87":0.00405,"88":0.00405,"89":0.00809,"90":0.00809,"91":0.00405,"92":0.01214,"94":0.00405,"95":0.00809,"96":0.01618,"97":0.02023,"98":0.57035,"99":2.15599,_:"12 13 14 15 79 93"},E:{"4":0,"13":0.03236,"14":0.13753,"15":0.13753,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.15371,"10.1":0.00809,"11.1":0.01214,"12.1":0.02023,"13.1":0.11731,"14.1":0.56226,"15.1":0.22248,"15.2-15.3":0.23866,"15.4":0.23461},G:{"8":0.00912,"3.2":0.00304,"4.0-4.1":0.00304,"4.2-4.3":0.01368,"5.0-5.1":0.01672,"6.0-6.1":0.02735,"7.0-7.1":0.03647,"8.1-8.4":0.04559,"9.0-9.2":0.04103,"9.3":0.09269,"10.0-10.2":0.0547,"10.3":0.10485,"11.0-11.2":0.08813,"11.3-11.4":0.07294,"12.0-12.1":0.09117,"12.2-12.5":0.71116,"13.0-13.1":0.06078,"13.2":0.02431,"13.3":0.11093,"13.4-13.7":0.25377,"14.0-14.4":0.65797,"14.5-14.8":1.96176,"15.0-15.1":1.21261,"15.2-15.3":8.18437,"15.4":1.31898},P:{"4":0.18768,"5.0-5.4":0.04094,"6.2-6.4":0.01023,"7.2-7.4":0.13555,"8.2":0.02005,"9.2":0.05213,"10.1":0.08341,"11.1-11.2":0.17725,"12.0":0.05213,"13.0":0.08341,"14.0":0.13555,"15.0":0.10427,"16.0":1.87679},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0.00335,"2.3":0,"4.1":0.00335,"4.2-4.3":0.0067,"4.4":0,"4.4.3-4.4.4":0.0402},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01343,"9":0.01791,"10":0.00448,"11":0.42531,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":42.05144},S:{"2.5":0},R:{_:"0"},M:{"0":0.12506},Q:{"10.4":0},O:{"0":0.26798},H:{"0":0.21987}}; +module.exports={C:{"51":0.01834,"52":0.044,"53":0.01467,"54":0.011,"55":0.01834,"56":0.05867,"57":0.011,"58":0.00733,"59":0.00367,"68":0.00367,"72":0.00367,"78":0.01834,"79":0.00733,"80":0.00367,"83":0.00367,"84":0.00733,"88":0.01467,"91":0.011,"94":0.00367,"95":0.00733,"96":0.00367,"97":0.00733,"98":0.04034,"99":0.19068,"100":0.97909,"101":0.01467,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 81 82 85 86 87 89 90 92 93 102 103 3.5 3.6"},D:{"25":0.00733,"38":0.00733,"39":0.00367,"40":0.00367,"41":0.00733,"42":0.00367,"43":0.011,"44":0.00367,"45":0.00733,"46":0.00733,"47":0.00733,"48":0.00733,"49":0.06601,"50":0.00733,"51":0.00367,"52":0.00367,"53":0.022,"54":0.00733,"55":0.00733,"56":0.01834,"57":0.00733,"58":0.011,"59":0.00733,"60":0.00733,"61":0.00733,"62":0.00733,"63":0.011,"64":0.00733,"65":0.011,"66":0.00367,"67":0.00367,"68":0.01834,"69":0.01467,"70":0.011,"71":0.01834,"72":0.01467,"73":0.011,"74":0.02934,"75":0.01834,"76":0.02567,"77":0.01467,"78":0.022,"79":0.11734,"80":0.02934,"81":0.022,"83":0.04767,"84":0.05134,"85":0.05501,"86":0.07334,"87":0.07701,"88":0.03667,"89":0.04034,"90":0.033,"91":0.04767,"92":0.05134,"93":0.01834,"94":0.03667,"95":0.033,"96":0.06967,"97":0.06967,"98":0.06967,"99":0.14668,"100":3.96036,"101":18.67236,"102":1.96918,"103":0.01467,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 104"},F:{"28":0.01467,"46":0.00733,"85":0.16868,"86":0.19435,"87":0.011,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00367,"18":0.022,"81":0.00367,"83":0.00367,"84":0.011,"85":0.00367,"86":0.00367,"87":0.00367,"89":0.00733,"90":0.00733,"91":0.00367,"92":0.011,"96":0.00733,"97":0.00733,"98":0.011,"99":0.01834,"100":0.07701,"101":2.32488,_:"12 13 14 15 16 79 80 88 93 94 95"},E:{"4":0,"13":0.02567,"14":0.10268,"15":0.07334,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.05501,"10.1":0.00733,"11.1":0.011,"12.1":0.01467,"13.1":0.09534,"14.1":0.37037,"15.1":0.09168,"15.2-15.3":0.08067,"15.4":2.02418,"15.5":0.17602},G:{"8":0.00154,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00154,"5.0-5.1":0.00461,"6.0-6.1":0.00768,"7.0-7.1":0.01383,"8.1-8.4":0.00922,"9.0-9.2":0.01383,"9.3":0.0507,"10.0-10.2":0.02151,"10.3":0.07374,"11.0-11.2":0.03533,"11.3-11.4":0.02919,"12.0-12.1":0.03841,"12.2-12.5":0.62066,"13.0-13.1":0.03533,"13.2":0.02151,"13.3":0.06606,"13.4-13.7":0.16746,"14.0-14.4":0.52541,"14.5-14.8":1.4349,"15.0-15.1":0.61145,"15.2-15.3":1.17834,"15.4":10.39919},P:{"4":0.17667,"5.0-5.4":0.04074,"6.2-6.4":0.02037,"7.2-7.4":0.09353,"8.2":0.04047,"9.2":0.03118,"10.1":0.02078,"11.1-11.2":0.10392,"12.0":0.02078,"13.0":0.06235,"14.0":0.10392,"15.0":0.07275,"16.0":0.85216},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00185,"4.2-4.3":0.00463,"4.4":0,"4.4.3-4.4.4":0.03151},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00746,"9":0.01119,"10":0.00373,"11":0.41032,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.1393},Q:{"10.4":0},O:{"0":0.26594},H:{"0":0.2278},L:{"0":46.11252},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TJ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TJ.js index 84e2516766a9b5..779e4c52466ba8 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TJ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TJ.js @@ -1 +1 @@ -module.exports={C:{"32":0.00266,"35":0.00532,"52":0.06921,"72":0.00266,"78":0.01863,"79":0.0559,"80":0.01331,"81":0.01863,"82":0.01065,"83":0.01065,"89":0.00799,"91":0.03194,"92":0.00532,"94":0.00799,"95":0.00799,"96":0.00532,"97":0.39131,"98":0.49247,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 84 85 86 87 88 90 93 99 100 3.5 3.6"},D:{"11":0.00266,"39":0.00266,"40":0.00532,"44":0.06389,"46":0.00532,"49":0.05058,"54":0.00799,"57":0.00799,"58":0.00266,"62":0.01331,"63":0.00532,"64":0.00266,"67":0.01597,"68":0.00799,"69":0.00799,"70":0.06389,"71":0.01597,"72":0.00532,"74":0.0213,"75":0.06123,"78":0.00532,"79":0.20764,"80":0.01331,"81":0.01863,"83":0.12778,"84":0.33275,"85":0.25555,"86":0.12245,"87":0.20231,"88":0.0213,"89":0.05324,"90":0.00532,"91":0.06655,"92":0.07454,"93":0.01331,"94":0.03727,"95":0.4206,"96":0.21562,"97":0.2662,"98":3.1731,"99":9.97185,"100":0.14907,"101":0.00532,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 41 42 43 45 47 48 50 51 52 53 55 56 59 60 61 65 66 73 76 77 102 103"},F:{"36":0.00799,"40":0.00266,"52":0.00266,"68":0.02396,"72":0.00266,"77":0.00266,"79":0.00532,"80":0.01331,"81":0.00266,"82":0.03727,"83":0.11447,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 73 74 75 76 78 9.5-9.6 10.5 10.6 11.1 11.6 12.1","10.0-10.1":0,"11.5":0.00266},B:{"12":0.00799,"13":0.00799,"15":0.00266,"16":0.00532,"17":0.00799,"18":0.21296,"84":0.00532,"85":0.09051,"89":0.00532,"90":0.00266,"91":0.00532,"92":0.01065,"96":0.02396,"97":0.01065,"98":0.16504,"99":0.60161,_:"14 79 80 81 83 86 87 88 93 94 95"},E:{"4":0,"13":0.00532,"14":0.03727,"15":0.02928,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":1.85275,"11.1":0.09849,"12.1":0.18368,"13.1":0.03727,"14.1":0.20764,"15.1":0.05856,"15.2-15.3":0.06123,"15.4":0.03461},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00551,"6.0-6.1":0,"7.0-7.1":0.00709,"8.1-8.4":0.00158,"9.0-9.2":0.00551,"9.3":0.0323,"10.0-10.2":0.00788,"10.3":0.07484,"11.0-11.2":0.02757,"11.3-11.4":0.11501,"12.0-12.1":0.37576,"12.2-12.5":0.66566,"13.0-13.1":0.02757,"13.2":0.01576,"13.3":0.04963,"13.4-13.7":0.16622,"14.0-14.4":0.6436,"14.5-14.8":0.67354,"15.0-15.1":0.85078,"15.2-15.3":3.83876,"15.4":0.28911},P:{"4":1.03259,"5.0-5.4":0.2005,"6.2-6.4":0.19048,"7.2-7.4":0.59148,"8.2":0.02005,"9.2":0.35088,"10.1":0.0802,"11.1-11.2":0.29073,"12.0":0.09023,"13.0":0.31078,"14.0":0.48121,"15.0":0.2807,"16.0":1.77445},I:{"0":0,"3":0,"4":0.00045,"2.1":0,"2.2":0,"2.3":0.00225,"4.1":0.00674,"4.2-4.3":0.00629,"4.4":0,"4.4.3-4.4.4":0.05032},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01438,"9":0.03164,"10":0.00575,"11":0.30493,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":55.5063},S:{"2.5":0},R:{_:"0"},M:{"0":0.04403},Q:{"10.4":0},O:{"0":1.67306},H:{"0":2.23003}}; +module.exports={C:{"32":0.0027,"35":0.0027,"47":0.0108,"52":0.31602,"72":0.05672,"78":0.0054,"81":0.0081,"82":0.59422,"83":0.0081,"86":0.0027,"88":0.0054,"89":0.01351,"90":0.0027,"91":0.04052,"93":0.0054,"94":0.0054,"95":0.0054,"96":0.0081,"97":0.0054,"98":0.02161,"99":0.19717,"100":0.90754,"101":0.0027,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 84 85 87 92 102 103 3.5 3.6"},D:{"11":0.0108,"35":0.0081,"40":0.0108,"44":0.06212,"45":0.0027,"46":0.0027,"47":0.0081,"49":0.03781,"50":0.0027,"53":0.0027,"61":0.0027,"62":0.02701,"63":0.01891,"64":0.0027,"65":0.0108,"67":0.01891,"69":0.0081,"70":0.0027,"71":0.0108,"72":0.0054,"73":0.0054,"74":0.01621,"75":0.0108,"76":0.0081,"77":0.0027,"78":0.0108,"79":0.17016,"80":0.02161,"81":0.01621,"83":0.02971,"84":0.02971,"85":0.16746,"86":0.90213,"87":0.60232,"88":0.01351,"89":0.03511,"90":0.05942,"91":0.13775,"92":0.03781,"93":0.02161,"94":0.03511,"95":0.02431,"96":0.11074,"97":0.04592,"98":0.12155,"99":0.11074,"100":2.1608,"101":9.90997,"102":0.91834,"104":0.0054,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 41 42 43 48 51 52 54 55 56 57 58 59 60 66 68 103"},F:{"11":0.0027,"34":0.0027,"36":0.0054,"63":0.0108,"68":0.02431,"72":0.0027,"73":0.0027,"75":0.0027,"78":0.01351,"79":0.02161,"80":0.0054,"81":0.0027,"82":0.0108,"83":0.0081,"84":0.0081,"85":0.50239,"86":0.76979,"87":0.05402,_:"9 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 69 70 71 74 76 77 9.5-9.6 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0,"10.5":0.0027},B:{"12":0.0081,"13":0.0027,"14":0.0027,"15":0.01351,"16":0.0054,"17":0.01621,"18":0.02971,"84":0.02971,"85":0.0108,"87":0.0027,"88":0.0054,"89":0.0108,"90":0.0054,"91":0.0027,"92":0.0108,"94":0.0027,"95":0.0054,"96":0.0054,"97":0.0081,"98":0.0108,"99":0.01351,"100":0.03781,"101":0.76168,_:"79 80 81 83 86 93"},E:{"4":0,"13":0.04862,"14":0.04322,"15":0.0081,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":1.6314,"12.1":0.0054,"13.1":0.03241,"14.1":0.06753,"15.1":0.07833,"15.2-15.3":0.11614,"15.4":0.38084,"15.5":0.01891},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.01033,"5.0-5.1":0.00947,"6.0-6.1":0.00086,"7.0-7.1":0.00947,"8.1-8.4":0,"9.0-9.2":0.02325,"9.3":0.03617,"10.0-10.2":0.01206,"10.3":0.11539,"11.0-11.2":0.01894,"11.3-11.4":0.03444,"12.0-12.1":0.11883,"12.2-12.5":0.61225,"13.0-13.1":0.03186,"13.2":0.02239,"13.3":0.05769,"13.4-13.7":0.155,"14.0-14.4":0.589,"14.5-14.8":0.8103,"15.0-15.1":0.83183,"15.2-15.3":1.44236,"15.4":3.67091},P:{"4":1.04204,"5.0-5.4":0.13152,"6.2-6.4":0.15175,"7.2-7.4":0.62725,"8.2":0.04047,"9.2":0.23269,"10.1":0.05058,"11.1-11.2":0.26304,"12.0":0.10117,"13.0":0.23269,"14.0":0.35409,"15.0":0.17199,"16.0":1.23426},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0.00117,"4.1":0.00311,"4.2-4.3":0.00389,"4.4":0,"4.4.3-4.4.4":0.05022},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00289,"9":0.00866,"11":0.15591,_:"6 7 10 5.5"},J:{"7":0,"10":0.0146},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.05109},Q:{"10.4":0},O:{"0":1.4598},H:{"0":2.45313},L:{"0":55.29632},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TK.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TK.js index da9496173c7f18..2eaee8c40efcc9 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TK.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TK.js @@ -1 +1 @@ -module.exports={C:{"97":0.01765,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 98 99 100 3.5 3.6"},D:{"91":0.01765,"92":0.01765,"98":0.01765,"99":0.12356,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 93 94 95 96 97 100 101 102 103"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"98":0.02207,"99":0.02207,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1","15.1":6.79602,"15.2-15.3":2.18885,"15.4":0.48984},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.01658,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.00553,"14.5-14.8":0,"15.0-15.1":4.14968,"15.2-15.3":51.07806,"15.4":0},P:{"4":0.11626,"5.0-5.4":0.04094,"6.2-6.4":0.01023,"7.2-7.4":0.08455,"8.2":0.02005,"9.2":0.04248,"10.1":0.02124,"11.1-11.2":0.1062,"12.0":0.02124,"13.0":0.03171,"14.0":0.01057,"15.0":0.02114,"16.0":0.08381},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":0.53635},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{"100":0.01998,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 3.5 3.6"},D:{"99":0.0799,"100":0.27966,"101":0.23971,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 102 103 104"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.05993,"101":0.05993,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1 15.5","15.1":9.80322,"15.2-15.3":1.96764,"15.4":25.91387},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.01948,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":2.4203,"15.2-15.3":7.54823,"15.4":38.70535},P:{"4":0.15814,"5.0-5.4":0.04074,"6.2-6.4":0.04518,"7.2-7.4":0.0113,"8.2":0.04047,"9.2":0.03389,"10.1":0.02078,"11.1-11.2":0.09385,"12.0":0.0113,"13.0":0.0113,"14.0":0.16464,"15.0":0.0113,"16.0":0.02058},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.04005},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":1.14137},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TL.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TL.js index 7e421823dca0fa..23211a9decbc65 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TL.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TL.js @@ -1 +1 @@ -module.exports={C:{"7":0.0095,"13":0.01901,"21":0.02851,"24":0.01426,"33":0.00475,"34":0.01426,"35":0.01901,"36":0.00475,"37":0.03802,"40":0.01426,"41":0.20434,"42":0.0095,"43":0.0095,"47":0.05702,"48":0.03802,"52":0.0095,"54":0.03326,"56":0.07128,"57":0.06653,"61":0.13306,"62":0.00475,"65":0.00475,"66":0.01426,"68":0.00475,"72":0.07603,"77":0.00475,"78":0.03802,"79":0.50371,"81":0.01901,"82":0.01426,"84":0.01426,"85":0.03802,"86":0.0095,"88":0.02851,"89":0.04752,"90":0.00475,"91":0.1283,"92":0.03802,"93":0.05227,"94":0.02851,"95":0.34214,"96":0.05702,"97":2.78467,"98":5.8212,"99":0.49896,_:"2 3 4 5 6 8 9 10 11 12 14 15 16 17 18 19 20 22 23 25 26 27 28 29 30 31 32 38 39 44 45 46 49 50 51 53 55 58 59 60 63 64 67 69 70 71 73 74 75 76 80 83 87 100 3.5 3.6"},D:{"31":0.04752,"40":0.0095,"43":0.07128,"49":0.05702,"53":0.02376,"56":0.0095,"58":0.09504,"61":0.01901,"62":0.04752,"63":0.10454,"64":0.0095,"65":0.00475,"67":0.01901,"68":0.0095,"69":0.01901,"71":0.01426,"74":0.03326,"78":0.0095,"79":0.0095,"80":0.0095,"83":0.0095,"84":0.2376,"85":0.0095,"86":0.03802,"87":0.2376,"88":0.07603,"89":0.01426,"90":0.02376,"91":0.02851,"92":0.14256,"93":0.02851,"94":0.03802,"95":0.08078,"96":0.26611,"97":0.2281,"98":4.35283,"99":19.63526,"100":0.28987,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 41 42 44 45 46 47 48 50 51 52 54 55 57 59 60 66 70 72 73 75 76 77 81 101 102 103"},F:{"56":0.01426,"77":0.0095,"80":0.02851,"82":0.20909,"83":0.03326,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.04277,"13":0.03326,"14":0.01426,"15":0.03326,"16":0.03326,"17":0.01901,"18":0.16632,"84":0.01426,"85":0.0095,"87":0.0095,"89":0.01426,"90":0.0095,"91":0.00475,"92":0.01901,"93":0.0095,"96":0.11405,"97":0.05702,"98":1.00267,"99":4.2673,_:"79 80 81 83 86 88 94 95"},E:{"4":0,"7":0.00475,"8":0.01426,"11":0.00475,"14":0.19008,_:"0 5 6 9 10 12 13 15 3.1 3.2 6.1 7.1","5.1":0.00475,"9.1":0.02376,"10.1":0.00475,"11.1":0.02376,"12.1":0.04752,"13.1":0.15682,"14.1":0.28512,"15.1":0.15206,"15.2-15.3":0.08554,"15.4":0.02376},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00246,"8.1-8.4":0,"9.0-9.2":0.00688,"9.3":0.01131,"10.0-10.2":0.01524,"10.3":0.03933,"11.0-11.2":0.01475,"11.3-11.4":0.03687,"12.0-12.1":0.07571,"12.2-12.5":0.75017,"13.0-13.1":0.07325,"13.2":0.02556,"13.3":0.12044,"13.4-13.7":0.18828,"14.0-14.4":1.10461,"14.5-14.8":0.9591,"15.0-15.1":0.6258,"15.2-15.3":0.77819,"15.4":0.08849},P:{"4":0.35047,"5.0-5.4":0.04094,"6.2-6.4":0.01023,"7.2-7.4":0.19117,"8.2":0.02005,"9.2":0.04248,"10.1":0.02124,"11.1-11.2":0.1062,"12.0":0.02124,"13.0":0.07434,"14.0":0.38234,"15.0":0.13807,"16.0":0.43544},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00029,"4.2-4.3":0.00676,"4.4":0,"4.4.3-4.4.4":0.00345},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.35165,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":44.10866},S:{"2.5":0},R:{_:"0"},M:{"0":0.01574},Q:{"10.4":0.01049},O:{"0":0.68211},H:{"0":1.72373}}; +module.exports={C:{"6":0.00483,"8":0.00483,"12":0.00483,"18":0.00483,"20":0.00483,"21":0.05797,"24":0.00483,"30":0.01932,"31":0.00483,"34":0.00966,"35":0.03382,"37":0.02416,"38":0.00966,"39":0.00483,"40":0.00483,"41":0.24155,"43":0.05314,"44":0.02416,"47":0.03865,"48":0.06763,"50":0.00966,"52":0.06763,"53":0.00483,"56":0.04831,"57":0.03382,"61":0.09662,"65":0.03865,"66":0.00966,"67":0.0628,"68":0.00483,"72":0.05797,"75":0.00966,"78":0.02899,"79":0.4058,"81":0.00483,"84":0.00966,"85":0.0628,"88":0.12561,"89":0.05314,"91":0.15459,"92":0.02416,"94":0.01932,"95":0.07247,"96":0.00966,"97":0.03865,"98":0.16909,"99":2.20294,"100":5.54599,"101":0.67634,_:"2 3 4 5 7 9 10 11 13 14 15 16 17 19 22 23 25 26 27 28 29 32 33 36 42 45 46 49 51 54 55 58 59 60 62 63 64 69 70 71 73 74 76 77 80 82 83 86 87 90 93 102 103 3.5 3.6"},D:{"20":0.00483,"31":0.03382,"40":0.00966,"43":0.0628,"46":0.00966,"49":0.08213,"53":0.01449,"55":0.02899,"56":0.01932,"58":0.0628,"61":0.03382,"62":0.03865,"63":0.04348,"65":0.0773,"67":0.01932,"68":0.03865,"71":0.00483,"74":0.02899,"75":0.01932,"78":0.02899,"79":0.00966,"80":0.04831,"81":0.00966,"83":0.02899,"84":0.11594,"85":0.01449,"86":0.03865,"87":0.29469,"88":0.04831,"89":0.07247,"90":0.03382,"91":0.04831,"92":0.07247,"93":0.01449,"94":0.02899,"95":0.0628,"96":0.22706,"97":0.15942,"98":0.19324,"99":0.39131,"100":5.20299,"101":18.43993,"102":1.65703,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 41 42 44 45 47 48 50 51 52 54 57 59 60 64 66 69 70 72 73 76 77 103 104"},F:{"75":0.01449,"79":0.00483,"84":0.01932,"85":0.32368,"86":0.51209,"87":0.02899,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.05797,"13":0.02416,"14":0.03382,"15":0.00966,"16":0.03865,"17":0.04348,"18":0.15459,"80":0.03382,"84":0.05314,"85":0.00966,"88":0.00966,"89":0.00966,"90":0.01932,"91":0.00966,"92":0.04831,"95":0.00483,"96":0.05797,"97":0.02899,"98":0.01932,"99":0.05797,"100":0.66185,"101":4.46868,_:"79 81 83 86 87 93 94"},E:{"4":0,"8":0.00966,"11":0.00483,"12":0.02416,"13":0.00483,"14":0.08696,_:"0 5 6 7 9 10 15 3.1 3.2 5.1 6.1 7.1 15.5","9.1":0.00966,"10.1":0.05314,"11.1":0.02899,"12.1":0.02899,"13.1":0.0773,"14.1":0.12561,"15.1":0.17392,"15.2-15.3":0.01932,"15.4":0.18358},G:{"8":0,"3.2":0.00157,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00681,"9.3":0.00262,"10.0-10.2":0.00785,"10.3":0.03717,"11.0-11.2":0.01256,"11.3-11.4":0.02984,"12.0-12.1":0.04711,"12.2-12.5":0.73652,"13.0-13.1":0.067,"13.2":0.01361,"13.3":0.10731,"13.4-13.7":0.26854,"14.0-14.4":0.92549,"14.5-14.8":0.86372,"15.0-15.1":0.40307,"15.2-15.3":0.43395,"15.4":1.27045},P:{"4":0.23985,"5.0-5.4":0.04074,"6.2-6.4":0.01043,"7.2-7.4":0.21899,"8.2":0.04047,"9.2":0.03128,"10.1":0.02078,"11.1-11.2":0.09385,"12.0":0.01043,"13.0":0.05214,"14.0":0.37542,"15.0":0.06257,"16.0":0.4067},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00126,"4.2-4.3":0.00461,"4.4":0,"4.4.3-4.4.4":0.00964},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.24155,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.04134},Q:{"10.4":0},O:{"0":0.68218},H:{"0":1.60971},L:{"0":43.69669},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TM.js index 7bf51db13872b4..8cb1be6c6865ba 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TM.js @@ -1 +1 @@ -module.exports={C:{"50":0.00579,"51":0.06946,"52":0.00579,"68":0.02315,"69":0.00579,"73":0.01158,"78":0.01736,"79":0.00579,"82":0.15049,"84":0.01158,"86":0.00579,"88":0.00579,"91":0.03473,"94":0.01158,"95":0.01158,"96":0.03473,"97":0.21416,"98":0.60195,"99":0.06946,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 70 71 72 74 75 76 77 80 81 83 85 87 89 90 92 93 100 3.5 3.6"},D:{"29":0.00579,"47":0.01158,"49":0.00579,"61":0.01158,"64":0.00579,"67":0.02894,"68":0.02315,"69":0.01158,"70":0.01158,"72":0.04052,"74":0.02315,"75":1.05342,"78":0.00579,"79":0.21416,"80":0.01736,"83":0.02894,"85":0.04052,"86":0.03473,"89":0.07524,"90":1.99686,"91":0.01736,"92":0.0984,"93":0.00579,"94":0.00579,"95":0.01158,"96":0.73508,"97":1.99107,"98":8.76303,"99":28.43644,"100":0.27204,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 62 63 65 66 71 73 76 77 81 84 87 88 101 102 103"},F:{"47":0.0463,"51":0.0463,"76":0.01158,"82":0.01158,"83":0.01158,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"84":0.00579,"90":0.03473,"92":0.00579,"98":0.2894,"99":1.03026,_:"12 13 14 15 16 17 18 79 80 81 83 85 86 87 88 89 91 93 94 95 96 97"},E:{"4":0,"14":0.02894,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1","5.1":0.08682,"13.1":0.06367,"14.1":0.7698,"15.1":0.06367,"15.2-15.3":0.15628,"15.4":0.10418},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00703,"8.1-8.4":0,"9.0-9.2":0.00703,"9.3":0.04216,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.01874,"11.3-11.4":0.06558,"12.0-12.1":0.03747,"12.2-12.5":0.04216,"13.0-13.1":0,"13.2":0.00703,"13.3":0.00703,"13.4-13.7":0.01874,"14.0-14.4":0.23888,"14.5-14.8":0.08197,"15.0-15.1":7.34674,"15.2-15.3":13.47098,"15.4":2.03985},P:{"4":0.15218,"5.0-5.4":0.02048,"6.2-6.4":0.02064,"7.2-7.4":0.03044,"8.2":0.02029,"9.2":0.03071,"10.1":0.01024,"11.1-11.2":0.14333,"12.0":0.02029,"13.0":0.05073,"14.0":0.14333,"15.0":0.15357,"16.0":0.66957},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0.00036,"2.3":0,"4.1":0.0012,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01107},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.99686,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":16.44992},S:{"2.5":0},R:{_:"0"},M:{"0":0.3159},Q:{"10.4":0.08003},O:{"0":0.139},H:{"0":0.01595}}; +module.exports={C:{"60":1.51511,"91":0.07047,"99":0.18401,"100":2.76008,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 98 101 102 103 3.5 3.6"},D:{"71":0.11354,"79":0.52853,"80":0.01566,"84":0.01566,"89":0.1566,"90":0.43065,"92":0.02741,"95":0.01566,"96":0.05873,"97":0.02741,"98":0.05873,"99":0.2858,"100":6.78078,"101":19.92735,"102":2.30202,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 81 83 85 86 87 88 91 93 94 103 104"},F:{"54":0.02741,"85":0.01566,"86":0.01566,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"99":0.19967,"100":0.01566,"101":0.14486,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98"},E:{"4":0,"14":0.01566,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 15.2-15.3","5.1":0.17226,"12.1":0.02741,"13.1":0.05873,"14.1":0.05873,"15.1":0.05873,"15.4":0.61466,"15.5":0.1292},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.08348,"9.3":0.05445,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.02904,"12.2-12.5":0.02904,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.07259,"14.0-14.4":0.06896,"14.5-14.8":0.04356,"15.0-15.1":5.41189,"15.2-15.3":7.89823,"15.4":22.60579},P:{"4":0.40386,"5.0-5.4":0.01021,"6.2-6.4":0.02051,"7.2-7.4":0.07068,"8.2":0.04047,"9.2":0.14135,"10.1":0.13125,"11.1-11.2":0.04039,"12.0":0.03063,"13.0":0.18174,"14.0":0.2827,"15.0":0.13125,"16.0":0.86829},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00522,"4.2-4.3":0.00386,"4.4":0,"4.4.3-4.4.4":0.00309},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.05873,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.71803},Q:{"10.4":0},O:{"0":0.34685},H:{"0":0.12098},L:{"0":20.48634},S:{"2.5":0.03043}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TN.js index a780cf6a58e499..0e30256682f2cb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TN.js @@ -1 +1 @@ -module.exports={C:{"52":0.07891,"72":0.00831,"78":0.02077,"81":0.00415,"84":0.05399,"87":0.00415,"88":0.01246,"89":0.01246,"91":0.02907,"92":0.02077,"93":0.00831,"94":0.00415,"95":0.02907,"96":0.02492,"97":0.46514,"98":0.96765,"99":0.02077,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 82 83 85 86 90 100 3.5 3.6"},D:{"38":0.00831,"39":0.00831,"42":0.00415,"43":0.00415,"47":0.00831,"49":0.2118,"52":0.00831,"53":0.00415,"56":0.01661,"58":0.00415,"60":0.00415,"61":0.00415,"63":0.02077,"64":0.00831,"65":0.01246,"66":0.00831,"67":0.01246,"68":0.00831,"69":0.00831,"70":0.01661,"71":0.01246,"72":0.00831,"73":0.00831,"74":0.01246,"75":0.00415,"76":0.00831,"77":0.01661,"78":0.01661,"79":0.0623,"80":0.03322,"81":0.03738,"83":0.03738,"84":0.04568,"85":0.04568,"86":0.07475,"87":0.70186,"88":0.03322,"89":0.05814,"90":0.04984,"91":0.09552,"92":0.09137,"93":0.98011,"94":0.04984,"95":0.05814,"96":0.26164,"97":0.39038,"98":6.03846,"99":21.46686,"100":0.19519,"101":0.01246,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 41 44 45 46 48 50 51 54 55 57 59 62 102 103"},F:{"40":0.00831,"71":0.00415,"77":0.00415,"80":0.00415,"82":0.01661,"83":0.93027,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01246,"13":0.01246,"16":0.00415,"17":0.04153,"18":0.02907,"85":0.00831,"89":0.00415,"90":0.00415,"92":0.02077,"94":0.00415,"95":0.00831,"96":0.02077,"97":0.05399,"98":0.44852,"99":2.05574,_:"14 15 79 80 81 83 84 86 87 88 91 93"},E:{"4":0,"13":0.09967,"14":0.04153,"15":0.03322,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00415,"12.1":0.00831,"13.1":0.03322,"14.1":0.07891,"15.1":0.04568,"15.2-15.3":0.02492,"15.4":0.01661},G:{"8":0.00035,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01415,"6.0-6.1":0.00495,"7.0-7.1":0.03078,"8.1-8.4":0.00318,"9.0-9.2":0.00283,"9.3":0.0658,"10.0-10.2":0.0046,"10.3":0.04352,"11.0-11.2":0.01627,"11.3-11.4":0.01168,"12.0-12.1":0.01663,"12.2-12.5":0.29435,"13.0-13.1":0.00637,"13.2":0.00425,"13.3":0.03007,"13.4-13.7":0.15708,"14.0-14.4":0.26357,"14.5-14.8":0.65557,"15.0-15.1":0.27277,"15.2-15.3":1.48308,"15.4":0.15496},P:{"4":0.53765,"5.0-5.4":0.04094,"6.2-6.4":0.02064,"7.2-7.4":0.14475,"8.2":0.02005,"9.2":0.03102,"10.1":0.02124,"11.1-11.2":0.10339,"12.0":0.03102,"13.0":0.14475,"14.0":0.17577,"15.0":0.09305,"16.0":1.37514},I:{"0":0,"3":0,"4":0.00347,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00486,"4.2-4.3":0.00902,"4.4":0,"4.4.3-4.4.4":0.0645},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00415,"11":0.15366,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":52.77259},S:{"2.5":0},R:{_:"0"},M:{"0":0.07015},Q:{"10.4":0},O:{"0":0.11692},H:{"0":0.30994}}; +module.exports={C:{"52":0.07994,"71":0.004,"78":0.02398,"79":0.00799,"80":0.01199,"84":0.004,"87":0.004,"88":0.01199,"89":0.00799,"91":0.02798,"95":0.01199,"96":0.004,"97":0.01599,"98":0.01199,"99":0.28778,"100":1.10317,"101":0.01199,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 81 82 83 85 86 90 92 93 94 102 103 3.5 3.6"},D:{"30":0.00799,"38":0.004,"39":0.00799,"43":0.004,"47":0.00799,"48":0.00799,"49":0.17587,"50":0.004,"56":0.01999,"58":0.00799,"62":0.004,"63":0.01999,"64":0.00799,"65":0.01599,"66":0.00799,"67":0.01599,"68":0.00799,"69":0.00799,"70":0.01999,"71":0.01199,"72":0.004,"73":0.00799,"74":0.02798,"75":0.004,"76":0.00799,"77":0.02798,"78":0.03597,"79":0.07594,"80":0.02398,"81":0.03198,"83":0.03597,"84":0.07195,"85":0.07994,"86":0.09193,"87":0.15189,"88":0.02798,"89":0.05596,"90":0.04796,"91":0.10792,"92":0.07994,"93":0.03997,"94":0.03997,"95":0.04397,"96":0.1399,"97":0.12391,"98":0.18786,"99":0.34374,"100":4.36872,"101":21.14413,"102":2.23033,"103":0.01199,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 40 41 42 44 45 46 51 52 53 54 55 57 59 60 61 104"},F:{"28":0.01199,"40":0.004,"82":0.00799,"83":0.004,"84":0.01199,"85":1.41494,"86":1.40295,"87":0.04796,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.00799,"16":0.004,"18":0.01999,"84":0.004,"89":0.004,"92":0.01599,"96":0.00799,"97":0.01199,"98":0.01199,"99":0.03597,"100":0.11192,"101":2.34624,_:"12 14 15 17 79 80 81 83 85 86 87 88 90 91 93 94 95"},E:{"4":0,"9":0.00799,"13":0.01199,"14":0.03198,"15":0.01199,_:"0 5 6 7 8 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00799,"13.1":0.02798,"14.1":0.05996,"15.1":0.01999,"15.2-15.3":0.01199,"15.4":0.11192,"15.5":0.01599},G:{"8":0,"3.2":0,"4.0-4.1":0.00078,"4.2-4.3":0,"5.0-5.1":0.01362,"6.0-6.1":0.00078,"7.0-7.1":0.03463,"8.1-8.4":0.00195,"9.0-9.2":0.00117,"9.3":0.05097,"10.0-10.2":0.00428,"10.3":0.04941,"11.0-11.2":0.00817,"11.3-11.4":0.00817,"12.0-12.1":0.00895,"12.2-12.5":0.29375,"13.0-13.1":0.00778,"13.2":0.00428,"13.3":0.02179,"13.4-13.7":0.08287,"14.0-14.4":0.23383,"14.5-14.8":0.5447,"15.0-15.1":0.17586,"15.2-15.3":0.37429,"15.4":1.96793},P:{"4":0.23644,"5.0-5.4":0.04074,"6.2-6.4":0.02051,"7.2-7.4":0.13364,"8.2":0.04047,"9.2":0.02056,"10.1":0.02078,"11.1-11.2":0.1028,"12.0":0.02056,"13.0":0.14392,"14.0":0.11308,"15.0":0.07196,"16.0":0.72987},I:{"0":0,"3":0,"4":0.00139,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00417,"4.2-4.3":0.00556,"4.4":0,"4.4.3-4.4.4":0.05491},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04796,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.07204},Q:{"10.4":0},O:{"0":0.10205},H:{"0":0.26143},L:{"0":55.08703},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TO.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TO.js index be31cafba031f4..8754b0e23e89d1 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TO.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TO.js @@ -1 +1 @@ -module.exports={C:{"63":0.00494,"76":0.07907,"78":0.01483,"88":0.0939,"92":0.02965,"94":0.00988,"96":0.00988,"97":0.85002,"98":1.15643,"99":0.00988,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 81 82 83 84 85 86 87 89 90 91 93 95 100 3.5 3.6"},D:{"61":0.05436,"76":0.05436,"79":0.00494,"80":0.00988,"81":0.01483,"83":0.02965,"84":0.00494,"86":0.02965,"87":0.01483,"88":0.00988,"90":0.02471,"91":0.17297,"92":0.02965,"93":0.29652,"94":0.09884,"95":0.02965,"96":0.40524,"97":0.22733,"98":6.69641,"99":21.96719,"100":1.25033,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 85 89 101 102 103"},F:{"82":0.00988,"83":0.03954,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03954,"13":0.03954,"15":0.03954,"17":0.01483,"18":0.02965,"84":0.03954,"85":0.05436,"89":0.00988,"90":0.01977,"92":0.03459,"94":0.03459,"95":0.02471,"96":0.25698,"97":0.06919,"98":1.20091,"99":5.36701,_:"14 16 79 80 81 83 86 87 88 91 93"},E:{"4":0,"12":0.00988,"14":0.341,_:"0 5 6 7 8 9 10 11 13 15 3.1 3.2 5.1 6.1 7.1 9.1 15.2-15.3","10.1":0.03954,"11.1":0.00988,"12.1":0.01977,"13.1":0.0939,"14.1":0.11861,"15.1":0.01483,"15.4":0.03954},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02174,"8.1-8.4":0.00522,"9.0-9.2":0,"9.3":0.07826,"10.0-10.2":0,"10.3":0.19913,"11.0-11.2":0.06174,"11.3-11.4":0.02696,"12.0-12.1":0.07304,"12.2-12.5":1.89563,"13.0-13.1":0.29217,"13.2":0.00522,"13.3":0.33739,"13.4-13.7":0.4226,"14.0-14.4":1.13216,"14.5-14.8":1.60868,"15.0-15.1":0.67217,"15.2-15.3":1.73042,"15.4":0.13217},P:{"4":0.03096,"5.0-5.4":0.04094,"6.2-6.4":0.02064,"7.2-7.4":0.28895,"8.2":0.02005,"9.2":0.35087,"10.1":0.02124,"11.1-11.2":0.0516,"12.0":0.04128,"13.0":0.09288,"14.0":0.0516,"15.0":0.11352,"16.0":0.49534},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02471,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":46.34498},S:{"2.5":0.02023},R:{_:"0"},M:{"0":0.62213},Q:{"10.4":0},O:{"0":0.17703},H:{"0":0.09577}}; +module.exports={C:{"48":0.01466,"49":0.00489,"61":0.01466,"72":0.00977,"78":0.00977,"91":0.07818,"96":0.00977,"99":0.21498,"100":1.28502,"101":0.2443,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 97 98 102 103 3.5 3.6"},D:{"49":0.06352,"50":0.01466,"62":0.00977,"66":0.00489,"69":0.01466,"73":0.00489,"75":0.01466,"76":0.00977,"77":0.0342,"79":0.07329,"80":0.01954,"81":0.2443,"86":0.01466,"88":0.06352,"89":0.00977,"90":0.06352,"91":0.02443,"92":0.00489,"93":0.07329,"94":0.07329,"95":0.04397,"96":0.12704,"97":0.10261,"98":0.02443,"99":0.34691,"100":5.58958,"101":17.81924,"102":1.98372,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 63 64 65 67 68 70 71 72 74 78 83 84 85 87 103 104"},F:{"79":0.00977,"83":0.00977,"85":0.1759,"86":0.34202,"87":0.00489,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01954,"13":0.02443,"15":0.00977,"16":0.02443,"18":0.07329,"80":0.01466,"84":0.15635,"85":0.01954,"89":0.03909,"90":0.00977,"92":0.01466,"96":0.02443,"97":0.04397,"98":0.00977,"99":0.01954,"100":0.37622,"101":6.65473,_:"14 17 79 81 83 86 87 88 91 93 94 95"},E:{"4":0,"12":0.00489,"13":0.01954,"14":0.26384,"15":0.01954,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 11.1 15.2-15.3","10.1":0.00489,"12.1":0.00489,"13.1":0.02932,"14.1":0.08795,"15.1":0.00489,"15.4":0.6987,"15.5":0.26384},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00355,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03989,"10.0-10.2":0.0133,"10.3":0.03102,"11.0-11.2":0.00443,"11.3-11.4":0.00177,"12.0-12.1":0.03989,"12.2-12.5":0.88546,"13.0-13.1":0.07445,"13.2":0.04166,"13.3":0.14713,"13.4-13.7":0.35542,"14.0-14.4":1.02107,"14.5-14.8":1.19834,"15.0-15.1":0.47065,"15.2-15.3":2.11482,"15.4":2.41972},P:{"4":0.10254,"5.0-5.4":0.04074,"6.2-6.4":0.02051,"7.2-7.4":0.27685,"8.2":0.04047,"9.2":0.05127,"10.1":0.02078,"11.1-11.2":0.08203,"12.0":0.0113,"13.0":0.04101,"14.0":0.36913,"15.0":0.11279,"16.0":0.59471},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00511,"4.4":0,"4.4.3-4.4.4":0.01534},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.41694,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.26081},Q:{"10.4":0},O:{"0":0.0358},H:{"0":0.09683},L:{"0":48.81136},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TR.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TR.js index 5b93e3b3ee2152..95e333a688b9f3 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TR.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TR.js @@ -1 +1 @@ -module.exports={C:{"52":0.01186,"68":0.00237,"78":0.00712,"79":0.00949,"80":0.00474,"81":0.00474,"82":0.00474,"83":0.00237,"84":0.02846,"87":0.00474,"91":0.00712,"92":0.0166,"95":0.00474,"96":0.00474,"97":0.1779,"98":0.34157,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 85 86 88 89 90 93 94 99 100 3.5 3.6"},D:{"22":0.06642,"26":0.03321,"31":0.00237,"34":0.06879,"38":0.09962,"43":0.00237,"47":0.0759,"48":0.00237,"49":0.06404,"53":0.02135,"56":0.00237,"58":0.00237,"59":0.00237,"61":0.00474,"63":0.00712,"65":0.00237,"66":0.00237,"67":0.00474,"68":0.01423,"69":0.00474,"70":0.00474,"71":0.03321,"72":0.00474,"73":0.01423,"74":0.00474,"75":0.00712,"76":0.00712,"77":0.00712,"78":0.01186,"79":0.15418,"80":0.0166,"81":0.01898,"83":0.03321,"84":0.05218,"85":0.0593,"86":0.0593,"87":0.15892,"88":0.0166,"89":0.0759,"90":0.0166,"91":0.02846,"92":0.07116,"93":0.11623,"94":0.03558,"95":0.03321,"96":0.12334,"97":0.16367,"98":3.44652,"99":12.54551,"100":0.00712,"101":0.00237,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 32 33 35 36 37 39 40 41 42 44 45 46 50 51 52 54 55 57 60 62 64 102 103"},F:{"28":0.00712,"31":0.00474,"32":0.00949,"36":0.01423,"40":0.06167,"46":0.03795,"78":0.04507,"80":0.00237,"82":0.03558,"83":0.34868,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00474,"13":0.00237,"14":0.00474,"15":0.00474,"16":0.00237,"17":0.00712,"18":0.01898,"84":0.00237,"85":0.00237,"87":0.00237,"92":0.00474,"94":0.00237,"95":0.00237,"96":0.00949,"97":0.0166,"98":0.21111,"99":0.97015,_:"79 80 81 83 86 88 89 90 91 93"},E:{"4":0,"13":0.03084,"14":0.03795,"15":0.01898,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00474,"11.1":0.00474,"12.1":0.01186,"13.1":0.04032,"14.1":0.11148,"15.1":0.03558,"15.2-15.3":0.03558,"15.4":0.02135},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00216,"7.0-7.1":0.03995,"8.1-8.4":0.00108,"9.0-9.2":0.00108,"9.3":0.04967,"10.0-10.2":0.01188,"10.3":0.12633,"11.0-11.2":0.05183,"11.3-11.4":0.03887,"12.0-12.1":0.03563,"12.2-12.5":1.4566,"13.0-13.1":0.01836,"13.2":0.0054,"13.3":0.06479,"13.4-13.7":0.21595,"14.0-14.4":0.47401,"14.5-14.8":1.51814,"15.0-15.1":0.60575,"15.2-15.3":5.66766,"15.4":0.40707},P:{"4":0.58357,"5.0-5.4":0.02048,"6.2-6.4":0.02064,"7.2-7.4":0.215,"8.2":0.02005,"9.2":0.03071,"10.1":0.01024,"11.1-11.2":0.14333,"12.0":0.05119,"13.0":0.25595,"14.0":0.14333,"15.0":0.15357,"16.0":2.93832},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00221,"4.2-4.3":0.00664,"4.4":0,"4.4.3-4.4.4":0.02166},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00237,"9":0.00712,"11":0.33682,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":60.40119},S:{"2.5":0},R:{_:"0"},M:{"0":0.14491},Q:{"10.4":0},O:{"0":0.12966},H:{"0":0.63543}}; +module.exports={C:{"52":0.0057,"68":0.00142,"78":0.00427,"79":0.00427,"80":0.00427,"81":0.00285,"82":0.00285,"83":0.00285,"88":0.00142,"91":0.00427,"95":0.00142,"96":0.00142,"98":0.00285,"99":0.04984,"100":0.25347,"101":0.00142,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 84 85 86 87 89 90 92 93 94 97 102 103 3.5 3.6"},D:{"22":0.03418,"26":0.01566,"31":0.00142,"34":0.03845,"38":0.04984,"42":0.00142,"43":0.00285,"47":0.0413,"48":0.00142,"49":0.04414,"53":0.01139,"56":0.00142,"58":0.00142,"59":0.00142,"61":0.00285,"63":0.00427,"65":0.00142,"66":0.00142,"67":0.00142,"68":0.00997,"69":0.00285,"70":0.00427,"71":0.02563,"72":0.00285,"73":0.0057,"74":0.00427,"75":0.00427,"76":0.00285,"77":0.00285,"78":0.0057,"79":0.09114,"80":0.00997,"81":0.00997,"83":0.02848,"84":0.0413,"85":0.04842,"86":0.04842,"87":0.05126,"88":0.00997,"89":0.01994,"90":0.00712,"91":0.01709,"92":0.02421,"93":0.00712,"94":0.01424,"95":0.01851,"96":0.04272,"97":0.03845,"98":0.07262,"99":0.08259,"100":1.53222,"101":6.52192,"102":0.78605,"103":0.00285,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 32 33 35 36 37 39 40 41 44 45 46 50 51 52 54 55 57 60 62 64 104"},F:{"28":0.00712,"31":0.00427,"32":0.00427,"36":0.00997,"40":0.0356,"46":0.0299,"68":0.00142,"69":0.00142,"71":0.00142,"72":0.00142,"84":0.00285,"85":0.28195,"86":0.33322,"87":0.01851,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 70 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"13":0.00142,"14":0.00142,"15":0.00142,"17":0.00285,"18":0.00997,"84":0.00285,"85":0.00285,"86":0.00285,"87":0.00427,"91":0.00142,"92":0.00285,"94":0.00142,"96":0.00285,"97":0.00427,"98":0.00285,"99":0.00997,"100":0.02563,"101":0.69349,_:"12 16 79 80 81 83 88 89 90 93 95"},E:{"4":0,"13":0.0057,"14":0.01994,"15":0.00854,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00142,"11.1":0.00285,"12.1":0.00427,"13.1":0.01994,"14.1":0.05126,"15.1":0.01566,"15.2-15.3":0.00997,"15.4":0.1481,"15.5":0.01994},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01918,"8.1-8.4":0,"9.0-9.2":0.00338,"9.3":0.03046,"10.0-10.2":0.00677,"10.3":0.08461,"11.0-11.2":0.03046,"11.3-11.4":0.03497,"12.0-12.1":0.03046,"12.2-12.5":1.5105,"13.0-13.1":0.01579,"13.2":0.00677,"13.3":0.06656,"13.4-13.7":0.19177,"14.0-14.4":0.44221,"14.5-14.8":1.24427,"15.0-15.1":0.3215,"15.2-15.3":0.82124,"15.4":6.41653},P:{"4":0.43905,"5.0-5.4":0.01021,"6.2-6.4":0.02051,"7.2-7.4":0.20421,"8.2":0.04047,"9.2":0.03063,"10.1":0.01021,"11.1-11.2":0.09189,"12.0":0.03063,"13.0":0.194,"14.0":0.09189,"15.0":0.08168,"16.0":1.10273},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00152,"4.2-4.3":0.00387,"4.4":0,"4.4.3-4.4.4":0.01176},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00142,"9":0.00142,"11":0.14382,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.07718},Q:{"10.4":0},O:{"0":0.20582},H:{"0":0.74697},L:{"0":70.14838},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TT.js index b5a6c540e723f7..da36f1bba1db95 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TT.js @@ -1 +1 @@ -module.exports={C:{"52":0.00899,"68":0.0045,"78":0.01349,"87":0.00899,"91":0.01798,"95":0.0045,"96":0.00899,"97":0.62481,"98":1.10577,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 88 89 90 92 93 94 99 100 3.5 3.6"},D:{"38":0.0045,"47":0.00899,"49":0.11238,"55":0.00899,"56":0.01349,"58":0.00899,"62":0.02248,"63":0.0045,"67":0.01349,"68":0.01798,"74":0.03147,"75":0.02248,"76":0.06743,"77":0.00899,"79":0.10339,"80":0.02248,"81":0.04495,"83":0.00899,"84":0.01349,"85":0.00899,"86":0.01798,"87":0.0899,"88":0.01349,"89":0.03596,"90":0.02248,"91":0.06743,"92":0.03596,"93":0.12586,"94":0.08091,"95":0.02697,"96":0.17081,"97":0.39556,"98":7.06614,"99":20.87029,"100":0.21127,"101":0.02697,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 53 54 57 59 60 61 64 65 66 69 70 71 72 73 78 102 103"},F:{"28":0.02697,"68":0.00899,"82":0.00899,"83":0.37758,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.0045,"17":0.0045,"18":0.02248,"85":0.01349,"89":0.0045,"90":0.0045,"92":0.00899,"94":0.00899,"96":0.02697,"97":0.13036,"98":1.17769,"99":4.79167,_:"12 13 14 15 79 80 81 83 84 86 87 88 91 93 95"},E:{"4":0,"13":0.00899,"14":0.19329,"15":0.08541,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00899,"10.1":0.01798,"11.1":0.04495,"12.1":0.04495,"13.1":0.3596,"14.1":0.30566,"15.1":0.14384,"15.2-15.3":0.15283,"15.4":0.16182},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01664,"6.0-6.1":0.00185,"7.0-7.1":0.04159,"8.1-8.4":0.00092,"9.0-9.2":0,"9.3":0.15988,"10.0-10.2":0,"10.3":0.11922,"11.0-11.2":0.01109,"11.3-11.4":0.01756,"12.0-12.1":0.0231,"12.2-12.5":0.38354,"13.0-13.1":0.0037,"13.2":0.00277,"13.3":0.01848,"13.4-13.7":0.07393,"14.0-14.4":0.25692,"14.5-14.8":0.9288,"15.0-15.1":0.59887,"15.2-15.3":5.72994,"15.4":0.85025},P:{"4":0.38447,"5.0-5.4":0.04094,"6.2-6.4":0.02064,"7.2-7.4":0.28836,"8.2":0.02005,"9.2":0.02136,"10.1":0.02124,"11.1-11.2":0.1068,"12.0":0.06408,"13.0":0.17088,"14.0":0.18156,"15.0":0.14952,"16.0":4.47485},I:{"0":0,"3":0,"4":0.0003,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00118,"4.4":0,"4.4.3-4.4.4":0.02605},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00899,"11":0.12586,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":41.46934},S:{"2.5":0},R:{_:"0"},M:{"0":0.15967},Q:{"10.4":0},O:{"0":0.03304},H:{"0":0.44308}}; +module.exports={C:{"36":0.00819,"45":0.0041,"52":0.01639,"53":0.0041,"55":0.0041,"56":0.00819,"68":0.01229,"72":0.01229,"78":0.01639,"91":0.03278,"98":0.0041,"99":0.33595,"100":1.20042,"101":0.01229,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 46 47 48 49 50 51 54 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"47":0.01229,"49":0.04097,"50":0.0041,"53":0.0041,"55":0.00819,"56":0.01229,"58":0.0041,"60":0.0041,"62":0.0041,"63":0.0041,"65":0.01229,"67":0.00819,"68":0.01639,"72":0.01229,"73":0.00819,"74":0.09013,"75":0.01229,"76":0.06555,"77":0.00819,"79":0.08194,"80":0.00819,"81":0.04097,"83":0.02458,"84":0.01639,"86":0.00819,"87":0.08604,"88":0.11881,"89":0.05326,"90":0.02049,"91":0.05326,"92":0.02458,"93":0.09423,"94":0.03687,"95":0.01639,"96":0.1352,"97":0.12291,"98":0.20895,"99":0.31957,"100":4.96147,"101":18.53073,"102":1.65109,"103":0.01229,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 51 52 54 57 59 61 64 66 69 70 71 78 85 104"},F:{"28":0.03278,"85":0.51622,"86":0.52851,"87":0.02868,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00819,"17":0.0041,"18":0.01639,"85":0.00819,"89":0.0041,"92":0.00819,"96":0.0041,"97":0.02049,"98":0.00819,"99":0.05326,"100":0.29089,"101":4.69516,_:"12 13 14 16 79 80 81 83 84 86 87 88 90 91 93 94 95"},E:{"4":0,"13":0.0041,"14":0.14749,"15":0.05736,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.0041,"10.1":0.01639,"11.1":0.08194,"12.1":0.03278,"13.1":0.25811,"14.1":0.25401,"15.1":0.06555,"15.2-15.3":0.05326,"15.4":1.23729,"15.5":0.22124},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0034,"6.0-6.1":0,"7.0-7.1":0.03289,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.1951,"10.0-10.2":0.00454,"10.3":0.11116,"11.0-11.2":0.0034,"11.3-11.4":0.01361,"12.0-12.1":0.02042,"12.2-12.5":0.41061,"13.0-13.1":0.00567,"13.2":0.00113,"13.3":0.01928,"13.4-13.7":0.0828,"14.0-14.4":0.20417,"14.5-14.8":0.6386,"15.0-15.1":0.22572,"15.2-15.3":0.6783,"15.4":8.68294},P:{"4":0.53463,"5.0-5.4":0.04074,"6.2-6.4":0.02051,"7.2-7.4":0.28304,"8.2":0.04047,"9.2":0.01048,"10.1":0.02078,"11.1-11.2":0.07338,"12.0":0.02097,"13.0":0.15724,"14.0":0.18869,"15.0":0.10483,"16.0":1.66678},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00241,"4.2-4.3":0.01327,"4.4":0,"4.4.3-4.4.4":0.09648},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00819,"11":0.09423,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.15348},Q:{"10.4":0},O:{"0":0.04722},H:{"0":0.40797},L:{"0":43.39424},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TV.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TV.js index b387500449cfc7..33fc7376f1e975 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TV.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TV.js @@ -1 +1 @@ -module.exports={C:{"88":0.26835,"97":0.18248,"98":0.40789,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 99 100 3.5 3.6"},D:{"84":0.45083,"87":0.04294,"94":0.04294,"95":0.09124,"97":0.09124,"98":7.39036,"99":18.11363,"100":0.45083,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 85 86 88 89 90 91 92 93 96 101 102 103"},F:{"34":0.04294,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.22541,"80":0.31665,"90":0.35959,"93":0.18248,"98":1.84625,"99":5.86076,_:"12 13 14 15 16 18 79 81 83 84 85 86 87 88 89 91 92 94 95 96 97"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.1 15.2-15.3 15.4","12.1":0.35959,"13.1":0.22541,"14.1":10.27244},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.1113,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.37075,"14.5-14.8":1.5935,"15.0-15.1":0.40759,"15.2-15.3":0.1484,"15.4":0},P:{"4":0.05014,"5.0-5.4":0.02048,"6.2-6.4":0.02064,"7.2-7.4":0.06241,"8.2":0.02029,"9.2":0.09362,"10.1":0.05014,"11.1-11.2":0.04161,"12.0":0.18724,"13.0":0.05201,"14.0":0.06241,"15.0":0.07282,"16.0":5.20451},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.04633},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04294,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":41.49636},S:{"2.5":0},R:{_:"0"},M:{"0":0.09266},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{"100":0.5528,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103 3.5 3.6"},D:{"83":0.05649,"95":0.27438,"97":0.10895,"98":0.05649,"99":0.27438,"100":2.20311,"101":16.20456,"102":2.03768,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 84 85 86 87 88 89 90 91 92 93 94 96 103 104"},F:{"86":0.05649,"87":2.75591,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"80":0.10895,"84":0.05649,"96":0.05649,"99":0.05649,"100":1.15805,"101":8.32421,_:"12 13 14 15 16 17 18 79 81 83 85 86 87 88 89 90 91 92 93 94 95 97 98"},E:{"4":0,"10":0.05649,_:"0 5 6 7 8 9 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 15.2-15.3 15.5","12.1":0.49631,"13.1":0.43982,"14.1":3.14327,"15.1":0.05649,"15.4":0.10895},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.1566,"13.0-13.1":0,"13.2":0.10436,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.20871,"14.5-14.8":0,"15.0-15.1":0.20871,"15.2-15.3":0.20884,"15.4":0.36543},P:{"4":0.05254,"5.0-5.4":0.01021,"6.2-6.4":0.01051,"7.2-7.4":0.1261,"8.2":0.04047,"9.2":0.14135,"10.1":0.13125,"11.1-11.2":0.06074,"12.0":0.02102,"13.0":0.02102,"14.0":0.13661,"15.0":0.04203,"16.0":0.5669},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0.05965},H:{"0":0},L:{"0":56.24762},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TW.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TW.js index 41a3fc0785d75b..403fbf3454e67b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TW.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TW.js @@ -1 +1 @@ -module.exports={C:{"34":0.02522,"52":0.01682,"55":0.00841,"67":0.0042,"78":0.00841,"88":0.0042,"89":0.0042,"91":0.00841,"94":0.0042,"95":0.01261,"96":0.02102,"97":0.34052,"98":0.54232,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 90 92 93 99 100 3.5 3.6"},D:{"11":0.0042,"22":0.00841,"26":0.0042,"30":0.00841,"34":0.02522,"38":0.09669,"45":0.0042,"49":0.14294,"53":0.1009,"55":0.00841,"56":0.02522,"58":0.00841,"61":0.03363,"62":0.0042,"63":0.00841,"64":0.00841,"65":0.01261,"66":0.01261,"67":0.02102,"68":0.01261,"69":0.01261,"70":0.01261,"71":0.01682,"72":0.01261,"73":0.00841,"74":0.02102,"75":0.01682,"76":0.01261,"77":0.00841,"78":0.00841,"79":0.43301,"80":0.02102,"81":0.05465,"83":0.02522,"84":0.01261,"85":0.01682,"86":0.04204,"87":0.08828,"88":0.01682,"89":0.06306,"90":0.02522,"91":0.03784,"92":0.04204,"93":0.16396,"94":0.05465,"95":0.06306,"96":0.22702,"97":0.45824,"98":6.98705,"99":21.50346,"100":0.01682,"101":0.01261,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 31 32 33 35 36 37 39 40 41 42 43 44 46 47 48 50 51 52 54 57 59 60 102 103"},F:{"28":0.02943,"36":0.01682,"40":0.0042,"46":0.06726,"83":0.00841,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.0042,"17":0.00841,"18":0.02102,"84":0.0042,"92":0.00841,"94":0.0042,"95":0.0042,"96":0.01261,"97":0.02522,"98":0.61378,"99":2.28698,_:"12 13 14 15 79 80 81 83 85 86 87 88 89 90 91 93"},E:{"4":0,"12":0.0042,"13":0.11771,"14":0.37836,"15":0.11771,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00841,"10.1":0.02102,"11.1":0.02943,"12.1":0.06306,"13.1":0.26065,"14.1":1.42516,"15.1":0.27326,"15.2-15.3":0.30689,"15.4":0.11351},G:{"8":0.00258,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02581,"6.0-6.1":0.01032,"7.0-7.1":0.09032,"8.1-8.4":0.04387,"9.0-9.2":0.01806,"9.3":0.25033,"10.0-10.2":0.02323,"10.3":0.24517,"11.0-11.2":0.05678,"11.3-11.4":0.05678,"12.0-12.1":0.12645,"12.2-12.5":0.8826,"13.0-13.1":0.11355,"13.2":0.04387,"13.3":0.20646,"13.4-13.7":0.4542,"14.0-14.4":2.35618,"14.5-14.8":4.85172,"15.0-15.1":2.58844,"15.2-15.3":11.92026,"15.4":1.44261},P:{"4":0.56065,"5.0-5.4":0.15046,"6.2-6.4":0.32097,"7.2-7.4":0.7924,"8.2":0.01078,"9.2":0.05391,"10.1":0.02156,"11.1-11.2":0.10782,"12.0":0.06469,"13.0":0.20485,"14.0":0.19407,"15.0":0.22642,"16.0":2.56607},I:{"0":0,"3":0,"4":0.00046,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00139,"4.2-4.3":0.00371,"4.4":0,"4.4.3-4.4.4":0.01762},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00565,"11":0.19194,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":28.39919},S:{"2.5":0},R:{_:"0"},M:{"0":0.08114},Q:{"10.4":0.01159},O:{"0":0.08694},H:{"0":0.27985}}; +module.exports={C:{"34":0.02626,"52":0.01313,"55":0.00875,"78":0.00875,"88":0.00438,"91":0.00875,"95":0.00438,"96":0.00438,"97":0.00438,"98":0.01313,"99":0.18821,"100":0.93668,"101":0.00438,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 92 93 94 102 103 3.5 3.6"},D:{"11":0.00438,"22":0.00875,"26":0.00438,"30":0.00875,"34":0.02626,"38":0.09629,"45":0.00438,"49":0.12693,"53":0.10067,"55":0.00875,"56":0.02626,"58":0.00438,"61":0.03502,"62":0.00875,"63":0.00875,"64":0.00875,"65":0.01313,"66":0.01313,"67":0.02189,"68":0.01313,"69":0.01313,"70":0.01313,"71":0.01751,"72":0.00875,"73":0.00875,"74":0.01751,"75":0.01313,"76":0.01313,"77":0.00875,"78":0.00875,"79":0.48585,"80":0.01751,"81":0.04377,"83":0.02626,"84":0.01751,"85":0.01751,"86":0.03939,"87":0.08316,"88":0.01313,"89":0.0569,"90":0.02189,"91":0.03064,"92":0.03502,"93":0.01751,"94":0.03502,"95":0.03939,"96":0.09629,"97":0.14444,"98":0.14444,"99":0.27137,"100":5.97461,"101":22.15637,"102":1.4269,"103":0.02189,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 31 32 33 35 36 37 39 40 41 42 43 44 46 47 48 50 51 52 54 57 59 60 104"},F:{"28":0.03064,"36":0.01751,"46":0.07003,"85":0.05252,"86":0.06566,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00875,"18":0.01751,"84":0.00438,"92":0.00438,"96":0.00875,"97":0.00875,"98":0.00875,"99":0.02189,"100":0.12693,"101":2.90633,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"12":0.00438,"13":0.10943,"14":0.34578,"15":0.08754,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00875,"10.1":0.02189,"11.1":0.03064,"12.1":0.0569,"13.1":0.25387,"14.1":1.19054,"15.1":0.16633,"15.2-15.3":0.16195,"15.4":2.8538,"15.5":0.13569},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02008,"6.0-6.1":0.01004,"7.0-7.1":0.07528,"8.1-8.4":0.04517,"9.0-9.2":0.01506,"9.3":0.24342,"10.0-10.2":0.02008,"10.3":0.23589,"11.0-11.2":0.04266,"11.3-11.4":0.04768,"12.0-12.1":0.10289,"12.2-12.5":0.82311,"13.0-13.1":0.08532,"13.2":0.03513,"13.3":0.16312,"13.4-13.7":0.35886,"14.0-14.4":1.87709,"14.5-14.8":3.42796,"15.0-15.1":1.42288,"15.2-15.3":2.34386,"15.4":13.69426},P:{"4":0.6196,"5.0-5.4":0.08042,"6.2-6.4":0.19099,"7.2-7.4":0.41214,"8.2":0.06031,"9.2":0.04348,"10.1":0.01087,"11.1-11.2":0.08696,"12.0":0.04348,"13.0":0.16305,"14.0":0.14131,"15.0":0.13044,"16.0":1.2718},I:{"0":0,"3":0,"4":0.00073,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00073,"4.2-4.3":0.00293,"4.4":0,"4.4.3-4.4.4":0.01247},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.17508,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.07872},Q:{"10.4":0.01125},O:{"0":0.09559},H:{"0":0.23423},L:{"0":27.6428},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TZ.js index da5a3df6014761..e246209af7665f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/TZ.js @@ -1 +1 @@ -module.exports={C:{"21":0.00202,"32":0.00404,"34":0.00202,"36":0.00202,"38":0.00404,"39":0.00404,"43":0.00404,"44":0.00202,"45":0.00202,"47":0.0101,"48":0.00808,"49":0.00404,"52":0.01211,"56":0.00404,"58":0.00404,"63":0.00404,"65":0.00202,"68":0.00606,"72":0.00808,"78":0.01615,"84":0.00404,"87":0.00202,"88":0.00808,"89":0.0101,"91":0.0323,"92":0.00202,"93":0.00404,"94":0.00606,"95":0.0101,"96":0.03634,"97":0.62791,"98":1.22755,"99":0.07874,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 33 35 37 40 41 42 46 50 51 53 54 55 57 59 60 61 62 64 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 90 100 3.5 3.6"},D:{"32":0.00404,"33":0.00202,"37":0.00606,"39":0.00404,"40":0.00202,"43":0.00404,"47":0.00606,"49":0.01615,"50":0.00202,"53":0.00202,"55":0.03432,"57":0.00404,"58":0.00606,"63":0.01817,"64":0.00404,"65":0.00606,"66":0.00202,"67":0.00202,"68":0.00404,"69":0.01211,"70":0.0101,"71":0.00404,"72":0.0101,"73":0.02221,"74":0.01615,"75":0.00606,"76":0.00404,"77":0.03029,"78":0.00404,"79":0.02019,"80":0.01615,"81":0.0101,"83":0.01615,"84":0.00808,"85":0.00606,"86":0.03029,"87":0.0424,"88":0.01817,"89":0.01413,"90":0.04442,"91":0.04038,"92":0.02625,"93":0.01413,"94":0.0323,"95":0.03836,"96":0.1272,"97":0.22613,"98":2.16841,"99":7.46424,"100":0.07672,"101":0.02221,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 34 35 36 38 41 42 44 45 46 48 51 52 54 56 59 60 61 62 102 103"},F:{"28":0.00202,"36":0.00202,"42":0.00202,"67":0.00404,"68":0.00404,"73":0.00202,"78":0.00202,"79":0.00808,"81":0.00606,"82":0.01211,"83":0.06057,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 69 70 71 72 74 75 76 77 80 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00202},B:{"12":0.02827,"13":0.0101,"14":0.00606,"15":0.0101,"16":0.02423,"17":0.01211,"18":0.17162,"84":0.0101,"85":0.00808,"86":0.00606,"89":0.01413,"90":0.02423,"91":0.00202,"92":0.03029,"93":0.00404,"94":0.00606,"95":0.00606,"96":0.03029,"97":0.04442,"98":0.62387,"99":1.25178,_:"79 80 81 83 87 88"},E:{"4":0,"11":0.00808,"12":0.00606,"13":0.00808,"14":0.05653,"15":0.02019,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 7.1","6.1":0.00404,"9.1":0.00404,"10.1":0.00404,"11.1":0.01211,"12.1":0.02019,"13.1":0.04644,"14.1":0.08682,"15.1":0.0424,"15.2-15.3":0.03836,"15.4":0.01211},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00176,"6.0-6.1":0,"7.0-7.1":0.01469,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03174,"10.0-10.2":0.00176,"10.3":0.04995,"11.0-11.2":0.03409,"11.3-11.4":0.02586,"12.0-12.1":0.05407,"12.2-12.5":1.18597,"13.0-13.1":0.0241,"13.2":0.00999,"13.3":0.07758,"13.4-13.7":0.17983,"14.0-14.4":0.75519,"14.5-14.8":0.80984,"15.0-15.1":0.65058,"15.2-15.3":1.75016,"15.4":0.21686},P:{"4":0.33772,"5.0-5.4":0.04094,"6.2-6.4":0.01023,"7.2-7.4":0.12281,"8.2":0.02005,"9.2":0.24562,"10.1":0.0802,"11.1-11.2":0.07164,"12.0":0.02047,"13.0":0.07164,"14.0":0.14328,"15.0":0.13304,"16.0":0.94153},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00229,"4.2-4.3":0.00366,"4.4":0,"4.4.3-4.4.4":0.06588},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07874,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":55.62377},S:{"2.5":0.40703},R:{_:"0"},M:{"0":0.11173},Q:{"10.4":0},O:{"0":1.07744},H:{"0":16.47941}}; +module.exports={C:{"21":0.00188,"31":0.00188,"34":0.02817,"36":0.00751,"37":0.00188,"38":0.00188,"40":0.00188,"42":0.00188,"43":0.00563,"44":0.00563,"45":0.00188,"47":0.00751,"48":0.00376,"49":0.00563,"52":0.00939,"56":0.00188,"58":0.00376,"60":0.00188,"65":0.00188,"68":0.00939,"72":0.00751,"78":0.00939,"79":0.00188,"82":0.00376,"84":0.00188,"88":0.00563,"89":0.00751,"91":0.02254,"92":0.00563,"93":0.00188,"94":0.00376,"95":0.01127,"96":0.01315,"97":0.01127,"98":0.02066,"99":0.29485,"100":1.30897,"101":0.13897,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 32 33 35 39 41 46 50 51 53 54 55 57 59 61 62 63 64 66 67 69 70 71 73 74 75 76 77 80 81 83 85 86 87 90 102 103 3.5 3.6"},D:{"11":0.00376,"32":0.01127,"33":0.00376,"38":0.00376,"40":0.00188,"43":0.00376,"49":0.01127,"50":0.00188,"52":0.00188,"55":0.00563,"57":0.01502,"58":0.00376,"63":0.01315,"64":0.00563,"65":0.00563,"68":0.00751,"69":0.00939,"70":0.01127,"71":0.00376,"72":0.00751,"73":0.00563,"74":0.01127,"75":0.00376,"76":0.01127,"77":0.00751,"78":0.00751,"79":0.02441,"80":0.01502,"81":0.00563,"83":0.01502,"84":0.03944,"85":0.02066,"86":0.02441,"87":0.04319,"88":0.09953,"89":0.01502,"90":0.01878,"91":0.02254,"92":0.01502,"93":0.01127,"94":0.01127,"95":0.01502,"96":0.05071,"97":0.06197,"98":0.06197,"99":0.12395,"100":1.59442,"101":6.36266,"102":0.58594,"103":0.01315,"104":0.00188,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 34 35 36 37 39 41 42 44 45 46 47 48 51 53 54 56 59 60 61 62 66 67"},F:{"36":0.00563,"42":0.00188,"79":0.00751,"81":0.00188,"82":0.00376,"83":0.00376,"84":0.00376,"85":0.25353,"86":0.42443,"87":0.02817,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03005,"13":0.01502,"14":0.00751,"15":0.01315,"16":0.02254,"17":0.00939,"18":0.10892,"84":0.01502,"85":0.00563,"89":0.01878,"90":0.01502,"91":0.00188,"92":0.01878,"93":0.00188,"94":0.00376,"95":0.00563,"96":0.01878,"97":0.0169,"98":0.02254,"99":0.04132,"100":0.17841,"101":1.14934,_:"79 80 81 83 86 87 88"},E:{"4":0,"11":0.00188,"13":0.00939,"14":0.02629,"15":0.01502,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00376,"11.1":0.01315,"12.1":0.00939,"13.1":0.06761,"14.1":0.05634,"15.1":0.02066,"15.2-15.3":0.01502,"15.4":0.10141,"15.5":0.0169},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00221,"5.0-5.1":0.00386,"6.0-6.1":0,"7.0-7.1":0.0353,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01655,"10.0-10.2":0.00386,"10.3":0.1026,"11.0-11.2":0.02206,"11.3-11.4":0.03641,"12.0-12.1":0.04413,"12.2-12.5":0.91234,"13.0-13.1":0.02151,"13.2":0.01048,"13.3":0.06068,"13.4-13.7":0.16051,"14.0-14.4":0.60124,"14.5-14.8":0.63985,"15.0-15.1":0.42859,"15.2-15.3":0.60841,"15.4":1.80426},P:{"4":0.27497,"5.0-5.4":0.04074,"6.2-6.4":0.02037,"7.2-7.4":0.12221,"8.2":0.04047,"9.2":0.09166,"10.1":0.05058,"11.1-11.2":0.07129,"12.0":0.02037,"13.0":0.0611,"14.0":0.16294,"15.0":0.10184,"16.0":0.58049},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00278,"4.2-4.3":0.00955,"4.4":0,"4.4.3-4.4.4":0.08513},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00417,"11":0.07095,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.1462},Q:{"10.4":0},O:{"0":0.97464},H:{"0":18.35456},L:{"0":56.76592},S:{"2.5":0.38986}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UA.js index 7ebfc7ab75e90b..1b1f2c5e3d24c4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UA.js @@ -1 +1 @@ -module.exports={C:{"26":0.0058,"30":0.0058,"48":0.01739,"52":0.28975,"55":0.10431,"56":0.01739,"60":0.03477,"66":0.0058,"68":0.16226,"72":0.02898,"78":0.10431,"79":0.0058,"80":0.01159,"81":0.05795,"82":0.01159,"83":0.0058,"84":0.01159,"86":0.01159,"87":0.01739,"88":0.02898,"89":0.01159,"90":0.01159,"91":0.12749,"92":0.01159,"93":0.05216,"94":0.12749,"95":0.12749,"96":0.05216,"97":0.88084,"98":1.77327,"99":0.0058,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 77 85 100 3.5 3.6"},D:{"33":0.01159,"41":0.01159,"49":0.30134,"57":0.01159,"59":0.15067,"61":0.07534,"63":0.02898,"64":0.01159,"65":0.01159,"66":0.0058,"67":0.01159,"69":0.03477,"70":0.01739,"71":0.02898,"72":0.0058,"73":0.01159,"74":0.08693,"76":0.02318,"77":0.01739,"78":0.01739,"79":0.06375,"80":0.03477,"81":0.01739,"83":0.08113,"84":0.08693,"85":0.07534,"86":0.19703,"87":0.24919,"88":0.10431,"89":0.08693,"90":0.08693,"91":0.05795,"92":0.10431,"93":1.48932,"94":0.08113,"95":0.06375,"96":0.29555,"97":0.70699,"98":5.52264,"99":19.37269,"100":0.02318,"101":0.01159,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 58 60 62 68 75 102 103"},F:{"36":0.08113,"46":0.0058,"58":0.01159,"60":0.0058,"62":0.0058,"67":0.02318,"68":0.01739,"69":0.0058,"71":0.02318,"72":0.01159,"73":0.01739,"74":0.02318,"75":0.01159,"76":0.0058,"77":0.19703,"78":0.12749,"79":0.18544,"80":0.12749,"81":0.09272,"82":0.20283,"83":1.41398,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 63 64 65 66 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.03477},B:{"18":0.02318,"85":0.0058,"90":0.0058,"92":0.01159,"95":0.0058,"97":0.01159,"98":0.19703,"99":0.97356,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 89 91 93 94 96"},E:{"4":0,"13":0.02898,"14":0.09272,"15":0.02318,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.1159,"11.1":0.01739,"12.1":0.01159,"13.1":0.09852,"14.1":0.22601,"15.1":0.11011,"15.2-15.3":0.08693,"15.4":0.07534},G:{"8":0,"3.2":0.00112,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00168,"6.0-6.1":0.00168,"7.0-7.1":0.01453,"8.1-8.4":0,"9.0-9.2":0.00112,"9.3":0.02793,"10.0-10.2":0.00223,"10.3":0.0352,"11.0-11.2":0.01341,"11.3-11.4":0.01564,"12.0-12.1":0.01453,"12.2-12.5":0.20113,"13.0-13.1":0.01173,"13.2":0.00279,"13.3":0.02905,"13.4-13.7":0.09609,"14.0-14.4":0.25979,"14.5-14.8":0.80394,"15.0-15.1":0.44527,"15.2-15.3":3.34818,"15.4":0.25588},P:{"4":0.011,_:"5.0-5.4 8.2 10.1 12.0","6.2-6.4":0.011,"7.2-7.4":0.08802,"9.2":0.03301,"11.1-11.2":0.04401,"13.0":0.04401,"14.0":0.07702,"15.0":0.04401,"16.0":1.05626},I:{"0":0,"3":0,"4":0.00196,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00118,"4.2-4.3":0.00588,"4.4":0,"4.4.3-4.4.4":0.03723},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0058,"9":0.01159,"11":0.20283,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":24.97726},S:{"2.5":0},R:{_:"0"},M:{"0":0.14294},Q:{"10.4":0},O:{"0":0.22281},H:{"0":5.26962}}; +module.exports={C:{"45":0.0123,"48":0.0123,"50":0.0123,"51":0.0123,"52":0.23989,"53":0.0123,"54":0.00615,"55":0.06766,"56":0.0123,"57":0.01845,"60":0.01845,"68":0.3137,"72":0.01845,"78":0.14147,"80":0.00615,"81":0.06766,"82":0.0246,"83":0.0123,"84":0.0123,"86":0.0123,"87":0.0123,"88":0.01845,"89":0.0123,"91":0.08611,"92":0.0123,"93":0.0123,"94":0.0246,"95":0.01845,"96":0.06151,"97":0.03076,"98":0.04306,"99":0.75042,"100":2.41734,"101":0.0123,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 85 90 102 103 3.5 3.6"},D:{"22":0.00615,"33":0.01845,"39":0.0123,"41":0.03076,"48":0.00615,"49":0.21529,"51":0.00615,"56":0.00615,"57":0.0123,"58":0.00615,"59":0.17838,"60":0.00615,"61":0.06766,"63":0.0246,"64":0.0123,"65":0.00615,"67":0.0123,"68":0.00615,"69":0.0123,"70":0.0123,"71":0.0123,"72":0.0123,"73":0.0123,"74":0.09227,"75":0.00615,"76":0.01845,"77":0.0123,"78":0.01845,"79":0.06151,"80":0.03691,"81":0.03076,"83":0.11072,"84":0.11687,"85":0.12917,"86":0.25219,"87":0.18453,"88":0.07381,"89":0.08611,"90":0.07381,"91":0.06151,"92":0.07996,"93":0.07996,"94":0.04921,"95":0.07381,"96":0.21529,"97":0.42442,"98":0.75657,"99":0.41827,"100":5.48054,"101":23.18927,"102":2.37429,"103":0.0123,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 40 42 43 44 45 46 47 50 52 53 54 55 62 66 104"},F:{"36":0.08611,"62":0.00615,"66":0.00615,"67":0.00615,"68":0.0123,"69":0.01845,"71":0.0123,"72":0.0123,"73":0.0123,"74":0.0123,"75":0.0123,"76":0.00615,"77":0.01845,"78":0.01845,"79":0.04921,"80":0.03076,"81":0.0246,"82":0.03076,"83":0.03691,"84":0.09227,"85":5.75119,"86":7.55958,"87":0.38751,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 63 64 65 70 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.03076},B:{"18":0.03076,"89":0.00615,"96":0.00615,"98":0.00615,"99":0.0123,"100":0.03691,"101":1.18099,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 90 91 92 93 94 95 97"},E:{"4":0,"13":0.04921,"14":0.09227,"15":0.01845,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.06766,"10.1":0.00615,"11.1":0.0123,"12.1":0.0246,"13.1":0.08611,"14.1":0.16608,"15.1":0.04306,"15.2-15.3":0.04306,"15.4":0.52899,"15.5":0.08611},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00325,"6.0-6.1":0.00217,"7.0-7.1":0.02004,"8.1-8.4":0.00054,"9.0-9.2":0.00217,"9.3":0.05417,"10.0-10.2":0.00596,"10.3":0.03738,"11.0-11.2":0.00921,"11.3-11.4":0.01788,"12.0-12.1":0.00758,"12.2-12.5":0.17878,"13.0-13.1":0.00867,"13.2":0.01138,"13.3":0.02384,"13.4-13.7":0.07205,"14.0-14.4":0.19449,"14.5-14.8":0.53145,"15.0-15.1":0.19936,"15.2-15.3":0.60459,"15.4":3.43303},P:{"4":0.02203,_:"5.0-5.4 6.2-6.4 8.2 10.1 12.0","7.2-7.4":0.06608,"9.2":0.03304,"11.1-11.2":0.03304,"13.0":0.03304,"14.0":0.04405,"15.0":0.02203,"16.0":0.39648},I:{"0":0,"3":0,"4":0.0031,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0031,"4.2-4.3":0.01138,"4.4":0,"4.4.3-4.4.4":0.04398},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00615,"9":0.00615,"11":0.2891,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":26.36315},S:{"2.5":0},R:{_:"0"},M:{"0":0.13853},Q:{"10.4":0},O:{"0":0.16931},H:{"0":5.32976}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UG.js index a9b0598e12533e..4099abe1eb07fa 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UG.js @@ -1 +1 @@ -module.exports={C:{"27":0.00281,"35":0.00281,"38":0.00281,"40":0.00281,"41":0.00281,"42":0.00844,"43":0.00563,"44":0.00844,"47":0.00844,"48":0.00563,"49":0.00281,"50":0.00563,"52":0.03658,"55":0.00281,"56":0.00844,"58":0.00563,"60":0.04502,"64":0.0197,"66":0.00563,"68":0.00281,"69":0.00844,"70":0.00281,"72":0.01126,"73":0.00281,"78":0.03095,"81":0.00281,"82":0.00563,"83":0.00563,"85":0.00563,"86":0.00563,"88":0.02533,"89":0.03095,"90":0.00844,"91":0.07316,"92":0.00563,"93":0.00563,"94":0.02533,"95":0.02251,"96":0.02533,"97":1.04681,"98":1.91352,"99":0.25045,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 36 37 39 45 46 51 53 54 57 59 61 62 63 65 67 71 74 75 76 77 79 80 84 87 100 3.5 3.6"},D:{"11":0.00281,"19":0.01407,"39":0.00281,"47":0.00844,"49":0.01126,"50":0.00563,"51":0.00281,"57":0.00281,"58":0.00563,"62":0.00844,"63":0.01407,"64":0.01688,"65":0.01688,"68":0.00281,"69":0.00281,"71":0.00563,"72":0.03095,"73":0.00281,"74":0.01688,"75":0.00844,"76":0.00844,"77":0.00844,"78":0.00563,"79":0.0394,"80":0.02251,"81":0.00844,"83":0.00563,"84":0.00281,"85":0.01688,"86":0.03377,"87":0.0394,"88":0.00844,"89":0.00844,"90":0.0197,"91":0.02533,"92":0.03377,"93":0.02533,"94":0.0394,"95":0.05065,"96":0.13507,"97":0.34894,"98":3.20233,"99":10.98304,"100":0.09005,"101":0.00563,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 48 52 53 54 55 56 59 60 61 66 67 70 102 103"},F:{"34":0.00563,"65":0.00563,"66":0.00563,"67":0.00281,"79":0.00563,"80":0.00563,"81":0.01126,"82":0.00844,"83":0.04502,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 68 69 70 71 72 73 74 75 76 77 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0394,"13":0.01688,"14":0.00563,"15":0.0197,"16":0.01407,"17":0.00563,"18":0.09286,"84":0.01126,"85":0.00844,"88":0.00281,"89":0.01688,"90":0.01407,"92":0.03095,"93":0.01126,"94":0.00281,"95":0.01126,"96":0.05909,"97":0.03377,"98":0.40803,"99":1.24379,_:"79 80 81 83 86 87 91"},E:{"4":0,"12":0.00281,"13":0.01126,"14":0.04784,"15":0.00563,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00281,"10.1":0.00281,"11.1":0.00563,"12.1":0.00844,"13.1":0.03658,"14.1":0.11537,"15.1":0.05347,"15.2-15.3":0.02251,"15.4":0.01688},G:{"8":0,"3.2":0,"4.0-4.1":0.00084,"4.2-4.3":0.00125,"5.0-5.1":0.00459,"6.0-6.1":0.00042,"7.0-7.1":0.01754,"8.1-8.4":0.00125,"9.0-9.2":0.00084,"9.3":0.02923,"10.0-10.2":0.00376,"10.3":0.04468,"11.0-11.2":0.01629,"11.3-11.4":0.02338,"12.0-12.1":0.01253,"12.2-12.5":0.53909,"13.0-13.1":0.04009,"13.2":0.00793,"13.3":0.05679,"13.4-13.7":0.07224,"14.0-14.4":0.5441,"14.5-14.8":0.62803,"15.0-15.1":0.55537,"15.2-15.3":1.383,"15.4":0.19125},P:{"4":0.12426,"5.0-5.4":0.02048,"6.2-6.4":0.02064,"7.2-7.4":0.10355,"8.2":0.02029,"9.2":0.13461,"10.1":0.05014,"11.1-11.2":0.04142,"12.0":0.18724,"13.0":0.1139,"14.0":0.15532,"15.0":0.1139,"16.0":0.62129},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00104,"4.2-4.3":0.00156,"4.4":0,"4.4.3-4.4.4":0.0477},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01126,"10":0.00281,"11":0.31798,_:"6 7 9 5.5"},J:{"7":0,"10":0.00719},N:{"10":0.02879,"11":0.04426},L:{"0":52.92634},S:{"2.5":0.25148},R:{_:"0"},M:{"0":0.15807},Q:{"10.4":0},O:{"0":0.93405},H:{"0":15.89696}}; +module.exports={C:{"34":0.00265,"35":0.00265,"36":0.0053,"37":0.00265,"42":0.0053,"43":0.0053,"47":0.0106,"48":0.0053,"49":0.00265,"50":0.0053,"52":0.02916,"56":0.0053,"58":0.0053,"60":0.02121,"64":0.00795,"66":0.00265,"68":0.0053,"69":0.0053,"72":0.02121,"73":0.0053,"78":0.02121,"85":0.0053,"86":0.00265,"88":0.0106,"89":0.0053,"91":0.07158,"92":0.0053,"93":0.00795,"94":0.01326,"95":0.0053,"96":0.00795,"97":0.02121,"98":0.06362,"99":0.55671,"100":2.10489,"101":0.27836,"102":0.00265,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 38 39 40 41 44 45 46 51 53 54 55 57 59 61 62 63 65 67 70 71 74 75 76 77 79 80 81 82 83 84 87 90 103 3.5 3.6"},D:{"11":0.00265,"19":0.00795,"38":0.00265,"39":0.01856,"47":0.0106,"49":0.0053,"50":0.00265,"53":0.00265,"55":0.00265,"56":0.01326,"57":0.00265,"58":0.0053,"62":0.00265,"63":0.00795,"64":0.02121,"65":0.0106,"66":0.0053,"67":0.00265,"68":0.0053,"69":0.00265,"70":0.00795,"72":0.01856,"73":0.00265,"74":0.01326,"75":0.01591,"76":0.01326,"77":0.0053,"78":0.00265,"79":0.04507,"80":0.02651,"81":0.01591,"83":0.0106,"84":0.00795,"85":0.0053,"86":0.02386,"87":0.05302,"88":0.0106,"89":0.0106,"90":0.02121,"91":0.03977,"92":0.03711,"93":0.02121,"94":0.06628,"95":0.07688,"96":0.09279,"97":0.06893,"98":0.09279,"99":0.17497,"100":2.36999,"101":9.24669,"102":0.93315,"103":0.0053,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 48 51 52 54 59 60 61 71 104"},F:{"28":0.00265,"65":0.00265,"69":0.0106,"79":0.0053,"81":0.01591,"82":0.00795,"83":0.0053,"84":0.0053,"85":0.31812,"86":0.40295,"87":0.05832,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 70 71 72 73 74 75 76 77 78 80 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.02651,"13":0.0106,"14":0.0053,"15":0.0053,"16":0.01856,"17":0.0053,"18":0.07158,"84":0.00795,"85":0.00795,"88":0.00265,"89":0.01326,"90":0.00795,"92":0.02386,"95":0.0053,"96":0.02121,"97":0.01326,"98":0.02651,"99":0.03181,"100":0.1352,"101":1.50577,_:"79 80 81 83 86 87 91 93 94"},E:{"4":0,"10":0.00265,"12":0.0053,"13":0.01326,"14":0.03181,"15":0.0053,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02121,"11.1":0.00795,"12.1":0.0053,"13.1":0.03181,"14.1":0.07688,"15.1":0.02651,"15.2-15.3":0.01326,"15.4":0.10869,"15.5":0.0106},G:{"8":0.00178,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00089,"5.0-5.1":0.00266,"6.0-6.1":0,"7.0-7.1":0.0253,"8.1-8.4":0.00044,"9.0-9.2":0.00044,"9.3":0.0293,"10.0-10.2":0.00266,"10.3":0.05105,"11.0-11.2":0.01065,"11.3-11.4":0.00888,"12.0-12.1":0.01731,"12.2-12.5":0.5429,"13.0-13.1":0.04217,"13.2":0.00843,"13.3":0.06082,"13.4-13.7":0.08212,"14.0-14.4":0.54734,"14.5-14.8":0.57353,"15.0-15.1":0.3609,"15.2-15.3":0.53225,"15.4":1.53637},P:{"4":0.09391,"5.0-5.4":0.01021,"6.2-6.4":0.01051,"7.2-7.4":0.14608,"8.2":0.04047,"9.2":0.05217,"10.1":0.13125,"11.1-11.2":0.04174,"12.0":0.02087,"13.0":0.05217,"14.0":0.15651,"15.0":0.08347,"16.0":0.56344},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00053,"4.2-4.3":0.0024,"4.4":0,"4.4.3-4.4.4":0.0485},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00552,"11":0.12968,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.10287},Q:{"10.4":0.00735},O:{"0":0.82298},H:{"0":16.73761},L:{"0":54.34323},S:{"2.5":0.1984}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/US.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/US.js index 0b20b4dbb5f031..0af12cfbfdf04d 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/US.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/US.js @@ -1 +1 @@ -module.exports={C:{"2":0.00951,"3":0.00476,"4":0.03329,"11":0.01427,"17":0.00476,"38":0.00951,"43":0.00476,"44":0.01902,"45":0.00476,"48":0.00476,"51":0.00951,"52":0.03805,"53":0.00476,"54":0.00951,"55":0.01427,"56":0.00476,"57":0.00476,"59":0.00476,"76":0.00476,"78":0.09988,"79":0.00476,"80":0.00951,"81":0.00476,"82":0.00951,"83":0.00951,"84":0.00951,"85":0.00476,"86":0.00951,"87":0.01427,"88":0.01427,"89":0.01427,"90":0.00951,"91":0.09512,"92":0.00476,"93":0.01427,"94":0.08085,"95":0.02378,"96":0.03805,"97":0.94169,"98":1.36973,"99":0.00476,_:"5 6 7 8 9 10 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 50 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 100 3.5 3.6"},D:{"33":0.00476,"35":0.01427,"38":0.00476,"40":0.02378,"43":0.01427,"46":0.02378,"47":0.00951,"48":0.05707,"49":0.05707,"51":0.00476,"52":0.00476,"56":0.09988,"58":0.00951,"59":0.00951,"60":0.0428,"61":0.01427,"63":0.00951,"64":0.01902,"65":0.01427,"66":0.05232,"67":0.01902,"68":0.00951,"69":0.01427,"70":0.02378,"71":0.00476,"72":0.15219,"73":0.00476,"74":0.01427,"75":0.01902,"76":0.27585,"77":0.01427,"78":0.06658,"79":0.41853,"80":0.07134,"81":0.06658,"83":0.33768,"84":0.12366,"85":0.08561,"86":0.07134,"87":0.13792,"88":0.03805,"89":0.09036,"90":0.08561,"91":0.17597,"92":0.13317,"93":0.37572,"94":0.28536,"95":0.08085,"96":0.76572,"97":1.05583,"98":7.52875,"99":14.52007,"100":0.02854,"101":0.04756,"102":0.02378,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 36 37 39 41 42 44 45 50 53 54 55 57 62 103"},F:{"80":0.00476,"82":0.00951,"83":0.13792,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00951,"15":0.1189,"17":0.00951,"18":0.02378,"84":0.00476,"85":0.00951,"86":0.00476,"87":0.02378,"90":0.00476,"91":0.00476,"92":0.00951,"93":0.00476,"94":0.00951,"95":0.02854,"96":0.02854,"97":0.10463,"98":1.31741,"99":4.18052,_:"13 14 16 79 80 81 83 88 89"},E:{"4":0,"8":0.00476,"9":0.00951,"12":0.00951,"13":0.07134,"14":0.37097,"15":0.19024,_:"0 5 6 7 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.05232,"10.1":0.02378,"11.1":0.06183,"12.1":0.12366,"13.1":1.64082,"14.1":1.34119,"15.1":0.37572,"15.2-15.3":0.49462,"15.4":0.24731},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00561,"7.0-7.1":0.00841,"8.1-8.4":0.00841,"9.0-9.2":0.01402,"9.3":0.07573,"10.0-10.2":0.01402,"10.3":0.09817,"11.0-11.2":0.03927,"11.3-11.4":0.04488,"12.0-12.1":0.03927,"12.2-12.5":0.5161,"13.0-13.1":0.03927,"13.2":0.01963,"13.3":0.09817,"13.4-13.7":0.30293,"14.0-14.4":1.00975,"14.5-14.8":3.85109,"15.0-15.1":1.60158,"15.2-15.3":19.14886,"15.4":1.0939},P:{"4":0.03229,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.02152,"12.0":0.01076,"13.0":0.04305,"14.0":0.07533,"15.0":0.05381,"16.0":1.80801},I:{"0":0,"3":0,"4":0.01346,"2.1":0,"2.2":0.00104,"2.3":0.00829,"4.1":0.00207,"4.2-4.3":0.02693,"4.4":0,"4.4.3-4.4.4":0.03211},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.0049,"8":0.01959,"9":0.07838,"11":0.387,_:"6 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":22.10828},S:{"2.5":0.00524},R:{_:"0"},M:{"0":0.4509},Q:{"10.4":0.00524},O:{"0":0.10486},H:{"0":0.18862}}; +module.exports={C:{"2":0.0046,"4":0.03682,"11":0.03221,"38":0.0046,"43":0.0046,"44":0.02301,"45":0.0092,"48":0.0046,"51":0.02301,"52":0.05062,"53":0.02301,"54":0.01841,"55":0.02761,"56":0.01841,"57":0.01841,"58":0.0046,"59":0.0092,"78":0.06903,"79":0.0092,"80":0.0092,"81":0.0092,"82":0.0092,"83":0.0092,"84":0.0046,"85":0.0046,"86":0.0046,"88":0.0092,"89":0.0092,"90":0.0046,"91":0.09204,"93":0.01381,"94":0.09664,"95":0.0092,"96":0.0092,"97":0.01841,"98":0.03221,"99":0.47401,"100":1.74416,"101":0.0046,_:"3 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 50 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 87 92 102 103 3.5 3.6"},D:{"35":0.0092,"39":0.0046,"40":0.02761,"41":0.0092,"42":0.0092,"43":0.01381,"44":0.0092,"45":0.0092,"46":0.0092,"47":0.01381,"48":0.06443,"49":0.05983,"50":0.0046,"51":0.0092,"52":0.01381,"53":0.0092,"54":0.0092,"55":0.0092,"56":0.08284,"57":0.0092,"58":0.01381,"59":0.01381,"60":0.01841,"61":0.03682,"62":0.02761,"63":0.01841,"64":0.01381,"65":0.01841,"66":0.06443,"67":0.01841,"68":0.0092,"69":0.01381,"70":0.0092,"71":0.0046,"72":0.0092,"73":0.0046,"74":0.01841,"75":0.01841,"76":0.28532,"77":0.0092,"78":0.02301,"79":0.43259,"80":0.06443,"81":0.06903,"83":0.37736,"84":0.15647,"85":0.10585,"86":0.10585,"87":0.13806,"88":0.02301,"89":0.07823,"90":0.05062,"91":0.10585,"92":0.06903,"93":0.13806,"94":0.10124,"95":0.05522,"96":0.28993,"97":0.25311,"98":0.451,"99":0.6949,"100":5.73869,"101":14.33983,"102":0.67649,"103":0.02761,"104":0.02301,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38"},F:{"71":0.0046,"85":0.25771,"86":0.2209,"87":0.0092,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01381,"15":0.28532,"17":0.0046,"18":0.02301,"84":0.0092,"85":0.0092,"86":0.0092,"87":0.05062,"92":0.0046,"94":0.0046,"95":0.01381,"96":0.0092,"97":0.02761,"98":0.02761,"99":0.09664,"100":0.40498,"101":4.89653,_:"13 14 16 79 80 81 83 88 89 90 91 93"},E:{"4":0,"8":0.0046,"9":0.0092,"12":0.0092,"13":0.05522,"14":0.26692,"15":0.10585,_:"0 5 6 7 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.05522,"10.1":0.01841,"11.1":0.04602,"12.1":0.10124,"13.1":0.74092,"14.1":0.90199,"15.1":0.17948,"15.2-15.3":0.20249,"15.4":3.25822,"15.5":0.28993},G:{"8":0,"3.2":0.0115,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00288,"7.0-7.1":0.00863,"8.1-8.4":0.00575,"9.0-9.2":0.02013,"9.3":0.07475,"10.0-10.2":0.023,"10.3":0.09488,"11.0-11.2":0.02875,"11.3-11.4":0.03738,"12.0-12.1":0.03163,"12.2-12.5":0.45426,"13.0-13.1":0.03163,"13.2":0.01725,"13.3":0.07763,"13.4-13.7":0.23288,"14.0-14.4":0.79351,"14.5-14.8":2.58754,"15.0-15.1":0.76764,"15.2-15.3":2.18503,"15.4":21.25233},P:{"4":0.03239,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1 12.0","11.1-11.2":0.02159,"13.0":0.03239,"14.0":0.05398,"15.0":0.03239,"16.0":0.69094},I:{"0":0,"3":0,"4":0.01188,"2.1":0,"2.2":0.0054,"2.3":0,"4.1":0.00108,"4.2-4.3":0.02699,"4.4":0,"4.4.3-4.4.4":0.03023},A:{"8":0.02321,"9":0.09285,"10":0.00464,"11":1.9778,_:"6 7 5.5"},K:{_:"0 10 11 12 11.1 11.5 12.1"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.45343},Q:{"10.4":0.0108},O:{"0":0.11336},H:{"0":0.22997},L:{"0":23.13123},S:{"2.5":0.0054}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UY.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UY.js index 48a8029e900d2c..888ac4326a55ef 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UY.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UY.js @@ -1 +1 @@ -module.exports={C:{"50":0.00462,"52":0.10162,"57":0.00924,"61":0.01848,"63":0.00462,"65":0.01386,"66":0.01848,"68":0.01386,"73":0.03233,"78":0.02771,"81":0.00462,"83":0.00924,"84":0.00462,"85":0.01386,"86":0.01848,"88":0.02771,"89":0.00924,"90":0.04157,"91":0.11548,"92":0.00462,"93":0.00462,"94":0.01848,"95":0.03233,"96":0.04619,"97":0.73442,"98":1.3118,"99":0.00924,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 55 56 58 59 60 62 64 67 69 70 71 72 74 75 76 77 79 80 82 87 100 3.5 3.6"},D:{"22":0.00924,"36":0.00924,"38":0.02771,"43":0.01386,"47":0.00924,"48":0.0231,"49":0.13857,"52":0.00462,"53":0.00924,"54":0.00462,"55":0.00462,"58":0.00924,"62":0.04157,"63":0.00924,"65":0.01848,"66":0.0231,"67":0.00924,"68":0.00924,"69":0.01386,"70":0.03233,"71":0.01848,"72":0.00462,"73":0.01386,"74":0.01386,"75":0.01386,"76":0.00924,"77":0.00924,"78":0.00924,"79":0.06467,"80":0.12009,"81":0.02771,"83":0.03233,"84":0.02771,"85":0.03695,"86":0.90532,"87":0.08314,"88":0.04157,"89":0.06005,"90":0.06467,"91":0.09238,"92":0.06929,"93":0.08314,"94":0.08314,"95":0.11548,"96":0.2679,"97":0.41109,"98":6.94236,"99":24.18508,"100":0.23095,"101":0.00462,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 37 39 40 41 42 44 45 46 50 51 56 57 59 60 61 64 102 103"},F:{"69":0.00924,"70":0.00924,"79":0.00462,"81":0.00462,"82":0.00462,"83":1.40418,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 71 72 73 74 75 76 77 78 80 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00462,"16":0.00462,"18":0.00924,"80":0.00462,"92":0.01386,"95":0.00924,"96":0.01848,"97":0.03695,"98":0.51733,"99":2.17555,_:"12 13 15 17 79 81 83 84 85 86 87 88 89 90 91 93 94"},E:{"4":0,"13":0.0231,"14":0.06005,"15":0.05543,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00924,"11.1":0.01848,"12.1":0.04619,"13.1":0.10624,"14.1":0.23557,"15.1":0.11548,"15.2-15.3":0.06005,"15.4":0.06005},G:{"8":0,"3.2":0.00139,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0326,"6.0-6.1":0,"7.0-7.1":0.0111,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01803,"10.0-10.2":0.00069,"10.3":0.03468,"11.0-11.2":0.01249,"11.3-11.4":0.00694,"12.0-12.1":0.00971,"12.2-12.5":0.44184,"13.0-13.1":0.00694,"13.2":0.00277,"13.3":0.03052,"13.4-13.7":0.11029,"14.0-14.4":0.30381,"14.5-14.8":1.07096,"15.0-15.1":0.45363,"15.2-15.3":4.10142,"15.4":0.28092},P:{"4":0.04169,"5.0-5.4":0.02048,"6.2-6.4":0.02064,"7.2-7.4":0.26056,"8.2":0.02029,"9.2":0.03127,"10.1":0.02084,"11.1-11.2":0.08338,"12.0":0.0938,"13.0":0.06253,"14.0":0.10422,"15.0":0.12507,"16.0":1.32365},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00234,"4.2-4.3":0.00585,"4.4":0,"4.4.3-4.4.4":0.04562},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01386,"11":0.15705,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":45.06289},S:{"2.5":0},R:{_:"0"},M:{"0":0.24215},Q:{"10.4":0},O:{"0":0.01614},H:{"0":0.13245}}; +module.exports={C:{"33":0.00469,"40":0.00469,"43":0.01874,"45":0.00469,"48":0.00469,"52":0.08903,"57":0.01406,"61":0.02812,"62":0.00469,"66":0.02812,"68":0.01874,"72":0.00469,"73":0.03749,"78":0.04217,"83":0.01406,"86":0.01406,"88":0.02343,"89":0.01406,"90":0.04686,"91":0.13589,"92":0.00469,"94":0.01406,"95":0.01406,"96":0.01874,"97":0.02343,"98":0.02343,"99":0.37019,"100":1.78537,"101":0.00937,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 41 42 44 46 47 49 50 51 53 54 55 56 58 59 60 63 64 65 67 69 70 71 74 75 76 77 79 80 81 82 84 85 87 93 102 103 3.5 3.6"},D:{"22":0.00469,"36":0.00937,"38":0.14995,"43":0.00937,"47":0.00937,"48":0.02343,"49":0.15932,"52":0.00469,"53":0.00469,"55":0.00469,"58":0.00469,"62":0.01874,"63":0.00937,"65":0.01406,"66":0.00937,"68":0.00937,"69":0.00937,"70":0.01406,"71":0.02812,"72":0.00469,"73":0.01874,"74":0.01406,"75":0.01406,"76":0.01874,"77":0.00937,"78":0.01874,"79":0.05623,"80":0.14058,"81":0.04217,"83":0.01874,"84":0.01406,"85":0.0328,"86":0.92783,"87":0.06092,"88":0.03749,"89":0.05155,"90":0.04217,"91":0.08435,"92":0.09372,"93":0.11715,"94":0.04217,"95":0.07966,"96":0.11246,"97":0.09841,"98":0.29522,"99":0.31865,"100":5.41233,"101":24.3016,"102":2.04778,"103":0.00469,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 37 39 40 41 42 44 45 46 50 51 54 56 57 59 60 61 64 67 104"},F:{"28":0.00469,"85":1.21836,"86":1.2371,"87":0.0328,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.00469,"18":0.00937,"80":0.00469,"91":0.00469,"92":0.01406,"95":0.00469,"97":0.00469,"98":0.00469,"99":0.03749,"100":0.13121,"101":2.71788,_:"12 13 15 16 17 79 81 83 84 85 86 87 88 89 90 93 94 96"},E:{"4":0,"13":0.01406,"14":0.04686,"15":0.01874,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01406,"12.1":0.04686,"13.1":0.09841,"14.1":0.17807,"15.1":0.07498,"15.2-15.3":0.02343,"15.4":0.57169,"15.5":0.05155},G:{"8":0,"3.2":0.00151,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0204,"6.0-6.1":0,"7.0-7.1":0.00604,"8.1-8.4":0,"9.0-9.2":0.00151,"9.3":0.02417,"10.0-10.2":0,"10.3":0.03173,"11.0-11.2":0.00302,"11.3-11.4":0.00755,"12.0-12.1":0.00604,"12.2-12.5":0.37393,"13.0-13.1":0.00604,"13.2":0.00227,"13.3":0.01737,"13.4-13.7":0.10198,"14.0-14.4":0.29688,"14.5-14.8":0.75089,"15.0-15.1":0.21454,"15.2-15.3":0.5016,"15.4":5.1837},P:{"4":0.01042,"5.0-5.4":0.01021,"6.2-6.4":0.01051,"7.2-7.4":0.23958,"8.2":0.04047,"9.2":0.04167,"10.1":0.13125,"11.1-11.2":0.16666,"12.0":0.07292,"13.0":0.0625,"14.0":0.09375,"15.0":0.09375,"16.0":0.60416},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00239,"4.2-4.3":0.00478,"4.4":0,"4.4.3-4.4.4":0.04065},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00469,"11":0.19681,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.25507},Q:{"10.4":0},O:{"0":0.01063},H:{"0":0.14087},L:{"0":44.5622},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UZ.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UZ.js index 75b02688ec1e31..04589f3d9f71fb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UZ.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/UZ.js @@ -1 +1 @@ -module.exports={C:{"30":0.00313,"50":0.00626,"51":0.00313,"52":0.09387,"55":0.02816,"68":0.00313,"70":0.00313,"72":0.00313,"73":0.01252,"78":0.00939,"82":0.00939,"88":0.01252,"90":0.01252,"91":0.03442,"94":0.00626,"95":0.00626,"96":0.00939,"97":0.25658,"98":0.53506,"99":0.00626,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 53 54 56 57 58 59 60 61 62 63 64 65 66 67 69 71 74 75 76 77 79 80 81 83 84 85 86 87 89 92 93 100 3.5 3.6"},D:{"34":0.00313,"38":0.00626,"39":0.00626,"43":0.00313,"47":0.00626,"49":0.12203,"50":0.00313,"51":0.00313,"56":0.01252,"62":0.01252,"63":0.00313,"64":0.00313,"66":0.03755,"67":0.00939,"68":0.00626,"69":0.00313,"70":0.00626,"71":0.01565,"72":0.00939,"73":0.01252,"74":0.07197,"76":0.00313,"77":0.00313,"78":0.00313,"79":0.03442,"80":0.0219,"81":0.01877,"83":0.0219,"84":0.0751,"85":0.02816,"86":0.11577,"87":0.04068,"88":0.01252,"89":0.07823,"90":0.0219,"91":0.0219,"92":0.02816,"93":0.0751,"94":0.03442,"95":0.02503,"96":0.13768,"97":0.1721,"98":4.32428,"99":15.15375,"100":0.20339,"101":0.02503,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 40 41 42 44 45 46 48 52 53 54 55 57 58 59 60 61 65 75 102 103"},F:{"28":0.00939,"36":0.00313,"42":0.00313,"51":0.00313,"52":0.00313,"53":0.05632,"54":0.00313,"55":0.00939,"56":0.00313,"57":0.0219,"58":0.01565,"60":0.01252,"62":0.01252,"64":0.0219,"65":0.01252,"66":0.00939,"67":0.00939,"68":0.01252,"70":0.0219,"72":0.02816,"73":0.01565,"74":0.00626,"75":0.00939,"76":0.01252,"77":0.05319,"78":0.04694,"79":0.06884,"80":0.06571,"81":0.02816,"82":0.03755,"83":0.03129,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 63 69 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00626,"15":0.00626,"16":0.00313,"17":0.00313,"18":0.03442,"83":0.01252,"84":0.01565,"85":0.00313,"89":0.00626,"90":0.00313,"92":0.01252,"93":0.00313,"94":0.00313,"95":0.00626,"96":0.01565,"97":0.01252,"98":0.27222,"99":0.96999,_:"13 14 79 80 81 86 87 88 91"},E:{"4":0,"6":0.00313,"13":0.00939,"14":0.03442,"15":0.01565,_:"0 5 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1 11.1","5.1":1.29541,"9.1":0.00313,"12.1":0.00626,"13.1":0.06884,"14.1":0.10952,"15.1":0.04381,"15.2-15.3":0.04381,"15.4":0.04694},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00254,"6.0-6.1":0.00204,"7.0-7.1":0.02849,"8.1-8.4":0.00102,"9.0-9.2":0.00712,"9.3":0.04935,"10.0-10.2":0.00305,"10.3":0.05495,"11.0-11.2":0.01323,"11.3-11.4":0.01119,"12.0-12.1":0.01425,"12.2-12.5":0.47874,"13.0-13.1":0.02493,"13.2":0.0056,"13.3":0.029,"13.4-13.7":0.06003,"14.0-14.4":0.35054,"14.5-14.8":0.65121,"15.0-15.1":0.53979,"15.2-15.3":2.43696,"15.4":0.32052},P:{"4":1.04821,"5.0-5.4":0.05039,"6.2-6.4":0.15118,"7.2-7.4":0.64505,"8.2":0.01008,"9.2":0.11087,"10.1":0.04032,"11.1-11.2":0.35276,"12.0":0.1411,"13.0":0.35276,"14.0":0.42331,"15.0":0.34268,"16.0":2.72131},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00272,"4.2-4.3":0.00741,"4.4":0,"4.4.3-4.4.4":0.0311},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00626,"9":0.00939,"11":0.1721,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":52.01574},S:{"2.5":0},R:{_:"0"},M:{"0":0.0481},Q:{"10.4":0},O:{"0":3.79279},H:{"0":0.40331}}; +module.exports={C:{"48":0.00328,"52":0.05246,"55":0.00984,"66":0.00656,"71":0.00328,"78":0.0164,"86":0.00656,"87":0.00656,"88":0.00656,"89":0.00984,"90":0.00328,"91":0.04919,"92":0.00656,"93":0.00984,"94":0.00984,"95":0.00656,"96":0.00656,"97":0.00656,"98":0.00984,"99":0.19018,"100":0.77057,"101":0.00656,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 67 68 69 70 72 73 74 75 76 77 79 80 81 82 83 84 85 102 103 3.5 3.6"},D:{"34":0.00656,"38":0.00984,"39":0.00328,"49":0.0787,"53":0.01967,"56":0.01312,"63":0.00328,"64":0.02295,"66":0.03935,"67":0.01312,"68":0.00656,"70":0.01312,"71":0.02951,"72":0.00984,"74":0.12788,"76":0.00328,"77":0.00328,"78":0.01967,"79":0.04263,"80":0.02295,"81":0.02623,"83":0.05902,"84":0.13116,"85":0.05246,"86":0.14756,"87":0.07214,"88":0.03935,"89":0.09837,"90":0.04591,"91":0.04263,"92":0.04591,"93":0.04263,"94":0.02951,"95":0.02623,"96":0.12132,"97":0.06558,"98":0.31151,"99":0.15411,"100":3.37081,"101":15.62116,"102":1.58376,"103":0.0164,"104":0.00328,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 40 41 42 43 44 45 46 47 48 50 51 52 54 55 57 58 59 60 61 62 65 69 73 75"},F:{"28":0.00328,"36":0.00328,"49":0.00984,"53":0.0623,"54":0.00328,"55":0.00656,"56":0.00328,"57":0.02295,"58":0.00984,"60":0.01312,"62":0.01312,"63":0.0164,"64":0.01967,"65":0.04919,"66":0.02295,"67":0.00656,"68":0.01312,"69":0.00328,"70":0.00656,"71":0.02623,"72":0.01967,"73":0.0164,"74":0.00656,"75":0.01312,"76":0.00656,"77":0.03607,"78":0.01967,"79":0.02623,"80":0.02295,"81":0.0164,"82":0.02623,"83":0.00656,"84":0.02623,"85":0.05574,"86":0.09181,"87":0.00656,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01312},B:{"12":0.00656,"14":0.00656,"15":0.00984,"16":0.00328,"17":0.00984,"18":0.05246,"84":0.02623,"85":0.01312,"86":0.02295,"87":0.00984,"88":0.00984,"89":0.0164,"90":0.01312,"91":0.0164,"92":0.01967,"93":0.00656,"94":0.00984,"95":0.00984,"96":0.02295,"97":0.01312,"98":0.01967,"99":0.01967,"100":0.06886,"101":1.15421,_:"13 79 80 81 83"},E:{"4":0,"13":0.01967,"14":0.04263,"15":0.02623,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.8591,"12.1":0.00656,"13.1":0.05246,"14.1":0.07214,"15.1":0.03935,"15.2-15.3":0.01967,"15.4":0.25248,"15.5":0.03935},G:{"8":0.00058,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00117,"7.0-7.1":0.021,"8.1-8.4":0.00058,"9.0-9.2":0.00292,"9.3":0.07466,"10.0-10.2":0.00292,"10.3":0.05891,"11.0-11.2":0.021,"11.3-11.4":0.01225,"12.0-12.1":0.0105,"12.2-12.5":0.4888,"13.0-13.1":0.05016,"13.2":0.02042,"13.3":0.04958,"13.4-13.7":0.13182,"14.0-14.4":0.37039,"14.5-14.8":0.53021,"15.0-15.1":0.30856,"15.2-15.3":0.60779,"15.4":3.06288},P:{"4":0.8117,"5.0-5.4":0.03044,"6.2-6.4":0.12175,"7.2-7.4":0.5479,"8.2":0.01015,"9.2":0.08117,"10.1":0.02029,"11.1-11.2":0.27395,"12.0":0.08117,"13.0":0.27395,"14.0":0.28409,"15.0":0.22322,"16.0":1.78574},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00232,"4.2-4.3":0.00493,"4.4":0,"4.4.3-4.4.4":0.03307},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00984,"8":0.00656,"9":0.00328,"11":0.15083,_:"7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.09409},Q:{"10.4":0},O:{"0":4.15358},H:{"0":0.32451},L:{"0":50.6092},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VA.js index ae07709b7fb6bd..703b73696481d4 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VA.js @@ -1 +1 @@ -module.exports={C:{"39":0.08733,"60":0.38812,"70":0.05822,"84":0.02911,"91":0.28139,"92":0.04852,"93":0.0097,"95":0.03881,"97":3.85209,"98":7.66537,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 94 96 99 100 3.5 3.6"},D:{"67":0.27168,"75":0.03881,"88":0.0097,"92":0.0097,"93":0.6598,"94":0.03881,"95":0.03881,"96":0.01941,"97":0.07762,"98":14.82618,"99":47.94252,"100":0.41723,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 76 77 78 79 80 81 83 84 85 86 87 89 90 91 101 102 103"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.0097,"17":0.21347,"18":2.581,"97":0.0097,"98":3.12437,"99":10.6733,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96"},E:{"4":0,"14":0.04852,"15":0.15525,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.3202,"12.1":0.02911,"13.1":0.12614,"14.1":0.50456,"15.1":0.04852,"15.2-15.3":0.38812,"15.4":0.17465},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.00866,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.47972,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.00866,"14.0-14.4":0.02165,"14.5-14.8":0.06494,"15.0-15.1":0.03896,"15.2-15.3":0.39341,"15.4":0.33713},P:{"4":0.48261,"5.0-5.4":0.08215,"6.2-6.4":0.04107,"7.2-7.4":0.25671,"8.2":0.12322,"9.2":0.1951,"10.1":0.02054,"11.1-11.2":0.47235,"12.0":0.03081,"13.0":0.11295,"14.0":0.25671,"15.0":0.17456,"16.0":0.54113},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.41723,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0329,_:"11"},L:{"0":1.0895},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0.01396},H:{"0":0.01322}}; +module.exports={C:{"39":0.058,"70":0.01933,"91":0.14501,"95":0.00967,"96":0.09667,"99":1.40172,"100":8.12995,"101":0.00967,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 97 98 102 103 3.5 3.6"},D:{"67":0.37701,"75":0.087,"93":0.86036,"95":0.31901,"97":0.00967,"98":0.029,"99":0.09667,"100":12.32543,"101":46.21793,"102":3.65413,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 94 96 103 104"},F:{"86":0.029,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.058,"18":3.56712,"100":0.43502,"101":14.80018,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99"},E:{"4":0,"13":0.01933,"14":0.09667,"15":0.116,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.21267,"12.1":0.116,"13.1":0.06767,"14.1":0.23201,"15.1":0.13534,"15.2-15.3":0.03867,"15.4":1.64339,"15.5":0.23201},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.37258,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.03037,"14.5-14.8":0.01298,"15.0-15.1":0.01298,"15.2-15.3":0.05623,"15.4":0.61509},P:{"4":0.26556,"5.0-5.4":0.17363,"6.2-6.4":0.02043,"7.2-7.4":0.32684,"8.2":0.01032,"9.2":0.21449,"10.1":0.01021,"11.1-11.2":0.38812,"12.0":0.03064,"13.0":0.21449,"14.0":0.31663,"15.0":0.12256,"16.0":0.0442},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.32868,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01411,_:"11"},L:{"0":1.81955},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0.01356}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VC.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VC.js index 0249f907f614af..3059e4a5c4702e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VC.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VC.js @@ -1 +1 @@ -module.exports={C:{"45":0.03579,"52":0.01591,"72":0.00398,"75":0.00795,"78":0.00398,"95":0.00398,"97":0.42952,"98":1.03004,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 96 99 100 3.5 3.6"},D:{"29":0.00795,"49":0.00398,"50":0.04375,"61":0.08352,"62":0.00398,"69":0.00398,"75":0.00795,"76":0.31418,"77":0.00398,"78":0.00398,"79":0.01193,"80":0.01591,"81":0.01193,"83":0.04375,"84":0.00398,"86":0.00398,"87":0.13522,"88":0.01193,"89":0.00398,"91":0.01193,"92":0.02784,"93":0.08352,"94":0.01591,"95":0.03977,"96":0.09545,"97":0.6403,"98":5.81437,"99":15.99152,"100":0.14317,"101":0.01193,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 63 64 65 66 67 68 70 71 72 73 74 85 90 102 103"},F:{"28":0.07159,"79":0.00795,"82":0.00795,"83":0.05568,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01193,"14":0.01193,"17":0.00398,"18":0.00795,"84":0.01193,"89":0.01193,"95":0.00795,"96":0.02386,"97":0.70393,"98":1.28855,"99":5.57973,_:"13 15 16 79 80 81 83 85 86 87 88 90 91 92 93 94"},E:{"4":0,"8":0.00398,"13":0.00398,"14":0.15908,"15":0.09545,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.04375,"13.1":0.09545,"14.1":0.37384,"15.1":0.22271,"15.2-15.3":0.17101,"15.4":0.11931},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.34284,"8.1-8.4":0.03022,"9.0-9.2":0,"9.3":0.02208,"10.0-10.2":0,"10.3":0.04068,"11.0-11.2":0.0093,"11.3-11.4":0.00581,"12.0-12.1":0.00465,"12.2-12.5":1.82812,"13.0-13.1":0,"13.2":0,"13.3":0.00349,"13.4-13.7":0.24755,"14.0-14.4":0.13714,"14.5-14.8":0.67755,"15.0-15.1":1.40741,"15.2-15.3":6.33507,"15.4":0.52647},P:{"4":0.21296,"5.0-5.4":0.02035,"6.2-6.4":0.01014,"7.2-7.4":0.11209,"8.2":0.02028,"9.2":0.01121,"10.1":0.03042,"11.1-11.2":0.08967,"12.0":0.03137,"13.0":0.05604,"14.0":0.1345,"15.0":0.03363,"16.0":3.54191},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01743,"4.2-4.3":0.01307,"4.4":0,"4.4.3-4.4.4":0.17428},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.02784,"11":0.03977,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":40.04809},S:{"2.5":0},R:{_:"0"},M:{"0":0.04216},Q:{"10.4":0},O:{"0":0.02409},H:{"0":0.05702}}; +module.exports={C:{"52":0.00342,"80":0.00342,"83":0.00342,"98":0.00684,"99":0.55078,"100":1.05025,"101":0.01368,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 84 85 86 87 88 89 90 91 92 93 94 95 96 97 102 103 3.5 3.6"},D:{"29":0.00684,"47":0.01368,"49":0.04105,"50":0.04789,"61":0.05474,"63":0.01026,"65":0.01368,"68":0.01368,"75":0.01026,"76":0.04105,"78":0.01026,"79":0.02053,"83":0.02053,"86":0.00684,"87":0.06158,"89":0.01711,"90":0.04105,"91":0.02053,"92":0.01368,"93":0.16421,"94":0.00684,"95":0.04789,"96":0.05816,"97":0.04105,"98":0.03421,"99":0.17105,"100":4.22836,"101":12.70902,"102":1.28288,"103":0.01026,"104":0.01368,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 51 52 53 54 55 56 57 58 59 60 62 64 66 67 69 70 71 72 73 74 77 80 81 84 85 88"},F:{"28":0.00342,"85":0.49262,"86":0.20526,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00684,"84":0.00684,"92":0.00684,"94":0.00342,"96":0.01026,"97":0.01026,"98":0.00684,"99":0.14368,"100":0.72867,"101":5.77465,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90 91 93 95"},E:{"4":0,"13":0.00684,"14":0.16421,"15":0.01711,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.01026,"13.1":0.15737,"14.1":0.24631,"15.1":0.02053,"15.2-15.3":0.05474,"15.4":1.5155,"15.5":0.11289},G:{"8":0.0021,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00946,"6.0-6.1":0,"7.0-7.1":0.03363,"8.1-8.4":0.02522,"9.0-9.2":0,"9.3":0.09144,"10.0-10.2":0,"10.3":0.08303,"11.0-11.2":0.00315,"11.3-11.4":0.0021,"12.0-12.1":0.00526,"12.2-12.5":2.65597,"13.0-13.1":0.00315,"13.2":0.00105,"13.3":0.00315,"13.4-13.7":0.02943,"14.0-14.4":0.06201,"14.5-14.8":0.57912,"15.0-15.1":0.43408,"15.2-15.3":0.97536,"15.4":5.50953},P:{"4":0.15603,"5.0-5.4":0.02027,"6.2-6.4":0.01043,"7.2-7.4":0.1226,"8.2":0.01022,"9.2":0.01115,"10.1":0.04171,"11.1-11.2":0.04458,"12.0":0.02229,"13.0":0.45695,"14.0":0.05573,"15.0":0.03344,"16.0":1.88352},I:{"0":0,"3":0,"4":0.00526,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01053,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.08949},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00684,"11":0.05816,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.15792},Q:{"10.4":0},O:{"0":0.0658},H:{"0":0.99049},L:{"0":52.37413},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VE.js index 37a226115f0a83..811272ee24df89 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VE.js @@ -1 +1 @@ -module.exports={C:{"23":0.00553,"27":0.23783,"35":0.00553,"36":0.00553,"40":0.00553,"43":0.01106,"45":0.01106,"47":0.01659,"48":0.00553,"52":0.45907,"55":0.00553,"56":0.01106,"57":0.00553,"60":0.02766,"62":0.01106,"63":0.01106,"64":0.01659,"65":0.01659,"66":0.01659,"67":0.01106,"68":0.02766,"69":0.01659,"70":0.01106,"71":0.01106,"72":0.03319,"78":0.07743,"79":0.01106,"80":0.00553,"81":0.01106,"83":0.00553,"84":0.00553,"87":0.00553,"88":0.03319,"89":0.02212,"90":0.02212,"91":0.09956,"92":0.01106,"93":0.01659,"94":0.02766,"95":0.02212,"96":0.0719,"97":1.05089,"98":2.18475,"99":0.01659,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 28 29 30 31 32 33 34 37 38 39 41 42 44 46 49 50 51 53 54 58 59 61 73 74 75 76 77 82 85 86 100 3.5 3.6"},D:{"43":0.01106,"45":0.01106,"46":0.00553,"47":0.01106,"48":0.01659,"49":0.66372,"51":0.02212,"58":0.01106,"63":0.02766,"64":0.01106,"65":0.02212,"66":0.01106,"67":0.04425,"68":0.01106,"69":0.03872,"70":0.03319,"71":0.02212,"72":0.01659,"73":0.02212,"74":0.01659,"75":0.05531,"76":0.03872,"77":0.02766,"78":0.02766,"79":0.06084,"80":0.03872,"81":0.04425,"83":0.06084,"84":0.04425,"85":0.0719,"86":0.07743,"87":0.11615,"88":0.08297,"89":0.13828,"90":0.09403,"91":0.12721,"92":0.14381,"93":0.12168,"94":0.09403,"95":0.07743,"96":0.5531,"97":0.99558,"98":7.12393,"99":25.7634,"100":0.30974,"101":0.02212,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 50 52 53 54 55 56 57 59 60 61 62 102 103"},F:{"53":0.00553,"57":0.01106,"68":0.01106,"78":0.01659,"79":0.00553,"80":0.02212,"82":0.01659,"83":0.61394,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00553,"18":0.01106,"85":0.00553,"92":0.01106,"96":0.01106,"97":0.02766,"98":0.34292,"99":1.39934,_:"13 14 15 16 17 79 80 81 83 84 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.01106,"14":0.03319,"15":0.02212,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01106,"12.1":0.01106,"13.1":0.02766,"14.1":0.0719,"15.1":0.02766,"15.2-15.3":0.03319,"15.4":0.01106},G:{"8":0.00021,"3.2":0.00021,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00274,"6.0-6.1":0.00337,"7.0-7.1":0.01074,"8.1-8.4":0.00042,"9.0-9.2":0.00084,"9.3":0.05874,"10.0-10.2":0.00189,"10.3":0.06317,"11.0-11.2":0.00421,"11.3-11.4":0.00505,"12.0-12.1":0.00674,"12.2-12.5":0.21034,"13.0-13.1":0.00653,"13.2":0.00358,"13.3":0.01326,"13.4-13.7":0.03011,"14.0-14.4":0.10949,"14.5-14.8":0.30404,"15.0-15.1":0.13328,"15.2-15.3":1.02097,"15.4":0.11496},P:{"4":0.10935,"5.0-5.4":0.02043,"6.2-6.4":0.15118,"7.2-7.4":0.12028,"8.2":0.01008,"9.2":0.11234,"10.1":0.04032,"11.1-11.2":0.05467,"12.0":0.01093,"13.0":0.05467,"14.0":0.06561,"15.0":0.06561,"16.0":1.06067},I:{"0":0,"3":0,"4":0.00039,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00337,"4.2-4.3":0.0047,"4.4":0,"4.4.3-4.4.4":0.03624},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00553,"11":0.09956,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.01341},N:{"10":0.02879,"11":0.04426},L:{"0":45.45167},S:{"2.5":0.00447},R:{_:"0"},M:{"0":0.1296},Q:{"10.4":0},O:{"0":0.03128},H:{"0":0.40194}}; +module.exports={C:{"26":0.00559,"27":0.18431,"36":0.00559,"43":0.01117,"45":0.01676,"47":0.01676,"52":0.50265,"55":0.01117,"56":0.01117,"57":0.00559,"60":0.03351,"61":0.01117,"62":0.01117,"63":0.01117,"64":0.01676,"65":0.02234,"66":0.01117,"67":0.01117,"68":0.02793,"69":0.01676,"70":0.01117,"71":0.00559,"72":0.02234,"78":0.09495,"79":0.01117,"80":0.02234,"81":0.01117,"84":0.00559,"85":0.00559,"88":0.03351,"89":0.03351,"90":0.02234,"91":0.11729,"93":0.01676,"94":0.01117,"95":0.01117,"96":0.01676,"97":0.02793,"98":0.07261,"99":0.75398,"100":2.61937,"101":0.03351,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 28 29 30 31 32 33 34 35 37 38 39 40 41 42 44 46 48 49 50 51 53 54 58 59 73 74 75 76 77 82 83 86 87 92 102 103 3.5 3.6"},D:{"41":0.02234,"42":0.01117,"47":0.01676,"48":0.00559,"49":0.44122,"51":0.01676,"53":0.00559,"56":0.00559,"58":0.01117,"60":0.00559,"61":0.00559,"63":0.01676,"64":0.01117,"65":0.02234,"66":0.01117,"67":0.01676,"68":0.01117,"69":0.02234,"70":0.01676,"71":0.01676,"72":0.02234,"73":0.01117,"74":0.01676,"75":0.05027,"76":0.05585,"77":0.02234,"78":0.01676,"79":0.06144,"80":0.05027,"81":0.0391,"83":0.04468,"84":0.08378,"85":0.07261,"86":0.09495,"87":0.10053,"88":0.07819,"89":0.07261,"90":0.08378,"91":0.13963,"92":0.11729,"93":0.08936,"94":0.16755,"95":0.05585,"96":0.29042,"97":0.4468,"98":0.28484,"99":0.4468,"100":6.17143,"101":24.46789,"102":2.5691,"103":0.02234,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 43 44 45 46 50 52 54 55 57 59 62 104"},F:{"53":0.00559,"57":0.01676,"78":0.01117,"79":0.01117,"80":0.02793,"82":0.01676,"83":0.01117,"84":0.04468,"85":0.95504,"86":1.07232,"87":0.07819,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00559,"15":0.00559,"18":0.02234,"84":0.00559,"89":0.00559,"92":0.01117,"96":0.00559,"97":0.00559,"98":0.02234,"99":0.02234,"100":0.05585,"101":1.79279,_:"13 14 16 17 79 80 81 83 85 86 87 88 90 91 93 94 95"},E:{"4":0,"13":0.00559,"14":0.02234,"15":0.01676,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01117,"12.1":0.01117,"13.1":0.06144,"14.1":0.06702,"15.1":0.01676,"15.2-15.3":0.01676,"15.4":0.14521,"15.5":0.02234},G:{"8":0,"3.2":0.00046,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00206,"6.0-6.1":0.00229,"7.0-7.1":0.00872,"8.1-8.4":0.00321,"9.0-9.2":0.00069,"9.3":0.0546,"10.0-10.2":0.00275,"10.3":0.05483,"11.0-11.2":0.00436,"11.3-11.4":0.00642,"12.0-12.1":0.00918,"12.2-12.5":0.20028,"13.0-13.1":0.01055,"13.2":0.00642,"13.3":0.01904,"13.4-13.7":0.04497,"14.0-14.4":0.11517,"14.5-14.8":0.2152,"15.0-15.1":0.07479,"15.2-15.3":0.18308,"15.4":1.27282},P:{"4":0.06624,"5.0-5.4":0.03044,"6.2-6.4":0.03112,"7.2-7.4":0.08832,"8.2":0.01015,"9.2":0.08117,"10.1":0.02029,"11.1-11.2":0.03312,"12.0":0.02075,"13.0":0.03312,"14.0":0.04416,"15.0":0.03312,"16.0":0.43056},I:{"0":0,"3":0,"4":0.00052,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00416,"4.2-4.3":0.00448,"4.4":0,"4.4.3-4.4.4":0.04383},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12287,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00883},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.17222},Q:{"10.4":0},O:{"0":0.03091},H:{"0":0.40554},L:{"0":47.76212},S:{"2.5":0.00442}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VG.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VG.js index 13f4e504402ae4..b2f92b624423d7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VG.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VG.js @@ -1 +1 @@ -module.exports={C:{"87":0.02714,"91":0.01551,"96":0.01163,"97":0.55053,"98":0.84131,"99":0.00775,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 88 89 90 92 93 94 95 100 3.5 3.6"},D:{"49":0.00775,"50":0.03102,"65":0.01939,"76":0.10856,"80":0.00775,"84":0.01551,"87":0.02714,"90":0.07366,"91":0.01551,"92":0.01551,"93":0.0504,"94":0.12019,"95":0.03489,"96":0.1008,"97":0.1512,"98":4.74157,"99":11.92178,"100":0.10468,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 77 78 79 81 83 85 86 88 89 101 102 103"},F:{"83":0.1512,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00775,"16":0.01551,"18":0.27914,"89":0.01551,"92":0.00775,"95":0.00775,"96":0.01163,"97":0.01163,"98":2.52005,"99":6.34277,_:"12 13 14 17 79 80 81 83 84 85 86 87 88 90 91 93 94"},E:{"4":0,"13":0.01163,"14":0.1357,"15":0.1512,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00775,"12.1":0.09693,"13.1":0.30241,"14.1":1.7369,"15.1":1.88422,"15.2-15.3":1.83382,"15.4":0.16671},G:{"8":0,"3.2":0,"4.0-4.1":0.00568,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06527,"10.0-10.2":0,"10.3":0.05676,"11.0-11.2":0.01703,"11.3-11.4":0.00851,"12.0-12.1":0,"12.2-12.5":0.23555,"13.0-13.1":0,"13.2":0,"13.3":0.06243,"13.4-13.7":0.08798,"14.0-14.4":0.38879,"14.5-14.8":4.10645,"15.0-15.1":1.93545,"15.2-15.3":19.05087,"15.4":2.36398},P:{"4":0.03084,"5.0-5.4":0.02071,"6.2-6.4":0.2337,"7.2-7.4":0.07195,"8.2":0.03061,"9.2":0.0205,"10.1":0.01038,"11.1-11.2":0.08223,"12.0":0.03084,"13.0":0.23642,"14.0":0.09251,"15.0":0.02056,"16.0":3.20704},I:{"0":0,"3":0,"4":0.00525,"2.1":0,"2.2":0.00131,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01181},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.1008,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":29.12749},S:{"2.5":0},R:{_:"0"},M:{"0":0.13473},Q:{"10.4":0},O:{"0":0.00612},H:{"0":0.01739}}; +module.exports={C:{"52":0.00811,"78":0.15405,"91":0.02432,"95":0.02838,"98":0.00811,"99":0.14189,"100":2.20132,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 96 97 101 102 103 3.5 3.6"},D:{"76":0.03649,"77":0.01216,"80":0.01622,"90":0.01216,"91":0.01216,"92":0.01216,"93":0.03649,"94":0.03243,"96":0.00811,"97":0.02432,"98":0.12162,"99":0.27973,"100":5.88235,"101":11.29039,"102":0.74999,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 78 79 81 83 84 85 86 87 88 89 95 103 104"},F:{"85":0.16216,"86":0.08919,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00811,"15":0.02838,"16":0.06081,"18":0.03243,"89":0.00811,"90":0.00811,"96":0.00811,"98":0.11757,"99":0.01216,"100":0.16216,"101":5.31885,_:"13 14 17 79 80 81 83 84 85 86 87 88 91 92 93 94 95 97"},E:{"4":0,"13":0.34459,"14":0.11757,"15":0.03649,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.42567,"14.1":1.57701,"15.1":1.90133,"15.2-15.3":2.43645,"15.4":4.1594,"15.5":0.21081},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03622,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04829,"10.0-10.2":0,"10.3":0.07848,"11.0-11.2":0.00302,"11.3-11.4":0.01811,"12.0-12.1":0.00302,"12.2-12.5":0.2475,"13.0-13.1":0,"13.2":0.00905,"13.3":0.09357,"13.4-13.7":0.05735,"14.0-14.4":0.42256,"14.5-14.8":1.87737,"15.0-15.1":0.32296,"15.2-15.3":1.91359,"15.4":25.04573},P:{"4":0.04103,"5.0-5.4":0.02178,"6.2-6.4":0.01024,"7.2-7.4":0.31794,"8.2":0.02288,"9.2":0.01026,"10.1":0.02035,"11.1-11.2":0.09231,"12.0":0.02068,"13.0":0.06154,"14.0":0.10256,"15.0":0.04103,"16.0":1.50767},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02432,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":25.96388},S:{"2.5":0},R:{_:"0"},M:{"0":0.24375},Q:{"10.4":0},O:{"0":0.01784},H:{"0":0.00563}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VI.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VI.js index 1361dd311ca0d6..46a178fc6bcc66 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VI.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VI.js @@ -1 +1 @@ -module.exports={C:{"52":0.00488,"78":0.00488,"91":0.07806,"93":0.01952,"94":0.16101,"96":0.01952,"97":0.77576,"98":1.45882,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 92 95 99 100 3.5 3.6"},D:{"47":0.00976,"69":0.00488,"72":0.00976,"76":0.06831,"78":0.03415,"80":0.02927,"83":0.02927,"85":0.00976,"87":0.04391,"88":0.02927,"89":0.00488,"90":0.02927,"91":0.01464,"92":0.38544,"93":0.0244,"94":0.13173,"95":0.04879,"96":0.36105,"97":0.75137,"98":6.02557,"99":15.82748,"100":0.0927,"101":0.00976,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 75 77 79 81 84 86 102 103"},F:{"83":0.06343,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00976,"85":0.00976,"88":0.00976,"90":0.00976,"94":0.01464,"95":0.0244,"96":0.2781,"97":0.03415,"98":1.89305,"99":7.57709,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 89 91 92 93"},E:{"4":0,"11":0.00488,"12":0.00488,"13":0.03903,"14":0.40008,"15":0.44399,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00488,"11.1":0.0244,"12.1":0.0927,"13.1":0.90262,"14.1":2.10773,"15.1":0.50254,"15.2-15.3":0.43911,"15.4":0.3025},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01671,"6.0-6.1":0,"7.0-7.1":0.01949,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02506,"10.0-10.2":0,"10.3":0.08633,"11.0-11.2":0,"11.3-11.4":0.06405,"12.0-12.1":0,"12.2-12.5":0.84941,"13.0-13.1":0.02228,"13.2":0,"13.3":0.05013,"13.4-13.7":0.15596,"14.0-14.4":0.94131,"14.5-14.8":3.28901,"15.0-15.1":1.77957,"15.2-15.3":19.24668,"15.4":1.28664},P:{"4":0.05328,"5.0-5.4":0.01042,"6.2-6.4":0.15118,"7.2-7.4":0.09376,"8.2":0.01008,"9.2":0.03125,"10.1":0.01042,"11.1-11.2":0.11459,"12.0":0.03125,"13.0":0.02131,"14.0":0.13852,"15.0":0.03197,"16.0":3.45229},I:{"0":0,"3":0,"4":0.00114,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0091},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.32201,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":20.44761},S:{"2.5":0},R:{_:"0"},M:{"0":0.55307},Q:{"10.4":0},O:{"0":0.0973},H:{"0":0.12605}}; +module.exports={C:{"52":0.28031,"78":0.03383,"94":0.16432,"98":0.029,"99":0.85544,"100":1.86554,"101":0.00967,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 102 103 3.5 3.6"},D:{"47":0.0145,"49":0.00967,"68":0.00483,"72":0.0145,"75":0.00967,"76":0.20299,"78":0.00483,"79":0.00483,"80":0.02417,"83":0.0145,"84":0.00967,"85":0.0145,"87":0.00967,"88":0.02417,"89":0.00483,"90":0.0145,"92":0.21265,"93":0.04833,"94":0.02417,"95":0.08699,"96":0.05316,"97":0.91827,"98":0.20299,"99":0.38181,"100":6.40856,"101":14.32501,"102":0.76361,"103":0.00967,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 77 81 86 91 104"},F:{"85":0.13049,"86":0.23198,"87":0.00967,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.00483,"85":0.00967,"87":0.16432,"89":0.0435,"93":0.11599,"95":0.02417,"96":0.01933,"97":0.029,"98":0.00967,"99":0.19815,"100":1.36774,"101":9.33252,_:"12 13 14 15 16 17 79 80 81 83 84 86 88 90 91 92 94"},E:{"4":0,"13":0.0435,"14":0.28998,"15":0.06766,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00967,"12.1":0.03866,"13.1":0.5558,"14.1":0.74428,"15.1":0.4253,"15.2-15.3":0.11116,"15.4":3.74558,"15.5":0.28998},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01159,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04636,"10.0-10.2":0,"10.3":0.06374,"11.0-11.2":0.03477,"11.3-11.4":0.02608,"12.0-12.1":0.01159,"12.2-12.5":0.66931,"13.0-13.1":0.02318,"13.2":0,"13.3":0.01738,"13.4-13.7":0.13618,"14.0-14.4":0.54182,"14.5-14.8":2.5903,"15.0-15.1":0.70697,"15.2-15.3":1.47479,"15.4":22.61731},P:{"4":0.02141,"5.0-5.4":0.03044,"6.2-6.4":0.03112,"7.2-7.4":0.0107,"8.2":0.01015,"9.2":0.02053,"10.1":0.02029,"11.1-11.2":0.02141,"12.0":0.02053,"13.0":0.02141,"14.0":0.12844,"15.0":0.03211,"16.0":1.31648},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00418,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00098},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.02417,"11":0.20299,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.41853},Q:{"10.4":0},O:{"0":0.05684},H:{"0":0.00978},L:{"0":20.76175},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VN.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VN.js index 18484ae66041ea..8fef07a31cd64e 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VN.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VN.js @@ -1 +1 @@ -module.exports={C:{"51":0.01643,"52":0.06982,"53":0.01643,"54":0.00821,"55":0.02054,"56":0.01643,"57":0.01232,"58":0.00411,"59":0.00821,"67":0.01232,"68":0.00411,"71":0.00821,"77":0.00411,"78":0.02054,"79":0.02054,"80":0.01643,"81":0.02054,"82":0.01643,"83":0.01232,"84":0.02054,"86":0.00821,"87":0.00821,"88":0.01232,"89":0.00821,"90":0.00821,"91":0.01643,"92":0.02054,"93":0.03286,"94":0.01643,"96":0.00411,"97":0.19303,"98":0.37784,"99":0.00411,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 60 61 62 63 64 65 66 69 70 72 73 74 75 76 85 95 100 3.5 3.6"},D:{"33":0.00821,"34":0.00411,"38":0.01643,"39":0.00411,"40":0.00411,"41":0.01232,"42":0.00411,"43":0.00821,"44":0.00821,"45":0.00821,"46":0.00821,"47":0.00821,"48":0.01232,"49":0.04928,"50":0.01232,"51":0.00821,"52":0.00411,"53":0.01232,"54":0.00821,"55":0.00821,"56":0.01232,"57":0.06982,"58":0.01232,"59":0.00821,"60":0.00821,"61":0.00821,"62":0.00821,"63":0.01232,"64":0.00821,"65":0.01232,"67":0.00821,"68":0.01643,"69":0.01232,"70":0.01232,"71":0.01232,"72":0.01232,"73":0.00821,"74":0.02054,"75":0.02054,"76":0.02464,"77":0.49695,"78":0.02464,"79":0.08625,"80":0.06571,"81":0.03696,"83":0.11089,"84":0.16017,"85":0.14785,"86":0.21356,"87":0.26696,"88":0.03286,"89":0.06982,"90":0.03696,"91":0.06161,"92":0.06982,"93":0.66123,"94":0.03696,"95":0.04928,"96":0.14785,"97":0.1766,"98":4.17682,"99":16.73603,"100":0.18892,"101":0.00821,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 36 37 66 102 103"},F:{"28":0.00411,"36":0.00821,"40":0.00411,"43":0.01232,"46":0.01643,"57":0.00411,"68":0.01232,"70":0.00411,"71":0.00821,"72":0.00821,"77":0.15607,"78":0.10268,"79":0.13964,"80":0.09857,"81":0.07803,"83":0.1766,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 44 45 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 69 73 74 75 76 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"16":0.00411,"17":0.00411,"18":0.04107,"83":0.00411,"84":0.00821,"85":0.00821,"86":0.01232,"87":0.00821,"89":0.00411,"90":0.00821,"92":0.00821,"94":0.00821,"95":0.00411,"96":0.02054,"97":0.01643,"98":0.3532,"99":1.51138,_:"12 13 14 15 79 80 81 88 91 93"},E:{"4":0,"13":0.0575,"14":0.09446,"15":0.04928,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.05339,"11.1":0.00821,"12.1":0.01643,"13.1":0.09035,"14.1":0.34088,"15.1":0.10268,"15.2-15.3":0.08214,"15.4":0.0575},G:{"8":0.00155,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0062,"6.0-6.1":0.00465,"7.0-7.1":0.02014,"8.1-8.4":0.01085,"9.0-9.2":0.03254,"9.3":0.12242,"10.0-10.2":0.03409,"10.3":0.1999,"11.0-11.2":0.07593,"11.3-11.4":0.11467,"12.0-12.1":0.09762,"12.2-12.5":1.61001,"13.0-13.1":0.06508,"13.2":0.03564,"13.3":0.19215,"13.4-13.7":0.69576,"14.0-14.4":1.4814,"14.5-14.8":3.39823,"15.0-15.1":1.08161,"15.2-15.3":5.71485,"15.4":0.49742},P:{"4":0.31253,"5.0-5.4":0.01042,"6.2-6.4":0.15118,"7.2-7.4":0.09376,"8.2":0.01008,"9.2":0.03125,"10.1":0.01042,"11.1-11.2":0.11459,"12.0":0.03125,"13.0":0.12501,"14.0":0.14585,"15.0":0.09376,"16.0":1.81266},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00082,"4.2-4.3":0.00219,"4.4":0,"4.4.3-4.4.4":0.02056},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02134,"9":0.0256,"10":0.00853,"11":0.27309,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":39.38234},S:{"2.5":0},R:{_:"0"},M:{"0":0.07072},Q:{"10.4":0},O:{"0":1.09021},H:{"0":0.30685}}; +module.exports={C:{"38":0.00592,"39":0.00296,"40":0.00592,"51":0.01183,"52":0.04141,"53":0.01183,"54":0.00592,"55":0.01479,"56":0.00887,"57":0.00887,"58":0.00296,"59":0.00296,"67":0.00592,"68":0.00592,"71":0.00592,"77":0.00296,"78":0.02366,"79":0.01775,"80":0.01183,"81":0.00887,"82":0.01183,"83":0.01479,"84":0.00887,"85":0.00592,"86":0.00296,"87":0.00296,"88":0.00592,"89":0.00592,"90":0.00296,"91":0.00887,"92":0.00296,"93":0.00296,"94":0.00592,"97":0.00887,"98":0.00592,"99":0.06803,"100":0.34904,"101":0.00592,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 41 42 43 44 45 46 47 48 49 50 60 61 62 63 64 65 66 69 70 72 73 74 75 76 95 96 102 103 3.5 3.6"},D:{"33":0.02071,"34":0.00592,"37":0.00296,"38":0.02071,"39":0.00887,"40":0.00887,"41":0.02071,"42":0.01183,"43":0.01479,"44":0.02366,"45":0.01479,"46":0.00887,"47":0.00887,"48":0.00592,"49":0.02958,"50":0.00592,"51":0.00592,"52":0.00296,"53":0.01183,"54":0.00592,"55":0.00592,"56":0.00887,"57":0.02366,"58":0.00887,"59":0.00592,"60":0.00592,"61":0.00592,"62":0.00592,"63":0.00887,"64":0.00592,"65":0.00887,"67":0.00592,"68":0.00592,"69":0.00296,"70":0.00592,"71":0.00592,"72":0.01183,"73":0.00592,"74":0.00887,"75":0.00887,"76":0.01775,"77":0.01479,"78":0.01479,"79":0.07987,"80":0.02071,"81":0.02662,"83":0.07987,"84":0.16565,"85":0.15677,"86":0.18931,"87":0.18635,"88":0.01479,"89":0.04437,"90":0.02366,"91":0.02958,"92":0.04437,"93":0.01775,"94":0.02366,"95":0.01775,"96":0.06212,"97":0.03845,"98":0.07691,"99":0.1124,"100":2.19779,"101":11.18716,"102":1.21574,"103":0.00592,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 36 66 104"},F:{"28":0.01479,"36":0.01183,"40":0.00296,"43":0.00296,"46":0.01775,"68":0.00887,"69":0.00592,"70":0.00887,"71":0.00887,"72":0.00296,"77":0.01479,"78":0.01183,"79":0.01183,"80":0.00887,"81":0.00887,"84":0.00296,"85":0.18635,"86":0.18635,"87":0.01183,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 73 74 75 76 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00592,"17":0.00296,"18":0.02958,"83":0.00296,"84":0.01479,"85":0.00887,"86":0.01183,"87":0.00296,"88":0.00296,"89":0.00592,"90":0.00592,"91":0.00592,"92":0.00592,"94":0.00592,"95":0.00296,"96":0.00887,"97":0.00592,"98":0.00887,"99":0.01183,"100":0.04437,"101":1.24828,_:"13 14 15 16 79 80 81 93"},E:{"4":0,"8":0.00296,"13":0.02662,"14":0.07099,"15":0.02662,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00592,"11.1":0.00296,"12.1":0.01183,"13.1":0.08282,"14.1":0.21298,"15.1":0.04437,"15.2-15.3":0.03845,"15.4":0.36975,"15.5":0.05029},G:{"8":0.00178,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00533,"6.0-6.1":0.00533,"7.0-7.1":0.01599,"8.1-8.4":0.01776,"9.0-9.2":0.01599,"9.3":0.07282,"10.0-10.2":0.0373,"10.3":0.1492,"11.0-11.2":0.06217,"11.3-11.4":0.09236,"12.0-12.1":0.07993,"12.2-12.5":1.43692,"13.0-13.1":0.05861,"13.2":0.03197,"13.3":0.17939,"13.4-13.7":0.60035,"14.0-14.4":1.56125,"14.5-14.8":3.16691,"15.0-15.1":0.88809,"15.2-15.3":1.6767,"15.4":7.60378},P:{"4":0.29766,"5.0-5.4":0.03044,"6.2-6.4":0.03112,"7.2-7.4":0.08211,"8.2":0.01015,"9.2":0.02053,"10.1":0.02029,"11.1-11.2":0.10264,"12.0":0.02053,"13.0":0.10264,"14.0":0.11291,"15.0":0.08211,"16.0":0.66717},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00148,"4.2-4.3":0.00198,"4.4":0,"4.4.3-4.4.4":0.02471},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01235,"9":0.01235,"10":0.00617,"11":0.18211,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.07042},Q:{"10.4":0},O:{"0":1.38727},H:{"0":0.34001},L:{"0":49.83089},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VU.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VU.js index d0402dcb7b7c61..5d5b159b902434 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VU.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/VU.js @@ -1 +1 @@ -module.exports={C:{"34":0.04963,"47":0.01909,"72":0.01909,"82":0.01527,"91":0.11836,"96":0.01909,"97":1.56156,"98":3.47438,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 92 93 94 95 99 100 3.5 3.6"},D:{"39":0.02291,"47":0.00764,"49":0.00764,"52":0.00764,"59":0.06491,"69":0.06109,"78":0.01909,"79":0.04963,"80":0.00764,"81":0.38944,"83":0.01909,"84":0.06872,"86":0.00764,"87":0.01145,"88":0.40089,"89":0.00764,"90":0.00764,"91":0.05345,"92":0.01145,"94":0.06109,"95":0.04582,"96":0.32071,"97":1.43939,"98":4.34107,"99":12.92775,"100":0.20999,"101":0.00764,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 48 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 85 93 102 103"},F:{"83":0.03054,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.03054,"13":0.02673,"14":0.01145,"15":0.03436,"16":0.01145,"17":0.07254,"18":0.15272,"81":0.01145,"84":0.03818,"85":0.00764,"89":0.01145,"91":0.01145,"92":0.11072,"93":0.01909,"95":0.00764,"96":0.06491,"97":0.02673,"98":1.00795,"99":2.7795,_:"79 80 83 86 87 88 90 94"},E:{"4":0,"13":0.00764,"14":0.06109,"15":0.03818,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00764,"12.1":0.01909,"13.1":0.34744,"14.1":0.40471,"15.1":0.19854,"15.2-15.3":0.12218,"15.4":0.19854},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0024,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05209,"10.0-10.2":0.0024,"10.3":0.00748,"11.0-11.2":0,"11.3-11.4":0.02003,"12.0-12.1":0.02965,"12.2-12.5":0.18325,"13.0-13.1":0.0024,"13.2":0,"13.3":0.11647,"13.4-13.7":0.23054,"14.0-14.4":0.15093,"14.5-14.8":0.46107,"15.0-15.1":0.19821,"15.2-15.3":1.10513,"15.4":0.10899},P:{"4":0.13276,"5.0-5.4":0.02043,"6.2-6.4":0.15118,"7.2-7.4":1.39912,"8.2":0.01008,"9.2":0.11234,"10.1":0.04032,"11.1-11.2":0.14298,"12.0":0.05106,"13.0":0.12255,"14.0":0.12255,"15.0":0.18383,"16.0":1.58295},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00116,"4.4":0,"4.4.3-4.4.4":0.0854},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.76742,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":58.75992},S:{"2.5":0.04946},R:{_:"0"},M:{"0":0.0742},Q:{"10.4":0.01237},O:{"0":0.76051},H:{"0":0.10537}}; +module.exports={C:{"34":0.04223,"38":0.00422,"52":0.00845,"54":0.00422,"72":0.00422,"88":0.0549,"91":0.06757,"92":0.01267,"95":0.00422,"98":0.01267,"99":0.50254,"100":3.02367,"101":0.04223,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 93 94 96 97 102 103 3.5 3.6"},D:{"31":0.00422,"37":0.06757,"52":0.01689,"59":0.08446,"63":0.00422,"65":0.00845,"67":0.02112,"69":0.0549,"70":0.00422,"74":0.00422,"75":0.00422,"76":0.00845,"77":0.02534,"79":0.00422,"81":0.35051,"84":0.05068,"85":0.00845,"86":0.00422,"87":0.02112,"88":0.30406,"89":0.01267,"90":0.03801,"91":0.01267,"92":0.02112,"94":0.21537,"96":0.12247,"97":0.05912,"98":0.07601,"99":0.09713,"100":4.19344,"101":15.25348,"102":1.26268,"103":0.04645,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 64 66 68 71 72 73 78 80 83 93 95 104"},F:{"85":0.22804,"86":0.03801,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01689,"13":0.01689,"14":0.01267,"15":0.01267,"16":0.03378,"17":0.03801,"18":0.22382,"80":0.01267,"84":0.05068,"85":0.00422,"89":0.00845,"90":0.02112,"92":0.01689,"94":0.06757,"95":0.05068,"96":0.04223,"97":0.01267,"98":0.04223,"99":0.05068,"100":0.32939,"101":5.46034,_:"79 81 83 86 87 88 91 93"},E:{"4":0,"13":0.03378,"14":0.24071,"15":0.01267,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02956,"12.1":0.01267,"13.1":0.26183,"14.1":0.16047,"15.1":0.03378,"15.2-15.3":0.19426,"15.4":1.03886,"15.5":0.2576},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00428,"8.1-8.4":0,"9.0-9.2":0.02285,"9.3":0.00828,"10.0-10.2":0,"10.3":0.03542,"11.0-11.2":0.002,"11.3-11.4":0.01028,"12.0-12.1":0.00628,"12.2-12.5":0.1434,"13.0-13.1":0.02085,"13.2":0.00428,"13.3":0.01457,"13.4-13.7":0.02514,"14.0-14.4":0.19768,"14.5-14.8":0.15826,"15.0-15.1":0.06656,"15.2-15.3":0.54761,"15.4":1.58657},P:{"4":0.0415,"5.0-5.4":0.03044,"6.2-6.4":0.03112,"7.2-7.4":0.50833,"8.2":0.01015,"9.2":0.08117,"10.1":0.02029,"11.1-11.2":0.13486,"12.0":0.02075,"13.0":0.10374,"14.0":0.18673,"15.0":0.3216,"16.0":0.48758},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00046,"4.4":0,"4.4.3-4.4.4":0.00532},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00866,"11":0.50232,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.13289},Q:{"10.4":0},O:{"0":1.06315},H:{"0":0.04923},L:{"0":57.21794},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/WF.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/WF.js index 147bfa199fdede..a344403eacd768 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/WF.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/WF.js @@ -1 +1 @@ -module.exports={C:{"78":0.06065,"88":0.08702,"91":0.20832,"92":0.03428,"94":0.00791,"96":0.07911,"97":0.76737,"98":2.01467,"99":0.00791,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 89 90 93 95 100 3.5 3.6"},D:{"90":0.01846,"96":0.11339,"97":0.02637,"98":1.78789,"99":2.17816,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 91 92 93 94 95 100 101 102 103"},F:{"83":0.02637,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.02637,"98":0.04483,"99":0.36654,_:"12 13 14 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.13185,"14.1":0.3138,"15.1":2.13597,"15.2-15.3":1.28949,"15.4":0.09493},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.01985,"12.2-12.5":0.30432,"13.0-13.1":0,"13.2":0,"13.3":0.00662,"13.4-13.7":0,"14.0-14.4":0.01985,"14.5-14.8":0.3374,"15.0-15.1":4.7765,"15.2-15.3":60.61264,"15.4":0.07939},P:{"4":0.05328,"5.0-5.4":0.01042,"6.2-6.4":0.15118,"7.2-7.4":0.09376,"8.2":0.01008,"9.2":0.03125,"10.1":0.01042,"11.1-11.2":0.11459,"12.0":0.03125,"13.0":0.02091,"14.0":0.13852,"15.0":0.03197,"16.0":0.50186},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.00791,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":6.16499},S:{"2.5":0},R:{_:"0"},M:{"0":0.50068},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{"60":0.11913,"78":0.16909,"91":0.11913,"92":0.04612,"99":2.15977,"100":6.36017,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 93 94 95 96 97 98 101 102 103 3.5 3.6"},D:{"67":0.02306,"87":0.04612,"91":0.02306,"96":0.36124,"98":0.07302,"99":0.11913,"100":0.69558,"101":5.61847,"102":0.23827,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 89 90 92 93 94 95 97 103 104"},F:{"85":0.02306,"86":0.04612,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.04612,"85":0.02306,"89":0.14219,"97":0.04612,"100":0.11913,"101":1.00687,_:"12 13 14 15 16 17 79 80 81 83 84 86 87 88 90 91 92 93 94 95 96 98 99"},E:{"4":0,"14":0.16909,"15":0.02306,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1","14.1":0.3843,"15.1":1.51414,"15.2-15.3":2.13671,"15.4":9.28853,"15.5":0.04612},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.16289,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.25552,"14.0-14.4":0.18844,"14.5-14.8":0.50784,"15.0-15.1":2.39547,"15.2-15.3":7.68466,"15.4":20.74155},P:{"4":0.02141,"5.0-5.4":0.0205,"6.2-6.4":0.03112,"7.2-7.4":0.0107,"8.2":0.01015,"9.2":0.02053,"10.1":0.02029,"11.1-11.2":0.0205,"12.0":0.02053,"13.0":0.10251,"14.0":0.12844,"15.0":0.03211,"16.0":0.48182},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04612,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":1.97024},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":25.70945},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/WS.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/WS.js index 21bfddc3e92b01..9b2d60b5740bcd 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/WS.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/WS.js @@ -1 +1 @@ -module.exports={C:{"59":0.00829,"91":0.02073,"95":0.00829,"97":0.80432,"98":1.22307,"99":0.01658,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 96 100 3.5 3.6"},D:{"33":0.02073,"38":0.00829,"40":0.01658,"58":0.00829,"63":0.02902,"67":0.01244,"71":0.01658,"79":0.01244,"80":0.04146,"81":0.02488,"87":0.02073,"88":0.00829,"89":0.00829,"90":0.00829,"91":0.04146,"92":0.01244,"93":0.01658,"94":0.29851,"95":0.11194,"96":0.08707,"97":0.24876,"98":5.35249,"99":15.00852,"100":0.14096,"101":0.00829,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 64 65 66 68 69 70 72 73 74 75 76 77 78 83 84 85 86 102 103"},F:{"28":0.00829,"82":0.00415,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00829,"13":0.00829,"14":0.01658,"15":0.02488,"16":0.05804,"17":0.03731,"18":0.08292,"84":0.07048,"85":0.04975,"89":0.02073,"92":0.01658,"93":0.00829,"94":0.02073,"95":0.03731,"96":0.03731,"97":0.0995,"98":1.38891,"99":5.21981,_:"79 80 81 83 86 87 88 90 91"},E:{"4":0,"13":0.01658,"14":0.37729,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.04975,"11.1":0.02902,"12.1":0.02488,"13.1":0.02073,"14.1":0.07877,"15.1":0.12853,"15.2-15.3":0.04146,"15.4":0.04975},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08288,"10.0-10.2":0.0018,"10.3":0.01802,"11.0-11.2":0.03693,"11.3-11.4":0.66122,"12.0-12.1":0.04414,"12.2-12.5":0.43691,"13.0-13.1":0.05855,"13.2":0.38466,"13.3":0.22521,"13.4-13.7":0.33962,"14.0-14.4":1.56206,"14.5-14.8":2.47821,"15.0-15.1":0.33782,"15.2-15.3":2.01158,"15.4":0.32971},P:{"4":0.15349,"5.0-5.4":0.02035,"6.2-6.4":0.04093,"7.2-7.4":0.60372,"8.2":0.02046,"9.2":0.05116,"10.1":0.02046,"11.1-11.2":0.33767,"12.0":0.04093,"13.0":0.35814,"14.0":0.59348,"15.0":0.15349,"16.0":1.36092},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00125,"4.4":0,"4.4.3-4.4.4":0.03387},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.14096,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":48.88354},S:{"2.5":0.01756},R:{_:"0"},M:{"0":0.64979},Q:{"10.4":0.01756},O:{"0":3.08506},H:{"0":1.95085}}; +module.exports={C:{"30":0.00885,"49":0.00885,"61":0.00885,"77":0.00443,"91":0.60636,"94":0.00443,"96":0.00885,"97":0.01328,"98":0.02656,"99":0.29212,"100":1.49599,"101":0.16819,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 95 102 103 3.5 3.6"},D:{"11":0.02213,"49":0.00885,"63":0.03983,"65":0.01328,"67":0.00443,"69":0.00885,"74":0.00443,"75":0.00443,"76":0.01328,"79":0.00885,"80":0.02213,"81":0.19032,"84":0.00443,"86":0.00443,"87":0.01328,"88":0.00885,"89":0.02656,"90":0.00443,"91":0.49571,"92":0.00885,"93":0.00443,"94":0.03541,"95":0.14606,"96":0.02656,"97":0.00443,"98":0.09737,"99":0.4603,"100":4.43043,"101":16.11949,"102":1.47386,"103":0.02213,"104":0.00443,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 68 70 71 72 73 77 78 83 85"},F:{"36":0.01328,"85":0.16376,"86":0.25228,"87":0.00885,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01328,"13":0.00885,"14":0.04426,"15":0.04869,"16":0.02656,"17":0.02656,"18":0.05311,"84":0.0177,"85":0.00885,"92":0.0177,"93":0.02213,"94":0.02213,"95":0.03541,"96":0.06196,"97":0.02213,"98":0.03098,"99":0.08852,"100":0.34965,"101":3.89488,_:"79 80 81 83 86 87 88 89 90 91"},E:{"4":0,"11":0.03541,"13":0.0177,"14":0.11508,_:"0 5 6 7 8 9 10 12 15 3.1 3.2 5.1 6.1 7.1 11.1","9.1":0.00443,"10.1":0.00443,"12.1":0.00443,"13.1":0.04869,"14.1":0.03983,"15.1":0.05754,"15.2-15.3":0.00443,"15.4":0.23015,"15.5":0.00443},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08426,"10.0-10.2":0.00541,"10.3":0.01778,"11.0-11.2":0.00155,"11.3-11.4":0.47619,"12.0-12.1":0.03633,"12.2-12.5":0.74521,"13.0-13.1":0.0286,"13.2":0.01469,"13.3":0.18321,"13.4-13.7":0.10359,"14.0-14.4":1.86766,"14.5-14.8":1.35591,"15.0-15.1":0.37106,"15.2-15.3":0.74521,"15.4":1.6945},P:{"4":0.12309,"5.0-5.4":0.02027,"6.2-6.4":0.01043,"7.2-7.4":0.58467,"8.2":0.01022,"9.2":0.08206,"10.1":0.04171,"11.1-11.2":0.12309,"12.0":0.05129,"13.0":0.96419,"14.0":0.1436,"15.0":0.15386,"16.0":1.01547},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00094,"4.4":0,"4.4.3-4.4.4":0.03808},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11508,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.12316,_:"11"},R:{_:"0"},M:{"0":0.02787},Q:{"10.4":0},O:{"0":0.72462},H:{"0":0.68602},L:{"0":53.87165},S:{"2.5":0.07804}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/YE.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/YE.js index d49035deff6f42..7a23c6e04a19cb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/YE.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/YE.js @@ -1 +1 @@ -module.exports={C:{"3":0.00399,"25":0.00799,"42":0.002,"44":0.00599,"49":0.00399,"52":0.02996,"60":0.00399,"64":0.002,"69":0.01797,"72":0.00599,"74":0.00799,"78":0.00399,"84":0.00399,"86":0.002,"89":0.00599,"91":0.00399,"93":0.00799,"94":0.02396,"95":0.01398,"96":0.01797,"97":0.24164,"98":0.54718,"99":0.00399,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 45 46 47 48 50 51 53 54 55 56 57 58 59 61 62 63 65 66 67 68 70 71 73 75 76 77 79 80 81 82 83 85 87 88 90 92 100 3.5 3.6"},D:{"37":0.01997,"40":0.00999,"43":0.002,"49":0.00799,"50":0.00399,"51":0.002,"53":0.00399,"55":0.00799,"56":0.00399,"57":0.00799,"60":0.002,"62":0.00399,"63":0.01198,"66":0.00399,"67":0.00999,"68":0.00599,"69":0.00799,"70":0.00599,"71":0.01598,"72":0.002,"73":0.002,"74":0.01198,"75":0.00399,"76":0.01598,"77":0.00399,"78":0.01398,"79":0.02396,"80":0.00999,"81":0.01198,"83":0.02197,"84":0.00599,"85":0.00999,"86":0.02996,"87":0.03994,"88":0.00999,"89":0.08188,"90":0.01398,"91":0.03794,"92":0.03794,"93":0.00999,"94":0.02796,"95":0.03794,"96":0.12781,"97":0.14378,"98":0.89665,"99":3.25711,"100":0.03794,"101":0.002,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 41 42 44 45 46 47 48 52 54 58 59 61 64 65 102 103"},F:{"68":0.002,"79":0.00399,"82":0.00399,"83":0.00599,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"18":0.01398,"84":0.00999,"85":0.002,"89":0.00599,"90":0.00599,"92":0.01598,"94":0.00799,"96":0.01198,"97":0.00999,"98":0.09985,"99":0.34149,_:"12 13 14 15 16 17 79 80 81 83 86 87 88 91 93 95"},E:{"4":0,"14":0.00599,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 15.4","14.1":0.00999,"15.1":0.00999,"15.2-15.3":0.002},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00591,"5.0-5.1":0.0003,"6.0-6.1":0.00108,"7.0-7.1":0.00226,"8.1-8.4":0,"9.0-9.2":0.0002,"9.3":0.00187,"10.0-10.2":0.00079,"10.3":0.00423,"11.0-11.2":0.00512,"11.3-11.4":0.00443,"12.0-12.1":0.02156,"12.2-12.5":0.16273,"13.0-13.1":0.00601,"13.2":0.00788,"13.3":0.01496,"13.4-13.7":0.0442,"14.0-14.4":0.12867,"14.5-14.8":0.17976,"15.0-15.1":0.11203,"15.2-15.3":0.25418,"15.4":0.02609},P:{"4":0.46084,"5.0-5.4":0.14025,"6.2-6.4":0.03005,"7.2-7.4":0.35064,"8.2":0.01002,"9.2":0.50091,"10.1":0.08015,"11.1-11.2":0.60109,"12.0":0.13024,"13.0":0.45082,"14.0":0.40073,"15.0":0.45082,"16.0":4.06738},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00317,"4.2-4.3":0.00475,"4.4":0,"4.4.3-4.4.4":0.05609},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.00799,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":75.36427},S:{"2.5":0.04001},R:{_:"0"},M:{"0":0.21605},Q:{"10.4":0.008},O:{"0":2.17654},H:{"0":5.42426}}; +module.exports={C:{"3":0.03562,"45":0.00445,"48":0.00223,"49":0.00445,"50":0.00445,"52":0.02449,"53":0.00445,"54":0.00223,"56":0.00445,"57":0.00445,"58":0.00445,"59":0.00445,"60":0.01336,"62":0.01113,"63":0.00668,"64":0.00445,"69":0.00445,"70":0.00445,"72":0.01113,"81":0.00223,"84":0.00223,"87":0.00223,"89":0.03116,"91":0.00668,"93":0.00668,"94":0.01336,"95":0.00668,"96":0.0089,"97":0.02003,"98":0.02226,"99":0.23818,"100":1.47139,"101":0.0089,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 51 55 61 65 66 67 68 71 73 74 75 76 77 78 79 80 82 83 85 86 88 90 92 102 103 3.5 3.6"},D:{"28":0.00223,"37":0.01558,"43":0.00445,"44":0.00223,"46":0.00223,"47":0.00668,"48":0.00223,"49":0.01558,"50":0.00445,"51":0.00223,"52":0.00445,"53":0.0512,"54":0.00445,"55":0.00668,"56":0.00668,"57":0.01113,"58":0.00223,"59":0.00223,"60":0.00223,"63":0.01336,"64":0.00445,"66":0.01336,"67":0.01781,"68":0.02003,"70":0.00668,"71":0.00668,"72":0.0089,"73":0.00445,"74":0.01781,"75":0.00668,"76":0.03562,"77":0.00445,"78":0.01113,"79":0.02671,"80":0.01781,"81":0.03562,"83":0.02003,"84":0.01336,"85":0.01781,"86":0.04007,"87":0.07791,"88":0.01558,"89":0.04675,"90":0.02226,"91":0.02894,"92":0.04675,"93":0.02894,"94":0.02894,"95":0.07346,"96":0.12243,"97":0.08904,"98":0.13801,"99":0.20702,"100":1.19314,"101":5.23778,"102":0.60547,"103":0.00445,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 38 39 40 41 42 45 61 62 65 69 104"},F:{"69":0.01336,"79":0.00223,"84":0.00445,"85":0.06455,"86":0.07568,"87":0.00668,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00445,"18":0.00445,"84":0.01113,"85":0.00445,"89":0.01558,"90":0.00668,"91":0.00223,"92":0.01558,"94":0.00445,"96":0.0089,"97":0.00223,"98":0.00668,"99":0.03562,"100":0.06233,"101":0.6166,_:"13 14 15 16 17 79 80 81 83 86 87 88 93 95"},E:{"4":0,"13":0.00223,"14":0.01113,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1 15.5","5.1":0.01336,"13.1":0.00223,"14.1":0.00668,"15.1":0.0089,"15.2-15.3":0.00445,"15.4":0.02003},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00634,"5.0-5.1":0.00127,"6.0-6.1":0.00095,"7.0-7.1":0.01063,"8.1-8.4":0.00159,"9.0-9.2":0.00508,"9.3":0.00222,"10.0-10.2":0.00159,"10.3":0.01047,"11.0-11.2":0.0138,"11.3-11.4":0.01126,"12.0-12.1":0.01824,"12.2-12.5":0.22268,"13.0-13.1":0.00745,"13.2":0.00761,"13.3":0.02141,"13.4-13.7":0.04457,"14.0-14.4":0.16463,"14.5-14.8":0.21158,"15.0-15.1":0.11642,"15.2-15.3":0.25044,"15.4":0.45567},P:{"4":0.3117,"5.0-5.4":0.09049,"6.2-6.4":0.02011,"7.2-7.4":0.16088,"8.2":0.01015,"9.2":0.30165,"10.1":0.03016,"11.1-11.2":0.35192,"12.0":0.07038,"13.0":0.30165,"14.0":0.23126,"15.0":0.19104,"16.0":1.93056},I:{"0":0,"3":0,"4":0.00164,"2.1":0,"2.2":0,"2.3":0.00109,"4.1":0.01421,"4.2-4.3":0.00984,"4.4":0,"4.4.3-4.4.4":0.11315},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00668,"11":0.02003,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.39647},Q:{"10.4":0},O:{"0":3.74707},H:{"0":7.77944},L:{"0":68.34474},S:{"2.5":0.01555}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/YT.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/YT.js index 5bbad693dd56d5..c52a2aa1a3eafb 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/YT.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/YT.js @@ -1 +1 @@ -module.exports={C:{"60":0.05357,"68":0.00487,"72":0.04383,"78":2.93661,"81":0.00487,"82":0.00974,"85":0.00487,"89":0.03896,"91":0.15584,"92":0.04383,"93":0.01948,"95":0.00974,"96":0.07305,"97":3.18011,"98":2.83434,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 83 84 86 87 88 90 94 99 100 3.5 3.6"},D:{"34":0.01461,"47":0.06818,"58":0.01461,"62":0.02435,"67":0.00487,"70":0.02435,"75":0.02922,"77":0.00974,"79":0.05357,"83":0.00487,"87":0.02435,"88":0.00487,"89":0.02922,"90":0.05844,"91":0.19967,"92":0.06818,"93":0.00487,"95":0.02435,"96":0.12662,"97":0.58927,"98":6.53554,"99":17.30798,"100":0.06818,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 59 60 61 63 64 65 66 68 69 71 72 73 74 76 78 80 81 84 85 86 94 101 102 103"},F:{"83":0.21428,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.02435,"16":0.00974,"17":0.32629,"18":0.03409,"84":0.01948,"90":0.00487,"91":0.00974,"92":0.01461,"94":0.01461,"96":0.0487,"97":0.08766,"98":1.52431,"99":5.37648,_:"12 13 14 79 80 81 83 85 86 87 88 89 93 95"},E:{"4":0,"14":0.18506,"15":0.01948,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.12175,"12.1":0.02435,"13.1":0.09253,"14.1":0.55031,"15.1":0.20941,"15.2-15.3":0.16558,"15.4":0.09253},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.0518,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.01992,"11.0-11.2":0.04383,"11.3-11.4":0.00598,"12.0-12.1":0,"12.2-12.5":0.23708,"13.0-13.1":0.00996,"13.2":0.01195,"13.3":0.06674,"13.4-13.7":0.05379,"14.0-14.4":0.67738,"14.5-14.8":1.554,"15.0-15.1":0.82382,"15.2-15.3":5.76971,"15.4":0.63455},P:{"4":0.12296,"5.0-5.4":0.06037,"6.2-6.4":0.15093,"7.2-7.4":0.13321,"8.2":0.01002,"9.2":0.03074,"10.1":0.04099,"11.1-11.2":0.04099,"12.0":0.03074,"13.0":0.06148,"14.0":0.07173,"15.0":0.02049,"16.0":4.12945},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00112,"4.4":0,"4.4.3-4.4.4":0.00914},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.13149,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,_:"11"},L:{"0":37.26806},S:{"2.5":0},R:{_:"0"},M:{"0":0.55393},Q:{"10.4":0},O:{"0":0.05129},H:{"0":0.2962}}; +module.exports={C:{"52":0.01758,"60":0.04396,"68":0.02638,"70":0.0044,"78":0.6594,"84":0.03077,"86":0.02638,"89":0.04396,"90":0.00879,"91":1.30561,"93":0.01319,"94":0.0044,"95":0.00879,"96":0.02198,"97":0.00879,"98":0.07913,"99":1.15615,"100":4.21137,"101":0.00879,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 71 72 73 74 75 76 77 79 80 81 82 83 85 87 88 92 102 103 3.5 3.6"},D:{"44":0.0044,"47":0.01319,"49":0.01319,"54":0.0044,"58":0.0044,"63":0.00879,"67":0.02638,"75":0.01319,"76":0.01319,"77":0.04396,"80":0.0044,"81":0.02638,"83":0.01319,"85":0.02198,"86":0.01319,"87":0.01758,"88":0.01319,"89":0.03956,"90":0.02198,"91":0.13628,"92":0.01758,"94":0.01319,"95":0.01319,"96":0.42202,"97":0.04836,"98":0.16265,"99":0.34289,"100":4.48832,"101":14.99036,"102":1.47266,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 48 50 51 52 53 55 56 57 59 60 61 62 64 65 66 68 69 70 71 72 73 74 78 79 84 93 103 104"},F:{"85":0.31212,"86":0.74292,"87":0.09671,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"14":0.05275,"15":0.0044,"16":0.00879,"17":0.04836,"18":0.01319,"84":0.0044,"86":0.0044,"90":0.00879,"91":0.02198,"92":0.01319,"94":0.0044,"96":0.02638,"97":0.04836,"98":0.01319,"99":0.14067,"100":0.92316,"101":5.31037,_:"12 13 79 80 81 83 85 87 88 89 93 95"},E:{"4":0,"12":0.00879,"14":0.18463,"15":0.02198,_:"0 5 6 7 8 9 10 11 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01319,"12.1":0.03517,"13.1":0.17144,"14.1":0.35608,"15.1":0.2242,"15.2-15.3":0.14067,"15.4":1.02427,"15.5":0.10111},G:{"8":0.00421,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03259,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.03049,"10.0-10.2":0,"10.3":0.15665,"11.0-11.2":0.02628,"11.3-11.4":0.01787,"12.0-12.1":0.01472,"12.2-12.5":0.20922,"13.0-13.1":0.01051,"13.2":0,"13.3":0.041,"13.4-13.7":0.21343,"14.0-14.4":0.35957,"14.5-14.8":1.23325,"15.0-15.1":0.54881,"15.2-15.3":0.93361,"15.4":6.6846},P:{"4":0.12305,"5.0-5.4":0.04028,"6.2-6.4":0.0705,"7.2-7.4":0.13331,"8.2":0.01019,"9.2":0.02051,"10.1":0.06042,"11.1-11.2":0.10255,"12.0":0.02051,"13.0":0.03076,"14.0":0.1128,"15.0":0.08149,"16.0":1.06647},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.08965},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.1099,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01469,_:"11"},R:{_:"0"},M:{"0":0.21291},Q:{"10.4":0},O:{"0":0.06724},H:{"0":0.25992},L:{"0":43.05116},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZA.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZA.js index ffcc8b3f604e33..a441591b737455 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZA.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZA.js @@ -1 +1 @@ -module.exports={C:{"34":0.00843,"52":0.04214,"59":0.00211,"60":0.00421,"78":0.00632,"87":0.00421,"88":0.00632,"89":0.00632,"91":0.01475,"93":0.00421,"94":0.00632,"95":0.00632,"96":0.01054,"97":0.3013,"98":0.4825,"99":0.00843,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 90 92 100 3.5 3.6"},D:{"11":0.00211,"28":0.00843,"38":0.00211,"40":0.00211,"42":0.00211,"49":0.03371,"50":0.00421,"52":0.00632,"55":0.00421,"63":0.00211,"64":0.00421,"65":0.00843,"66":0.00211,"67":0.00843,"69":0.01475,"70":0.01896,"71":0.00421,"72":0.00632,"73":0.00421,"74":0.00632,"75":0.00211,"76":0.00211,"77":0.00421,"78":0.00421,"79":0.03371,"80":0.02528,"81":0.01264,"83":0.00843,"84":0.01054,"85":0.00632,"86":0.01686,"87":0.01896,"88":0.01054,"89":0.01054,"90":0.01264,"91":0.02318,"92":0.03371,"93":0.17699,"94":0.02528,"95":0.02107,"96":0.06953,"97":0.14328,"98":2.61268,"99":7.71373,"100":0.00843,"101":0.00421,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 39 41 43 44 45 46 47 48 51 53 54 56 57 58 59 60 61 62 68 102 103"},F:{"28":0.00843,"36":0.00211,"67":0.00211,"68":0.00421,"77":0.00632,"78":0.00421,"79":0.00632,"80":0.00843,"81":0.00211,"82":0.00632,"83":0.06532,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01054,"13":0.00421,"14":0.00421,"15":0.00843,"16":0.01054,"17":0.03582,"18":0.03793,"84":0.01054,"85":0.00211,"89":0.00421,"90":0.00421,"91":0.00421,"92":0.00843,"93":0.00211,"94":0.00421,"95":0.01896,"96":0.01475,"97":0.04425,"98":0.49093,"99":1.67717,_:"79 80 81 83 86 87 88"},E:{"4":0,"13":0.01475,"14":0.059,"15":0.03582,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00211,"10.1":0.00421,"11.1":0.01054,"12.1":0.02107,"13.1":0.0906,"14.1":0.21281,"15.1":0.08428,"15.2-15.3":0.10324,"15.4":0.04635},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00217,"6.0-6.1":0.00217,"7.0-7.1":0.00759,"8.1-8.4":0.00651,"9.0-9.2":0.00542,"9.3":0.10196,"10.0-10.2":0.00217,"10.3":0.05966,"11.0-11.2":0.01735,"11.3-11.4":0.02386,"12.0-12.1":0.02169,"12.2-12.5":0.58682,"13.0-13.1":0.04881,"13.2":0.00759,"13.3":0.06617,"13.4-13.7":0.16379,"14.0-14.4":0.49353,"14.5-14.8":1.47843,"15.0-15.1":0.72999,"15.2-15.3":6.53849,"15.4":0.47943},P:{"4":0.27386,"5.0-5.4":0.01014,"6.2-6.4":0.10095,"7.2-7.4":0.54772,"8.2":0.01014,"9.2":0.03043,"10.1":0.03043,"11.1-11.2":0.213,"12.0":0.12172,"13.0":0.26372,"14.0":0.37529,"15.0":0.27386,"16.0":6.77553},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00102,"4.2-4.3":0.00339,"4.4":0,"4.4.3-4.4.4":0.02716},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.28866,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":58.38223},S:{"2.5":0},R:{_:"0"},M:{"0":0.52876},Q:{"10.4":0.00789},O:{"0":0.5919},H:{"0":3.54903}}; +module.exports={C:{"34":0.01074,"52":0.03652,"60":0.0043,"78":0.00644,"84":0.00215,"87":0.0043,"88":0.00644,"89":0.00215,"91":0.01074,"93":0.0043,"94":0.00644,"95":0.0043,"96":0.0043,"97":0.0043,"98":0.00859,"99":0.13962,"100":0.65944,"101":0.01289,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 90 92 102 103 3.5 3.6"},D:{"28":0.00859,"34":0.00215,"38":0.00215,"49":0.02792,"50":0.00644,"52":0.00644,"55":0.0043,"63":0.00215,"65":0.00644,"67":0.00859,"69":0.02363,"70":0.01074,"71":0.00215,"72":0.00215,"73":0.00215,"74":0.01074,"75":0.00215,"76":0.0043,"77":0.0043,"78":0.00644,"79":0.02578,"80":0.01504,"81":0.01933,"83":0.00644,"84":0.01074,"85":0.00215,"86":0.01289,"87":0.01718,"88":0.01074,"89":0.00644,"90":0.01074,"91":0.01933,"92":0.03866,"93":0.00859,"94":0.01504,"95":0.01504,"96":0.03437,"97":0.04511,"98":0.05155,"99":0.10955,"100":1.85802,"101":7.75428,"102":0.75824,"103":0.00644,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 51 53 54 56 57 58 59 60 61 62 64 66 68 104"},F:{"28":0.01504,"69":0.00644,"77":0.0043,"78":0.0043,"79":0.00644,"80":0.0043,"81":0.00215,"84":0.00215,"85":0.16969,"86":0.19976,"87":0.01504,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01074,"13":0.0043,"14":0.0043,"15":0.00644,"16":0.01074,"17":0.01718,"18":0.02792,"84":0.00859,"89":0.0043,"90":0.0043,"91":0.00215,"92":0.00859,"94":0.00215,"95":0.00859,"96":0.0043,"97":0.01289,"98":0.01074,"99":0.04296,"100":0.12673,"101":2.16518,_:"79 80 81 83 85 86 87 88 93"},E:{"4":0,"13":0.00859,"14":0.0537,"15":0.02148,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0043,"11.1":0.01504,"12.1":0.01933,"13.1":0.07733,"14.1":0.16754,"15.1":0.03866,"15.2-15.3":0.04081,"15.4":0.58211,"15.5":0.07088},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0033,"6.0-6.1":0.0011,"7.0-7.1":0.00879,"8.1-8.4":0.0033,"9.0-9.2":0.0044,"9.3":0.08244,"10.0-10.2":0.0022,"10.3":0.05716,"11.0-11.2":0.01429,"11.3-11.4":0.01319,"12.0-12.1":0.01099,"12.2-12.5":0.55953,"13.0-13.1":0.03518,"13.2":0.01099,"13.3":0.04507,"13.4-13.7":0.12642,"14.0-14.4":0.39903,"14.5-14.8":0.99044,"15.0-15.1":0.38694,"15.2-15.3":0.95856,"15.4":7.27163},P:{"4":0.26298,"5.0-5.4":0.01011,"6.2-6.4":0.12144,"7.2-7.4":0.52596,"8.2":0.21569,"9.2":0.02023,"10.1":0.04046,"11.1-11.2":0.19218,"12.0":0.09103,"13.0":0.20229,"14.0":0.28321,"15.0":0.16183,"16.0":2.85232},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00141,"4.2-4.3":0.00282,"4.4":0,"4.4.3-4.4.4":0.02717},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.20191,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.51823},Q:{"10.4":0.00785},O:{"0":0.62031},H:{"0":3.67228},L:{"0":58.43978},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZM.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZM.js index 956b6fb55d89e9..6be6fe2c2ec37c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZM.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZM.js @@ -1 +1 @@ -module.exports={C:{"31":0.0193,"33":0.01379,"34":0.00276,"37":0.00551,"40":0.00276,"43":0.00276,"47":0.00551,"52":0.02481,"68":0.00551,"72":0.00276,"78":0.00827,"88":0.00827,"89":0.00551,"91":0.0386,"92":0.00276,"94":0.00551,"95":0.01379,"96":0.02206,"97":0.47145,"98":0.93462,"99":0.04963,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 35 36 38 39 41 42 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 90 93 100 3.5 3.6"},D:{"11":0.00276,"28":0.04411,"43":0.00551,"49":0.01103,"50":0.00827,"51":0.00551,"53":0.00551,"57":0.00551,"60":0.00276,"63":0.02757,"64":0.00551,"65":0.00276,"66":0.00827,"67":0.00276,"68":0.01654,"69":0.00551,"70":0.00276,"71":0.04963,"73":0.10477,"74":0.00551,"75":0.00551,"76":0.00827,"77":0.01654,"78":0.00827,"79":0.02206,"80":0.01654,"81":0.04963,"83":0.02206,"84":0.00827,"85":0.00827,"86":0.06341,"87":0.06893,"88":0.03584,"89":0.03308,"90":0.04963,"91":0.03584,"92":0.02206,"93":1.0449,"94":0.03308,"95":0.04411,"96":0.14612,"97":0.23986,"98":2.80387,"99":9.28833,"100":0.11579,"101":0.00276,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 52 54 55 56 58 59 61 62 72 102 103"},F:{"34":0.00276,"36":0.00276,"42":0.00551,"64":0.00551,"67":0.0193,"68":0.01103,"71":0.00276,"77":0.00276,"79":0.0193,"81":0.00276,"82":0.01654,"83":0.10477,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 69 70 72 73 74 75 76 78 80 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01654},B:{"12":0.06617,"13":0.0386,"14":0.02481,"15":0.02206,"16":0.02206,"17":0.03584,"18":0.12682,"83":0.00551,"84":0.02757,"85":0.0193,"88":0.00276,"89":0.03584,"90":0.02481,"91":0.00551,"92":0.04411,"93":0.0193,"94":0.00827,"95":0.0193,"96":0.03584,"97":0.06065,"98":0.65617,"99":2.10359,_:"79 80 81 86 87"},E:{"4":0,"13":0.01379,"14":0.04411,"15":0.00827,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.02481,"10.1":0.0193,"11.1":0.01379,"12.1":0.00827,"13.1":0.02757,"14.1":0.10477,"15.1":0.02481,"15.2-15.3":0.04411,"15.4":0.01654},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00227,"6.0-6.1":0.00114,"7.0-7.1":0.00853,"8.1-8.4":0.00057,"9.0-9.2":0,"9.3":0.11256,"10.0-10.2":0.01364,"10.3":0.11427,"11.0-11.2":0.05969,"11.3-11.4":0.02558,"12.0-12.1":0.03127,"12.2-12.5":1.18532,"13.0-13.1":0.01705,"13.2":0.00568,"13.3":0.05799,"13.4-13.7":0.12109,"14.0-14.4":0.53837,"14.5-14.8":0.88231,"15.0-15.1":0.55485,"15.2-15.3":1.75893,"15.4":0.19386},P:{"4":0.53734,"5.0-5.4":0.01033,"6.2-6.4":0.03005,"7.2-7.4":0.11367,"8.2":0.01002,"9.2":0.05167,"10.1":0.08015,"11.1-11.2":0.031,"12.0":0.02067,"13.0":0.093,"14.0":0.093,"15.0":0.33067,"16.0":1.33301},I:{"0":0,"3":0,"4":0.00078,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00221,"4.2-4.3":0.00182,"4.4":0,"4.4.3-4.4.4":0.07486},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01001,"11":0.18022,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.00724},N:{"10":0.02879,"11":0.04426},L:{"0":53.65905},S:{"2.5":0.02173},R:{_:"0"},M:{"0":0.11587},Q:{"10.4":0.01448},O:{"0":2.17984},H:{"0":12.3207}}; +module.exports={C:{"34":0.0075,"47":0.005,"52":0.0075,"68":0.005,"72":0.0075,"78":0.0075,"87":0.005,"88":0.005,"89":0.0075,"91":0.01749,"95":0.005,"96":0.005,"97":0.0075,"98":0.01499,"99":0.2449,"100":0.95462,"101":0.03998,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 90 92 93 94 102 103 3.5 3.6"},D:{"11":0.005,"49":0.005,"50":0.0075,"51":0.02499,"55":0.0025,"57":0.0025,"58":0.0025,"63":0.0075,"64":0.01499,"65":0.0025,"66":0.0025,"68":0.01749,"69":0.0025,"70":0.0075,"71":0.02999,"72":0.0025,"73":0.05498,"74":0.005,"75":0.005,"76":0.0075,"77":0.01499,"78":0.01499,"79":0.01499,"80":0.01749,"81":0.03749,"83":0.01,"84":0.01749,"85":0.01,"86":0.03998,"87":0.07247,"88":0.01999,"89":0.01499,"90":0.01749,"91":0.02999,"92":0.01999,"93":0.05748,"94":0.03499,"95":0.02999,"96":0.06747,"97":0.04498,"98":0.08996,"99":0.17743,"100":2.2441,"101":7.16963,"102":0.60226,"103":0.0025,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 52 53 54 56 59 60 61 62 67 104"},F:{"18":0.0025,"36":0.0025,"42":0.0075,"65":0.0025,"67":0.0025,"68":0.0025,"69":0.01,"77":0.005,"79":0.01999,"82":0.005,"83":0.005,"84":0.01749,"85":0.47481,"86":0.82967,"87":0.05498,_:"9 11 12 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 70 71 72 73 74 75 76 78 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01999},B:{"12":0.05748,"13":0.02499,"14":0.0125,"15":0.01749,"16":0.01749,"17":0.02499,"18":0.10746,"84":0.02249,"85":0.0125,"87":0.0025,"89":0.02749,"90":0.01999,"91":0.0025,"92":0.04248,"93":0.0075,"94":0.0025,"95":0.005,"96":0.01499,"97":0.03249,"98":0.04248,"99":0.06497,"100":0.22991,"101":2.03169,_:"79 80 81 83 86 88"},E:{"4":0,"13":0.005,"14":0.02249,"15":0.005,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.0125,"9.1":0.0125,"10.1":0.0075,"11.1":0.005,"12.1":0.005,"13.1":0.04998,"14.1":0.05248,"15.1":0.0075,"15.2-15.3":0.01749,"15.4":0.11745,"15.5":0.0125},G:{"8":0.00216,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00377,"5.0-5.1":0.00323,"6.0-6.1":0.00108,"7.0-7.1":0.03287,"8.1-8.4":0.00108,"9.0-9.2":0.00162,"9.3":0.07274,"10.0-10.2":0.00916,"10.3":0.09375,"11.0-11.2":0.02963,"11.3-11.4":0.01994,"12.0-12.1":0.03017,"12.2-12.5":0.9876,"13.0-13.1":0.02694,"13.2":0.00485,"13.3":0.03287,"13.4-13.7":0.11045,"14.0-14.4":0.41756,"14.5-14.8":0.54902,"15.0-15.1":0.41487,"15.2-15.3":0.60883,"15.4":1.93155},P:{"4":0.39393,"5.0-5.4":0.09049,"6.2-6.4":0.02011,"7.2-7.4":0.13477,"8.2":0.01015,"9.2":0.0311,"10.1":0.03016,"11.1-11.2":0.0311,"12.0":0.01037,"13.0":0.0933,"14.0":0.0933,"15.0":0.0622,"16.0":0.59089},I:{"0":0,"3":0,"4":0.00039,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00118,"4.2-4.3":0.00249,"4.4":0,"4.4.3-4.4.4":0.08594},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00278,"10":0.00557,"11":0.08911,_:"6 7 9 5.5"},J:{"7":0,"10":0.03},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.26254},Q:{"10.4":0.015},O:{"0":1.94276},H:{"0":15.538},L:{"0":56.10864},S:{"2.5":0.015}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZW.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZW.js index e6411cc322bd0b..288b74fdc5f11c 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZW.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/ZW.js @@ -1 +1 @@ -module.exports={C:{"43":0.00843,"47":0.00422,"48":0.00843,"52":0.02951,"57":0.02108,"64":0.00422,"69":0.00422,"72":0.01265,"78":0.0548,"80":0.00422,"84":0.02951,"87":0.00422,"88":0.02951,"89":0.02529,"91":0.03794,"92":0.00422,"93":0.00843,"94":0.02529,"95":0.02108,"96":0.03372,"97":1.01582,"98":1.79138,"99":0.14753,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 49 50 51 53 54 55 56 58 59 60 61 62 63 65 66 67 68 70 71 73 74 75 76 77 79 81 82 83 85 86 90 100 3.5 3.6"},D:{"47":0.01265,"49":0.02108,"58":0.01265,"59":0.00843,"60":0.00843,"63":0.02951,"64":0.00422,"65":0.00843,"66":0.00422,"69":0.02108,"70":0.01686,"71":0.00843,"73":0.00422,"74":0.06323,"75":0.00422,"76":0.02108,"77":0.02529,"78":0.00843,"79":0.05058,"80":0.02951,"81":0.02529,"83":0.03372,"84":0.00843,"85":0.01686,"86":0.06323,"87":0.03794,"88":0.02108,"89":0.03794,"90":0.02951,"91":0.0548,"92":0.06744,"93":0.0548,"94":0.06323,"95":0.08009,"96":0.19389,"97":0.34985,"98":4.98213,"99":16.08444,"100":0.21918,"101":0.02108,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 61 62 67 68 72 102 103"},F:{"36":0.01686,"42":0.00422,"68":0.00422,"79":0.02529,"80":0.02529,"81":0.00422,"82":0.04637,"83":0.19389,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.0843,"13":0.03372,"14":0.01686,"15":0.02529,"16":0.05901,"17":0.06744,"18":0.17703,"84":0.02951,"85":0.02108,"89":0.03372,"90":0.02108,"91":0.01686,"92":0.0548,"94":0.02529,"95":0.02951,"96":0.05901,"97":0.11802,"98":0.91466,"99":3.0896,_:"79 80 81 83 86 87 88 93"},E:{"4":0,"12":0.00422,"13":0.02108,"14":0.05901,"15":0.04215,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02108,"12.1":0.01265,"13.1":0.07166,"14.1":0.31613,"15.1":0.09695,"15.2-15.3":0.15174,"15.4":0.08852},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00128,"6.0-6.1":0.00128,"7.0-7.1":0.00895,"8.1-8.4":0.00128,"9.0-9.2":0,"9.3":0.07476,"10.0-10.2":0,"10.3":0.04153,"11.0-11.2":0.00447,"11.3-11.4":0.01406,"12.0-12.1":0.01597,"12.2-12.5":0.4824,"13.0-13.1":0.01342,"13.2":0.00447,"13.3":0.04473,"13.4-13.7":0.09137,"14.0-14.4":0.45748,"14.5-14.8":0.95777,"15.0-15.1":0.62169,"15.2-15.3":3.29053,"15.4":0.25813},P:{"4":0.18847,"5.0-5.4":0.01033,"6.2-6.4":0.03005,"7.2-7.4":0.14659,"8.2":0.01002,"9.2":0.05167,"10.1":0.08015,"11.1-11.2":0.03141,"12.0":0.05235,"13.0":0.08376,"14.0":0.09423,"15.0":0.07329,"16.0":1.37164},I:{"0":0,"3":0,"4":0.00112,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00112,"4.2-4.3":0.00634,"4.4":0,"4.4.3-4.4.4":0.15337},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00422,"10":0.00843,"11":0.18546,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":43.92512},S:{"2.5":0},R:{_:"0"},M:{"0":0.1446},Q:{"10.4":0.04627},O:{"0":1.65422},H:{"0":9.47334}}; +module.exports={C:{"43":0.00386,"47":0.00386,"48":0.00386,"51":0.00386,"52":0.01157,"53":0.00386,"56":0.00771,"57":0.02313,"59":0.00386,"64":0.00386,"66":0.01157,"69":0.00386,"72":0.00771,"78":0.01542,"84":0.00386,"87":0.01928,"88":0.01928,"89":0.01928,"91":0.02699,"94":0.01542,"95":0.01157,"96":0.00771,"97":0.0347,"98":0.05012,"99":0.50501,"100":1.96991,"101":0.09638,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 49 50 54 55 58 60 61 62 63 65 67 68 70 71 73 74 75 76 77 79 80 81 82 83 85 86 90 92 93 102 103 3.5 3.6"},D:{"42":0.00386,"46":0.00386,"47":0.00771,"49":0.03084,"50":0.00386,"55":0.01157,"58":0.01157,"60":0.00386,"62":0.00386,"63":0.02699,"64":0.00771,"65":0.02699,"69":0.01157,"70":0.01157,"71":0.00771,"72":0.00386,"73":0.00771,"74":0.06554,"75":0.01157,"76":0.01542,"77":0.01157,"78":0.00771,"79":0.04241,"80":0.01928,"81":0.02699,"83":0.01542,"84":0.00771,"85":0.01542,"86":0.05012,"87":0.03084,"88":0.01928,"89":0.01928,"90":0.02313,"91":0.03855,"92":0.04626,"93":0.06939,"94":0.08867,"95":0.03084,"96":0.09252,"97":0.12336,"98":0.13493,"99":0.25443,"100":3.51191,"101":13.24193,"102":1.31841,"103":0.02313,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 48 51 52 53 54 56 57 59 61 66 67 68 104"},F:{"36":0.00386,"37":0.00386,"42":0.00771,"69":0.00771,"79":0.01542,"81":0.00386,"82":0.01157,"83":0.00386,"84":0.01542,"85":0.60909,"86":1.01772,"87":0.07325,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 78 80 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.08096,"13":0.03084,"14":0.0347,"15":0.03084,"16":0.04241,"17":0.0347,"18":0.15035,"81":0.00386,"84":0.03084,"85":0.01542,"89":0.02699,"90":0.01542,"91":0.00771,"92":0.05012,"93":0.00386,"94":0.00771,"95":0.01542,"96":0.02699,"97":0.06554,"98":0.04626,"99":0.14264,"100":0.25829,"101":3.36542,_:"79 80 83 86 87 88"},E:{"4":0,"13":0.01157,"14":0.0771,"15":0.01928,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00386,"11.1":0.03855,"12.1":0.00771,"13.1":0.12722,"14.1":0.21974,"15.1":0.05783,"15.2-15.3":0.04626,"15.4":0.39321,"15.5":0.05397},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00427,"5.0-5.1":0.00142,"6.0-6.1":0,"7.0-7.1":0.00569,"8.1-8.4":0.00071,"9.0-9.2":0.00142,"9.3":0.05335,"10.0-10.2":0.00427,"10.3":0.04553,"11.0-11.2":0.00854,"11.3-11.4":0.01494,"12.0-12.1":0.03272,"12.2-12.5":0.45241,"13.0-13.1":0.01707,"13.2":0.00996,"13.3":0.0249,"13.4-13.7":0.11381,"14.0-14.4":0.41471,"14.5-14.8":0.77464,"15.0-15.1":0.38839,"15.2-15.3":0.93042,"15.4":3.81061},P:{"4":0.1567,"5.0-5.4":0.09049,"6.2-6.4":0.02011,"7.2-7.4":0.1567,"8.2":0.01015,"9.2":0.0311,"10.1":0.03016,"11.1-11.2":0.03134,"12.0":0.05223,"13.0":0.08357,"14.0":0.06268,"15.0":0.04179,"16.0":0.77304},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00108,"4.2-4.3":0.00542,"4.4":0,"4.4.3-4.4.4":0.11639},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00386,"10":0.00771,"11":0.11565,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.22737},Q:{"10.4":0.04302},O:{"0":1.73904},H:{"0":8.87198},L:{"0":48.36735},S:{"2.5":0.00615}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-af.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-af.js index 84cee8556a860c..f7cb9ee254c272 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-af.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-af.js @@ -1 +1 @@ -module.exports={C:{"2":0.05214,"15":0.05615,"18":0.05214,"21":0.05214,"23":0.05214,"25":0.1083,"30":0.05214,"43":0.00401,"47":0.00401,"51":0.05214,"52":0.06017,"65":0.00401,"72":0.00802,"78":0.01203,"84":0.01604,"88":0.00802,"89":0.00802,"91":0.02808,"92":0.00401,"93":0.00401,"94":0.00802,"95":0.01203,"96":0.02006,"97":1.99347,"98":0.81423,"99":0.03209,_:"3 4 5 6 7 8 9 10 11 12 13 14 16 17 19 20 22 24 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 87 90 100 3.5 3.6"},D:{"19":0.05214,"24":0.16445,"30":0.05615,"33":0.06017,"35":0.1083,"38":0.00401,"40":0.00802,"43":0.04813,"49":0.05214,"54":0.05615,"55":0.06017,"56":0.27275,"58":0.00401,"63":0.01203,"64":0.00401,"65":0.00401,"67":0.02808,"68":0.00802,"69":0.02006,"70":0.01203,"71":0.00401,"72":0.00802,"73":0.00802,"74":0.00802,"75":0.00802,"76":0.00802,"77":0.00802,"78":0.00802,"79":0.04813,"80":0.02006,"81":0.02407,"83":0.01604,"84":0.01604,"85":0.01604,"86":0.04011,"87":0.06819,"88":0.01604,"89":0.02006,"90":0.02407,"91":0.0361,"92":0.04011,"93":0.1805,"94":0.02808,"95":0.0361,"96":0.11231,"97":0.18852,"98":2.84781,"99":24.80804,"100":0.09626,"101":0.01203,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 25 26 27 28 29 31 32 34 36 37 39 41 42 44 45 46 47 48 50 51 52 53 57 59 60 61 62 66 102 103"},F:{"28":0.00401,"43":0.05615,"79":0.01203,"80":0.00802,"81":0.00401,"82":0.01604,"83":0.09225,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0.05214},B:{"12":0.01203,"13":0.00401,"14":0.00401,"15":0.00401,"16":0.00802,"17":0.01604,"18":0.0361,"84":0.00802,"85":0.00401,"89":0.00802,"90":0.00401,"92":0.01203,"95":0.00802,"96":0.01604,"97":0.04011,"98":0.30885,"99":1.18726,_:"79 80 81 83 86 87 88 91 93 94"},E:{"4":0,"5":0.05214,"13":0.01203,"14":0.0361,"15":0.02006,_:"0 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00401,"11.1":0.00802,"12.1":0.01203,"13.1":0.04412,"14.1":0.09626,"15.1":0.04011,"15.2-15.3":0.04412,"15.4":0.02808},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00377,"6.0-6.1":1.00357,"7.0-7.1":0.01811,"8.1-8.4":0.00302,"9.0-9.2":0.00226,"9.3":0.05886,"10.0-10.2":0.14412,"10.3":0.07244,"11.0-11.2":0.0498,"11.3-11.4":0.03546,"12.0-12.1":0.0415,"12.2-12.5":0.92208,"13.0-13.1":0.03018,"13.2":0.01509,"13.3":0.06716,"13.4-13.7":0.18411,"14.0-14.4":0.6195,"14.5-14.8":0.82247,"15.0-15.1":0.51612,"15.2-15.3":2.67115,"15.4":0.2641},P:{"4":0.26887,"5.0-5.4":0.01033,"6.2-6.4":0.03005,"7.2-7.4":0.21716,"8.2":0.01002,"9.2":0.04136,"10.1":0.01034,"11.1-11.2":0.09307,"12.0":0.04136,"13.0":0.12409,"14.0":0.15512,"15.0":0.12409,"16.0":2.18199},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00439,"4.2-4.3":0.03622,"4.4":0,"4.4.3-4.4.4":0.16298},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.1083,"9":0.11231,"10":0.1083,"11":0.12033,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":42.4835},S:{"2.5":0.01198},R:{_:"0"},M:{"0":0.21557},Q:{"10.4":0.00599},O:{"0":0.53293},H:{"0":7.32441}}; +module.exports={C:{"15":0.00251,"34":0.00753,"43":0.00502,"47":0.00502,"48":0.00251,"52":0.07025,"56":0.00753,"57":0.00251,"60":0.00502,"65":0.00502,"66":0.00251,"68":0.00251,"72":0.00753,"78":0.01255,"80":0.00251,"81":0.00502,"82":0.00251,"84":0.01004,"87":0.00251,"88":0.00753,"89":0.01255,"91":0.03011,"92":0.00502,"93":0.00753,"94":0.00753,"95":0.00753,"96":0.00753,"97":0.01255,"98":0.02258,"99":0.32868,"100":1.27457,"101":0.05018,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 44 45 46 49 50 51 53 54 55 58 59 61 62 63 64 67 69 70 71 73 74 75 76 77 79 83 85 86 90 102 103 3.5 3.6"},D:{"11":0.00251,"26":0.00251,"28":0.00251,"33":0.00502,"38":0.00502,"40":0.00753,"42":0.00502,"43":0.0552,"47":0.00502,"49":0.05269,"50":0.00502,"52":0.00251,"53":0.00502,"55":0.00502,"56":0.00753,"57":0.00251,"58":0.00502,"60":0.00251,"62":0.00251,"63":0.01004,"64":0.00753,"65":0.00753,"66":0.00502,"67":0.28603,"68":0.00753,"69":0.02509,"70":0.01004,"71":0.00502,"72":0.00753,"73":0.00502,"74":0.01505,"75":0.01004,"76":0.01004,"77":0.01004,"78":0.01004,"79":0.07025,"80":0.02509,"81":0.0276,"83":0.02007,"84":0.02258,"85":0.0276,"86":0.12043,"87":0.05771,"88":0.02509,"89":0.02509,"90":0.04014,"91":0.04014,"92":0.04014,"93":0.02509,"94":0.0276,"95":0.03011,"96":0.06774,"97":0.08029,"98":0.12043,"99":0.17814,"100":2.30075,"101":9.94568,"102":1.01364,"103":0.01505,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 29 30 31 32 34 35 36 37 39 41 44 45 46 48 51 54 59 61 104"},F:{"28":0.01004,"36":0.00251,"64":0.00502,"68":0.00251,"69":0.00502,"72":0.00502,"73":0.00502,"77":0.00251,"79":0.01004,"80":0.00502,"81":0.00502,"82":0.01255,"83":0.00753,"84":0.01505,"85":0.30861,"86":0.35879,"87":0.0276,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 70 71 74 75 76 78 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01505,"13":0.00753,"14":0.00502,"15":0.00502,"16":0.01004,"17":0.01004,"18":0.04516,"84":0.01004,"85":0.00502,"89":0.00753,"90":0.00502,"91":0.00251,"92":0.02007,"95":0.00502,"96":0.01255,"97":0.01255,"98":0.01505,"99":0.04516,"100":0.11792,"101":1.94448,_:"79 80 81 83 86 87 88 93 94"},E:{"4":0,"12":0.00251,"13":0.01004,"14":0.04014,"15":0.01505,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00502,"10.1":0.00502,"11.1":0.01004,"12.1":0.01255,"13.1":0.05018,"14.1":0.10287,"15.1":0.0276,"15.2-15.3":0.0276,"15.4":0.28603,"15.5":0.04014},G:{"8":0.00091,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00091,"5.0-5.1":0.00455,"6.0-6.1":0.00182,"7.0-7.1":0.02638,"8.1-8.4":0.00273,"9.0-9.2":0.00455,"9.3":0.07913,"10.0-10.2":0.01182,"10.3":0.12825,"11.0-11.2":0.04548,"11.3-11.4":0.03547,"12.0-12.1":0.04457,"12.2-12.5":1.27524,"13.0-13.1":0.03547,"13.2":0.02001,"13.3":0.08641,"13.4-13.7":0.21466,"14.0-14.4":0.79043,"14.5-14.8":0.87593,"15.0-15.1":0.47662,"15.2-15.3":0.825,"15.4":4.10771},P:{"4":0.30929,"5.0-5.4":0.09049,"6.2-6.4":0.02011,"7.2-7.4":0.25774,"8.2":0.01015,"9.2":0.03093,"10.1":0.01031,"11.1-11.2":0.11341,"12.0":0.04124,"13.0":0.12372,"14.0":0.16495,"15.0":0.09279,"16.0":1.26808},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00463,"4.2-4.3":0.01522,"4.4":0,"4.4.3-4.4.4":0.1899},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00511,"9":0.00511,"11":0.12777,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.29215},Q:{"10.4":0},O:{"0":0.70415},H:{"0":7.73737},L:{"0":56.01868},S:{"2.5":0.01498}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-an.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-an.js index f00a576f013ab8..8038ac8606f101 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-an.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-an.js @@ -1 +1 @@ -module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 3.5 3.6"},D:{"95":0.26175,"98":0.05711,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 96 97 99 100 101 102 103"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1","15.1":2.10348,"15.2-15.3":7.6382,"15.4":1.20879},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0.06768,"15.0-15.1":4.00853,"15.2-15.3":46.96226,"15.4":1.01515},P:{"4":0.26887,"5.0-5.4":0.01033,"6.2-6.4":0.03005,"7.2-7.4":0.21716,"8.2":0.01002,"9.2":0.04136,"10.1":0.01034,"11.1-11.2":0.09307,"12.0":0.04136,"13.0":0.12409,"14.0":0.15512,"15.0":0.12409,"16.0":2.18199},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":0.37067},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; +module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 3.5 3.6"},D:{"100":0.22386,"101":0.12558,"102":0.06552,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 103 104"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101"},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1","15.1":0.7644,"15.2-15.3":1.40322,"15.4":41.0592,"15.5":8.25006},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0,"15.0-15.1":1.5618,"15.2-15.3":6.01767,"15.4":37.42925},P:{"4":0.30929,"5.0-5.4":0.09049,"6.2-6.4":0.02011,"7.2-7.4":0.25774,"8.2":0.01015,"9.2":0.03093,"10.1":0.01031,"11.1-11.2":0.11341,"12.0":0.04124,"13.0":0.12372,"14.0":0.16495,"15.0":0.09279,"16.0":1.26808},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0},L:{"0":0.4468},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-as.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-as.js index eb2d4d59148d4d..2bd8cde749634f 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-as.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-as.js @@ -1 +1 @@ -module.exports={C:{"34":0.00652,"36":0.01629,"43":0.11077,"47":0.00326,"51":0.00652,"52":0.0619,"53":0.00652,"55":0.00652,"56":0.00977,"57":0.00326,"68":0.00326,"72":0.00652,"78":0.01303,"79":0.00326,"80":0.00652,"81":0.00326,"82":0.00326,"83":0.00326,"84":0.00652,"87":0.00652,"88":0.00977,"89":0.00652,"90":0.00652,"91":0.02606,"92":0.00652,"93":0.00652,"94":0.01303,"95":0.01629,"96":0.01955,"97":0.49196,"98":0.79169,"99":0.02606,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 44 45 46 48 49 50 54 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 85 86 100 3.5 3.6"},D:{"22":0.00977,"26":0.00652,"34":0.01629,"35":0.00326,"38":0.03584,"42":0.00652,"43":0.00326,"45":0.00326,"47":0.01303,"48":0.00977,"49":0.05213,"50":0.00326,"53":0.02281,"54":0.00326,"55":0.00977,"56":0.00977,"57":0.00977,"58":0.00652,"59":0.00326,"60":0.00326,"61":0.02281,"62":0.01303,"63":0.01303,"64":0.00652,"65":0.00977,"66":0.00652,"67":0.00977,"68":0.00977,"69":0.07819,"70":0.05213,"71":0.01955,"72":0.04887,"73":0.00977,"74":0.02932,"75":0.02932,"76":0.00977,"77":0.01629,"78":0.03584,"79":0.14661,"80":0.03584,"81":0.03258,"83":0.04561,"84":0.0391,"85":0.0391,"86":0.06516,"87":0.09448,"88":0.02606,"89":0.04887,"90":0.03258,"91":0.04887,"92":0.101,"93":0.21829,"94":0.05864,"95":0.05539,"96":0.202,"97":0.33232,"98":4.81207,"99":15.50156,"100":0.02281,"101":0.01955,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 36 37 39 40 41 44 46 51 52 102 103"},F:{"28":0.00977,"36":0.00652,"40":0.00977,"46":0.01955,"49":0.00326,"77":0.00326,"78":0.00652,"79":0.00326,"80":0.00326,"82":0.00977,"83":0.101,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00326,"14":0.00326,"16":0.00326,"17":0.00652,"18":0.02281,"84":0.00326,"89":0.00652,"92":0.00977,"94":0.00326,"95":0.00652,"96":0.01629,"97":0.02606,"98":0.48544,"99":1.92222,_:"13 15 79 80 81 83 85 86 87 88 90 91 93"},E:{"4":0,"12":0.00326,"13":0.03584,"14":0.12055,"15":0.05539,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.01629,"9.1":0.00652,"10.1":0.00652,"11.1":0.00977,"12.1":0.02281,"13.1":0.101,"14.1":0.39096,"15.1":0.10751,"15.2-15.3":0.12055,"15.4":0.07493},G:{"8":0.00102,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00512,"5.0-5.1":0.00615,"6.0-6.1":0.00615,"7.0-7.1":0.0246,"8.1-8.4":0.01127,"9.0-9.2":0.02357,"9.3":0.07482,"10.0-10.2":0.02152,"10.3":0.08507,"11.0-11.2":0.07687,"11.3-11.4":0.0287,"12.0-12.1":0.04202,"12.2-12.5":0.52787,"13.0-13.1":0.03485,"13.2":0.01332,"13.3":0.07175,"13.4-13.7":0.22345,"14.0-14.4":0.68469,"14.5-14.8":1.56413,"15.0-15.1":0.87534,"15.2-15.3":5.19772,"15.4":0.64779},P:{"4":0.35391,"5.0-5.4":0.01033,"6.2-6.4":0.03005,"7.2-7.4":0.1145,"8.2":0.01002,"9.2":0.03123,"10.1":0.01034,"11.1-11.2":0.08327,"12.0":0.03123,"13.0":0.14573,"14.0":0.14573,"15.0":0.12491,"16.0":2.05059},I:{"0":0,"3":0,"4":0.02005,"2.1":0,"2.2":0,"2.3":0,"4.1":0.03007,"4.2-4.3":0.11027,"4.4":0,"4.4.3-4.4.4":0.60146},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02725,"9":0.02725,"11":0.97178,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":50.51189},S:{"2.5":0.20226},R:{_:"0"},M:{"0":0.16181},Q:{"10.4":0.38429},O:{"0":1.77989},H:{"0":1.0085}}; +module.exports={C:{"34":0.00604,"36":0.01208,"43":0.04832,"47":0.00302,"51":0.00604,"52":0.05738,"53":0.00604,"54":0.00302,"55":0.00604,"56":0.00906,"57":0.00604,"68":0.00302,"71":0.00604,"72":0.00604,"76":0.00604,"78":0.01208,"79":0.00604,"80":0.00604,"81":0.00302,"82":0.00302,"83":0.00302,"84":0.00302,"87":0.01208,"88":0.00906,"89":0.00604,"90":0.00604,"91":0.02114,"93":0.00302,"94":0.00604,"95":0.00604,"96":0.00604,"97":0.00906,"98":0.01812,"99":0.2114,"100":1.02982,"101":0.03322,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 44 45 46 48 49 50 58 59 60 61 62 63 64 65 66 67 69 70 73 74 75 77 85 86 92 102 103 3.5 3.6"},D:{"22":0.00906,"26":0.00302,"34":0.0151,"35":0.00302,"38":0.0302,"41":0.00302,"42":0.00604,"43":0.00604,"45":0.00302,"46":0.00302,"47":0.01208,"48":0.00906,"49":0.04832,"50":0.00302,"51":0.00302,"53":0.02114,"54":0.00302,"55":0.00906,"56":0.01208,"57":0.00906,"58":0.00906,"59":0.00302,"60":0.00604,"61":0.00906,"62":0.01208,"63":0.0151,"64":0.00604,"65":0.00906,"66":0.00604,"67":0.00906,"68":0.00906,"69":0.06342,"70":0.03322,"71":0.01812,"72":0.03624,"73":0.00906,"74":0.0302,"75":0.02718,"76":0.00906,"77":0.01208,"78":0.02718,"79":0.14798,"80":0.0302,"81":0.0302,"83":0.04832,"84":0.04832,"85":0.04832,"86":0.07852,"87":0.07852,"88":0.01812,"89":0.05436,"90":0.02416,"91":0.03322,"92":0.07248,"93":0.02114,"94":0.0453,"95":0.03926,"96":0.09664,"97":0.10872,"98":0.11476,"99":0.19932,"100":3.15288,"101":13.87388,"102":1.46168,"103":0.0151,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 36 37 39 40 44 52 104"},F:{"28":0.00906,"36":0.00906,"40":0.00604,"46":0.01812,"84":0.00302,"85":0.17214,"86":0.20536,"87":0.0151,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00302,"16":0.00302,"17":0.00604,"18":0.02114,"84":0.00604,"85":0.00302,"86":0.00302,"89":0.00906,"92":0.00604,"96":0.00604,"97":0.00906,"98":0.00906,"99":0.02114,"100":0.10268,"101":2.1895,_:"13 14 15 79 80 81 83 87 88 90 91 93 94 95"},E:{"4":0,"13":0.02718,"14":0.09664,"15":0.03322,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.01208,"9.1":0.00302,"10.1":0.00604,"11.1":0.00906,"12.1":0.01812,"13.1":0.08456,"14.1":0.28388,"15.1":0.05738,"15.2-15.3":0.05436,"15.4":0.85768,"15.5":0.0755},G:{"8":0.00104,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00414,"5.0-5.1":0.00518,"6.0-6.1":0.00414,"7.0-7.1":0.01967,"8.1-8.4":0.00932,"9.0-9.2":0.02174,"9.3":0.06523,"10.0-10.2":0.01139,"10.3":0.07558,"11.0-11.2":0.0497,"11.3-11.4":0.02588,"12.0-12.1":0.0352,"12.2-12.5":0.57568,"13.0-13.1":0.0321,"13.2":0.01242,"13.3":0.06109,"13.4-13.7":0.18844,"14.0-14.4":0.57982,"14.5-14.8":1.15965,"15.0-15.1":0.46697,"15.2-15.3":0.8832,"15.4":6.06227},P:{"4":0.33998,"5.0-5.4":0.09049,"6.2-6.4":0.02011,"7.2-7.4":0.09272,"8.2":0.01015,"9.2":0.03091,"10.1":0.01031,"11.1-11.2":0.06181,"12.0":0.03091,"13.0":0.11333,"14.0":0.12363,"15.0":0.08242,"16.0":0.8757},I:{"0":0,"3":0,"4":0.05091,"2.1":0,"2.2":0,"2.3":0,"4.1":0.03818,"4.2-4.3":0.12726,"4.4":0,"4.4.3-4.4.4":0.64905},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02594,"9":0.0173,"11":0.90806,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.17448},Q:{"10.4":0.33499},O:{"0":1.53538},H:{"0":0.97788},L:{"0":53.59324},S:{"2.5":0.1675}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-eu.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-eu.js index 38f0905555f97f..0f1b446374a05b 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-eu.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-eu.js @@ -1 +1 @@ -module.exports={C:{"45":0.00477,"48":0.00954,"50":0.00477,"51":0.00477,"52":0.11443,"53":0.00477,"55":0.00954,"56":0.00954,"59":0.00954,"60":0.00954,"66":0.00477,"68":0.01907,"72":0.00954,"77":0.0143,"78":0.08582,"79":0.0143,"80":0.00954,"81":0.04291,"82":0.00954,"83":0.00954,"84":0.0143,"86":0.00954,"87":0.02384,"88":0.02384,"89":0.01907,"90":0.05722,"91":0.14781,"92":0.0143,"93":0.02384,"94":0.06198,"95":0.1335,"96":0.08582,"97":1.57344,"98":2.69392,"99":0.00954,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 54 57 58 61 62 63 64 65 67 69 70 71 73 74 75 76 85 100 3.5 3.6"},D:{"22":0.00954,"34":0.00477,"38":0.0143,"40":0.03814,"43":0.00954,"47":0.0143,"48":0.00477,"49":0.09536,"51":0.02861,"52":0.0143,"53":0.00477,"54":0.00477,"56":0.0143,"58":0.00477,"59":0.00477,"60":0.02384,"61":0.00477,"62":0.0143,"63":0.0143,"64":0.0143,"65":0.02384,"66":0.04291,"67":0.00954,"68":0.00954,"69":0.06675,"70":0.0143,"71":0.0143,"72":0.01907,"73":0.00477,"74":0.01907,"75":0.14304,"76":0.02384,"77":0.0143,"78":0.03814,"79":0.13827,"80":0.08106,"81":0.02861,"83":0.05722,"84":0.08106,"85":0.1192,"86":0.09536,"87":0.12874,"88":0.03814,"89":0.05722,"90":0.04291,"91":0.07152,"92":0.06198,"93":0.50541,"94":0.15258,"95":0.07629,"96":0.26701,"97":0.48157,"98":6.50355,"99":17.95152,"100":0.01907,"101":0.00954,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 41 42 44 45 46 50 55 57 102 103"},F:{"31":0.01907,"36":0.00954,"40":0.0143,"68":0.0143,"77":0.01907,"78":0.00954,"79":0.0143,"80":0.0143,"81":0.00954,"82":0.02384,"83":0.75811,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00954,"16":0.00477,"17":0.00954,"18":0.03338,"84":0.00477,"85":0.00954,"86":0.00477,"89":0.00477,"90":0.00477,"91":0.00954,"92":0.0143,"93":0.00477,"94":0.00954,"95":0.0143,"96":0.03338,"97":0.09536,"98":1.16816,"99":3.9336,_:"12 13 14 79 80 81 83 87 88"},E:{"4":0,"12":0.00477,"13":0.04768,"14":0.26701,"15":0.12874,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.00477,"9.1":0.00954,"10.1":0.00954,"11.1":0.03814,"12.1":0.06675,"13.1":0.28608,"14.1":0.82963,"15.1":0.29085,"15.2-15.3":0.33853,"15.4":0.18118},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0044,"6.0-6.1":0.00147,"7.0-7.1":0.01321,"8.1-8.4":0.00587,"9.0-9.2":0.01174,"9.3":0.09685,"10.0-10.2":0.00587,"10.3":0.10859,"11.0-11.2":0.02641,"11.3-11.4":0.03669,"12.0-12.1":0.01908,"12.2-12.5":0.52827,"13.0-13.1":0.02348,"13.2":0.0088,"13.3":0.04989,"13.4-13.7":0.17022,"14.0-14.4":0.52093,"14.5-14.8":2.10427,"15.0-15.1":0.89952,"15.2-15.3":9.43691,"15.4":0.59283},P:{"4":0.10526,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 9.2 10.1","11.1-11.2":0.06316,"12.0":0.02105,"13.0":0.09474,"14.0":0.11579,"15.0":0.18948,"16.0":2.93689},I:{"0":0,"3":0,"4":0.00574,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00574,"4.2-4.3":0.00901,"4.4":0,"4.4.3-4.4.4":0.04753},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01012,"9":0.01518,"11":0.30368,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":31.51506},S:{"2.5":0},R:{_:"0"},M:{"0":0.42379},Q:{"10.4":0},O:{"0":0.1308},H:{"0":0.64888}}; +module.exports={C:{"45":0.00942,"48":0.00942,"51":0.00942,"52":0.10828,"53":0.00471,"55":0.00942,"56":0.00942,"57":0.00471,"59":0.00942,"60":0.00942,"66":0.00471,"68":0.02354,"72":0.00471,"77":0.01883,"78":0.08474,"79":0.01883,"80":0.00942,"81":0.03296,"82":0.00942,"83":0.00942,"84":0.00942,"86":0.00942,"87":0.01412,"88":0.01883,"89":0.01412,"90":0.01883,"91":0.14124,"92":0.00942,"93":0.01883,"94":0.0565,"95":0.02354,"96":0.03296,"97":0.02825,"98":0.08474,"99":0.85215,"100":3.62045,"101":0.01412,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 50 54 58 61 62 63 64 65 67 69 70 71 73 74 75 76 85 102 103 3.5 3.6"},D:{"22":0.00942,"34":0.00471,"38":0.01412,"39":0.00471,"40":0.04237,"41":0.00471,"43":0.00942,"47":0.01883,"48":0.00942,"49":0.08474,"51":0.01883,"52":0.01412,"53":0.00471,"54":0.00942,"56":0.00942,"58":0.00942,"59":0.00942,"60":0.03296,"61":0.00942,"62":0.01883,"63":0.01883,"64":0.00471,"65":0.02354,"66":0.04237,"67":0.01412,"68":0.00471,"69":0.0565,"70":0.01412,"71":0.00942,"72":0.00942,"73":0.00471,"74":0.01883,"75":0.19303,"76":0.03296,"77":0.01412,"78":0.02825,"79":0.14124,"80":0.04237,"81":0.03296,"83":0.06591,"84":0.09887,"85":0.15066,"86":0.10358,"87":0.12712,"88":0.02354,"89":0.0565,"90":0.03766,"91":0.06591,"92":0.0565,"93":0.05179,"94":0.07062,"95":0.04708,"96":0.12712,"97":0.12241,"98":0.19303,"99":0.37664,"100":4.80216,"101":18.11168,"102":1.57247,"103":0.00942,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 42 44 45 46 50 55 57 104"},F:{"31":0.01883,"36":0.00471,"40":0.01412,"46":0.00471,"68":0.00942,"71":0.00471,"79":0.00471,"82":0.00471,"84":0.01412,"85":1.05459,"86":1.07342,"87":0.04237,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 72 73 74 75 76 77 78 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00942,"16":0.00942,"17":0.00942,"18":0.02825,"84":0.00942,"85":0.00942,"86":0.00942,"89":0.00942,"91":0.00471,"92":0.01412,"93":0.00471,"94":0.00471,"95":0.00942,"96":0.01883,"97":0.02354,"98":0.02354,"99":0.07533,"100":0.30131,"101":4.9434,_:"12 13 14 79 80 81 83 87 88 90"},E:{"4":0,"13":0.03766,"14":0.20244,"15":0.07533,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00471,"10.1":0.00942,"11.1":0.03766,"12.1":0.0565,"13.1":0.24952,"14.1":0.5885,"15.1":0.14595,"15.2-15.3":0.15066,"15.4":2.12331,"15.5":0.23069},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00459,"6.0-6.1":0.00153,"7.0-7.1":0.01531,"8.1-8.4":0.00459,"9.0-9.2":0.01531,"9.3":0.09647,"10.0-10.2":0.00919,"10.3":0.10413,"11.0-11.2":0.02144,"11.3-11.4":0.03828,"12.0-12.1":0.01838,"12.2-12.5":0.53442,"13.0-13.1":0.01991,"13.2":0.00919,"13.3":0.04441,"13.4-13.7":0.15313,"14.0-14.4":0.4502,"14.5-14.8":1.48687,"15.0-15.1":0.44407,"15.2-15.3":1.2189,"15.4":10.61944},P:{"4":0.12555,_:"5.0-5.4 6.2-6.4 8.2 9.2 10.1","7.2-7.4":0.01046,"11.1-11.2":0.04185,"12.0":0.02093,"13.0":0.07324,"14.0":0.09416,"15.0":0.18833,"16.0":1.10905},I:{"0":0,"3":0,"4":0.00647,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00647,"4.2-4.3":0.01052,"4.4":0,"4.4.3-4.4.4":0.04532},A:{"8":0.00974,"9":0.0146,"11":0.26285,_:"6 7 10 5.5"},K:{_:"0 10 11 12 11.1 11.5 12.1"},J:{"7":0,"10":0},N:{_:"10 11"},R:{_:"0"},M:{"0":0.44453},Q:{"10.4":0},O:{"0":0.13759},H:{"0":0.5962},L:{"0":32.6036},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-na.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-na.js index 7557a37ff0ca93..2a9745df2ae4a7 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-na.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-na.js @@ -1 +1 @@ -module.exports={C:{"2":0.00486,"4":0.06801,"11":0.00972,"38":0.00972,"43":0.00486,"44":0.02429,"45":0.00486,"48":0.00486,"51":0.01457,"52":0.04372,"53":0.01457,"54":0.01457,"55":0.02915,"56":0.01457,"57":0.00972,"58":0.00486,"59":0.00972,"78":0.0923,"79":0.00486,"80":0.00972,"81":0.00486,"82":0.00972,"83":0.00486,"84":0.00972,"85":0.00486,"86":0.00486,"87":0.01457,"88":0.01457,"89":0.00972,"90":0.00972,"91":0.08744,"92":0.00486,"93":0.01457,"94":0.07287,"95":0.02429,"96":0.03886,"97":0.85015,"98":1.46712,"99":0.00486,_:"3 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 50 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 100 3.5 3.6"},D:{"35":0.01457,"38":0.00486,"40":0.01943,"41":0.00486,"42":0.00486,"43":0.01457,"44":0.00486,"45":0.00486,"46":0.02429,"47":0.01457,"48":0.06801,"49":0.06801,"51":0.00486,"52":0.00972,"53":0.00486,"54":0.00486,"55":0.00486,"56":0.0923,"57":0.00486,"58":0.00972,"59":0.01457,"60":0.03886,"61":0.01457,"62":0.00486,"63":0.00972,"64":0.01943,"65":0.01943,"66":0.04372,"67":0.01943,"68":0.00972,"69":0.01943,"70":0.01943,"71":0.00486,"72":0.11173,"73":0.00486,"74":0.01457,"75":0.01943,"76":0.23318,"77":0.01457,"78":0.05344,"79":0.34978,"80":0.06315,"81":0.0583,"83":0.29148,"84":0.11173,"85":0.07773,"86":0.07287,"87":0.13117,"88":0.03401,"89":0.07773,"90":0.07773,"91":0.16031,"92":0.12145,"93":0.35463,"94":0.25262,"95":0.07773,"96":0.68012,"97":0.94245,"98":7.14126,"99":16.71638,"100":0.08259,"101":0.03886,"102":0.01943,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 50 103"},F:{"82":0.00972,"83":0.15546,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00972,"15":0.16031,"16":0.00486,"17":0.00972,"18":0.02429,"84":0.00486,"85":0.00972,"86":0.00486,"87":0.01943,"89":0.00486,"90":0.00486,"91":0.00486,"92":0.00972,"93":0.00486,"94":0.00972,"95":0.02429,"96":0.02915,"97":0.10688,"98":1.19021,"99":4.35277,_:"13 14 79 80 81 83 88"},E:{"4":0,"8":0.00486,"9":0.00972,"12":0.00972,"13":0.06801,"14":0.34978,"15":0.17489,_:"0 5 6 7 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.04372,"10.1":0.02429,"11.1":0.0583,"12.1":0.12145,"13.1":1.40882,"14.1":1.25336,"15.1":0.34978,"15.2-15.3":0.46151,"15.4":0.29634},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00515,"7.0-7.1":0.0103,"8.1-8.4":0.00515,"9.0-9.2":0.01287,"9.3":0.08752,"10.0-10.2":0.02059,"10.3":0.10811,"11.0-11.2":0.04119,"11.3-11.4":0.04633,"12.0-12.1":0.03861,"12.2-12.5":0.54313,"13.0-13.1":0.03604,"13.2":0.01802,"13.3":0.09009,"13.4-13.7":0.28315,"14.0-14.4":0.91637,"14.5-14.8":3.51363,"15.0-15.1":1.43891,"15.2-15.3":17.26955,"15.4":1.24586},P:{"4":0.04331,"5.0-5.4":0.01033,"6.2-6.4":0.03005,"7.2-7.4":0.1145,"8.2":0.01002,"9.2":0.03123,"10.1":0.01034,"11.1-11.2":0.03248,"12.0":0.01083,"13.0":0.04331,"14.0":0.06496,"15.0":0.05413,"16.0":1.90549},I:{"0":0,"3":0,"4":0.01131,"2.1":0,"2.2":0.00103,"2.3":0,"4.1":0.00206,"4.2-4.3":0.02262,"4.4":0,"4.4.3-4.4.4":0.04011},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02007,"9":0.07525,"11":0.3662,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":23.24132},S:{"2.5":0.00514},R:{_:"0"},M:{"0":0.42679},Q:{"10.4":0.00514},O:{"0":0.10284},H:{"0":0.18986}}; +module.exports={C:{"4":0.079,"11":0.02324,"38":0.00465,"43":0.00465,"44":0.02324,"45":0.00929,"48":0.00465,"51":0.02788,"52":0.05576,"53":0.02788,"54":0.01859,"55":0.03718,"56":0.02324,"57":0.01859,"58":0.00929,"59":0.00929,"78":0.06506,"79":0.00929,"80":0.00929,"81":0.00929,"82":0.00929,"83":0.00929,"84":0.00465,"86":0.00465,"88":0.00929,"89":0.00929,"90":0.00465,"91":0.08365,"93":0.00929,"94":0.08365,"95":0.00929,"96":0.01859,"97":0.01859,"98":0.03253,"99":0.4647,"100":1.81698,"101":0.00929,_:"2 3 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 50 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 85 87 92 102 103 3.5 3.6"},D:{"35":0.00929,"38":0.00465,"39":0.00929,"40":0.02324,"41":0.00929,"42":0.00929,"43":0.01394,"44":0.00929,"45":0.00929,"46":0.00929,"47":0.01859,"48":0.06971,"49":0.06506,"50":0.00465,"51":0.00929,"52":0.01394,"53":0.00929,"54":0.00929,"55":0.00929,"56":0.07435,"57":0.00929,"58":0.01394,"59":0.01394,"60":0.01859,"61":0.03253,"62":0.02324,"63":0.01859,"64":0.01394,"65":0.02324,"66":0.05576,"67":0.01859,"68":0.00929,"69":0.01859,"70":0.00929,"71":0.00465,"72":0.00929,"73":0.00465,"74":0.01859,"75":0.01394,"76":0.24629,"77":0.00929,"78":0.02324,"79":0.3857,"80":0.06041,"81":0.06041,"83":0.35317,"84":0.14406,"85":0.09759,"86":0.10688,"87":0.13476,"88":0.02324,"89":0.06971,"90":0.04647,"91":0.09759,"92":0.06506,"93":0.12547,"94":0.08829,"95":0.05112,"96":0.25559,"97":0.23235,"98":0.40894,"99":0.63664,"100":5.74369,"101":15.37692,"102":0.98052,"103":0.02788,"104":0.02324,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37"},F:{"71":0.00465,"85":0.28811,"86":0.26023,"87":0.01394,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.01394,"15":0.2277,"17":0.00465,"18":0.02324,"84":0.00465,"85":0.00929,"86":0.00929,"87":0.04182,"92":0.00465,"94":0.00465,"95":0.00929,"96":0.00929,"97":0.02788,"98":0.02788,"99":0.09759,"100":0.37176,"101":4.88864,_:"13 14 16 79 80 81 83 88 89 90 91 93"},E:{"4":0,"8":0.00465,"9":0.00929,"12":0.00929,"13":0.05576,"14":0.25559,"15":0.10223,_:"0 5 6 7 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.04647,"10.1":0.01859,"11.1":0.04647,"12.1":0.09759,"13.1":0.67382,"14.1":0.86899,"15.1":0.17659,"15.2-15.3":0.19053,"15.4":3.11349,"15.5":0.32529},G:{"8":0,"3.2":0.01071,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00268,"7.0-7.1":0.01071,"8.1-8.4":0.00535,"9.0-9.2":0.01874,"9.3":0.08567,"10.0-10.2":0.0241,"10.3":0.10174,"11.0-11.2":0.02677,"11.3-11.4":0.03748,"12.0-12.1":0.02945,"12.2-12.5":0.48995,"13.0-13.1":0.02945,"13.2":0.01606,"13.3":0.07229,"13.4-13.7":0.2249,"14.0-14.4":0.73627,"14.5-14.8":2.42299,"15.0-15.1":0.71217,"15.2-15.3":2.00533,"15.4":19.69718},P:{"4":0.06455,"5.0-5.4":0.09049,"6.2-6.4":0.02011,"7.2-7.4":0.09272,"8.2":0.01015,"9.2":0.03091,"10.1":0.01031,"11.1-11.2":0.02152,"12.0":0.03091,"13.0":0.03228,"14.0":0.05379,"15.0":0.03228,"16.0":0.69931},I:{"0":0,"3":0,"4":0.0095,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00633,"4.2-4.3":0.02216,"4.4":0,"4.4.3-4.4.4":0.03694},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02342,"9":0.08432,"10":0.00468,"11":1.63485,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.43351},Q:{"10.4":0.0107},O:{"0":0.11239},H:{"0":0.22801},L:{"0":24.59732},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-oc.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-oc.js index 4e90b4a65e6bee..ecb0b8d9e1e8f0 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-oc.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-oc.js @@ -1 +1 @@ -module.exports={C:{"34":0.01189,"48":0.00595,"51":0.03568,"52":0.05946,"53":0.03568,"54":0.03568,"55":0.03568,"56":0.02973,"57":0.02378,"58":0.01189,"59":0.01189,"66":0.00595,"78":0.0773,"80":0.00595,"84":0.01189,"85":0.00595,"87":0.02973,"88":0.01189,"89":0.01189,"90":0.01189,"91":0.05946,"93":0.01784,"94":0.13081,"95":0.01784,"96":0.03568,"97":0.86217,"98":1.52812,"99":0.01189,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 81 82 83 86 92 100 3.5 3.6"},D:{"25":0.01189,"26":0.01189,"34":0.02973,"38":0.09514,"39":0.01189,"40":0.01189,"41":0.01189,"42":0.01189,"43":0.01189,"44":0.01189,"45":0.01784,"46":0.01784,"47":0.01784,"48":0.01189,"49":0.07135,"50":0.00595,"51":0.01189,"52":0.01189,"53":0.04162,"54":0.01189,"55":0.01189,"56":0.01784,"57":0.01784,"58":0.01784,"59":0.04757,"60":0.03568,"61":0.01784,"62":0.01189,"63":0.01784,"64":0.02378,"65":0.03568,"66":0.01784,"67":0.01784,"68":0.01189,"69":0.01784,"70":0.01784,"71":0.00595,"72":0.01784,"73":0.01189,"74":0.02378,"75":0.01189,"76":0.02378,"77":0.01189,"78":0.01784,"79":0.30919,"80":0.05946,"81":0.03568,"83":0.04162,"84":0.04162,"85":0.05351,"86":0.06541,"87":0.1546,"88":0.02378,"89":0.03568,"90":0.04757,"91":0.07135,"92":0.17243,"93":0.57676,"94":0.1546,"95":0.1427,"96":0.47568,"97":0.91568,"98":10.1855,"99":23.82562,"100":0.19622,"101":0.01784,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 29 30 31 32 33 35 36 37 102 103"},F:{"36":0.00595,"46":0.05351,"82":0.00595,"83":0.18433,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"17":0.00595,"18":0.02378,"84":0.00595,"85":0.00595,"86":0.01189,"89":0.01189,"90":0.00595,"91":0.00595,"92":0.01189,"94":0.01189,"95":0.04162,"96":0.04757,"97":0.11892,"98":1.48055,"99":5.39302,_:"12 13 14 15 16 79 80 81 83 87 88 93"},E:{"4":0,"12":0.01189,"13":0.09514,"14":0.4519,"15":0.23784,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00595,"10.1":0.02378,"11.1":0.06541,"12.1":0.11892,"13.1":0.5173,"14.1":1.69461,"15.1":0.46379,"15.2-15.3":0.50541,"15.4":0.30325},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01192,"6.0-6.1":0.00994,"7.0-7.1":0.01192,"8.1-8.4":0.02186,"9.0-9.2":0.02584,"9.3":0.19875,"10.0-10.2":0.0318,"10.3":0.23651,"11.0-11.2":0.07155,"11.3-11.4":0.07751,"12.0-12.1":0.05764,"12.2-12.5":0.98578,"13.0-13.1":0.02782,"13.2":0.01391,"13.3":0.09142,"13.4-13.7":0.24446,"14.0-14.4":0.74927,"14.5-14.8":2.78245,"15.0-15.1":1.04342,"15.2-15.3":12.43555,"15.4":0.73934},P:{"4":0.62731,"5.0-5.4":0.01101,"6.2-6.4":0.03005,"7.2-7.4":0.01101,"8.2":0.01002,"9.2":0.03123,"10.1":0.01034,"11.1-11.2":0.03302,"12.0":0.02201,"13.0":0.07704,"14.0":0.09905,"15.0":0.08804,"16.0":2.61931},I:{"0":0,"3":0,"4":0.00253,"2.1":0,"2.2":0.00126,"2.3":0.0019,"4.1":0.00253,"4.2-4.3":0.00758,"4.4":0,"4.4.3-4.4.4":0.03285},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03805,"9":0.03805,"10":0.00951,"11":0.34249,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":16.76655},S:{"2.5":0},R:{_:"0"},M:{"0":0.38513},Q:{"10.4":0.01216},O:{"0":0.09324},H:{"0":0.14585}}; +module.exports={C:{"11":0.00553,"34":0.00553,"48":0.00553,"51":0.09959,"52":0.10513,"53":0.09406,"54":0.07193,"55":0.09406,"56":0.0664,"57":0.0664,"58":0.02767,"59":0.02767,"66":0.01107,"68":0.00553,"77":0.00553,"78":0.07193,"79":0.0166,"80":0.02213,"81":0.0166,"82":0.0166,"83":0.0166,"84":0.00553,"85":0.00553,"87":0.00553,"88":0.01107,"89":0.00553,"91":0.0664,"93":0.0166,"94":0.17152,"95":0.01107,"96":0.01107,"97":0.02213,"98":0.0332,"99":0.4869,"100":2.03614,"101":0.0166,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 60 61 62 63 64 65 67 69 70 71 72 73 74 75 76 86 90 92 102 103 3.5 3.6"},D:{"26":0.01107,"34":0.02767,"38":0.07746,"39":0.02767,"40":0.02767,"41":0.0332,"42":0.02767,"43":0.02767,"44":0.0332,"45":0.03873,"46":0.03873,"47":0.03873,"48":0.03873,"49":0.07746,"50":0.02213,"51":0.02767,"52":0.02213,"53":0.03873,"54":0.02767,"55":0.02767,"56":0.0332,"57":0.0332,"58":0.03873,"59":0.07193,"60":0.07746,"61":0.03873,"62":0.0498,"63":0.03873,"64":0.03873,"65":0.0498,"66":0.02213,"67":0.0166,"68":0.01107,"69":0.0166,"70":0.00553,"71":0.00553,"72":0.01107,"73":0.01107,"74":0.02213,"75":0.0166,"76":0.02767,"77":0.01107,"78":0.02213,"79":0.23239,"80":0.0664,"81":0.03873,"83":0.08853,"84":0.17706,"85":0.14939,"86":0.19366,"87":0.22132,"88":0.02213,"89":0.0332,"90":0.04426,"91":0.03873,"92":0.10513,"93":0.0664,"94":0.07193,"95":0.07193,"96":0.27112,"97":0.23792,"98":0.32645,"99":0.70269,"100":6.32975,"101":20.67682,"102":1.90889,"103":0.0166,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 104"},F:{"28":0.00553,"46":0.03873,"68":0.00553,"70":0.01107,"71":0.00553,"72":0.00553,"85":0.30432,"86":0.26005,"87":0.0332,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 73 74 75 76 77 78 79 80 81 82 83 84 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.00553,"16":0.00553,"17":0.00553,"18":0.03873,"83":0.00553,"84":0.01107,"85":0.0166,"86":0.01107,"89":0.00553,"90":0.00553,"92":0.0166,"95":0.02767,"96":0.02767,"97":0.02213,"98":0.0166,"99":0.11066,"100":0.38178,"101":5.96457,_:"12 13 14 79 80 81 87 88 91 93 94"},E:{"4":0,"12":0.01107,"13":0.09406,"14":0.38178,"15":0.17152,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01107,"10.1":0.02213,"11.1":0.05533,"12.1":0.11619,"13.1":0.49797,"14.1":1.33345,"15.1":0.27112,"15.2-15.3":0.24345,"15.4":4.3766,"15.5":0.41498},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00876,"6.0-6.1":0.01095,"7.0-7.1":0.01314,"8.1-8.4":0.01971,"9.0-9.2":0.03723,"9.3":0.19054,"10.0-10.2":0.05256,"10.3":0.24967,"11.0-11.2":0.04599,"11.3-11.4":0.07008,"12.0-12.1":0.04818,"12.2-12.5":0.95489,"13.0-13.1":0.02847,"13.2":0.01533,"13.3":0.08979,"13.4-13.7":0.24529,"14.0-14.4":0.68769,"14.5-14.8":2.11784,"15.0-15.1":0.60228,"15.2-15.3":1.50022,"15.4":14.90369},P:{"4":0.35565,"5.0-5.4":0.02155,"6.2-6.4":0.02011,"7.2-7.4":0.02155,"8.2":0.01015,"9.2":0.03091,"10.1":0.01031,"11.1-11.2":0.03233,"12.0":0.02155,"13.0":0.07544,"14.0":0.08622,"15.0":0.06466,"16.0":1.07772},I:{"0":0,"3":0,"4":0.00144,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00216,"4.2-4.3":0.00576,"4.4":0,"4.4.3-4.4.4":0.0353},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.05939,"9":0.06682,"10":0.02227,"11":0.43802,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.4198},Q:{"10.4":0.0134},O:{"0":0.10272},H:{"0":0.15221},L:{"0":19.03463},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-sa.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-sa.js index abd72ceb363a7e..121a5babe0c815 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-sa.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-sa.js @@ -1 +1 @@ -module.exports={C:{"27":0.00812,"47":0.00406,"51":0.0203,"52":0.069,"53":0.0203,"54":0.01218,"55":0.0203,"56":0.01624,"57":0.01624,"58":0.00406,"59":0.00812,"60":0.00812,"66":0.00406,"68":0.00812,"72":0.00406,"73":0.00406,"78":0.02435,"79":0.00406,"80":0.00406,"81":0.00406,"84":0.00406,"86":0.01218,"87":0.00406,"88":0.01624,"89":0.00812,"90":0.01218,"91":0.04465,"92":0.00406,"93":0.00812,"94":0.03247,"95":0.01218,"96":0.02435,"97":0.58044,"98":0.94981,"99":0.00812,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 61 62 63 64 65 67 69 70 71 74 75 76 77 82 83 85 100 3.5 3.6"},D:{"38":0.01624,"39":0.00812,"40":0.00406,"41":0.00812,"42":0.00812,"43":0.00812,"44":0.00812,"45":0.00812,"46":0.00812,"47":0.0203,"48":0.00812,"49":0.10553,"50":0.00406,"51":0.01218,"52":0.00406,"53":0.00812,"54":0.00406,"55":0.01218,"56":0.00812,"57":0.00812,"58":0.01218,"59":0.00812,"60":0.00812,"61":0.00812,"62":0.01624,"63":0.01624,"64":0.01218,"65":0.01218,"66":0.01218,"67":0.00812,"68":0.00812,"69":0.0203,"70":0.00812,"71":0.00812,"72":0.00812,"73":0.00812,"74":0.01218,"75":0.02435,"76":0.0203,"77":0.01218,"78":0.01218,"79":0.09336,"80":0.02841,"81":0.02841,"83":0.02841,"84":0.04871,"85":0.03653,"86":0.06089,"87":0.0893,"88":0.02435,"89":0.04871,"90":0.05683,"91":0.59261,"92":0.05683,"93":0.21513,"94":0.05683,"95":0.05683,"96":0.21513,"97":0.36531,"98":6.55123,"99":21.76842,"100":0.03653,"101":0.01218,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 102 103"},F:{"28":0.00406,"36":0.01218,"82":0.01218,"83":1.15276,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.01218,"17":0.00406,"18":0.01624,"84":0.00406,"89":0.00406,"91":0.00406,"92":0.01218,"95":0.00406,"96":0.01218,"97":0.04871,"98":0.49114,"99":1.86308,_:"12 13 14 16 79 80 81 83 85 86 87 88 90 93 94"},E:{"4":0,"13":0.01218,"14":0.04059,"15":0.02841,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00812,"12.1":0.01624,"13.1":0.06089,"14.1":0.13395,"15.1":0.05277,"15.2-15.3":0.06089,"15.4":0.03653},G:{"8":0.00156,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00519,"6.0-6.1":0.00052,"7.0-7.1":0.00415,"8.1-8.4":0,"9.0-9.2":0.00726,"9.3":0.02906,"10.0-10.2":0.01297,"10.3":0.0384,"11.0-11.2":0.00675,"11.3-11.4":0.01764,"12.0-12.1":0.00571,"12.2-12.5":0.21481,"13.0-13.1":0.00726,"13.2":0.00311,"13.3":0.02024,"13.4-13.7":0.0742,"14.0-14.4":0.18887,"14.5-14.8":0.81982,"15.0-15.1":0.31599,"15.2-15.3":3.17654,"15.4":0.23557},P:{"4":0.15444,"5.0-5.4":0.01101,"6.2-6.4":0.03005,"7.2-7.4":0.20592,"8.2":0.01002,"9.2":0.0103,"10.1":0.01034,"11.1-11.2":0.08237,"12.0":0.02059,"13.0":0.09266,"14.0":0.10296,"15.0":0.08237,"16.0":1.71943},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00264,"4.2-4.3":0.00726,"4.4":0,"4.4.3-4.4.4":0.03762},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01218,"9":0.01218,"10":0.00406,"11":0.13801,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":45.71365},S:{"2.5":0},R:{_:"0"},M:{"0":0.13068},Q:{"10.4":0},O:{"0":0.0594},H:{"0":0.17996}}; +module.exports={C:{"19":0.00891,"27":0.00891,"51":0.01337,"52":0.06238,"53":0.01337,"54":0.00446,"55":0.01337,"56":0.00891,"57":0.00891,"59":0.00446,"60":0.00891,"66":0.00446,"68":0.00891,"72":0.00446,"73":0.00446,"78":0.02674,"79":0.00446,"80":0.00891,"81":0.00446,"84":0.00446,"86":0.00891,"88":0.01337,"89":0.00891,"90":0.01337,"91":0.0713,"94":0.03119,"95":0.00891,"96":0.00891,"97":0.01782,"98":0.02228,"99":0.31192,"100":1.38582,"101":0.01337,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 58 61 62 63 64 65 67 69 70 71 74 75 76 77 82 83 85 87 92 93 102 103 3.5 3.6"},D:{"38":0.01337,"41":0.00891,"42":0.00446,"43":0.00446,"45":0.00446,"46":0.00446,"47":0.01337,"48":0.00446,"49":0.09803,"51":0.00891,"53":0.00891,"55":0.00891,"56":0.00891,"57":0.00446,"58":0.01337,"59":0.00446,"60":0.00891,"61":0.00446,"62":0.00891,"63":0.01337,"64":0.00446,"65":0.00891,"66":0.01337,"67":0.00891,"68":0.00891,"69":0.02228,"70":0.00891,"71":0.00446,"72":0.00891,"73":0.00891,"74":0.01337,"75":0.01782,"76":0.02228,"77":0.00891,"78":0.01337,"79":0.10694,"80":0.02674,"81":0.03119,"83":0.03565,"84":0.05793,"85":0.05347,"86":0.08466,"87":0.11586,"88":0.02228,"89":0.0401,"90":0.03119,"91":0.60602,"92":0.04902,"93":0.0401,"94":0.04456,"95":0.0401,"96":0.10694,"97":0.11586,"98":0.13814,"99":0.28518,"100":5.40513,"101":23.65245,"102":2.56666,"103":0.01337,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 44 50 52 54 104"},F:{"28":0.00446,"82":0.00446,"84":0.00891,"85":1.28333,"86":1.14965,"87":0.04456,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"15":0.01782,"16":0.00446,"17":0.00446,"18":0.01782,"84":0.00446,"92":0.00891,"96":0.00446,"97":0.01337,"98":0.00891,"99":0.04456,"100":0.10249,"101":2.62904,_:"12 13 14 79 80 81 83 85 86 87 88 89 90 91 93 94 95"},E:{"4":0,"13":0.00891,"14":0.0401,"15":0.01782,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00891,"12.1":0.01337,"13.1":0.06238,"14.1":0.12031,"15.1":0.03565,"15.2-15.3":0.03565,"15.4":0.36094,"15.5":0.05347},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00554,"6.0-6.1":0.00111,"7.0-7.1":0.00443,"8.1-8.4":0.00055,"9.0-9.2":0.01109,"9.3":0.02771,"10.0-10.2":0.01885,"10.3":0.04157,"11.0-11.2":0.0061,"11.3-11.4":0.01885,"12.0-12.1":0.00665,"12.2-12.5":0.20176,"13.0-13.1":0.00665,"13.2":0.00443,"13.3":0.01829,"13.4-13.7":0.06707,"14.0-14.4":0.16019,"14.5-14.8":0.56482,"15.0-15.1":0.14412,"15.2-15.3":0.39632,"15.4":3.83235},P:{"4":0.1334,"5.0-5.4":0.02155,"6.2-6.4":0.02011,"7.2-7.4":0.19496,"8.2":0.01015,"9.2":0.01026,"10.1":0.01031,"11.1-11.2":0.06157,"12.0":0.02052,"13.0":0.07183,"14.0":0.09235,"15.0":0.05131,"16.0":0.6875},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00281,"4.2-4.3":0.00561,"4.4":0,"4.4.3-4.4.4":0.03593},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00446,"9":0.00891,"11":0.13368,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.1386},Q:{"10.4":0},O:{"0":0.06098},H:{"0":0.1942},L:{"0":47.2776},S:{"2.5":0}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-ww.js b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-ww.js index c913efbb162cca..29f91b36095882 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-ww.js +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/data/regions/alt-ww.js @@ -1 +1 @@ -module.exports={C:{"2":0.00412,"4":0.01647,"25":0.00412,"36":0.00824,"43":0.04942,"44":0.00824,"48":0.00412,"51":0.01235,"52":0.07001,"53":0.00824,"54":0.00824,"55":0.01235,"56":0.01235,"57":0.00824,"59":0.00824,"60":0.00824,"66":0.00412,"68":0.00824,"72":0.00412,"77":0.00412,"78":0.05353,"79":0.00824,"80":0.00824,"81":0.01235,"82":0.00412,"83":0.00412,"84":0.00824,"86":0.00412,"87":0.01235,"88":0.01235,"89":0.01235,"90":0.02059,"91":0.09883,"92":0.00824,"93":0.01235,"94":0.04118,"95":0.04118,"96":0.03706,"97":0.85654,"98":1.47424,"99":0.01647,_:"3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 45 46 47 49 50 58 61 62 63 64 65 67 69 70 71 73 74 75 76 85 100 3.5 3.6"},D:{"22":0.00824,"24":0.00824,"33":0.00412,"34":0.00824,"35":0.01235,"38":0.02059,"40":0.01647,"41":0.00412,"42":0.00412,"43":0.01235,"45":0.00412,"46":0.00824,"47":0.01235,"48":0.02471,"49":0.07001,"51":0.01235,"52":0.00824,"53":0.01235,"54":0.00824,"55":0.01235,"56":0.0453,"57":0.00824,"58":0.00824,"59":0.00824,"60":0.01647,"61":0.01647,"62":0.01235,"63":0.01235,"64":0.01235,"65":0.01647,"66":0.02471,"67":0.01235,"68":0.00824,"69":0.05765,"70":0.03294,"71":0.01647,"72":0.05765,"73":0.00824,"74":0.02059,"75":0.04942,"76":0.06589,"77":0.01647,"78":0.04118,"79":0.18943,"80":0.05353,"81":0.03706,"83":0.10295,"84":0.06589,"85":0.06589,"86":0.07001,"87":0.11119,"88":0.02883,"89":0.05765,"90":0.0453,"91":0.10707,"92":0.09471,"93":0.30473,"94":0.12766,"95":0.06589,"96":0.32944,"97":0.50651,"98":5.45223,"99":17.5468,"100":0.17296,"101":0.02059,"102":0.00412,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 25 26 27 28 29 30 31 32 36 37 39 44 50 103"},F:{"28":0.00412,"31":0.00412,"36":0.00412,"40":0.00824,"46":0.00824,"68":0.00412,"77":0.00824,"78":0.00824,"79":0.00824,"80":0.00824,"82":0.01235,"83":0.28826,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 81 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00412,"15":0.04118,"16":0.00412,"17":0.00824,"18":0.02471,"84":0.00412,"85":0.00412,"86":0.00412,"87":0.00824,"89":0.00412,"90":0.00412,"91":0.00412,"92":0.01235,"93":0.00412,"94":0.00824,"95":0.01235,"96":0.02471,"97":0.06177,"98":0.76595,"99":3.03908,_:"13 14 79 80 81 83 88"},E:{"4":0,"12":0.00412,"13":0.0453,"14":0.2059,"15":0.09883,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.00824,"9.1":0.01647,"10.1":0.01235,"11.1":0.02883,"12.1":0.05765,"13.1":0.46122,"14.1":0.68771,"15.1":0.2059,"15.2-15.3":0.24708,"15.4":0.16884},G:{"8":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00292,"5.0-5.1":0.00438,"6.0-6.1":0.0613,"7.0-7.1":0.01751,"8.1-8.4":0.0073,"9.0-9.2":0.01751,"9.3":0.08173,"10.0-10.2":0.02481,"10.3":0.09486,"11.0-11.2":0.054,"11.3-11.4":0.03503,"12.0-12.1":0.03503,"12.2-12.5":0.55312,"13.0-13.1":0.03065,"13.2":0.01313,"13.3":0.07005,"13.4-13.7":0.21891,"14.0-14.4":0.68009,"14.5-14.8":2.07092,"15.0-15.1":0.96322,"15.2-15.3":8.72442,"15.4":0.82895},P:{"4":0.21861,"5.0-5.4":0.01033,"6.2-6.4":0.03005,"7.2-7.4":0.08328,"8.2":0.01002,"9.2":0.02082,"10.1":0.08015,"11.1-11.2":0.05205,"12.0":0.03123,"13.0":0.1041,"14.0":0.12492,"15.0":0.11451,"16.0":2.1861},I:{"0":0,"3":0,"4":0.01504,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01504,"4.2-4.3":0.06392,"4.4":0,"4.4.3-4.4.4":0.27074},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02896,"9":0.05792,"10":0.01448,"11":0.55751,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02879,"11":0.04426},L:{"0":38.47361},S:{"2.5":0.08236},R:{_:"0"},M:{"0":0.29415},Q:{"10.4":0.16472},O:{"0":0.8295},H:{"0":1.03595}}; +module.exports={C:{"4":0.01934,"11":0.00773,"36":0.00387,"43":0.0232,"44":0.00773,"45":0.00387,"48":0.00387,"51":0.0116,"52":0.06961,"53":0.0116,"54":0.00773,"55":0.01547,"56":0.0116,"57":0.0116,"59":0.00773,"60":0.00387,"66":0.00387,"68":0.00773,"72":0.00387,"77":0.00387,"78":0.04254,"79":0.00773,"80":0.00773,"81":0.0116,"82":0.00773,"83":0.00387,"84":0.00387,"86":0.00387,"87":0.0116,"88":0.0116,"89":0.00773,"90":0.00773,"91":0.09668,"92":0.00387,"93":0.00773,"94":0.03867,"95":0.0116,"96":0.01547,"97":0.01547,"98":0.0348,"99":0.4215,"100":1.84456,"101":0.0232,_:"2 3 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 46 47 49 50 58 61 62 63 64 65 67 69 70 71 73 74 75 76 85 102 103 3.5 3.6"},D:{"22":0.00773,"34":0.00773,"38":0.01934,"39":0.00387,"40":0.01934,"41":0.00773,"42":0.00773,"43":0.0116,"44":0.00387,"45":0.00387,"46":0.00387,"47":0.01547,"48":0.0232,"49":0.06187,"50":0.00387,"51":0.00773,"52":0.00773,"53":0.01547,"54":0.00387,"55":0.00773,"56":0.02707,"57":0.00773,"58":0.0116,"59":0.00773,"60":0.01547,"61":0.01547,"62":0.01547,"63":0.01547,"64":0.00773,"65":0.01547,"66":0.02707,"67":0.0232,"68":0.00773,"69":0.0464,"70":0.01934,"71":0.0116,"72":0.01934,"73":0.00773,"74":0.0232,"75":0.05801,"76":0.07347,"77":0.0116,"78":0.03094,"79":0.20495,"80":0.04254,"81":0.03867,"83":0.13148,"84":0.08121,"85":0.08894,"86":0.09281,"87":0.10441,"88":0.01934,"89":0.05801,"90":0.0348,"91":0.08121,"92":0.06574,"93":0.05414,"94":0.06187,"95":0.04254,"96":0.14308,"97":0.14308,"98":0.20495,"99":0.3519,"100":4.17636,"101":15.44867,"102":1.5468,"103":0.01547,"104":0.00773,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37"},F:{"28":0.00773,"31":0.00387,"36":0.00387,"40":0.00773,"46":0.0116,"68":0.00387,"71":0.00387,"84":0.00773,"85":0.44857,"86":0.47564,"87":0.02707,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 72 73 74 75 76 77 78 79 80 81 82 83 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},B:{"12":0.00773,"15":0.05801,"16":0.00387,"17":0.00773,"18":0.0232,"84":0.00773,"85":0.00773,"86":0.00387,"87":0.0116,"89":0.00773,"92":0.00773,"95":0.00773,"96":0.0116,"97":0.01547,"98":0.01547,"99":0.05414,"100":0.21269,"101":3.52284,_:"13 14 79 80 81 83 88 90 91 93 94"},E:{"4":0,"12":0.00387,"13":0.0348,"14":0.15855,"15":0.05801,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.00773,"9.1":0.01547,"10.1":0.00773,"11.1":0.0232,"12.1":0.0464,"13.1":0.26682,"14.1":0.49111,"15.1":0.10828,"15.2-15.3":0.10828,"15.4":1.67054,"15.5":0.18948},G:{"8":0,"3.2":0.00304,"4.0-4.1":0,"4.2-4.3":0.00152,"5.0-5.1":0.00455,"6.0-6.1":0.00455,"7.0-7.1":0.0167,"8.1-8.4":0.00759,"9.0-9.2":0.01974,"9.3":0.07743,"10.0-10.2":0.01366,"10.3":0.09261,"11.0-11.2":0.03796,"11.3-11.4":0.03188,"12.0-12.1":0.03036,"12.2-12.5":0.57996,"13.0-13.1":0.02885,"13.2":0.01215,"13.3":0.06073,"13.4-13.7":0.18978,"14.0-14.4":0.59211,"14.5-14.8":1.50911,"15.0-15.1":0.51316,"15.2-15.3":1.20395,"15.4":10.14779},P:{"4":0.20935,"5.0-5.4":0.09049,"6.2-6.4":0.02011,"7.2-7.4":0.0628,"8.2":0.01015,"9.2":0.01047,"10.1":0.03016,"11.1-11.2":0.04187,"12.0":0.02093,"13.0":0.09421,"14.0":0.09421,"15.0":0.09421,"16.0":0.88972},I:{"0":0,"3":0,"4":0.01494,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01991,"4.2-4.3":0.05974,"4.4":0,"4.4.3-4.4.4":0.32858},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01669,"9":0.03895,"10":0.00556,"11":0.8514,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.02648,_:"11"},R:{_:"0"},M:{"0":0.30665},Q:{"10.4":0.15333},O:{"0":0.76663},H:{"0":0.99869},L:{"0":41.33544},S:{"2.5":0.0736}}; diff --git a/tools/node_modules/eslint/node_modules/caniuse-lite/package.json b/tools/node_modules/eslint/node_modules/caniuse-lite/package.json index 1b2d989740de37..1de89d8716da4a 100644 --- a/tools/node_modules/eslint/node_modules/caniuse-lite/package.json +++ b/tools/node_modules/eslint/node_modules/caniuse-lite/package.json @@ -1,6 +1,6 @@ { "name": "caniuse-lite", - "version": "1.0.30001327", + "version": "1.0.30001356", "description": "A smaller version of caniuse-db, with only the essentials!", "main": "dist/unpacker/index.js", "files": [ diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/chromium-versions.js b/tools/node_modules/eslint/node_modules/electron-to-chromium/chromium-versions.js index 4573edff68ba36..c84df508124c6d 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/chromium-versions.js +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/chromium-versions.js @@ -42,5 +42,7 @@ module.exports = { "98": "17.0", "99": "18.0", "100": "18.0", - "102": "19.0" + "102": "19.0", + "103": "20.0", + "104": "20.0" }; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/chromium-versions.json b/tools/node_modules/eslint/node_modules/electron-to-chromium/chromium-versions.json index 064c5fd334d790..2a4329d3f0dd85 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/chromium-versions.json +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/chromium-versions.json @@ -1 +1 @@ -{"39":"0.20","40":"0.21","41":"0.21","42":"0.25","43":"0.27","44":"0.30","45":"0.31","47":"0.36","49":"0.37","50":"1.1","51":"1.2","52":"1.3","53":"1.4","54":"1.4","56":"1.6","58":"1.7","59":"1.8","61":"2.0","66":"3.0","69":"4.0","72":"5.0","73":"5.0","76":"6.0","78":"7.0","79":"8.0","80":"8.0","82":"9.0","83":"9.0","84":"10.0","85":"10.0","86":"11.0","87":"11.0","89":"12.0","90":"13.0","91":"13.0","92":"14.0","93":"14.0","94":"15.0","95":"16.0","96":"16.0","98":"17.0","99":"18.0","100":"18.0","102":"19.0"} \ No newline at end of file +{"39":"0.20","40":"0.21","41":"0.21","42":"0.25","43":"0.27","44":"0.30","45":"0.31","47":"0.36","49":"0.37","50":"1.1","51":"1.2","52":"1.3","53":"1.4","54":"1.4","56":"1.6","58":"1.7","59":"1.8","61":"2.0","66":"3.0","69":"4.0","72":"5.0","73":"5.0","76":"6.0","78":"7.0","79":"8.0","80":"8.0","82":"9.0","83":"9.0","84":"10.0","85":"10.0","86":"11.0","87":"11.0","89":"12.0","90":"13.0","91":"13.0","92":"14.0","93":"14.0","94":"15.0","95":"16.0","96":"16.0","98":"17.0","99":"18.0","100":"18.0","102":"19.0","103":"20.0","104":"20.0"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.js b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.js index 6660f97b3b635d..bf68030957339c 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.js +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.js @@ -1596,7 +1596,12 @@ module.exports = { "15.4.2", "15.5.0", "15.5.1", - "15.5.2" + "15.5.2", + "15.5.3", + "15.5.4", + "15.5.5", + "15.5.6", + "15.5.7" ], "95.0.4629.0": [ "16.0.0-alpha.1", @@ -1693,7 +1698,13 @@ module.exports = { "16.1.1", "16.2.0", "16.2.1", - "16.2.2" + "16.2.2", + "16.2.3", + "16.2.4", + "16.2.5", + "16.2.6", + "16.2.7", + "16.2.8" ], "96.0.4664.4": [ "17.0.0-alpha.1", @@ -1789,7 +1800,14 @@ module.exports = { "98.0.4758.141": [ "17.3.0", "17.3.1", - "17.4.0" + "17.4.0", + "17.4.1", + "17.4.2", + "17.4.3", + "17.4.4", + "17.4.5", + "17.4.6", + "17.4.7" ], "99.0.4767.0": [ "18.0.0-alpha.1", @@ -1847,7 +1865,25 @@ module.exports = { "18.0.2" ], "100.0.4896.75": [ - "18.0.3" + "18.0.3", + "18.0.4" + ], + "100.0.4896.127": [ + "18.1.0" + ], + "100.0.4896.143": [ + "18.2.0", + "18.2.1", + "18.2.2", + "18.2.3" + ], + "100.0.4896.160": [ + "18.2.4", + "18.3.0", + "18.3.1", + "18.3.2", + "18.3.3", + "18.3.4" ], "102.0.4962.3": [ "19.0.0-alpha.1", @@ -1855,7 +1891,94 @@ module.exports = { "19.0.0-nightly.20220329", "20.0.0-nightly.20220330" ], + "102.0.4971.0": [ + "19.0.0-alpha.2", + "19.0.0-alpha.3", + "20.0.0-nightly.20220411" + ], + "102.0.4989.0": [ + "19.0.0-alpha.4", + "19.0.0-alpha.5", + "20.0.0-nightly.20220414", + "20.0.0-nightly.20220415", + "20.0.0-nightly.20220418", + "20.0.0-nightly.20220419", + "20.0.0-nightly.20220420", + "20.0.0-nightly.20220421" + ], + "102.0.4999.0": [ + "19.0.0-beta.1", + "19.0.0-beta.2", + "19.0.0-beta.3", + "20.0.0-nightly.20220425", + "20.0.0-nightly.20220426", + "20.0.0-nightly.20220427", + "20.0.0-nightly.20220428", + "20.0.0-nightly.20220429", + "20.0.0-nightly.20220502", + "20.0.0-nightly.20220503", + "20.0.0-nightly.20220504", + "20.0.0-nightly.20220505", + "20.0.0-nightly.20220506", + "20.0.0-nightly.20220509", + "20.0.0-nightly.20220511", + "20.0.0-nightly.20220512", + "20.0.0-nightly.20220513", + "20.0.0-nightly.20220516", + "20.0.0-nightly.20220517" + ], + "102.0.5005.27": [ + "19.0.0-beta.4" + ], + "102.0.5005.40": [ + "19.0.0-beta.5", + "19.0.0-beta.6", + "19.0.0-beta.7" + ], + "102.0.5005.49": [ + "19.0.0-beta.8" + ], "102.0.4961.0": [ "19.0.0-nightly.20220325" + ], + "102.0.5005.61": [ + "19.0.0", + "19.0.1" + ], + "102.0.5005.63": [ + "19.0.2", + "19.0.3", + "19.0.4" + ], + "103.0.5044.0": [ + "20.0.0-alpha.1", + "20.0.0-nightly.20220518", + "20.0.0-nightly.20220519", + "20.0.0-nightly.20220520", + "20.0.0-nightly.20220523", + "20.0.0-nightly.20220524", + "21.0.0-nightly.20220526", + "21.0.0-nightly.20220527", + "21.0.0-nightly.20220530", + "21.0.0-nightly.20220531" + ], + "104.0.5073.0": [ + "20.0.0-alpha.2", + "20.0.0-alpha.3", + "20.0.0-alpha.4", + "20.0.0-alpha.5", + "20.0.0-alpha.6", + "21.0.0-nightly.20220602", + "21.0.0-nightly.20220603", + "21.0.0-nightly.20220606", + "21.0.0-nightly.20220607", + "21.0.0-nightly.20220608", + "21.0.0-nightly.20220609", + "21.0.0-nightly.20220610", + "21.0.0-nightly.20220613", + "21.0.0-nightly.20220614", + "21.0.0-nightly.20220615", + "21.0.0-nightly.20220616", + "21.0.0-nightly.20220617" ] }; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.json b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.json index c500f3da8e5c2d..8ad6d94a28ec93 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.json +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-chromium-versions.json @@ -1 +1 @@ -{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4961.0":["19.0.0-nightly.20220325"]} \ No newline at end of file +{"39.0.2171.65":["0.20.0","0.20.1","0.20.2","0.20.3","0.20.4","0.20.5","0.20.6","0.20.7","0.20.8"],"40.0.2214.91":["0.21.0","0.21.1","0.21.2"],"41.0.2272.76":["0.21.3","0.22.1","0.22.2","0.22.3","0.23.0","0.24.0"],"42.0.2311.107":["0.25.0","0.25.1","0.25.2","0.25.3","0.26.0","0.26.1","0.27.0","0.27.1"],"43.0.2357.65":["0.27.2","0.27.3","0.28.0","0.28.1","0.28.2","0.28.3","0.29.1","0.29.2"],"44.0.2403.125":["0.30.4","0.31.0"],"45.0.2454.85":["0.31.2","0.32.2","0.32.3","0.33.0","0.33.1","0.33.2","0.33.3","0.33.4","0.33.6","0.33.7","0.33.8","0.33.9","0.34.0","0.34.1","0.34.2","0.34.3","0.34.4","0.35.1","0.35.2","0.35.3","0.35.4","0.35.5"],"47.0.2526.73":["0.36.0","0.36.2","0.36.3","0.36.4"],"47.0.2526.110":["0.36.5","0.36.6","0.36.7","0.36.8","0.36.9","0.36.10","0.36.11","0.36.12"],"49.0.2623.75":["0.37.0","0.37.1","0.37.3","0.37.4","0.37.5","0.37.6","0.37.7","0.37.8","1.0.0","1.0.1","1.0.2"],"50.0.2661.102":["1.1.0","1.1.1","1.1.2","1.1.3"],"51.0.2704.63":["1.2.0","1.2.1"],"51.0.2704.84":["1.2.2","1.2.3"],"51.0.2704.103":["1.2.4","1.2.5"],"51.0.2704.106":["1.2.6","1.2.7","1.2.8"],"52.0.2743.82":["1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.9","1.3.10","1.3.13","1.3.14","1.3.15"],"53.0.2785.113":["1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5"],"53.0.2785.143":["1.4.6","1.4.7","1.4.8","1.4.10","1.4.11","1.4.13","1.4.14","1.4.15","1.4.16"],"54.0.2840.51":["1.4.12"],"54.0.2840.101":["1.5.0","1.5.1"],"56.0.2924.87":["1.6.0","1.6.1","1.6.2","1.6.3","1.6.4","1.6.5","1.6.6","1.6.7","1.6.8","1.6.9","1.6.10","1.6.11","1.6.12","1.6.13","1.6.14","1.6.15","1.6.16","1.6.17","1.6.18"],"58.0.3029.110":["1.7.0","1.7.1","1.7.2","1.7.3","1.7.4","1.7.5","1.7.6","1.7.7","1.7.8","1.7.9","1.7.10","1.7.11","1.7.12","1.7.13","1.7.14","1.7.15","1.7.16"],"59.0.3071.115":["1.8.0","1.8.1","1.8.2-beta.1","1.8.2-beta.2","1.8.2-beta.3","1.8.2-beta.4","1.8.2-beta.5","1.8.2","1.8.3","1.8.4","1.8.5","1.8.6","1.8.7","1.8.8"],"61.0.3163.100":["2.0.0-beta.1","2.0.0-beta.2","2.0.0-beta.3","2.0.0-beta.4","2.0.0-beta.5","2.0.0-beta.6","2.0.0-beta.7","2.0.0-beta.8","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8-nightly.20180819","2.0.8-nightly.20180820","2.0.8","2.0.9","2.0.10","2.0.11","2.0.12","2.0.13","2.0.14","2.0.15","2.0.16","2.0.17","2.0.18","2.1.0-unsupported.20180809"],"66.0.3359.181":["3.0.0-beta.1","3.0.0-beta.2","3.0.0-beta.3","3.0.0-beta.4","3.0.0-beta.5","3.0.0-beta.6","3.0.0-beta.7","3.0.0-beta.8","3.0.0-beta.9","3.0.0-beta.10","3.0.0-beta.11","3.0.0-beta.12","3.0.0-beta.13","3.0.0-nightly.20180818","3.0.0-nightly.20180821","3.0.0-nightly.20180823","3.0.0-nightly.20180904","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.0.7","3.0.8","3.0.9","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.1.0-beta.1","3.1.0-beta.2","3.1.0-beta.3","3.1.0-beta.4","3.1.0-beta.5","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8","3.1.9","3.1.10","3.1.11","3.1.12","3.1.13","4.0.0-nightly.20180817","4.0.0-nightly.20180819","4.0.0-nightly.20180821"],"69.0.3497.106":["4.0.0-beta.1","4.0.0-beta.2","4.0.0-beta.3","4.0.0-beta.4","4.0.0-beta.5","4.0.0-beta.6","4.0.0-beta.7","4.0.0-beta.8","4.0.0-beta.9","4.0.0-beta.10","4.0.0-beta.11","4.0.0-nightly.20181010","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6"],"67.0.3396.99":["4.0.0-nightly.20180929"],"68.0.3440.128":["4.0.0-nightly.20181006"],"69.0.3497.128":["4.0.7","4.0.8","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.2.0","4.2.1","4.2.2","4.2.3","4.2.4","4.2.5","4.2.6","4.2.7","4.2.8","4.2.9","4.2.10","4.2.11","4.2.12"],"72.0.3626.52":["5.0.0-beta.1","5.0.0-beta.2"],"73.0.3683.27":["5.0.0-beta.3"],"73.0.3683.54":["5.0.0-beta.4"],"73.0.3683.61":["5.0.0-beta.5"],"73.0.3683.84":["5.0.0-beta.6"],"73.0.3683.94":["5.0.0-beta.7"],"73.0.3683.104":["5.0.0-beta.8"],"73.0.3683.117":["5.0.0-beta.9"],"70.0.3538.110":["5.0.0-nightly.20190107"],"71.0.3578.98":["5.0.0-nightly.20190121","5.0.0-nightly.20190122"],"73.0.3683.119":["5.0.0"],"73.0.3683.121":["5.0.1","5.0.2","5.0.3","5.0.4","5.0.5","5.0.6","5.0.7","5.0.8","5.0.9","5.0.10","5.0.11","5.0.12","5.0.13"],"76.0.3774.1":["6.0.0-beta.1"],"76.0.3783.1":["6.0.0-beta.2","6.0.0-beta.3","6.0.0-beta.4"],"76.0.3805.4":["6.0.0-beta.5"],"76.0.3809.3":["6.0.0-beta.6"],"76.0.3809.22":["6.0.0-beta.7"],"76.0.3809.26":["6.0.0-beta.8","6.0.0-beta.9"],"76.0.3809.37":["6.0.0-beta.10"],"76.0.3809.42":["6.0.0-beta.11"],"76.0.3809.54":["6.0.0-beta.12"],"76.0.3809.60":["6.0.0-beta.13"],"76.0.3809.68":["6.0.0-beta.14"],"76.0.3809.74":["6.0.0-beta.15"],"72.0.3626.107":["6.0.0-nightly.20190212"],"72.0.3626.110":["6.0.0-nightly.20190213"],"74.0.3724.8":["6.0.0-nightly.20190311"],"76.0.3809.88":["6.0.0"],"76.0.3809.102":["6.0.1"],"76.0.3809.110":["6.0.2"],"76.0.3809.126":["6.0.3"],"76.0.3809.131":["6.0.4"],"76.0.3809.136":["6.0.5"],"76.0.3809.138":["6.0.6"],"76.0.3809.139":["6.0.7"],"76.0.3809.146":["6.0.8","6.0.9","6.0.10","6.0.11","6.0.12","6.1.0","6.1.1","6.1.2","6.1.3","6.1.4","6.1.5","6.1.6","6.1.7","6.1.8","6.1.9","6.1.10","6.1.11","6.1.12"],"78.0.3866.0":["7.0.0-beta.1","7.0.0-beta.2","7.0.0-beta.3","7.0.0-nightly.20190727","7.0.0-nightly.20190728","7.0.0-nightly.20190729","7.0.0-nightly.20190730","7.0.0-nightly.20190731","8.0.0-nightly.20190801","8.0.0-nightly.20190802"],"78.0.3896.6":["7.0.0-beta.4"],"78.0.3905.1":["7.0.0-beta.5","7.0.0-beta.6","7.0.0-beta.7","7.0.0"],"76.0.3784.0":["7.0.0-nightly.20190521"],"76.0.3806.0":["7.0.0-nightly.20190529","7.0.0-nightly.20190530","7.0.0-nightly.20190531","7.0.0-nightly.20190602","7.0.0-nightly.20190603"],"77.0.3814.0":["7.0.0-nightly.20190604"],"77.0.3815.0":["7.0.0-nightly.20190605","7.0.0-nightly.20190606","7.0.0-nightly.20190607","7.0.0-nightly.20190608","7.0.0-nightly.20190609","7.0.0-nightly.20190611","7.0.0-nightly.20190612","7.0.0-nightly.20190613","7.0.0-nightly.20190615","7.0.0-nightly.20190616","7.0.0-nightly.20190618","7.0.0-nightly.20190619","7.0.0-nightly.20190622","7.0.0-nightly.20190623","7.0.0-nightly.20190624","7.0.0-nightly.20190627","7.0.0-nightly.20190629","7.0.0-nightly.20190630","7.0.0-nightly.20190701","7.0.0-nightly.20190702"],"77.0.3843.0":["7.0.0-nightly.20190704","7.0.0-nightly.20190705"],"77.0.3848.0":["7.0.0-nightly.20190719","7.0.0-nightly.20190720","7.0.0-nightly.20190721"],"77.0.3864.0":["7.0.0-nightly.20190726"],"78.0.3904.92":["7.0.1"],"78.0.3904.94":["7.1.0"],"78.0.3904.99":["7.1.1"],"78.0.3904.113":["7.1.2"],"78.0.3904.126":["7.1.3"],"78.0.3904.130":["7.1.4","7.1.5","7.1.6","7.1.7","7.1.8","7.1.9","7.1.10","7.1.11","7.1.12","7.1.13","7.1.14","7.2.0","7.2.1","7.2.2","7.2.3","7.2.4","7.3.0","7.3.1","7.3.2","7.3.3"],"79.0.3931.0":["8.0.0-beta.1","8.0.0-beta.2","8.0.0-nightly.20191019","8.0.0-nightly.20191020","8.0.0-nightly.20191021","8.0.0-nightly.20191023"],"80.0.3955.0":["8.0.0-beta.3","8.0.0-beta.4"],"80.0.3987.14":["8.0.0-beta.5"],"80.0.3987.51":["8.0.0-beta.6"],"80.0.3987.59":["8.0.0-beta.7"],"80.0.3987.75":["8.0.0-beta.8","8.0.0-beta.9"],"78.0.3871.0":["8.0.0-nightly.20190803","8.0.0-nightly.20190806","8.0.0-nightly.20190807","8.0.0-nightly.20190808","8.0.0-nightly.20190809","8.0.0-nightly.20190810","8.0.0-nightly.20190811","8.0.0-nightly.20190812","8.0.0-nightly.20190813","8.0.0-nightly.20190814","8.0.0-nightly.20190815"],"78.0.3881.0":["8.0.0-nightly.20190816","8.0.0-nightly.20190817","8.0.0-nightly.20190818","8.0.0-nightly.20190819","8.0.0-nightly.20190820"],"78.0.3892.0":["8.0.0-nightly.20190824","8.0.0-nightly.20190825","8.0.0-nightly.20190827","8.0.0-nightly.20190828","8.0.0-nightly.20190830","8.0.0-nightly.20190901","8.0.0-nightly.20190902","8.0.0-nightly.20190907","8.0.0-nightly.20190909","8.0.0-nightly.20190910","8.0.0-nightly.20190911","8.0.0-nightly.20190913","8.0.0-nightly.20190914","8.0.0-nightly.20190915","8.0.0-nightly.20190917"],"79.0.3915.0":["8.0.0-nightly.20190919","8.0.0-nightly.20190920"],"79.0.3919.0":["8.0.0-nightly.20190923","8.0.0-nightly.20190924","8.0.0-nightly.20190926","8.0.0-nightly.20190929","8.0.0-nightly.20190930","8.0.0-nightly.20191001","8.0.0-nightly.20191004","8.0.0-nightly.20191005","8.0.0-nightly.20191006","8.0.0-nightly.20191009","8.0.0-nightly.20191011","8.0.0-nightly.20191012","8.0.0-nightly.20191017"],"80.0.3952.0":["8.0.0-nightly.20191101","8.0.0-nightly.20191105"],"80.0.3987.86":["8.0.0","8.0.1","8.0.2"],"80.0.3987.134":["8.0.3"],"80.0.3987.137":["8.1.0"],"80.0.3987.141":["8.1.1"],"80.0.3987.158":["8.2.0"],"80.0.3987.163":["8.2.1","8.2.2","8.2.3","8.5.3","8.5.4","8.5.5"],"80.0.3987.165":["8.2.4","8.2.5","8.3.0","8.3.1","8.3.2","8.3.3","8.3.4","8.4.0","8.4.1","8.5.0","8.5.1","8.5.2"],"82.0.4048.0":["9.0.0-beta.1","9.0.0-beta.2","9.0.0-beta.3","9.0.0-beta.4","9.0.0-beta.5"],"82.0.4058.2":["9.0.0-beta.6","9.0.0-beta.7","9.0.0-beta.9"],"82.0.4085.10":["9.0.0-beta.10"],"82.0.4085.14":["9.0.0-beta.12","9.0.0-beta.13"],"82.0.4085.27":["9.0.0-beta.14"],"83.0.4102.3":["9.0.0-beta.15","9.0.0-beta.16"],"83.0.4103.14":["9.0.0-beta.17"],"83.0.4103.16":["9.0.0-beta.18"],"83.0.4103.24":["9.0.0-beta.19"],"83.0.4103.26":["9.0.0-beta.20","9.0.0-beta.21"],"83.0.4103.34":["9.0.0-beta.22"],"83.0.4103.44":["9.0.0-beta.23"],"83.0.4103.45":["9.0.0-beta.24"],"80.0.3954.0":["9.0.0-nightly.20191121","9.0.0-nightly.20191122","9.0.0-nightly.20191123","9.0.0-nightly.20191124","9.0.0-nightly.20191129","9.0.0-nightly.20191130","9.0.0-nightly.20191201","9.0.0-nightly.20191202","9.0.0-nightly.20191203","9.0.0-nightly.20191204","9.0.0-nightly.20191210"],"81.0.3994.0":["9.0.0-nightly.20191220","9.0.0-nightly.20191221","9.0.0-nightly.20191222","9.0.0-nightly.20191223","9.0.0-nightly.20191224","9.0.0-nightly.20191225","9.0.0-nightly.20191226","9.0.0-nightly.20191228","9.0.0-nightly.20191229","9.0.0-nightly.20191230","9.0.0-nightly.20191231","9.0.0-nightly.20200101","9.0.0-nightly.20200103","9.0.0-nightly.20200104","9.0.0-nightly.20200105","9.0.0-nightly.20200106","9.0.0-nightly.20200108","9.0.0-nightly.20200109","9.0.0-nightly.20200110","9.0.0-nightly.20200111","9.0.0-nightly.20200113","9.0.0-nightly.20200115","9.0.0-nightly.20200116","9.0.0-nightly.20200117"],"81.0.4030.0":["9.0.0-nightly.20200119","9.0.0-nightly.20200121"],"83.0.4103.64":["9.0.0"],"83.0.4103.94":["9.0.1","9.0.2"],"83.0.4103.100":["9.0.3"],"83.0.4103.104":["9.0.4"],"83.0.4103.119":["9.0.5"],"83.0.4103.122":["9.1.0","9.1.1","9.1.2","9.2.0","9.2.1","9.3.0","9.3.1","9.3.2","9.3.3","9.3.4","9.3.5","9.4.0","9.4.1","9.4.2","9.4.3","9.4.4"],"84.0.4129.0":["10.0.0-beta.1","10.0.0-beta.2","10.0.0-nightly.20200501","10.0.0-nightly.20200504","10.0.0-nightly.20200505","10.0.0-nightly.20200506","10.0.0-nightly.20200507","10.0.0-nightly.20200508","10.0.0-nightly.20200511","10.0.0-nightly.20200512","10.0.0-nightly.20200513","10.0.0-nightly.20200514","10.0.0-nightly.20200515","10.0.0-nightly.20200518","10.0.0-nightly.20200519","10.0.0-nightly.20200520","10.0.0-nightly.20200521","11.0.0-nightly.20200525","11.0.0-nightly.20200526"],"85.0.4161.2":["10.0.0-beta.3","10.0.0-beta.4"],"85.0.4181.1":["10.0.0-beta.8","10.0.0-beta.9"],"85.0.4183.19":["10.0.0-beta.10"],"85.0.4183.20":["10.0.0-beta.11"],"85.0.4183.26":["10.0.0-beta.12"],"85.0.4183.39":["10.0.0-beta.13","10.0.0-beta.14","10.0.0-beta.15","10.0.0-beta.17","10.0.0-beta.19","10.0.0-beta.20","10.0.0-beta.21"],"85.0.4183.70":["10.0.0-beta.23"],"85.0.4183.78":["10.0.0-beta.24"],"85.0.4183.80":["10.0.0-beta.25"],"82.0.4050.0":["10.0.0-nightly.20200209","10.0.0-nightly.20200210","10.0.0-nightly.20200211","10.0.0-nightly.20200216","10.0.0-nightly.20200217","10.0.0-nightly.20200218","10.0.0-nightly.20200221","10.0.0-nightly.20200222","10.0.0-nightly.20200223","10.0.0-nightly.20200226","10.0.0-nightly.20200303"],"82.0.4076.0":["10.0.0-nightly.20200304","10.0.0-nightly.20200305","10.0.0-nightly.20200306","10.0.0-nightly.20200309","10.0.0-nightly.20200310"],"82.0.4083.0":["10.0.0-nightly.20200311"],"83.0.4086.0":["10.0.0-nightly.20200316"],"83.0.4087.0":["10.0.0-nightly.20200317","10.0.0-nightly.20200318","10.0.0-nightly.20200320","10.0.0-nightly.20200323","10.0.0-nightly.20200324","10.0.0-nightly.20200325","10.0.0-nightly.20200326","10.0.0-nightly.20200327","10.0.0-nightly.20200330","10.0.0-nightly.20200331","10.0.0-nightly.20200401","10.0.0-nightly.20200402","10.0.0-nightly.20200403","10.0.0-nightly.20200406"],"83.0.4095.0":["10.0.0-nightly.20200408","10.0.0-nightly.20200410","10.0.0-nightly.20200413"],"84.0.4114.0":["10.0.0-nightly.20200414"],"84.0.4115.0":["10.0.0-nightly.20200415","10.0.0-nightly.20200416","10.0.0-nightly.20200417"],"84.0.4121.0":["10.0.0-nightly.20200422","10.0.0-nightly.20200423"],"84.0.4125.0":["10.0.0-nightly.20200427","10.0.0-nightly.20200428","10.0.0-nightly.20200429","10.0.0-nightly.20200430"],"85.0.4183.84":["10.0.0"],"85.0.4183.86":["10.0.1"],"85.0.4183.87":["10.1.0"],"85.0.4183.93":["10.1.1"],"85.0.4183.98":["10.1.2"],"85.0.4183.121":["10.1.3","10.1.4","10.1.5","10.1.6","10.1.7","10.2.0","10.3.0","10.3.1","10.3.2","10.4.0","10.4.1","10.4.2","10.4.3","10.4.4","10.4.5","10.4.6","10.4.7"],"86.0.4234.0":["11.0.0-beta.1","11.0.0-beta.3","11.0.0-beta.4","11.0.0-beta.5","11.0.0-beta.6","11.0.0-beta.7","11.0.0-nightly.20200822","11.0.0-nightly.20200824","11.0.0-nightly.20200825","11.0.0-nightly.20200826","12.0.0-nightly.20200827","12.0.0-nightly.20200831","12.0.0-nightly.20200902","12.0.0-nightly.20200903","12.0.0-nightly.20200907","12.0.0-nightly.20200910","12.0.0-nightly.20200911","12.0.0-nightly.20200914"],"87.0.4251.1":["11.0.0-beta.8","11.0.0-beta.9","11.0.0-beta.11"],"87.0.4280.11":["11.0.0-beta.12","11.0.0-beta.13"],"87.0.4280.27":["11.0.0-beta.16","11.0.0-beta.17","11.0.0-beta.18","11.0.0-beta.19"],"87.0.4280.40":["11.0.0-beta.20"],"87.0.4280.47":["11.0.0-beta.22","11.0.0-beta.23"],"85.0.4156.0":["11.0.0-nightly.20200529"],"85.0.4162.0":["11.0.0-nightly.20200602","11.0.0-nightly.20200603","11.0.0-nightly.20200604","11.0.0-nightly.20200609","11.0.0-nightly.20200610","11.0.0-nightly.20200611","11.0.0-nightly.20200615","11.0.0-nightly.20200616","11.0.0-nightly.20200617","11.0.0-nightly.20200618","11.0.0-nightly.20200619"],"85.0.4179.0":["11.0.0-nightly.20200701","11.0.0-nightly.20200702","11.0.0-nightly.20200703","11.0.0-nightly.20200706","11.0.0-nightly.20200707","11.0.0-nightly.20200708","11.0.0-nightly.20200709"],"86.0.4203.0":["11.0.0-nightly.20200716","11.0.0-nightly.20200717","11.0.0-nightly.20200720","11.0.0-nightly.20200721"],"86.0.4209.0":["11.0.0-nightly.20200723","11.0.0-nightly.20200724","11.0.0-nightly.20200729","11.0.0-nightly.20200730","11.0.0-nightly.20200731","11.0.0-nightly.20200803","11.0.0-nightly.20200804","11.0.0-nightly.20200805","11.0.0-nightly.20200811","11.0.0-nightly.20200812"],"87.0.4280.60":["11.0.0","11.0.1"],"87.0.4280.67":["11.0.2","11.0.3","11.0.4"],"87.0.4280.88":["11.0.5","11.1.0","11.1.1"],"87.0.4280.141":["11.2.0","11.2.1","11.2.2","11.2.3","11.3.0","11.4.0","11.4.1","11.4.2","11.4.3","11.4.4","11.4.5","11.4.6","11.4.7","11.4.8","11.4.9","11.4.10","11.4.11","11.4.12","11.5.0"],"89.0.4328.0":["12.0.0-beta.1","12.0.0-beta.3","12.0.0-beta.4","12.0.0-beta.5","12.0.0-beta.6","12.0.0-beta.7","12.0.0-beta.8","12.0.0-beta.9","12.0.0-beta.10","12.0.0-beta.11","12.0.0-beta.12","12.0.0-beta.14","13.0.0-nightly.20201119","13.0.0-nightly.20201123","13.0.0-nightly.20201124","13.0.0-nightly.20201126","13.0.0-nightly.20201127","13.0.0-nightly.20201130","13.0.0-nightly.20201201","13.0.0-nightly.20201202","13.0.0-nightly.20201203","13.0.0-nightly.20201204","13.0.0-nightly.20201207","13.0.0-nightly.20201208","13.0.0-nightly.20201209","13.0.0-nightly.20201210","13.0.0-nightly.20201211","13.0.0-nightly.20201214"],"89.0.4348.1":["12.0.0-beta.16","12.0.0-beta.18","12.0.0-beta.19","12.0.0-beta.20"],"89.0.4388.2":["12.0.0-beta.21","12.0.0-beta.22","12.0.0-beta.23","12.0.0-beta.24","12.0.0-beta.25","12.0.0-beta.26"],"89.0.4389.23":["12.0.0-beta.27","12.0.0-beta.28","12.0.0-beta.29"],"89.0.4389.58":["12.0.0-beta.30","12.0.0-beta.31"],"87.0.4268.0":["12.0.0-nightly.20201013","12.0.0-nightly.20201014","12.0.0-nightly.20201015"],"88.0.4292.0":["12.0.0-nightly.20201023","12.0.0-nightly.20201026"],"88.0.4306.0":["12.0.0-nightly.20201030","12.0.0-nightly.20201102","12.0.0-nightly.20201103","12.0.0-nightly.20201104","12.0.0-nightly.20201105","12.0.0-nightly.20201106","12.0.0-nightly.20201111","12.0.0-nightly.20201112"],"88.0.4324.0":["12.0.0-nightly.20201116"],"89.0.4389.69":["12.0.0"],"89.0.4389.82":["12.0.1"],"89.0.4389.90":["12.0.2"],"89.0.4389.114":["12.0.3","12.0.4"],"89.0.4389.128":["12.0.5","12.0.6","12.0.7","12.0.8","12.0.9","12.0.10","12.0.11","12.0.12","12.0.13","12.0.14","12.0.15","12.0.16","12.0.17","12.0.18","12.1.0","12.1.1","12.1.2","12.2.0","12.2.1","12.2.2","12.2.3"],"90.0.4402.0":["13.0.0-beta.2","13.0.0-beta.3","13.0.0-nightly.20210210","13.0.0-nightly.20210211","13.0.0-nightly.20210212","13.0.0-nightly.20210216","13.0.0-nightly.20210217","13.0.0-nightly.20210218","13.0.0-nightly.20210219","13.0.0-nightly.20210222","13.0.0-nightly.20210225","13.0.0-nightly.20210226","13.0.0-nightly.20210301","13.0.0-nightly.20210302","13.0.0-nightly.20210303","14.0.0-nightly.20210304"],"90.0.4415.0":["13.0.0-beta.4","13.0.0-beta.5","13.0.0-beta.6","13.0.0-beta.7","13.0.0-beta.8","13.0.0-beta.9","13.0.0-beta.11","13.0.0-beta.12","13.0.0-beta.13","14.0.0-nightly.20210305","14.0.0-nightly.20210308","14.0.0-nightly.20210309","14.0.0-nightly.20210311","14.0.0-nightly.20210315","14.0.0-nightly.20210316","14.0.0-nightly.20210317","14.0.0-nightly.20210318","14.0.0-nightly.20210319","14.0.0-nightly.20210323","14.0.0-nightly.20210324","14.0.0-nightly.20210325","14.0.0-nightly.20210326","14.0.0-nightly.20210329","14.0.0-nightly.20210330"],"91.0.4448.0":["13.0.0-beta.14","13.0.0-beta.16","13.0.0-beta.17","13.0.0-beta.18","13.0.0-beta.20","14.0.0-nightly.20210331","14.0.0-nightly.20210401","14.0.0-nightly.20210402","14.0.0-nightly.20210406","14.0.0-nightly.20210407","14.0.0-nightly.20210408","14.0.0-nightly.20210409","14.0.0-nightly.20210413"],"91.0.4472.33":["13.0.0-beta.21","13.0.0-beta.22","13.0.0-beta.23"],"91.0.4472.38":["13.0.0-beta.24","13.0.0-beta.26","13.0.0-beta.27","13.0.0-beta.28"],"89.0.4349.0":["13.0.0-nightly.20201215","13.0.0-nightly.20201216","13.0.0-nightly.20201221","13.0.0-nightly.20201222"],"89.0.4359.0":["13.0.0-nightly.20201223","13.0.0-nightly.20210104","13.0.0-nightly.20210108","13.0.0-nightly.20210111"],"89.0.4386.0":["13.0.0-nightly.20210113","13.0.0-nightly.20210114","13.0.0-nightly.20210118","13.0.0-nightly.20210122","13.0.0-nightly.20210125"],"89.0.4389.0":["13.0.0-nightly.20210127","13.0.0-nightly.20210128","13.0.0-nightly.20210129","13.0.0-nightly.20210201","13.0.0-nightly.20210202","13.0.0-nightly.20210203","13.0.0-nightly.20210205","13.0.0-nightly.20210208","13.0.0-nightly.20210209"],"91.0.4472.69":["13.0.0","13.0.1"],"91.0.4472.77":["13.1.0","13.1.1","13.1.2"],"91.0.4472.106":["13.1.3","13.1.4"],"91.0.4472.124":["13.1.5","13.1.6","13.1.7"],"91.0.4472.164":["13.1.8","13.1.9","13.2.0","13.2.1","13.2.2","13.2.3","13.3.0","13.4.0","13.5.0","13.5.1","13.5.2","13.6.0","13.6.1","13.6.2","13.6.3","13.6.6","13.6.7","13.6.8","13.6.9"],"92.0.4511.0":["14.0.0-beta.1","14.0.0-beta.2","14.0.0-beta.3","14.0.0-nightly.20210520","14.0.0-nightly.20210523","14.0.0-nightly.20210524","15.0.0-nightly.20210527","15.0.0-nightly.20210528","15.0.0-nightly.20210531","15.0.0-nightly.20210601","15.0.0-nightly.20210602"],"93.0.4536.0":["14.0.0-beta.5","14.0.0-beta.6","14.0.0-beta.7","14.0.0-beta.8","15.0.0-nightly.20210609","15.0.0-nightly.20210610","15.0.0-nightly.20210611","15.0.0-nightly.20210614","15.0.0-nightly.20210615","15.0.0-nightly.20210616"],"93.0.4539.0":["14.0.0-beta.9","14.0.0-beta.10","15.0.0-nightly.20210617","15.0.0-nightly.20210618","15.0.0-nightly.20210621","15.0.0-nightly.20210622"],"93.0.4557.4":["14.0.0-beta.11","14.0.0-beta.12"],"93.0.4566.0":["14.0.0-beta.13","14.0.0-beta.14","14.0.0-beta.15","14.0.0-beta.16","14.0.0-beta.17","15.0.0-alpha.1","15.0.0-alpha.2","15.0.0-nightly.20210706","15.0.0-nightly.20210707","15.0.0-nightly.20210708","15.0.0-nightly.20210709","15.0.0-nightly.20210712","15.0.0-nightly.20210713","15.0.0-nightly.20210714","15.0.0-nightly.20210715","15.0.0-nightly.20210716","15.0.0-nightly.20210719","15.0.0-nightly.20210720","15.0.0-nightly.20210721","16.0.0-nightly.20210722","16.0.0-nightly.20210723","16.0.0-nightly.20210726"],"93.0.4577.15":["14.0.0-beta.18","14.0.0-beta.19","14.0.0-beta.20","14.0.0-beta.21"],"93.0.4577.25":["14.0.0-beta.22","14.0.0-beta.23"],"93.0.4577.51":["14.0.0-beta.24","14.0.0-beta.25"],"92.0.4475.0":["14.0.0-nightly.20210426","14.0.0-nightly.20210427"],"92.0.4488.0":["14.0.0-nightly.20210430","14.0.0-nightly.20210503"],"92.0.4496.0":["14.0.0-nightly.20210505"],"92.0.4498.0":["14.0.0-nightly.20210506"],"92.0.4499.0":["14.0.0-nightly.20210507","14.0.0-nightly.20210510","14.0.0-nightly.20210511","14.0.0-nightly.20210512","14.0.0-nightly.20210513"],"92.0.4505.0":["14.0.0-nightly.20210514","14.0.0-nightly.20210517","14.0.0-nightly.20210518","14.0.0-nightly.20210519"],"93.0.4577.58":["14.0.0"],"93.0.4577.63":["14.0.1"],"93.0.4577.82":["14.0.2","14.1.0","14.1.1","14.2.0","14.2.1","14.2.2","14.2.3","14.2.4","14.2.5","14.2.6","14.2.7","14.2.8","14.2.9"],"94.0.4584.0":["15.0.0-alpha.3","15.0.0-alpha.4","15.0.0-alpha.5","15.0.0-alpha.6","16.0.0-nightly.20210727","16.0.0-nightly.20210728","16.0.0-nightly.20210729","16.0.0-nightly.20210730","16.0.0-nightly.20210802","16.0.0-nightly.20210803","16.0.0-nightly.20210804","16.0.0-nightly.20210805","16.0.0-nightly.20210806","16.0.0-nightly.20210809","16.0.0-nightly.20210810","16.0.0-nightly.20210811"],"94.0.4590.2":["15.0.0-alpha.7","15.0.0-alpha.8","15.0.0-alpha.9","16.0.0-nightly.20210812","16.0.0-nightly.20210813","16.0.0-nightly.20210816","16.0.0-nightly.20210817","16.0.0-nightly.20210818","16.0.0-nightly.20210819","16.0.0-nightly.20210820","16.0.0-nightly.20210823"],"94.0.4606.12":["15.0.0-alpha.10"],"94.0.4606.20":["15.0.0-beta.1","15.0.0-beta.2"],"94.0.4606.31":["15.0.0-beta.3","15.0.0-beta.4","15.0.0-beta.5","15.0.0-beta.6","15.0.0-beta.7"],"93.0.4530.0":["15.0.0-nightly.20210603","15.0.0-nightly.20210604"],"93.0.4535.0":["15.0.0-nightly.20210608"],"93.0.4550.0":["15.0.0-nightly.20210623","15.0.0-nightly.20210624"],"93.0.4552.0":["15.0.0-nightly.20210625","15.0.0-nightly.20210628","15.0.0-nightly.20210629"],"93.0.4558.0":["15.0.0-nightly.20210630","15.0.0-nightly.20210701","15.0.0-nightly.20210702","15.0.0-nightly.20210705"],"94.0.4606.51":["15.0.0"],"94.0.4606.61":["15.1.0","15.1.1"],"94.0.4606.71":["15.1.2"],"94.0.4606.81":["15.2.0","15.3.0","15.3.1","15.3.2","15.3.3","15.3.4","15.3.5","15.3.6","15.3.7","15.4.0","15.4.1","15.4.2","15.5.0","15.5.1","15.5.2","15.5.3","15.5.4","15.5.5","15.5.6","15.5.7"],"95.0.4629.0":["16.0.0-alpha.1","16.0.0-alpha.2","16.0.0-alpha.3","16.0.0-alpha.4","16.0.0-alpha.5","16.0.0-alpha.6","16.0.0-alpha.7","16.0.0-nightly.20210902","16.0.0-nightly.20210903","16.0.0-nightly.20210906","16.0.0-nightly.20210907","16.0.0-nightly.20210908","16.0.0-nightly.20210909","16.0.0-nightly.20210910","16.0.0-nightly.20210913","16.0.0-nightly.20210914","16.0.0-nightly.20210915","16.0.0-nightly.20210916","16.0.0-nightly.20210917","16.0.0-nightly.20210920","16.0.0-nightly.20210921","16.0.0-nightly.20210922","17.0.0-nightly.20210923","17.0.0-nightly.20210924","17.0.0-nightly.20210927","17.0.0-nightly.20210928","17.0.0-nightly.20210929","17.0.0-nightly.20210930","17.0.0-nightly.20211001","17.0.0-nightly.20211004","17.0.0-nightly.20211005"],"96.0.4647.0":["16.0.0-alpha.8","16.0.0-alpha.9","16.0.0-beta.1","16.0.0-beta.2","16.0.0-beta.3","17.0.0-nightly.20211006","17.0.0-nightly.20211007","17.0.0-nightly.20211008","17.0.0-nightly.20211011","17.0.0-nightly.20211012","17.0.0-nightly.20211013","17.0.0-nightly.20211014","17.0.0-nightly.20211015","17.0.0-nightly.20211018","17.0.0-nightly.20211019","17.0.0-nightly.20211020","17.0.0-nightly.20211021"],"96.0.4664.18":["16.0.0-beta.4","16.0.0-beta.5"],"96.0.4664.27":["16.0.0-beta.6","16.0.0-beta.7"],"96.0.4664.35":["16.0.0-beta.8","16.0.0-beta.9"],"95.0.4612.5":["16.0.0-nightly.20210824","16.0.0-nightly.20210825","16.0.0-nightly.20210826","16.0.0-nightly.20210827","16.0.0-nightly.20210830","16.0.0-nightly.20210831","16.0.0-nightly.20210901"],"96.0.4664.45":["16.0.0","16.0.1"],"96.0.4664.55":["16.0.2","16.0.3","16.0.4","16.0.5"],"96.0.4664.110":["16.0.6","16.0.7","16.0.8"],"96.0.4664.174":["16.0.9","16.0.10","16.1.0","16.1.1","16.2.0","16.2.1","16.2.2","16.2.3","16.2.4","16.2.5","16.2.6","16.2.7","16.2.8"],"96.0.4664.4":["17.0.0-alpha.1","17.0.0-alpha.2","17.0.0-alpha.3","17.0.0-nightly.20211022","17.0.0-nightly.20211025","17.0.0-nightly.20211026","17.0.0-nightly.20211027","17.0.0-nightly.20211028","17.0.0-nightly.20211029","17.0.0-nightly.20211101","17.0.0-nightly.20211102","17.0.0-nightly.20211103","17.0.0-nightly.20211104","17.0.0-nightly.20211105","17.0.0-nightly.20211108","17.0.0-nightly.20211109","17.0.0-nightly.20211110","17.0.0-nightly.20211111","17.0.0-nightly.20211112","17.0.0-nightly.20211115","17.0.0-nightly.20211116","17.0.0-nightly.20211117","18.0.0-nightly.20211118","18.0.0-nightly.20211119","18.0.0-nightly.20211122","18.0.0-nightly.20211123"],"98.0.4706.0":["17.0.0-alpha.4","17.0.0-alpha.5","17.0.0-alpha.6","17.0.0-beta.1","17.0.0-beta.2","18.0.0-nightly.20211124","18.0.0-nightly.20211125","18.0.0-nightly.20211126","18.0.0-nightly.20211129","18.0.0-nightly.20211130","18.0.0-nightly.20211201","18.0.0-nightly.20211202","18.0.0-nightly.20211203","18.0.0-nightly.20211206","18.0.0-nightly.20211207","18.0.0-nightly.20211208","18.0.0-nightly.20211209","18.0.0-nightly.20211210","18.0.0-nightly.20211213","18.0.0-nightly.20211214","18.0.0-nightly.20211215","18.0.0-nightly.20211216","18.0.0-nightly.20211217","18.0.0-nightly.20211220","18.0.0-nightly.20211221","18.0.0-nightly.20211222","18.0.0-nightly.20211223","18.0.0-nightly.20211228","18.0.0-nightly.20211229","18.0.0-nightly.20211231","18.0.0-nightly.20220103","18.0.0-nightly.20220104","18.0.0-nightly.20220105","18.0.0-nightly.20220106","18.0.0-nightly.20220107","18.0.0-nightly.20220110"],"98.0.4758.9":["17.0.0-beta.3"],"98.0.4758.11":["17.0.0-beta.4","17.0.0-beta.5","17.0.0-beta.6","17.0.0-beta.7","17.0.0-beta.8","17.0.0-beta.9"],"98.0.4758.74":["17.0.0"],"98.0.4758.82":["17.0.1"],"98.0.4758.102":["17.1.0"],"98.0.4758.109":["17.1.1","17.1.2","17.2.0"],"98.0.4758.141":["17.3.0","17.3.1","17.4.0","17.4.1","17.4.2","17.4.3","17.4.4","17.4.5","17.4.6","17.4.7"],"99.0.4767.0":["18.0.0-alpha.1","18.0.0-alpha.2","18.0.0-alpha.3","18.0.0-alpha.4","18.0.0-alpha.5","18.0.0-nightly.20220111","18.0.0-nightly.20220112","18.0.0-nightly.20220113","18.0.0-nightly.20220114","18.0.0-nightly.20220117","18.0.0-nightly.20220118","18.0.0-nightly.20220119","18.0.0-nightly.20220121","18.0.0-nightly.20220124","18.0.0-nightly.20220125","18.0.0-nightly.20220127","18.0.0-nightly.20220128","18.0.0-nightly.20220131","18.0.0-nightly.20220201","19.0.0-nightly.20220202","19.0.0-nightly.20220203","19.0.0-nightly.20220204","19.0.0-nightly.20220207","19.0.0-nightly.20220208","19.0.0-nightly.20220209"],"100.0.4894.0":["18.0.0-beta.1","18.0.0-beta.2","18.0.0-beta.3","18.0.0-beta.4","18.0.0-beta.5","18.0.0-beta.6","19.0.0-nightly.20220308","19.0.0-nightly.20220309","19.0.0-nightly.20220310","19.0.0-nightly.20220311","19.0.0-nightly.20220314","19.0.0-nightly.20220315","19.0.0-nightly.20220316","19.0.0-nightly.20220317","19.0.0-nightly.20220318","19.0.0-nightly.20220321","19.0.0-nightly.20220322","19.0.0-nightly.20220323","19.0.0-nightly.20220324"],"100.0.4896.56":["18.0.0"],"100.0.4896.60":["18.0.1","18.0.2"],"100.0.4896.75":["18.0.3","18.0.4"],"100.0.4896.127":["18.1.0"],"100.0.4896.143":["18.2.0","18.2.1","18.2.2","18.2.3"],"100.0.4896.160":["18.2.4","18.3.0","18.3.1","18.3.2","18.3.3","18.3.4"],"102.0.4962.3":["19.0.0-alpha.1","19.0.0-nightly.20220328","19.0.0-nightly.20220329","20.0.0-nightly.20220330"],"102.0.4971.0":["19.0.0-alpha.2","19.0.0-alpha.3","20.0.0-nightly.20220411"],"102.0.4989.0":["19.0.0-alpha.4","19.0.0-alpha.5","20.0.0-nightly.20220414","20.0.0-nightly.20220415","20.0.0-nightly.20220418","20.0.0-nightly.20220419","20.0.0-nightly.20220420","20.0.0-nightly.20220421"],"102.0.4999.0":["19.0.0-beta.1","19.0.0-beta.2","19.0.0-beta.3","20.0.0-nightly.20220425","20.0.0-nightly.20220426","20.0.0-nightly.20220427","20.0.0-nightly.20220428","20.0.0-nightly.20220429","20.0.0-nightly.20220502","20.0.0-nightly.20220503","20.0.0-nightly.20220504","20.0.0-nightly.20220505","20.0.0-nightly.20220506","20.0.0-nightly.20220509","20.0.0-nightly.20220511","20.0.0-nightly.20220512","20.0.0-nightly.20220513","20.0.0-nightly.20220516","20.0.0-nightly.20220517"],"102.0.5005.27":["19.0.0-beta.4"],"102.0.5005.40":["19.0.0-beta.5","19.0.0-beta.6","19.0.0-beta.7"],"102.0.5005.49":["19.0.0-beta.8"],"102.0.4961.0":["19.0.0-nightly.20220325"],"102.0.5005.61":["19.0.0","19.0.1"],"102.0.5005.63":["19.0.2","19.0.3","19.0.4"],"103.0.5044.0":["20.0.0-alpha.1","20.0.0-nightly.20220518","20.0.0-nightly.20220519","20.0.0-nightly.20220520","20.0.0-nightly.20220523","20.0.0-nightly.20220524","21.0.0-nightly.20220526","21.0.0-nightly.20220527","21.0.0-nightly.20220530","21.0.0-nightly.20220531"],"104.0.5073.0":["20.0.0-alpha.2","20.0.0-alpha.3","20.0.0-alpha.4","20.0.0-alpha.5","20.0.0-alpha.6","21.0.0-nightly.20220602","21.0.0-nightly.20220603","21.0.0-nightly.20220606","21.0.0-nightly.20220607","21.0.0-nightly.20220608","21.0.0-nightly.20220609","21.0.0-nightly.20220610","21.0.0-nightly.20220613","21.0.0-nightly.20220614","21.0.0-nightly.20220615","21.0.0-nightly.20220616","21.0.0-nightly.20220617"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.js b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.js index e00d759e5dd70d..f4547f0819022c 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.js +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.js @@ -1131,6 +1131,11 @@ module.exports = { "15.5.0": "94.0.4606.81", "15.5.1": "94.0.4606.81", "15.5.2": "94.0.4606.81", + "15.5.3": "94.0.4606.81", + "15.5.4": "94.0.4606.81", + "15.5.5": "94.0.4606.81", + "15.5.6": "94.0.4606.81", + "15.5.7": "94.0.4606.81", "16.0.0-alpha.1": "95.0.4629.0", "16.0.0-alpha.2": "95.0.4629.0", "16.0.0-alpha.3": "95.0.4629.0", @@ -1210,6 +1215,12 @@ module.exports = { "16.2.0": "96.0.4664.174", "16.2.1": "96.0.4664.174", "16.2.2": "96.0.4664.174", + "16.2.3": "96.0.4664.174", + "16.2.4": "96.0.4664.174", + "16.2.5": "96.0.4664.174", + "16.2.6": "96.0.4664.174", + "16.2.7": "96.0.4664.174", + "16.2.8": "96.0.4664.174", "17.0.0-alpha.1": "96.0.4664.4", "17.0.0-alpha.2": "96.0.4664.4", "17.0.0-alpha.3": "96.0.4664.4", @@ -1274,6 +1285,13 @@ module.exports = { "17.3.0": "98.0.4758.141", "17.3.1": "98.0.4758.141", "17.4.0": "98.0.4758.141", + "17.4.1": "98.0.4758.141", + "17.4.2": "98.0.4758.141", + "17.4.3": "98.0.4758.141", + "17.4.4": "98.0.4758.141", + "17.4.5": "98.0.4758.141", + "17.4.6": "98.0.4758.141", + "17.4.7": "98.0.4758.141", "18.0.0-alpha.1": "99.0.4767.0", "18.0.0-alpha.2": "99.0.4767.0", "18.0.0-alpha.3": "99.0.4767.0", @@ -1338,7 +1356,31 @@ module.exports = { "18.0.1": "100.0.4896.60", "18.0.2": "100.0.4896.60", "18.0.3": "100.0.4896.75", + "18.0.4": "100.0.4896.75", + "18.1.0": "100.0.4896.127", + "18.2.0": "100.0.4896.143", + "18.2.1": "100.0.4896.143", + "18.2.2": "100.0.4896.143", + "18.2.3": "100.0.4896.143", + "18.2.4": "100.0.4896.160", + "18.3.0": "100.0.4896.160", + "18.3.1": "100.0.4896.160", + "18.3.2": "100.0.4896.160", + "18.3.3": "100.0.4896.160", + "18.3.4": "100.0.4896.160", "19.0.0-alpha.1": "102.0.4962.3", + "19.0.0-alpha.2": "102.0.4971.0", + "19.0.0-alpha.3": "102.0.4971.0", + "19.0.0-alpha.4": "102.0.4989.0", + "19.0.0-alpha.5": "102.0.4989.0", + "19.0.0-beta.1": "102.0.4999.0", + "19.0.0-beta.2": "102.0.4999.0", + "19.0.0-beta.3": "102.0.4999.0", + "19.0.0-beta.4": "102.0.5005.27", + "19.0.0-beta.5": "102.0.5005.40", + "19.0.0-beta.6": "102.0.5005.40", + "19.0.0-beta.7": "102.0.5005.40", + "19.0.0-beta.8": "102.0.5005.49", "19.0.0-nightly.20220202": "99.0.4767.0", "19.0.0-nightly.20220203": "99.0.4767.0", "19.0.0-nightly.20220204": "99.0.4767.0", @@ -1361,5 +1403,60 @@ module.exports = { "19.0.0-nightly.20220325": "102.0.4961.0", "19.0.0-nightly.20220328": "102.0.4962.3", "19.0.0-nightly.20220329": "102.0.4962.3", - "20.0.0-nightly.20220330": "102.0.4962.3" + "19.0.0": "102.0.5005.61", + "19.0.1": "102.0.5005.61", + "19.0.2": "102.0.5005.63", + "19.0.3": "102.0.5005.63", + "19.0.4": "102.0.5005.63", + "20.0.0-alpha.1": "103.0.5044.0", + "20.0.0-alpha.2": "104.0.5073.0", + "20.0.0-alpha.3": "104.0.5073.0", + "20.0.0-alpha.4": "104.0.5073.0", + "20.0.0-alpha.5": "104.0.5073.0", + "20.0.0-alpha.6": "104.0.5073.0", + "20.0.0-nightly.20220330": "102.0.4962.3", + "20.0.0-nightly.20220411": "102.0.4971.0", + "20.0.0-nightly.20220414": "102.0.4989.0", + "20.0.0-nightly.20220415": "102.0.4989.0", + "20.0.0-nightly.20220418": "102.0.4989.0", + "20.0.0-nightly.20220419": "102.0.4989.0", + "20.0.0-nightly.20220420": "102.0.4989.0", + "20.0.0-nightly.20220421": "102.0.4989.0", + "20.0.0-nightly.20220425": "102.0.4999.0", + "20.0.0-nightly.20220426": "102.0.4999.0", + "20.0.0-nightly.20220427": "102.0.4999.0", + "20.0.0-nightly.20220428": "102.0.4999.0", + "20.0.0-nightly.20220429": "102.0.4999.0", + "20.0.0-nightly.20220502": "102.0.4999.0", + "20.0.0-nightly.20220503": "102.0.4999.0", + "20.0.0-nightly.20220504": "102.0.4999.0", + "20.0.0-nightly.20220505": "102.0.4999.0", + "20.0.0-nightly.20220506": "102.0.4999.0", + "20.0.0-nightly.20220509": "102.0.4999.0", + "20.0.0-nightly.20220511": "102.0.4999.0", + "20.0.0-nightly.20220512": "102.0.4999.0", + "20.0.0-nightly.20220513": "102.0.4999.0", + "20.0.0-nightly.20220516": "102.0.4999.0", + "20.0.0-nightly.20220517": "102.0.4999.0", + "20.0.0-nightly.20220518": "103.0.5044.0", + "20.0.0-nightly.20220519": "103.0.5044.0", + "20.0.0-nightly.20220520": "103.0.5044.0", + "20.0.0-nightly.20220523": "103.0.5044.0", + "20.0.0-nightly.20220524": "103.0.5044.0", + "21.0.0-nightly.20220526": "103.0.5044.0", + "21.0.0-nightly.20220527": "103.0.5044.0", + "21.0.0-nightly.20220530": "103.0.5044.0", + "21.0.0-nightly.20220531": "103.0.5044.0", + "21.0.0-nightly.20220602": "104.0.5073.0", + "21.0.0-nightly.20220603": "104.0.5073.0", + "21.0.0-nightly.20220606": "104.0.5073.0", + "21.0.0-nightly.20220607": "104.0.5073.0", + "21.0.0-nightly.20220608": "104.0.5073.0", + "21.0.0-nightly.20220609": "104.0.5073.0", + "21.0.0-nightly.20220610": "104.0.5073.0", + "21.0.0-nightly.20220613": "104.0.5073.0", + "21.0.0-nightly.20220614": "104.0.5073.0", + "21.0.0-nightly.20220615": "104.0.5073.0", + "21.0.0-nightly.20220616": "104.0.5073.0", + "21.0.0-nightly.20220617": "104.0.5073.0" }; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.json b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.json index ebb0e54bcce8ea..19231dc335f9f0 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.json +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/full-versions.json @@ -1 +1 @@ -{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","19.0.0-alpha.1":"102.0.4962.3","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","20.0.0-nightly.20220330":"102.0.4962.3"} \ No newline at end of file +{"0.20.0":"39.0.2171.65","0.20.1":"39.0.2171.65","0.20.2":"39.0.2171.65","0.20.3":"39.0.2171.65","0.20.4":"39.0.2171.65","0.20.5":"39.0.2171.65","0.20.6":"39.0.2171.65","0.20.7":"39.0.2171.65","0.20.8":"39.0.2171.65","0.21.0":"40.0.2214.91","0.21.1":"40.0.2214.91","0.21.2":"40.0.2214.91","0.21.3":"41.0.2272.76","0.22.1":"41.0.2272.76","0.22.2":"41.0.2272.76","0.22.3":"41.0.2272.76","0.23.0":"41.0.2272.76","0.24.0":"41.0.2272.76","0.25.0":"42.0.2311.107","0.25.1":"42.0.2311.107","0.25.2":"42.0.2311.107","0.25.3":"42.0.2311.107","0.26.0":"42.0.2311.107","0.26.1":"42.0.2311.107","0.27.0":"42.0.2311.107","0.27.1":"42.0.2311.107","0.27.2":"43.0.2357.65","0.27.3":"43.0.2357.65","0.28.0":"43.0.2357.65","0.28.1":"43.0.2357.65","0.28.2":"43.0.2357.65","0.28.3":"43.0.2357.65","0.29.1":"43.0.2357.65","0.29.2":"43.0.2357.65","0.30.4":"44.0.2403.125","0.31.0":"44.0.2403.125","0.31.2":"45.0.2454.85","0.32.2":"45.0.2454.85","0.32.3":"45.0.2454.85","0.33.0":"45.0.2454.85","0.33.1":"45.0.2454.85","0.33.2":"45.0.2454.85","0.33.3":"45.0.2454.85","0.33.4":"45.0.2454.85","0.33.6":"45.0.2454.85","0.33.7":"45.0.2454.85","0.33.8":"45.0.2454.85","0.33.9":"45.0.2454.85","0.34.0":"45.0.2454.85","0.34.1":"45.0.2454.85","0.34.2":"45.0.2454.85","0.34.3":"45.0.2454.85","0.34.4":"45.0.2454.85","0.35.1":"45.0.2454.85","0.35.2":"45.0.2454.85","0.35.3":"45.0.2454.85","0.35.4":"45.0.2454.85","0.35.5":"45.0.2454.85","0.36.0":"47.0.2526.73","0.36.2":"47.0.2526.73","0.36.3":"47.0.2526.73","0.36.4":"47.0.2526.73","0.36.5":"47.0.2526.110","0.36.6":"47.0.2526.110","0.36.7":"47.0.2526.110","0.36.8":"47.0.2526.110","0.36.9":"47.0.2526.110","0.36.10":"47.0.2526.110","0.36.11":"47.0.2526.110","0.36.12":"47.0.2526.110","0.37.0":"49.0.2623.75","0.37.1":"49.0.2623.75","0.37.3":"49.0.2623.75","0.37.4":"49.0.2623.75","0.37.5":"49.0.2623.75","0.37.6":"49.0.2623.75","0.37.7":"49.0.2623.75","0.37.8":"49.0.2623.75","1.0.0":"49.0.2623.75","1.0.1":"49.0.2623.75","1.0.2":"49.0.2623.75","1.1.0":"50.0.2661.102","1.1.1":"50.0.2661.102","1.1.2":"50.0.2661.102","1.1.3":"50.0.2661.102","1.2.0":"51.0.2704.63","1.2.1":"51.0.2704.63","1.2.2":"51.0.2704.84","1.2.3":"51.0.2704.84","1.2.4":"51.0.2704.103","1.2.5":"51.0.2704.103","1.2.6":"51.0.2704.106","1.2.7":"51.0.2704.106","1.2.8":"51.0.2704.106","1.3.0":"52.0.2743.82","1.3.1":"52.0.2743.82","1.3.2":"52.0.2743.82","1.3.3":"52.0.2743.82","1.3.4":"52.0.2743.82","1.3.5":"52.0.2743.82","1.3.6":"52.0.2743.82","1.3.7":"52.0.2743.82","1.3.9":"52.0.2743.82","1.3.10":"52.0.2743.82","1.3.13":"52.0.2743.82","1.3.14":"52.0.2743.82","1.3.15":"52.0.2743.82","1.4.0":"53.0.2785.113","1.4.1":"53.0.2785.113","1.4.2":"53.0.2785.113","1.4.3":"53.0.2785.113","1.4.4":"53.0.2785.113","1.4.5":"53.0.2785.113","1.4.6":"53.0.2785.143","1.4.7":"53.0.2785.143","1.4.8":"53.0.2785.143","1.4.10":"53.0.2785.143","1.4.11":"53.0.2785.143","1.4.12":"54.0.2840.51","1.4.13":"53.0.2785.143","1.4.14":"53.0.2785.143","1.4.15":"53.0.2785.143","1.4.16":"53.0.2785.143","1.5.0":"54.0.2840.101","1.5.1":"54.0.2840.101","1.6.0":"56.0.2924.87","1.6.1":"56.0.2924.87","1.6.2":"56.0.2924.87","1.6.3":"56.0.2924.87","1.6.4":"56.0.2924.87","1.6.5":"56.0.2924.87","1.6.6":"56.0.2924.87","1.6.7":"56.0.2924.87","1.6.8":"56.0.2924.87","1.6.9":"56.0.2924.87","1.6.10":"56.0.2924.87","1.6.11":"56.0.2924.87","1.6.12":"56.0.2924.87","1.6.13":"56.0.2924.87","1.6.14":"56.0.2924.87","1.6.15":"56.0.2924.87","1.6.16":"56.0.2924.87","1.6.17":"56.0.2924.87","1.6.18":"56.0.2924.87","1.7.0":"58.0.3029.110","1.7.1":"58.0.3029.110","1.7.2":"58.0.3029.110","1.7.3":"58.0.3029.110","1.7.4":"58.0.3029.110","1.7.5":"58.0.3029.110","1.7.6":"58.0.3029.110","1.7.7":"58.0.3029.110","1.7.8":"58.0.3029.110","1.7.9":"58.0.3029.110","1.7.10":"58.0.3029.110","1.7.11":"58.0.3029.110","1.7.12":"58.0.3029.110","1.7.13":"58.0.3029.110","1.7.14":"58.0.3029.110","1.7.15":"58.0.3029.110","1.7.16":"58.0.3029.110","1.8.0":"59.0.3071.115","1.8.1":"59.0.3071.115","1.8.2-beta.1":"59.0.3071.115","1.8.2-beta.2":"59.0.3071.115","1.8.2-beta.3":"59.0.3071.115","1.8.2-beta.4":"59.0.3071.115","1.8.2-beta.5":"59.0.3071.115","1.8.2":"59.0.3071.115","1.8.3":"59.0.3071.115","1.8.4":"59.0.3071.115","1.8.5":"59.0.3071.115","1.8.6":"59.0.3071.115","1.8.7":"59.0.3071.115","1.8.8":"59.0.3071.115","2.0.0-beta.1":"61.0.3163.100","2.0.0-beta.2":"61.0.3163.100","2.0.0-beta.3":"61.0.3163.100","2.0.0-beta.4":"61.0.3163.100","2.0.0-beta.5":"61.0.3163.100","2.0.0-beta.6":"61.0.3163.100","2.0.0-beta.7":"61.0.3163.100","2.0.0-beta.8":"61.0.3163.100","2.0.0":"61.0.3163.100","2.0.1":"61.0.3163.100","2.0.2":"61.0.3163.100","2.0.3":"61.0.3163.100","2.0.4":"61.0.3163.100","2.0.5":"61.0.3163.100","2.0.6":"61.0.3163.100","2.0.7":"61.0.3163.100","2.0.8-nightly.20180819":"61.0.3163.100","2.0.8-nightly.20180820":"61.0.3163.100","2.0.8":"61.0.3163.100","2.0.9":"61.0.3163.100","2.0.10":"61.0.3163.100","2.0.11":"61.0.3163.100","2.0.12":"61.0.3163.100","2.0.13":"61.0.3163.100","2.0.14":"61.0.3163.100","2.0.15":"61.0.3163.100","2.0.16":"61.0.3163.100","2.0.17":"61.0.3163.100","2.0.18":"61.0.3163.100","2.1.0-unsupported.20180809":"61.0.3163.100","3.0.0-beta.1":"66.0.3359.181","3.0.0-beta.2":"66.0.3359.181","3.0.0-beta.3":"66.0.3359.181","3.0.0-beta.4":"66.0.3359.181","3.0.0-beta.5":"66.0.3359.181","3.0.0-beta.6":"66.0.3359.181","3.0.0-beta.7":"66.0.3359.181","3.0.0-beta.8":"66.0.3359.181","3.0.0-beta.9":"66.0.3359.181","3.0.0-beta.10":"66.0.3359.181","3.0.0-beta.11":"66.0.3359.181","3.0.0-beta.12":"66.0.3359.181","3.0.0-beta.13":"66.0.3359.181","3.0.0-nightly.20180818":"66.0.3359.181","3.0.0-nightly.20180821":"66.0.3359.181","3.0.0-nightly.20180823":"66.0.3359.181","3.0.0-nightly.20180904":"66.0.3359.181","3.0.0":"66.0.3359.181","3.0.1":"66.0.3359.181","3.0.2":"66.0.3359.181","3.0.3":"66.0.3359.181","3.0.4":"66.0.3359.181","3.0.5":"66.0.3359.181","3.0.6":"66.0.3359.181","3.0.7":"66.0.3359.181","3.0.8":"66.0.3359.181","3.0.9":"66.0.3359.181","3.0.10":"66.0.3359.181","3.0.11":"66.0.3359.181","3.0.12":"66.0.3359.181","3.0.13":"66.0.3359.181","3.0.14":"66.0.3359.181","3.0.15":"66.0.3359.181","3.0.16":"66.0.3359.181","3.1.0-beta.1":"66.0.3359.181","3.1.0-beta.2":"66.0.3359.181","3.1.0-beta.3":"66.0.3359.181","3.1.0-beta.4":"66.0.3359.181","3.1.0-beta.5":"66.0.3359.181","3.1.0":"66.0.3359.181","3.1.1":"66.0.3359.181","3.1.2":"66.0.3359.181","3.1.3":"66.0.3359.181","3.1.4":"66.0.3359.181","3.1.5":"66.0.3359.181","3.1.6":"66.0.3359.181","3.1.7":"66.0.3359.181","3.1.8":"66.0.3359.181","3.1.9":"66.0.3359.181","3.1.10":"66.0.3359.181","3.1.11":"66.0.3359.181","3.1.12":"66.0.3359.181","3.1.13":"66.0.3359.181","4.0.0-beta.1":"69.0.3497.106","4.0.0-beta.2":"69.0.3497.106","4.0.0-beta.3":"69.0.3497.106","4.0.0-beta.4":"69.0.3497.106","4.0.0-beta.5":"69.0.3497.106","4.0.0-beta.6":"69.0.3497.106","4.0.0-beta.7":"69.0.3497.106","4.0.0-beta.8":"69.0.3497.106","4.0.0-beta.9":"69.0.3497.106","4.0.0-beta.10":"69.0.3497.106","4.0.0-beta.11":"69.0.3497.106","4.0.0-nightly.20180817":"66.0.3359.181","4.0.0-nightly.20180819":"66.0.3359.181","4.0.0-nightly.20180821":"66.0.3359.181","4.0.0-nightly.20180929":"67.0.3396.99","4.0.0-nightly.20181006":"68.0.3440.128","4.0.0-nightly.20181010":"69.0.3497.106","4.0.0":"69.0.3497.106","4.0.1":"69.0.3497.106","4.0.2":"69.0.3497.106","4.0.3":"69.0.3497.106","4.0.4":"69.0.3497.106","4.0.5":"69.0.3497.106","4.0.6":"69.0.3497.106","4.0.7":"69.0.3497.128","4.0.8":"69.0.3497.128","4.1.0":"69.0.3497.128","4.1.1":"69.0.3497.128","4.1.2":"69.0.3497.128","4.1.3":"69.0.3497.128","4.1.4":"69.0.3497.128","4.1.5":"69.0.3497.128","4.2.0":"69.0.3497.128","4.2.1":"69.0.3497.128","4.2.2":"69.0.3497.128","4.2.3":"69.0.3497.128","4.2.4":"69.0.3497.128","4.2.5":"69.0.3497.128","4.2.6":"69.0.3497.128","4.2.7":"69.0.3497.128","4.2.8":"69.0.3497.128","4.2.9":"69.0.3497.128","4.2.10":"69.0.3497.128","4.2.11":"69.0.3497.128","4.2.12":"69.0.3497.128","5.0.0-beta.1":"72.0.3626.52","5.0.0-beta.2":"72.0.3626.52","5.0.0-beta.3":"73.0.3683.27","5.0.0-beta.4":"73.0.3683.54","5.0.0-beta.5":"73.0.3683.61","5.0.0-beta.6":"73.0.3683.84","5.0.0-beta.7":"73.0.3683.94","5.0.0-beta.8":"73.0.3683.104","5.0.0-beta.9":"73.0.3683.117","5.0.0-nightly.20190107":"70.0.3538.110","5.0.0-nightly.20190121":"71.0.3578.98","5.0.0-nightly.20190122":"71.0.3578.98","5.0.0":"73.0.3683.119","5.0.1":"73.0.3683.121","5.0.2":"73.0.3683.121","5.0.3":"73.0.3683.121","5.0.4":"73.0.3683.121","5.0.5":"73.0.3683.121","5.0.6":"73.0.3683.121","5.0.7":"73.0.3683.121","5.0.8":"73.0.3683.121","5.0.9":"73.0.3683.121","5.0.10":"73.0.3683.121","5.0.11":"73.0.3683.121","5.0.12":"73.0.3683.121","5.0.13":"73.0.3683.121","6.0.0-beta.1":"76.0.3774.1","6.0.0-beta.2":"76.0.3783.1","6.0.0-beta.3":"76.0.3783.1","6.0.0-beta.4":"76.0.3783.1","6.0.0-beta.5":"76.0.3805.4","6.0.0-beta.6":"76.0.3809.3","6.0.0-beta.7":"76.0.3809.22","6.0.0-beta.8":"76.0.3809.26","6.0.0-beta.9":"76.0.3809.26","6.0.0-beta.10":"76.0.3809.37","6.0.0-beta.11":"76.0.3809.42","6.0.0-beta.12":"76.0.3809.54","6.0.0-beta.13":"76.0.3809.60","6.0.0-beta.14":"76.0.3809.68","6.0.0-beta.15":"76.0.3809.74","6.0.0-nightly.20190212":"72.0.3626.107","6.0.0-nightly.20190213":"72.0.3626.110","6.0.0-nightly.20190311":"74.0.3724.8","6.0.0":"76.0.3809.88","6.0.1":"76.0.3809.102","6.0.2":"76.0.3809.110","6.0.3":"76.0.3809.126","6.0.4":"76.0.3809.131","6.0.5":"76.0.3809.136","6.0.6":"76.0.3809.138","6.0.7":"76.0.3809.139","6.0.8":"76.0.3809.146","6.0.9":"76.0.3809.146","6.0.10":"76.0.3809.146","6.0.11":"76.0.3809.146","6.0.12":"76.0.3809.146","6.1.0":"76.0.3809.146","6.1.1":"76.0.3809.146","6.1.2":"76.0.3809.146","6.1.3":"76.0.3809.146","6.1.4":"76.0.3809.146","6.1.5":"76.0.3809.146","6.1.6":"76.0.3809.146","6.1.7":"76.0.3809.146","6.1.8":"76.0.3809.146","6.1.9":"76.0.3809.146","6.1.10":"76.0.3809.146","6.1.11":"76.0.3809.146","6.1.12":"76.0.3809.146","7.0.0-beta.1":"78.0.3866.0","7.0.0-beta.2":"78.0.3866.0","7.0.0-beta.3":"78.0.3866.0","7.0.0-beta.4":"78.0.3896.6","7.0.0-beta.5":"78.0.3905.1","7.0.0-beta.6":"78.0.3905.1","7.0.0-beta.7":"78.0.3905.1","7.0.0-nightly.20190521":"76.0.3784.0","7.0.0-nightly.20190529":"76.0.3806.0","7.0.0-nightly.20190530":"76.0.3806.0","7.0.0-nightly.20190531":"76.0.3806.0","7.0.0-nightly.20190602":"76.0.3806.0","7.0.0-nightly.20190603":"76.0.3806.0","7.0.0-nightly.20190604":"77.0.3814.0","7.0.0-nightly.20190605":"77.0.3815.0","7.0.0-nightly.20190606":"77.0.3815.0","7.0.0-nightly.20190607":"77.0.3815.0","7.0.0-nightly.20190608":"77.0.3815.0","7.0.0-nightly.20190609":"77.0.3815.0","7.0.0-nightly.20190611":"77.0.3815.0","7.0.0-nightly.20190612":"77.0.3815.0","7.0.0-nightly.20190613":"77.0.3815.0","7.0.0-nightly.20190615":"77.0.3815.0","7.0.0-nightly.20190616":"77.0.3815.0","7.0.0-nightly.20190618":"77.0.3815.0","7.0.0-nightly.20190619":"77.0.3815.0","7.0.0-nightly.20190622":"77.0.3815.0","7.0.0-nightly.20190623":"77.0.3815.0","7.0.0-nightly.20190624":"77.0.3815.0","7.0.0-nightly.20190627":"77.0.3815.0","7.0.0-nightly.20190629":"77.0.3815.0","7.0.0-nightly.20190630":"77.0.3815.0","7.0.0-nightly.20190701":"77.0.3815.0","7.0.0-nightly.20190702":"77.0.3815.0","7.0.0-nightly.20190704":"77.0.3843.0","7.0.0-nightly.20190705":"77.0.3843.0","7.0.0-nightly.20190719":"77.0.3848.0","7.0.0-nightly.20190720":"77.0.3848.0","7.0.0-nightly.20190721":"77.0.3848.0","7.0.0-nightly.20190726":"77.0.3864.0","7.0.0-nightly.20190727":"78.0.3866.0","7.0.0-nightly.20190728":"78.0.3866.0","7.0.0-nightly.20190729":"78.0.3866.0","7.0.0-nightly.20190730":"78.0.3866.0","7.0.0-nightly.20190731":"78.0.3866.0","7.0.0":"78.0.3905.1","7.0.1":"78.0.3904.92","7.1.0":"78.0.3904.94","7.1.1":"78.0.3904.99","7.1.2":"78.0.3904.113","7.1.3":"78.0.3904.126","7.1.4":"78.0.3904.130","7.1.5":"78.0.3904.130","7.1.6":"78.0.3904.130","7.1.7":"78.0.3904.130","7.1.8":"78.0.3904.130","7.1.9":"78.0.3904.130","7.1.10":"78.0.3904.130","7.1.11":"78.0.3904.130","7.1.12":"78.0.3904.130","7.1.13":"78.0.3904.130","7.1.14":"78.0.3904.130","7.2.0":"78.0.3904.130","7.2.1":"78.0.3904.130","7.2.2":"78.0.3904.130","7.2.3":"78.0.3904.130","7.2.4":"78.0.3904.130","7.3.0":"78.0.3904.130","7.3.1":"78.0.3904.130","7.3.2":"78.0.3904.130","7.3.3":"78.0.3904.130","8.0.0-beta.1":"79.0.3931.0","8.0.0-beta.2":"79.0.3931.0","8.0.0-beta.3":"80.0.3955.0","8.0.0-beta.4":"80.0.3955.0","8.0.0-beta.5":"80.0.3987.14","8.0.0-beta.6":"80.0.3987.51","8.0.0-beta.7":"80.0.3987.59","8.0.0-beta.8":"80.0.3987.75","8.0.0-beta.9":"80.0.3987.75","8.0.0-nightly.20190801":"78.0.3866.0","8.0.0-nightly.20190802":"78.0.3866.0","8.0.0-nightly.20190803":"78.0.3871.0","8.0.0-nightly.20190806":"78.0.3871.0","8.0.0-nightly.20190807":"78.0.3871.0","8.0.0-nightly.20190808":"78.0.3871.0","8.0.0-nightly.20190809":"78.0.3871.0","8.0.0-nightly.20190810":"78.0.3871.0","8.0.0-nightly.20190811":"78.0.3871.0","8.0.0-nightly.20190812":"78.0.3871.0","8.0.0-nightly.20190813":"78.0.3871.0","8.0.0-nightly.20190814":"78.0.3871.0","8.0.0-nightly.20190815":"78.0.3871.0","8.0.0-nightly.20190816":"78.0.3881.0","8.0.0-nightly.20190817":"78.0.3881.0","8.0.0-nightly.20190818":"78.0.3881.0","8.0.0-nightly.20190819":"78.0.3881.0","8.0.0-nightly.20190820":"78.0.3881.0","8.0.0-nightly.20190824":"78.0.3892.0","8.0.0-nightly.20190825":"78.0.3892.0","8.0.0-nightly.20190827":"78.0.3892.0","8.0.0-nightly.20190828":"78.0.3892.0","8.0.0-nightly.20190830":"78.0.3892.0","8.0.0-nightly.20190901":"78.0.3892.0","8.0.0-nightly.20190902":"78.0.3892.0","8.0.0-nightly.20190907":"78.0.3892.0","8.0.0-nightly.20190909":"78.0.3892.0","8.0.0-nightly.20190910":"78.0.3892.0","8.0.0-nightly.20190911":"78.0.3892.0","8.0.0-nightly.20190913":"78.0.3892.0","8.0.0-nightly.20190914":"78.0.3892.0","8.0.0-nightly.20190915":"78.0.3892.0","8.0.0-nightly.20190917":"78.0.3892.0","8.0.0-nightly.20190919":"79.0.3915.0","8.0.0-nightly.20190920":"79.0.3915.0","8.0.0-nightly.20190923":"79.0.3919.0","8.0.0-nightly.20190924":"79.0.3919.0","8.0.0-nightly.20190926":"79.0.3919.0","8.0.0-nightly.20190929":"79.0.3919.0","8.0.0-nightly.20190930":"79.0.3919.0","8.0.0-nightly.20191001":"79.0.3919.0","8.0.0-nightly.20191004":"79.0.3919.0","8.0.0-nightly.20191005":"79.0.3919.0","8.0.0-nightly.20191006":"79.0.3919.0","8.0.0-nightly.20191009":"79.0.3919.0","8.0.0-nightly.20191011":"79.0.3919.0","8.0.0-nightly.20191012":"79.0.3919.0","8.0.0-nightly.20191017":"79.0.3919.0","8.0.0-nightly.20191019":"79.0.3931.0","8.0.0-nightly.20191020":"79.0.3931.0","8.0.0-nightly.20191021":"79.0.3931.0","8.0.0-nightly.20191023":"79.0.3931.0","8.0.0-nightly.20191101":"80.0.3952.0","8.0.0-nightly.20191105":"80.0.3952.0","8.0.0":"80.0.3987.86","8.0.1":"80.0.3987.86","8.0.2":"80.0.3987.86","8.0.3":"80.0.3987.134","8.1.0":"80.0.3987.137","8.1.1":"80.0.3987.141","8.2.0":"80.0.3987.158","8.2.1":"80.0.3987.163","8.2.2":"80.0.3987.163","8.2.3":"80.0.3987.163","8.2.4":"80.0.3987.165","8.2.5":"80.0.3987.165","8.3.0":"80.0.3987.165","8.3.1":"80.0.3987.165","8.3.2":"80.0.3987.165","8.3.3":"80.0.3987.165","8.3.4":"80.0.3987.165","8.4.0":"80.0.3987.165","8.4.1":"80.0.3987.165","8.5.0":"80.0.3987.165","8.5.1":"80.0.3987.165","8.5.2":"80.0.3987.165","8.5.3":"80.0.3987.163","8.5.4":"80.0.3987.163","8.5.5":"80.0.3987.163","9.0.0-beta.1":"82.0.4048.0","9.0.0-beta.2":"82.0.4048.0","9.0.0-beta.3":"82.0.4048.0","9.0.0-beta.4":"82.0.4048.0","9.0.0-beta.5":"82.0.4048.0","9.0.0-beta.6":"82.0.4058.2","9.0.0-beta.7":"82.0.4058.2","9.0.0-beta.9":"82.0.4058.2","9.0.0-beta.10":"82.0.4085.10","9.0.0-beta.12":"82.0.4085.14","9.0.0-beta.13":"82.0.4085.14","9.0.0-beta.14":"82.0.4085.27","9.0.0-beta.15":"83.0.4102.3","9.0.0-beta.16":"83.0.4102.3","9.0.0-beta.17":"83.0.4103.14","9.0.0-beta.18":"83.0.4103.16","9.0.0-beta.19":"83.0.4103.24","9.0.0-beta.20":"83.0.4103.26","9.0.0-beta.21":"83.0.4103.26","9.0.0-beta.22":"83.0.4103.34","9.0.0-beta.23":"83.0.4103.44","9.0.0-beta.24":"83.0.4103.45","9.0.0-nightly.20191121":"80.0.3954.0","9.0.0-nightly.20191122":"80.0.3954.0","9.0.0-nightly.20191123":"80.0.3954.0","9.0.0-nightly.20191124":"80.0.3954.0","9.0.0-nightly.20191129":"80.0.3954.0","9.0.0-nightly.20191130":"80.0.3954.0","9.0.0-nightly.20191201":"80.0.3954.0","9.0.0-nightly.20191202":"80.0.3954.0","9.0.0-nightly.20191203":"80.0.3954.0","9.0.0-nightly.20191204":"80.0.3954.0","9.0.0-nightly.20191210":"80.0.3954.0","9.0.0-nightly.20191220":"81.0.3994.0","9.0.0-nightly.20191221":"81.0.3994.0","9.0.0-nightly.20191222":"81.0.3994.0","9.0.0-nightly.20191223":"81.0.3994.0","9.0.0-nightly.20191224":"81.0.3994.0","9.0.0-nightly.20191225":"81.0.3994.0","9.0.0-nightly.20191226":"81.0.3994.0","9.0.0-nightly.20191228":"81.0.3994.0","9.0.0-nightly.20191229":"81.0.3994.0","9.0.0-nightly.20191230":"81.0.3994.0","9.0.0-nightly.20191231":"81.0.3994.0","9.0.0-nightly.20200101":"81.0.3994.0","9.0.0-nightly.20200103":"81.0.3994.0","9.0.0-nightly.20200104":"81.0.3994.0","9.0.0-nightly.20200105":"81.0.3994.0","9.0.0-nightly.20200106":"81.0.3994.0","9.0.0-nightly.20200108":"81.0.3994.0","9.0.0-nightly.20200109":"81.0.3994.0","9.0.0-nightly.20200110":"81.0.3994.0","9.0.0-nightly.20200111":"81.0.3994.0","9.0.0-nightly.20200113":"81.0.3994.0","9.0.0-nightly.20200115":"81.0.3994.0","9.0.0-nightly.20200116":"81.0.3994.0","9.0.0-nightly.20200117":"81.0.3994.0","9.0.0-nightly.20200119":"81.0.4030.0","9.0.0-nightly.20200121":"81.0.4030.0","9.0.0":"83.0.4103.64","9.0.1":"83.0.4103.94","9.0.2":"83.0.4103.94","9.0.3":"83.0.4103.100","9.0.4":"83.0.4103.104","9.0.5":"83.0.4103.119","9.1.0":"83.0.4103.122","9.1.1":"83.0.4103.122","9.1.2":"83.0.4103.122","9.2.0":"83.0.4103.122","9.2.1":"83.0.4103.122","9.3.0":"83.0.4103.122","9.3.1":"83.0.4103.122","9.3.2":"83.0.4103.122","9.3.3":"83.0.4103.122","9.3.4":"83.0.4103.122","9.3.5":"83.0.4103.122","9.4.0":"83.0.4103.122","9.4.1":"83.0.4103.122","9.4.2":"83.0.4103.122","9.4.3":"83.0.4103.122","9.4.4":"83.0.4103.122","10.0.0-beta.1":"84.0.4129.0","10.0.0-beta.2":"84.0.4129.0","10.0.0-beta.3":"85.0.4161.2","10.0.0-beta.4":"85.0.4161.2","10.0.0-beta.8":"85.0.4181.1","10.0.0-beta.9":"85.0.4181.1","10.0.0-beta.10":"85.0.4183.19","10.0.0-beta.11":"85.0.4183.20","10.0.0-beta.12":"85.0.4183.26","10.0.0-beta.13":"85.0.4183.39","10.0.0-beta.14":"85.0.4183.39","10.0.0-beta.15":"85.0.4183.39","10.0.0-beta.17":"85.0.4183.39","10.0.0-beta.19":"85.0.4183.39","10.0.0-beta.20":"85.0.4183.39","10.0.0-beta.21":"85.0.4183.39","10.0.0-beta.23":"85.0.4183.70","10.0.0-beta.24":"85.0.4183.78","10.0.0-beta.25":"85.0.4183.80","10.0.0-nightly.20200209":"82.0.4050.0","10.0.0-nightly.20200210":"82.0.4050.0","10.0.0-nightly.20200211":"82.0.4050.0","10.0.0-nightly.20200216":"82.0.4050.0","10.0.0-nightly.20200217":"82.0.4050.0","10.0.0-nightly.20200218":"82.0.4050.0","10.0.0-nightly.20200221":"82.0.4050.0","10.0.0-nightly.20200222":"82.0.4050.0","10.0.0-nightly.20200223":"82.0.4050.0","10.0.0-nightly.20200226":"82.0.4050.0","10.0.0-nightly.20200303":"82.0.4050.0","10.0.0-nightly.20200304":"82.0.4076.0","10.0.0-nightly.20200305":"82.0.4076.0","10.0.0-nightly.20200306":"82.0.4076.0","10.0.0-nightly.20200309":"82.0.4076.0","10.0.0-nightly.20200310":"82.0.4076.0","10.0.0-nightly.20200311":"82.0.4083.0","10.0.0-nightly.20200316":"83.0.4086.0","10.0.0-nightly.20200317":"83.0.4087.0","10.0.0-nightly.20200318":"83.0.4087.0","10.0.0-nightly.20200320":"83.0.4087.0","10.0.0-nightly.20200323":"83.0.4087.0","10.0.0-nightly.20200324":"83.0.4087.0","10.0.0-nightly.20200325":"83.0.4087.0","10.0.0-nightly.20200326":"83.0.4087.0","10.0.0-nightly.20200327":"83.0.4087.0","10.0.0-nightly.20200330":"83.0.4087.0","10.0.0-nightly.20200331":"83.0.4087.0","10.0.0-nightly.20200401":"83.0.4087.0","10.0.0-nightly.20200402":"83.0.4087.0","10.0.0-nightly.20200403":"83.0.4087.0","10.0.0-nightly.20200406":"83.0.4087.0","10.0.0-nightly.20200408":"83.0.4095.0","10.0.0-nightly.20200410":"83.0.4095.0","10.0.0-nightly.20200413":"83.0.4095.0","10.0.0-nightly.20200414":"84.0.4114.0","10.0.0-nightly.20200415":"84.0.4115.0","10.0.0-nightly.20200416":"84.0.4115.0","10.0.0-nightly.20200417":"84.0.4115.0","10.0.0-nightly.20200422":"84.0.4121.0","10.0.0-nightly.20200423":"84.0.4121.0","10.0.0-nightly.20200427":"84.0.4125.0","10.0.0-nightly.20200428":"84.0.4125.0","10.0.0-nightly.20200429":"84.0.4125.0","10.0.0-nightly.20200430":"84.0.4125.0","10.0.0-nightly.20200501":"84.0.4129.0","10.0.0-nightly.20200504":"84.0.4129.0","10.0.0-nightly.20200505":"84.0.4129.0","10.0.0-nightly.20200506":"84.0.4129.0","10.0.0-nightly.20200507":"84.0.4129.0","10.0.0-nightly.20200508":"84.0.4129.0","10.0.0-nightly.20200511":"84.0.4129.0","10.0.0-nightly.20200512":"84.0.4129.0","10.0.0-nightly.20200513":"84.0.4129.0","10.0.0-nightly.20200514":"84.0.4129.0","10.0.0-nightly.20200515":"84.0.4129.0","10.0.0-nightly.20200518":"84.0.4129.0","10.0.0-nightly.20200519":"84.0.4129.0","10.0.0-nightly.20200520":"84.0.4129.0","10.0.0-nightly.20200521":"84.0.4129.0","10.0.0":"85.0.4183.84","10.0.1":"85.0.4183.86","10.1.0":"85.0.4183.87","10.1.1":"85.0.4183.93","10.1.2":"85.0.4183.98","10.1.3":"85.0.4183.121","10.1.4":"85.0.4183.121","10.1.5":"85.0.4183.121","10.1.6":"85.0.4183.121","10.1.7":"85.0.4183.121","10.2.0":"85.0.4183.121","10.3.0":"85.0.4183.121","10.3.1":"85.0.4183.121","10.3.2":"85.0.4183.121","10.4.0":"85.0.4183.121","10.4.1":"85.0.4183.121","10.4.2":"85.0.4183.121","10.4.3":"85.0.4183.121","10.4.4":"85.0.4183.121","10.4.5":"85.0.4183.121","10.4.6":"85.0.4183.121","10.4.7":"85.0.4183.121","11.0.0-beta.1":"86.0.4234.0","11.0.0-beta.3":"86.0.4234.0","11.0.0-beta.4":"86.0.4234.0","11.0.0-beta.5":"86.0.4234.0","11.0.0-beta.6":"86.0.4234.0","11.0.0-beta.7":"86.0.4234.0","11.0.0-beta.8":"87.0.4251.1","11.0.0-beta.9":"87.0.4251.1","11.0.0-beta.11":"87.0.4251.1","11.0.0-beta.12":"87.0.4280.11","11.0.0-beta.13":"87.0.4280.11","11.0.0-beta.16":"87.0.4280.27","11.0.0-beta.17":"87.0.4280.27","11.0.0-beta.18":"87.0.4280.27","11.0.0-beta.19":"87.0.4280.27","11.0.0-beta.20":"87.0.4280.40","11.0.0-beta.22":"87.0.4280.47","11.0.0-beta.23":"87.0.4280.47","11.0.0-nightly.20200525":"84.0.4129.0","11.0.0-nightly.20200526":"84.0.4129.0","11.0.0-nightly.20200529":"85.0.4156.0","11.0.0-nightly.20200602":"85.0.4162.0","11.0.0-nightly.20200603":"85.0.4162.0","11.0.0-nightly.20200604":"85.0.4162.0","11.0.0-nightly.20200609":"85.0.4162.0","11.0.0-nightly.20200610":"85.0.4162.0","11.0.0-nightly.20200611":"85.0.4162.0","11.0.0-nightly.20200615":"85.0.4162.0","11.0.0-nightly.20200616":"85.0.4162.0","11.0.0-nightly.20200617":"85.0.4162.0","11.0.0-nightly.20200618":"85.0.4162.0","11.0.0-nightly.20200619":"85.0.4162.0","11.0.0-nightly.20200701":"85.0.4179.0","11.0.0-nightly.20200702":"85.0.4179.0","11.0.0-nightly.20200703":"85.0.4179.0","11.0.0-nightly.20200706":"85.0.4179.0","11.0.0-nightly.20200707":"85.0.4179.0","11.0.0-nightly.20200708":"85.0.4179.0","11.0.0-nightly.20200709":"85.0.4179.0","11.0.0-nightly.20200716":"86.0.4203.0","11.0.0-nightly.20200717":"86.0.4203.0","11.0.0-nightly.20200720":"86.0.4203.0","11.0.0-nightly.20200721":"86.0.4203.0","11.0.0-nightly.20200723":"86.0.4209.0","11.0.0-nightly.20200724":"86.0.4209.0","11.0.0-nightly.20200729":"86.0.4209.0","11.0.0-nightly.20200730":"86.0.4209.0","11.0.0-nightly.20200731":"86.0.4209.0","11.0.0-nightly.20200803":"86.0.4209.0","11.0.0-nightly.20200804":"86.0.4209.0","11.0.0-nightly.20200805":"86.0.4209.0","11.0.0-nightly.20200811":"86.0.4209.0","11.0.0-nightly.20200812":"86.0.4209.0","11.0.0-nightly.20200822":"86.0.4234.0","11.0.0-nightly.20200824":"86.0.4234.0","11.0.0-nightly.20200825":"86.0.4234.0","11.0.0-nightly.20200826":"86.0.4234.0","11.0.0":"87.0.4280.60","11.0.1":"87.0.4280.60","11.0.2":"87.0.4280.67","11.0.3":"87.0.4280.67","11.0.4":"87.0.4280.67","11.0.5":"87.0.4280.88","11.1.0":"87.0.4280.88","11.1.1":"87.0.4280.88","11.2.0":"87.0.4280.141","11.2.1":"87.0.4280.141","11.2.2":"87.0.4280.141","11.2.3":"87.0.4280.141","11.3.0":"87.0.4280.141","11.4.0":"87.0.4280.141","11.4.1":"87.0.4280.141","11.4.2":"87.0.4280.141","11.4.3":"87.0.4280.141","11.4.4":"87.0.4280.141","11.4.5":"87.0.4280.141","11.4.6":"87.0.4280.141","11.4.7":"87.0.4280.141","11.4.8":"87.0.4280.141","11.4.9":"87.0.4280.141","11.4.10":"87.0.4280.141","11.4.11":"87.0.4280.141","11.4.12":"87.0.4280.141","11.5.0":"87.0.4280.141","12.0.0-beta.1":"89.0.4328.0","12.0.0-beta.3":"89.0.4328.0","12.0.0-beta.4":"89.0.4328.0","12.0.0-beta.5":"89.0.4328.0","12.0.0-beta.6":"89.0.4328.0","12.0.0-beta.7":"89.0.4328.0","12.0.0-beta.8":"89.0.4328.0","12.0.0-beta.9":"89.0.4328.0","12.0.0-beta.10":"89.0.4328.0","12.0.0-beta.11":"89.0.4328.0","12.0.0-beta.12":"89.0.4328.0","12.0.0-beta.14":"89.0.4328.0","12.0.0-beta.16":"89.0.4348.1","12.0.0-beta.18":"89.0.4348.1","12.0.0-beta.19":"89.0.4348.1","12.0.0-beta.20":"89.0.4348.1","12.0.0-beta.21":"89.0.4388.2","12.0.0-beta.22":"89.0.4388.2","12.0.0-beta.23":"89.0.4388.2","12.0.0-beta.24":"89.0.4388.2","12.0.0-beta.25":"89.0.4388.2","12.0.0-beta.26":"89.0.4388.2","12.0.0-beta.27":"89.0.4389.23","12.0.0-beta.28":"89.0.4389.23","12.0.0-beta.29":"89.0.4389.23","12.0.0-beta.30":"89.0.4389.58","12.0.0-beta.31":"89.0.4389.58","12.0.0-nightly.20200827":"86.0.4234.0","12.0.0-nightly.20200831":"86.0.4234.0","12.0.0-nightly.20200902":"86.0.4234.0","12.0.0-nightly.20200903":"86.0.4234.0","12.0.0-nightly.20200907":"86.0.4234.0","12.0.0-nightly.20200910":"86.0.4234.0","12.0.0-nightly.20200911":"86.0.4234.0","12.0.0-nightly.20200914":"86.0.4234.0","12.0.0-nightly.20201013":"87.0.4268.0","12.0.0-nightly.20201014":"87.0.4268.0","12.0.0-nightly.20201015":"87.0.4268.0","12.0.0-nightly.20201023":"88.0.4292.0","12.0.0-nightly.20201026":"88.0.4292.0","12.0.0-nightly.20201030":"88.0.4306.0","12.0.0-nightly.20201102":"88.0.4306.0","12.0.0-nightly.20201103":"88.0.4306.0","12.0.0-nightly.20201104":"88.0.4306.0","12.0.0-nightly.20201105":"88.0.4306.0","12.0.0-nightly.20201106":"88.0.4306.0","12.0.0-nightly.20201111":"88.0.4306.0","12.0.0-nightly.20201112":"88.0.4306.0","12.0.0-nightly.20201116":"88.0.4324.0","12.0.0":"89.0.4389.69","12.0.1":"89.0.4389.82","12.0.2":"89.0.4389.90","12.0.3":"89.0.4389.114","12.0.4":"89.0.4389.114","12.0.5":"89.0.4389.128","12.0.6":"89.0.4389.128","12.0.7":"89.0.4389.128","12.0.8":"89.0.4389.128","12.0.9":"89.0.4389.128","12.0.10":"89.0.4389.128","12.0.11":"89.0.4389.128","12.0.12":"89.0.4389.128","12.0.13":"89.0.4389.128","12.0.14":"89.0.4389.128","12.0.15":"89.0.4389.128","12.0.16":"89.0.4389.128","12.0.17":"89.0.4389.128","12.0.18":"89.0.4389.128","12.1.0":"89.0.4389.128","12.1.1":"89.0.4389.128","12.1.2":"89.0.4389.128","12.2.0":"89.0.4389.128","12.2.1":"89.0.4389.128","12.2.2":"89.0.4389.128","12.2.3":"89.0.4389.128","13.0.0-beta.2":"90.0.4402.0","13.0.0-beta.3":"90.0.4402.0","13.0.0-beta.4":"90.0.4415.0","13.0.0-beta.5":"90.0.4415.0","13.0.0-beta.6":"90.0.4415.0","13.0.0-beta.7":"90.0.4415.0","13.0.0-beta.8":"90.0.4415.0","13.0.0-beta.9":"90.0.4415.0","13.0.0-beta.11":"90.0.4415.0","13.0.0-beta.12":"90.0.4415.0","13.0.0-beta.13":"90.0.4415.0","13.0.0-beta.14":"91.0.4448.0","13.0.0-beta.16":"91.0.4448.0","13.0.0-beta.17":"91.0.4448.0","13.0.0-beta.18":"91.0.4448.0","13.0.0-beta.20":"91.0.4448.0","13.0.0-beta.21":"91.0.4472.33","13.0.0-beta.22":"91.0.4472.33","13.0.0-beta.23":"91.0.4472.33","13.0.0-beta.24":"91.0.4472.38","13.0.0-beta.26":"91.0.4472.38","13.0.0-beta.27":"91.0.4472.38","13.0.0-beta.28":"91.0.4472.38","13.0.0-nightly.20201119":"89.0.4328.0","13.0.0-nightly.20201123":"89.0.4328.0","13.0.0-nightly.20201124":"89.0.4328.0","13.0.0-nightly.20201126":"89.0.4328.0","13.0.0-nightly.20201127":"89.0.4328.0","13.0.0-nightly.20201130":"89.0.4328.0","13.0.0-nightly.20201201":"89.0.4328.0","13.0.0-nightly.20201202":"89.0.4328.0","13.0.0-nightly.20201203":"89.0.4328.0","13.0.0-nightly.20201204":"89.0.4328.0","13.0.0-nightly.20201207":"89.0.4328.0","13.0.0-nightly.20201208":"89.0.4328.0","13.0.0-nightly.20201209":"89.0.4328.0","13.0.0-nightly.20201210":"89.0.4328.0","13.0.0-nightly.20201211":"89.0.4328.0","13.0.0-nightly.20201214":"89.0.4328.0","13.0.0-nightly.20201215":"89.0.4349.0","13.0.0-nightly.20201216":"89.0.4349.0","13.0.0-nightly.20201221":"89.0.4349.0","13.0.0-nightly.20201222":"89.0.4349.0","13.0.0-nightly.20201223":"89.0.4359.0","13.0.0-nightly.20210104":"89.0.4359.0","13.0.0-nightly.20210108":"89.0.4359.0","13.0.0-nightly.20210111":"89.0.4359.0","13.0.0-nightly.20210113":"89.0.4386.0","13.0.0-nightly.20210114":"89.0.4386.0","13.0.0-nightly.20210118":"89.0.4386.0","13.0.0-nightly.20210122":"89.0.4386.0","13.0.0-nightly.20210125":"89.0.4386.0","13.0.0-nightly.20210127":"89.0.4389.0","13.0.0-nightly.20210128":"89.0.4389.0","13.0.0-nightly.20210129":"89.0.4389.0","13.0.0-nightly.20210201":"89.0.4389.0","13.0.0-nightly.20210202":"89.0.4389.0","13.0.0-nightly.20210203":"89.0.4389.0","13.0.0-nightly.20210205":"89.0.4389.0","13.0.0-nightly.20210208":"89.0.4389.0","13.0.0-nightly.20210209":"89.0.4389.0","13.0.0-nightly.20210210":"90.0.4402.0","13.0.0-nightly.20210211":"90.0.4402.0","13.0.0-nightly.20210212":"90.0.4402.0","13.0.0-nightly.20210216":"90.0.4402.0","13.0.0-nightly.20210217":"90.0.4402.0","13.0.0-nightly.20210218":"90.0.4402.0","13.0.0-nightly.20210219":"90.0.4402.0","13.0.0-nightly.20210222":"90.0.4402.0","13.0.0-nightly.20210225":"90.0.4402.0","13.0.0-nightly.20210226":"90.0.4402.0","13.0.0-nightly.20210301":"90.0.4402.0","13.0.0-nightly.20210302":"90.0.4402.0","13.0.0-nightly.20210303":"90.0.4402.0","13.0.0":"91.0.4472.69","13.0.1":"91.0.4472.69","13.1.0":"91.0.4472.77","13.1.1":"91.0.4472.77","13.1.2":"91.0.4472.77","13.1.3":"91.0.4472.106","13.1.4":"91.0.4472.106","13.1.5":"91.0.4472.124","13.1.6":"91.0.4472.124","13.1.7":"91.0.4472.124","13.1.8":"91.0.4472.164","13.1.9":"91.0.4472.164","13.2.0":"91.0.4472.164","13.2.1":"91.0.4472.164","13.2.2":"91.0.4472.164","13.2.3":"91.0.4472.164","13.3.0":"91.0.4472.164","13.4.0":"91.0.4472.164","13.5.0":"91.0.4472.164","13.5.1":"91.0.4472.164","13.5.2":"91.0.4472.164","13.6.0":"91.0.4472.164","13.6.1":"91.0.4472.164","13.6.2":"91.0.4472.164","13.6.3":"91.0.4472.164","13.6.6":"91.0.4472.164","13.6.7":"91.0.4472.164","13.6.8":"91.0.4472.164","13.6.9":"91.0.4472.164","14.0.0-beta.1":"92.0.4511.0","14.0.0-beta.2":"92.0.4511.0","14.0.0-beta.3":"92.0.4511.0","14.0.0-beta.5":"93.0.4536.0","14.0.0-beta.6":"93.0.4536.0","14.0.0-beta.7":"93.0.4536.0","14.0.0-beta.8":"93.0.4536.0","14.0.0-beta.9":"93.0.4539.0","14.0.0-beta.10":"93.0.4539.0","14.0.0-beta.11":"93.0.4557.4","14.0.0-beta.12":"93.0.4557.4","14.0.0-beta.13":"93.0.4566.0","14.0.0-beta.14":"93.0.4566.0","14.0.0-beta.15":"93.0.4566.0","14.0.0-beta.16":"93.0.4566.0","14.0.0-beta.17":"93.0.4566.0","14.0.0-beta.18":"93.0.4577.15","14.0.0-beta.19":"93.0.4577.15","14.0.0-beta.20":"93.0.4577.15","14.0.0-beta.21":"93.0.4577.15","14.0.0-beta.22":"93.0.4577.25","14.0.0-beta.23":"93.0.4577.25","14.0.0-beta.24":"93.0.4577.51","14.0.0-beta.25":"93.0.4577.51","14.0.0-nightly.20210304":"90.0.4402.0","14.0.0-nightly.20210305":"90.0.4415.0","14.0.0-nightly.20210308":"90.0.4415.0","14.0.0-nightly.20210309":"90.0.4415.0","14.0.0-nightly.20210311":"90.0.4415.0","14.0.0-nightly.20210315":"90.0.4415.0","14.0.0-nightly.20210316":"90.0.4415.0","14.0.0-nightly.20210317":"90.0.4415.0","14.0.0-nightly.20210318":"90.0.4415.0","14.0.0-nightly.20210319":"90.0.4415.0","14.0.0-nightly.20210323":"90.0.4415.0","14.0.0-nightly.20210324":"90.0.4415.0","14.0.0-nightly.20210325":"90.0.4415.0","14.0.0-nightly.20210326":"90.0.4415.0","14.0.0-nightly.20210329":"90.0.4415.0","14.0.0-nightly.20210330":"90.0.4415.0","14.0.0-nightly.20210331":"91.0.4448.0","14.0.0-nightly.20210401":"91.0.4448.0","14.0.0-nightly.20210402":"91.0.4448.0","14.0.0-nightly.20210406":"91.0.4448.0","14.0.0-nightly.20210407":"91.0.4448.0","14.0.0-nightly.20210408":"91.0.4448.0","14.0.0-nightly.20210409":"91.0.4448.0","14.0.0-nightly.20210413":"91.0.4448.0","14.0.0-nightly.20210426":"92.0.4475.0","14.0.0-nightly.20210427":"92.0.4475.0","14.0.0-nightly.20210430":"92.0.4488.0","14.0.0-nightly.20210503":"92.0.4488.0","14.0.0-nightly.20210505":"92.0.4496.0","14.0.0-nightly.20210506":"92.0.4498.0","14.0.0-nightly.20210507":"92.0.4499.0","14.0.0-nightly.20210510":"92.0.4499.0","14.0.0-nightly.20210511":"92.0.4499.0","14.0.0-nightly.20210512":"92.0.4499.0","14.0.0-nightly.20210513":"92.0.4499.0","14.0.0-nightly.20210514":"92.0.4505.0","14.0.0-nightly.20210517":"92.0.4505.0","14.0.0-nightly.20210518":"92.0.4505.0","14.0.0-nightly.20210519":"92.0.4505.0","14.0.0-nightly.20210520":"92.0.4511.0","14.0.0-nightly.20210523":"92.0.4511.0","14.0.0-nightly.20210524":"92.0.4511.0","14.0.0":"93.0.4577.58","14.0.1":"93.0.4577.63","14.0.2":"93.0.4577.82","14.1.0":"93.0.4577.82","14.1.1":"93.0.4577.82","14.2.0":"93.0.4577.82","14.2.1":"93.0.4577.82","14.2.2":"93.0.4577.82","14.2.3":"93.0.4577.82","14.2.4":"93.0.4577.82","14.2.5":"93.0.4577.82","14.2.6":"93.0.4577.82","14.2.7":"93.0.4577.82","14.2.8":"93.0.4577.82","14.2.9":"93.0.4577.82","15.0.0-alpha.1":"93.0.4566.0","15.0.0-alpha.2":"93.0.4566.0","15.0.0-alpha.3":"94.0.4584.0","15.0.0-alpha.4":"94.0.4584.0","15.0.0-alpha.5":"94.0.4584.0","15.0.0-alpha.6":"94.0.4584.0","15.0.0-alpha.7":"94.0.4590.2","15.0.0-alpha.8":"94.0.4590.2","15.0.0-alpha.9":"94.0.4590.2","15.0.0-alpha.10":"94.0.4606.12","15.0.0-beta.1":"94.0.4606.20","15.0.0-beta.2":"94.0.4606.20","15.0.0-beta.3":"94.0.4606.31","15.0.0-beta.4":"94.0.4606.31","15.0.0-beta.5":"94.0.4606.31","15.0.0-beta.6":"94.0.4606.31","15.0.0-beta.7":"94.0.4606.31","15.0.0-nightly.20210527":"92.0.4511.0","15.0.0-nightly.20210528":"92.0.4511.0","15.0.0-nightly.20210531":"92.0.4511.0","15.0.0-nightly.20210601":"92.0.4511.0","15.0.0-nightly.20210602":"92.0.4511.0","15.0.0-nightly.20210603":"93.0.4530.0","15.0.0-nightly.20210604":"93.0.4530.0","15.0.0-nightly.20210608":"93.0.4535.0","15.0.0-nightly.20210609":"93.0.4536.0","15.0.0-nightly.20210610":"93.0.4536.0","15.0.0-nightly.20210611":"93.0.4536.0","15.0.0-nightly.20210614":"93.0.4536.0","15.0.0-nightly.20210615":"93.0.4536.0","15.0.0-nightly.20210616":"93.0.4536.0","15.0.0-nightly.20210617":"93.0.4539.0","15.0.0-nightly.20210618":"93.0.4539.0","15.0.0-nightly.20210621":"93.0.4539.0","15.0.0-nightly.20210622":"93.0.4539.0","15.0.0-nightly.20210623":"93.0.4550.0","15.0.0-nightly.20210624":"93.0.4550.0","15.0.0-nightly.20210625":"93.0.4552.0","15.0.0-nightly.20210628":"93.0.4552.0","15.0.0-nightly.20210629":"93.0.4552.0","15.0.0-nightly.20210630":"93.0.4558.0","15.0.0-nightly.20210701":"93.0.4558.0","15.0.0-nightly.20210702":"93.0.4558.0","15.0.0-nightly.20210705":"93.0.4558.0","15.0.0-nightly.20210706":"93.0.4566.0","15.0.0-nightly.20210707":"93.0.4566.0","15.0.0-nightly.20210708":"93.0.4566.0","15.0.0-nightly.20210709":"93.0.4566.0","15.0.0-nightly.20210712":"93.0.4566.0","15.0.0-nightly.20210713":"93.0.4566.0","15.0.0-nightly.20210714":"93.0.4566.0","15.0.0-nightly.20210715":"93.0.4566.0","15.0.0-nightly.20210716":"93.0.4566.0","15.0.0-nightly.20210719":"93.0.4566.0","15.0.0-nightly.20210720":"93.0.4566.0","15.0.0-nightly.20210721":"93.0.4566.0","15.0.0":"94.0.4606.51","15.1.0":"94.0.4606.61","15.1.1":"94.0.4606.61","15.1.2":"94.0.4606.71","15.2.0":"94.0.4606.81","15.3.0":"94.0.4606.81","15.3.1":"94.0.4606.81","15.3.2":"94.0.4606.81","15.3.3":"94.0.4606.81","15.3.4":"94.0.4606.81","15.3.5":"94.0.4606.81","15.3.6":"94.0.4606.81","15.3.7":"94.0.4606.81","15.4.0":"94.0.4606.81","15.4.1":"94.0.4606.81","15.4.2":"94.0.4606.81","15.5.0":"94.0.4606.81","15.5.1":"94.0.4606.81","15.5.2":"94.0.4606.81","15.5.3":"94.0.4606.81","15.5.4":"94.0.4606.81","15.5.5":"94.0.4606.81","15.5.6":"94.0.4606.81","15.5.7":"94.0.4606.81","16.0.0-alpha.1":"95.0.4629.0","16.0.0-alpha.2":"95.0.4629.0","16.0.0-alpha.3":"95.0.4629.0","16.0.0-alpha.4":"95.0.4629.0","16.0.0-alpha.5":"95.0.4629.0","16.0.0-alpha.6":"95.0.4629.0","16.0.0-alpha.7":"95.0.4629.0","16.0.0-alpha.8":"96.0.4647.0","16.0.0-alpha.9":"96.0.4647.0","16.0.0-beta.1":"96.0.4647.0","16.0.0-beta.2":"96.0.4647.0","16.0.0-beta.3":"96.0.4647.0","16.0.0-beta.4":"96.0.4664.18","16.0.0-beta.5":"96.0.4664.18","16.0.0-beta.6":"96.0.4664.27","16.0.0-beta.7":"96.0.4664.27","16.0.0-beta.8":"96.0.4664.35","16.0.0-beta.9":"96.0.4664.35","16.0.0-nightly.20210722":"93.0.4566.0","16.0.0-nightly.20210723":"93.0.4566.0","16.0.0-nightly.20210726":"93.0.4566.0","16.0.0-nightly.20210727":"94.0.4584.0","16.0.0-nightly.20210728":"94.0.4584.0","16.0.0-nightly.20210729":"94.0.4584.0","16.0.0-nightly.20210730":"94.0.4584.0","16.0.0-nightly.20210802":"94.0.4584.0","16.0.0-nightly.20210803":"94.0.4584.0","16.0.0-nightly.20210804":"94.0.4584.0","16.0.0-nightly.20210805":"94.0.4584.0","16.0.0-nightly.20210806":"94.0.4584.0","16.0.0-nightly.20210809":"94.0.4584.0","16.0.0-nightly.20210810":"94.0.4584.0","16.0.0-nightly.20210811":"94.0.4584.0","16.0.0-nightly.20210812":"94.0.4590.2","16.0.0-nightly.20210813":"94.0.4590.2","16.0.0-nightly.20210816":"94.0.4590.2","16.0.0-nightly.20210817":"94.0.4590.2","16.0.0-nightly.20210818":"94.0.4590.2","16.0.0-nightly.20210819":"94.0.4590.2","16.0.0-nightly.20210820":"94.0.4590.2","16.0.0-nightly.20210823":"94.0.4590.2","16.0.0-nightly.20210824":"95.0.4612.5","16.0.0-nightly.20210825":"95.0.4612.5","16.0.0-nightly.20210826":"95.0.4612.5","16.0.0-nightly.20210827":"95.0.4612.5","16.0.0-nightly.20210830":"95.0.4612.5","16.0.0-nightly.20210831":"95.0.4612.5","16.0.0-nightly.20210901":"95.0.4612.5","16.0.0-nightly.20210902":"95.0.4629.0","16.0.0-nightly.20210903":"95.0.4629.0","16.0.0-nightly.20210906":"95.0.4629.0","16.0.0-nightly.20210907":"95.0.4629.0","16.0.0-nightly.20210908":"95.0.4629.0","16.0.0-nightly.20210909":"95.0.4629.0","16.0.0-nightly.20210910":"95.0.4629.0","16.0.0-nightly.20210913":"95.0.4629.0","16.0.0-nightly.20210914":"95.0.4629.0","16.0.0-nightly.20210915":"95.0.4629.0","16.0.0-nightly.20210916":"95.0.4629.0","16.0.0-nightly.20210917":"95.0.4629.0","16.0.0-nightly.20210920":"95.0.4629.0","16.0.0-nightly.20210921":"95.0.4629.0","16.0.0-nightly.20210922":"95.0.4629.0","16.0.0":"96.0.4664.45","16.0.1":"96.0.4664.45","16.0.2":"96.0.4664.55","16.0.3":"96.0.4664.55","16.0.4":"96.0.4664.55","16.0.5":"96.0.4664.55","16.0.6":"96.0.4664.110","16.0.7":"96.0.4664.110","16.0.8":"96.0.4664.110","16.0.9":"96.0.4664.174","16.0.10":"96.0.4664.174","16.1.0":"96.0.4664.174","16.1.1":"96.0.4664.174","16.2.0":"96.0.4664.174","16.2.1":"96.0.4664.174","16.2.2":"96.0.4664.174","16.2.3":"96.0.4664.174","16.2.4":"96.0.4664.174","16.2.5":"96.0.4664.174","16.2.6":"96.0.4664.174","16.2.7":"96.0.4664.174","16.2.8":"96.0.4664.174","17.0.0-alpha.1":"96.0.4664.4","17.0.0-alpha.2":"96.0.4664.4","17.0.0-alpha.3":"96.0.4664.4","17.0.0-alpha.4":"98.0.4706.0","17.0.0-alpha.5":"98.0.4706.0","17.0.0-alpha.6":"98.0.4706.0","17.0.0-beta.1":"98.0.4706.0","17.0.0-beta.2":"98.0.4706.0","17.0.0-beta.3":"98.0.4758.9","17.0.0-beta.4":"98.0.4758.11","17.0.0-beta.5":"98.0.4758.11","17.0.0-beta.6":"98.0.4758.11","17.0.0-beta.7":"98.0.4758.11","17.0.0-beta.8":"98.0.4758.11","17.0.0-beta.9":"98.0.4758.11","17.0.0-nightly.20210923":"95.0.4629.0","17.0.0-nightly.20210924":"95.0.4629.0","17.0.0-nightly.20210927":"95.0.4629.0","17.0.0-nightly.20210928":"95.0.4629.0","17.0.0-nightly.20210929":"95.0.4629.0","17.0.0-nightly.20210930":"95.0.4629.0","17.0.0-nightly.20211001":"95.0.4629.0","17.0.0-nightly.20211004":"95.0.4629.0","17.0.0-nightly.20211005":"95.0.4629.0","17.0.0-nightly.20211006":"96.0.4647.0","17.0.0-nightly.20211007":"96.0.4647.0","17.0.0-nightly.20211008":"96.0.4647.0","17.0.0-nightly.20211011":"96.0.4647.0","17.0.0-nightly.20211012":"96.0.4647.0","17.0.0-nightly.20211013":"96.0.4647.0","17.0.0-nightly.20211014":"96.0.4647.0","17.0.0-nightly.20211015":"96.0.4647.0","17.0.0-nightly.20211018":"96.0.4647.0","17.0.0-nightly.20211019":"96.0.4647.0","17.0.0-nightly.20211020":"96.0.4647.0","17.0.0-nightly.20211021":"96.0.4647.0","17.0.0-nightly.20211022":"96.0.4664.4","17.0.0-nightly.20211025":"96.0.4664.4","17.0.0-nightly.20211026":"96.0.4664.4","17.0.0-nightly.20211027":"96.0.4664.4","17.0.0-nightly.20211028":"96.0.4664.4","17.0.0-nightly.20211029":"96.0.4664.4","17.0.0-nightly.20211101":"96.0.4664.4","17.0.0-nightly.20211102":"96.0.4664.4","17.0.0-nightly.20211103":"96.0.4664.4","17.0.0-nightly.20211104":"96.0.4664.4","17.0.0-nightly.20211105":"96.0.4664.4","17.0.0-nightly.20211108":"96.0.4664.4","17.0.0-nightly.20211109":"96.0.4664.4","17.0.0-nightly.20211110":"96.0.4664.4","17.0.0-nightly.20211111":"96.0.4664.4","17.0.0-nightly.20211112":"96.0.4664.4","17.0.0-nightly.20211115":"96.0.4664.4","17.0.0-nightly.20211116":"96.0.4664.4","17.0.0-nightly.20211117":"96.0.4664.4","17.0.0":"98.0.4758.74","17.0.1":"98.0.4758.82","17.1.0":"98.0.4758.102","17.1.1":"98.0.4758.109","17.1.2":"98.0.4758.109","17.2.0":"98.0.4758.109","17.3.0":"98.0.4758.141","17.3.1":"98.0.4758.141","17.4.0":"98.0.4758.141","17.4.1":"98.0.4758.141","17.4.2":"98.0.4758.141","17.4.3":"98.0.4758.141","17.4.4":"98.0.4758.141","17.4.5":"98.0.4758.141","17.4.6":"98.0.4758.141","17.4.7":"98.0.4758.141","18.0.0-alpha.1":"99.0.4767.0","18.0.0-alpha.2":"99.0.4767.0","18.0.0-alpha.3":"99.0.4767.0","18.0.0-alpha.4":"99.0.4767.0","18.0.0-alpha.5":"99.0.4767.0","18.0.0-beta.1":"100.0.4894.0","18.0.0-beta.2":"100.0.4894.0","18.0.0-beta.3":"100.0.4894.0","18.0.0-beta.4":"100.0.4894.0","18.0.0-beta.5":"100.0.4894.0","18.0.0-beta.6":"100.0.4894.0","18.0.0-nightly.20211118":"96.0.4664.4","18.0.0-nightly.20211119":"96.0.4664.4","18.0.0-nightly.20211122":"96.0.4664.4","18.0.0-nightly.20211123":"96.0.4664.4","18.0.0-nightly.20211124":"98.0.4706.0","18.0.0-nightly.20211125":"98.0.4706.0","18.0.0-nightly.20211126":"98.0.4706.0","18.0.0-nightly.20211129":"98.0.4706.0","18.0.0-nightly.20211130":"98.0.4706.0","18.0.0-nightly.20211201":"98.0.4706.0","18.0.0-nightly.20211202":"98.0.4706.0","18.0.0-nightly.20211203":"98.0.4706.0","18.0.0-nightly.20211206":"98.0.4706.0","18.0.0-nightly.20211207":"98.0.4706.0","18.0.0-nightly.20211208":"98.0.4706.0","18.0.0-nightly.20211209":"98.0.4706.0","18.0.0-nightly.20211210":"98.0.4706.0","18.0.0-nightly.20211213":"98.0.4706.0","18.0.0-nightly.20211214":"98.0.4706.0","18.0.0-nightly.20211215":"98.0.4706.0","18.0.0-nightly.20211216":"98.0.4706.0","18.0.0-nightly.20211217":"98.0.4706.0","18.0.0-nightly.20211220":"98.0.4706.0","18.0.0-nightly.20211221":"98.0.4706.0","18.0.0-nightly.20211222":"98.0.4706.0","18.0.0-nightly.20211223":"98.0.4706.0","18.0.0-nightly.20211228":"98.0.4706.0","18.0.0-nightly.20211229":"98.0.4706.0","18.0.0-nightly.20211231":"98.0.4706.0","18.0.0-nightly.20220103":"98.0.4706.0","18.0.0-nightly.20220104":"98.0.4706.0","18.0.0-nightly.20220105":"98.0.4706.0","18.0.0-nightly.20220106":"98.0.4706.0","18.0.0-nightly.20220107":"98.0.4706.0","18.0.0-nightly.20220110":"98.0.4706.0","18.0.0-nightly.20220111":"99.0.4767.0","18.0.0-nightly.20220112":"99.0.4767.0","18.0.0-nightly.20220113":"99.0.4767.0","18.0.0-nightly.20220114":"99.0.4767.0","18.0.0-nightly.20220117":"99.0.4767.0","18.0.0-nightly.20220118":"99.0.4767.0","18.0.0-nightly.20220119":"99.0.4767.0","18.0.0-nightly.20220121":"99.0.4767.0","18.0.0-nightly.20220124":"99.0.4767.0","18.0.0-nightly.20220125":"99.0.4767.0","18.0.0-nightly.20220127":"99.0.4767.0","18.0.0-nightly.20220128":"99.0.4767.0","18.0.0-nightly.20220131":"99.0.4767.0","18.0.0-nightly.20220201":"99.0.4767.0","18.0.0":"100.0.4896.56","18.0.1":"100.0.4896.60","18.0.2":"100.0.4896.60","18.0.3":"100.0.4896.75","18.0.4":"100.0.4896.75","18.1.0":"100.0.4896.127","18.2.0":"100.0.4896.143","18.2.1":"100.0.4896.143","18.2.2":"100.0.4896.143","18.2.3":"100.0.4896.143","18.2.4":"100.0.4896.160","18.3.0":"100.0.4896.160","18.3.1":"100.0.4896.160","18.3.2":"100.0.4896.160","18.3.3":"100.0.4896.160","18.3.4":"100.0.4896.160","19.0.0-alpha.1":"102.0.4962.3","19.0.0-alpha.2":"102.0.4971.0","19.0.0-alpha.3":"102.0.4971.0","19.0.0-alpha.4":"102.0.4989.0","19.0.0-alpha.5":"102.0.4989.0","19.0.0-beta.1":"102.0.4999.0","19.0.0-beta.2":"102.0.4999.0","19.0.0-beta.3":"102.0.4999.0","19.0.0-beta.4":"102.0.5005.27","19.0.0-beta.5":"102.0.5005.40","19.0.0-beta.6":"102.0.5005.40","19.0.0-beta.7":"102.0.5005.40","19.0.0-beta.8":"102.0.5005.49","19.0.0-nightly.20220202":"99.0.4767.0","19.0.0-nightly.20220203":"99.0.4767.0","19.0.0-nightly.20220204":"99.0.4767.0","19.0.0-nightly.20220207":"99.0.4767.0","19.0.0-nightly.20220208":"99.0.4767.0","19.0.0-nightly.20220209":"99.0.4767.0","19.0.0-nightly.20220308":"100.0.4894.0","19.0.0-nightly.20220309":"100.0.4894.0","19.0.0-nightly.20220310":"100.0.4894.0","19.0.0-nightly.20220311":"100.0.4894.0","19.0.0-nightly.20220314":"100.0.4894.0","19.0.0-nightly.20220315":"100.0.4894.0","19.0.0-nightly.20220316":"100.0.4894.0","19.0.0-nightly.20220317":"100.0.4894.0","19.0.0-nightly.20220318":"100.0.4894.0","19.0.0-nightly.20220321":"100.0.4894.0","19.0.0-nightly.20220322":"100.0.4894.0","19.0.0-nightly.20220323":"100.0.4894.0","19.0.0-nightly.20220324":"100.0.4894.0","19.0.0-nightly.20220325":"102.0.4961.0","19.0.0-nightly.20220328":"102.0.4962.3","19.0.0-nightly.20220329":"102.0.4962.3","19.0.0":"102.0.5005.61","19.0.1":"102.0.5005.61","19.0.2":"102.0.5005.63","19.0.3":"102.0.5005.63","19.0.4":"102.0.5005.63","20.0.0-alpha.1":"103.0.5044.0","20.0.0-alpha.2":"104.0.5073.0","20.0.0-alpha.3":"104.0.5073.0","20.0.0-alpha.4":"104.0.5073.0","20.0.0-alpha.5":"104.0.5073.0","20.0.0-alpha.6":"104.0.5073.0","20.0.0-nightly.20220330":"102.0.4962.3","20.0.0-nightly.20220411":"102.0.4971.0","20.0.0-nightly.20220414":"102.0.4989.0","20.0.0-nightly.20220415":"102.0.4989.0","20.0.0-nightly.20220418":"102.0.4989.0","20.0.0-nightly.20220419":"102.0.4989.0","20.0.0-nightly.20220420":"102.0.4989.0","20.0.0-nightly.20220421":"102.0.4989.0","20.0.0-nightly.20220425":"102.0.4999.0","20.0.0-nightly.20220426":"102.0.4999.0","20.0.0-nightly.20220427":"102.0.4999.0","20.0.0-nightly.20220428":"102.0.4999.0","20.0.0-nightly.20220429":"102.0.4999.0","20.0.0-nightly.20220502":"102.0.4999.0","20.0.0-nightly.20220503":"102.0.4999.0","20.0.0-nightly.20220504":"102.0.4999.0","20.0.0-nightly.20220505":"102.0.4999.0","20.0.0-nightly.20220506":"102.0.4999.0","20.0.0-nightly.20220509":"102.0.4999.0","20.0.0-nightly.20220511":"102.0.4999.0","20.0.0-nightly.20220512":"102.0.4999.0","20.0.0-nightly.20220513":"102.0.4999.0","20.0.0-nightly.20220516":"102.0.4999.0","20.0.0-nightly.20220517":"102.0.4999.0","20.0.0-nightly.20220518":"103.0.5044.0","20.0.0-nightly.20220519":"103.0.5044.0","20.0.0-nightly.20220520":"103.0.5044.0","20.0.0-nightly.20220523":"103.0.5044.0","20.0.0-nightly.20220524":"103.0.5044.0","21.0.0-nightly.20220526":"103.0.5044.0","21.0.0-nightly.20220527":"103.0.5044.0","21.0.0-nightly.20220530":"103.0.5044.0","21.0.0-nightly.20220531":"103.0.5044.0","21.0.0-nightly.20220602":"104.0.5073.0","21.0.0-nightly.20220603":"104.0.5073.0","21.0.0-nightly.20220606":"104.0.5073.0","21.0.0-nightly.20220607":"104.0.5073.0","21.0.0-nightly.20220608":"104.0.5073.0","21.0.0-nightly.20220609":"104.0.5073.0","21.0.0-nightly.20220610":"104.0.5073.0","21.0.0-nightly.20220613":"104.0.5073.0","21.0.0-nightly.20220614":"104.0.5073.0","21.0.0-nightly.20220615":"104.0.5073.0","21.0.0-nightly.20220616":"104.0.5073.0","21.0.0-nightly.20220617":"104.0.5073.0"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/package.json b/tools/node_modules/eslint/node_modules/electron-to-chromium/package.json index 85de14003ef366..9566551ce2723f 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/package.json +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/package.json @@ -1,6 +1,6 @@ { "name": "electron-to-chromium", - "version": "1.4.106", + "version": "1.4.161", "description": "Provides a list of electron-to-chromium version mappings", "main": "index.js", "files": [ @@ -34,7 +34,7 @@ "devDependencies": { "ava": "^4.0.1", "codecov": "^3.8.0", - "electron-releases": "^3.984.0", + "electron-releases": "^3.1041.0", "nyc": "^15.1.0", "request": "^2.65.0", "shelljs": "^0.8.4" diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/versions.js b/tools/node_modules/eslint/node_modules/electron-to-chromium/versions.js index bc8beeb8d6b5d8..dd8cda83ec3350 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/versions.js +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/versions.js @@ -90,5 +90,9 @@ module.exports = { "17.3": "98", "17.4": "98", "18.0": "100", - "19.0": "102" + "18.1": "100", + "18.2": "100", + "18.3": "100", + "19.0": "102", + "20.0": "104" }; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/electron-to-chromium/versions.json b/tools/node_modules/eslint/node_modules/electron-to-chromium/versions.json index 29680a688004ce..997011af955c81 100644 --- a/tools/node_modules/eslint/node_modules/electron-to-chromium/versions.json +++ b/tools/node_modules/eslint/node_modules/electron-to-chromium/versions.json @@ -1 +1 @@ -{"0.20":"39","0.21":"41","0.22":"41","0.23":"41","0.24":"41","0.25":"42","0.26":"42","0.27":"43","0.28":"43","0.29":"43","0.30":"44","0.31":"45","0.32":"45","0.33":"45","0.34":"45","0.35":"45","0.36":"47","0.37":"49","1.0":"49","1.1":"50","1.2":"51","1.3":"52","1.4":"53","1.5":"54","1.6":"56","1.7":"58","1.8":"59","2.0":"61","2.1":"61","3.0":"66","3.1":"66","4.0":"69","4.1":"69","4.2":"69","5.0":"73","6.0":"76","6.1":"76","7.0":"78","7.1":"78","7.2":"78","7.3":"78","8.0":"80","8.1":"80","8.2":"80","8.3":"80","8.4":"80","8.5":"80","9.0":"83","9.1":"83","9.2":"83","9.3":"83","9.4":"83","10.0":"85","10.1":"85","10.2":"85","10.3":"85","10.4":"85","11.0":"87","11.1":"87","11.2":"87","11.3":"87","11.4":"87","11.5":"87","12.0":"89","12.1":"89","12.2":"89","13.0":"91","13.1":"91","13.2":"91","13.3":"91","13.4":"91","13.5":"91","13.6":"91","14.0":"93","14.1":"93","14.2":"93","15.0":"94","15.1":"94","15.2":"94","15.3":"94","15.4":"94","15.5":"94","16.0":"96","16.1":"96","16.2":"96","17.0":"98","17.1":"98","17.2":"98","17.3":"98","17.4":"98","18.0":"100","19.0":"102"} \ No newline at end of file +{"0.20":"39","0.21":"41","0.22":"41","0.23":"41","0.24":"41","0.25":"42","0.26":"42","0.27":"43","0.28":"43","0.29":"43","0.30":"44","0.31":"45","0.32":"45","0.33":"45","0.34":"45","0.35":"45","0.36":"47","0.37":"49","1.0":"49","1.1":"50","1.2":"51","1.3":"52","1.4":"53","1.5":"54","1.6":"56","1.7":"58","1.8":"59","2.0":"61","2.1":"61","3.0":"66","3.1":"66","4.0":"69","4.1":"69","4.2":"69","5.0":"73","6.0":"76","6.1":"76","7.0":"78","7.1":"78","7.2":"78","7.3":"78","8.0":"80","8.1":"80","8.2":"80","8.3":"80","8.4":"80","8.5":"80","9.0":"83","9.1":"83","9.2":"83","9.3":"83","9.4":"83","10.0":"85","10.1":"85","10.2":"85","10.3":"85","10.4":"85","11.0":"87","11.1":"87","11.2":"87","11.3":"87","11.4":"87","11.5":"87","12.0":"89","12.1":"89","12.2":"89","13.0":"91","13.1":"91","13.2":"91","13.3":"91","13.4":"91","13.5":"91","13.6":"91","14.0":"93","14.1":"93","14.2":"93","15.0":"94","15.1":"94","15.2":"94","15.3":"94","15.4":"94","15.5":"94","16.0":"96","16.1":"96","16.2":"96","17.0":"98","17.1":"98","17.2":"98","17.3":"98","17.4":"98","18.0":"100","18.1":"100","18.2":"100","18.3":"100","19.0":"102","20.0":"104"} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/alignTransform.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/alignTransform.js index aa51820eade6f7..6ef3ed8bd782b4 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/alignTransform.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/alignTransform.js @@ -79,7 +79,7 @@ const alignTransform = ({ let intoTags = false; let width; - const alignTokens = tokens => { + const alignTokens = (tokens, hasNoTypes) => { const nothingAfter = { delim: false, name: false, @@ -105,6 +105,11 @@ const alignTransform = ({ } } } + } + + if (hasNoTypes) { + nothingAfter.tag = true; + tokens.postTag = ''; } // Todo: Avoid fixing alignment of blocks with multiline wrapping of type @@ -136,7 +141,7 @@ const alignTransform = ({ return tokens; }; - const update = (line, index, source) => { + const update = (line, index, source, hasNoTypes) => { const tokens = { ...line.tokens }; @@ -192,7 +197,7 @@ const alignTransform = ({ } return { ...line, - tokens: alignTokens(tokens) + tokens: alignTokens(tokens, hasNoTypes) }; }; @@ -202,9 +207,14 @@ const alignTransform = ({ }) => { width = source.reduce(getWidth(tags), { ...zeroWidth }); + const hasNoTypes = fields.tags.every(({ + type + }) => { + return !type; + }); return rewireSource({ ...fields, source: source.map((line, index) => { - return update(line, index, source); + return update(line, index, source, hasNoTypes); }) }); }; diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/exportParser.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/exportParser.js index 8d575c27daeeb3..05c07c34c971e6 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/exportParser.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/exportParser.js @@ -108,11 +108,15 @@ const getSymbol = function (node, globals, scope, opt) { return null; } + case 'ClassExpression': + { + return getSymbol(node.body, globals, scope, opts); + } + case 'TSTypeAliasDeclaration': case 'TSEnumDeclaration': case 'TSInterfaceDeclaration': case 'ClassDeclaration': - case 'ClassExpression': case 'FunctionExpression': case 'FunctionDeclaration': case 'ArrowFunctionExpression': @@ -141,7 +145,7 @@ const getSymbol = function (node, globals, scope, opt) { } val.type = 'object'; - val.value = node; + val.value = node.parent; return val; } @@ -539,7 +543,11 @@ const findExportedNode = function (block, node, cache) { }; const isNodeExported = function (node, globals, opt) { - if (opt.initModuleExports && globals.props.module && globals.props.module.props.exports && findNode(node, globals.props.module.props.exports)) { + var _globals$props$module, _globals$props$module2; + + const moduleExports = (_globals$props$module = globals.props.module) === null || _globals$props$module === void 0 ? void 0 : (_globals$props$module2 = _globals$props$module.props) === null || _globals$props$module2 === void 0 ? void 0 : _globals$props$module2.exports; + + if (opt.initModuleExports && moduleExports && findNode(node, moduleExports)) { return true; } diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js index 7c8b6d8c7146d6..26aea353fff07e 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/iterateJsdoc.js @@ -23,7 +23,26 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de const { rewireSpecs, seedTokens -} = _commentParser.util; +} = _commentParser.util; // todo: Change these `any` types once importing types properly. + +/** + * Should use ESLint rule's typing. + * + * @typedef {any} EslintRuleMeta + */ + +/** + * A plain object for tracking state as needed by rules across iterations. + * + * @typedef {any} StateObject + */ + +/** + * The Node AST as supplied by the parser. + * + * @typedef {any} Node + */ + /* const { align as commentAlign, @@ -252,17 +271,17 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl }; - utils.addTag = (targetTagName, number = (() => { - var _jsdoc$tags$source$0$, _jsdoc$tags, _jsdoc$tags$source$; + utils.addTag = (targetTagName, number = ((() => { + var _jsdoc$tags, _jsdoc$tags$source$; - return (_jsdoc$tags$source$0$ = (_jsdoc$tags = jsdoc.tags[jsdoc.tags.length - 1]) === null || _jsdoc$tags === void 0 ? void 0 : (_jsdoc$tags$source$ = _jsdoc$tags.source[0]) === null || _jsdoc$tags$source$ === void 0 ? void 0 : _jsdoc$tags$source$.number) !== null && _jsdoc$tags$source$0$ !== void 0 ? _jsdoc$tags$source$0$ : jsdoc.source.findIndex(({ - tokens: { - tag - } - }) => { - return tag; - }) - 1; - })() + 1, tokens = {}) => { + return (_jsdoc$tags = jsdoc.tags[jsdoc.tags.length - 1]) === null || _jsdoc$tags === void 0 ? void 0 : (_jsdoc$tags$source$ = _jsdoc$tags.source[0]) === null || _jsdoc$tags$source$ === void 0 ? void 0 : _jsdoc$tags$source$.number; + })() ?? jsdoc.source.findIndex(({ + tokens: { + tag + } + }) => { + return tag; + }) - 1) + 1, tokens = {}) => { jsdoc.source.splice(number, 0, { number, source: '', @@ -510,7 +529,7 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl }; utils.avoidDocs = () => { - var _context$options$0$ex, _context$options$; + var _context$options$; if (ignoreReplacesDocs !== false && (utils.hasTag('ignore') || utils.classHasTag('ignore')) || overrideReplacesDocs !== false && (utils.hasTag('override') || utils.classHasTag('override')) || implementsReplacesDocs !== false && (utils.hasTag('implements') || utils.classHasTag('implements')) || augmentsExtendsReplacesDocs && (utils.hasATag(['augments', 'extends']) || utils.classHasTag('augments') || utils.classHasTag('extends'))) { return true; @@ -520,7 +539,7 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl return true; } - const exemptedBy = (_context$options$0$ex = (_context$options$ = context.options[0]) === null || _context$options$ === void 0 ? void 0 : _context$options$.exemptedBy) !== null && _context$options$0$ex !== void 0 ? _context$options$0$ex : ['inheritDoc', ...(mode === 'closure' ? [] : ['inheritdoc'])]; + const exemptedBy = ((_context$options$ = context.options[0]) === null || _context$options$ === void 0 ? void 0 : _context$options$.exemptedBy) ?? ['inheritDoc', ...(mode === 'closure' ? [] : ['inheritdoc'])]; if (exemptedBy.length && utils.getPresentTags(exemptedBy).length) { return true; @@ -627,11 +646,9 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl }; utils.hasOptionTag = tagName => { - var _context$options$2; - const { tags - } = (_context$options$2 = context.options[0]) !== null && _context$options$2 !== void 0 ? _context$options$2 : {}; + } = context.options[0] ?? {}; return Boolean(tags && tags.includes(tagName)); }; @@ -654,8 +671,7 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl }); if (classJsdocNode) { - const indnt = ' '.repeat(classJsdocNode.loc.start.column); - return (0, _jsdoccomment.parseComment)(classJsdocNode, indnt); + return (0, _jsdoccomment.parseComment)(classJsdocNode, ''); } return null; @@ -691,29 +707,29 @@ const getUtils = (node, jsdoc, jsdocNode, settings, report, context, iteratingAl }; const getSettings = context => { - var _context$settings$jsd, _context$settings$jsd2, _context$settings$jsd3, _context$settings$jsd4, _context$settings$jsd5, _context$settings$jsd6, _context$settings$jsd7, _context$settings$jsd8, _context$settings$jsd9, _context$settings$jsd10, _context$settings$jsd11, _context$settings$jsd12, _context$settings$jsd13, _context$settings$jsd14, _context$settings$jsd15, _context$settings$jsd16, _context$settings$jsd17, _context$settings$jsd18; + var _context$settings$jsd, _context$settings$jsd2, _context$settings$jsd3, _context$settings$jsd4, _context$settings$jsd5, _context$settings$jsd6, _context$settings$jsd7, _context$settings$jsd8, _context$settings$jsd9, _context$settings$jsd10, _context$settings$jsd11, _context$settings$jsd12; /* eslint-disable canonical/sort-keys */ const settings = { // All rules ignorePrivate: Boolean((_context$settings$jsd = context.settings.jsdoc) === null || _context$settings$jsd === void 0 ? void 0 : _context$settings$jsd.ignorePrivate), ignoreInternal: Boolean((_context$settings$jsd2 = context.settings.jsdoc) === null || _context$settings$jsd2 === void 0 ? void 0 : _context$settings$jsd2.ignoreInternal), - maxLines: Number((_context$settings$jsd3 = (_context$settings$jsd4 = context.settings.jsdoc) === null || _context$settings$jsd4 === void 0 ? void 0 : _context$settings$jsd4.maxLines) !== null && _context$settings$jsd3 !== void 0 ? _context$settings$jsd3 : 1), - minLines: Number((_context$settings$jsd5 = (_context$settings$jsd6 = context.settings.jsdoc) === null || _context$settings$jsd6 === void 0 ? void 0 : _context$settings$jsd6.minLines) !== null && _context$settings$jsd5 !== void 0 ? _context$settings$jsd5 : 0), + maxLines: Number(((_context$settings$jsd3 = context.settings.jsdoc) === null || _context$settings$jsd3 === void 0 ? void 0 : _context$settings$jsd3.maxLines) ?? 1), + minLines: Number(((_context$settings$jsd4 = context.settings.jsdoc) === null || _context$settings$jsd4 === void 0 ? void 0 : _context$settings$jsd4.minLines) ?? 0), // `check-tag-names` and many returns/param rules - tagNamePreference: (_context$settings$jsd7 = (_context$settings$jsd8 = context.settings.jsdoc) === null || _context$settings$jsd8 === void 0 ? void 0 : _context$settings$jsd8.tagNamePreference) !== null && _context$settings$jsd7 !== void 0 ? _context$settings$jsd7 : {}, + tagNamePreference: ((_context$settings$jsd5 = context.settings.jsdoc) === null || _context$settings$jsd5 === void 0 ? void 0 : _context$settings$jsd5.tagNamePreference) ?? {}, // `check-types` and `no-undefined-types` - preferredTypes: (_context$settings$jsd9 = (_context$settings$jsd10 = context.settings.jsdoc) === null || _context$settings$jsd10 === void 0 ? void 0 : _context$settings$jsd10.preferredTypes) !== null && _context$settings$jsd9 !== void 0 ? _context$settings$jsd9 : {}, + preferredTypes: ((_context$settings$jsd6 = context.settings.jsdoc) === null || _context$settings$jsd6 === void 0 ? void 0 : _context$settings$jsd6.preferredTypes) ?? {}, // `check-types`, `no-undefined-types`, `valid-types` - structuredTags: (_context$settings$jsd11 = (_context$settings$jsd12 = context.settings.jsdoc) === null || _context$settings$jsd12 === void 0 ? void 0 : _context$settings$jsd12.structuredTags) !== null && _context$settings$jsd11 !== void 0 ? _context$settings$jsd11 : {}, + structuredTags: ((_context$settings$jsd7 = context.settings.jsdoc) === null || _context$settings$jsd7 === void 0 ? void 0 : _context$settings$jsd7.structuredTags) ?? {}, // `require-param`, `require-description`, `require-example`, // `require-returns`, `require-throw`, `require-yields` - overrideReplacesDocs: (_context$settings$jsd13 = context.settings.jsdoc) === null || _context$settings$jsd13 === void 0 ? void 0 : _context$settings$jsd13.overrideReplacesDocs, - ignoreReplacesDocs: (_context$settings$jsd14 = context.settings.jsdoc) === null || _context$settings$jsd14 === void 0 ? void 0 : _context$settings$jsd14.ignoreReplacesDocs, - implementsReplacesDocs: (_context$settings$jsd15 = context.settings.jsdoc) === null || _context$settings$jsd15 === void 0 ? void 0 : _context$settings$jsd15.implementsReplacesDocs, - augmentsExtendsReplacesDocs: (_context$settings$jsd16 = context.settings.jsdoc) === null || _context$settings$jsd16 === void 0 ? void 0 : _context$settings$jsd16.augmentsExtendsReplacesDocs, + overrideReplacesDocs: (_context$settings$jsd8 = context.settings.jsdoc) === null || _context$settings$jsd8 === void 0 ? void 0 : _context$settings$jsd8.overrideReplacesDocs, + ignoreReplacesDocs: (_context$settings$jsd9 = context.settings.jsdoc) === null || _context$settings$jsd9 === void 0 ? void 0 : _context$settings$jsd9.ignoreReplacesDocs, + implementsReplacesDocs: (_context$settings$jsd10 = context.settings.jsdoc) === null || _context$settings$jsd10 === void 0 ? void 0 : _context$settings$jsd10.implementsReplacesDocs, + augmentsExtendsReplacesDocs: (_context$settings$jsd11 = context.settings.jsdoc) === null || _context$settings$jsd11 === void 0 ? void 0 : _context$settings$jsd11.augmentsExtendsReplacesDocs, // Many rules, e.g., `check-tag-names` - mode: (_context$settings$jsd17 = (_context$settings$jsd18 = context.settings.jsdoc) === null || _context$settings$jsd18 === void 0 ? void 0 : _context$settings$jsd18.mode) !== null && _context$settings$jsd17 !== void 0 ? _context$settings$jsd17 : context.parserPath.includes('@typescript-eslint') ? 'typescript' : 'jsdoc' + mode: ((_context$settings$jsd12 = context.settings.jsdoc) === null || _context$settings$jsd12 === void 0 ? void 0 : _context$settings$jsd12.mode) ?? (context.parserPath.includes('@typescript-eslint') ? 'typescript' : 'jsdoc') }; /* eslint-enable canonical/sort-keys */ @@ -758,9 +774,11 @@ const makeReport = (context, commentNode) => { const lineNumber = commentNode.loc.start.line + jsdocLoc.line; loc = { end: { + column: 0, line: lineNumber }, start: { + column: 0, line: lineNumber } }; // Todo: Remove ignore once `check-examples` can be restored for ESLint 8+ @@ -784,7 +802,7 @@ const makeReport = (context, commentNode) => { return report; }; -/* eslint-disable jsdoc/no-undefined-types -- Need to build this in; see https://www.typescriptlang.org/docs/handbook/utility-types.html */ +/* eslint-disable jsdoc/no-undefined-types -- canonical still using an older version where not defined */ /** * @typedef {ReturnType} Utils @@ -796,7 +814,7 @@ const makeReport = (context, commentNode) => { * indent: string, * jsdoc: object, * jsdocNode: object, - * node: object | null, + * node: Node | null, * report: ReturnType, * settings: Settings, * utils: Utils, @@ -804,7 +822,7 @@ const makeReport = (context, commentNode) => { * ) => any } JsdocVisitor */ -/* eslint-enable jsdoc/no-undefined-types -- Need to build this in */ +/* eslint-enable jsdoc/no-undefined-types -- canonical still using an older version where not defined */ const iterate = (info, indent, jsdoc, ruleConfig, context, lines, jsdocNode, node, settings, sourceCode, iterator, state, iteratingAll) => { @@ -847,21 +865,48 @@ const iterate = (info, indent, jsdoc, ruleConfig, context, lines, jsdocNode, nod const getIndentAndJSDoc = function (lines, jsdocNode) { const sourceLine = lines[jsdocNode.loc.start.line - 1]; const indnt = sourceLine.charAt(0).repeat(jsdocNode.loc.start.column); - const jsdc = (0, _jsdoccomment.parseComment)(jsdocNode, indnt); + const jsdc = (0, _jsdoccomment.parseComment)(jsdocNode, ''); return [indnt, jsdc]; }; +/** + * + * @typedef {{node: Node, state: StateObject}} NonCommentArgs + */ + +/** + * Our internal dynamic set of utilities. + * + * @todo Document + * @typedef {any} Utils + */ + +/** + * @typedef {object} RuleConfig + * @property {EslintRuleMeta} meta ESLint rule meta + * @property {import('./jsdocUtils').DefaultContexts} [contextDefaults] Any default contexts + * @property {true} [contextSelected] Whether to force a `contexts` check + * @property {true} [iterateAllJsdocs] Whether to iterate all JSDoc blocks by default + * regardless of context + * @property {(context, state: StateObject, utils: Utils) => void} [exit] Handler to be executed + * upon exiting iteration of program AST + * @property {(NonCommentArgs) => void} [nonComment] Handler to be executed if rule wishes + * to be supplied nodes without comments + */ + /** * Create an eslint rule that iterates over all JSDocs, regardless of whether * they are attached to a function-like node. * * @param {JsdocVisitor} iterator - * @param {{meta: any}} ruleConfig - * @param contexts - * @param {boolean} additiveContexts + * @param {RuleConfig} ruleConfig The rule's configuration + * @param contexts The `contexts` containing relevant `comment` info. + * @param {boolean} additiveCommentContexts If true, will have a separate + * iteration for each matching comment context. Otherwise, will iterate + * once if there is a single matching comment context. */ -const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveContexts) => { +const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveCommentContexts) => { const trackedJsdocs = new Set(); let handler; let settings; @@ -880,7 +925,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveContexts) => { const [indent, jsdoc] = getIndentAndJSDoc(lines, jsdocNode); - if (additiveContexts) { + if (additiveCommentContexts) { for (const [idx, { comment }] of contexts.entries()) { @@ -992,7 +1037,7 @@ const iterateAllJsdocs = (iterator, ruleConfig, contexts, additiveContexts) => { * they are attached to a function-like node. * * @param {JsdocVisitor} iterator - * @param {{meta: any}} ruleConfig + * @param {RuleConfig} ruleConfig */ @@ -1033,12 +1078,7 @@ const checkFile = (iterator, ruleConfig) => { /** * @param {JsdocVisitor} iterator - * @param {{ - * meta: any, - * contextDefaults?: true | string[], - * contextSelected?: true, - * iterateAllJsdocs?: true, - * }} ruleConfig + * @param {RuleConfig} ruleConfig */ function iterateJsdoc(iterator, ruleConfig) { var _ruleConfig$meta; @@ -1081,9 +1121,9 @@ function iterateJsdoc(iterator, ruleConfig) { let contexts; if (ruleConfig.contextDefaults || ruleConfig.contextSelected || ruleConfig.matchContext) { - var _context$options$3, _contexts, _contexts2; + var _context$options$2, _contexts, _contexts2; - contexts = ruleConfig.matchContext && (_context$options$3 = context.options[0]) !== null && _context$options$3 !== void 0 && _context$options$3.match ? context.options[0].match : _jsdocUtils.default.enforcedContexts(context, ruleConfig.contextDefaults); + contexts = ruleConfig.matchContext && (_context$options$2 = context.options[0]) !== null && _context$options$2 !== void 0 && _context$options$2.match ? context.options[0].match : _jsdocUtils.default.enforcedContexts(context, ruleConfig.contextDefaults); if (contexts) { contexts = contexts.map(obj => { diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js index dcd36d6b2c5eb0..2c80b344ebea90 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/jsdocUtils.js @@ -1261,16 +1261,20 @@ const isInlineTag = (tag) => { const parseClosureTemplateTag = tag => { return tag.name.split(',').map(type => { - return type.trim(); + return type.trim().replace(/^\[(?.*?)=.*\]$/u, '$'); }); }; +/** + * @typedef {true|string[]} DefaultContexts + */ + /** * Checks user option for `contexts` array, defaulting to * contexts designated by the rule. Returns an array of * ESTree AST types, indicating allowable contexts. * * @param {*} context - * @param {true|string[]} defaultContexts + * @param {DefaultContexts} defaultContexts * @returns {string[]} */ @@ -1360,9 +1364,9 @@ const getTagsByType = (context, mode, tags, tagPreference) => { }; const getIndent = sourceCode => { - var _sourceCode$text$matc, _sourceCode$text$matc2; + var _sourceCode$text$matc; - return ((_sourceCode$text$matc = (_sourceCode$text$matc2 = sourceCode.text.match(/^\n*([ \t]+)/u)) === null || _sourceCode$text$matc2 === void 0 ? void 0 : _sourceCode$text$matc2[1]) !== null && _sourceCode$text$matc !== void 0 ? _sourceCode$text$matc : '') + ' '; + return (((_sourceCode$text$matc = sourceCode.text.match(/^\n*([ \t]+)/u)) === null || _sourceCode$text$matc === void 0 ? void 0 : _sourceCode$text$matc[1]) ?? '') + ' '; }; const isConstructor = node => { @@ -1405,10 +1409,10 @@ const hasAccessorPair = node => { const exemptSpeciaMethods = (jsdoc, node, context, schema) => { const hasSchemaOption = prop => { - var _context$options$0$pr, _context$options$; + var _context$options$; const schemaProperties = schema[0].properties; - return (_context$options$0$pr = (_context$options$ = context.options[0]) === null || _context$options$ === void 0 ? void 0 : _context$options$[prop]) !== null && _context$options$0$pr !== void 0 ? _context$options$0$pr : schemaProperties[prop] && schemaProperties[prop].default; + return ((_context$options$ = context.options[0]) === null || _context$options$ === void 0 ? void 0 : _context$options$[prop]) ?? (schemaProperties[prop] && schemaProperties[prop].default); }; const checkGetters = hasSchemaOption('checkGetters'); diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js index b323550c9d9a61..34dcd8c6cca149 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/checkValues.js @@ -69,20 +69,33 @@ var _default = (0, _iterateJsdoc.default)(({ }); utils.forEachPreferredTag('license', (jsdocParameter, targetTagName) => { const licenseRegex = utils.getRegexFromString(licensePattern, 'g'); - const match = utils.getTagDescription(jsdocParameter).match(licenseRegex); - const license = match && match[1] || match[0]; + const matches = utils.getTagDescription(jsdocParameter).matchAll(licenseRegex); + let positiveMatch = false; - if (!license.trim()) { - report(`Missing JSDoc @${targetTagName} value.`, null, jsdocParameter); - } else if (allowedLicenses) { - if (allowedLicenses !== true && !allowedLicenses.includes(license)) { - report(`Invalid JSDoc @${targetTagName}: "${license}"; expected one of ${allowedLicenses.join(', ')}.`, null, jsdocParameter); + for (const match of matches) { + const license = match[1] || match[0]; + + if (license) { + positiveMatch = true; } - } else { - try { - (0, _spdxExpressionParse.default)(license); - } catch { - report(`Invalid JSDoc @${targetTagName}: "${license}"; expected SPDX expression: https://spdx.org/licenses/.`, null, jsdocParameter); + + if (!license.trim()) { + // Avoid reporting again as empty match + if (positiveMatch) { + return; + } + + report(`Missing JSDoc @${targetTagName} value.`, null, jsdocParameter); + } else if (allowedLicenses) { + if (allowedLicenses !== true && !allowedLicenses.includes(license)) { + report(`Invalid JSDoc @${targetTagName}: "${license}"; expected one of ${allowedLicenses.join(', ')}.`, null, jsdocParameter); + } + } else { + try { + (0, _spdxExpressionParse.default)(license); + } catch { + report(`Invalid JSDoc @${targetTagName}: "${license}"; expected SPDX expression: https://spdx.org/licenses/.`, null, jsdocParameter); + } } } }); diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/noMissingSyntax.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/noMissingSyntax.js index d1408b2aaa48f0..8e135899dc062c 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/noMissingSyntax.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/noMissingSyntax.js @@ -38,8 +38,6 @@ var _default = (0, _iterateJsdoc.default)(({ sourceCode, state }) => { - var _foundContext$context; - if (!context.options[0]) { // Handle error later return; @@ -55,7 +53,7 @@ var _default = (0, _iterateJsdoc.default)(({ visitorKeys: sourceCode.visitorKeys })) && comment === cntxt.comment; }); - const contextStr = typeof foundContext === 'object' ? (_foundContext$context = foundContext.context) !== null && _foundContext$context !== void 0 ? _foundContext$context : 'any' : foundContext; + const contextStr = typeof foundContext === 'object' ? foundContext.context ?? 'any' : foundContext; setDefaults(state); incrementSelector(state, contextStr, comment); }, { @@ -84,20 +82,14 @@ var _default = (0, _iterateJsdoc.default)(({ } = context.options[0]; // Report when MISSING contexts.some(cntxt => { - var _cntxt$context, _cntxt$comment, _cntxt$minimum; - - const contextStr = typeof cntxt === 'object' ? (_cntxt$context = cntxt.context) !== null && _cntxt$context !== void 0 ? _cntxt$context : 'any' : cntxt; - const comment = (_cntxt$comment = cntxt === null || cntxt === void 0 ? void 0 : cntxt.comment) !== null && _cntxt$comment !== void 0 ? _cntxt$comment : ''; + const contextStr = typeof cntxt === 'object' ? cntxt.context ?? 'any' : cntxt; + const comment = (cntxt === null || cntxt === void 0 ? void 0 : cntxt.comment) ?? ''; const contextKey = contextStr === 'any' ? undefined : contextStr; - if ((!state.selectorMap[contextKey] || !state.selectorMap[contextKey][comment] || state.selectorMap[contextKey][comment] < ((_cntxt$minimum = cntxt === null || cntxt === void 0 ? void 0 : cntxt.minimum) !== null && _cntxt$minimum !== void 0 ? _cntxt$minimum : 1)) && (contextStr !== 'any' || Object.values(state.selectorMap).every(cmmnt => { - var _cntxt$minimum2; - - return !cmmnt[comment] || cmmnt[comment] < ((_cntxt$minimum2 = cntxt === null || cntxt === void 0 ? void 0 : cntxt.minimum) !== null && _cntxt$minimum2 !== void 0 ? _cntxt$minimum2 : 1); + if ((!state.selectorMap[contextKey] || !state.selectorMap[contextKey][comment] || state.selectorMap[contextKey][comment] < ((cntxt === null || cntxt === void 0 ? void 0 : cntxt.minimum) ?? 1)) && (contextStr !== 'any' || Object.values(state.selectorMap).every(cmmnt => { + return !cmmnt[comment] || cmmnt[comment] < ((cntxt === null || cntxt === void 0 ? void 0 : cntxt.minimum) ?? 1); }))) { - var _cntxt$message; - - const message = (_cntxt$message = cntxt === null || cntxt === void 0 ? void 0 : cntxt.message) !== null && _cntxt$message !== void 0 ? _cntxt$message : 'Syntax is required: {{context}}' + (comment ? ' with {{comment}}' : ''); + const message = (cntxt === null || cntxt === void 0 ? void 0 : cntxt.message) ?? 'Syntax is required: {{context}}' + (comment ? ' with {{comment}}' : ''); context.report({ data: { comment, diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/noRestrictedSyntax.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/noRestrictedSyntax.js index f8b76a7c9bc1a6..6234c3d7d86ce9 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/noRestrictedSyntax.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/noRestrictedSyntax.js @@ -20,8 +20,6 @@ var _default = (0, _iterateJsdoc.default)(({ sourceCode, report }) => { - var _foundContext$context, _foundContext$message; - if (!context.options.length) { report('Rule `no-restricted-syntax` is missing a `context` option.'); return; @@ -43,8 +41,8 @@ var _default = (0, _iterateJsdoc.default)(({ return; } - const contextStr = typeof foundContext === 'object' ? (_foundContext$context = foundContext.context) !== null && _foundContext$context !== void 0 ? _foundContext$context : 'any' : foundContext; - const message = (_foundContext$message = foundContext === null || foundContext === void 0 ? void 0 : foundContext.message) !== null && _foundContext$message !== void 0 ? _foundContext$message : 'Syntax is restricted: {{context}}' + (comment ? ' with {{comment}}' : ''); + const contextStr = typeof foundContext === 'object' ? foundContext.context ?? 'any' : foundContext; + const message = (foundContext === null || foundContext === void 0 ? void 0 : foundContext.message) ?? 'Syntax is restricted: {{context}}' + (comment ? ' with {{comment}}' : ''); report(message, null, null, { comment, context: contextStr diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js index b8eafd9965015c..1b4fb15fbe28f0 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireJsdoc.js @@ -52,6 +52,9 @@ const OPTIONS_SCHEMA = { }, inlineCommentBlock: { type: 'boolean' + }, + minLineCount: { + type: 'integer' } }, type: 'object' @@ -75,6 +78,9 @@ const OPTIONS_SCHEMA = { default: '', type: 'string' }, + minLineCount: { + type: 'integer' + }, publicOnly: { oneOf: [{ default: false, @@ -150,7 +156,8 @@ const getOptions = context => { exemptEmptyConstructors = true, exemptEmptyFunctions = false, enableFixer = true, - fixerMessage = '' + fixerMessage = '', + minLineCount = undefined } = context.options[0] || {}; return { contexts, @@ -158,6 +165,7 @@ const getOptions = context => { exemptEmptyConstructors, exemptEmptyFunctions, fixerMessage, + minLineCount, publicOnly: (baseObj => { if (!publicOnly) { return false; @@ -201,10 +209,40 @@ var _default = { exemptEmptyFunctions, exemptEmptyConstructors, enableFixer, - fixerMessage + fixerMessage, + minLineCount } = getOptions(context); const checkJsDoc = (info, handler, node) => { + if ( // Optimize + minLineCount !== undefined || contexts.some(({ + minLineCount: count + }) => { + return count !== undefined; + })) { + const underMinLine = count => { + var _sourceCode$getText$m; + + return count !== undefined && count > (((_sourceCode$getText$m = sourceCode.getText(node).match(/\n/gu)) === null || _sourceCode$getText$m === void 0 ? void 0 : _sourceCode$getText$m.length) ?? 0) + 1; + }; + + if (underMinLine(minLineCount)) { + return; + } + + const { + minLineCount: contextMinLineCount + } = contexts.find(({ + context: ctxt + }) => { + return ctxt === (info.selector || node.type); + }) || {}; + + if (underMinLine(contextMinLineCount)) { + return; + } + } + const jsDocNode = (0, _jsdoccomment.getJSDocComment)(sourceCode, node, settings); if (jsDocNode) { @@ -257,8 +295,14 @@ var _default = { }; const report = () => { + const { + start + } = node.loc; const loc = { - end: node.loc.start + 1, + end: { + column: 0, + line: start.line + 1 + }, start: node.loc.start }; context.report({ @@ -270,13 +314,11 @@ var _default = { }; if (publicOnly) { - var _publicOnly$ancestors, _publicOnly$esm, _publicOnly$cjs, _publicOnly$window; - const opt = { - ancestorsOnly: Boolean((_publicOnly$ancestors = publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.ancestorsOnly) !== null && _publicOnly$ancestors !== void 0 ? _publicOnly$ancestors : false), - esm: Boolean((_publicOnly$esm = publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.esm) !== null && _publicOnly$esm !== void 0 ? _publicOnly$esm : true), - initModuleExports: Boolean((_publicOnly$cjs = publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.cjs) !== null && _publicOnly$cjs !== void 0 ? _publicOnly$cjs : true), - initWindow: Boolean((_publicOnly$window = publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.window) !== null && _publicOnly$window !== void 0 ? _publicOnly$window : false) + ancestorsOnly: Boolean((publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.ancestorsOnly) ?? false), + esm: Boolean((publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.esm) ?? true), + initModuleExports: Boolean((publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.cjs) ?? true), + initWindow: Boolean((publicOnly === null || publicOnly === void 0 ? void 0 : publicOnly.window) ?? false) }; const exported = _exportParser.default.isUncommentedExport(node, sourceCode, opt, settings); @@ -340,13 +382,6 @@ var _default = { }, FunctionExpression(node) { - if (hasOption('MethodDefinition') && node.parent.type === 'MethodDefinition') { - checkJsDoc({ - isFunctionContext: true - }, null, node); - return; - } - if (!hasOption('FunctionExpression')) { return; } @@ -356,6 +391,17 @@ var _default = { isFunctionContext: true }, null, node); } + }, + + MethodDefinition(node) { + if (!hasOption('MethodDefinition')) { + return; + } + + checkJsDoc({ + isFunctionContext: true, + selector: 'MethodDefinition' + }, null, node.value); } }; diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js index c95b8a40ac8f67..43bfccc7c75ad5 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/dist/rules/requireParam.js @@ -313,7 +313,7 @@ var _default = (0, _iterateJsdoc.default)(({ postType: type ? ' ' : '', start: jsdoc.source[sourceIndex].tokens.start, tag: `@${preferredTagName}`, - type: type !== null && type !== void 0 ? type : '' + type: type ?? '' } }; jsdoc.tags.splice(tagIndex, spliceCount, { @@ -321,7 +321,7 @@ var _default = (0, _iterateJsdoc.default)(({ newAdd: true, source: [tokens], tag: preferredTagName, - type: type !== null && type !== void 0 ? type : '' + type: type ?? '' }); const firstNumber = jsdoc.source[0].number; jsdoc.source.splice(sourceIndex, spliceCount, tokens); diff --git a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/package.json b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/package.json index 2e56e8067a5728..2e75cf6e801d0f 100644 --- a/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/package.json +++ b/tools/node_modules/eslint/node_modules/eslint-plugin-jsdoc/package.json @@ -5,49 +5,50 @@ "url": "http://gajus.com" }, "dependencies": { - "@es-joy/jsdoccomment": "~0.22.1", + "@es-joy/jsdoccomment": "~0.31.0", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.4.0", - "semver": "^7.3.6", + "semver": "^7.3.7", "spdx-expression-parse": "^3.0.1" }, "description": "JSDoc linting rules for ESLint.", "devDependencies": { - "@babel/cli": "^7.17.6", - "@babel/core": "^7.17.9", + "@babel/cli": "^7.17.10", + "@babel/core": "^7.18.0", "@babel/eslint-parser": "^7.17.0", - "@babel/node": "^7.16.8", + "@babel/node": "^7.17.10", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-transform-flow-strip-types": "^7.16.7", - "@babel/preset-env": "^7.16.11", + "@babel/plugin-transform-flow-strip-types": "^7.17.12", + "@babel/preset-env": "^7.18.0", "@babel/register": "^7.17.7", - "@es-joy/jsdoc-eslint-parser": "^0.8.2", + "@es-joy/jsdoc-eslint-parser": "^0.17.0", "@hkdobrev/run-if-changed": "^0.3.1", - "@typescript-eslint/parser": "^5.18.0", + "@typescript-eslint/parser": "^5.26.0", "babel-plugin-add-module-exports": "^1.0.4", "babel-plugin-istanbul": "^6.1.1", "camelcase": "^6.3.0", "chai": "^4.3.6", "cross-env": "^7.0.3", "decamelize": "^5.0.1", - "eslint": "^8.12.0", + "eslint": "^8.16.0", "eslint-config-canonical": "~33.0.1", "gitdown": "^3.1.5", - "glob": "^7.2.0", - "husky": "^7.0.4", - "lint-staged": "^12.3.7", + "glob": "^8.0.3", + "husky": "^8.0.1", + "jsdoc-type-pratt-parser": "^3.1.0", + "lint-staged": "^12.4.1", "lodash.defaultsdeep": "^4.6.1", - "mocha": "^9.2.2", + "mocha": "^10.0.0", "nyc": "^15.1.0", "open-editor": "^3.0.0", "rimraf": "^3.0.2", "semantic-release": "^19.0.2", - "typescript": "^4.6.3" + "typescript": "^4.6.4" }, "engines": { - "node": "^14 || ^16 || ^17" + "node": "^14 || ^16 || ^17 || ^18" }, "keywords": [ "eslint", @@ -116,5 +117,5 @@ "test-cov": "cross-env TIMING=1 nyc --reporter text npm run test-no-cov", "test-index": "npm run test-no-cov -- test/rules/index.js" }, - "version": "39.0.1" + "version": "39.3.3" } diff --git a/tools/node_modules/eslint/node_modules/espree/dist/espree.cjs b/tools/node_modules/eslint/node_modules/espree/dist/espree.cjs index 7495def051ccdd..f2fe26cc7f2380 100644 --- a/tools/node_modules/eslint/node_modules/espree/dist/espree.cjs +++ b/tools/node_modules/eslint/node_modules/espree/dist/espree.cjs @@ -739,7 +739,7 @@ var espree = () => Parser => { }; }; -const version$1 = "9.3.1"; +const version$1 = "9.3.2"; /** * @fileoverview Main Espree file that converts Acorn into Esprima output. diff --git a/tools/node_modules/eslint/node_modules/espree/lib/version.js b/tools/node_modules/eslint/node_modules/espree/lib/version.js index 5a01b1367fb052..cabc77e07b4edd 100644 --- a/tools/node_modules/eslint/node_modules/espree/lib/version.js +++ b/tools/node_modules/eslint/node_modules/espree/lib/version.js @@ -1,3 +1,3 @@ -const version = "9.3.1"; +const version = "9.3.2"; export default version; diff --git a/tools/node_modules/eslint/node_modules/espree/package.json b/tools/node_modules/eslint/node_modules/espree/package.json index 419d2f63518284..7445ef35c06f8c 100644 --- a/tools/node_modules/eslint/node_modules/espree/package.json +++ b/tools/node_modules/eslint/node_modules/espree/package.json @@ -16,7 +16,7 @@ ], "./package.json": "./package.json" }, - "version": "9.3.1", + "version": "9.3.2", "files": [ "lib", "dist/espree.cjs", @@ -31,8 +31,8 @@ }, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "devDependencies": { @@ -40,22 +40,17 @@ "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^11.2.0", "c8": "^7.11.0", - "chai": "^4.3.4", - "eslint": "^7.22.0", + "chai": "^4.3.6", + "eslint": "^8.13.0", "eslint-config-eslint": "^7.0.0", - "eslint-plugin-jsdoc": "^32.2.0", + "eslint-plugin-jsdoc": "^39.2.4", "eslint-plugin-node": "^11.1.0", "eslint-release": "^3.2.0", - "esprima": "latest", "esprima-fb": "^8001.2001.0-dev-harmony-fb", - "json-diff": "^0.5.4", - "mocha": "^8.3.1", + "mocha": "^9.2.2", "npm-run-all": "^4.1.5", - "regenerate": "^1.4.0", "rollup": "^2.41.2", - "shelljs": "^0.3.0", - "shelljs-nodecli": "^0.1.1", - "unicode-6.3.0": "^0.7.5" + "shelljs": "^0.3.0" }, "keywords": [ "ast", @@ -70,7 +65,7 @@ "unit:esm": "c8 mocha --color --reporter progress --timeout 30000 'tests/lib/**/*.js'", "unit:cjs": "mocha --color --reporter progress --timeout 30000 tests/lib/commonjs.cjs", "test": "npm-run-all -p unit lint", - "lint": "eslint \"*.?(c)js\" lib/ tests/lib/", + "lint": "eslint .", "fixlint": "npm run lint -- --fix", "build": "rollup -c rollup.config.js", "update-version": "node tools/update-version.js", diff --git a/tools/node_modules/eslint/node_modules/glob/common.js b/tools/node_modules/eslint/node_modules/glob/common.js index 8e363b6c1f16a1..424c46e1dab1be 100644 --- a/tools/node_modules/eslint/node_modules/glob/common.js +++ b/tools/node_modules/eslint/node_modules/glob/common.js @@ -110,6 +110,8 @@ function setopts (self, pattern, options) { // Note that they are not supported in Glob itself anyway. options.nonegate = true options.nocomment = true + // always treat \ in patterns as escapes, not path separators + options.allowWindowsEscape = false self.minimatch = new Minimatch(pattern, options) self.options = self.minimatch.options diff --git a/tools/node_modules/eslint/node_modules/glob/glob.js b/tools/node_modules/eslint/node_modules/glob/glob.js index afcf82752c390a..37a4d7e60775a3 100644 --- a/tools/node_modules/eslint/node_modules/glob/glob.js +++ b/tools/node_modules/eslint/node_modules/glob/glob.js @@ -342,7 +342,10 @@ Glob.prototype._process = function (pattern, index, inGlobStar, cb) { var read if (prefix === null) read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + else if (isAbsolute(prefix) || + isAbsolute(pattern.map(function (p) { + return typeof p === 'string' ? p : '[*]' + }).join('/'))) { if (!prefix || !isAbsolute(prefix)) prefix = '/' + prefix read = prefix diff --git a/tools/node_modules/eslint/node_modules/glob/package.json b/tools/node_modules/eslint/node_modules/glob/package.json index cc1a57a896e9eb..5940b649b7e65a 100644 --- a/tools/node_modules/eslint/node_modules/glob/package.json +++ b/tools/node_modules/eslint/node_modules/glob/package.json @@ -2,7 +2,10 @@ "author": "Isaac Z. Schlueter (http://blog.izs.me/)", "name": "glob", "description": "a little globber", - "version": "7.2.0", + "version": "7.2.3", + "publishConfig": { + "tag": "v7-legacy" + }, "repository": { "type": "git", "url": "git://github.com/isaacs/node-glob.git" @@ -20,7 +23,7 @@ "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, diff --git a/tools/node_modules/eslint/node_modules/glob/sync.js b/tools/node_modules/eslint/node_modules/glob/sync.js index 4f46f90559a0ca..2c4f480192d28d 100644 --- a/tools/node_modules/eslint/node_modules/glob/sync.js +++ b/tools/node_modules/eslint/node_modules/glob/sync.js @@ -48,7 +48,7 @@ function GlobSync (pattern, options) { } GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) + assert.ok(this instanceof GlobSync) if (this.realpath) { var self = this this.matches.forEach(function (matchset, index) { @@ -72,7 +72,7 @@ GlobSync.prototype._finish = function () { GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) + assert.ok(this instanceof GlobSync) // Get the first [n] parts of pattern that are all strings. var n = 0 @@ -109,7 +109,10 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) { var read if (prefix === null) read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + else if (isAbsolute(prefix) || + isAbsolute(pattern.map(function (p) { + return typeof p === 'string' ? p : '[*]' + }).join('/'))) { if (!prefix || !isAbsolute(prefix)) prefix = '/' + prefix read = prefix diff --git a/tools/node_modules/eslint/node_modules/globals/globals.json b/tools/node_modules/eslint/node_modules/globals/globals.json index 972872941cfec4..2f2b647da25a21 100644 --- a/tools/node_modules/eslint/node_modules/globals/globals.json +++ b/tools/node_modules/eslint/node_modules/globals/globals.json @@ -917,6 +917,7 @@ "Storage": false, "StorageEvent": false, "StorageManager": false, + "structuredClone": false, "styleMedia": false, "StyleSheet": false, "StyleSheetList": false, @@ -1169,6 +1170,7 @@ "Event": false, "EventTarget": false, "exports": true, + "fetch": false, "global": false, "Intl": false, "MessageChannel": false, @@ -1201,6 +1203,7 @@ "DOMException": false, "Event": false, "EventTarget": false, + "fetch": false, "global": false, "Intl": false, "MessageChannel": false, @@ -1702,6 +1705,7 @@ "DOMException": false, "Event": false, "EventTarget": false, + "fetch": false, "Intl": false, "MessageChannel": false, "MessageEvent": false, @@ -1710,6 +1714,7 @@ "queueMicrotask": false, "setInterval": false, "setTimeout": false, + "structuredClone": false, "TextDecoder": false, "TextEncoder": false, "URL": false, diff --git a/tools/node_modules/eslint/node_modules/globals/package.json b/tools/node_modules/eslint/node_modules/globals/package.json index 39feb8c1296a30..d49ca485be9cf6 100644 --- a/tools/node_modules/eslint/node_modules/globals/package.json +++ b/tools/node_modules/eslint/node_modules/globals/package.json @@ -1,6 +1,6 @@ { "name": "globals", - "version": "13.13.0", + "version": "13.15.0", "description": "Global identifiers from different JavaScript environments", "license": "MIT", "repository": "sindresorhus/globals", diff --git a/tools/node_modules/eslint/node_modules/jsdoc-type-pratt-parser/dist/index.js b/tools/node_modules/eslint/node_modules/jsdoc-type-pratt-parser/dist/index.js index c1934720659549..eb07b24d34085f 100644 --- a/tools/node_modules/eslint/node_modules/jsdoc-type-pratt-parser/dist/index.js +++ b/tools/node_modules/eslint/node_modules/jsdoc-type-pratt-parser/dist/index.js @@ -213,51 +213,39 @@ identifierRule, stringValueRule ]; + const breakingWhitespaceRegex = /^\s*\n\s*/; class Lexer { - constructor() { + constructor(text, previous, current, next) { this.text = ''; - } - lex(text) { this.text = text; - this.current = undefined; - this.next = undefined; - this.advance(); - } - token() { - if (this.current === undefined) { - throw new Error('Lexer not lexing'); - } - return this.current; - } - peek() { - if (this.next === undefined) { - this.next = this.read(); - } - return this.next; - } - last() { - return this.previous; - } - advance() { - this.previous = this.current; - if (this.next !== undefined) { - this.current = this.next; - this.next = undefined; - return; - } - this.current = this.read(); - } - read() { - const text = this.text.trim(); + this.previous = previous; + this.current = current; + this.next = next; + } + static create(text) { + const current = this.read(text); + text = current.text; + const next = this.read(text); + text = next.text; + return new Lexer(text, undefined, current.token, next.token); + } + static read(text, startOfLine = false) { + startOfLine = startOfLine || breakingWhitespaceRegex.test(text); + text = text.trim(); for (const rule of rules) { - const token = rule(text); - if (token !== null) { - this.text = text.slice(token.text.length); - return token; + const partial = rule(text); + if (partial !== null) { + const token = Object.assign(Object.assign({}, partial), { startOfLine }); + text = text.slice(token.text.length); + return { text, token }; } } throw new Error('Unexpected Token ' + text); } + advance() { + const next = Lexer.read(this.text); + return new Lexer(next.text, this.current, this.next, next.token); + } } /** @@ -338,19 +326,26 @@ })(Precedence || (Precedence = {})); class Parser { - constructor({ grammar, lexer, parent }) { - this.lexer = lexer !== null && lexer !== void 0 ? lexer : new Lexer(); - this.parent = parent; + constructor(grammar, textOrLexer, parent) { this.grammar = grammar; + if (typeof textOrLexer === 'string') { + this._lexer = Lexer.create(textOrLexer); + } + else { + this._lexer = textOrLexer; + } + this.parent = parent; + } + get lexer() { + return this._lexer; } /** * Parses a given string and throws an error if the parse ended before the end of the string. */ - parseText(text) { - this.lexer.lex(text); + parse() { const result = this.parseType(Precedence.ALL); - if (this.lexer.token().type !== 'EOF') { - throw new EarlyEndOfParseError(this.lexer.token()); + if (this.lexer.current.type !== 'EOF') { + throw new EarlyEndOfParseError(this.lexer.current); } return result; } @@ -360,26 +355,14 @@ parseType(precedence) { return assertRootResult(this.parseIntermediateType(precedence)); } - /** - * Tries to parse the current state with all parslets in the grammar and returns the first non null result. - */ - tryParslets(precedence, left) { - for (const parslet of this.grammar) { - const result = parslet(this, precedence, left); - if (result !== null) { - return result; - } - } - return null; - } /** * The main parsing function. First it tries to parse the current state in the prefix step, and then it continues * to parse the state in the infix step. */ parseIntermediateType(precedence) { - const result = this.tryParslets(precedence, null); + const result = this.tryParslets(null, precedence); if (result === null) { - throw new NoParsletFoundError(this.lexer.token()); + throw new NoParsletFoundError(this.lexer.current); } return this.parseInfixIntermediateType(result, precedence); } @@ -387,13 +370,25 @@ * In the infix parsing step the parser continues to parse the current state with all parslets until none returns * a result. */ - parseInfixIntermediateType(result, precedence) { - let newResult = this.tryParslets(precedence, result); - while (newResult !== null) { - result = newResult; - newResult = this.tryParslets(precedence, result); + parseInfixIntermediateType(left, precedence) { + let result = this.tryParslets(left, precedence); + while (result !== null) { + left = result; + result = this.tryParslets(left, precedence); } - return result; + return left; + } + /** + * Tries to parse the current state with all parslets in the grammar and returns the first non null result. + */ + tryParslets(left, precedence) { + for (const parslet of this.grammar) { + const result = parslet(this, precedence, left); + if (result !== null) { + return result; + } + } + return null; } /** * If the given type equals the current type of the {@link Lexer} advance the lexer. Return true if the lexer was @@ -403,17 +398,16 @@ if (!Array.isArray(types)) { types = [types]; } - if (!types.includes(this.lexer.token().type)) { + if (types.includes(this.lexer.current.type)) { + this._lexer = this.lexer.advance(); + return true; + } + else { return false; } - this.lexer.advance(); - return true; - } - getLexer() { - return this.lexer; } - getParent() { - return this.parent; + acceptLexerState(parser) { + this._lexer = parser.lexer; } } @@ -422,8 +416,8 @@ } const nullableParslet = (parser, precedence, left) => { - const type = parser.getLexer().token().type; - const next = parser.getLexer().peek().type; + const type = parser.lexer.current.type; + const next = parser.lexer.next.type; const accept = ((left == null) && type === '?' && !isQuestionMarkUnknownType(next)) || ((left != null) && type === '?'); if (!accept) { @@ -452,9 +446,9 @@ function composeParslet(options) { const parslet = (parser, curPrecedence, left) => { - const type = parser.getLexer().token().type; - const next = parser.getLexer().peek().type; - if (left == null) { + const type = parser.lexer.current.type; + const next = parser.lexer.next.type; + if (left === null) { if ('parsePrefix' in options) { if (options.accept(type, next)) { return options.parsePrefix(parser); @@ -507,7 +501,7 @@ name: 'numberParslet', accept: type => type === 'Number', parsePrefix: parser => { - const value = parseFloat(parser.getLexer().token().text); + const value = parseFloat(parser.lexer.current.text); parser.consume('Number'); return { type: 'JsdocTypeNumber', @@ -572,7 +566,7 @@ type: 'JsdocTypeUnknown' }; } - throw new Error('Unacceptable token: ' + parser.getLexer().token().text); + throw new Error('Unacceptable token: ' + parser.lexer.current.text); } }); @@ -700,8 +694,8 @@ if ((left == null) || precedence >= Precedence.NAME_PATH) { return null; } - const type = parser.getLexer().token().type; - const next = parser.getLexer().peek().type; + const type = parser.lexer.current.type; + const next = parser.lexer.next.type; const accept = (type === '.' && next !== '<') || (type === '[' && left.type === 'JsdocTypeName') || (allowJsdocNamePaths && (type === '~' || type === '#')); @@ -725,12 +719,10 @@ pathType = 'instance'; } const pathParser = pathGrammar !== null - ? new Parser({ - grammar: pathGrammar, - lexer: parser.getLexer() - }) + ? new Parser(pathGrammar, parser.lexer, parser) : parser; const parsed = pathParser.parseIntermediateType(Precedence.NAME_PATH); + parser.acceptLexerState(pathParser); let right; switch (parsed.type) { case 'JsdocTypeName': @@ -772,7 +764,7 @@ throw new UnexpectedTypeError(parsed, 'Expecting \'JsdocTypeName\', \'JsdocTypeNumber\', \'JsdocStringValue\' or \'JsdocTypeSpecialNamePath\''); } if (brackets && !parser.consume(']')) { - const token = parser.getLexer().token(); + const token = parser.lexer.current; throw new Error(`Unterminated square brackets. Next token is '${token.type}' ` + `with text '${token.text}'`); } @@ -790,7 +782,7 @@ name: 'nameParslet', accept: type => type === 'Identifier' || type === 'this' || type === 'new' || allowedAdditionalTokens.includes(type), parsePrefix: parser => { - const { type, text } = parser.getLexer().token(); + const { type, text } = parser.lexer.current; parser.consume(type); return { type: 'JsdocTypeName', @@ -804,7 +796,7 @@ name: 'stringValueParslet', accept: type => type === 'StringValue', parsePrefix: parser => { - const text = parser.getLexer().token().text; + const text = parser.lexer.current.text; parser.consume('StringValue'); return { type: 'JsdocTypeStringValue', @@ -821,7 +813,7 @@ name: 'specialNamePathParslet', accept: type => allowedTypes.includes(type), parsePrefix: parser => { - const type = parser.getLexer().token().type; + const type = parser.lexer.current.type; parser.consume(type); if (!parser.consume(':')) { return { @@ -829,12 +821,8 @@ value: type }; } - const moduleParser = new Parser({ - grammar: pathGrammar, - lexer: parser.getLexer() - }); let result; - let token = parser.getLexer().token(); + let token = parser.lexer.current; if (parser.consume('StringValue')) { result = { type: 'JsdocTypeSpecialNamePath', @@ -850,7 +838,7 @@ const allowed = ['Identifier', '@', '/']; while (allowed.some(type => parser.consume(type))) { value += token.text; - token = parser.getLexer().token(); + token = parser.lexer.current; } result = { type: 'JsdocTypeSpecialNamePath', @@ -861,7 +849,10 @@ } }; } - return assertRootResult(moduleParser.parseInfixIntermediateType(result, Precedence.ALL)); + const moduleParser = new Parser(pathGrammar, parser.lexer, parser); + const moduleResult = moduleParser.parseInfixIntermediateType(result, Precedence.ALL); + parser.acceptLexerState(moduleParser); + return assertRootResult(moduleResult); } }); } @@ -905,13 +896,14 @@ } return parameters; } - function createFunctionParslet({ allowNamedParameters, allowNoReturnType, allowWithoutParenthesis }) { + function createFunctionParslet({ allowNamedParameters, allowNoReturnType, allowWithoutParenthesis, allowNewAsFunctionKeyword }) { return composeParslet({ name: 'functionParslet', - accept: type => type === 'function', + accept: (type, next) => type === 'function' || (allowNewAsFunctionKeyword && type === 'new' && next === '('), parsePrefix: parser => { + const newKeyword = parser.consume('new'); parser.consume('function'); - const hasParenthesis = parser.getLexer().token().type === '('; + const hasParenthesis = parser.lexer.current.type === '('; if (!hasParenthesis) { if (!allowWithoutParenthesis) { throw new Error('function is missing parameter list'); @@ -921,16 +913,22 @@ value: 'function' }; } - const result = { + let result = { type: 'JsdocTypeFunction', parameters: [], arrow: false, + constructor: newKeyword, parenthesis: hasParenthesis }; const value = parser.parseIntermediateType(Precedence.FUNCTION); if (allowNamedParameters === undefined) { result.parameters = getUnnamedParameters(value); } + else if (newKeyword && value.type === 'JsdocTypeFunction' && value.arrow) { + result = value; + result.constructor = true; + return result; + } else { result.parameters = getParameters(value); for (const p of result.parameters) { @@ -1056,7 +1054,7 @@ } }); - function createKeyValueParslet({ allowKeyTypes, allowReadonly, allowOptional }) { + function createKeyValueParslet({ allowKeyTypes, allowReadonly, allowOptional, allowVariadic }) { return composeParslet({ name: 'keyValueParslet', precedence: Precedence.KEY_VALUE, @@ -1065,6 +1063,7 @@ var _a; let optional = false; let readonlyProperty = false; + let variadic = false; if (allowOptional && left.type === 'JsdocTypeNullable') { optional = true; left = left.element; @@ -1073,20 +1072,28 @@ readonlyProperty = true; left = left.element; } + if (allowVariadic && left.type === 'JsdocTypeVariadic' && left.element !== undefined) { + variadic = true; + left = left.element; + } // object parslet uses a special grammar and for the value we want to switch back to the parent - parser = (_a = parser.getParent()) !== null && _a !== void 0 ? _a : parser; + const parentParser = (_a = parser.parent) !== null && _a !== void 0 ? _a : parser; + parentParser.acceptLexerState(parser); if (left.type === 'JsdocTypeNumber' || left.type === 'JsdocTypeName' || left.type === 'JsdocTypeStringValue') { - parser.consume(':'); + parentParser.consume(':'); let quote; if (left.type === 'JsdocTypeStringValue') { quote = left.meta.quote; } + const right = parentParser.parseType(Precedence.KEY_VALUE); + parser.acceptLexerState(parentParser); return { type: 'JsdocTypeKeyValue', key: left.value.toString(), - right: parser.parseType(Precedence.KEY_VALUE), - optional: optional, + right, + optional, readonly: readonlyProperty, + variadic, meta: { quote, hasLeftSideExpression: false @@ -1097,11 +1104,13 @@ if (!allowKeyTypes) { throw new UnexpectedTypeError(left); } - parser.consume(':'); + parentParser.consume(':'); + const right = parentParser.parseType(Precedence.KEY_VALUE); + parser.acceptLexerState(parentParser); return { type: 'JsdocTypeKeyValue', left: assertRootResult(left), - right: parser.parseType(Precedence.KEY_VALUE), + right: right, meta: { hasLeftSideExpression: true } @@ -1126,14 +1135,11 @@ }; if (!parser.consume('}')) { let separator; - const lexer = parser.getLexer(); - const fieldParser = new Parser({ - grammar: objectFieldGrammar, - lexer: lexer, - parent: parser - }); + const fieldParser = new Parser(objectFieldGrammar, parser.lexer, parser); while (true) { + fieldParser.acceptLexerState(parser); let field = fieldParser.parseIntermediateType(Precedence.OBJECT); + parser.acceptLexerState(fieldParser); if (field === undefined && allowKeyTypes) { field = parser.parseIntermediateType(Precedence.OBJECT); } @@ -1153,6 +1159,7 @@ right: undefined, optional: optional, readonly: false, + variadic: false, meta: { quote, hasLeftSideExpression: false @@ -1165,7 +1172,10 @@ else { throw new UnexpectedTypeError(field); } - if (parser.consume(',')) { + if (parser.lexer.current.startOfLine) { + separator = 'linebreak'; + } + else if (parser.consume(',')) { separator = 'comma'; } else if (parser.consume(';')) { @@ -1174,7 +1184,7 @@ else { break; } - const type = parser.getLexer().token().type; + const type = parser.lexer.current.type; if (type === '}') { break; } @@ -1194,7 +1204,8 @@ createFunctionParslet({ allowWithoutParenthesis: true, allowNamedParameters: ['this', 'new'], - allowNoReturnType: true + allowNoReturnType: true, + allowNewAsFunctionKeyword: false }), stringValueParslet, createSpecialNamePathParslet({ @@ -1217,7 +1228,8 @@ createKeyValueParslet({ allowKeyTypes: true, allowOptional: false, - allowReadonly: false + allowReadonly: false, + allowVariadic: false }) ]; const jsdocGrammar = [ @@ -1258,7 +1270,8 @@ createKeyValueParslet({ allowKeyTypes: false, allowOptional: false, - allowReadonly: false + allowReadonly: false, + allowVariadic: false }) ]; const closureGrammar = [ @@ -1274,7 +1287,8 @@ createFunctionParslet({ allowWithoutParenthesis: false, allowNamedParameters: ['this', 'new'], - allowNoReturnType: true + allowNoReturnType: true, + allowNewAsFunctionKeyword: false }), createVariadicParslet({ allowEnclosingBrackets: false, @@ -1295,7 +1309,8 @@ createKeyValueParslet({ allowKeyTypes: false, allowOptional: false, - allowReadonly: false + allowReadonly: false, + allowVariadic: false }), symbolParslet ]; @@ -1397,6 +1412,7 @@ type: 'JsdocTypeFunction', parameters: getParameters(left).map(assertPlainKeyValueOrNameResult), arrow: true, + constructor: false, parenthesis: true, returnType: parser.parseType(Precedence.OBJECT) }; @@ -1449,7 +1465,8 @@ createKeyValueParslet({ allowKeyTypes: false, allowOptional: true, - allowReadonly: true + allowReadonly: true, + allowVariadic: false }) ]; const typescriptGrammar = [ @@ -1465,7 +1482,8 @@ createFunctionParslet({ allowWithoutParenthesis: true, allowNoReturnType: false, - allowNamedParameters: ['this', 'new'] + allowNamedParameters: ['this', 'new', 'args'], + allowNewAsFunctionKeyword: true }), createTupleParslet({ allowQuestionMark: false @@ -1490,30 +1508,27 @@ createKeyValueParslet({ allowKeyTypes: false, allowOptional: true, - allowReadonly: true + allowReadonly: true, + allowVariadic: true }), intersectionParslet, predicateParslet ]; - const parsers = { - jsdoc: new Parser({ - grammar: jsdocGrammar - }), - closure: new Parser({ - grammar: closureGrammar - }), - typescript: new Parser({ - grammar: typescriptGrammar - }) - }; /** * This function parses the given expression in the given mode and produces a {@link RootResult}. * @param expression * @param mode */ function parse(expression, mode) { - return parsers[mode].parseText(expression); + switch (mode) { + case 'closure': + return (new Parser(closureGrammar, expression)).parse(); + case 'jsdoc': + return (new Parser(jsdocGrammar, expression)).parse(); + case 'typescript': + return (new Parser(typescriptGrammar, expression)).parse(); + } } /** * This function tries to parse the given expression in multiple modes and returns the first successful @@ -1526,7 +1541,7 @@ let error; for (const mode of modes) { try { - return parsers[mode].parseText(expression); + return parse(expression, mode); } catch (e) { error = e; @@ -1587,7 +1602,7 @@ JsdocTypeKeyof: (result, transform) => `keyof ${transform(result.element)}`, JsdocTypeFunction: (result, transform) => { if (!result.arrow) { - let stringified = 'function'; + let stringified = result.constructor ? 'new' : 'function'; if (!result.parenthesis) { return stringified; } @@ -1601,7 +1616,11 @@ if (result.returnType === undefined) { throw new Error('Arrow function needs a return type.'); } - return `(${result.parameters.map(transform).join(', ')}) => ${transform(result.returnType)}`; + let stringified = `(${result.parameters.map(transform).join(', ')}) => ${transform(result.returnType)}`; + if (result.constructor) { + stringified = 'new ' + stringified; + } + return stringified; } }, JsdocTypeName: result => result.value, @@ -1651,6 +1670,9 @@ if (result.optional) { text += '?'; } + if (result.variadic) { + text = '...' + text; + } if (result.right === undefined) { return text; } @@ -2234,6 +2256,7 @@ right: result.right === undefined ? undefined : transform(result.right), optional: result.optional, readonly: result.readonly, + variadic: result.variadic, meta: result.meta }; } @@ -2276,6 +2299,7 @@ type: 'JsdocTypeFunction', arrow: result.arrow, parameters: result.parameters.map(transform), + constructor: result.constructor, parenthesis: result.parenthesis }; if (result.returnType !== undefined) { diff --git a/tools/node_modules/eslint/node_modules/jsdoc-type-pratt-parser/package.json b/tools/node_modules/eslint/node_modules/jsdoc-type-pratt-parser/package.json index 7768b0024212f1..6bab2e1197b8aa 100644 --- a/tools/node_modules/eslint/node_modules/jsdoc-type-pratt-parser/package.json +++ b/tools/node_modules/eslint/node_modules/jsdoc-type-pratt-parser/package.json @@ -1,6 +1,6 @@ { "name": "jsdoc-type-pratt-parser", - "version": "2.2.5", + "version": "3.1.0", "description": "", "main": "dist/index.js", "types": "dist/src/index.d.ts", diff --git a/tools/node_modules/eslint/node_modules/lru-cache/LICENSE b/tools/node_modules/eslint/node_modules/lru-cache/LICENSE deleted file mode 100644 index 9b58a3e03d1df1..00000000000000 --- a/tools/node_modules/eslint/node_modules/lru-cache/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) 2010-2022 Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/lru-cache/index.js b/tools/node_modules/eslint/node_modules/lru-cache/index.js deleted file mode 100644 index b63be6e988835e..00000000000000 --- a/tools/node_modules/eslint/node_modules/lru-cache/index.js +++ /dev/null @@ -1,823 +0,0 @@ -const perf = typeof performance === 'object' && performance && - typeof performance.now === 'function' ? performance : Date - -const hasAbortController = typeof AbortController !== 'undefined' - -// minimal backwards-compatibility polyfill -const AC = hasAbortController ? AbortController : Object.assign( - class AbortController { - constructor () { this.signal = new AC.AbortSignal } - abort () { this.signal.aborted = true } - }, - { AbortSignal: class AbortSignal { constructor () { this.aborted = false }}} -) - -const warned = new Set() -const deprecatedOption = (opt, instead) => { - const code = `LRU_CACHE_OPTION_${opt}` - if (shouldWarn(code)) { - warn(code, `${opt} option`, `options.${instead}`, LRUCache) - } -} -const deprecatedMethod = (method, instead) => { - const code = `LRU_CACHE_METHOD_${method}` - if (shouldWarn(code)) { - const { prototype } = LRUCache - const { get } = Object.getOwnPropertyDescriptor(prototype, method) - warn(code, `${method} method`, `cache.${instead}()`, get) - } -} -const deprecatedProperty = (field, instead) => { - const code = `LRU_CACHE_PROPERTY_${field}` - if (shouldWarn(code)) { - const { prototype } = LRUCache - const { get } = Object.getOwnPropertyDescriptor(prototype, field) - warn(code, `${field} property`, `cache.${instead}`, get) - } -} - -const emitWarning = (...a) => { - typeof process === 'object' && - process && - typeof process.emitWarning === 'function' - ? process.emitWarning(...a) - : console.error(...a) -} - -const shouldWarn = code => !warned.has(code) - -const warn = (code, what, instead, fn) => { - warned.add(code) - const msg = `The ${what} is deprecated. Please use ${instead} instead.` - emitWarning(msg, 'DeprecationWarning', code, fn) -} - -const isPosInt = n => n && n === Math.floor(n) && n > 0 && isFinite(n) - -/* istanbul ignore next - This is a little bit ridiculous, tbh. - * The maximum array length is 2^32-1 or thereabouts on most JS impls. - * And well before that point, you're caching the entire world, I mean, - * that's ~32GB of just integers for the next/prev links, plus whatever - * else to hold that many keys and values. Just filling the memory with - * zeroes at init time is brutal when you get that big. - * But why not be complete? - * Maybe in the future, these limits will have expanded. */ -const getUintArray = max => !isPosInt(max) ? null -: max <= Math.pow(2, 8) ? Uint8Array -: max <= Math.pow(2, 16) ? Uint16Array -: max <= Math.pow(2, 32) ? Uint32Array -: max <= Number.MAX_SAFE_INTEGER ? ZeroArray -: null - -class ZeroArray extends Array { - constructor (size) { - super(size) - this.fill(0) - } -} - -class Stack { - constructor (max) { - if (max === 0) { - return [] - } - const UintArray = getUintArray(max) - this.heap = new UintArray(max) - this.length = 0 - } - push (n) { - this.heap[this.length++] = n - } - pop () { - return this.heap[--this.length] - } -} - -class LRUCache { - constructor (options = {}) { - const { - max = 0, - ttl, - ttlResolution = 1, - ttlAutopurge, - updateAgeOnGet, - updateAgeOnHas, - allowStale, - dispose, - disposeAfter, - noDisposeOnSet, - noUpdateTTL, - maxSize = 0, - sizeCalculation, - fetchMethod, - } = options - - // deprecated options, don't trigger a warning for getting them if - // the thing being passed in is another LRUCache we're copying. - const { - length, - maxAge, - stale, - } = options instanceof LRUCache ? {} : options - - if (max !== 0 && !isPosInt(max)) { - throw new TypeError('max option must be a nonnegative integer') - } - - const UintArray = max ? getUintArray(max) : Array - if (!UintArray) { - throw new Error('invalid max value: ' + max) - } - - this.max = max - this.maxSize = maxSize - this.sizeCalculation = sizeCalculation || length - if (this.sizeCalculation) { - if (!this.maxSize) { - throw new TypeError('cannot set sizeCalculation without setting maxSize') - } - if (typeof this.sizeCalculation !== 'function') { - throw new TypeError('sizeCalculation set to non-function') - } - } - - this.fetchMethod = fetchMethod || null - if (this.fetchMethod && typeof this.fetchMethod !== 'function') { - throw new TypeError('fetchMethod must be a function if specified') - } - - this.keyMap = new Map() - this.keyList = new Array(max).fill(null) - this.valList = new Array(max).fill(null) - this.next = new UintArray(max) - this.prev = new UintArray(max) - this.head = 0 - this.tail = 0 - this.free = new Stack(max) - this.initialFill = 1 - this.size = 0 - - if (typeof dispose === 'function') { - this.dispose = dispose - } - if (typeof disposeAfter === 'function') { - this.disposeAfter = disposeAfter - this.disposed = [] - } else { - this.disposeAfter = null - this.disposed = null - } - this.noDisposeOnSet = !!noDisposeOnSet - this.noUpdateTTL = !!noUpdateTTL - - if (this.maxSize !== 0) { - if (!isPosInt(this.maxSize)) { - throw new TypeError('maxSize must be a positive integer if specified') - } - this.initializeSizeTracking() - } - - this.allowStale = !!allowStale || !!stale - this.updateAgeOnGet = !!updateAgeOnGet - this.updateAgeOnHas = !!updateAgeOnHas - this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0 - ? ttlResolution : 1 - this.ttlAutopurge = !!ttlAutopurge - this.ttl = ttl || maxAge || 0 - if (this.ttl) { - if (!isPosInt(this.ttl)) { - throw new TypeError('ttl must be a positive integer if specified') - } - this.initializeTTLTracking() - } - - // do not allow completely unbounded caches - if (this.max === 0 && this.ttl === 0 && this.maxSize === 0) { - throw new TypeError('At least one of max, maxSize, or ttl is required') - } - if (!this.ttlAutopurge && !this.max && !this.maxSize) { - const code = 'LRU_CACHE_UNBOUNDED' - if (shouldWarn(code)) { - warned.add(code) - const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' + - 'result in unbounded memory consumption.' - emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache) - } - } - - if (stale) { - deprecatedOption('stale', 'allowStale') - } - if (maxAge) { - deprecatedOption('maxAge', 'ttl') - } - if (length) { - deprecatedOption('length', 'sizeCalculation') - } - } - - getRemainingTTL (key) { - return this.has(key, { updateAgeOnHas: false }) ? Infinity : 0 - } - - initializeTTLTracking () { - this.ttls = new ZeroArray(this.max) - this.starts = new ZeroArray(this.max) - - this.setItemTTL = (index, ttl) => { - this.starts[index] = ttl !== 0 ? perf.now() : 0 - this.ttls[index] = ttl - if (ttl !== 0 && this.ttlAutopurge) { - const t = setTimeout(() => { - if (this.isStale(index)) { - this.delete(this.keyList[index]) - } - }, ttl + 1) - /* istanbul ignore else - unref() not supported on all platforms */ - if (t.unref) { - t.unref() - } - } - } - - this.updateItemAge = (index) => { - this.starts[index] = this.ttls[index] !== 0 ? perf.now() : 0 - } - - // debounce calls to perf.now() to 1s so we're not hitting - // that costly call repeatedly. - let cachedNow = 0 - const getNow = () => { - const n = perf.now() - if (this.ttlResolution > 0) { - cachedNow = n - const t = setTimeout(() => cachedNow = 0, this.ttlResolution) - /* istanbul ignore else - not available on all platforms */ - if (t.unref) { - t.unref() - } - } - return n - } - - this.getRemainingTTL = (key) => { - const index = this.keyMap.get(key) - if (index === undefined) { - return 0 - } - return this.ttls[index] === 0 || this.starts[index] === 0 ? Infinity - : ((this.starts[index] + this.ttls[index]) - (cachedNow || getNow())) - } - - this.isStale = (index) => { - return this.ttls[index] !== 0 && this.starts[index] !== 0 && - ((cachedNow || getNow()) - this.starts[index] > this.ttls[index]) - } - } - updateItemAge (index) {} - setItemTTL (index, ttl) {} - isStale (index) { return false } - - initializeSizeTracking () { - this.calculatedSize = 0 - this.sizes = new ZeroArray(this.max) - this.removeItemSize = index => this.calculatedSize -= this.sizes[index] - this.requireSize = (k, v, size, sizeCalculation) => { - if (!isPosInt(size)) { - if (sizeCalculation) { - if (typeof sizeCalculation !== 'function') { - throw new TypeError('sizeCalculation must be a function') - } - size = sizeCalculation(v, k) - if (!isPosInt(size)) { - throw new TypeError('sizeCalculation return invalid (expect positive integer)') - } - } else { - throw new TypeError('invalid size value (must be positive integer)') - } - } - return size - } - this.addItemSize = (index, v, k, size) => { - this.sizes[index] = size - const maxSize = this.maxSize - this.sizes[index] - while (this.calculatedSize > maxSize) { - this.evict(true) - } - this.calculatedSize += this.sizes[index] - } - this.delete = k => { - if (this.size !== 0) { - const index = this.keyMap.get(k) - if (index !== undefined) { - this.calculatedSize -= this.sizes[index] - } - } - return LRUCache.prototype.delete.call(this, k) - } - } - removeItemSize (index) {} - addItemSize (index, v, k, size) {} - requireSize (k, v, size, sizeCalculation) { - if (size || sizeCalculation) { - throw new TypeError('cannot set size without setting maxSize on cache') - } - } - - *indexes ({ allowStale = this.allowStale } = {}) { - if (this.size) { - for (let i = this.tail; true; ) { - if (!this.isValidIndex(i)) { - break - } - if (allowStale || !this.isStale(i)) { - yield i - } - if (i === this.head) { - break - } else { - i = this.prev[i] - } - } - } - } - - *rindexes ({ allowStale = this.allowStale } = {}) { - if (this.size) { - for (let i = this.head; true; ) { - if (!this.isValidIndex(i)) { - break - } - if (allowStale || !this.isStale(i)) { - yield i - } - if (i === this.tail) { - break - } else { - i = this.next[i] - } - } - } - } - - isValidIndex (index) { - return this.keyMap.get(this.keyList[index]) === index - } - - *entries () { - for (const i of this.indexes()) { - yield [this.keyList[i], this.valList[i]] - } - } - *rentries () { - for (const i of this.rindexes()) { - yield [this.keyList[i], this.valList[i]] - } - } - - *keys () { - for (const i of this.indexes()) { - yield this.keyList[i] - } - } - *rkeys () { - for (const i of this.rindexes()) { - yield this.keyList[i] - } - } - - *values () { - for (const i of this.indexes()) { - yield this.valList[i] - } - } - *rvalues () { - for (const i of this.rindexes()) { - yield this.valList[i] - } - } - - [Symbol.iterator] () { - return this.entries() - } - - find (fn, getOptions = {}) { - for (const i of this.indexes()) { - if (fn(this.valList[i], this.keyList[i], this)) { - return this.get(this.keyList[i], getOptions) - } - } - } - - forEach (fn, thisp = this) { - for (const i of this.indexes()) { - fn.call(thisp, this.valList[i], this.keyList[i], this) - } - } - - rforEach (fn, thisp = this) { - for (const i of this.rindexes()) { - fn.call(thisp, this.valList[i], this.keyList[i], this) - } - } - - get prune () { - deprecatedMethod('prune', 'purgeStale') - return this.purgeStale - } - - purgeStale () { - let deleted = false - for (const i of this.rindexes({ allowStale: true })) { - if (this.isStale(i)) { - this.delete(this.keyList[i]) - deleted = true - } - } - return deleted - } - - dump () { - const arr = [] - for (const i of this.indexes()) { - const key = this.keyList[i] - const value = this.valList[i] - const entry = { value } - if (this.ttls) { - entry.ttl = this.ttls[i] - } - if (this.sizes) { - entry.size = this.sizes[i] - } - arr.unshift([key, entry]) - } - return arr - } - - load (arr) { - this.clear() - for (const [key, entry] of arr) { - this.set(key, entry.value, entry) - } - } - - dispose (v, k, reason) {} - - set (k, v, { - ttl = this.ttl, - noDisposeOnSet = this.noDisposeOnSet, - size = 0, - sizeCalculation = this.sizeCalculation, - noUpdateTTL = this.noUpdateTTL, - } = {}) { - size = this.requireSize(k, v, size, sizeCalculation) - let index = this.size === 0 ? undefined : this.keyMap.get(k) - if (index === undefined) { - // addition - index = this.newIndex() - this.keyList[index] = k - this.valList[index] = v - this.keyMap.set(k, index) - this.next[this.tail] = index - this.prev[index] = this.tail - this.tail = index - this.size ++ - this.addItemSize(index, v, k, size) - noUpdateTTL = false - } else { - // update - const oldVal = this.valList[index] - if (v !== oldVal) { - if (this.isBackgroundFetch(oldVal)) { - oldVal.__abortController.abort() - } else { - if (!noDisposeOnSet) { - this.dispose(oldVal, k, 'set') - if (this.disposeAfter) { - this.disposed.push([oldVal, k, 'set']) - } - } - } - this.removeItemSize(index) - this.valList[index] = v - this.addItemSize(index, v, k, size) - } - this.moveToTail(index) - } - if (ttl !== 0 && this.ttl === 0 && !this.ttls) { - this.initializeTTLTracking() - } - if (!noUpdateTTL) { - this.setItemTTL(index, ttl) - } - if (this.disposeAfter) { - while (this.disposed.length) { - this.disposeAfter(...this.disposed.shift()) - } - } - return this - } - - newIndex () { - if (this.size === 0) { - return this.tail - } - if (this.size === this.max && this.max !== 0) { - return this.evict(false) - } - if (this.free.length !== 0) { - return this.free.pop() - } - // initial fill, just keep writing down the list - return this.initialFill++ - } - - pop () { - if (this.size) { - const val = this.valList[this.head] - this.evict(true) - return val - } - } - - evict (free) { - const head = this.head - const k = this.keyList[head] - const v = this.valList[head] - if (this.isBackgroundFetch(v)) { - v.__abortController.abort() - } else { - this.dispose(v, k, 'evict') - if (this.disposeAfter) { - this.disposed.push([v, k, 'evict']) - } - } - this.removeItemSize(head) - // if we aren't about to use the index, then null these out - if (free) { - this.keyList[head] = null - this.valList[head] = null - this.free.push(head) - } - this.head = this.next[head] - this.keyMap.delete(k) - this.size -- - return head - } - - has (k, { updateAgeOnHas = this.updateAgeOnHas } = {}) { - const index = this.keyMap.get(k) - if (index !== undefined) { - if (!this.isStale(index)) { - if (updateAgeOnHas) { - this.updateItemAge(index) - } - return true - } - } - return false - } - - // like get(), but without any LRU updating or TTL expiration - peek (k, { allowStale = this.allowStale } = {}) { - const index = this.keyMap.get(k) - if (index !== undefined && (allowStale || !this.isStale(index))) { - return this.valList[index] - } - } - - backgroundFetch (k, index, options) { - const v = index === undefined ? undefined : this.valList[index] - if (this.isBackgroundFetch(v)) { - return v - } - const ac = new AC() - const fetchOpts = { - signal: ac.signal, - options, - } - const p = Promise.resolve(this.fetchMethod(k, v, fetchOpts)).then(v => { - if (!ac.signal.aborted) { - this.set(k, v, fetchOpts.options) - } - return v - }) - p.__abortController = ac - p.__staleWhileFetching = v - if (index === undefined) { - this.set(k, p, fetchOpts.options) - index = this.keyMap.get(k) - } else { - this.valList[index] = p - } - return p - } - - isBackgroundFetch (p) { - return p && typeof p === 'object' && typeof p.then === 'function' && - Object.prototype.hasOwnProperty.call(p, '__staleWhileFetching') - } - - // this takes the union of get() and set() opts, because it does both - async fetch (k, { - allowStale = this.allowStale, - updateAgeOnGet = this.updateAgeOnGet, - ttl = this.ttl, - noDisposeOnSet = this.noDisposeOnSet, - size = 0, - sizeCalculation = this.sizeCalculation, - noUpdateTTL = this.noUpdateTTL, - } = {}) { - if (!this.fetchMethod) { - return this.get(k, {allowStale, updateAgeOnGet}) - } - - const options = { - allowStale, - updateAgeOnGet, - ttl, - noDisposeOnSet, - size, - sizeCalculation, - noUpdateTTL, - } - - let index = this.keyMap.get(k) - if (index === undefined) { - return this.backgroundFetch(k, index, options) - } else { - // in cache, maybe already fetching - const v = this.valList[index] - if (this.isBackgroundFetch(v)) { - return allowStale && v.__staleWhileFetching !== undefined - ? v.__staleWhileFetching : v - } - - if (!this.isStale(index)) { - this.moveToTail(index) - if (updateAgeOnGet) { - this.updateItemAge(index) - } - return v - } - - // ok, it is stale, and not already fetching - // refresh the cache. - const p = this.backgroundFetch(k, index, options) - return allowStale && p.__staleWhileFetching !== undefined - ? p.__staleWhileFetching : p - } - } - - get (k, { - allowStale = this.allowStale, - updateAgeOnGet = this.updateAgeOnGet, - } = {}) { - const index = this.keyMap.get(k) - if (index !== undefined) { - const value = this.valList[index] - const fetching = this.isBackgroundFetch(value) - if (this.isStale(index)) { - // delete only if not an in-flight background fetch - if (!fetching) { - this.delete(k) - return allowStale ? value : undefined - } else { - return allowStale ? value.__staleWhileFetching : undefined - } - } else { - // if we're currently fetching it, we don't actually have it yet - // it's not stale, which means this isn't a staleWhileRefetching, - // so we just return undefined - if (fetching) { - return undefined - } - this.moveToTail(index) - if (updateAgeOnGet) { - this.updateItemAge(index) - } - return value - } - } - } - - connect (p, n) { - this.prev[n] = p - this.next[p] = n - } - - moveToTail (index) { - // if tail already, nothing to do - // if head, move head to next[index] - // else - // move next[prev[index]] to next[index] (head has no prev) - // move prev[next[index]] to prev[index] - // prev[index] = tail - // next[tail] = index - // tail = index - if (index !== this.tail) { - if (index === this.head) { - this.head = this.next[index] - } else { - this.connect(this.prev[index], this.next[index]) - } - this.connect(this.tail, index) - this.tail = index - } - } - - get del () { - deprecatedMethod('del', 'delete') - return this.delete - } - delete (k) { - let deleted = false - if (this.size !== 0) { - const index = this.keyMap.get(k) - if (index !== undefined) { - deleted = true - if (this.size === 1) { - this.clear() - } else { - this.removeItemSize(index) - const v = this.valList[index] - if (this.isBackgroundFetch(v)) { - v.__abortController.abort() - } else { - this.dispose(v, k, 'delete') - if (this.disposeAfter) { - this.disposed.push([v, k, 'delete']) - } - } - this.keyMap.delete(k) - this.keyList[index] = null - this.valList[index] = null - if (index === this.tail) { - this.tail = this.prev[index] - } else if (index === this.head) { - this.head = this.next[index] - } else { - this.next[this.prev[index]] = this.next[index] - this.prev[this.next[index]] = this.prev[index] - } - this.size -- - this.free.push(index) - } - } - } - if (this.disposed) { - while (this.disposed.length) { - this.disposeAfter(...this.disposed.shift()) - } - } - return deleted - } - - clear () { - for (const index of this.rindexes({ allowStale: true })) { - const v = this.valList[index] - if (this.isBackgroundFetch(v)) { - v.__abortController.abort() - } else { - const k = this.keyList[index] - this.dispose(v, k, 'delete') - if (this.disposeAfter) { - this.disposed.push([v, k, 'delete']) - } - } - } - - this.keyMap.clear() - this.valList.fill(null) - this.keyList.fill(null) - if (this.ttls) { - this.ttls.fill(0) - this.starts.fill(0) - } - if (this.sizes) { - this.sizes.fill(0) - } - this.head = 0 - this.tail = 0 - this.initialFill = 1 - this.free.length = 0 - this.calculatedSize = 0 - this.size = 0 - if (this.disposed) { - while (this.disposed.length) { - this.disposeAfter(...this.disposed.shift()) - } - } - } - get reset () { - deprecatedMethod('reset', 'clear') - return this.clear - } - - get length () { - deprecatedProperty('length', 'size') - return this.size - } -} - -module.exports = LRUCache diff --git a/tools/node_modules/eslint/node_modules/lru-cache/package.json b/tools/node_modules/eslint/node_modules/lru-cache/package.json deleted file mode 100644 index 32fb9da24e56e9..00000000000000 --- a/tools/node_modules/eslint/node_modules/lru-cache/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "lru-cache", - "description": "A cache object that deletes the least-recently-used items.", - "version": "7.8.1", - "author": "Isaac Z. Schlueter ", - "keywords": [ - "mru", - "lru", - "cache" - ], - "scripts": { - "build": "", - "test": "tap", - "snap": "tap", - "size": "size-limit", - "preversion": "npm test", - "postversion": "npm publish", - "prepublishOnly": "git push origin --follow-tags" - }, - "main": "index.js", - "repository": "git://github.com/isaacs/node-lru-cache.git", - "devDependencies": { - "@size-limit/preset-small-lib": "^7.0.8", - "benchmark": "^2.1.4", - "clock-mock": "^1.0.4", - "heapdump": "^0.3.15", - "size-limit": "^7.0.8", - "tap": "^15.1.6" - }, - "license": "ISC", - "files": [ - "index.js" - ], - "engines": { - "node": ">=12" - }, - "tap": { - "coverage-map": "map.js", - "node-arg": [ - "--expose-gc" - ] - }, - "size-limit": [ - { - "path": "./index.js" - } - ] -} diff --git a/tools/node_modules/eslint/node_modules/node-releases/data/processed/envs.json b/tools/node_modules/eslint/node_modules/node-releases/data/processed/envs.json index 812935d265ad1f..5b3405942c0b90 100644 --- a/tools/node_modules/eslint/node_modules/node-releases/data/processed/envs.json +++ b/tools/node_modules/eslint/node_modules/node-releases/data/processed/envs.json @@ -1 +1 @@ -[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false}] \ No newline at end of file +[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false}] \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/node-releases/data/release-schedule/release-schedule.json b/tools/node_modules/eslint/node_modules/node-releases/data/release-schedule/release-schedule.json index 8db643694c7e1a..faa4870f62ca05 100644 --- a/tools/node_modules/eslint/node_modules/node-releases/data/release-schedule/release-schedule.json +++ b/tools/node_modules/eslint/node_modules/node-releases/data/release-schedule/release-schedule.json @@ -1 +1 @@ -{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2024-04-30","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":""}} \ No newline at end of file +{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2024-04-30","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":""},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":""}} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/node-releases/package.json b/tools/node_modules/eslint/node_modules/node-releases/package.json index 6eeea56ea301e4..4beb879f4e2762 100644 --- a/tools/node_modules/eslint/node_modules/node-releases/package.json +++ b/tools/node_modules/eslint/node_modules/node-releases/package.json @@ -1,6 +1,6 @@ { "name": "node-releases", - "version": "2.0.2", + "version": "2.0.5", "description": "Node.js releases data", "scripts": { "build": "node scripts/build.js" diff --git a/tools/node_modules/eslint/node_modules/semver/bin/semver.js b/tools/node_modules/eslint/node_modules/semver/bin/semver.js index 779b8b0cdc2aa0..8d1b55720e0ab7 100755 --- a/tools/node_modules/eslint/node_modules/semver/bin/semver.js +++ b/tools/node_modules/eslint/node_modules/semver/bin/semver.js @@ -37,8 +37,9 @@ const main = () => { let a = argv.shift() const indexOfEqualSign = a.indexOf('=') if (indexOfEqualSign !== -1) { + const value = a.slice(indexOfEqualSign + 1) a = a.slice(0, indexOfEqualSign) - argv.unshift(a.slice(indexOfEqualSign + 1)) + argv.unshift(value) } switch (a) { case '-rv': case '-rev': case '--rev': case '--reverse': diff --git a/tools/node_modules/eslint/node_modules/semver/classes/semver.js b/tools/node_modules/eslint/node_modules/semver/classes/semver.js index ed81a7ec6cbfe6..af62955194793c 100644 --- a/tools/node_modules/eslint/node_modules/semver/classes/semver.js +++ b/tools/node_modules/eslint/node_modules/semver/classes/semver.js @@ -265,7 +265,7 @@ class SemVer { if (identifier) { // 1.2.0-beta.1 bumps to 1.2.0-beta.2, // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (this.prerelease[0] === identifier) { + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { if (isNaN(this.prerelease[1])) { this.prerelease = [identifier, 0] } diff --git a/tools/node_modules/eslint/node_modules/semver/functions/inc.js b/tools/node_modules/eslint/node_modules/semver/functions/inc.js index aa4d83ab4c2895..62d1da2c4093bf 100644 --- a/tools/node_modules/eslint/node_modules/semver/functions/inc.js +++ b/tools/node_modules/eslint/node_modules/semver/functions/inc.js @@ -7,7 +7,10 @@ const inc = (version, release, options, identifier) => { } try { - return new SemVer(version, options).inc(release, identifier).version + return new SemVer( + version instanceof SemVer ? version.version : version, + options + ).inc(release, identifier).version } catch (er) { return null } diff --git a/tools/node_modules/eslint/node_modules/semver/node_modules/lru-cache/LICENSE b/tools/node_modules/eslint/node_modules/semver/node_modules/lru-cache/LICENSE new file mode 100644 index 00000000000000..19129e315fe593 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/semver/node_modules/lru-cache/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/semver/node_modules/lru-cache/index.js b/tools/node_modules/eslint/node_modules/semver/node_modules/lru-cache/index.js new file mode 100644 index 00000000000000..573b6b85b9779d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/semver/node_modules/lru-cache/index.js @@ -0,0 +1,334 @@ +'use strict' + +// A linked list to keep track of recently-used-ness +const Yallist = require('yallist') + +const MAX = Symbol('max') +const LENGTH = Symbol('length') +const LENGTH_CALCULATOR = Symbol('lengthCalculator') +const ALLOW_STALE = Symbol('allowStale') +const MAX_AGE = Symbol('maxAge') +const DISPOSE = Symbol('dispose') +const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet') +const LRU_LIST = Symbol('lruList') +const CACHE = Symbol('cache') +const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet') + +const naiveLength = () => 1 + +// lruList is a yallist where the head is the youngest +// item, and the tail is the oldest. the list contains the Hit +// objects as the entries. +// Each Hit object has a reference to its Yallist.Node. This +// never changes. +// +// cache is a Map (or PseudoMap) that matches the keys to +// the Yallist.Node object. +class LRUCache { + constructor (options) { + if (typeof options === 'number') + options = { max: options } + + if (!options) + options = {} + + if (options.max && (typeof options.max !== 'number' || options.max < 0)) + throw new TypeError('max must be a non-negative number') + // Kind of weird to have a default max of Infinity, but oh well. + const max = this[MAX] = options.max || Infinity + + const lc = options.length || naiveLength + this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc + this[ALLOW_STALE] = options.stale || false + if (options.maxAge && typeof options.maxAge !== 'number') + throw new TypeError('maxAge must be a number') + this[MAX_AGE] = options.maxAge || 0 + this[DISPOSE] = options.dispose + this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false + this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false + this.reset() + } + + // resize the cache when the max changes. + set max (mL) { + if (typeof mL !== 'number' || mL < 0) + throw new TypeError('max must be a non-negative number') + + this[MAX] = mL || Infinity + trim(this) + } + get max () { + return this[MAX] + } + + set allowStale (allowStale) { + this[ALLOW_STALE] = !!allowStale + } + get allowStale () { + return this[ALLOW_STALE] + } + + set maxAge (mA) { + if (typeof mA !== 'number') + throw new TypeError('maxAge must be a non-negative number') + + this[MAX_AGE] = mA + trim(this) + } + get maxAge () { + return this[MAX_AGE] + } + + // resize the cache when the lengthCalculator changes. + set lengthCalculator (lC) { + if (typeof lC !== 'function') + lC = naiveLength + + if (lC !== this[LENGTH_CALCULATOR]) { + this[LENGTH_CALCULATOR] = lC + this[LENGTH] = 0 + this[LRU_LIST].forEach(hit => { + hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) + this[LENGTH] += hit.length + }) + } + trim(this) + } + get lengthCalculator () { return this[LENGTH_CALCULATOR] } + + get length () { return this[LENGTH] } + get itemCount () { return this[LRU_LIST].length } + + rforEach (fn, thisp) { + thisp = thisp || this + for (let walker = this[LRU_LIST].tail; walker !== null;) { + const prev = walker.prev + forEachStep(this, fn, walker, thisp) + walker = prev + } + } + + forEach (fn, thisp) { + thisp = thisp || this + for (let walker = this[LRU_LIST].head; walker !== null;) { + const next = walker.next + forEachStep(this, fn, walker, thisp) + walker = next + } + } + + keys () { + return this[LRU_LIST].toArray().map(k => k.key) + } + + values () { + return this[LRU_LIST].toArray().map(k => k.value) + } + + reset () { + if (this[DISPOSE] && + this[LRU_LIST] && + this[LRU_LIST].length) { + this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)) + } + + this[CACHE] = new Map() // hash of items by key + this[LRU_LIST] = new Yallist() // list of items in order of use recency + this[LENGTH] = 0 // length of items in the list + } + + dump () { + return this[LRU_LIST].map(hit => + isStale(this, hit) ? false : { + k: hit.key, + v: hit.value, + e: hit.now + (hit.maxAge || 0) + }).toArray().filter(h => h) + } + + dumpLru () { + return this[LRU_LIST] + } + + set (key, value, maxAge) { + maxAge = maxAge || this[MAX_AGE] + + if (maxAge && typeof maxAge !== 'number') + throw new TypeError('maxAge must be a number') + + const now = maxAge ? Date.now() : 0 + const len = this[LENGTH_CALCULATOR](value, key) + + if (this[CACHE].has(key)) { + if (len > this[MAX]) { + del(this, this[CACHE].get(key)) + return false + } + + const node = this[CACHE].get(key) + const item = node.value + + // dispose of the old one before overwriting + // split out into 2 ifs for better coverage tracking + if (this[DISPOSE]) { + if (!this[NO_DISPOSE_ON_SET]) + this[DISPOSE](key, item.value) + } + + item.now = now + item.maxAge = maxAge + item.value = value + this[LENGTH] += len - item.length + item.length = len + this.get(key) + trim(this) + return true + } + + const hit = new Entry(key, value, len, now, maxAge) + + // oversized objects fall out of cache automatically. + if (hit.length > this[MAX]) { + if (this[DISPOSE]) + this[DISPOSE](key, value) + + return false + } + + this[LENGTH] += hit.length + this[LRU_LIST].unshift(hit) + this[CACHE].set(key, this[LRU_LIST].head) + trim(this) + return true + } + + has (key) { + if (!this[CACHE].has(key)) return false + const hit = this[CACHE].get(key).value + return !isStale(this, hit) + } + + get (key) { + return get(this, key, true) + } + + peek (key) { + return get(this, key, false) + } + + pop () { + const node = this[LRU_LIST].tail + if (!node) + return null + + del(this, node) + return node.value + } + + del (key) { + del(this, this[CACHE].get(key)) + } + + load (arr) { + // reset the cache + this.reset() + + const now = Date.now() + // A previous serialized cache has the most recent items first + for (let l = arr.length - 1; l >= 0; l--) { + const hit = arr[l] + const expiresAt = hit.e || 0 + if (expiresAt === 0) + // the item was created without expiration in a non aged cache + this.set(hit.k, hit.v) + else { + const maxAge = expiresAt - now + // dont add already expired items + if (maxAge > 0) { + this.set(hit.k, hit.v, maxAge) + } + } + } + } + + prune () { + this[CACHE].forEach((value, key) => get(this, key, false)) + } +} + +const get = (self, key, doUse) => { + const node = self[CACHE].get(key) + if (node) { + const hit = node.value + if (isStale(self, hit)) { + del(self, node) + if (!self[ALLOW_STALE]) + return undefined + } else { + if (doUse) { + if (self[UPDATE_AGE_ON_GET]) + node.value.now = Date.now() + self[LRU_LIST].unshiftNode(node) + } + } + return hit.value + } +} + +const isStale = (self, hit) => { + if (!hit || (!hit.maxAge && !self[MAX_AGE])) + return false + + const diff = Date.now() - hit.now + return hit.maxAge ? diff > hit.maxAge + : self[MAX_AGE] && (diff > self[MAX_AGE]) +} + +const trim = self => { + if (self[LENGTH] > self[MAX]) { + for (let walker = self[LRU_LIST].tail; + self[LENGTH] > self[MAX] && walker !== null;) { + // We know that we're about to delete this one, and also + // what the next least recently used key will be, so just + // go ahead and set it now. + const prev = walker.prev + del(self, walker) + walker = prev + } + } +} + +const del = (self, node) => { + if (node) { + const hit = node.value + if (self[DISPOSE]) + self[DISPOSE](hit.key, hit.value) + + self[LENGTH] -= hit.length + self[CACHE].delete(hit.key) + self[LRU_LIST].removeNode(node) + } +} + +class Entry { + constructor (key, value, length, now, maxAge) { + this.key = key + this.value = value + this.length = length + this.now = now + this.maxAge = maxAge || 0 + } +} + +const forEachStep = (self, fn, node, thisp) => { + let hit = node.value + if (isStale(self, hit)) { + del(self, node) + if (!self[ALLOW_STALE]) + hit = undefined + } + if (hit) + fn.call(thisp, hit.value, hit.key, self) +} + +module.exports = LRUCache diff --git a/tools/node_modules/eslint/node_modules/semver/node_modules/lru-cache/package.json b/tools/node_modules/eslint/node_modules/semver/node_modules/lru-cache/package.json new file mode 100644 index 00000000000000..43b7502c3e7c79 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/semver/node_modules/lru-cache/package.json @@ -0,0 +1,34 @@ +{ + "name": "lru-cache", + "description": "A cache object that deletes the least-recently-used items.", + "version": "6.0.0", + "author": "Isaac Z. Schlueter ", + "keywords": [ + "mru", + "lru", + "cache" + ], + "scripts": { + "test": "tap", + "snap": "tap", + "preversion": "npm test", + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags" + }, + "main": "index.js", + "repository": "git://github.com/isaacs/node-lru-cache.git", + "devDependencies": { + "benchmark": "^2.1.4", + "tap": "^14.10.7" + }, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "files": [ + "index.js" + ], + "engines": { + "node": ">=10" + } +} diff --git a/tools/node_modules/eslint/node_modules/semver/package.json b/tools/node_modules/eslint/node_modules/semver/package.json index b04e0d328268fd..7898f5902cb737 100644 --- a/tools/node_modules/eslint/node_modules/semver/package.json +++ b/tools/node_modules/eslint/node_modules/semver/package.json @@ -1,6 +1,6 @@ { "name": "semver", - "version": "7.3.6", + "version": "7.3.7", "description": "The semantic version parser used by npm.", "main": "index.js", "scripts": { @@ -18,7 +18,7 @@ }, "devDependencies": { "@npmcli/eslint-config": "^3.0.1", - "@npmcli/template-oss": "3.2.2", + "@npmcli/template-oss": "3.3.2", "tap": "^16.0.0" }, "license": "ISC", @@ -44,15 +44,16 @@ "coverage-map": "map.js" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=10" }, "dependencies": { - "lru-cache": "^7.4.0" + "lru-cache": "^6.0.0" }, "author": "GitHub Inc.", "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "3.2.2", + "version": "3.3.2", + "engines": ">=10", "ciVersions": [ "10.0.0", "10.x", diff --git a/tools/node_modules/eslint/node_modules/source-map/LICENSE b/tools/node_modules/eslint/node_modules/source-map/LICENSE deleted file mode 100644 index ed1b7cf27e97e1..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ - -Copyright (c) 2009-2011, Mozilla Foundation and contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* Neither the names of the Mozilla Foundation nor the names of project - contributors may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/node_modules/eslint/node_modules/source-map/dist/source-map.debug.js b/tools/node_modules/eslint/node_modules/source-map/dist/source-map.debug.js deleted file mode 100644 index b5ab6382abbabc..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/dist/source-map.debug.js +++ /dev/null @@ -1,3091 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["sourceMap"] = factory(); - else - root["sourceMap"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - - /* - * Copyright 2009-2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE.txt or: - * http://opensource.org/licenses/BSD-3-Clause - */ - exports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator; - exports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer; - exports.SourceNode = __webpack_require__(10).SourceNode; - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var base64VLQ = __webpack_require__(2); - var util = __webpack_require__(4); - var ArraySet = __webpack_require__(5).ArraySet; - var MappingList = __webpack_require__(6).MappingList; - - /** - * An instance of the SourceMapGenerator represents a source map which is - * being built incrementally. You may pass an object with the following - * properties: - * - * - file: The filename of the generated source. - * - sourceRoot: A root for all relative URLs in this source map. - */ - function SourceMapGenerator(aArgs) { - if (!aArgs) { - aArgs = {}; - } - this._file = util.getArg(aArgs, 'file', null); - this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); - this._skipValidation = util.getArg(aArgs, 'skipValidation', false); - this._sources = new ArraySet(); - this._names = new ArraySet(); - this._mappings = new MappingList(); - this._sourcesContents = null; - } - - SourceMapGenerator.prototype._version = 3; - - /** - * Creates a new SourceMapGenerator based on a SourceMapConsumer - * - * @param aSourceMapConsumer The SourceMap. - */ - SourceMapGenerator.fromSourceMap = - function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { - var sourceRoot = aSourceMapConsumer.sourceRoot; - var generator = new SourceMapGenerator({ - file: aSourceMapConsumer.file, - sourceRoot: sourceRoot - }); - aSourceMapConsumer.eachMapping(function (mapping) { - var newMapping = { - generated: { - line: mapping.generatedLine, - column: mapping.generatedColumn - } - }; - - if (mapping.source != null) { - newMapping.source = mapping.source; - if (sourceRoot != null) { - newMapping.source = util.relative(sourceRoot, newMapping.source); - } - - newMapping.original = { - line: mapping.originalLine, - column: mapping.originalColumn - }; - - if (mapping.name != null) { - newMapping.name = mapping.name; - } - } - - generator.addMapping(newMapping); - }); - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - generator.setSourceContent(sourceFile, content); - } - }); - return generator; - }; - - /** - * Add a single mapping from original source line and column to the generated - * source's line and column for this source map being created. The mapping - * object should have the following properties: - * - * - generated: An object with the generated line and column positions. - * - original: An object with the original line and column positions. - * - source: The original source file (relative to the sourceRoot). - * - name: An optional original token name for this mapping. - */ - SourceMapGenerator.prototype.addMapping = - function SourceMapGenerator_addMapping(aArgs) { - var generated = util.getArg(aArgs, 'generated'); - var original = util.getArg(aArgs, 'original', null); - var source = util.getArg(aArgs, 'source', null); - var name = util.getArg(aArgs, 'name', null); - - if (!this._skipValidation) { - this._validateMapping(generated, original, source, name); - } - - if (source != null) { - source = String(source); - if (!this._sources.has(source)) { - this._sources.add(source); - } - } - - if (name != null) { - name = String(name); - if (!this._names.has(name)) { - this._names.add(name); - } - } - - this._mappings.add({ - generatedLine: generated.line, - generatedColumn: generated.column, - originalLine: original != null && original.line, - originalColumn: original != null && original.column, - source: source, - name: name - }); - }; - - /** - * Set the source content for a source file. - */ - SourceMapGenerator.prototype.setSourceContent = - function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { - var source = aSourceFile; - if (this._sourceRoot != null) { - source = util.relative(this._sourceRoot, source); - } - - if (aSourceContent != null) { - // Add the source content to the _sourcesContents map. - // Create a new _sourcesContents map if the property is null. - if (!this._sourcesContents) { - this._sourcesContents = Object.create(null); - } - this._sourcesContents[util.toSetString(source)] = aSourceContent; - } else if (this._sourcesContents) { - // Remove the source file from the _sourcesContents map. - // If the _sourcesContents map is empty, set the property to null. - delete this._sourcesContents[util.toSetString(source)]; - if (Object.keys(this._sourcesContents).length === 0) { - this._sourcesContents = null; - } - } - }; - - /** - * Applies the mappings of a sub-source-map for a specific source file to the - * source map being generated. Each mapping to the supplied source file is - * rewritten using the supplied source map. Note: The resolution for the - * resulting mappings is the minimium of this map and the supplied map. - * - * @param aSourceMapConsumer The source map to be applied. - * @param aSourceFile Optional. The filename of the source file. - * If omitted, SourceMapConsumer's file property will be used. - * @param aSourceMapPath Optional. The dirname of the path to the source map - * to be applied. If relative, it is relative to the SourceMapConsumer. - * This parameter is needed when the two source maps aren't in the same - * directory, and the source map to be applied contains relative source - * paths. If so, those relative source paths need to be rewritten - * relative to the SourceMapGenerator. - */ - SourceMapGenerator.prototype.applySourceMap = - function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { - var sourceFile = aSourceFile; - // If aSourceFile is omitted, we will use the file property of the SourceMap - if (aSourceFile == null) { - if (aSourceMapConsumer.file == null) { - throw new Error( - 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + - 'or the source map\'s "file" property. Both were omitted.' - ); - } - sourceFile = aSourceMapConsumer.file; - } - var sourceRoot = this._sourceRoot; - // Make "sourceFile" relative if an absolute Url is passed. - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - // Applying the SourceMap can add and remove items from the sources and - // the names array. - var newSources = new ArraySet(); - var newNames = new ArraySet(); - - // Find mappings for the "sourceFile" - this._mappings.unsortedForEach(function (mapping) { - if (mapping.source === sourceFile && mapping.originalLine != null) { - // Check if it can be mapped by the source map, then update the mapping. - var original = aSourceMapConsumer.originalPositionFor({ - line: mapping.originalLine, - column: mapping.originalColumn - }); - if (original.source != null) { - // Copy mapping - mapping.source = original.source; - if (aSourceMapPath != null) { - mapping.source = util.join(aSourceMapPath, mapping.source) - } - if (sourceRoot != null) { - mapping.source = util.relative(sourceRoot, mapping.source); - } - mapping.originalLine = original.line; - mapping.originalColumn = original.column; - if (original.name != null) { - mapping.name = original.name; - } - } - } - - var source = mapping.source; - if (source != null && !newSources.has(source)) { - newSources.add(source); - } - - var name = mapping.name; - if (name != null && !newNames.has(name)) { - newNames.add(name); - } - - }, this); - this._sources = newSources; - this._names = newNames; - - // Copy sourcesContents of applied map. - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aSourceMapPath != null) { - sourceFile = util.join(aSourceMapPath, sourceFile); - } - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - this.setSourceContent(sourceFile, content); - } - }, this); - }; - - /** - * A mapping can have one of the three levels of data: - * - * 1. Just the generated position. - * 2. The Generated position, original position, and original source. - * 3. Generated and original position, original source, as well as a name - * token. - * - * To maintain consistency, we validate that any new mapping being added falls - * in to one of these categories. - */ - SourceMapGenerator.prototype._validateMapping = - function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, - aName) { - // When aOriginal is truthy but has empty values for .line and .column, - // it is most likely a programmer error. In this case we throw a very - // specific error message to try to guide them the right way. - // For example: https://github.com/Polymer/polymer-bundler/pull/519 - if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { - throw new Error( - 'original.line and original.column are not numbers -- you probably meant to omit ' + - 'the original mapping entirely and only map the generated position. If so, pass ' + - 'null for the original mapping instead of an object with empty or null values.' - ); - } - - if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aGenerated.line > 0 && aGenerated.column >= 0 - && !aOriginal && !aSource && !aName) { - // Case 1. - return; - } - else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aOriginal && 'line' in aOriginal && 'column' in aOriginal - && aGenerated.line > 0 && aGenerated.column >= 0 - && aOriginal.line > 0 && aOriginal.column >= 0 - && aSource) { - // Cases 2 and 3. - return; - } - else { - throw new Error('Invalid mapping: ' + JSON.stringify({ - generated: aGenerated, - source: aSource, - original: aOriginal, - name: aName - })); - } - }; - - /** - * Serialize the accumulated mappings in to the stream of base 64 VLQs - * specified by the source map format. - */ - SourceMapGenerator.prototype._serializeMappings = - function SourceMapGenerator_serializeMappings() { - var previousGeneratedColumn = 0; - var previousGeneratedLine = 1; - var previousOriginalColumn = 0; - var previousOriginalLine = 0; - var previousName = 0; - var previousSource = 0; - var result = ''; - var next; - var mapping; - var nameIdx; - var sourceIdx; - - var mappings = this._mappings.toArray(); - for (var i = 0, len = mappings.length; i < len; i++) { - mapping = mappings[i]; - next = '' - - if (mapping.generatedLine !== previousGeneratedLine) { - previousGeneratedColumn = 0; - while (mapping.generatedLine !== previousGeneratedLine) { - next += ';'; - previousGeneratedLine++; - } - } - else { - if (i > 0) { - if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { - continue; - } - next += ','; - } - } - - next += base64VLQ.encode(mapping.generatedColumn - - previousGeneratedColumn); - previousGeneratedColumn = mapping.generatedColumn; - - if (mapping.source != null) { - sourceIdx = this._sources.indexOf(mapping.source); - next += base64VLQ.encode(sourceIdx - previousSource); - previousSource = sourceIdx; - - // lines are stored 0-based in SourceMap spec version 3 - next += base64VLQ.encode(mapping.originalLine - 1 - - previousOriginalLine); - previousOriginalLine = mapping.originalLine - 1; - - next += base64VLQ.encode(mapping.originalColumn - - previousOriginalColumn); - previousOriginalColumn = mapping.originalColumn; - - if (mapping.name != null) { - nameIdx = this._names.indexOf(mapping.name); - next += base64VLQ.encode(nameIdx - previousName); - previousName = nameIdx; - } - } - - result += next; - } - - return result; - }; - - SourceMapGenerator.prototype._generateSourcesContent = - function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { - return aSources.map(function (source) { - if (!this._sourcesContents) { - return null; - } - if (aSourceRoot != null) { - source = util.relative(aSourceRoot, source); - } - var key = util.toSetString(source); - return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) - ? this._sourcesContents[key] - : null; - }, this); - }; - - /** - * Externalize the source map. - */ - SourceMapGenerator.prototype.toJSON = - function SourceMapGenerator_toJSON() { - var map = { - version: this._version, - sources: this._sources.toArray(), - names: this._names.toArray(), - mappings: this._serializeMappings() - }; - if (this._file != null) { - map.file = this._file; - } - if (this._sourceRoot != null) { - map.sourceRoot = this._sourceRoot; - } - if (this._sourcesContents) { - map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); - } - - return map; - }; - - /** - * Render the source map being generated to a string. - */ - SourceMapGenerator.prototype.toString = - function SourceMapGenerator_toString() { - return JSON.stringify(this.toJSON()); - }; - - exports.SourceMapGenerator = SourceMapGenerator; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - * - * Based on the Base 64 VLQ implementation in Closure Compiler: - * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java - * - * Copyright 2011 The Closure Compiler Authors. All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - var base64 = __webpack_require__(3); - - // A single base 64 digit can contain 6 bits of data. For the base 64 variable - // length quantities we use in the source map spec, the first bit is the sign, - // the next four bits are the actual value, and the 6th bit is the - // continuation bit. The continuation bit tells us whether there are more - // digits in this value following this digit. - // - // Continuation - // | Sign - // | | - // V V - // 101011 - - var VLQ_BASE_SHIFT = 5; - - // binary: 100000 - var VLQ_BASE = 1 << VLQ_BASE_SHIFT; - - // binary: 011111 - var VLQ_BASE_MASK = VLQ_BASE - 1; - - // binary: 100000 - var VLQ_CONTINUATION_BIT = VLQ_BASE; - - /** - * Converts from a two-complement value to a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) - * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) - */ - function toVLQSigned(aValue) { - return aValue < 0 - ? ((-aValue) << 1) + 1 - : (aValue << 1) + 0; - } - - /** - * Converts to a two-complement value from a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 - * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 - */ - function fromVLQSigned(aValue) { - var isNegative = (aValue & 1) === 1; - var shifted = aValue >> 1; - return isNegative - ? -shifted - : shifted; - } - - /** - * Returns the base 64 VLQ encoded value. - */ - exports.encode = function base64VLQ_encode(aValue) { - var encoded = ""; - var digit; - - var vlq = toVLQSigned(aValue); - - do { - digit = vlq & VLQ_BASE_MASK; - vlq >>>= VLQ_BASE_SHIFT; - if (vlq > 0) { - // There are still more digits in this value, so we must make sure the - // continuation bit is marked. - digit |= VLQ_CONTINUATION_BIT; - } - encoded += base64.encode(digit); - } while (vlq > 0); - - return encoded; - }; - - /** - * Decodes the next base 64 VLQ value from the given string and returns the - * value and the rest of the string via the out parameter. - */ - exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { - var strLen = aStr.length; - var result = 0; - var shift = 0; - var continuation, digit; - - do { - if (aIndex >= strLen) { - throw new Error("Expected more digits in base 64 VLQ value."); - } - - digit = base64.decode(aStr.charCodeAt(aIndex++)); - if (digit === -1) { - throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); - } - - continuation = !!(digit & VLQ_CONTINUATION_BIT); - digit &= VLQ_BASE_MASK; - result = result + (digit << shift); - shift += VLQ_BASE_SHIFT; - } while (continuation); - - aOutParam.value = fromVLQSigned(result); - aOutParam.rest = aIndex; - }; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); - - /** - * Encode an integer in the range of 0 to 63 to a single base 64 digit. - */ - exports.encode = function (number) { - if (0 <= number && number < intToCharMap.length) { - return intToCharMap[number]; - } - throw new TypeError("Must be between 0 and 63: " + number); - }; - - /** - * Decode a single base 64 character code digit to an integer. Returns -1 on - * failure. - */ - exports.decode = function (charCode) { - var bigA = 65; // 'A' - var bigZ = 90; // 'Z' - - var littleA = 97; // 'a' - var littleZ = 122; // 'z' - - var zero = 48; // '0' - var nine = 57; // '9' - - var plus = 43; // '+' - var slash = 47; // '/' - - var littleOffset = 26; - var numberOffset = 52; - - // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ - if (bigA <= charCode && charCode <= bigZ) { - return (charCode - bigA); - } - - // 26 - 51: abcdefghijklmnopqrstuvwxyz - if (littleA <= charCode && charCode <= littleZ) { - return (charCode - littleA + littleOffset); - } - - // 52 - 61: 0123456789 - if (zero <= charCode && charCode <= nine) { - return (charCode - zero + numberOffset); - } - - // 62: + - if (charCode == plus) { - return 62; - } - - // 63: / - if (charCode == slash) { - return 63; - } - - // Invalid base64 digit. - return -1; - }; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - /** - * This is a helper function for getting values from parameter/options - * objects. - * - * @param args The object we are extracting values from - * @param name The name of the property we are getting. - * @param defaultValue An optional value to return if the property is missing - * from the object. If this is not specified and the property is missing, an - * error will be thrown. - */ - function getArg(aArgs, aName, aDefaultValue) { - if (aName in aArgs) { - return aArgs[aName]; - } else if (arguments.length === 3) { - return aDefaultValue; - } else { - throw new Error('"' + aName + '" is a required argument.'); - } - } - exports.getArg = getArg; - - var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/; - var dataUrlRegexp = /^data:.+\,.+$/; - - function urlParse(aUrl) { - var match = aUrl.match(urlRegexp); - if (!match) { - return null; - } - return { - scheme: match[1], - auth: match[2], - host: match[3], - port: match[4], - path: match[5] - }; - } - exports.urlParse = urlParse; - - function urlGenerate(aParsedUrl) { - var url = ''; - if (aParsedUrl.scheme) { - url += aParsedUrl.scheme + ':'; - } - url += '//'; - if (aParsedUrl.auth) { - url += aParsedUrl.auth + '@'; - } - if (aParsedUrl.host) { - url += aParsedUrl.host; - } - if (aParsedUrl.port) { - url += ":" + aParsedUrl.port - } - if (aParsedUrl.path) { - url += aParsedUrl.path; - } - return url; - } - exports.urlGenerate = urlGenerate; - - /** - * Normalizes a path, or the path portion of a URL: - * - * - Replaces consecutive slashes with one slash. - * - Removes unnecessary '.' parts. - * - Removes unnecessary '/..' parts. - * - * Based on code in the Node.js 'path' core module. - * - * @param aPath The path or url to normalize. - */ - function normalize(aPath) { - var path = aPath; - var url = urlParse(aPath); - if (url) { - if (!url.path) { - return aPath; - } - path = url.path; - } - var isAbsolute = exports.isAbsolute(path); - - var parts = path.split(/\/+/); - for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { - part = parts[i]; - if (part === '.') { - parts.splice(i, 1); - } else if (part === '..') { - up++; - } else if (up > 0) { - if (part === '') { - // The first part is blank if the path is absolute. Trying to go - // above the root is a no-op. Therefore we can remove all '..' parts - // directly after the root. - parts.splice(i + 1, up); - up = 0; - } else { - parts.splice(i, 2); - up--; - } - } - } - path = parts.join('/'); - - if (path === '') { - path = isAbsolute ? '/' : '.'; - } - - if (url) { - url.path = path; - return urlGenerate(url); - } - return path; - } - exports.normalize = normalize; - - /** - * Joins two paths/URLs. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be joined with the root. - * - * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a - * scheme-relative URL: Then the scheme of aRoot, if any, is prepended - * first. - * - Otherwise aPath is a path. If aRoot is a URL, then its path portion - * is updated with the result and aRoot is returned. Otherwise the result - * is returned. - * - If aPath is absolute, the result is aPath. - * - Otherwise the two paths are joined with a slash. - * - Joining for example 'http://' and 'www.example.com' is also supported. - */ - function join(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; - } - if (aPath === "") { - aPath = "."; - } - var aPathUrl = urlParse(aPath); - var aRootUrl = urlParse(aRoot); - if (aRootUrl) { - aRoot = aRootUrl.path || '/'; - } - - // `join(foo, '//www.example.org')` - if (aPathUrl && !aPathUrl.scheme) { - if (aRootUrl) { - aPathUrl.scheme = aRootUrl.scheme; - } - return urlGenerate(aPathUrl); - } - - if (aPathUrl || aPath.match(dataUrlRegexp)) { - return aPath; - } - - // `join('http://', 'www.example.com')` - if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { - aRootUrl.host = aPath; - return urlGenerate(aRootUrl); - } - - var joined = aPath.charAt(0) === '/' - ? aPath - : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); - - if (aRootUrl) { - aRootUrl.path = joined; - return urlGenerate(aRootUrl); - } - return joined; - } - exports.join = join; - - exports.isAbsolute = function (aPath) { - return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp); - }; - - /** - * Make a path relative to a URL or another path. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be made relative to aRoot. - */ - function relative(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; - } - - aRoot = aRoot.replace(/\/$/, ''); - - // It is possible for the path to be above the root. In this case, simply - // checking whether the root is a prefix of the path won't work. Instead, we - // need to remove components from the root one by one, until either we find - // a prefix that fits, or we run out of components to remove. - var level = 0; - while (aPath.indexOf(aRoot + '/') !== 0) { - var index = aRoot.lastIndexOf("/"); - if (index < 0) { - return aPath; - } - - // If the only part of the root that is left is the scheme (i.e. http://, - // file:///, etc.), one or more slashes (/), or simply nothing at all, we - // have exhausted all components, so the path is not relative to the root. - aRoot = aRoot.slice(0, index); - if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { - return aPath; - } - - ++level; - } - - // Make sure we add a "../" for each component we removed from the root. - return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); - } - exports.relative = relative; - - var supportsNullProto = (function () { - var obj = Object.create(null); - return !('__proto__' in obj); - }()); - - function identity (s) { - return s; - } - - /** - * Because behavior goes wacky when you set `__proto__` on objects, we - * have to prefix all the strings in our set with an arbitrary character. - * - * See https://github.com/mozilla/source-map/pull/31 and - * https://github.com/mozilla/source-map/issues/30 - * - * @param String aStr - */ - function toSetString(aStr) { - if (isProtoString(aStr)) { - return '$' + aStr; - } - - return aStr; - } - exports.toSetString = supportsNullProto ? identity : toSetString; - - function fromSetString(aStr) { - if (isProtoString(aStr)) { - return aStr.slice(1); - } - - return aStr; - } - exports.fromSetString = supportsNullProto ? identity : fromSetString; - - function isProtoString(s) { - if (!s) { - return false; - } - - var length = s.length; - - if (length < 9 /* "__proto__".length */) { - return false; - } - - if (s.charCodeAt(length - 1) !== 95 /* '_' */ || - s.charCodeAt(length - 2) !== 95 /* '_' */ || - s.charCodeAt(length - 3) !== 111 /* 'o' */ || - s.charCodeAt(length - 4) !== 116 /* 't' */ || - s.charCodeAt(length - 5) !== 111 /* 'o' */ || - s.charCodeAt(length - 6) !== 114 /* 'r' */ || - s.charCodeAt(length - 7) !== 112 /* 'p' */ || - s.charCodeAt(length - 8) !== 95 /* '_' */ || - s.charCodeAt(length - 9) !== 95 /* '_' */) { - return false; - } - - for (var i = length - 10; i >= 0; i--) { - if (s.charCodeAt(i) !== 36 /* '$' */) { - return false; - } - } - - return true; - } - - /** - * Comparator between two mappings where the original positions are compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same original source/line/column, but different generated - * line and column the same. Useful when searching for a mapping with a - * stubbed out mapping. - */ - function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { - var cmp = mappingA.source - mappingB.source; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0 || onlyCompareOriginal) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - return mappingA.name - mappingB.name; - } - exports.compareByOriginalPositions = compareByOriginalPositions; - - /** - * Comparator between two mappings with deflated source and name indices where - * the generated positions are compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same generated line and column, but different - * source/name/original line and column the same. Useful when searching for a - * mapping with a stubbed out mapping. - */ - function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { - var cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0 || onlyCompareGenerated) { - return cmp; - } - - cmp = mappingA.source - mappingB.source; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0) { - return cmp; - } - - return mappingA.name - mappingB.name; - } - exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; - - function strcmp(aStr1, aStr2) { - if (aStr1 === aStr2) { - return 0; - } - - if (aStr1 > aStr2) { - return 1; - } - - return -1; - } - - /** - * Comparator between two mappings with inflated source and name strings where - * the generated positions are compared. - */ - function compareByGeneratedPositionsInflated(mappingA, mappingB) { - var cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0) { - return cmp; - } - - cmp = strcmp(mappingA.source, mappingB.source); - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0) { - return cmp; - } - - return strcmp(mappingA.name, mappingB.name); - } - exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var util = __webpack_require__(4); - var has = Object.prototype.hasOwnProperty; - var hasNativeMap = typeof Map !== "undefined"; - - /** - * A data structure which is a combination of an array and a set. Adding a new - * member is O(1), testing for membership is O(1), and finding the index of an - * element is O(1). Removing elements from the set is not supported. Only - * strings are supported for membership. - */ - function ArraySet() { - this._array = []; - this._set = hasNativeMap ? new Map() : Object.create(null); - } - - /** - * Static method for creating ArraySet instances from an existing array. - */ - ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { - var set = new ArraySet(); - for (var i = 0, len = aArray.length; i < len; i++) { - set.add(aArray[i], aAllowDuplicates); - } - return set; - }; - - /** - * Return how many unique items are in this ArraySet. If duplicates have been - * added, than those do not count towards the size. - * - * @returns Number - */ - ArraySet.prototype.size = function ArraySet_size() { - return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; - }; - - /** - * Add the given string to this set. - * - * @param String aStr - */ - ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { - var sStr = hasNativeMap ? aStr : util.toSetString(aStr); - var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); - var idx = this._array.length; - if (!isDuplicate || aAllowDuplicates) { - this._array.push(aStr); - } - if (!isDuplicate) { - if (hasNativeMap) { - this._set.set(aStr, idx); - } else { - this._set[sStr] = idx; - } - } - }; - - /** - * Is the given string a member of this set? - * - * @param String aStr - */ - ArraySet.prototype.has = function ArraySet_has(aStr) { - if (hasNativeMap) { - return this._set.has(aStr); - } else { - var sStr = util.toSetString(aStr); - return has.call(this._set, sStr); - } - }; - - /** - * What is the index of the given string in the array? - * - * @param String aStr - */ - ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { - if (hasNativeMap) { - var idx = this._set.get(aStr); - if (idx >= 0) { - return idx; - } - } else { - var sStr = util.toSetString(aStr); - if (has.call(this._set, sStr)) { - return this._set[sStr]; - } - } - - throw new Error('"' + aStr + '" is not in the set.'); - }; - - /** - * What is the element at the given index? - * - * @param Number aIdx - */ - ArraySet.prototype.at = function ArraySet_at(aIdx) { - if (aIdx >= 0 && aIdx < this._array.length) { - return this._array[aIdx]; - } - throw new Error('No element indexed by ' + aIdx); - }; - - /** - * Returns the array representation of this set (which has the proper indices - * indicated by indexOf). Note that this is a copy of the internal array used - * for storing the members so that no one can mess with internal state. - */ - ArraySet.prototype.toArray = function ArraySet_toArray() { - return this._array.slice(); - }; - - exports.ArraySet = ArraySet; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2014 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var util = __webpack_require__(4); - - /** - * Determine whether mappingB is after mappingA with respect to generated - * position. - */ - function generatedPositionAfter(mappingA, mappingB) { - // Optimized for most common case - var lineA = mappingA.generatedLine; - var lineB = mappingB.generatedLine; - var columnA = mappingA.generatedColumn; - var columnB = mappingB.generatedColumn; - return lineB > lineA || lineB == lineA && columnB >= columnA || - util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; - } - - /** - * A data structure to provide a sorted view of accumulated mappings in a - * performance conscious manner. It trades a neglibable overhead in general - * case for a large speedup in case of mappings being added in order. - */ - function MappingList() { - this._array = []; - this._sorted = true; - // Serves as infimum - this._last = {generatedLine: -1, generatedColumn: 0}; - } - - /** - * Iterate through internal items. This method takes the same arguments that - * `Array.prototype.forEach` takes. - * - * NOTE: The order of the mappings is NOT guaranteed. - */ - MappingList.prototype.unsortedForEach = - function MappingList_forEach(aCallback, aThisArg) { - this._array.forEach(aCallback, aThisArg); - }; - - /** - * Add the given source mapping. - * - * @param Object aMapping - */ - MappingList.prototype.add = function MappingList_add(aMapping) { - if (generatedPositionAfter(this._last, aMapping)) { - this._last = aMapping; - this._array.push(aMapping); - } else { - this._sorted = false; - this._array.push(aMapping); - } - }; - - /** - * Returns the flat, sorted array of mappings. The mappings are sorted by - * generated position. - * - * WARNING: This method returns internal data without copying, for - * performance. The return value must NOT be mutated, and should be treated as - * an immutable borrow. If you want to take ownership, you must make your own - * copy. - */ - MappingList.prototype.toArray = function MappingList_toArray() { - if (!this._sorted) { - this._array.sort(util.compareByGeneratedPositionsInflated); - this._sorted = true; - } - return this._array; - }; - - exports.MappingList = MappingList; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var util = __webpack_require__(4); - var binarySearch = __webpack_require__(8); - var ArraySet = __webpack_require__(5).ArraySet; - var base64VLQ = __webpack_require__(2); - var quickSort = __webpack_require__(9).quickSort; - - function SourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - return sourceMap.sections != null - ? new IndexedSourceMapConsumer(sourceMap) - : new BasicSourceMapConsumer(sourceMap); - } - - SourceMapConsumer.fromSourceMap = function(aSourceMap) { - return BasicSourceMapConsumer.fromSourceMap(aSourceMap); - } - - /** - * The version of the source mapping spec that we are consuming. - */ - SourceMapConsumer.prototype._version = 3; - - // `__generatedMappings` and `__originalMappings` are arrays that hold the - // parsed mapping coordinates from the source map's "mappings" attribute. They - // are lazily instantiated, accessed via the `_generatedMappings` and - // `_originalMappings` getters respectively, and we only parse the mappings - // and create these arrays once queried for a source location. We jump through - // these hoops because there can be many thousands of mappings, and parsing - // them is expensive, so we only want to do it if we must. - // - // Each object in the arrays is of the form: - // - // { - // generatedLine: The line number in the generated code, - // generatedColumn: The column number in the generated code, - // source: The path to the original source file that generated this - // chunk of code, - // originalLine: The line number in the original source that - // corresponds to this chunk of generated code, - // originalColumn: The column number in the original source that - // corresponds to this chunk of generated code, - // name: The name of the original symbol which generated this chunk of - // code. - // } - // - // All properties except for `generatedLine` and `generatedColumn` can be - // `null`. - // - // `_generatedMappings` is ordered by the generated positions. - // - // `_originalMappings` is ordered by the original positions. - - SourceMapConsumer.prototype.__generatedMappings = null; - Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { - get: function () { - if (!this.__generatedMappings) { - this._parseMappings(this._mappings, this.sourceRoot); - } - - return this.__generatedMappings; - } - }); - - SourceMapConsumer.prototype.__originalMappings = null; - Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { - get: function () { - if (!this.__originalMappings) { - this._parseMappings(this._mappings, this.sourceRoot); - } - - return this.__originalMappings; - } - }); - - SourceMapConsumer.prototype._charIsMappingSeparator = - function SourceMapConsumer_charIsMappingSeparator(aStr, index) { - var c = aStr.charAt(index); - return c === ";" || c === ","; - }; - - /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ - SourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - throw new Error("Subclasses must implement _parseMappings"); - }; - - SourceMapConsumer.GENERATED_ORDER = 1; - SourceMapConsumer.ORIGINAL_ORDER = 2; - - SourceMapConsumer.GREATEST_LOWER_BOUND = 1; - SourceMapConsumer.LEAST_UPPER_BOUND = 2; - - /** - * Iterate over each mapping between an original source/line/column and a - * generated line/column in this source map. - * - * @param Function aCallback - * The function that is called with each mapping. - * @param Object aContext - * Optional. If specified, this object will be the value of `this` every - * time that `aCallback` is called. - * @param aOrder - * Either `SourceMapConsumer.GENERATED_ORDER` or - * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to - * iterate over the mappings sorted by the generated file's line/column - * order or the original's source/line/column order, respectively. Defaults to - * `SourceMapConsumer.GENERATED_ORDER`. - */ - SourceMapConsumer.prototype.eachMapping = - function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { - var context = aContext || null; - var order = aOrder || SourceMapConsumer.GENERATED_ORDER; - - var mappings; - switch (order) { - case SourceMapConsumer.GENERATED_ORDER: - mappings = this._generatedMappings; - break; - case SourceMapConsumer.ORIGINAL_ORDER: - mappings = this._originalMappings; - break; - default: - throw new Error("Unknown order of iteration."); - } - - var sourceRoot = this.sourceRoot; - mappings.map(function (mapping) { - var source = mapping.source === null ? null : this._sources.at(mapping.source); - if (source != null && sourceRoot != null) { - source = util.join(sourceRoot, source); - } - return { - source: source, - generatedLine: mapping.generatedLine, - generatedColumn: mapping.generatedColumn, - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: mapping.name === null ? null : this._names.at(mapping.name) - }; - }, this).forEach(aCallback, context); - }; - - /** - * Returns all generated line and column information for the original source, - * line, and column provided. If no column is provided, returns all mappings - * corresponding to a either the line we are searching for or the next - * closest line that has any mappings. Otherwise, returns all mappings - * corresponding to the given line and either the column we are searching for - * or the next closest column that has any offsets. - * - * The only argument is an object with the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: Optional. the column number in the original source. - * - * and an array of objects is returned, each with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ - SourceMapConsumer.prototype.allGeneratedPositionsFor = - function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { - var line = util.getArg(aArgs, 'line'); - - // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping - // returns the index of the closest mapping less than the needle. By - // setting needle.originalColumn to 0, we thus find the last mapping for - // the given line, provided such a mapping exists. - var needle = { - source: util.getArg(aArgs, 'source'), - originalLine: line, - originalColumn: util.getArg(aArgs, 'column', 0) - }; - - if (this.sourceRoot != null) { - needle.source = util.relative(this.sourceRoot, needle.source); - } - if (!this._sources.has(needle.source)) { - return []; - } - needle.source = this._sources.indexOf(needle.source); - - var mappings = []; - - var index = this._findMapping(needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions, - binarySearch.LEAST_UPPER_BOUND); - if (index >= 0) { - var mapping = this._originalMappings[index]; - - if (aArgs.column === undefined) { - var originalLine = mapping.originalLine; - - // Iterate until either we run out of mappings, or we run into - // a mapping for a different line than the one we found. Since - // mappings are sorted, this is guaranteed to find all mappings for - // the line we found. - while (mapping && mapping.originalLine === originalLine) { - mappings.push({ - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }); - - mapping = this._originalMappings[++index]; - } - } else { - var originalColumn = mapping.originalColumn; - - // Iterate until either we run out of mappings, or we run into - // a mapping for a different line than the one we were searching for. - // Since mappings are sorted, this is guaranteed to find all mappings for - // the line we are searching for. - while (mapping && - mapping.originalLine === line && - mapping.originalColumn == originalColumn) { - mappings.push({ - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }); - - mapping = this._originalMappings[++index]; - } - } - } - - return mappings; - }; - - exports.SourceMapConsumer = SourceMapConsumer; - - /** - * A BasicSourceMapConsumer instance represents a parsed source map which we can - * query for information about the original file positions by giving it a file - * position in the generated source. - * - * The only parameter is the raw source map (either as a JSON string, or - * already parsed to an object). According to the spec, source maps have the - * following attributes: - * - * - version: Which version of the source map spec this map is following. - * - sources: An array of URLs to the original source files. - * - names: An array of identifiers which can be referrenced by individual mappings. - * - sourceRoot: Optional. The URL root from which all sources are relative. - * - sourcesContent: Optional. An array of contents of the original source files. - * - mappings: A string of base64 VLQs which contain the actual mappings. - * - file: Optional. The generated file this source map is associated with. - * - * Here is an example source map, taken from the source map spec[0]: - * - * { - * version : 3, - * file: "out.js", - * sourceRoot : "", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AA,AB;;ABCDE;" - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# - */ - function BasicSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - var version = util.getArg(sourceMap, 'version'); - var sources = util.getArg(sourceMap, 'sources'); - // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which - // requires the array) to play nice here. - var names = util.getArg(sourceMap, 'names', []); - var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); - var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); - var mappings = util.getArg(sourceMap, 'mappings'); - var file = util.getArg(sourceMap, 'file', null); - - // Once again, Sass deviates from the spec and supplies the version as a - // string rather than a number, so we use loose equality checking here. - if (version != this._version) { - throw new Error('Unsupported version: ' + version); - } - - sources = sources - .map(String) - // Some source maps produce relative source paths like "./foo.js" instead of - // "foo.js". Normalize these first so that future comparisons will succeed. - // See bugzil.la/1090768. - .map(util.normalize) - // Always ensure that absolute sources are internally stored relative to - // the source root, if the source root is absolute. Not doing this would - // be particularly problematic when the source root is a prefix of the - // source (valid, but why??). See github issue #199 and bugzil.la/1188982. - .map(function (source) { - return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) - ? util.relative(sourceRoot, source) - : source; - }); - - // Pass `true` below to allow duplicate names and sources. While source maps - // are intended to be compressed and deduplicated, the TypeScript compiler - // sometimes generates source maps with duplicates in them. See Github issue - // #72 and bugzil.la/889492. - this._names = ArraySet.fromArray(names.map(String), true); - this._sources = ArraySet.fromArray(sources, true); - - this.sourceRoot = sourceRoot; - this.sourcesContent = sourcesContent; - this._mappings = mappings; - this.file = file; - } - - BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); - BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; - - /** - * Create a BasicSourceMapConsumer from a SourceMapGenerator. - * - * @param SourceMapGenerator aSourceMap - * The source map that will be consumed. - * @returns BasicSourceMapConsumer - */ - BasicSourceMapConsumer.fromSourceMap = - function SourceMapConsumer_fromSourceMap(aSourceMap) { - var smc = Object.create(BasicSourceMapConsumer.prototype); - - var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); - var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); - smc.sourceRoot = aSourceMap._sourceRoot; - smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), - smc.sourceRoot); - smc.file = aSourceMap._file; - - // Because we are modifying the entries (by converting string sources and - // names to indices into the sources and names ArraySets), we have to make - // a copy of the entry or else bad things happen. Shared mutable state - // strikes again! See github issue #191. - - var generatedMappings = aSourceMap._mappings.toArray().slice(); - var destGeneratedMappings = smc.__generatedMappings = []; - var destOriginalMappings = smc.__originalMappings = []; - - for (var i = 0, length = generatedMappings.length; i < length; i++) { - var srcMapping = generatedMappings[i]; - var destMapping = new Mapping; - destMapping.generatedLine = srcMapping.generatedLine; - destMapping.generatedColumn = srcMapping.generatedColumn; - - if (srcMapping.source) { - destMapping.source = sources.indexOf(srcMapping.source); - destMapping.originalLine = srcMapping.originalLine; - destMapping.originalColumn = srcMapping.originalColumn; - - if (srcMapping.name) { - destMapping.name = names.indexOf(srcMapping.name); - } - - destOriginalMappings.push(destMapping); - } - - destGeneratedMappings.push(destMapping); - } - - quickSort(smc.__originalMappings, util.compareByOriginalPositions); - - return smc; - }; - - /** - * The version of the source mapping spec that we are consuming. - */ - BasicSourceMapConsumer.prototype._version = 3; - - /** - * The list of original sources. - */ - Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { - get: function () { - return this._sources.toArray().map(function (s) { - return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s; - }, this); - } - }); - - /** - * Provide the JIT with a nice shape / hidden class. - */ - function Mapping() { - this.generatedLine = 0; - this.generatedColumn = 0; - this.source = null; - this.originalLine = null; - this.originalColumn = null; - this.name = null; - } - - /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ - BasicSourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - var generatedLine = 1; - var previousGeneratedColumn = 0; - var previousOriginalLine = 0; - var previousOriginalColumn = 0; - var previousSource = 0; - var previousName = 0; - var length = aStr.length; - var index = 0; - var cachedSegments = {}; - var temp = {}; - var originalMappings = []; - var generatedMappings = []; - var mapping, str, segment, end, value; - - while (index < length) { - if (aStr.charAt(index) === ';') { - generatedLine++; - index++; - previousGeneratedColumn = 0; - } - else if (aStr.charAt(index) === ',') { - index++; - } - else { - mapping = new Mapping(); - mapping.generatedLine = generatedLine; - - // Because each offset is encoded relative to the previous one, - // many segments often have the same encoding. We can exploit this - // fact by caching the parsed variable length fields of each segment, - // allowing us to avoid a second parse if we encounter the same - // segment again. - for (end = index; end < length; end++) { - if (this._charIsMappingSeparator(aStr, end)) { - break; - } - } - str = aStr.slice(index, end); - - segment = cachedSegments[str]; - if (segment) { - index += str.length; - } else { - segment = []; - while (index < end) { - base64VLQ.decode(aStr, index, temp); - value = temp.value; - index = temp.rest; - segment.push(value); - } - - if (segment.length === 2) { - throw new Error('Found a source, but no line and column'); - } - - if (segment.length === 3) { - throw new Error('Found a source and line, but no column'); - } - - cachedSegments[str] = segment; - } - - // Generated column. - mapping.generatedColumn = previousGeneratedColumn + segment[0]; - previousGeneratedColumn = mapping.generatedColumn; - - if (segment.length > 1) { - // Original source. - mapping.source = previousSource + segment[1]; - previousSource += segment[1]; - - // Original line. - mapping.originalLine = previousOriginalLine + segment[2]; - previousOriginalLine = mapping.originalLine; - // Lines are stored 0-based - mapping.originalLine += 1; - - // Original column. - mapping.originalColumn = previousOriginalColumn + segment[3]; - previousOriginalColumn = mapping.originalColumn; - - if (segment.length > 4) { - // Original name. - mapping.name = previousName + segment[4]; - previousName += segment[4]; - } - } - - generatedMappings.push(mapping); - if (typeof mapping.originalLine === 'number') { - originalMappings.push(mapping); - } - } - } - - quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); - this.__generatedMappings = generatedMappings; - - quickSort(originalMappings, util.compareByOriginalPositions); - this.__originalMappings = originalMappings; - }; - - /** - * Find the mapping that best matches the hypothetical "needle" mapping that - * we are searching for in the given "haystack" of mappings. - */ - BasicSourceMapConsumer.prototype._findMapping = - function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, - aColumnName, aComparator, aBias) { - // To return the position we are searching for, we must first find the - // mapping for the given position and then return the opposite position it - // points to. Because the mappings are sorted, we can use binary search to - // find the best mapping. - - if (aNeedle[aLineName] <= 0) { - throw new TypeError('Line must be greater than or equal to 1, got ' - + aNeedle[aLineName]); - } - if (aNeedle[aColumnName] < 0) { - throw new TypeError('Column must be greater than or equal to 0, got ' - + aNeedle[aColumnName]); - } - - return binarySearch.search(aNeedle, aMappings, aComparator, aBias); - }; - - /** - * Compute the last column for each generated mapping. The last column is - * inclusive. - */ - BasicSourceMapConsumer.prototype.computeColumnSpans = - function SourceMapConsumer_computeColumnSpans() { - for (var index = 0; index < this._generatedMappings.length; ++index) { - var mapping = this._generatedMappings[index]; - - // Mappings do not contain a field for the last generated columnt. We - // can come up with an optimistic estimate, however, by assuming that - // mappings are contiguous (i.e. given two consecutive mappings, the - // first mapping ends where the second one starts). - if (index + 1 < this._generatedMappings.length) { - var nextMapping = this._generatedMappings[index + 1]; - - if (mapping.generatedLine === nextMapping.generatedLine) { - mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; - continue; - } - } - - // The last mapping for each line spans the entire line. - mapping.lastGeneratedColumn = Infinity; - } - }; - - /** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or - * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. - * - * and an object is returned with the following properties: - * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. - */ - BasicSourceMapConsumer.prototype.originalPositionFor = - function SourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - - var index = this._findMapping( - needle, - this._generatedMappings, - "generatedLine", - "generatedColumn", - util.compareByGeneratedPositionsDeflated, - util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) - ); - - if (index >= 0) { - var mapping = this._generatedMappings[index]; - - if (mapping.generatedLine === needle.generatedLine) { - var source = util.getArg(mapping, 'source', null); - if (source !== null) { - source = this._sources.at(source); - if (this.sourceRoot != null) { - source = util.join(this.sourceRoot, source); - } - } - var name = util.getArg(mapping, 'name', null); - if (name !== null) { - name = this._names.at(name); - } - return { - source: source, - line: util.getArg(mapping, 'originalLine', null), - column: util.getArg(mapping, 'originalColumn', null), - name: name - }; - } - } - - return { - source: null, - line: null, - column: null, - name: null - }; - }; - - /** - * Return true if we have the source content for every source in the source - * map, false otherwise. - */ - BasicSourceMapConsumer.prototype.hasContentsOfAllSources = - function BasicSourceMapConsumer_hasContentsOfAllSources() { - if (!this.sourcesContent) { - return false; - } - return this.sourcesContent.length >= this._sources.size() && - !this.sourcesContent.some(function (sc) { return sc == null; }); - }; - - /** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * available. - */ - BasicSourceMapConsumer.prototype.sourceContentFor = - function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - if (!this.sourcesContent) { - return null; - } - - if (this.sourceRoot != null) { - aSource = util.relative(this.sourceRoot, aSource); - } - - if (this._sources.has(aSource)) { - return this.sourcesContent[this._sources.indexOf(aSource)]; - } - - var url; - if (this.sourceRoot != null - && (url = util.urlParse(this.sourceRoot))) { - // XXX: file:// URIs and absolute paths lead to unexpected behavior for - // many users. We can help them out when they expect file:// URIs to - // behave like it would if they were running a local HTTP server. See - // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. - var fileUriAbsPath = aSource.replace(/^file:\/\//, ""); - if (url.scheme == "file" - && this._sources.has(fileUriAbsPath)) { - return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] - } - - if ((!url.path || url.path == "/") - && this._sources.has("/" + aSource)) { - return this.sourcesContent[this._sources.indexOf("/" + aSource)]; - } - } - - // This function is used recursively from - // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we - // don't want to throw if we can't find the source - we just want to - // return null, so we provide a flag to exit gracefully. - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; - - /** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or - * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ - BasicSourceMapConsumer.prototype.generatedPositionFor = - function SourceMapConsumer_generatedPositionFor(aArgs) { - var source = util.getArg(aArgs, 'source'); - if (this.sourceRoot != null) { - source = util.relative(this.sourceRoot, source); - } - if (!this._sources.has(source)) { - return { - line: null, - column: null, - lastColumn: null - }; - } - source = this._sources.indexOf(source); - - var needle = { - source: source, - originalLine: util.getArg(aArgs, 'line'), - originalColumn: util.getArg(aArgs, 'column') - }; - - var index = this._findMapping( - needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions, - util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) - ); - - if (index >= 0) { - var mapping = this._originalMappings[index]; - - if (mapping.source === needle.source) { - return { - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }; - } - } - - return { - line: null, - column: null, - lastColumn: null - }; - }; - - exports.BasicSourceMapConsumer = BasicSourceMapConsumer; - - /** - * An IndexedSourceMapConsumer instance represents a parsed source map which - * we can query for information. It differs from BasicSourceMapConsumer in - * that it takes "indexed" source maps (i.e. ones with a "sections" field) as - * input. - * - * The only parameter is a raw source map (either as a JSON string, or already - * parsed to an object). According to the spec for indexed source maps, they - * have the following attributes: - * - * - version: Which version of the source map spec this map is following. - * - file: Optional. The generated file this source map is associated with. - * - sections: A list of section definitions. - * - * Each value under the "sections" field has two fields: - * - offset: The offset into the original specified at which this section - * begins to apply, defined as an object with a "line" and "column" - * field. - * - map: A source map definition. This source map could also be indexed, - * but doesn't have to be. - * - * Instead of the "map" field, it's also possible to have a "url" field - * specifying a URL to retrieve a source map from, but that's currently - * unsupported. - * - * Here's an example source map, taken from the source map spec[0], but - * modified to omit a section which uses the "url" field. - * - * { - * version : 3, - * file: "app.js", - * sections: [{ - * offset: {line:100, column:10}, - * map: { - * version : 3, - * file: "section.js", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AAAA,E;;ABCDE;" - * } - * }], - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt - */ - function IndexedSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - var version = util.getArg(sourceMap, 'version'); - var sections = util.getArg(sourceMap, 'sections'); - - if (version != this._version) { - throw new Error('Unsupported version: ' + version); - } - - this._sources = new ArraySet(); - this._names = new ArraySet(); - - var lastOffset = { - line: -1, - column: 0 - }; - this._sections = sections.map(function (s) { - if (s.url) { - // The url field will require support for asynchronicity. - // See https://github.com/mozilla/source-map/issues/16 - throw new Error('Support for url field in sections not implemented.'); - } - var offset = util.getArg(s, 'offset'); - var offsetLine = util.getArg(offset, 'line'); - var offsetColumn = util.getArg(offset, 'column'); - - if (offsetLine < lastOffset.line || - (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { - throw new Error('Section offsets must be ordered and non-overlapping.'); - } - lastOffset = offset; - - return { - generatedOffset: { - // The offset fields are 0-based, but we use 1-based indices when - // encoding/decoding from VLQ. - generatedLine: offsetLine + 1, - generatedColumn: offsetColumn + 1 - }, - consumer: new SourceMapConsumer(util.getArg(s, 'map')) - } - }); - } - - IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); - IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; - - /** - * The version of the source mapping spec that we are consuming. - */ - IndexedSourceMapConsumer.prototype._version = 3; - - /** - * The list of original sources. - */ - Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { - get: function () { - var sources = []; - for (var i = 0; i < this._sections.length; i++) { - for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { - sources.push(this._sections[i].consumer.sources[j]); - } - } - return sources; - } - }); - - /** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - * and an object is returned with the following properties: - * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. - */ - IndexedSourceMapConsumer.prototype.originalPositionFor = - function IndexedSourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - - // Find the section containing the generated position we're trying to map - // to an original position. - var sectionIndex = binarySearch.search(needle, this._sections, - function(needle, section) { - var cmp = needle.generatedLine - section.generatedOffset.generatedLine; - if (cmp) { - return cmp; - } - - return (needle.generatedColumn - - section.generatedOffset.generatedColumn); - }); - var section = this._sections[sectionIndex]; - - if (!section) { - return { - source: null, - line: null, - column: null, - name: null - }; - } - - return section.consumer.originalPositionFor({ - line: needle.generatedLine - - (section.generatedOffset.generatedLine - 1), - column: needle.generatedColumn - - (section.generatedOffset.generatedLine === needle.generatedLine - ? section.generatedOffset.generatedColumn - 1 - : 0), - bias: aArgs.bias - }); - }; - - /** - * Return true if we have the source content for every source in the source - * map, false otherwise. - */ - IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = - function IndexedSourceMapConsumer_hasContentsOfAllSources() { - return this._sections.every(function (s) { - return s.consumer.hasContentsOfAllSources(); - }); - }; - - /** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * available. - */ - IndexedSourceMapConsumer.prototype.sourceContentFor = - function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - - var content = section.consumer.sourceContentFor(aSource, true); - if (content) { - return content; - } - } - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; - - /** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ - IndexedSourceMapConsumer.prototype.generatedPositionFor = - function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - - // Only consider this section if the requested source is in the list of - // sources of the consumer. - if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) { - continue; - } - var generatedPosition = section.consumer.generatedPositionFor(aArgs); - if (generatedPosition) { - var ret = { - line: generatedPosition.line + - (section.generatedOffset.generatedLine - 1), - column: generatedPosition.column + - (section.generatedOffset.generatedLine === generatedPosition.line - ? section.generatedOffset.generatedColumn - 1 - : 0) - }; - return ret; - } - } - - return { - line: null, - column: null - }; - }; - - /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ - IndexedSourceMapConsumer.prototype._parseMappings = - function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { - this.__generatedMappings = []; - this.__originalMappings = []; - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - var sectionMappings = section.consumer._generatedMappings; - for (var j = 0; j < sectionMappings.length; j++) { - var mapping = sectionMappings[j]; - - var source = section.consumer._sources.at(mapping.source); - if (section.consumer.sourceRoot !== null) { - source = util.join(section.consumer.sourceRoot, source); - } - this._sources.add(source); - source = this._sources.indexOf(source); - - var name = section.consumer._names.at(mapping.name); - this._names.add(name); - name = this._names.indexOf(name); - - // The mappings coming from the consumer for the section have - // generated positions relative to the start of the section, so we - // need to offset them to be relative to the start of the concatenated - // generated file. - var adjustedMapping = { - source: source, - generatedLine: mapping.generatedLine + - (section.generatedOffset.generatedLine - 1), - generatedColumn: mapping.generatedColumn + - (section.generatedOffset.generatedLine === mapping.generatedLine - ? section.generatedOffset.generatedColumn - 1 - : 0), - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: name - }; - - this.__generatedMappings.push(adjustedMapping); - if (typeof adjustedMapping.originalLine === 'number') { - this.__originalMappings.push(adjustedMapping); - } - } - } - - quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); - quickSort(this.__originalMappings, util.compareByOriginalPositions); - }; - - exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - exports.GREATEST_LOWER_BOUND = 1; - exports.LEAST_UPPER_BOUND = 2; - - /** - * Recursive implementation of binary search. - * - * @param aLow Indices here and lower do not contain the needle. - * @param aHigh Indices here and higher do not contain the needle. - * @param aNeedle The element being searched for. - * @param aHaystack The non-empty array being searched. - * @param aCompare Function which takes two elements and returns -1, 0, or 1. - * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or - * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - */ - function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { - // This function terminates when one of the following is true: - // - // 1. We find the exact element we are looking for. - // - // 2. We did not find the exact element, but we can return the index of - // the next-closest element. - // - // 3. We did not find the exact element, and there is no next-closest - // element than the one we are searching for, so we return -1. - var mid = Math.floor((aHigh - aLow) / 2) + aLow; - var cmp = aCompare(aNeedle, aHaystack[mid], true); - if (cmp === 0) { - // Found the element we are looking for. - return mid; - } - else if (cmp > 0) { - // Our needle is greater than aHaystack[mid]. - if (aHigh - mid > 1) { - // The element is in the upper half. - return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); - } - - // The exact needle element was not found in this haystack. Determine if - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return aHigh < aHaystack.length ? aHigh : -1; - } else { - return mid; - } - } - else { - // Our needle is less than aHaystack[mid]. - if (mid - aLow > 1) { - // The element is in the lower half. - return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); - } - - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return mid; - } else { - return aLow < 0 ? -1 : aLow; - } - } - } - - /** - * This is an implementation of binary search which will always try and return - * the index of the closest element if there is no exact hit. This is because - * mappings between original and generated line/col pairs are single points, - * and there is an implicit region between each of them, so a miss just means - * that you aren't on the very start of a region. - * - * @param aNeedle The element you are looking for. - * @param aHaystack The array that is being searched. - * @param aCompare A function which takes the needle and an element in the - * array and returns -1, 0, or 1 depending on whether the needle is less - * than, equal to, or greater than the element, respectively. - * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or - * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. - */ - exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { - if (aHaystack.length === 0) { - return -1; - } - - var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, - aCompare, aBias || exports.GREATEST_LOWER_BOUND); - if (index < 0) { - return -1; - } - - // We have found either the exact element, or the next-closest element than - // the one we are searching for. However, there may be more than one such - // element. Make sure we always return the smallest of these. - while (index - 1 >= 0) { - if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { - break; - } - --index; - } - - return index; - }; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - // It turns out that some (most?) JavaScript engines don't self-host - // `Array.prototype.sort`. This makes sense because C++ will likely remain - // faster than JS when doing raw CPU-intensive sorting. However, when using a - // custom comparator function, calling back and forth between the VM's C++ and - // JIT'd JS is rather slow *and* loses JIT type information, resulting in - // worse generated code for the comparator function than would be optimal. In - // fact, when sorting with a comparator, these costs outweigh the benefits of - // sorting in C++. By using our own JS-implemented Quick Sort (below), we get - // a ~3500ms mean speed-up in `bench/bench.html`. - - /** - * Swap the elements indexed by `x` and `y` in the array `ary`. - * - * @param {Array} ary - * The array. - * @param {Number} x - * The index of the first item. - * @param {Number} y - * The index of the second item. - */ - function swap(ary, x, y) { - var temp = ary[x]; - ary[x] = ary[y]; - ary[y] = temp; - } - - /** - * Returns a random integer within the range `low .. high` inclusive. - * - * @param {Number} low - * The lower bound on the range. - * @param {Number} high - * The upper bound on the range. - */ - function randomIntInRange(low, high) { - return Math.round(low + (Math.random() * (high - low))); - } - - /** - * The Quick Sort algorithm. - * - * @param {Array} ary - * An array to sort. - * @param {function} comparator - * Function to use to compare two items. - * @param {Number} p - * Start index of the array - * @param {Number} r - * End index of the array - */ - function doQuickSort(ary, comparator, p, r) { - // If our lower bound is less than our upper bound, we (1) partition the - // array into two pieces and (2) recurse on each half. If it is not, this is - // the empty array and our base case. - - if (p < r) { - // (1) Partitioning. - // - // The partitioning chooses a pivot between `p` and `r` and moves all - // elements that are less than or equal to the pivot to the before it, and - // all the elements that are greater than it after it. The effect is that - // once partition is done, the pivot is in the exact place it will be when - // the array is put in sorted order, and it will not need to be moved - // again. This runs in O(n) time. - - // Always choose a random pivot so that an input array which is reverse - // sorted does not cause O(n^2) running time. - var pivotIndex = randomIntInRange(p, r); - var i = p - 1; - - swap(ary, pivotIndex, r); - var pivot = ary[r]; - - // Immediately after `j` is incremented in this loop, the following hold - // true: - // - // * Every element in `ary[p .. i]` is less than or equal to the pivot. - // - // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. - for (var j = p; j < r; j++) { - if (comparator(ary[j], pivot) <= 0) { - i += 1; - swap(ary, i, j); - } - } - - swap(ary, i + 1, j); - var q = i + 1; - - // (2) Recurse on each half. - - doQuickSort(ary, comparator, p, q - 1); - doQuickSort(ary, comparator, q + 1, r); - } - } - - /** - * Sort the given array in-place with the given comparator function. - * - * @param {Array} ary - * An array to sort. - * @param {function} comparator - * Function to use to compare two items. - */ - exports.quickSort = function (ary, comparator) { - doQuickSort(ary, comparator, 0, ary.length - 1); - }; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var SourceMapGenerator = __webpack_require__(1).SourceMapGenerator; - var util = __webpack_require__(4); - - // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other - // operating systems these days (capturing the result). - var REGEX_NEWLINE = /(\r?\n)/; - - // Newline character code for charCodeAt() comparisons - var NEWLINE_CODE = 10; - - // Private symbol for identifying `SourceNode`s when multiple versions of - // the source-map library are loaded. This MUST NOT CHANGE across - // versions! - var isSourceNode = "$$$isSourceNode$$$"; - - /** - * SourceNodes provide a way to abstract over interpolating/concatenating - * snippets of generated JavaScript source code while maintaining the line and - * column information associated with the original source code. - * - * @param aLine The original line number. - * @param aColumn The original column number. - * @param aSource The original source's filename. - * @param aChunks Optional. An array of strings which are snippets of - * generated JS, or other SourceNodes. - * @param aName The original identifier. - */ - function SourceNode(aLine, aColumn, aSource, aChunks, aName) { - this.children = []; - this.sourceContents = {}; - this.line = aLine == null ? null : aLine; - this.column = aColumn == null ? null : aColumn; - this.source = aSource == null ? null : aSource; - this.name = aName == null ? null : aName; - this[isSourceNode] = true; - if (aChunks != null) this.add(aChunks); - } - - /** - * Creates a SourceNode from generated code and a SourceMapConsumer. - * - * @param aGeneratedCode The generated code - * @param aSourceMapConsumer The SourceMap for the generated code - * @param aRelativePath Optional. The path that relative sources in the - * SourceMapConsumer should be relative to. - */ - SourceNode.fromStringWithSourceMap = - function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { - // The SourceNode we want to fill with the generated code - // and the SourceMap - var node = new SourceNode(); - - // All even indices of this array are one line of the generated code, - // while all odd indices are the newlines between two adjacent lines - // (since `REGEX_NEWLINE` captures its match). - // Processed fragments are accessed by calling `shiftNextLine`. - var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); - var remainingLinesIndex = 0; - var shiftNextLine = function() { - var lineContents = getNextLine(); - // The last line of a file might not have a newline. - var newLine = getNextLine() || ""; - return lineContents + newLine; - - function getNextLine() { - return remainingLinesIndex < remainingLines.length ? - remainingLines[remainingLinesIndex++] : undefined; - } - }; - - // We need to remember the position of "remainingLines" - var lastGeneratedLine = 1, lastGeneratedColumn = 0; - - // The generate SourceNodes we need a code range. - // To extract it current and last mapping is used. - // Here we store the last mapping. - var lastMapping = null; - - aSourceMapConsumer.eachMapping(function (mapping) { - if (lastMapping !== null) { - // We add the code from "lastMapping" to "mapping": - // First check if there is a new line in between. - if (lastGeneratedLine < mapping.generatedLine) { - // Associate first line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - lastGeneratedLine++; - lastGeneratedColumn = 0; - // The remaining code is added without mapping - } else { - // There is no new line in between. - // Associate the code between "lastGeneratedColumn" and - // "mapping.generatedColumn" with "lastMapping" - var nextLine = remainingLines[remainingLinesIndex]; - var code = nextLine.substr(0, mapping.generatedColumn - - lastGeneratedColumn); - remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - - lastGeneratedColumn); - lastGeneratedColumn = mapping.generatedColumn; - addMappingWithCode(lastMapping, code); - // No more remaining code, continue - lastMapping = mapping; - return; - } - } - // We add the generated code until the first mapping - // to the SourceNode without any mapping. - // Each line is added as separate string. - while (lastGeneratedLine < mapping.generatedLine) { - node.add(shiftNextLine()); - lastGeneratedLine++; - } - if (lastGeneratedColumn < mapping.generatedColumn) { - var nextLine = remainingLines[remainingLinesIndex]; - node.add(nextLine.substr(0, mapping.generatedColumn)); - remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); - lastGeneratedColumn = mapping.generatedColumn; - } - lastMapping = mapping; - }, this); - // We have processed all mappings. - if (remainingLinesIndex < remainingLines.length) { - if (lastMapping) { - // Associate the remaining code in the current line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - } - // and add the remaining lines without any mapping - node.add(remainingLines.splice(remainingLinesIndex).join("")); - } - - // Copy sourcesContent into SourceNode - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aRelativePath != null) { - sourceFile = util.join(aRelativePath, sourceFile); - } - node.setSourceContent(sourceFile, content); - } - }); - - return node; - - function addMappingWithCode(mapping, code) { - if (mapping === null || mapping.source === undefined) { - node.add(code); - } else { - var source = aRelativePath - ? util.join(aRelativePath, mapping.source) - : mapping.source; - node.add(new SourceNode(mapping.originalLine, - mapping.originalColumn, - source, - code, - mapping.name)); - } - } - }; - - /** - * Add a chunk of generated JS to this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ - SourceNode.prototype.add = function SourceNode_add(aChunk) { - if (Array.isArray(aChunk)) { - aChunk.forEach(function (chunk) { - this.add(chunk); - }, this); - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - if (aChunk) { - this.children.push(aChunk); - } - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); - } - return this; - }; - - /** - * Add a chunk of generated JS to the beginning of this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ - SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { - if (Array.isArray(aChunk)) { - for (var i = aChunk.length-1; i >= 0; i--) { - this.prepend(aChunk[i]); - } - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - this.children.unshift(aChunk); - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); - } - return this; - }; - - /** - * Walk over the tree of JS snippets in this node and its children. The - * walking function is called once for each snippet of JS and is passed that - * snippet and the its original associated source's line/column location. - * - * @param aFn The traversal function. - */ - SourceNode.prototype.walk = function SourceNode_walk(aFn) { - var chunk; - for (var i = 0, len = this.children.length; i < len; i++) { - chunk = this.children[i]; - if (chunk[isSourceNode]) { - chunk.walk(aFn); - } - else { - if (chunk !== '') { - aFn(chunk, { source: this.source, - line: this.line, - column: this.column, - name: this.name }); - } - } - } - }; - - /** - * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between - * each of `this.children`. - * - * @param aSep The separator. - */ - SourceNode.prototype.join = function SourceNode_join(aSep) { - var newChildren; - var i; - var len = this.children.length; - if (len > 0) { - newChildren = []; - for (i = 0; i < len-1; i++) { - newChildren.push(this.children[i]); - newChildren.push(aSep); - } - newChildren.push(this.children[i]); - this.children = newChildren; - } - return this; - }; - - /** - * Call String.prototype.replace on the very right-most source snippet. Useful - * for trimming whitespace from the end of a source node, etc. - * - * @param aPattern The pattern to replace. - * @param aReplacement The thing to replace the pattern with. - */ - SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { - var lastChild = this.children[this.children.length - 1]; - if (lastChild[isSourceNode]) { - lastChild.replaceRight(aPattern, aReplacement); - } - else if (typeof lastChild === 'string') { - this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); - } - else { - this.children.push(''.replace(aPattern, aReplacement)); - } - return this; - }; - - /** - * Set the source content for a source file. This will be added to the SourceMapGenerator - * in the sourcesContent field. - * - * @param aSourceFile The filename of the source file - * @param aSourceContent The content of the source file - */ - SourceNode.prototype.setSourceContent = - function SourceNode_setSourceContent(aSourceFile, aSourceContent) { - this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; - }; - - /** - * Walk over the tree of SourceNodes. The walking function is called for each - * source file content and is passed the filename and source content. - * - * @param aFn The traversal function. - */ - SourceNode.prototype.walkSourceContents = - function SourceNode_walkSourceContents(aFn) { - for (var i = 0, len = this.children.length; i < len; i++) { - if (this.children[i][isSourceNode]) { - this.children[i].walkSourceContents(aFn); - } - } - - var sources = Object.keys(this.sourceContents); - for (var i = 0, len = sources.length; i < len; i++) { - aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); - } - }; - - /** - * Return the string representation of this source node. Walks over the tree - * and concatenates all the various snippets together to one string. - */ - SourceNode.prototype.toString = function SourceNode_toString() { - var str = ""; - this.walk(function (chunk) { - str += chunk; - }); - return str; - }; - - /** - * Returns the string representation of this source node along with a source - * map. - */ - SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { - var generated = { - code: "", - line: 1, - column: 0 - }; - var map = new SourceMapGenerator(aArgs); - var sourceMappingActive = false; - var lastOriginalSource = null; - var lastOriginalLine = null; - var lastOriginalColumn = null; - var lastOriginalName = null; - this.walk(function (chunk, original) { - generated.code += chunk; - if (original.source !== null - && original.line !== null - && original.column !== null) { - if(lastOriginalSource !== original.source - || lastOriginalLine !== original.line - || lastOriginalColumn !== original.column - || lastOriginalName !== original.name) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - lastOriginalSource = original.source; - lastOriginalLine = original.line; - lastOriginalColumn = original.column; - lastOriginalName = original.name; - sourceMappingActive = true; - } else if (sourceMappingActive) { - map.addMapping({ - generated: { - line: generated.line, - column: generated.column - } - }); - lastOriginalSource = null; - sourceMappingActive = false; - } - for (var idx = 0, length = chunk.length; idx < length; idx++) { - if (chunk.charCodeAt(idx) === NEWLINE_CODE) { - generated.line++; - generated.column = 0; - // Mappings end at eol - if (idx + 1 === length) { - lastOriginalSource = null; - sourceMappingActive = false; - } else if (sourceMappingActive) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - } else { - generated.column++; - } - } - }); - this.walkSourceContents(function (sourceFile, sourceContent) { - map.setSourceContent(sourceFile, sourceContent); - }); - - return { code: generated.code, map: map }; - }; - - exports.SourceNode = SourceNode; - - -/***/ }) -/******/ ]) -}); -; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCBlNDczOGZjNzJhN2IyMzAzOTg4OSIsIndlYnBhY2s6Ly8vLi9zb3VyY2UtbWFwLmpzIiwid2VicGFjazovLy8uL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmFzZTY0LXZscS5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmFzZTY0LmpzIiwid2VicGFjazovLy8uL2xpYi91dGlsLmpzIiwid2VicGFjazovLy8uL2xpYi9hcnJheS1zZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbGliL21hcHBpbmctbGlzdC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvc291cmNlLW1hcC1jb25zdW1lci5qcyIsIndlYnBhY2s6Ly8vLi9saWIvYmluYXJ5LXNlYXJjaC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvcXVpY2stc29ydC5qcyIsIndlYnBhY2s6Ly8vLi9saWIvc291cmNlLW5vZGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNQQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMkNBQTBDLFNBQVM7QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxxQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDL1pBLGlCQUFnQixvQkFBb0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUEyRDtBQUMzRCxxQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRzs7QUFFSDtBQUNBO0FBQ0E7Ozs7Ozs7QUMzSUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWdCO0FBQ2hCLGlCQUFnQjs7QUFFaEIsb0JBQW1CO0FBQ25CLHFCQUFvQjs7QUFFcEIsaUJBQWdCO0FBQ2hCLGlCQUFnQjs7QUFFaEIsaUJBQWdCO0FBQ2hCLGtCQUFpQjs7QUFFakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNsRUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0EsSUFBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsK0NBQThDLFFBQVE7QUFDdEQ7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFDOztBQUVEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDRCQUEyQixRQUFRO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNoYUEsaUJBQWdCLG9CQUFvQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXNDLFNBQVM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQ3hIQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWdCO0FBQ2hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7Ozs7OztBQzlFQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx1REFBc0Q7QUFDdEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQSxvQkFBbUI7QUFDbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVc7O0FBRVg7QUFDQTtBQUNBLFFBQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBVzs7QUFFWDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTJCLE1BQU07QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBc0Q7QUFDdEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHVEQUFzRCxZQUFZO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDtBQUNBLEVBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0NBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBeUIsY0FBYztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXVCLHdDQUF3QztBQUMvRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQStDLG1CQUFtQixFQUFFO0FBQ3BFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFpQixvQkFBb0I7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE2QixNQUFNO0FBQ25DO0FBQ0EsUUFBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXNEO0FBQ3REOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFPO0FBQ1A7QUFDQTtBQUNBLElBQUc7QUFDSDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFtQiwyQkFBMkI7QUFDOUMsc0JBQXFCLCtDQUErQztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW1CLDJCQUEyQjtBQUM5Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBbUIsMkJBQTJCO0FBQzlDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFtQiwyQkFBMkI7QUFDOUM7QUFDQTtBQUNBLHNCQUFxQiw0QkFBNEI7QUFDakQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOzs7Ozs7O0FDempDQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7OztBQzlHQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVcsTUFBTTtBQUNqQjtBQUNBLFlBQVcsT0FBTztBQUNsQjtBQUNBLFlBQVcsT0FBTztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFXLE1BQU07QUFDakI7QUFDQSxZQUFXLFNBQVM7QUFDcEI7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQSxZQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFtQixPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFXLE1BQU07QUFDakI7QUFDQSxZQUFXLFNBQVM7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQ2pIQSxpQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLOztBQUVMOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBaUMsUUFBUTtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBNkMsU0FBUztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBb0I7QUFDcEI7QUFDQTtBQUNBLHVDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZSxXQUFXO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBK0MsU0FBUztBQUN4RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBDQUF5QyxTQUFTO0FBQ2xEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLFlBQVc7QUFDWDtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSw2Q0FBNEMsY0FBYztBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGNBQWE7QUFDYjtBQUNBLFlBQVc7QUFDWDtBQUNBLFFBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxJQUFHO0FBQ0g7QUFDQTtBQUNBLElBQUc7O0FBRUgsV0FBVTtBQUNWOztBQUVBIiwiZmlsZSI6InNvdXJjZS1tYXAuZGVidWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJzb3VyY2VNYXBcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wic291cmNlTWFwXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRleHBvcnRzOiB7fSxcbiBcdFx0XHRpZDogbW9kdWxlSWQsXG4gXHRcdFx0bG9hZGVkOiBmYWxzZVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIlwiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIHdlYnBhY2svYm9vdHN0cmFwIGU0NzM4ZmM3MmE3YjIzMDM5ODg5IiwiLypcbiAqIENvcHlyaWdodCAyMDA5LTIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFLnR4dCBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuZXhwb3J0cy5Tb3VyY2VNYXBHZW5lcmF0b3IgPSByZXF1aXJlKCcuL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvcicpLlNvdXJjZU1hcEdlbmVyYXRvcjtcbmV4cG9ydHMuU291cmNlTWFwQ29uc3VtZXIgPSByZXF1aXJlKCcuL2xpYi9zb3VyY2UtbWFwLWNvbnN1bWVyJykuU291cmNlTWFwQ29uc3VtZXI7XG5leHBvcnRzLlNvdXJjZU5vZGUgPSByZXF1aXJlKCcuL2xpYi9zb3VyY2Utbm9kZScpLlNvdXJjZU5vZGU7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL3NvdXJjZS1tYXAuanNcbi8vIG1vZHVsZSBpZCA9IDBcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgYmFzZTY0VkxRID0gcmVxdWlyZSgnLi9iYXNlNjQtdmxxJyk7XG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIEFycmF5U2V0ID0gcmVxdWlyZSgnLi9hcnJheS1zZXQnKS5BcnJheVNldDtcbnZhciBNYXBwaW5nTGlzdCA9IHJlcXVpcmUoJy4vbWFwcGluZy1saXN0JykuTWFwcGluZ0xpc3Q7XG5cbi8qKlxuICogQW4gaW5zdGFuY2Ugb2YgdGhlIFNvdXJjZU1hcEdlbmVyYXRvciByZXByZXNlbnRzIGEgc291cmNlIG1hcCB3aGljaCBpc1xuICogYmVpbmcgYnVpbHQgaW5jcmVtZW50YWxseS4gWW91IG1heSBwYXNzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmdcbiAqIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGZpbGU6IFRoZSBmaWxlbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS5cbiAqICAgLSBzb3VyY2VSb290OiBBIHJvb3QgZm9yIGFsbCByZWxhdGl2ZSBVUkxzIGluIHRoaXMgc291cmNlIG1hcC5cbiAqL1xuZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKSB7XG4gIGlmICghYUFyZ3MpIHtcbiAgICBhQXJncyA9IHt9O1xuICB9XG4gIHRoaXMuX2ZpbGUgPSB1dGlsLmdldEFyZyhhQXJncywgJ2ZpbGUnLCBudWxsKTtcbiAgdGhpcy5fc291cmNlUm9vdCA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlUm9vdCcsIG51bGwpO1xuICB0aGlzLl9za2lwVmFsaWRhdGlvbiA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc2tpcFZhbGlkYXRpb24nLCBmYWxzZSk7XG4gIHRoaXMuX3NvdXJjZXMgPSBuZXcgQXJyYXlTZXQoKTtcbiAgdGhpcy5fbmFtZXMgPSBuZXcgQXJyYXlTZXQoKTtcbiAgdGhpcy5fbWFwcGluZ3MgPSBuZXcgTWFwcGluZ0xpc3QoKTtcbiAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDtcbn1cblxuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBTb3VyY2VNYXBHZW5lcmF0b3IgYmFzZWQgb24gYSBTb3VyY2VNYXBDb25zdW1lclxuICpcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcC5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLmZyb21Tb3VyY2VNYXAgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfZnJvbVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIpIHtcbiAgICB2YXIgc291cmNlUm9vdCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VSb290O1xuICAgIHZhciBnZW5lcmF0b3IgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKHtcbiAgICAgIGZpbGU6IGFTb3VyY2VNYXBDb25zdW1lci5maWxlLFxuICAgICAgc291cmNlUm9vdDogc291cmNlUm9vdFxuICAgIH0pO1xuICAgIGFTb3VyY2VNYXBDb25zdW1lci5lYWNoTWFwcGluZyhmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgdmFyIG5ld01hcHBpbmcgPSB7XG4gICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgIGxpbmU6IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSxcbiAgICAgICAgICBjb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld01hcHBpbmcuc291cmNlID0gbWFwcGluZy5zb3VyY2U7XG4gICAgICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgICAgICBuZXdNYXBwaW5nLnNvdXJjZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgbmV3TWFwcGluZy5zb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgbmV3TWFwcGluZy5vcmlnaW5hbCA9IHtcbiAgICAgICAgICBsaW5lOiBtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICBjb2x1bW46IG1hcHBpbmcub3JpZ2luYWxDb2x1bW5cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9IG51bGwpIHtcbiAgICAgICAgICBuZXdNYXBwaW5nLm5hbWUgPSBtYXBwaW5nLm5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZ2VuZXJhdG9yLmFkZE1hcHBpbmcobmV3TWFwcGluZyk7XG4gICAgfSk7XG4gICAgYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZXMuZm9yRWFjaChmdW5jdGlvbiAoc291cmNlRmlsZSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlQ29udGVudEZvcihzb3VyY2VGaWxlKTtcbiAgICAgIGlmIChjb250ZW50ICE9IG51bGwpIHtcbiAgICAgICAgZ2VuZXJhdG9yLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbiAgfTtcblxuLyoqXG4gKiBBZGQgYSBzaW5nbGUgbWFwcGluZyBmcm9tIG9yaWdpbmFsIHNvdXJjZSBsaW5lIGFuZCBjb2x1bW4gdG8gdGhlIGdlbmVyYXRlZFxuICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIGZvciB0aGlzIHNvdXJjZSBtYXAgYmVpbmcgY3JlYXRlZC4gVGhlIG1hcHBpbmdcbiAqIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGdlbmVyYXRlZDogQW4gb2JqZWN0IHdpdGggdGhlIGdlbmVyYXRlZCBsaW5lIGFuZCBjb2x1bW4gcG9zaXRpb25zLlxuICogICAtIG9yaWdpbmFsOiBBbiBvYmplY3Qgd2l0aCB0aGUgb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy5cbiAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSAocmVsYXRpdmUgdG8gdGhlIHNvdXJjZVJvb3QpLlxuICogICAtIG5hbWU6IEFuIG9wdGlvbmFsIG9yaWdpbmFsIHRva2VuIG5hbWUgZm9yIHRoaXMgbWFwcGluZy5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5hZGRNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX2FkZE1hcHBpbmcoYUFyZ3MpIHtcbiAgICB2YXIgZ2VuZXJhdGVkID0gdXRpbC5nZXRBcmcoYUFyZ3MsICdnZW5lcmF0ZWQnKTtcbiAgICB2YXIgb3JpZ2luYWwgPSB1dGlsLmdldEFyZyhhQXJncywgJ29yaWdpbmFsJywgbnVsbCk7XG4gICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJywgbnVsbCk7XG4gICAgdmFyIG5hbWUgPSB1dGlsLmdldEFyZyhhQXJncywgJ25hbWUnLCBudWxsKTtcblxuICAgIGlmICghdGhpcy5fc2tpcFZhbGlkYXRpb24pIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlTWFwcGluZyhnZW5lcmF0ZWQsIG9yaWdpbmFsLCBzb3VyY2UsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChzb3VyY2UgIT0gbnVsbCkge1xuICAgICAgc291cmNlID0gU3RyaW5nKHNvdXJjZSk7XG4gICAgICBpZiAoIXRoaXMuX3NvdXJjZXMuaGFzKHNvdXJjZSkpIHtcbiAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmFtZSAhPSBudWxsKSB7XG4gICAgICBuYW1lID0gU3RyaW5nKG5hbWUpO1xuICAgICAgaWYgKCF0aGlzLl9uYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgICAgdGhpcy5fbmFtZXMuYWRkKG5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX21hcHBpbmdzLmFkZCh7XG4gICAgICBnZW5lcmF0ZWRMaW5lOiBnZW5lcmF0ZWQubGluZSxcbiAgICAgIGdlbmVyYXRlZENvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbixcbiAgICAgIG9yaWdpbmFsTGluZTogb3JpZ2luYWwgIT0gbnVsbCAmJiBvcmlnaW5hbC5saW5lLFxuICAgICAgb3JpZ2luYWxDb2x1bW46IG9yaWdpbmFsICE9IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uLFxuICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICBuYW1lOiBuYW1lXG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogU2V0IHRoZSBzb3VyY2UgY29udGVudCBmb3IgYSBzb3VyY2UgZmlsZS5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5zZXRTb3VyY2VDb250ZW50ID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX3NldFNvdXJjZUNvbnRlbnQoYVNvdXJjZUZpbGUsIGFTb3VyY2VDb250ZW50KSB7XG4gICAgdmFyIHNvdXJjZSA9IGFTb3VyY2VGaWxlO1xuICAgIGlmICh0aGlzLl9zb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgIHNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5fc291cmNlUm9vdCwgc291cmNlKTtcbiAgICB9XG5cbiAgICBpZiAoYVNvdXJjZUNvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgLy8gQWRkIHRoZSBzb3VyY2UgY29udGVudCB0byB0aGUgX3NvdXJjZXNDb250ZW50cyBtYXAuXG4gICAgICAvLyBDcmVhdGUgYSBuZXcgX3NvdXJjZXNDb250ZW50cyBtYXAgaWYgdGhlIHByb3BlcnR5IGlzIG51bGwuXG4gICAgICBpZiAoIXRoaXMuX3NvdXJjZXNDb250ZW50cykge1xuICAgICAgICB0aGlzLl9zb3VyY2VzQ29udGVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgfVxuICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoc291cmNlKV0gPSBhU291cmNlQ29udGVudDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3NvdXJjZXNDb250ZW50cykge1xuICAgICAgLy8gUmVtb3ZlIHRoZSBzb3VyY2UgZmlsZSBmcm9tIHRoZSBfc291cmNlc0NvbnRlbnRzIG1hcC5cbiAgICAgIC8vIElmIHRoZSBfc291cmNlc0NvbnRlbnRzIG1hcCBpcyBlbXB0eSwgc2V0IHRoZSBwcm9wZXJ0eSB0byBudWxsLlxuICAgICAgZGVsZXRlIHRoaXMuX3NvdXJjZXNDb250ZW50c1t1dGlsLnRvU2V0U3RyaW5nKHNvdXJjZSldO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuX3NvdXJjZXNDb250ZW50cykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuX3NvdXJjZXNDb250ZW50cyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIEFwcGxpZXMgdGhlIG1hcHBpbmdzIG9mIGEgc3ViLXNvdXJjZS1tYXAgZm9yIGEgc3BlY2lmaWMgc291cmNlIGZpbGUgdG8gdGhlXG4gKiBzb3VyY2UgbWFwIGJlaW5nIGdlbmVyYXRlZC4gRWFjaCBtYXBwaW5nIHRvIHRoZSBzdXBwbGllZCBzb3VyY2UgZmlsZSBpc1xuICogcmV3cml0dGVuIHVzaW5nIHRoZSBzdXBwbGllZCBzb3VyY2UgbWFwLiBOb3RlOiBUaGUgcmVzb2x1dGlvbiBmb3IgdGhlXG4gKiByZXN1bHRpbmcgbWFwcGluZ3MgaXMgdGhlIG1pbmltaXVtIG9mIHRoaXMgbWFwIGFuZCB0aGUgc3VwcGxpZWQgbWFwLlxuICpcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIHNvdXJjZSBtYXAgdG8gYmUgYXBwbGllZC5cbiAqIEBwYXJhbSBhU291cmNlRmlsZSBPcHRpb25hbC4gVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZS5cbiAqICAgICAgICBJZiBvbWl0dGVkLCBTb3VyY2VNYXBDb25zdW1lcidzIGZpbGUgcHJvcGVydHkgd2lsbCBiZSB1c2VkLlxuICogQHBhcmFtIGFTb3VyY2VNYXBQYXRoIE9wdGlvbmFsLiBUaGUgZGlybmFtZSBvZiB0aGUgcGF0aCB0byB0aGUgc291cmNlIG1hcFxuICogICAgICAgIHRvIGJlIGFwcGxpZWQuIElmIHJlbGF0aXZlLCBpdCBpcyByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwQ29uc3VtZXIuXG4gKiAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgbmVlZGVkIHdoZW4gdGhlIHR3byBzb3VyY2UgbWFwcyBhcmVuJ3QgaW4gdGhlIHNhbWVcbiAqICAgICAgICBkaXJlY3RvcnksIGFuZCB0aGUgc291cmNlIG1hcCB0byBiZSBhcHBsaWVkIGNvbnRhaW5zIHJlbGF0aXZlIHNvdXJjZVxuICogICAgICAgIHBhdGhzLiBJZiBzbywgdGhvc2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIG5lZWQgdG8gYmUgcmV3cml0dGVuXG4gKiAgICAgICAgcmVsYXRpdmUgdG8gdGhlIFNvdXJjZU1hcEdlbmVyYXRvci5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5hcHBseVNvdXJjZU1hcCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9hcHBseVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIsIGFTb3VyY2VGaWxlLCBhU291cmNlTWFwUGF0aCkge1xuICAgIHZhciBzb3VyY2VGaWxlID0gYVNvdXJjZUZpbGU7XG4gICAgLy8gSWYgYVNvdXJjZUZpbGUgaXMgb21pdHRlZCwgd2Ugd2lsbCB1c2UgdGhlIGZpbGUgcHJvcGVydHkgb2YgdGhlIFNvdXJjZU1hcFxuICAgIGlmIChhU291cmNlRmlsZSA9PSBudWxsKSB7XG4gICAgICBpZiAoYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUgPT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1NvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYXBwbHlTb3VyY2VNYXAgcmVxdWlyZXMgZWl0aGVyIGFuIGV4cGxpY2l0IHNvdXJjZSBmaWxlLCAnICtcbiAgICAgICAgICAnb3IgdGhlIHNvdXJjZSBtYXBcXCdzIFwiZmlsZVwiIHByb3BlcnR5LiBCb3RoIHdlcmUgb21pdHRlZC4nXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzb3VyY2VGaWxlID0gYVNvdXJjZU1hcENvbnN1bWVyLmZpbGU7XG4gICAgfVxuICAgIHZhciBzb3VyY2VSb290ID0gdGhpcy5fc291cmNlUm9vdDtcbiAgICAvLyBNYWtlIFwic291cmNlRmlsZVwiIHJlbGF0aXZlIGlmIGFuIGFic29sdXRlIFVybCBpcyBwYXNzZWQuXG4gICAgaWYgKHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgc291cmNlRmlsZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlRmlsZSk7XG4gICAgfVxuICAgIC8vIEFwcGx5aW5nIHRoZSBTb3VyY2VNYXAgY2FuIGFkZCBhbmQgcmVtb3ZlIGl0ZW1zIGZyb20gdGhlIHNvdXJjZXMgYW5kXG4gICAgLy8gdGhlIG5hbWVzIGFycmF5LlxuICAgIHZhciBuZXdTb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gICAgdmFyIG5ld05hbWVzID0gbmV3IEFycmF5U2V0KCk7XG5cbiAgICAvLyBGaW5kIG1hcHBpbmdzIGZvciB0aGUgXCJzb3VyY2VGaWxlXCJcbiAgICB0aGlzLl9tYXBwaW5ncy51bnNvcnRlZEZvckVhY2goZnVuY3Rpb24gKG1hcHBpbmcpIHtcbiAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gc291cmNlRmlsZSAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSAhPSBudWxsKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGl0IGNhbiBiZSBtYXBwZWQgYnkgdGhlIHNvdXJjZSBtYXAsIHRoZW4gdXBkYXRlIHRoZSBtYXBwaW5nLlxuICAgICAgICB2YXIgb3JpZ2luYWwgPSBhU291cmNlTWFwQ29uc3VtZXIub3JpZ2luYWxQb3NpdGlvbkZvcih7XG4gICAgICAgICAgbGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgICAgY29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob3JpZ2luYWwuc291cmNlICE9IG51bGwpIHtcbiAgICAgICAgICAvLyBDb3B5IG1hcHBpbmdcbiAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IG9yaWdpbmFsLnNvdXJjZTtcbiAgICAgICAgICBpZiAoYVNvdXJjZU1hcFBhdGggIT0gbnVsbCkge1xuICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSB1dGlsLmpvaW4oYVNvdXJjZU1hcFBhdGgsIG1hcHBpbmcuc291cmNlKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgbWFwcGluZy5zb3VyY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsTGluZSA9IG9yaWdpbmFsLmxpbmU7XG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjtcbiAgICAgICAgICBpZiAob3JpZ2luYWwubmFtZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSBvcmlnaW5hbC5uYW1lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB2YXIgc291cmNlID0gbWFwcGluZy5zb3VyY2U7XG4gICAgICBpZiAoc291cmNlICE9IG51bGwgJiYgIW5ld1NvdXJjZXMuaGFzKHNvdXJjZSkpIHtcbiAgICAgICAgbmV3U291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5hbWUgPSBtYXBwaW5nLm5hbWU7XG4gICAgICBpZiAobmFtZSAhPSBudWxsICYmICFuZXdOYW1lcy5oYXMobmFtZSkpIHtcbiAgICAgICAgbmV3TmFtZXMuYWRkKG5hbWUpO1xuICAgICAgfVxuXG4gICAgfSwgdGhpcyk7XG4gICAgdGhpcy5fc291cmNlcyA9IG5ld1NvdXJjZXM7XG4gICAgdGhpcy5fbmFtZXMgPSBuZXdOYW1lcztcblxuICAgIC8vIENvcHkgc291cmNlc0NvbnRlbnRzIG9mIGFwcGxpZWQgbWFwLlxuICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24gKHNvdXJjZUZpbGUpIHtcbiAgICAgIHZhciBjb250ZW50ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3Ioc291cmNlRmlsZSk7XG4gICAgICBpZiAoY29udGVudCAhPSBudWxsKSB7XG4gICAgICAgIGlmIChhU291cmNlTWFwUGF0aCAhPSBudWxsKSB7XG4gICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhU291cmNlTWFwUGF0aCwgc291cmNlRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZUZpbGUgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIHNvdXJjZUZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0U291cmNlQ29udGVudChzb3VyY2VGaWxlLCBjb250ZW50KTtcbiAgICAgIH1cbiAgICB9LCB0aGlzKTtcbiAgfTtcblxuLyoqXG4gKiBBIG1hcHBpbmcgY2FuIGhhdmUgb25lIG9mIHRoZSB0aHJlZSBsZXZlbHMgb2YgZGF0YTpcbiAqXG4gKiAgIDEuIEp1c3QgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbi5cbiAqICAgMi4gVGhlIEdlbmVyYXRlZCBwb3NpdGlvbiwgb3JpZ2luYWwgcG9zaXRpb24sIGFuZCBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIDMuIEdlbmVyYXRlZCBhbmQgb3JpZ2luYWwgcG9zaXRpb24sIG9yaWdpbmFsIHNvdXJjZSwgYXMgd2VsbCBhcyBhIG5hbWVcbiAqICAgICAgdG9rZW4uXG4gKlxuICogVG8gbWFpbnRhaW4gY29uc2lzdGVuY3ksIHdlIHZhbGlkYXRlIHRoYXQgYW55IG5ldyBtYXBwaW5nIGJlaW5nIGFkZGVkIGZhbGxzXG4gKiBpbiB0byBvbmUgb2YgdGhlc2UgY2F0ZWdvcmllcy5cbiAqL1xuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmFsaWRhdGVNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwR2VuZXJhdG9yX3ZhbGlkYXRlTWFwcGluZyhhR2VuZXJhdGVkLCBhT3JpZ2luYWwsIGFTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYU5hbWUpIHtcbiAgICAvLyBXaGVuIGFPcmlnaW5hbCBpcyB0cnV0aHkgYnV0IGhhcyBlbXB0eSB2YWx1ZXMgZm9yIC5saW5lIGFuZCAuY29sdW1uLFxuICAgIC8vIGl0IGlzIG1vc3QgbGlrZWx5IGEgcHJvZ3JhbW1lciBlcnJvci4gSW4gdGhpcyBjYXNlIHdlIHRocm93IGEgdmVyeVxuICAgIC8vIHNwZWNpZmljIGVycm9yIG1lc3NhZ2UgdG8gdHJ5IHRvIGd1aWRlIHRoZW0gdGhlIHJpZ2h0IHdheS5cbiAgICAvLyBGb3IgZXhhbXBsZTogaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcG9seW1lci1idW5kbGVyL3B1bGwvNTE5XG4gICAgaWYgKGFPcmlnaW5hbCAmJiB0eXBlb2YgYU9yaWdpbmFsLmxpbmUgIT09ICdudW1iZXInICYmIHR5cGVvZiBhT3JpZ2luYWwuY29sdW1uICE9PSAnbnVtYmVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnb3JpZ2luYWwubGluZSBhbmQgb3JpZ2luYWwuY29sdW1uIGFyZSBub3QgbnVtYmVycyAtLSB5b3UgcHJvYmFibHkgbWVhbnQgdG8gb21pdCAnICtcbiAgICAgICAgICAgICd0aGUgb3JpZ2luYWwgbWFwcGluZyBlbnRpcmVseSBhbmQgb25seSBtYXAgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbi4gSWYgc28sIHBhc3MgJyArXG4gICAgICAgICAgICAnbnVsbCBmb3IgdGhlIG9yaWdpbmFsIG1hcHBpbmcgaW5zdGVhZCBvZiBhbiBvYmplY3Qgd2l0aCBlbXB0eSBvciBudWxsIHZhbHVlcy4nXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGFHZW5lcmF0ZWQgJiYgJ2xpbmUnIGluIGFHZW5lcmF0ZWQgJiYgJ2NvbHVtbicgaW4gYUdlbmVyYXRlZFxuICAgICAgICAmJiBhR2VuZXJhdGVkLmxpbmUgPiAwICYmIGFHZW5lcmF0ZWQuY29sdW1uID49IDBcbiAgICAgICAgJiYgIWFPcmlnaW5hbCAmJiAhYVNvdXJjZSAmJiAhYU5hbWUpIHtcbiAgICAgIC8vIENhc2UgMS5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZWxzZSBpZiAoYUdlbmVyYXRlZCAmJiAnbGluZScgaW4gYUdlbmVyYXRlZCAmJiAnY29sdW1uJyBpbiBhR2VuZXJhdGVkXG4gICAgICAgICAgICAgJiYgYU9yaWdpbmFsICYmICdsaW5lJyBpbiBhT3JpZ2luYWwgJiYgJ2NvbHVtbicgaW4gYU9yaWdpbmFsXG4gICAgICAgICAgICAgJiYgYUdlbmVyYXRlZC5saW5lID4gMCAmJiBhR2VuZXJhdGVkLmNvbHVtbiA+PSAwXG4gICAgICAgICAgICAgJiYgYU9yaWdpbmFsLmxpbmUgPiAwICYmIGFPcmlnaW5hbC5jb2x1bW4gPj0gMFxuICAgICAgICAgICAgICYmIGFTb3VyY2UpIHtcbiAgICAgIC8vIENhc2VzIDIgYW5kIDMuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1hcHBpbmc6ICcgKyBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGdlbmVyYXRlZDogYUdlbmVyYXRlZCxcbiAgICAgICAgc291cmNlOiBhU291cmNlLFxuICAgICAgICBvcmlnaW5hbDogYU9yaWdpbmFsLFxuICAgICAgICBuYW1lOiBhTmFtZVxuICAgICAgfSkpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBTZXJpYWxpemUgdGhlIGFjY3VtdWxhdGVkIG1hcHBpbmdzIGluIHRvIHRoZSBzdHJlYW0gb2YgYmFzZSA2NCBWTFFzXG4gKiBzcGVjaWZpZWQgYnkgdGhlIHNvdXJjZSBtYXAgZm9ybWF0LlxuICovXG5Tb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLl9zZXJpYWxpemVNYXBwaW5ncyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9zZXJpYWxpemVNYXBwaW5ncygpIHtcbiAgICB2YXIgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgIHZhciBwcmV2aW91c0dlbmVyYXRlZExpbmUgPSAxO1xuICAgIHZhciBwcmV2aW91c09yaWdpbmFsQ29sdW1uID0gMDtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbExpbmUgPSAwO1xuICAgIHZhciBwcmV2aW91c05hbWUgPSAwO1xuICAgIHZhciBwcmV2aW91c1NvdXJjZSA9IDA7XG4gICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgIHZhciBuZXh0O1xuICAgIHZhciBtYXBwaW5nO1xuICAgIHZhciBuYW1lSWR4O1xuICAgIHZhciBzb3VyY2VJZHg7XG5cbiAgICB2YXIgbWFwcGluZ3MgPSB0aGlzLl9tYXBwaW5ncy50b0FycmF5KCk7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IG1hcHBpbmdzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBtYXBwaW5nID0gbWFwcGluZ3NbaV07XG4gICAgICBuZXh0ID0gJydcblxuICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSAhPT0gcHJldmlvdXNHZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgICAgICAgd2hpbGUgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSAhPT0gcHJldmlvdXNHZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgICAgbmV4dCArPSAnOyc7XG4gICAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRMaW5lKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICBpZiAoIXV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQobWFwcGluZywgbWFwcGluZ3NbaSAtIDFdKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIG5leHQgKz0gJywnO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLmdlbmVyYXRlZENvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBwcmV2aW91c0dlbmVyYXRlZENvbHVtbik7XG4gICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uO1xuXG4gICAgICBpZiAobWFwcGluZy5zb3VyY2UgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2VJZHggPSB0aGlzLl9zb3VyY2VzLmluZGV4T2YobWFwcGluZy5zb3VyY2UpO1xuICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUoc291cmNlSWR4IC0gcHJldmlvdXNTb3VyY2UpO1xuICAgICAgICBwcmV2aW91c1NvdXJjZSA9IHNvdXJjZUlkeDtcblxuICAgICAgICAvLyBsaW5lcyBhcmUgc3RvcmVkIDAtYmFzZWQgaW4gU291cmNlTWFwIHNwZWMgdmVyc2lvbiAzXG4gICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsTGluZSAtIDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBwcmV2aW91c09yaWdpbmFsTGluZSk7XG4gICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmUgLSAxO1xuXG4gICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsQ29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcHJldmlvdXNPcmlnaW5hbENvbHVtbik7XG4gICAgICAgIHByZXZpb3VzT3JpZ2luYWxDb2x1bW4gPSBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uO1xuXG4gICAgICAgIGlmIChtYXBwaW5nLm5hbWUgIT0gbnVsbCkge1xuICAgICAgICAgIG5hbWVJZHggPSB0aGlzLl9uYW1lcy5pbmRleE9mKG1hcHBpbmcubmFtZSk7XG4gICAgICAgICAgbmV4dCArPSBiYXNlNjRWTFEuZW5jb2RlKG5hbWVJZHggLSBwcmV2aW91c05hbWUpO1xuICAgICAgICAgIHByZXZpb3VzTmFtZSA9IG5hbWVJZHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmVzdWx0ICs9IG5leHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl9nZW5lcmF0ZVNvdXJjZXNDb250ZW50KGFTb3VyY2VzLCBhU291cmNlUm9vdCkge1xuICAgIHJldHVybiBhU291cmNlcy5tYXAoZnVuY3Rpb24gKHNvdXJjZSkge1xuICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoYVNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2UgPSB1dGlsLnJlbGF0aXZlKGFTb3VyY2VSb290LCBzb3VyY2UpO1xuICAgICAgfVxuICAgICAgdmFyIGtleSA9IHV0aWwudG9TZXRTdHJpbmcoc291cmNlKTtcbiAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5fc291cmNlc0NvbnRlbnRzLCBrZXkpXG4gICAgICAgID8gdGhpcy5fc291cmNlc0NvbnRlbnRzW2tleV1cbiAgICAgICAgOiBudWxsO1xuICAgIH0sIHRoaXMpO1xuICB9O1xuXG4vKipcbiAqIEV4dGVybmFsaXplIHRoZSBzb3VyY2UgbWFwLlxuICovXG5Tb3VyY2VNYXBHZW5lcmF0b3IucHJvdG90eXBlLnRvSlNPTiA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcEdlbmVyYXRvcl90b0pTT04oKSB7XG4gICAgdmFyIG1hcCA9IHtcbiAgICAgIHZlcnNpb246IHRoaXMuX3ZlcnNpb24sXG4gICAgICBzb3VyY2VzOiB0aGlzLl9zb3VyY2VzLnRvQXJyYXkoKSxcbiAgICAgIG5hbWVzOiB0aGlzLl9uYW1lcy50b0FycmF5KCksXG4gICAgICBtYXBwaW5nczogdGhpcy5fc2VyaWFsaXplTWFwcGluZ3MoKVxuICAgIH07XG4gICAgaWYgKHRoaXMuX2ZpbGUgIT0gbnVsbCkge1xuICAgICAgbWFwLmZpbGUgPSB0aGlzLl9maWxlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBtYXAuc291cmNlUm9vdCA9IHRoaXMuX3NvdXJjZVJvb3Q7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zb3VyY2VzQ29udGVudHMpIHtcbiAgICAgIG1hcC5zb3VyY2VzQ29udGVudCA9IHRoaXMuX2dlbmVyYXRlU291cmNlc0NvbnRlbnQobWFwLnNvdXJjZXMsIG1hcC5zb3VyY2VSb290KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFwO1xuICB9O1xuXG4vKipcbiAqIFJlbmRlciB0aGUgc291cmNlIG1hcCBiZWluZyBnZW5lcmF0ZWQgdG8gYSBzdHJpbmcuXG4gKi9cblNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUudG9TdHJpbmcgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBHZW5lcmF0b3JfdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9KU09OKCkpO1xuICB9O1xuXG5leHBvcnRzLlNvdXJjZU1hcEdlbmVyYXRvciA9IFNvdXJjZU1hcEdlbmVyYXRvcjtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL3NvdXJjZS1tYXAtZ2VuZXJhdG9yLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qIC0qLSBNb2RlOiBqczsganMtaW5kZW50LWxldmVsOiAyOyAtKi0gKi9cbi8qXG4gKiBDb3B5cmlnaHQgMjAxMSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIGNvbnRyaWJ1dG9yc1xuICogTGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgbGljZW5zZS4gU2VlIExJQ0VOU0Ugb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKlxuICogQmFzZWQgb24gdGhlIEJhc2UgNjQgVkxRIGltcGxlbWVudGF0aW9uIGluIENsb3N1cmUgQ29tcGlsZXI6XG4gKiBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nsb3N1cmUtY29tcGlsZXIvc291cmNlL2Jyb3dzZS90cnVuay9zcmMvY29tL2dvb2dsZS9kZWJ1Z2dpbmcvc291cmNlbWFwL0Jhc2U2NFZMUS5qYXZhXG4gKlxuICogQ29weXJpZ2h0IDIwMTEgVGhlIENsb3N1cmUgQ29tcGlsZXIgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxuICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZVxuICogbWV0OlxuICpcbiAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0XG4gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG4gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlXG4gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZ1xuICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkXG4gKiAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gKiAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzXG4gKiAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWRcbiAqICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cbiAqXG4gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTXG4gKiBcIkFTIElTXCIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UXG4gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1JcbiAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUXG4gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCxcbiAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1RcbiAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLFxuICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZXG4gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0VcbiAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKi9cblxudmFyIGJhc2U2NCA9IHJlcXVpcmUoJy4vYmFzZTY0Jyk7XG5cbi8vIEEgc2luZ2xlIGJhc2UgNjQgZGlnaXQgY2FuIGNvbnRhaW4gNiBiaXRzIG9mIGRhdGEuIEZvciB0aGUgYmFzZSA2NCB2YXJpYWJsZVxuLy8gbGVuZ3RoIHF1YW50aXRpZXMgd2UgdXNlIGluIHRoZSBzb3VyY2UgbWFwIHNwZWMsIHRoZSBmaXJzdCBiaXQgaXMgdGhlIHNpZ24sXG4vLyB0aGUgbmV4dCBmb3VyIGJpdHMgYXJlIHRoZSBhY3R1YWwgdmFsdWUsIGFuZCB0aGUgNnRoIGJpdCBpcyB0aGVcbi8vIGNvbnRpbnVhdGlvbiBiaXQuIFRoZSBjb250aW51YXRpb24gYml0IHRlbGxzIHVzIHdoZXRoZXIgdGhlcmUgYXJlIG1vcmVcbi8vIGRpZ2l0cyBpbiB0aGlzIHZhbHVlIGZvbGxvd2luZyB0aGlzIGRpZ2l0LlxuLy9cbi8vICAgQ29udGludWF0aW9uXG4vLyAgIHwgICAgU2lnblxuLy8gICB8ICAgIHxcbi8vICAgViAgICBWXG4vLyAgIDEwMTAxMVxuXG52YXIgVkxRX0JBU0VfU0hJRlQgPSA1O1xuXG4vLyBiaW5hcnk6IDEwMDAwMFxudmFyIFZMUV9CQVNFID0gMSA8PCBWTFFfQkFTRV9TSElGVDtcblxuLy8gYmluYXJ5OiAwMTExMTFcbnZhciBWTFFfQkFTRV9NQVNLID0gVkxRX0JBU0UgLSAxO1xuXG4vLyBiaW5hcnk6IDEwMDAwMFxudmFyIFZMUV9DT05USU5VQVRJT05fQklUID0gVkxRX0JBU0U7XG5cbi8qKlxuICogQ29udmVydHMgZnJvbSBhIHR3by1jb21wbGVtZW50IHZhbHVlIHRvIGEgdmFsdWUgd2hlcmUgdGhlIHNpZ24gYml0IGlzXG4gKiBwbGFjZWQgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gIEZvciBleGFtcGxlLCBhcyBkZWNpbWFsczpcbiAqICAgMSBiZWNvbWVzIDIgKDEwIGJpbmFyeSksIC0xIGJlY29tZXMgMyAoMTEgYmluYXJ5KVxuICogICAyIGJlY29tZXMgNCAoMTAwIGJpbmFyeSksIC0yIGJlY29tZXMgNSAoMTAxIGJpbmFyeSlcbiAqL1xuZnVuY3Rpb24gdG9WTFFTaWduZWQoYVZhbHVlKSB7XG4gIHJldHVybiBhVmFsdWUgPCAwXG4gICAgPyAoKC1hVmFsdWUpIDw8IDEpICsgMVxuICAgIDogKGFWYWx1ZSA8PCAxKSArIDA7XG59XG5cbi8qKlxuICogQ29udmVydHMgdG8gYSB0d28tY29tcGxlbWVudCB2YWx1ZSBmcm9tIGEgdmFsdWUgd2hlcmUgdGhlIHNpZ24gYml0IGlzXG4gKiBwbGFjZWQgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gIEZvciBleGFtcGxlLCBhcyBkZWNpbWFsczpcbiAqICAgMiAoMTAgYmluYXJ5KSBiZWNvbWVzIDEsIDMgKDExIGJpbmFyeSkgYmVjb21lcyAtMVxuICogICA0ICgxMDAgYmluYXJ5KSBiZWNvbWVzIDIsIDUgKDEwMSBiaW5hcnkpIGJlY29tZXMgLTJcbiAqL1xuZnVuY3Rpb24gZnJvbVZMUVNpZ25lZChhVmFsdWUpIHtcbiAgdmFyIGlzTmVnYXRpdmUgPSAoYVZhbHVlICYgMSkgPT09IDE7XG4gIHZhciBzaGlmdGVkID0gYVZhbHVlID4+IDE7XG4gIHJldHVybiBpc05lZ2F0aXZlXG4gICAgPyAtc2hpZnRlZFxuICAgIDogc2hpZnRlZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBiYXNlIDY0IFZMUSBlbmNvZGVkIHZhbHVlLlxuICovXG5leHBvcnRzLmVuY29kZSA9IGZ1bmN0aW9uIGJhc2U2NFZMUV9lbmNvZGUoYVZhbHVlKSB7XG4gIHZhciBlbmNvZGVkID0gXCJcIjtcbiAgdmFyIGRpZ2l0O1xuXG4gIHZhciB2bHEgPSB0b1ZMUVNpZ25lZChhVmFsdWUpO1xuXG4gIGRvIHtcbiAgICBkaWdpdCA9IHZscSAmIFZMUV9CQVNFX01BU0s7XG4gICAgdmxxID4+Pj0gVkxRX0JBU0VfU0hJRlQ7XG4gICAgaWYgKHZscSA+IDApIHtcbiAgICAgIC8vIFRoZXJlIGFyZSBzdGlsbCBtb3JlIGRpZ2l0cyBpbiB0aGlzIHZhbHVlLCBzbyB3ZSBtdXN0IG1ha2Ugc3VyZSB0aGVcbiAgICAgIC8vIGNvbnRpbnVhdGlvbiBiaXQgaXMgbWFya2VkLlxuICAgICAgZGlnaXQgfD0gVkxRX0NPTlRJTlVBVElPTl9CSVQ7XG4gICAgfVxuICAgIGVuY29kZWQgKz0gYmFzZTY0LmVuY29kZShkaWdpdCk7XG4gIH0gd2hpbGUgKHZscSA+IDApO1xuXG4gIHJldHVybiBlbmNvZGVkO1xufTtcblxuLyoqXG4gKiBEZWNvZGVzIHRoZSBuZXh0IGJhc2UgNjQgVkxRIHZhbHVlIGZyb20gdGhlIGdpdmVuIHN0cmluZyBhbmQgcmV0dXJucyB0aGVcbiAqIHZhbHVlIGFuZCB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nIHZpYSB0aGUgb3V0IHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0cy5kZWNvZGUgPSBmdW5jdGlvbiBiYXNlNjRWTFFfZGVjb2RlKGFTdHIsIGFJbmRleCwgYU91dFBhcmFtKSB7XG4gIHZhciBzdHJMZW4gPSBhU3RyLmxlbmd0aDtcbiAgdmFyIHJlc3VsdCA9IDA7XG4gIHZhciBzaGlmdCA9IDA7XG4gIHZhciBjb250aW51YXRpb24sIGRpZ2l0O1xuXG4gIGRvIHtcbiAgICBpZiAoYUluZGV4ID49IHN0ckxlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ZWQgbW9yZSBkaWdpdHMgaW4gYmFzZSA2NCBWTFEgdmFsdWUuXCIpO1xuICAgIH1cblxuICAgIGRpZ2l0ID0gYmFzZTY0LmRlY29kZShhU3RyLmNoYXJDb2RlQXQoYUluZGV4KyspKTtcbiAgICBpZiAoZGlnaXQgPT09IC0xKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGJhc2U2NCBkaWdpdDogXCIgKyBhU3RyLmNoYXJBdChhSW5kZXggLSAxKSk7XG4gICAgfVxuXG4gICAgY29udGludWF0aW9uID0gISEoZGlnaXQgJiBWTFFfQ09OVElOVUFUSU9OX0JJVCk7XG4gICAgZGlnaXQgJj0gVkxRX0JBU0VfTUFTSztcbiAgICByZXN1bHQgPSByZXN1bHQgKyAoZGlnaXQgPDwgc2hpZnQpO1xuICAgIHNoaWZ0ICs9IFZMUV9CQVNFX1NISUZUO1xuICB9IHdoaWxlIChjb250aW51YXRpb24pO1xuXG4gIGFPdXRQYXJhbS52YWx1ZSA9IGZyb21WTFFTaWduZWQocmVzdWx0KTtcbiAgYU91dFBhcmFtLnJlc3QgPSBhSW5kZXg7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmFzZTY0LXZscS5qc1xuLy8gbW9kdWxlIGlkID0gMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciBpbnRUb0NoYXJNYXAgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycuc3BsaXQoJycpO1xuXG4vKipcbiAqIEVuY29kZSBhbiBpbnRlZ2VyIGluIHRoZSByYW5nZSBvZiAwIHRvIDYzIHRvIGEgc2luZ2xlIGJhc2UgNjQgZGlnaXQuXG4gKi9cbmV4cG9ydHMuZW5jb2RlID0gZnVuY3Rpb24gKG51bWJlcikge1xuICBpZiAoMCA8PSBudW1iZXIgJiYgbnVtYmVyIDwgaW50VG9DaGFyTWFwLmxlbmd0aCkge1xuICAgIHJldHVybiBpbnRUb0NoYXJNYXBbbnVtYmVyXTtcbiAgfVxuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiTXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDYzOiBcIiArIG51bWJlcik7XG59O1xuXG4vKipcbiAqIERlY29kZSBhIHNpbmdsZSBiYXNlIDY0IGNoYXJhY3RlciBjb2RlIGRpZ2l0IHRvIGFuIGludGVnZXIuIFJldHVybnMgLTEgb25cbiAqIGZhaWx1cmUuXG4gKi9cbmV4cG9ydHMuZGVjb2RlID0gZnVuY3Rpb24gKGNoYXJDb2RlKSB7XG4gIHZhciBiaWdBID0gNjU7ICAgICAvLyAnQSdcbiAgdmFyIGJpZ1ogPSA5MDsgICAgIC8vICdaJ1xuXG4gIHZhciBsaXR0bGVBID0gOTc7ICAvLyAnYSdcbiAgdmFyIGxpdHRsZVogPSAxMjI7IC8vICd6J1xuXG4gIHZhciB6ZXJvID0gNDg7ICAgICAvLyAnMCdcbiAgdmFyIG5pbmUgPSA1NzsgICAgIC8vICc5J1xuXG4gIHZhciBwbHVzID0gNDM7ICAgICAvLyAnKydcbiAgdmFyIHNsYXNoID0gNDc7ICAgIC8vICcvJ1xuXG4gIHZhciBsaXR0bGVPZmZzZXQgPSAyNjtcbiAgdmFyIG51bWJlck9mZnNldCA9IDUyO1xuXG4gIC8vIDAgLSAyNTogQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcbiAgaWYgKGJpZ0EgPD0gY2hhckNvZGUgJiYgY2hhckNvZGUgPD0gYmlnWikge1xuICAgIHJldHVybiAoY2hhckNvZGUgLSBiaWdBKTtcbiAgfVxuXG4gIC8vIDI2IC0gNTE6IGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XG4gIGlmIChsaXR0bGVBIDw9IGNoYXJDb2RlICYmIGNoYXJDb2RlIDw9IGxpdHRsZVopIHtcbiAgICByZXR1cm4gKGNoYXJDb2RlIC0gbGl0dGxlQSArIGxpdHRsZU9mZnNldCk7XG4gIH1cblxuICAvLyA1MiAtIDYxOiAwMTIzNDU2Nzg5XG4gIGlmICh6ZXJvIDw9IGNoYXJDb2RlICYmIGNoYXJDb2RlIDw9IG5pbmUpIHtcbiAgICByZXR1cm4gKGNoYXJDb2RlIC0gemVybyArIG51bWJlck9mZnNldCk7XG4gIH1cblxuICAvLyA2MjogK1xuICBpZiAoY2hhckNvZGUgPT0gcGx1cykge1xuICAgIHJldHVybiA2MjtcbiAgfVxuXG4gIC8vIDYzOiAvXG4gIGlmIChjaGFyQ29kZSA9PSBzbGFzaCkge1xuICAgIHJldHVybiA2MztcbiAgfVxuXG4gIC8vIEludmFsaWQgYmFzZTY0IGRpZ2l0LlxuICByZXR1cm4gLTE7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmFzZTY0LmpzXG4vLyBtb2R1bGUgaWQgPSAzXG4vLyBtb2R1bGUgY2h1bmtzID0gMCIsIi8qIC0qLSBNb2RlOiBqczsganMtaW5kZW50LWxldmVsOiAyOyAtKi0gKi9cbi8qXG4gKiBDb3B5cmlnaHQgMjAxMSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIGNvbnRyaWJ1dG9yc1xuICogTGljZW5zZWQgdW5kZXIgdGhlIE5ldyBCU0QgbGljZW5zZS4gU2VlIExJQ0VOU0Ugb3I6XG4gKiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlXG4gKi9cblxuLyoqXG4gKiBUaGlzIGlzIGEgaGVscGVyIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHZhbHVlcyBmcm9tIHBhcmFtZXRlci9vcHRpb25zXG4gKiBvYmplY3RzLlxuICpcbiAqIEBwYXJhbSBhcmdzIFRoZSBvYmplY3Qgd2UgYXJlIGV4dHJhY3RpbmcgdmFsdWVzIGZyb21cbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB3ZSBhcmUgZ2V0dGluZy5cbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgQW4gb3B0aW9uYWwgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBwcm9wZXJ0eSBpcyBtaXNzaW5nXG4gKiBmcm9tIHRoZSBvYmplY3QuIElmIHRoaXMgaXMgbm90IHNwZWNpZmllZCBhbmQgdGhlIHByb3BlcnR5IGlzIG1pc3NpbmcsIGFuXG4gKiBlcnJvciB3aWxsIGJlIHRocm93bi5cbiAqL1xuZnVuY3Rpb24gZ2V0QXJnKGFBcmdzLCBhTmFtZSwgYURlZmF1bHRWYWx1ZSkge1xuICBpZiAoYU5hbWUgaW4gYUFyZ3MpIHtcbiAgICByZXR1cm4gYUFyZ3NbYU5hbWVdO1xuICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDMpIHtcbiAgICByZXR1cm4gYURlZmF1bHRWYWx1ZTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiJyArIGFOYW1lICsgJ1wiIGlzIGEgcmVxdWlyZWQgYXJndW1lbnQuJyk7XG4gIH1cbn1cbmV4cG9ydHMuZ2V0QXJnID0gZ2V0QXJnO1xuXG52YXIgdXJsUmVnZXhwID0gL14oPzooW1xcdytcXC0uXSspOik/XFwvXFwvKD86KFxcdys6XFx3KylAKT8oW1xcdy5dKikoPzo6KFxcZCspKT8oXFxTKikkLztcbnZhciBkYXRhVXJsUmVnZXhwID0gL15kYXRhOi4rXFwsLiskLztcblxuZnVuY3Rpb24gdXJsUGFyc2UoYVVybCkge1xuICB2YXIgbWF0Y2ggPSBhVXJsLm1hdGNoKHVybFJlZ2V4cCk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHNjaGVtZTogbWF0Y2hbMV0sXG4gICAgYXV0aDogbWF0Y2hbMl0sXG4gICAgaG9zdDogbWF0Y2hbM10sXG4gICAgcG9ydDogbWF0Y2hbNF0sXG4gICAgcGF0aDogbWF0Y2hbNV1cbiAgfTtcbn1cbmV4cG9ydHMudXJsUGFyc2UgPSB1cmxQYXJzZTtcblxuZnVuY3Rpb24gdXJsR2VuZXJhdGUoYVBhcnNlZFVybCkge1xuICB2YXIgdXJsID0gJyc7XG4gIGlmIChhUGFyc2VkVXJsLnNjaGVtZSkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLnNjaGVtZSArICc6JztcbiAgfVxuICB1cmwgKz0gJy8vJztcbiAgaWYgKGFQYXJzZWRVcmwuYXV0aCkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLmF1dGggKyAnQCc7XG4gIH1cbiAgaWYgKGFQYXJzZWRVcmwuaG9zdCkge1xuICAgIHVybCArPSBhUGFyc2VkVXJsLmhvc3Q7XG4gIH1cbiAgaWYgKGFQYXJzZWRVcmwucG9ydCkge1xuICAgIHVybCArPSBcIjpcIiArIGFQYXJzZWRVcmwucG9ydFxuICB9XG4gIGlmIChhUGFyc2VkVXJsLnBhdGgpIHtcbiAgICB1cmwgKz0gYVBhcnNlZFVybC5wYXRoO1xuICB9XG4gIHJldHVybiB1cmw7XG59XG5leHBvcnRzLnVybEdlbmVyYXRlID0gdXJsR2VuZXJhdGU7XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHBhdGgsIG9yIHRoZSBwYXRoIHBvcnRpb24gb2YgYSBVUkw6XG4gKlxuICogLSBSZXBsYWNlcyBjb25zZWN1dGl2ZSBzbGFzaGVzIHdpdGggb25lIHNsYXNoLlxuICogLSBSZW1vdmVzIHVubmVjZXNzYXJ5ICcuJyBwYXJ0cy5cbiAqIC0gUmVtb3ZlcyB1bm5lY2Vzc2FyeSAnPGRpcj4vLi4nIHBhcnRzLlxuICpcbiAqIEJhc2VkIG9uIGNvZGUgaW4gdGhlIE5vZGUuanMgJ3BhdGgnIGNvcmUgbW9kdWxlLlxuICpcbiAqIEBwYXJhbSBhUGF0aCBUaGUgcGF0aCBvciB1cmwgdG8gbm9ybWFsaXplLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemUoYVBhdGgpIHtcbiAgdmFyIHBhdGggPSBhUGF0aDtcbiAgdmFyIHVybCA9IHVybFBhcnNlKGFQYXRoKTtcbiAgaWYgKHVybCkge1xuICAgIGlmICghdXJsLnBhdGgpIHtcbiAgICAgIHJldHVybiBhUGF0aDtcbiAgICB9XG4gICAgcGF0aCA9IHVybC5wYXRoO1xuICB9XG4gIHZhciBpc0Fic29sdXRlID0gZXhwb3J0cy5pc0Fic29sdXRlKHBhdGgpO1xuXG4gIHZhciBwYXJ0cyA9IHBhdGguc3BsaXQoL1xcLysvKTtcbiAgZm9yICh2YXIgcGFydCwgdXAgPSAwLCBpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBwYXJ0ID0gcGFydHNbaV07XG4gICAgaWYgKHBhcnQgPT09ICcuJykge1xuICAgICAgcGFydHMuc3BsaWNlKGksIDEpO1xuICAgIH0gZWxzZSBpZiAocGFydCA9PT0gJy4uJykge1xuICAgICAgdXArKztcbiAgICB9IGVsc2UgaWYgKHVwID4gMCkge1xuICAgICAgaWYgKHBhcnQgPT09ICcnKSB7XG4gICAgICAgIC8vIFRoZSBmaXJzdCBwYXJ0IGlzIGJsYW5rIGlmIHRoZSBwYXRoIGlzIGFic29sdXRlLiBUcnlpbmcgdG8gZ29cbiAgICAgICAgLy8gYWJvdmUgdGhlIHJvb3QgaXMgYSBuby1vcC4gVGhlcmVmb3JlIHdlIGNhbiByZW1vdmUgYWxsICcuLicgcGFydHNcbiAgICAgICAgLy8gZGlyZWN0bHkgYWZ0ZXIgdGhlIHJvb3QuXG4gICAgICAgIHBhcnRzLnNwbGljZShpICsgMSwgdXApO1xuICAgICAgICB1cCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMik7XG4gICAgICAgIHVwLS07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHBhdGggPSBwYXJ0cy5qb2luKCcvJyk7XG5cbiAgaWYgKHBhdGggPT09ICcnKSB7XG4gICAgcGF0aCA9IGlzQWJzb2x1dGUgPyAnLycgOiAnLic7XG4gIH1cblxuICBpZiAodXJsKSB7XG4gICAgdXJsLnBhdGggPSBwYXRoO1xuICAgIHJldHVybiB1cmxHZW5lcmF0ZSh1cmwpO1xuICB9XG4gIHJldHVybiBwYXRoO1xufVxuZXhwb3J0cy5ub3JtYWxpemUgPSBub3JtYWxpemU7XG5cbi8qKlxuICogSm9pbnMgdHdvIHBhdGhzL1VSTHMuXG4gKlxuICogQHBhcmFtIGFSb290IFRoZSByb290IHBhdGggb3IgVVJMLlxuICogQHBhcmFtIGFQYXRoIFRoZSBwYXRoIG9yIFVSTCB0byBiZSBqb2luZWQgd2l0aCB0aGUgcm9vdC5cbiAqXG4gKiAtIElmIGFQYXRoIGlzIGEgVVJMIG9yIGEgZGF0YSBVUkksIGFQYXRoIGlzIHJldHVybmVkLCB1bmxlc3MgYVBhdGggaXMgYVxuICogICBzY2hlbWUtcmVsYXRpdmUgVVJMOiBUaGVuIHRoZSBzY2hlbWUgb2YgYVJvb3QsIGlmIGFueSwgaXMgcHJlcGVuZGVkXG4gKiAgIGZpcnN0LlxuICogLSBPdGhlcndpc2UgYVBhdGggaXMgYSBwYXRoLiBJZiBhUm9vdCBpcyBhIFVSTCwgdGhlbiBpdHMgcGF0aCBwb3J0aW9uXG4gKiAgIGlzIHVwZGF0ZWQgd2l0aCB0aGUgcmVzdWx0IGFuZCBhUm9vdCBpcyByZXR1cm5lZC4gT3RoZXJ3aXNlIHRoZSByZXN1bHRcbiAqICAgaXMgcmV0dXJuZWQuXG4gKiAgIC0gSWYgYVBhdGggaXMgYWJzb2x1dGUsIHRoZSByZXN1bHQgaXMgYVBhdGguXG4gKiAgIC0gT3RoZXJ3aXNlIHRoZSB0d28gcGF0aHMgYXJlIGpvaW5lZCB3aXRoIGEgc2xhc2guXG4gKiAtIEpvaW5pbmcgZm9yIGV4YW1wbGUgJ2h0dHA6Ly8nIGFuZCAnd3d3LmV4YW1wbGUuY29tJyBpcyBhbHNvIHN1cHBvcnRlZC5cbiAqL1xuZnVuY3Rpb24gam9pbihhUm9vdCwgYVBhdGgpIHtcbiAgaWYgKGFSb290ID09PSBcIlwiKSB7XG4gICAgYVJvb3QgPSBcIi5cIjtcbiAgfVxuICBpZiAoYVBhdGggPT09IFwiXCIpIHtcbiAgICBhUGF0aCA9IFwiLlwiO1xuICB9XG4gIHZhciBhUGF0aFVybCA9IHVybFBhcnNlKGFQYXRoKTtcbiAgdmFyIGFSb290VXJsID0gdXJsUGFyc2UoYVJvb3QpO1xuICBpZiAoYVJvb3RVcmwpIHtcbiAgICBhUm9vdCA9IGFSb290VXJsLnBhdGggfHwgJy8nO1xuICB9XG5cbiAgLy8gYGpvaW4oZm9vLCAnLy93d3cuZXhhbXBsZS5vcmcnKWBcbiAgaWYgKGFQYXRoVXJsICYmICFhUGF0aFVybC5zY2hlbWUpIHtcbiAgICBpZiAoYVJvb3RVcmwpIHtcbiAgICAgIGFQYXRoVXJsLnNjaGVtZSA9IGFSb290VXJsLnNjaGVtZTtcbiAgICB9XG4gICAgcmV0dXJuIHVybEdlbmVyYXRlKGFQYXRoVXJsKTtcbiAgfVxuXG4gIGlmIChhUGF0aFVybCB8fCBhUGF0aC5tYXRjaChkYXRhVXJsUmVnZXhwKSkge1xuICAgIHJldHVybiBhUGF0aDtcbiAgfVxuXG4gIC8vIGBqb2luKCdodHRwOi8vJywgJ3d3dy5leGFtcGxlLmNvbScpYFxuICBpZiAoYVJvb3RVcmwgJiYgIWFSb290VXJsLmhvc3QgJiYgIWFSb290VXJsLnBhdGgpIHtcbiAgICBhUm9vdFVybC5ob3N0ID0gYVBhdGg7XG4gICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTtcbiAgfVxuXG4gIHZhciBqb2luZWQgPSBhUGF0aC5jaGFyQXQoMCkgPT09ICcvJ1xuICAgID8gYVBhdGhcbiAgICA6IG5vcm1hbGl6ZShhUm9vdC5yZXBsYWNlKC9cXC8rJC8sICcnKSArICcvJyArIGFQYXRoKTtcblxuICBpZiAoYVJvb3RVcmwpIHtcbiAgICBhUm9vdFVybC5wYXRoID0gam9pbmVkO1xuICAgIHJldHVybiB1cmxHZW5lcmF0ZShhUm9vdFVybCk7XG4gIH1cbiAgcmV0dXJuIGpvaW5lZDtcbn1cbmV4cG9ydHMuam9pbiA9IGpvaW47XG5cbmV4cG9ydHMuaXNBYnNvbHV0ZSA9IGZ1bmN0aW9uIChhUGF0aCkge1xuICByZXR1cm4gYVBhdGguY2hhckF0KDApID09PSAnLycgfHwgISFhUGF0aC5tYXRjaCh1cmxSZWdleHApO1xufTtcblxuLyoqXG4gKiBNYWtlIGEgcGF0aCByZWxhdGl2ZSB0byBhIFVSTCBvciBhbm90aGVyIHBhdGguXG4gKlxuICogQHBhcmFtIGFSb290IFRoZSByb290IHBhdGggb3IgVVJMLlxuICogQHBhcmFtIGFQYXRoIFRoZSBwYXRoIG9yIFVSTCB0byBiZSBtYWRlIHJlbGF0aXZlIHRvIGFSb290LlxuICovXG5mdW5jdGlvbiByZWxhdGl2ZShhUm9vdCwgYVBhdGgpIHtcbiAgaWYgKGFSb290ID09PSBcIlwiKSB7XG4gICAgYVJvb3QgPSBcIi5cIjtcbiAgfVxuXG4gIGFSb290ID0gYVJvb3QucmVwbGFjZSgvXFwvJC8sICcnKTtcblxuICAvLyBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIHBhdGggdG8gYmUgYWJvdmUgdGhlIHJvb3QuIEluIHRoaXMgY2FzZSwgc2ltcGx5XG4gIC8vIGNoZWNraW5nIHdoZXRoZXIgdGhlIHJvb3QgaXMgYSBwcmVmaXggb2YgdGhlIHBhdGggd29uJ3Qgd29yay4gSW5zdGVhZCwgd2VcbiAgLy8gbmVlZCB0byByZW1vdmUgY29tcG9uZW50cyBmcm9tIHRoZSByb290IG9uZSBieSBvbmUsIHVudGlsIGVpdGhlciB3ZSBmaW5kXG4gIC8vIGEgcHJlZml4IHRoYXQgZml0cywgb3Igd2UgcnVuIG91dCBvZiBjb21wb25lbnRzIHRvIHJlbW92ZS5cbiAgdmFyIGxldmVsID0gMDtcbiAgd2hpbGUgKGFQYXRoLmluZGV4T2YoYVJvb3QgKyAnLycpICE9PSAwKSB7XG4gICAgdmFyIGluZGV4ID0gYVJvb3QubGFzdEluZGV4T2YoXCIvXCIpO1xuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHJldHVybiBhUGF0aDtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgb25seSBwYXJ0IG9mIHRoZSByb290IHRoYXQgaXMgbGVmdCBpcyB0aGUgc2NoZW1lIChpLmUuIGh0dHA6Ly8sXG4gICAgLy8gZmlsZTovLy8sIGV0Yy4pLCBvbmUgb3IgbW9yZSBzbGFzaGVzICgvKSwgb3Igc2ltcGx5IG5vdGhpbmcgYXQgYWxsLCB3ZVxuICAgIC8vIGhhdmUgZXhoYXVzdGVkIGFsbCBjb21wb25lbnRzLCBzbyB0aGUgcGF0aCBpcyBub3QgcmVsYXRpdmUgdG8gdGhlIHJvb3QuXG4gICAgYVJvb3QgPSBhUm9vdC5zbGljZSgwLCBpbmRleCk7XG4gICAgaWYgKGFSb290Lm1hdGNoKC9eKFteXFwvXSs6XFwvKT9cXC8qJC8pKSB7XG4gICAgICByZXR1cm4gYVBhdGg7XG4gICAgfVxuXG4gICAgKytsZXZlbDtcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB3ZSBhZGQgYSBcIi4uL1wiIGZvciBlYWNoIGNvbXBvbmVudCB3ZSByZW1vdmVkIGZyb20gdGhlIHJvb3QuXG4gIHJldHVybiBBcnJheShsZXZlbCArIDEpLmpvaW4oXCIuLi9cIikgKyBhUGF0aC5zdWJzdHIoYVJvb3QubGVuZ3RoICsgMSk7XG59XG5leHBvcnRzLnJlbGF0aXZlID0gcmVsYXRpdmU7XG5cbnZhciBzdXBwb3J0c051bGxQcm90byA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciBvYmogPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICByZXR1cm4gISgnX19wcm90b19fJyBpbiBvYmopO1xufSgpKTtcblxuZnVuY3Rpb24gaWRlbnRpdHkgKHMpIHtcbiAgcmV0dXJuIHM7XG59XG5cbi8qKlxuICogQmVjYXVzZSBiZWhhdmlvciBnb2VzIHdhY2t5IHdoZW4geW91IHNldCBgX19wcm90b19fYCBvbiBvYmplY3RzLCB3ZVxuICogaGF2ZSB0byBwcmVmaXggYWxsIHRoZSBzdHJpbmdzIGluIG91ciBzZXQgd2l0aCBhbiBhcmJpdHJhcnkgY2hhcmFjdGVyLlxuICpcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL3B1bGwvMzEgYW5kXG4gKiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2lzc3Vlcy8zMFxuICpcbiAqIEBwYXJhbSBTdHJpbmcgYVN0clxuICovXG5mdW5jdGlvbiB0b1NldFN0cmluZyhhU3RyKSB7XG4gIGlmIChpc1Byb3RvU3RyaW5nKGFTdHIpKSB7XG4gICAgcmV0dXJuICckJyArIGFTdHI7XG4gIH1cblxuICByZXR1cm4gYVN0cjtcbn1cbmV4cG9ydHMudG9TZXRTdHJpbmcgPSBzdXBwb3J0c051bGxQcm90byA/IGlkZW50aXR5IDogdG9TZXRTdHJpbmc7XG5cbmZ1bmN0aW9uIGZyb21TZXRTdHJpbmcoYVN0cikge1xuICBpZiAoaXNQcm90b1N0cmluZyhhU3RyKSkge1xuICAgIHJldHVybiBhU3RyLnNsaWNlKDEpO1xuICB9XG5cbiAgcmV0dXJuIGFTdHI7XG59XG5leHBvcnRzLmZyb21TZXRTdHJpbmcgPSBzdXBwb3J0c051bGxQcm90byA/IGlkZW50aXR5IDogZnJvbVNldFN0cmluZztcblxuZnVuY3Rpb24gaXNQcm90b1N0cmluZyhzKSB7XG4gIGlmICghcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBsZW5ndGggPSBzLmxlbmd0aDtcblxuICBpZiAobGVuZ3RoIDwgOSAvKiBcIl9fcHJvdG9fX1wiLmxlbmd0aCAqLykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChzLmNoYXJDb2RlQXQobGVuZ3RoIC0gMSkgIT09IDk1ICAvKiAnXycgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSAyKSAhPT0gOTUgIC8qICdfJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDMpICE9PSAxMTEgLyogJ28nICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gNCkgIT09IDExNiAvKiAndCcgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA1KSAhPT0gMTExIC8qICdvJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDYpICE9PSAxMTQgLyogJ3InICovIHx8XG4gICAgICBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gNykgIT09IDExMiAvKiAncCcgKi8gfHxcbiAgICAgIHMuY2hhckNvZGVBdChsZW5ndGggLSA4KSAhPT0gOTUgIC8qICdfJyAqLyB8fFxuICAgICAgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDkpICE9PSA5NSAgLyogJ18nICovKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IGxlbmd0aCAtIDEwOyBpID49IDA7IGktLSkge1xuICAgIGlmIChzLmNoYXJDb2RlQXQoaSkgIT09IDM2IC8qICckJyAqLykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIENvbXBhcmF0b3IgYmV0d2VlbiB0d28gbWFwcGluZ3Mgd2hlcmUgdGhlIG9yaWdpbmFsIHBvc2l0aW9ucyBhcmUgY29tcGFyZWQuXG4gKlxuICogT3B0aW9uYWxseSBwYXNzIGluIGB0cnVlYCBhcyBgb25seUNvbXBhcmVHZW5lcmF0ZWRgIHRvIGNvbnNpZGVyIHR3b1xuICogbWFwcGluZ3Mgd2l0aCB0aGUgc2FtZSBvcmlnaW5hbCBzb3VyY2UvbGluZS9jb2x1bW4sIGJ1dCBkaWZmZXJlbnQgZ2VuZXJhdGVkXG4gKiBsaW5lIGFuZCBjb2x1bW4gdGhlIHNhbWUuIFVzZWZ1bCB3aGVuIHNlYXJjaGluZyBmb3IgYSBtYXBwaW5nIHdpdGggYVxuICogc3R1YmJlZCBvdXQgbWFwcGluZy5cbiAqL1xuZnVuY3Rpb24gY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMobWFwcGluZ0EsIG1hcHBpbmdCLCBvbmx5Q29tcGFyZU9yaWdpbmFsKSB7XG4gIHZhciBjbXAgPSBtYXBwaW5nQS5zb3VyY2UgLSBtYXBwaW5nQi5zb3VyY2U7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDAgfHwgb25seUNvbXBhcmVPcmlnaW5hbCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkTGluZSAtIG1hcHBpbmdCLmdlbmVyYXRlZExpbmU7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIG1hcHBpbmdBLm5hbWUgLSBtYXBwaW5nQi5uYW1lO1xufVxuZXhwb3J0cy5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyA9IGNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zO1xuXG4vKipcbiAqIENvbXBhcmF0b3IgYmV0d2VlbiB0d28gbWFwcGluZ3Mgd2l0aCBkZWZsYXRlZCBzb3VyY2UgYW5kIG5hbWUgaW5kaWNlcyB3aGVyZVxuICogdGhlIGdlbmVyYXRlZCBwb3NpdGlvbnMgYXJlIGNvbXBhcmVkLlxuICpcbiAqIE9wdGlvbmFsbHkgcGFzcyBpbiBgdHJ1ZWAgYXMgYG9ubHlDb21wYXJlR2VuZXJhdGVkYCB0byBjb25zaWRlciB0d29cbiAqIG1hcHBpbmdzIHdpdGggdGhlIHNhbWUgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiwgYnV0IGRpZmZlcmVudFxuICogc291cmNlL25hbWUvb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHRoZSBzYW1lLiBVc2VmdWwgd2hlbiBzZWFyY2hpbmcgZm9yIGFcbiAqIG1hcHBpbmcgd2l0aCBhIHN0dWJiZWQgb3V0IG1hcHBpbmcuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQiwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHtcbiAgdmFyIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbiAtIG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjtcbiAgaWYgKGNtcCAhPT0gMCB8fCBvbmx5Q29tcGFyZUdlbmVyYXRlZCkge1xuICAgIHJldHVybiBjbXA7XG4gIH1cblxuICBjbXAgPSBtYXBwaW5nQS5zb3VyY2UgLSBtYXBwaW5nQi5zb3VyY2U7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIG1hcHBpbmdBLm5hbWUgLSBtYXBwaW5nQi5uYW1lO1xufVxuZXhwb3J0cy5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNEZWZsYXRlZCA9IGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkO1xuXG5mdW5jdGlvbiBzdHJjbXAoYVN0cjEsIGFTdHIyKSB7XG4gIGlmIChhU3RyMSA9PT0gYVN0cjIpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmIChhU3RyMSA+IGFTdHIyKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICByZXR1cm4gLTE7XG59XG5cbi8qKlxuICogQ29tcGFyYXRvciBiZXR3ZWVuIHR3byBtYXBwaW5ncyB3aXRoIGluZmxhdGVkIHNvdXJjZSBhbmQgbmFtZSBzdHJpbmdzIHdoZXJlXG4gKiB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9ucyBhcmUgY29tcGFyZWQuXG4gKi9cbmZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQikge1xuICB2YXIgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkTGluZSAtIG1hcHBpbmdCLmdlbmVyYXRlZExpbmU7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0EuZ2VuZXJhdGVkQ29sdW1uIC0gbWFwcGluZ0IuZ2VuZXJhdGVkQ29sdW1uO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxMaW5lIC0gbWFwcGluZ0Iub3JpZ2luYWxMaW5lO1xuICBpZiAoY21wICE9PSAwKSB7XG4gICAgcmV0dXJuIGNtcDtcbiAgfVxuXG4gIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsQ29sdW1uIC0gbWFwcGluZ0Iub3JpZ2luYWxDb2x1bW47XG4gIGlmIChjbXAgIT09IDApIHtcbiAgICByZXR1cm4gY21wO1xuICB9XG5cbiAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTtcbn1cbmV4cG9ydHMuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQgPSBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL3V0aWwuanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIGhhcyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgaGFzTmF0aXZlTWFwID0gdHlwZW9mIE1hcCAhPT0gXCJ1bmRlZmluZWRcIjtcblxuLyoqXG4gKiBBIGRhdGEgc3RydWN0dXJlIHdoaWNoIGlzIGEgY29tYmluYXRpb24gb2YgYW4gYXJyYXkgYW5kIGEgc2V0LiBBZGRpbmcgYSBuZXdcbiAqIG1lbWJlciBpcyBPKDEpLCB0ZXN0aW5nIGZvciBtZW1iZXJzaGlwIGlzIE8oMSksIGFuZCBmaW5kaW5nIHRoZSBpbmRleCBvZiBhblxuICogZWxlbWVudCBpcyBPKDEpLiBSZW1vdmluZyBlbGVtZW50cyBmcm9tIHRoZSBzZXQgaXMgbm90IHN1cHBvcnRlZC4gT25seVxuICogc3RyaW5ncyBhcmUgc3VwcG9ydGVkIGZvciBtZW1iZXJzaGlwLlxuICovXG5mdW5jdGlvbiBBcnJheVNldCgpIHtcbiAgdGhpcy5fYXJyYXkgPSBbXTtcbiAgdGhpcy5fc2V0ID0gaGFzTmF0aXZlTWFwID8gbmV3IE1hcCgpIDogT2JqZWN0LmNyZWF0ZShudWxsKTtcbn1cblxuLyoqXG4gKiBTdGF0aWMgbWV0aG9kIGZvciBjcmVhdGluZyBBcnJheVNldCBpbnN0YW5jZXMgZnJvbSBhbiBleGlzdGluZyBhcnJheS5cbiAqL1xuQXJyYXlTZXQuZnJvbUFycmF5ID0gZnVuY3Rpb24gQXJyYXlTZXRfZnJvbUFycmF5KGFBcnJheSwgYUFsbG93RHVwbGljYXRlcykge1xuICB2YXIgc2V0ID0gbmV3IEFycmF5U2V0KCk7XG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhQXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBzZXQuYWRkKGFBcnJheVtpXSwgYUFsbG93RHVwbGljYXRlcyk7XG4gIH1cbiAgcmV0dXJuIHNldDtcbn07XG5cbi8qKlxuICogUmV0dXJuIGhvdyBtYW55IHVuaXF1ZSBpdGVtcyBhcmUgaW4gdGhpcyBBcnJheVNldC4gSWYgZHVwbGljYXRlcyBoYXZlIGJlZW5cbiAqIGFkZGVkLCB0aGFuIHRob3NlIGRvIG5vdCBjb3VudCB0b3dhcmRzIHRoZSBzaXplLlxuICpcbiAqIEByZXR1cm5zIE51bWJlclxuICovXG5BcnJheVNldC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uIEFycmF5U2V0X3NpemUoKSB7XG4gIHJldHVybiBoYXNOYXRpdmVNYXAgPyB0aGlzLl9zZXQuc2l6ZSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMuX3NldCkubGVuZ3RoO1xufTtcblxuLyoqXG4gKiBBZGQgdGhlIGdpdmVuIHN0cmluZyB0byB0aGlzIHNldC5cbiAqXG4gKiBAcGFyYW0gU3RyaW5nIGFTdHJcbiAqL1xuQXJyYXlTZXQucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIEFycmF5U2V0X2FkZChhU3RyLCBhQWxsb3dEdXBsaWNhdGVzKSB7XG4gIHZhciBzU3RyID0gaGFzTmF0aXZlTWFwID8gYVN0ciA6IHV0aWwudG9TZXRTdHJpbmcoYVN0cik7XG4gIHZhciBpc0R1cGxpY2F0ZSA9IGhhc05hdGl2ZU1hcCA/IHRoaXMuaGFzKGFTdHIpIDogaGFzLmNhbGwodGhpcy5fc2V0LCBzU3RyKTtcbiAgdmFyIGlkeCA9IHRoaXMuX2FycmF5Lmxlbmd0aDtcbiAgaWYgKCFpc0R1cGxpY2F0ZSB8fCBhQWxsb3dEdXBsaWNhdGVzKSB7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhU3RyKTtcbiAgfVxuICBpZiAoIWlzRHVwbGljYXRlKSB7XG4gICAgaWYgKGhhc05hdGl2ZU1hcCkge1xuICAgICAgdGhpcy5fc2V0LnNldChhU3RyLCBpZHgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRbc1N0cl0gPSBpZHg7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIElzIHRoZSBnaXZlbiBzdHJpbmcgYSBtZW1iZXIgb2YgdGhpcyBzZXQ/XG4gKlxuICogQHBhcmFtIFN0cmluZyBhU3RyXG4gKi9cbkFycmF5U2V0LnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiBBcnJheVNldF9oYXMoYVN0cikge1xuICBpZiAoaGFzTmF0aXZlTWFwKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NldC5oYXMoYVN0cik7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHNTdHIgPSB1dGlsLnRvU2V0U3RyaW5nKGFTdHIpO1xuICAgIHJldHVybiBoYXMuY2FsbCh0aGlzLl9zZXQsIHNTdHIpO1xuICB9XG59O1xuXG4vKipcbiAqIFdoYXQgaXMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGFycmF5P1xuICpcbiAqIEBwYXJhbSBTdHJpbmcgYVN0clxuICovXG5BcnJheVNldC5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIEFycmF5U2V0X2luZGV4T2YoYVN0cikge1xuICBpZiAoaGFzTmF0aXZlTWFwKSB7XG4gICAgdmFyIGlkeCA9IHRoaXMuX3NldC5nZXQoYVN0cik7XG4gICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICAgIHJldHVybiBpZHg7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBzU3RyID0gdXRpbC50b1NldFN0cmluZyhhU3RyKTtcbiAgICBpZiAoaGFzLmNhbGwodGhpcy5fc2V0LCBzU3RyKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NldFtzU3RyXTtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1wiJyArIGFTdHIgKyAnXCIgaXMgbm90IGluIHRoZSBzZXQuJyk7XG59O1xuXG4vKipcbiAqIFdoYXQgaXMgdGhlIGVsZW1lbnQgYXQgdGhlIGdpdmVuIGluZGV4P1xuICpcbiAqIEBwYXJhbSBOdW1iZXIgYUlkeFxuICovXG5BcnJheVNldC5wcm90b3R5cGUuYXQgPSBmdW5jdGlvbiBBcnJheVNldF9hdChhSWR4KSB7XG4gIGlmIChhSWR4ID49IDAgJiYgYUlkeCA8IHRoaXMuX2FycmF5Lmxlbmd0aCkge1xuICAgIHJldHVybiB0aGlzLl9hcnJheVthSWR4XTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ05vIGVsZW1lbnQgaW5kZXhlZCBieSAnICsgYUlkeCk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGFycmF5IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2V0ICh3aGljaCBoYXMgdGhlIHByb3BlciBpbmRpY2VzXG4gKiBpbmRpY2F0ZWQgYnkgaW5kZXhPZikuIE5vdGUgdGhhdCB0aGlzIGlzIGEgY29weSBvZiB0aGUgaW50ZXJuYWwgYXJyYXkgdXNlZFxuICogZm9yIHN0b3JpbmcgdGhlIG1lbWJlcnMgc28gdGhhdCBubyBvbmUgY2FuIG1lc3Mgd2l0aCBpbnRlcm5hbCBzdGF0ZS5cbiAqL1xuQXJyYXlTZXQucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiBBcnJheVNldF90b0FycmF5KCkge1xuICByZXR1cm4gdGhpcy5fYXJyYXkuc2xpY2UoKTtcbn07XG5cbmV4cG9ydHMuQXJyYXlTZXQgPSBBcnJheVNldDtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vbGliL2FycmF5LXNldC5qc1xuLy8gbW9kdWxlIGlkID0gNVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTQgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgbWFwcGluZ0IgaXMgYWZ0ZXIgbWFwcGluZ0Egd2l0aCByZXNwZWN0IHRvIGdlbmVyYXRlZFxuICogcG9zaXRpb24uXG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlZFBvc2l0aW9uQWZ0ZXIobWFwcGluZ0EsIG1hcHBpbmdCKSB7XG4gIC8vIE9wdGltaXplZCBmb3IgbW9zdCBjb21tb24gY2FzZVxuICB2YXIgbGluZUEgPSBtYXBwaW5nQS5nZW5lcmF0ZWRMaW5lO1xuICB2YXIgbGluZUIgPSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lO1xuICB2YXIgY29sdW1uQSA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbjtcbiAgdmFyIGNvbHVtbkIgPSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47XG4gIHJldHVybiBsaW5lQiA+IGxpbmVBIHx8IGxpbmVCID09IGxpbmVBICYmIGNvbHVtbkIgPj0gY29sdW1uQSB8fFxuICAgICAgICAgdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nQSwgbWFwcGluZ0IpIDw9IDA7XG59XG5cbi8qKlxuICogQSBkYXRhIHN0cnVjdHVyZSB0byBwcm92aWRlIGEgc29ydGVkIHZpZXcgb2YgYWNjdW11bGF0ZWQgbWFwcGluZ3MgaW4gYVxuICogcGVyZm9ybWFuY2UgY29uc2Npb3VzIG1hbm5lci4gSXQgdHJhZGVzIGEgbmVnbGliYWJsZSBvdmVyaGVhZCBpbiBnZW5lcmFsXG4gKiBjYXNlIGZvciBhIGxhcmdlIHNwZWVkdXAgaW4gY2FzZSBvZiBtYXBwaW5ncyBiZWluZyBhZGRlZCBpbiBvcmRlci5cbiAqL1xuZnVuY3Rpb24gTWFwcGluZ0xpc3QoKSB7XG4gIHRoaXMuX2FycmF5ID0gW107XG4gIHRoaXMuX3NvcnRlZCA9IHRydWU7XG4gIC8vIFNlcnZlcyBhcyBpbmZpbXVtXG4gIHRoaXMuX2xhc3QgPSB7Z2VuZXJhdGVkTGluZTogLTEsIGdlbmVyYXRlZENvbHVtbjogMH07XG59XG5cbi8qKlxuICogSXRlcmF0ZSB0aHJvdWdoIGludGVybmFsIGl0ZW1zLiBUaGlzIG1ldGhvZCB0YWtlcyB0aGUgc2FtZSBhcmd1bWVudHMgdGhhdFxuICogYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCB0YWtlcy5cbiAqXG4gKiBOT1RFOiBUaGUgb3JkZXIgb2YgdGhlIG1hcHBpbmdzIGlzIE5PVCBndWFyYW50ZWVkLlxuICovXG5NYXBwaW5nTGlzdC5wcm90b3R5cGUudW5zb3J0ZWRGb3JFYWNoID1cbiAgZnVuY3Rpb24gTWFwcGluZ0xpc3RfZm9yRWFjaChhQ2FsbGJhY2ssIGFUaGlzQXJnKSB7XG4gICAgdGhpcy5fYXJyYXkuZm9yRWFjaChhQ2FsbGJhY2ssIGFUaGlzQXJnKTtcbiAgfTtcblxuLyoqXG4gKiBBZGQgdGhlIGdpdmVuIHNvdXJjZSBtYXBwaW5nLlxuICpcbiAqIEBwYXJhbSBPYmplY3QgYU1hcHBpbmdcbiAqL1xuTWFwcGluZ0xpc3QucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIE1hcHBpbmdMaXN0X2FkZChhTWFwcGluZykge1xuICBpZiAoZ2VuZXJhdGVkUG9zaXRpb25BZnRlcih0aGlzLl9sYXN0LCBhTWFwcGluZykpIHtcbiAgICB0aGlzLl9sYXN0ID0gYU1hcHBpbmc7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fc29ydGVkID0gZmFsc2U7XG4gICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7XG4gIH1cbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZmxhdCwgc29ydGVkIGFycmF5IG9mIG1hcHBpbmdzLiBUaGUgbWFwcGluZ3MgYXJlIHNvcnRlZCBieVxuICogZ2VuZXJhdGVkIHBvc2l0aW9uLlxuICpcbiAqIFdBUk5JTkc6IFRoaXMgbWV0aG9kIHJldHVybnMgaW50ZXJuYWwgZGF0YSB3aXRob3V0IGNvcHlpbmcsIGZvclxuICogcGVyZm9ybWFuY2UuIFRoZSByZXR1cm4gdmFsdWUgbXVzdCBOT1QgYmUgbXV0YXRlZCwgYW5kIHNob3VsZCBiZSB0cmVhdGVkIGFzXG4gKiBhbiBpbW11dGFibGUgYm9ycm93LiBJZiB5b3Ugd2FudCB0byB0YWtlIG93bmVyc2hpcCwgeW91IG11c3QgbWFrZSB5b3VyIG93blxuICogY29weS5cbiAqL1xuTWFwcGluZ0xpc3QucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiBNYXBwaW5nTGlzdF90b0FycmF5KCkge1xuICBpZiAoIXRoaXMuX3NvcnRlZCkge1xuICAgIHRoaXMuX2FycmF5LnNvcnQodXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZCk7XG4gICAgdGhpcy5fc29ydGVkID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gdGhpcy5fYXJyYXk7XG59O1xuXG5leHBvcnRzLk1hcHBpbmdMaXN0ID0gTWFwcGluZ0xpc3Q7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2xpYi9tYXBwaW5nLWxpc3QuanNcbi8vIG1vZHVsZSBpZCA9IDZcbi8vIG1vZHVsZSBjaHVua3MgPSAwIiwiLyogLSotIE1vZGU6IGpzOyBqcy1pbmRlbnQtbGV2ZWw6IDI7IC0qLSAqL1xuLypcbiAqIENvcHlyaWdodCAyMDExIE1vemlsbGEgRm91bmRhdGlvbiBhbmQgY29udHJpYnV0b3JzXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTmV3IEJTRCBsaWNlbnNlLiBTZWUgTElDRU5TRSBvcjpcbiAqIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2VcbiAqL1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xudmFyIGJpbmFyeVNlYXJjaCA9IHJlcXVpcmUoJy4vYmluYXJ5LXNlYXJjaCcpO1xudmFyIEFycmF5U2V0ID0gcmVxdWlyZSgnLi9hcnJheS1zZXQnKS5BcnJheVNldDtcbnZhciBiYXNlNjRWTFEgPSByZXF1aXJlKCcuL2Jhc2U2NC12bHEnKTtcbnZhciBxdWlja1NvcnQgPSByZXF1aXJlKCcuL3F1aWNrLXNvcnQnKS5xdWlja1NvcnQ7XG5cbmZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXApIHtcbiAgdmFyIHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7XG4gIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gJ3N0cmluZycpIHtcbiAgICBzb3VyY2VNYXAgPSBKU09OLnBhcnNlKGFTb3VyY2VNYXAucmVwbGFjZSgvXlxcKVxcXVxcfScvLCAnJykpO1xuICB9XG5cbiAgcmV0dXJuIHNvdXJjZU1hcC5zZWN0aW9ucyAhPSBudWxsXG4gICAgPyBuZXcgSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcClcbiAgICA6IG5ldyBCYXNpY1NvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcCk7XG59XG5cblNvdXJjZU1hcENvbnN1bWVyLmZyb21Tb3VyY2VNYXAgPSBmdW5jdGlvbihhU291cmNlTWFwKSB7XG4gIHJldHVybiBCYXNpY1NvdXJjZU1hcENvbnN1bWVyLmZyb21Tb3VyY2VNYXAoYVNvdXJjZU1hcCk7XG59XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXBwaW5nIHNwZWMgdGhhdCB3ZSBhcmUgY29uc3VtaW5nLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3ZlcnNpb24gPSAzO1xuXG4vLyBgX19nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kIGBfX29yaWdpbmFsTWFwcGluZ3NgIGFyZSBhcnJheXMgdGhhdCBob2xkIHRoZVxuLy8gcGFyc2VkIG1hcHBpbmcgY29vcmRpbmF0ZXMgZnJvbSB0aGUgc291cmNlIG1hcCdzIFwibWFwcGluZ3NcIiBhdHRyaWJ1dGUuIFRoZXlcbi8vIGFyZSBsYXppbHkgaW5zdGFudGlhdGVkLCBhY2Nlc3NlZCB2aWEgdGhlIGBfZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuLy8gYF9vcmlnaW5hbE1hcHBpbmdzYCBnZXR0ZXJzIHJlc3BlY3RpdmVseSwgYW5kIHdlIG9ubHkgcGFyc2UgdGhlIG1hcHBpbmdzXG4vLyBhbmQgY3JlYXRlIHRoZXNlIGFycmF5cyBvbmNlIHF1ZXJpZWQgZm9yIGEgc291cmNlIGxvY2F0aW9uLiBXZSBqdW1wIHRocm91Z2hcbi8vIHRoZXNlIGhvb3BzIGJlY2F1c2UgdGhlcmUgY2FuIGJlIG1hbnkgdGhvdXNhbmRzIG9mIG1hcHBpbmdzLCBhbmQgcGFyc2luZ1xuLy8gdGhlbSBpcyBleHBlbnNpdmUsIHNvIHdlIG9ubHkgd2FudCB0byBkbyBpdCBpZiB3ZSBtdXN0LlxuLy9cbi8vIEVhY2ggb2JqZWN0IGluIHRoZSBhcnJheXMgaXMgb2YgdGhlIGZvcm06XG4vL1xuLy8gICAgIHtcbi8vICAgICAgIGdlbmVyYXRlZExpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIGNvZGUsXG4vLyAgICAgICBnZW5lcmF0ZWRDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgY29kZSxcbi8vICAgICAgIHNvdXJjZTogVGhlIHBhdGggdG8gdGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlIHRoYXQgZ2VuZXJhdGVkIHRoaXNcbi8vICAgICAgICAgICAgICAgY2h1bmsgb2YgY29kZSxcbi8vICAgICAgIG9yaWdpbmFsTGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdFxuLy8gICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kcyB0byB0aGlzIGNodW5rIG9mIGdlbmVyYXRlZCBjb2RlLFxuLy8gICAgICAgb3JpZ2luYWxDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdFxuLy8gICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsXG4vLyAgICAgICBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgb3JpZ2luYWwgc3ltYm9sIHdoaWNoIGdlbmVyYXRlZCB0aGlzIGNodW5rIG9mXG4vLyAgICAgICAgICAgICBjb2RlLlxuLy8gICAgIH1cbi8vXG4vLyBBbGwgcHJvcGVydGllcyBleGNlcHQgZm9yIGBnZW5lcmF0ZWRMaW5lYCBhbmQgYGdlbmVyYXRlZENvbHVtbmAgY2FuIGJlXG4vLyBgbnVsbGAuXG4vL1xuLy8gYF9nZW5lcmF0ZWRNYXBwaW5nc2AgaXMgb3JkZXJlZCBieSB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9ucy5cbi8vXG4vLyBgX29yaWdpbmFsTWFwcGluZ3NgIGlzIG9yZGVyZWQgYnkgdGhlIG9yaWdpbmFsIHBvc2l0aW9ucy5cblxuU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBudWxsO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSwgJ19nZW5lcmF0ZWRNYXBwaW5ncycsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCF0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MpIHtcbiAgICAgIHRoaXMuX3BhcnNlTWFwcGluZ3ModGhpcy5fbWFwcGluZ3MsIHRoaXMuc291cmNlUm9vdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncztcbiAgfVxufSk7XG5cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fX29yaWdpbmFsTWFwcGluZ3MgPSBudWxsO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSwgJ19vcmlnaW5hbE1hcHBpbmdzJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXRoaXMuX19vcmlnaW5hbE1hcHBpbmdzKSB7XG4gICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncztcbiAgfVxufSk7XG5cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fY2hhcklzTWFwcGluZ1NlcGFyYXRvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NoYXJJc01hcHBpbmdTZXBhcmF0b3IoYVN0ciwgaW5kZXgpIHtcbiAgICB2YXIgYyA9IGFTdHIuY2hhckF0KGluZGV4KTtcbiAgICByZXR1cm4gYyA9PT0gXCI7XCIgfHwgYyA9PT0gXCIsXCI7XG4gIH07XG5cbi8qKlxuICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseVxuICogcXVlcnkgKHRoZSBvcmRlcmVkIGFycmF5cyBpbiB0aGUgYHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nc2AgYW5kXG4gKiBgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NgIHByb3BlcnRpZXMpLlxuICovXG5Tb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCBfcGFyc2VNYXBwaW5nc1wiKTtcbiAgfTtcblxuU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSID0gMTtcblNvdXJjZU1hcENvbnN1bWVyLk9SSUdJTkFMX09SREVSID0gMjtcblxuU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuU291cmNlTWFwQ29uc3VtZXIuTEVBU1RfVVBQRVJfQk9VTkQgPSAyO1xuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciBlYWNoIG1hcHBpbmcgYmV0d2VlbiBhbiBvcmlnaW5hbCBzb3VyY2UvbGluZS9jb2x1bW4gYW5kIGFcbiAqIGdlbmVyYXRlZCBsaW5lL2NvbHVtbiBpbiB0aGlzIHNvdXJjZSBtYXAuXG4gKlxuICogQHBhcmFtIEZ1bmN0aW9uIGFDYWxsYmFja1xuICogICAgICAgIFRoZSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aXRoIGVhY2ggbWFwcGluZy5cbiAqIEBwYXJhbSBPYmplY3QgYUNvbnRleHRcbiAqICAgICAgICBPcHRpb25hbC4gSWYgc3BlY2lmaWVkLCB0aGlzIG9iamVjdCB3aWxsIGJlIHRoZSB2YWx1ZSBvZiBgdGhpc2AgZXZlcnlcbiAqICAgICAgICB0aW1lIHRoYXQgYGFDYWxsYmFja2AgaXMgY2FsbGVkLlxuICogQHBhcmFtIGFPcmRlclxuICogICAgICAgIEVpdGhlciBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYCBvclxuICogICAgICAgIGBTb3VyY2VNYXBDb25zdW1lci5PUklHSU5BTF9PUkRFUmAuIFNwZWNpZmllcyB3aGV0aGVyIHlvdSB3YW50IHRvXG4gKiAgICAgICAgaXRlcmF0ZSBvdmVyIHRoZSBtYXBwaW5ncyBzb3J0ZWQgYnkgdGhlIGdlbmVyYXRlZCBmaWxlJ3MgbGluZS9jb2x1bW5cbiAqICAgICAgICBvcmRlciBvciB0aGUgb3JpZ2luYWwncyBzb3VyY2UvbGluZS9jb2x1bW4gb3JkZXIsIHJlc3BlY3RpdmVseS4gRGVmYXVsdHMgdG9cbiAqICAgICAgICBgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSYC5cbiAqL1xuU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmVhY2hNYXBwaW5nID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfZWFjaE1hcHBpbmcoYUNhbGxiYWNrLCBhQ29udGV4dCwgYU9yZGVyKSB7XG4gICAgdmFyIGNvbnRleHQgPSBhQ29udGV4dCB8fCBudWxsO1xuICAgIHZhciBvcmRlciA9IGFPcmRlciB8fCBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVI7XG5cbiAgICB2YXIgbWFwcGluZ3M7XG4gICAgc3dpdGNoIChvcmRlcikge1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOlxuICAgICAgbWFwcGluZ3MgPSB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVI6XG4gICAgICBtYXBwaW5ncyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3M7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBvcmRlciBvZiBpdGVyYXRpb24uXCIpO1xuICAgIH1cblxuICAgIHZhciBzb3VyY2VSb290ID0gdGhpcy5zb3VyY2VSb290O1xuICAgIG1hcHBpbmdzLm1hcChmdW5jdGlvbiAobWFwcGluZykge1xuICAgICAgdmFyIHNvdXJjZSA9IG1hcHBpbmcuc291cmNlID09PSBudWxsID8gbnVsbCA6IHRoaXMuX3NvdXJjZXMuYXQobWFwcGluZy5zb3VyY2UpO1xuICAgICAgaWYgKHNvdXJjZSAhPSBudWxsICYmIHNvdXJjZVJvb3QgIT0gbnVsbCkge1xuICAgICAgICBzb3VyY2UgPSB1dGlsLmpvaW4oc291cmNlUm9vdCwgc291cmNlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICBnZW5lcmF0ZWRMaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUsXG4gICAgICAgIGdlbmVyYXRlZENvbHVtbjogbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4sXG4gICAgICAgIG9yaWdpbmFsTGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsXG4gICAgICAgIG9yaWdpbmFsQ29sdW1uOiBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uLFxuICAgICAgICBuYW1lOiBtYXBwaW5nLm5hbWUgPT09IG51bGwgPyBudWxsIDogdGhpcy5fbmFtZXMuYXQobWFwcGluZy5uYW1lKVxuICAgICAgfTtcbiAgICB9LCB0aGlzKS5mb3JFYWNoKGFDYWxsYmFjaywgY29udGV4dCk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyBhbGwgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSxcbiAqIGxpbmUsIGFuZCBjb2x1bW4gcHJvdmlkZWQuIElmIG5vIGNvbHVtbiBpcyBwcm92aWRlZCwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gYSBlaXRoZXIgdGhlIGxpbmUgd2UgYXJlIHNlYXJjaGluZyBmb3Igb3IgdGhlIG5leHRcbiAqIGNsb3Nlc3QgbGluZSB0aGF0IGhhcyBhbnkgbWFwcGluZ3MuIE90aGVyd2lzZSwgcmV0dXJucyBhbGwgbWFwcGluZ3NcbiAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGxpbmUgYW5kIGVpdGhlciB0aGUgY29sdW1uIHdlIGFyZSBzZWFyY2hpbmcgZm9yXG4gKiBvciB0aGUgbmV4dCBjbG9zZXN0IGNvbHVtbiB0aGF0IGhhcyBhbnkgb2Zmc2V0cy5cbiAqXG4gKiBUaGUgb25seSBhcmd1bWVudCBpcyBhbiBvYmplY3Qgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gY29sdW1uOiBPcHRpb25hbC4gdGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS5cbiAqXG4gKiBhbmQgYW4gYXJyYXkgb2Ygb2JqZWN0cyBpcyByZXR1cm5lZCwgZWFjaCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuXG4gKi9cblNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5hbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9hbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IoYUFyZ3MpIHtcbiAgICB2YXIgbGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnbGluZScpO1xuXG4gICAgLy8gV2hlbiB0aGVyZSBpcyBubyBleGFjdCBtYXRjaCwgQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX2ZpbmRNYXBwaW5nXG4gICAgLy8gcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGNsb3Nlc3QgbWFwcGluZyBsZXNzIHRoYW4gdGhlIG5lZWRsZS4gQnlcbiAgICAvLyBzZXR0aW5nIG5lZWRsZS5vcmlnaW5hbENvbHVtbiB0byAwLCB3ZSB0aHVzIGZpbmQgdGhlIGxhc3QgbWFwcGluZyBmb3JcbiAgICAvLyB0aGUgZ2l2ZW4gbGluZSwgcHJvdmlkZWQgc3VjaCBhIG1hcHBpbmcgZXhpc3RzLlxuICAgIHZhciBuZWVkbGUgPSB7XG4gICAgICBzb3VyY2U6IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJyksXG4gICAgICBvcmlnaW5hbExpbmU6IGxpbmUsXG4gICAgICBvcmlnaW5hbENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICdjb2x1bW4nLCAwKVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5zb3VyY2VSb290ICE9IG51bGwpIHtcbiAgICAgIG5lZWRsZS5zb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHRoaXMuc291cmNlUm9vdCwgbmVlZGxlLnNvdXJjZSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fc291cmNlcy5oYXMobmVlZGxlLnNvdXJjZSkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgbmVlZGxlLnNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuaW5kZXhPZihuZWVkbGUuc291cmNlKTtcblxuICAgIHZhciBtYXBwaW5ncyA9IFtdO1xuXG4gICAgdmFyIGluZGV4ID0gdGhpcy5fZmluZE1hcHBpbmcobmVlZGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX29yaWdpbmFsTWFwcGluZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvcmlnaW5hbExpbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm9yaWdpbmFsQ29sdW1uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbC5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnlTZWFyY2guTEVBU1RfVVBQRVJfQk9VTkQpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbaW5kZXhdO1xuXG4gICAgICBpZiAoYUFyZ3MuY29sdW1uID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFyIG9yaWdpbmFsTGluZSA9IG1hcHBpbmcub3JpZ2luYWxMaW5lO1xuXG4gICAgICAgIC8vIEl0ZXJhdGUgdW50aWwgZWl0aGVyIHdlIHJ1biBvdXQgb2YgbWFwcGluZ3MsIG9yIHdlIHJ1biBpbnRvXG4gICAgICAgIC8vIGEgbWFwcGluZyBmb3IgYSBkaWZmZXJlbnQgbGluZSB0aGFuIHRoZSBvbmUgd2UgZm91bmQuIFNpbmNlXG4gICAgICAgIC8vIG1hcHBpbmdzIGFyZSBzb3J0ZWQsIHRoaXMgaXMgZ3VhcmFudGVlZCB0byBmaW5kIGFsbCBtYXBwaW5ncyBmb3JcbiAgICAgICAgLy8gdGhlIGxpbmUgd2UgZm91bmQuXG4gICAgICAgIHdoaWxlIChtYXBwaW5nICYmIG1hcHBpbmcub3JpZ2luYWxMaW5lID09PSBvcmlnaW5hbExpbmUpIHtcbiAgICAgICAgICBtYXBwaW5ncy5wdXNoKHtcbiAgICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRMaW5lJywgbnVsbCksXG4gICAgICAgICAgICBjb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRDb2x1bW4nLCBudWxsKSxcbiAgICAgICAgICAgIGxhc3RDb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdsYXN0R2VuZXJhdGVkQ29sdW1uJywgbnVsbClcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzWysraW5kZXhdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgb3JpZ2luYWxDb2x1bW4gPSBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uO1xuXG4gICAgICAgIC8vIEl0ZXJhdGUgdW50aWwgZWl0aGVyIHdlIHJ1biBvdXQgb2YgbWFwcGluZ3MsIG9yIHdlIHJ1biBpbnRvXG4gICAgICAgIC8vIGEgbWFwcGluZyBmb3IgYSBkaWZmZXJlbnQgbGluZSB0aGFuIHRoZSBvbmUgd2Ugd2VyZSBzZWFyY2hpbmcgZm9yLlxuICAgICAgICAvLyBTaW5jZSBtYXBwaW5ncyBhcmUgc29ydGVkLCB0aGlzIGlzIGd1YXJhbnRlZWQgdG8gZmluZCBhbGwgbWFwcGluZ3MgZm9yXG4gICAgICAgIC8vIHRoZSBsaW5lIHdlIGFyZSBzZWFyY2hpbmcgZm9yLlxuICAgICAgICB3aGlsZSAobWFwcGluZyAmJlxuICAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IGxpbmUgJiZcbiAgICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxDb2x1bW4gPT0gb3JpZ2luYWxDb2x1bW4pIHtcbiAgICAgICAgICBtYXBwaW5ncy5wdXNoKHtcbiAgICAgICAgICAgIGxpbmU6IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRMaW5lJywgbnVsbCksXG4gICAgICAgICAgICBjb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdnZW5lcmF0ZWRDb2x1bW4nLCBudWxsKSxcbiAgICAgICAgICAgIGxhc3RDb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdsYXN0R2VuZXJhdGVkQ29sdW1uJywgbnVsbClcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzWysraW5kZXhdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcHBpbmdzO1xuICB9O1xuXG5leHBvcnRzLlNvdXJjZU1hcENvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7XG5cbi8qKlxuICogQSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyIGluc3RhbmNlIHJlcHJlc2VudHMgYSBwYXJzZWQgc291cmNlIG1hcCB3aGljaCB3ZSBjYW5cbiAqIHF1ZXJ5IGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JpZ2luYWwgZmlsZSBwb3NpdGlvbnMgYnkgZ2l2aW5nIGl0IGEgZmlsZVxuICogcG9zaXRpb24gaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuXG4gKlxuICogVGhlIG9ubHkgcGFyYW1ldGVyIGlzIHRoZSByYXcgc291cmNlIG1hcCAoZWl0aGVyIGFzIGEgSlNPTiBzdHJpbmcsIG9yXG4gKiBhbHJlYWR5IHBhcnNlZCB0byBhbiBvYmplY3QpLiBBY2NvcmRpbmcgdG8gdGhlIHNwZWMsIHNvdXJjZSBtYXBzIGhhdmUgdGhlXG4gKiBmb2xsb3dpbmcgYXR0cmlidXRlczpcbiAqXG4gKiAgIC0gdmVyc2lvbjogV2hpY2ggdmVyc2lvbiBvZiB0aGUgc291cmNlIG1hcCBzcGVjIHRoaXMgbWFwIGlzIGZvbGxvd2luZy5cbiAqICAgLSBzb3VyY2VzOiBBbiBhcnJheSBvZiBVUkxzIHRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZXMuXG4gKiAgIC0gbmFtZXM6IEFuIGFycmF5IG9mIGlkZW50aWZpZXJzIHdoaWNoIGNhbiBiZSByZWZlcnJlbmNlZCBieSBpbmRpdmlkdWFsIG1hcHBpbmdzLlxuICogICAtIHNvdXJjZVJvb3Q6IE9wdGlvbmFsLiBUaGUgVVJMIHJvb3QgZnJvbSB3aGljaCBhbGwgc291cmNlcyBhcmUgcmVsYXRpdmUuXG4gKiAgIC0gc291cmNlc0NvbnRlbnQ6IE9wdGlvbmFsLiBBbiBhcnJheSBvZiBjb250ZW50cyBvZiB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGVzLlxuICogICAtIG1hcHBpbmdzOiBBIHN0cmluZyBvZiBiYXNlNjQgVkxRcyB3aGljaCBjb250YWluIHRoZSBhY3R1YWwgbWFwcGluZ3MuXG4gKiAgIC0gZmlsZTogT3B0aW9uYWwuIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICpcbiAqIEhlcmUgaXMgYW4gZXhhbXBsZSBzb3VyY2UgbWFwLCB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgbWFwIHNwZWNbMF06XG4gKlxuICogICAgIHtcbiAqICAgICAgIHZlcnNpb24gOiAzLFxuICogICAgICAgZmlsZTogXCJvdXQuanNcIixcbiAqICAgICAgIHNvdXJjZVJvb3QgOiBcIlwiLFxuICogICAgICAgc291cmNlczogW1wiZm9vLmpzXCIsIFwiYmFyLmpzXCJdLFxuICogICAgICAgbmFtZXM6IFtcInNyY1wiLCBcIm1hcHNcIiwgXCJhcmVcIiwgXCJmdW5cIl0sXG4gKiAgICAgICBtYXBwaW5nczogXCJBQSxBQjs7QUJDREU7XCJcbiAqICAgICB9XG4gKlxuICogWzBdOiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFVMVJHQWVoUXdSeXBVVG92RjFLUmxwaU9GemUwYi1fMmdjNmZBSDBLWTBrL2VkaXQ/cGxpPTEjXG4gKi9cbmZ1bmN0aW9uIEJhc2ljU291cmNlTWFwQ29uc3VtZXIoYVNvdXJjZU1hcCkge1xuICB2YXIgc291cmNlTWFwID0gYVNvdXJjZU1hcDtcbiAgaWYgKHR5cGVvZiBhU291cmNlTWFwID09PSAnc3RyaW5nJykge1xuICAgIHNvdXJjZU1hcCA9IEpTT04ucGFyc2UoYVNvdXJjZU1hcC5yZXBsYWNlKC9eXFwpXFxdXFx9Jy8sICcnKSk7XG4gIH1cblxuICB2YXIgdmVyc2lvbiA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3ZlcnNpb24nKTtcbiAgdmFyIHNvdXJjZXMgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdzb3VyY2VzJyk7XG4gIC8vIFNhc3MgMy4zIGxlYXZlcyBvdXQgdGhlICduYW1lcycgYXJyYXksIHNvIHdlIGRldmlhdGUgZnJvbSB0aGUgc3BlYyAod2hpY2hcbiAgLy8gcmVxdWlyZXMgdGhlIGFycmF5KSB0byBwbGF5IG5pY2UgaGVyZS5cbiAgdmFyIG5hbWVzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnbmFtZXMnLCBbXSk7XG4gIHZhciBzb3VyY2VSb290ID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnc291cmNlUm9vdCcsIG51bGwpO1xuICB2YXIgc291cmNlc0NvbnRlbnQgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdzb3VyY2VzQ29udGVudCcsIG51bGwpO1xuICB2YXIgbWFwcGluZ3MgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICdtYXBwaW5ncycpO1xuICB2YXIgZmlsZSA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ2ZpbGUnLCBudWxsKTtcblxuICAvLyBPbmNlIGFnYWluLCBTYXNzIGRldmlhdGVzIGZyb20gdGhlIHNwZWMgYW5kIHN1cHBsaWVzIHRoZSB2ZXJzaW9uIGFzIGFcbiAgLy8gc3RyaW5nIHJhdGhlciB0aGFuIGEgbnVtYmVyLCBzbyB3ZSB1c2UgbG9vc2UgZXF1YWxpdHkgY2hlY2tpbmcgaGVyZS5cbiAgaWYgKHZlcnNpb24gIT0gdGhpcy5fdmVyc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgdmVyc2lvbjogJyArIHZlcnNpb24pO1xuICB9XG5cbiAgc291cmNlcyA9IHNvdXJjZXNcbiAgICAubWFwKFN0cmluZylcbiAgICAvLyBTb21lIHNvdXJjZSBtYXBzIHByb2R1Y2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIGxpa2UgXCIuL2Zvby5qc1wiIGluc3RlYWQgb2ZcbiAgICAvLyBcImZvby5qc1wiLiAgTm9ybWFsaXplIHRoZXNlIGZpcnN0IHNvIHRoYXQgZnV0dXJlIGNvbXBhcmlzb25zIHdpbGwgc3VjY2VlZC5cbiAgICAvLyBTZWUgYnVnemlsLmxhLzEwOTA3NjguXG4gICAgLm1hcCh1dGlsLm5vcm1hbGl6ZSlcbiAgICAvLyBBbHdheXMgZW5zdXJlIHRoYXQgYWJzb2x1dGUgc291cmNlcyBhcmUgaW50ZXJuYWxseSBzdG9yZWQgcmVsYXRpdmUgdG9cbiAgICAvLyB0aGUgc291cmNlIHJvb3QsIGlmIHRoZSBzb3VyY2Ugcm9vdCBpcyBhYnNvbHV0ZS4gTm90IGRvaW5nIHRoaXMgd291bGRcbiAgICAvLyBiZSBwYXJ0aWN1bGFybHkgcHJvYmxlbWF0aWMgd2hlbiB0aGUgc291cmNlIHJvb3QgaXMgYSBwcmVmaXggb2YgdGhlXG4gICAgLy8gc291cmNlICh2YWxpZCwgYnV0IHdoeT8/KS4gU2VlIGdpdGh1YiBpc3N1ZSAjMTk5IGFuZCBidWd6aWwubGEvMTE4ODk4Mi5cbiAgICAubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBzb3VyY2VSb290ICYmIHV0aWwuaXNBYnNvbHV0ZShzb3VyY2VSb290KSAmJiB1dGlsLmlzQWJzb2x1dGUoc291cmNlKVxuICAgICAgICA/IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlKVxuICAgICAgICA6IHNvdXJjZTtcbiAgICB9KTtcblxuICAvLyBQYXNzIGB0cnVlYCBiZWxvdyB0byBhbGxvdyBkdXBsaWNhdGUgbmFtZXMgYW5kIHNvdXJjZXMuIFdoaWxlIHNvdXJjZSBtYXBzXG4gIC8vIGFyZSBpbnRlbmRlZCB0byBiZSBjb21wcmVzc2VkIGFuZCBkZWR1cGxpY2F0ZWQsIHRoZSBUeXBlU2NyaXB0IGNvbXBpbGVyXG4gIC8vIHNvbWV0aW1lcyBnZW5lcmF0ZXMgc291cmNlIG1hcHMgd2l0aCBkdXBsaWNhdGVzIGluIHRoZW0uIFNlZSBHaXRodWIgaXNzdWVcbiAgLy8gIzcyIGFuZCBidWd6aWwubGEvODg5NDkyLlxuICB0aGlzLl9uYW1lcyA9IEFycmF5U2V0LmZyb21BcnJheShuYW1lcy5tYXAoU3RyaW5nKSwgdHJ1ZSk7XG4gIHRoaXMuX3NvdXJjZXMgPSBBcnJheVNldC5mcm9tQXJyYXkoc291cmNlcywgdHJ1ZSk7XG5cbiAgdGhpcy5zb3VyY2VSb290ID0gc291cmNlUm9vdDtcbiAgdGhpcy5zb3VyY2VzQ29udGVudCA9IHNvdXJjZXNDb250ZW50O1xuICB0aGlzLl9tYXBwaW5ncyA9IG1hcHBpbmdzO1xuICB0aGlzLmZpbGUgPSBmaWxlO1xufVxuXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlKTtcbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7XG5cbi8qKlxuICogQ3JlYXRlIGEgQmFzaWNTb3VyY2VNYXBDb25zdW1lciBmcm9tIGEgU291cmNlTWFwR2VuZXJhdG9yLlxuICpcbiAqIEBwYXJhbSBTb3VyY2VNYXBHZW5lcmF0b3IgYVNvdXJjZU1hcFxuICogICAgICAgIFRoZSBzb3VyY2UgbWFwIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbiAqIEByZXR1cm5zIEJhc2ljU291cmNlTWFwQ29uc3VtZXJcbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5mcm9tU291cmNlTWFwID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfZnJvbVNvdXJjZU1hcChhU291cmNlTWFwKSB7XG4gICAgdmFyIHNtYyA9IE9iamVjdC5jcmVhdGUoQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUpO1xuXG4gICAgdmFyIG5hbWVzID0gc21jLl9uYW1lcyA9IEFycmF5U2V0LmZyb21BcnJheShhU291cmNlTWFwLl9uYW1lcy50b0FycmF5KCksIHRydWUpO1xuICAgIHZhciBzb3VyY2VzID0gc21jLl9zb3VyY2VzID0gQXJyYXlTZXQuZnJvbUFycmF5KGFTb3VyY2VNYXAuX3NvdXJjZXMudG9BcnJheSgpLCB0cnVlKTtcbiAgICBzbWMuc291cmNlUm9vdCA9IGFTb3VyY2VNYXAuX3NvdXJjZVJvb3Q7XG4gICAgc21jLnNvdXJjZXNDb250ZW50ID0gYVNvdXJjZU1hcC5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudChzbWMuX3NvdXJjZXMudG9BcnJheSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21jLnNvdXJjZVJvb3QpO1xuICAgIHNtYy5maWxlID0gYVNvdXJjZU1hcC5fZmlsZTtcblxuICAgIC8vIEJlY2F1c2Ugd2UgYXJlIG1vZGlmeWluZyB0aGUgZW50cmllcyAoYnkgY29udmVydGluZyBzdHJpbmcgc291cmNlcyBhbmRcbiAgICAvLyBuYW1lcyB0byBpbmRpY2VzIGludG8gdGhlIHNvdXJjZXMgYW5kIG5hbWVzIEFycmF5U2V0cyksIHdlIGhhdmUgdG8gbWFrZVxuICAgIC8vIGEgY29weSBvZiB0aGUgZW50cnkgb3IgZWxzZSBiYWQgdGhpbmdzIGhhcHBlbi4gU2hhcmVkIG11dGFibGUgc3RhdGVcbiAgICAvLyBzdHJpa2VzIGFnYWluISBTZWUgZ2l0aHViIGlzc3VlICMxOTEuXG5cbiAgICB2YXIgZ2VuZXJhdGVkTWFwcGluZ3MgPSBhU291cmNlTWFwLl9tYXBwaW5ncy50b0FycmF5KCkuc2xpY2UoKTtcbiAgICB2YXIgZGVzdEdlbmVyYXRlZE1hcHBpbmdzID0gc21jLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBbXTtcbiAgICB2YXIgZGVzdE9yaWdpbmFsTWFwcGluZ3MgPSBzbWMuX19vcmlnaW5hbE1hcHBpbmdzID0gW107XG5cbiAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBzcmNNYXBwaW5nID0gZ2VuZXJhdGVkTWFwcGluZ3NbaV07XG4gICAgICB2YXIgZGVzdE1hcHBpbmcgPSBuZXcgTWFwcGluZztcbiAgICAgIGRlc3RNYXBwaW5nLmdlbmVyYXRlZExpbmUgPSBzcmNNYXBwaW5nLmdlbmVyYXRlZExpbmU7XG4gICAgICBkZXN0TWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gPSBzcmNNYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgaWYgKHNyY01hcHBpbmcuc291cmNlKSB7XG4gICAgICAgIGRlc3RNYXBwaW5nLnNvdXJjZSA9IHNvdXJjZXMuaW5kZXhPZihzcmNNYXBwaW5nLnNvdXJjZSk7XG4gICAgICAgIGRlc3RNYXBwaW5nLm9yaWdpbmFsTGluZSA9IHNyY01hcHBpbmcub3JpZ2luYWxMaW5lO1xuICAgICAgICBkZXN0TWFwcGluZy5vcmlnaW5hbENvbHVtbiA9IHNyY01hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgaWYgKHNyY01hcHBpbmcubmFtZSkge1xuICAgICAgICAgIGRlc3RNYXBwaW5nLm5hbWUgPSBuYW1lcy5pbmRleE9mKHNyY01hcHBpbmcubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBkZXN0T3JpZ2luYWxNYXBwaW5ncy5wdXNoKGRlc3RNYXBwaW5nKTtcbiAgICAgIH1cblxuICAgICAgZGVzdEdlbmVyYXRlZE1hcHBpbmdzLnB1c2goZGVzdE1hcHBpbmcpO1xuICAgIH1cblxuICAgIHF1aWNrU29ydChzbWMuX19vcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcblxuICAgIHJldHVybiBzbWM7XG4gIH07XG5cbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXBwaW5nIHNwZWMgdGhhdCB3ZSBhcmUgY29uc3VtaW5nLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLCAnc291cmNlcycsIHtcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NvdXJjZXMudG9BcnJheSgpLm1hcChmdW5jdGlvbiAocykge1xuICAgICAgcmV0dXJuIHRoaXMuc291cmNlUm9vdCAhPSBudWxsID8gdXRpbC5qb2luKHRoaXMuc291cmNlUm9vdCwgcykgOiBzO1xuICAgIH0sIHRoaXMpO1xuICB9XG59KTtcblxuLyoqXG4gKiBQcm92aWRlIHRoZSBKSVQgd2l0aCBhIG5pY2Ugc2hhcGUgLyBoaWRkZW4gY2xhc3MuXG4gKi9cbmZ1bmN0aW9uIE1hcHBpbmcoKSB7XG4gIHRoaXMuZ2VuZXJhdGVkTGluZSA9IDA7XG4gIHRoaXMuZ2VuZXJhdGVkQ29sdW1uID0gMDtcbiAgdGhpcy5zb3VyY2UgPSBudWxsO1xuICB0aGlzLm9yaWdpbmFsTGluZSA9IG51bGw7XG4gIHRoaXMub3JpZ2luYWxDb2x1bW4gPSBudWxsO1xuICB0aGlzLm5hbWUgPSBudWxsO1xufVxuXG4vKipcbiAqIFBhcnNlIHRoZSBtYXBwaW5ncyBpbiBhIHN0cmluZyBpbiB0byBhIGRhdGEgc3RydWN0dXJlIHdoaWNoIHdlIGNhbiBlYXNpbHlcbiAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZFxuICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7XG4gICAgdmFyIGdlbmVyYXRlZExpbmUgPSAxO1xuICAgIHZhciBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gMDtcbiAgICB2YXIgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IDA7XG4gICAgdmFyIHByZXZpb3VzU291cmNlID0gMDtcbiAgICB2YXIgcHJldmlvdXNOYW1lID0gMDtcbiAgICB2YXIgbGVuZ3RoID0gYVN0ci5sZW5ndGg7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgY2FjaGVkU2VnbWVudHMgPSB7fTtcbiAgICB2YXIgdGVtcCA9IHt9O1xuICAgIHZhciBvcmlnaW5hbE1hcHBpbmdzID0gW107XG4gICAgdmFyIGdlbmVyYXRlZE1hcHBpbmdzID0gW107XG4gICAgdmFyIG1hcHBpbmcsIHN0ciwgc2VnbWVudCwgZW5kLCB2YWx1ZTtcblxuICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgaWYgKGFTdHIuY2hhckF0KGluZGV4KSA9PT0gJzsnKSB7XG4gICAgICAgIGdlbmVyYXRlZExpbmUrKztcbiAgICAgICAgaW5kZXgrKztcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSAwO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAoYVN0ci5jaGFyQXQoaW5kZXgpID09PSAnLCcpIHtcbiAgICAgICAgaW5kZXgrKztcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBtYXBwaW5nID0gbmV3IE1hcHBpbmcoKTtcbiAgICAgICAgbWFwcGluZy5nZW5lcmF0ZWRMaW5lID0gZ2VuZXJhdGVkTGluZTtcblxuICAgICAgICAvLyBCZWNhdXNlIGVhY2ggb2Zmc2V0IGlzIGVuY29kZWQgcmVsYXRpdmUgdG8gdGhlIHByZXZpb3VzIG9uZSxcbiAgICAgICAgLy8gbWFueSBzZWdtZW50cyBvZnRlbiBoYXZlIHRoZSBzYW1lIGVuY29kaW5nLiBXZSBjYW4gZXhwbG9pdCB0aGlzXG4gICAgICAgIC8vIGZhY3QgYnkgY2FjaGluZyB0aGUgcGFyc2VkIHZhcmlhYmxlIGxlbmd0aCBmaWVsZHMgb2YgZWFjaCBzZWdtZW50LFxuICAgICAgICAvLyBhbGxvd2luZyB1cyB0byBhdm9pZCBhIHNlY29uZCBwYXJzZSBpZiB3ZSBlbmNvdW50ZXIgdGhlIHNhbWVcbiAgICAgICAgLy8gc2VnbWVudCBhZ2Fpbi5cbiAgICAgICAgZm9yIChlbmQgPSBpbmRleDsgZW5kIDwgbGVuZ3RoOyBlbmQrKykge1xuICAgICAgICAgIGlmICh0aGlzLl9jaGFySXNNYXBwaW5nU2VwYXJhdG9yKGFTdHIsIGVuZCkpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdHIgPSBhU3RyLnNsaWNlKGluZGV4LCBlbmQpO1xuXG4gICAgICAgIHNlZ21lbnQgPSBjYWNoZWRTZWdtZW50c1tzdHJdO1xuICAgICAgICBpZiAoc2VnbWVudCkge1xuICAgICAgICAgIGluZGV4ICs9IHN0ci5sZW5ndGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VnbWVudCA9IFtdO1xuICAgICAgICAgIHdoaWxlIChpbmRleCA8IGVuZCkge1xuICAgICAgICAgICAgYmFzZTY0VkxRLmRlY29kZShhU3RyLCBpbmRleCwgdGVtcCk7XG4gICAgICAgICAgICB2YWx1ZSA9IHRlbXAudmFsdWU7XG4gICAgICAgICAgICBpbmRleCA9IHRlbXAucmVzdDtcbiAgICAgICAgICAgIHNlZ21lbnQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlLCBidXQgbm8gbGluZSBhbmQgY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIGEgc291cmNlIGFuZCBsaW5lLCBidXQgbm8gY29sdW1uJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FjaGVkU2VnbWVudHNbc3RyXSA9IHNlZ21lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZW5lcmF0ZWQgY29sdW1uLlxuICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiA9IHByZXZpb3VzR2VuZXJhdGVkQ29sdW1uICsgc2VnbWVudFswXTtcbiAgICAgICAgcHJldmlvdXNHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjtcblxuICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgLy8gT3JpZ2luYWwgc291cmNlLlxuICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gcHJldmlvdXNTb3VyY2UgKyBzZWdtZW50WzFdO1xuICAgICAgICAgIHByZXZpb3VzU291cmNlICs9IHNlZ21lbnRbMV07XG5cbiAgICAgICAgICAvLyBPcmlnaW5hbCBsaW5lLlxuICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID0gcHJldmlvdXNPcmlnaW5hbExpbmUgKyBzZWdtZW50WzJdO1xuICAgICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmU7XG4gICAgICAgICAgLy8gTGluZXMgYXJlIHN0b3JlZCAwLWJhc2VkXG4gICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUgKz0gMTtcblxuICAgICAgICAgIC8vIE9yaWdpbmFsIGNvbHVtbi5cbiAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gcHJldmlvdXNPcmlnaW5hbENvbHVtbiArIHNlZ21lbnRbM107XG4gICAgICAgICAgcHJldmlvdXNPcmlnaW5hbENvbHVtbiA9IG1hcHBpbmcub3JpZ2luYWxDb2x1bW47XG5cbiAgICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPiA0KSB7XG4gICAgICAgICAgICAvLyBPcmlnaW5hbCBuYW1lLlxuICAgICAgICAgICAgbWFwcGluZy5uYW1lID0gcHJldmlvdXNOYW1lICsgc2VnbWVudFs0XTtcbiAgICAgICAgICAgIHByZXZpb3VzTmFtZSArPSBzZWdtZW50WzRdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGdlbmVyYXRlZE1hcHBpbmdzLnB1c2gobWFwcGluZyk7XG4gICAgICAgIGlmICh0eXBlb2YgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgb3JpZ2luYWxNYXBwaW5ncy5wdXNoKG1hcHBpbmcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcXVpY2tTb3J0KGdlbmVyYXRlZE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKTtcbiAgICB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MgPSBnZW5lcmF0ZWRNYXBwaW5ncztcblxuICAgIHF1aWNrU29ydChvcmlnaW5hbE1hcHBpbmdzLCB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zKTtcbiAgICB0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncyA9IG9yaWdpbmFsTWFwcGluZ3M7XG4gIH07XG5cbi8qKlxuICogRmluZCB0aGUgbWFwcGluZyB0aGF0IGJlc3QgbWF0Y2hlcyB0aGUgaHlwb3RoZXRpY2FsIFwibmVlZGxlXCIgbWFwcGluZyB0aGF0XG4gKiB3ZSBhcmUgc2VhcmNoaW5nIGZvciBpbiB0aGUgZ2l2ZW4gXCJoYXlzdGFja1wiIG9mIG1hcHBpbmdzLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fZmluZE1hcHBpbmcgPVxuICBmdW5jdGlvbiBTb3VyY2VNYXBDb25zdW1lcl9maW5kTWFwcGluZyhhTmVlZGxlLCBhTWFwcGluZ3MsIGFMaW5lTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYUNvbHVtbk5hbWUsIGFDb21wYXJhdG9yLCBhQmlhcykge1xuICAgIC8vIFRvIHJldHVybiB0aGUgcG9zaXRpb24gd2UgYXJlIHNlYXJjaGluZyBmb3IsIHdlIG11c3QgZmlyc3QgZmluZCB0aGVcbiAgICAvLyBtYXBwaW5nIGZvciB0aGUgZ2l2ZW4gcG9zaXRpb24gYW5kIHRoZW4gcmV0dXJuIHRoZSBvcHBvc2l0ZSBwb3NpdGlvbiBpdFxuICAgIC8vIHBvaW50cyB0by4gQmVjYXVzZSB0aGUgbWFwcGluZ3MgYXJlIHNvcnRlZCwgd2UgY2FuIHVzZSBiaW5hcnkgc2VhcmNoIHRvXG4gICAgLy8gZmluZCB0aGUgYmVzdCBtYXBwaW5nLlxuXG4gICAgaWYgKGFOZWVkbGVbYUxpbmVOYW1lXSA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdMaW5lIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthTGluZU5hbWVdKTtcbiAgICB9XG4gICAgaWYgKGFOZWVkbGVbYUNvbHVtbk5hbWVdIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQ29sdW1uIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGdvdCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICsgYU5lZWRsZVthQ29sdW1uTmFtZV0pO1xuICAgIH1cblxuICAgIHJldHVybiBiaW5hcnlTZWFyY2guc2VhcmNoKGFOZWVkbGUsIGFNYXBwaW5ncywgYUNvbXBhcmF0b3IsIGFCaWFzKTtcbiAgfTtcblxuLyoqXG4gKiBDb21wdXRlIHRoZSBsYXN0IGNvbHVtbiBmb3IgZWFjaCBnZW5lcmF0ZWQgbWFwcGluZy4gVGhlIGxhc3QgY29sdW1uIGlzXG4gKiBpbmNsdXNpdmUuXG4gKi9cbkJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbXB1dGVDb2x1bW5TcGFucyA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2NvbXB1dGVDb2x1bW5TcGFucygpIHtcbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3MubGVuZ3RoOyArK2luZGV4KSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzW2luZGV4XTtcblxuICAgICAgLy8gTWFwcGluZ3MgZG8gbm90IGNvbnRhaW4gYSBmaWVsZCBmb3IgdGhlIGxhc3QgZ2VuZXJhdGVkIGNvbHVtbnQuIFdlXG4gICAgICAvLyBjYW4gY29tZSB1cCB3aXRoIGFuIG9wdGltaXN0aWMgZXN0aW1hdGUsIGhvd2V2ZXIsIGJ5IGFzc3VtaW5nIHRoYXRcbiAgICAgIC8vIG1hcHBpbmdzIGFyZSBjb250aWd1b3VzIChpLmUuIGdpdmVuIHR3byBjb25zZWN1dGl2ZSBtYXBwaW5ncywgdGhlXG4gICAgICAvLyBmaXJzdCBtYXBwaW5nIGVuZHMgd2hlcmUgdGhlIHNlY29uZCBvbmUgc3RhcnRzKS5cbiAgICAgIGlmIChpbmRleCArIDEgPCB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5ncy5sZW5ndGgpIHtcbiAgICAgICAgdmFyIG5leHRNYXBwaW5nID0gdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3NbaW5kZXggKyAxXTtcblxuICAgICAgICBpZiAobWFwcGluZy5nZW5lcmF0ZWRMaW5lID09PSBuZXh0TWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gbmV4dE1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC0gMTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBtYXBwaW5nIGZvciBlYWNoIGxpbmUgc3BhbnMgdGhlIGVudGlyZSBsaW5lLlxuICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gSW5maW5pdHk7XG4gICAgfVxuICB9O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgbGluZSwgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbmVyYXRlZFxuICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0XG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuXG4gKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3JcbiAqICAgICAnU291cmNlTWFwQ29uc3VtZXIuTEVBU1RfVVBQRVJfQk9VTkQnLiBTcGVjaWZpZXMgd2hldGhlciB0byByZXR1cm4gdGhlXG4gKiAgICAgY2xvc2VzdCBlbGVtZW50IHRoYXQgaXMgc21hbGxlciB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgb25lIHdlIGFyZVxuICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLlxuICogICAgIERlZmF1bHRzIHRvICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcuXG4gKlxuICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqXG4gKiAgIC0gc291cmNlOiBUaGUgb3JpZ2luYWwgc291cmNlIGZpbGUsIG9yIG51bGwuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLlxuICogICAtIG5hbWU6IFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLCBvciBudWxsLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5vcmlnaW5hbFBvc2l0aW9uRm9yID1cbiAgZnVuY3Rpb24gU291cmNlTWFwQ29uc3VtZXJfb3JpZ2luYWxQb3NpdGlvbkZvcihhQXJncykge1xuICAgIHZhciBuZWVkbGUgPSB7XG4gICAgICBnZW5lcmF0ZWRMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKSxcbiAgICAgIGdlbmVyYXRlZENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICdjb2x1bW4nKVxuICAgIH07XG5cbiAgICB2YXIgaW5kZXggPSB0aGlzLl9maW5kTWFwcGluZyhcbiAgICAgIG5lZWRsZSxcbiAgICAgIHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzLFxuICAgICAgXCJnZW5lcmF0ZWRMaW5lXCIsXG4gICAgICBcImdlbmVyYXRlZENvbHVtblwiLFxuICAgICAgdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNEZWZsYXRlZCxcbiAgICAgIHV0aWwuZ2V0QXJnKGFBcmdzLCAnYmlhcycsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKVxuICAgICk7XG5cbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdmFyIG1hcHBpbmcgPSB0aGlzLl9nZW5lcmF0ZWRNYXBwaW5nc1tpbmRleF07XG5cbiAgICAgIGlmIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgPT09IG5lZWRsZS5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSB1dGlsLmdldEFyZyhtYXBwaW5nLCAnc291cmNlJywgbnVsbCk7XG4gICAgICAgIGlmIChzb3VyY2UgIT09IG51bGwpIHtcbiAgICAgICAgICBzb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KHNvdXJjZSk7XG4gICAgICAgICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB1dGlsLmpvaW4odGhpcy5zb3VyY2VSb290LCBzb3VyY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB2YXIgbmFtZSA9IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICduYW1lJywgbnVsbCk7XG4gICAgICAgIGlmIChuYW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgbmFtZSA9IHRoaXMuX25hbWVzLmF0KG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgbGluZTogdXRpbC5nZXRBcmcobWFwcGluZywgJ29yaWdpbmFsTGluZScsIG51bGwpLFxuICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgJ29yaWdpbmFsQ29sdW1uJywgbnVsbCksXG4gICAgICAgICAgbmFtZTogbmFtZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6IG51bGwsXG4gICAgICBsaW5lOiBudWxsLFxuICAgICAgY29sdW1uOiBudWxsLFxuICAgICAgbmFtZTogbnVsbFxuICAgIH07XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlXG4gKiBtYXAsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuaGFzQ29udGVudHNPZkFsbFNvdXJjZXMgPVxuICBmdW5jdGlvbiBCYXNpY1NvdXJjZU1hcENvbnN1bWVyX2hhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCkge1xuICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudC5sZW5ndGggPj0gdGhpcy5fc291cmNlcy5zaXplKCkgJiZcbiAgICAgICF0aGlzLnNvdXJjZXNDb250ZW50LnNvbWUoZnVuY3Rpb24gKHNjKSB7IHJldHVybiBzYyA9PSBudWxsOyB9KTtcbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UgY29udGVudC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgdGhlIHVybCBvZiB0aGVcbiAqIG9yaWdpbmFsIHNvdXJjZSBmaWxlLiBSZXR1cm5zIG51bGwgaWYgbm8gb3JpZ2luYWwgc291cmNlIGNvbnRlbnQgaXNcbiAqIGF2YWlsYWJsZS5cbiAqL1xuQmFzaWNTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuc291cmNlQ29udGVudEZvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX3NvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykge1xuICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBhU291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLnNvdXJjZVJvb3QsIGFTb3VyY2UpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zb3VyY2VzLmhhcyhhU291cmNlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc291cmNlc0NvbnRlbnRbdGhpcy5fc291cmNlcy5pbmRleE9mKGFTb3VyY2UpXTtcbiAgICB9XG5cbiAgICB2YXIgdXJsO1xuICAgIGlmICh0aGlzLnNvdXJjZVJvb3QgIT0gbnVsbFxuICAgICAgICAmJiAodXJsID0gdXRpbC51cmxQYXJzZSh0aGlzLnNvdXJjZVJvb3QpKSkge1xuICAgICAgLy8gWFhYOiBmaWxlOi8vIFVSSXMgYW5kIGFic29sdXRlIHBhdGhzIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvciBmb3JcbiAgICAgIC8vIG1hbnkgdXNlcnMuIFdlIGNhbiBoZWxwIHRoZW0gb3V0IHdoZW4gdGhleSBleHBlY3QgZmlsZTovLyBVUklzIHRvXG4gICAgICAvLyBiZWhhdmUgbGlrZSBpdCB3b3VsZCBpZiB0aGV5IHdlcmUgcnVubmluZyBhIGxvY2FsIEhUVFAgc2VydmVyLiBTZWVcbiAgICAgIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTU5Ny5cbiAgICAgIHZhciBmaWxlVXJpQWJzUGF0aCA9IGFTb3VyY2UucmVwbGFjZSgvXmZpbGU6XFwvXFwvLywgXCJcIik7XG4gICAgICBpZiAodXJsLnNjaGVtZSA9PSBcImZpbGVcIlxuICAgICAgICAgICYmIHRoaXMuX3NvdXJjZXMuaGFzKGZpbGVVcmlBYnNQYXRoKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFt0aGlzLl9zb3VyY2VzLmluZGV4T2YoZmlsZVVyaUFic1BhdGgpXVxuICAgICAgfVxuXG4gICAgICBpZiAoKCF1cmwucGF0aCB8fCB1cmwucGF0aCA9PSBcIi9cIilcbiAgICAgICAgICAmJiB0aGlzLl9zb3VyY2VzLmhhcyhcIi9cIiArIGFTb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihcIi9cIiArIGFTb3VyY2UpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgcmVjdXJzaXZlbHkgZnJvbVxuICAgIC8vIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuc291cmNlQ29udGVudEZvci4gSW4gdGhhdCBjYXNlLCB3ZVxuICAgIC8vIGRvbid0IHdhbnQgdG8gdGhyb3cgaWYgd2UgY2FuJ3QgZmluZCB0aGUgc291cmNlIC0gd2UganVzdCB3YW50IHRvXG4gICAgLy8gcmV0dXJuIG51bGwsIHNvIHdlIHByb3ZpZGUgYSBmbGFnIHRvIGV4aXQgZ3JhY2VmdWxseS5cbiAgICBpZiAobnVsbE9uTWlzc2luZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIicgKyBhU291cmNlICsgJ1wiIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLFxuICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoXG4gKiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLlxuICogICAtIGJpYXM6IEVpdGhlciAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnIG9yXG4gKiAgICAgJ1NvdXJjZU1hcENvbnN1bWVyLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQnLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLlxuICovXG5CYXNpY1NvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5nZW5lcmF0ZWRQb3NpdGlvbkZvciA9XG4gIGZ1bmN0aW9uIFNvdXJjZU1hcENvbnN1bWVyX2dlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgdmFyIHNvdXJjZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJyk7XG4gICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7XG4gICAgICBzb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHRoaXMuc291cmNlUm9vdCwgc291cmNlKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9zb3VyY2VzLmhhcyhzb3VyY2UpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5lOiBudWxsLFxuICAgICAgICBjb2x1bW46IG51bGwsXG4gICAgICAgIGxhc3RDb2x1bW46IG51bGxcbiAgICAgIH07XG4gICAgfVxuICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuaW5kZXhPZihzb3VyY2UpO1xuXG4gICAgdmFyIG5lZWRsZSA9IHtcbiAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgb3JpZ2luYWxMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgJ2xpbmUnKSxcbiAgICAgIG9yaWdpbmFsQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgJ2NvbHVtbicpXG4gICAgfTtcblxuICAgIHZhciBpbmRleCA9IHRoaXMuX2ZpbmRNYXBwaW5nKFxuICAgICAgbmVlZGxlLFxuICAgICAgdGhpcy5fb3JpZ2luYWxNYXBwaW5ncyxcbiAgICAgIFwib3JpZ2luYWxMaW5lXCIsXG4gICAgICBcIm9yaWdpbmFsQ29sdW1uXCIsXG4gICAgICB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zLFxuICAgICAgdXRpbC5nZXRBcmcoYUFyZ3MsICdiaWFzJywgU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQpXG4gICAgKTtcblxuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB2YXIgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbaW5kZXhdO1xuXG4gICAgICBpZiAobWFwcGluZy5zb3VyY2UgPT09IG5lZWRsZS5zb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAnZ2VuZXJhdGVkTGluZScsIG51bGwpLFxuICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgJ2dlbmVyYXRlZENvbHVtbicsIG51bGwpLFxuICAgICAgICAgIGxhc3RDb2x1bW46IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICdsYXN0R2VuZXJhdGVkQ29sdW1uJywgbnVsbClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGluZTogbnVsbCxcbiAgICAgIGNvbHVtbjogbnVsbCxcbiAgICAgIGxhc3RDb2x1bW46IG51bGxcbiAgICB9O1xuICB9O1xuXG5leHBvcnRzLkJhc2ljU291cmNlTWFwQ29uc3VtZXIgPSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIEFuIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lciBpbnN0YW5jZSByZXByZXNlbnRzIGEgcGFyc2VkIHNvdXJjZSBtYXAgd2hpY2hcbiAqIHdlIGNhbiBxdWVyeSBmb3IgaW5mb3JtYXRpb24uIEl0IGRpZmZlcnMgZnJvbSBCYXNpY1NvdXJjZU1hcENvbnN1bWVyIGluXG4gKiB0aGF0IGl0IHRha2VzIFwiaW5kZXhlZFwiIHNvdXJjZSBtYXBzIChpLmUuIG9uZXMgd2l0aCBhIFwic2VjdGlvbnNcIiBmaWVsZCkgYXNcbiAqIGlucHV0LlxuICpcbiAqIFRoZSBvbmx5IHBhcmFtZXRlciBpcyBhIHJhdyBzb3VyY2UgbWFwIChlaXRoZXIgYXMgYSBKU09OIHN0cmluZywgb3IgYWxyZWFkeVxuICogcGFyc2VkIHRvIGFuIG9iamVjdCkuIEFjY29yZGluZyB0byB0aGUgc3BlYyBmb3IgaW5kZXhlZCBzb3VyY2UgbWFwcywgdGhleVxuICogaGF2ZSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6XG4gKlxuICogICAtIHZlcnNpb246IFdoaWNoIHZlcnNpb24gb2YgdGhlIHNvdXJjZSBtYXAgc3BlYyB0aGlzIG1hcCBpcyBmb2xsb3dpbmcuXG4gKiAgIC0gZmlsZTogT3B0aW9uYWwuIFRoZSBnZW5lcmF0ZWQgZmlsZSB0aGlzIHNvdXJjZSBtYXAgaXMgYXNzb2NpYXRlZCB3aXRoLlxuICogICAtIHNlY3Rpb25zOiBBIGxpc3Qgb2Ygc2VjdGlvbiBkZWZpbml0aW9ucy5cbiAqXG4gKiBFYWNoIHZhbHVlIHVuZGVyIHRoZSBcInNlY3Rpb25zXCIgZmllbGQgaGFzIHR3byBmaWVsZHM6XG4gKiAgIC0gb2Zmc2V0OiBUaGUgb2Zmc2V0IGludG8gdGhlIG9yaWdpbmFsIHNwZWNpZmllZCBhdCB3aGljaCB0aGlzIHNlY3Rpb25cbiAqICAgICAgIGJlZ2lucyB0byBhcHBseSwgZGVmaW5lZCBhcyBhbiBvYmplY3Qgd2l0aCBhIFwibGluZVwiIGFuZCBcImNvbHVtblwiXG4gKiAgICAgICBmaWVsZC5cbiAqICAgLSBtYXA6IEEgc291cmNlIG1hcCBkZWZpbml0aW9uLiBUaGlzIHNvdXJjZSBtYXAgY291bGQgYWxzbyBiZSBpbmRleGVkLFxuICogICAgICAgYnV0IGRvZXNuJ3QgaGF2ZSB0byBiZS5cbiAqXG4gKiBJbnN0ZWFkIG9mIHRoZSBcIm1hcFwiIGZpZWxkLCBpdCdzIGFsc28gcG9zc2libGUgdG8gaGF2ZSBhIFwidXJsXCIgZmllbGRcbiAqIHNwZWNpZnlpbmcgYSBVUkwgdG8gcmV0cmlldmUgYSBzb3VyY2UgbWFwIGZyb20sIGJ1dCB0aGF0J3MgY3VycmVudGx5XG4gKiB1bnN1cHBvcnRlZC5cbiAqXG4gKiBIZXJlJ3MgYW4gZXhhbXBsZSBzb3VyY2UgbWFwLCB0YWtlbiBmcm9tIHRoZSBzb3VyY2UgbWFwIHNwZWNbMF0sIGJ1dFxuICogbW9kaWZpZWQgdG8gb21pdCBhIHNlY3Rpb24gd2hpY2ggdXNlcyB0aGUgXCJ1cmxcIiBmaWVsZC5cbiAqXG4gKiAge1xuICogICAgdmVyc2lvbiA6IDMsXG4gKiAgICBmaWxlOiBcImFwcC5qc1wiLFxuICogICAgc2VjdGlvbnM6IFt7XG4gKiAgICAgIG9mZnNldDoge2xpbmU6MTAwLCBjb2x1bW46MTB9LFxuICogICAgICBtYXA6IHtcbiAqICAgICAgICB2ZXJzaW9uIDogMyxcbiAqICAgICAgICBmaWxlOiBcInNlY3Rpb24uanNcIixcbiAqICAgICAgICBzb3VyY2VzOiBbXCJmb28uanNcIiwgXCJiYXIuanNcIl0sXG4gKiAgICAgICAgbmFtZXM6IFtcInNyY1wiLCBcIm1hcHNcIiwgXCJhcmVcIiwgXCJmdW5cIl0sXG4gKiAgICAgICAgbWFwcGluZ3M6IFwiQUFBQSxFOztBQkNERTtcIlxuICogICAgICB9XG4gKiAgICB9XSxcbiAqICB9XG4gKlxuICogWzBdOiBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9kb2N1bWVudC9kLzFVMVJHQWVoUXdSeXBVVG92RjFLUmxwaU9GemUwYi1fMmdjNmZBSDBLWTBrL2VkaXQjaGVhZGluZz1oLjUzNWVzM3hlcHJndFxuICovXG5mdW5jdGlvbiBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIoYVNvdXJjZU1hcCkge1xuICB2YXIgc291cmNlTWFwID0gYVNvdXJjZU1hcDtcbiAgaWYgKHR5cGVvZiBhU291cmNlTWFwID09PSAnc3RyaW5nJykge1xuICAgIHNvdXJjZU1hcCA9IEpTT04ucGFyc2UoYVNvdXJjZU1hcC5yZXBsYWNlKC9eXFwpXFxdXFx9Jy8sICcnKSk7XG4gIH1cblxuICB2YXIgdmVyc2lvbiA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgJ3ZlcnNpb24nKTtcbiAgdmFyIHNlY3Rpb25zID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAnc2VjdGlvbnMnKTtcblxuICBpZiAodmVyc2lvbiAhPSB0aGlzLl92ZXJzaW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCB2ZXJzaW9uOiAnICsgdmVyc2lvbik7XG4gIH1cblxuICB0aGlzLl9zb3VyY2VzID0gbmV3IEFycmF5U2V0KCk7XG4gIHRoaXMuX25hbWVzID0gbmV3IEFycmF5U2V0KCk7XG5cbiAgdmFyIGxhc3RPZmZzZXQgPSB7XG4gICAgbGluZTogLTEsXG4gICAgY29sdW1uOiAwXG4gIH07XG4gIHRoaXMuX3NlY3Rpb25zID0gc2VjdGlvbnMubWFwKGZ1bmN0aW9uIChzKSB7XG4gICAgaWYgKHMudXJsKSB7XG4gICAgICAvLyBUaGUgdXJsIGZpZWxkIHdpbGwgcmVxdWlyZSBzdXBwb3J0IGZvciBhc3luY2hyb25pY2l0eS5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zb3VyY2UtbWFwL2lzc3Vlcy8xNlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdXBwb3J0IGZvciB1cmwgZmllbGQgaW4gc2VjdGlvbnMgbm90IGltcGxlbWVudGVkLicpO1xuICAgIH1cbiAgICB2YXIgb2Zmc2V0ID0gdXRpbC5nZXRBcmcocywgJ29mZnNldCcpO1xuICAgIHZhciBvZmZzZXRMaW5lID0gdXRpbC5nZXRBcmcob2Zmc2V0LCAnbGluZScpO1xuICAgIHZhciBvZmZzZXRDb2x1bW4gPSB1dGlsLmdldEFyZyhvZmZzZXQsICdjb2x1bW4nKTtcblxuICAgIGlmIChvZmZzZXRMaW5lIDwgbGFzdE9mZnNldC5saW5lIHx8XG4gICAgICAgIChvZmZzZXRMaW5lID09PSBsYXN0T2Zmc2V0LmxpbmUgJiYgb2Zmc2V0Q29sdW1uIDwgbGFzdE9mZnNldC5jb2x1bW4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlY3Rpb24gb2Zmc2V0cyBtdXN0IGJlIG9yZGVyZWQgYW5kIG5vbi1vdmVybGFwcGluZy4nKTtcbiAgICB9XG4gICAgbGFzdE9mZnNldCA9IG9mZnNldDtcblxuICAgIHJldHVybiB7XG4gICAgICBnZW5lcmF0ZWRPZmZzZXQ6IHtcbiAgICAgICAgLy8gVGhlIG9mZnNldCBmaWVsZHMgYXJlIDAtYmFzZWQsIGJ1dCB3ZSB1c2UgMS1iYXNlZCBpbmRpY2VzIHdoZW5cbiAgICAgICAgLy8gZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBWTFEuXG4gICAgICAgIGdlbmVyYXRlZExpbmU6IG9mZnNldExpbmUgKyAxLFxuICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG9mZnNldENvbHVtbiArIDFcbiAgICAgIH0sXG4gICAgICBjb25zdW1lcjogbmV3IFNvdXJjZU1hcENvbnN1bWVyKHV0aWwuZ2V0QXJnKHMsICdtYXAnKSlcbiAgICB9XG4gIH0pO1xufVxuXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUpO1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFNvdXJjZU1hcENvbnN1bWVyO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgbWFwcGluZyBzcGVjIHRoYXQgd2UgYXJlIGNvbnN1bWluZy5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2Ygb3JpZ2luYWwgc291cmNlcy5cbiAqL1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUsICdzb3VyY2VzJywge1xuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc291cmNlcyA9IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlcy5sZW5ndGg7IGorKykge1xuICAgICAgICBzb3VyY2VzLnB1c2godGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuc291cmNlc1tqXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VzO1xuICB9XG59KTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGxpbmUsIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBnZW5lcmF0ZWRcbiAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdFxuICogd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLCBvciBudWxsLlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLlxuICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgLSBuYW1lOiBUaGUgb3JpZ2luYWwgaWRlbnRpZmllciwgb3IgbnVsbC5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5vcmlnaW5hbFBvc2l0aW9uRm9yID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX29yaWdpbmFsUG9zaXRpb25Gb3IoYUFyZ3MpIHtcbiAgICB2YXIgbmVlZGxlID0ge1xuICAgICAgZ2VuZXJhdGVkTGluZTogdXRpbC5nZXRBcmcoYUFyZ3MsICdsaW5lJyksXG4gICAgICBnZW5lcmF0ZWRDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAnY29sdW1uJylcbiAgICB9O1xuXG4gICAgLy8gRmluZCB0aGUgc2VjdGlvbiBjb250YWluaW5nIHRoZSBnZW5lcmF0ZWQgcG9zaXRpb24gd2UncmUgdHJ5aW5nIHRvIG1hcFxuICAgIC8vIHRvIGFuIG9yaWdpbmFsIHBvc2l0aW9uLlxuICAgIHZhciBzZWN0aW9uSW5kZXggPSBiaW5hcnlTZWFyY2guc2VhcmNoKG5lZWRsZSwgdGhpcy5fc2VjdGlvbnMsXG4gICAgICBmdW5jdGlvbihuZWVkbGUsIHNlY3Rpb24pIHtcbiAgICAgICAgdmFyIGNtcCA9IG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZTtcbiAgICAgICAgaWYgKGNtcCkge1xuICAgICAgICAgIHJldHVybiBjbXA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKG5lZWRsZS5nZW5lcmF0ZWRDb2x1bW4gLVxuICAgICAgICAgICAgICAgIHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbik7XG4gICAgICB9KTtcbiAgICB2YXIgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW3NlY3Rpb25JbmRleF07XG5cbiAgICBpZiAoIXNlY3Rpb24pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZTogbnVsbCxcbiAgICAgICAgbGluZTogbnVsbCxcbiAgICAgICAgY29sdW1uOiBudWxsLFxuICAgICAgICBuYW1lOiBudWxsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBzZWN0aW9uLmNvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3Ioe1xuICAgICAgbGluZTogbmVlZGxlLmdlbmVyYXRlZExpbmUgLVxuICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLFxuICAgICAgY29sdW1uOiBuZWVkbGUuZ2VuZXJhdGVkQ29sdW1uIC1cbiAgICAgICAgKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgPT09IG5lZWRsZS5nZW5lcmF0ZWRMaW5lXG4gICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgIDogMCksXG4gICAgICBiaWFzOiBhQXJncy5iaWFzXG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlXG4gKiBtYXAsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyLnByb3RvdHlwZS5oYXNDb250ZW50c09mQWxsU291cmNlcyA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9oYXNDb250ZW50c09mQWxsU291cmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VjdGlvbnMuZXZlcnkoZnVuY3Rpb24gKHMpIHtcbiAgICAgIHJldHVybiBzLmNvbnN1bWVyLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCk7XG4gICAgfSk7XG4gIH07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgb3JpZ2luYWwgc291cmNlIGNvbnRlbnQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIHRoZSB1cmwgb2YgdGhlXG4gKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzXG4gKiBhdmFpbGFibGUuXG4gKi9cbkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuc291cmNlQ29udGVudEZvciA9XG4gIGZ1bmN0aW9uIEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcl9zb3VyY2VDb250ZW50Rm9yKGFTb3VyY2UsIG51bGxPbk1pc3NpbmcpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldO1xuXG4gICAgICB2YXIgY29udGVudCA9IHNlY3Rpb24uY29uc3VtZXIuc291cmNlQ29udGVudEZvcihhU291cmNlLCB0cnVlKTtcbiAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobnVsbE9uTWlzc2luZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdcIicgKyBhU291cmNlICsgJ1wiIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpO1xuICAgIH1cbiAgfTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLFxuICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoXG4gKiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UuXG4gKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLlxuICpcbiAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC5cbiAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLlxuICovXG5JbmRleGVkU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmdlbmVyYXRlZFBvc2l0aW9uRm9yID1cbiAgZnVuY3Rpb24gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyX2dlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTtcblxuICAgICAgLy8gT25seSBjb25zaWRlciB0aGlzIHNlY3Rpb24gaWYgdGhlIHJlcXVlc3RlZCBzb3VyY2UgaXMgaW4gdGhlIGxpc3Qgb2ZcbiAgICAgIC8vIHNvdXJjZXMgb2YgdGhlIGNvbnN1bWVyLlxuICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuc291cmNlcy5pbmRleE9mKHV0aWwuZ2V0QXJnKGFBcmdzLCAnc291cmNlJykpID09PSAtMSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhciBnZW5lcmF0ZWRQb3NpdGlvbiA9IHNlY3Rpb24uY29uc3VtZXIuZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpO1xuICAgICAgaWYgKGdlbmVyYXRlZFBvc2l0aW9uKSB7XG4gICAgICAgIHZhciByZXQgPSB7XG4gICAgICAgICAgbGluZTogZ2VuZXJhdGVkUG9zaXRpb24ubGluZSArXG4gICAgICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLFxuICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkUG9zaXRpb24uY29sdW1uICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lXG4gICAgICAgICAgICAgPyBzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRDb2x1bW4gLSAxXG4gICAgICAgICAgICAgOiAwKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBsaW5lOiBudWxsLFxuICAgICAgY29sdW1uOiBudWxsXG4gICAgfTtcbiAgfTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgbWFwcGluZ3MgaW4gYSBzdHJpbmcgaW4gdG8gYSBkYXRhIHN0cnVjdHVyZSB3aGljaCB3ZSBjYW4gZWFzaWx5XG4gKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmRcbiAqIGB0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc2AgcHJvcGVydGllcykuXG4gKi9cbkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lci5wcm90b3R5cGUuX3BhcnNlTWFwcGluZ3MgPVxuICBmdW5jdGlvbiBJbmRleGVkU291cmNlTWFwQ29uc3VtZXJfcGFyc2VNYXBwaW5ncyhhU3RyLCBhU291cmNlUm9vdCkge1xuICAgIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IFtdO1xuICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzID0gW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTtcbiAgICAgIHZhciBzZWN0aW9uTWFwcGluZ3MgPSBzZWN0aW9uLmNvbnN1bWVyLl9nZW5lcmF0ZWRNYXBwaW5ncztcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc2VjdGlvbk1hcHBpbmdzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIHZhciBtYXBwaW5nID0gc2VjdGlvbk1hcHBpbmdzW2pdO1xuXG4gICAgICAgIHZhciBzb3VyY2UgPSBzZWN0aW9uLmNvbnN1bWVyLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTtcbiAgICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuc291cmNlUm9vdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHNvdXJjZSA9IHV0aWwuam9pbihzZWN0aW9uLmNvbnN1bWVyLnNvdXJjZVJvb3QsIHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTtcbiAgICAgICAgc291cmNlID0gdGhpcy5fc291cmNlcy5pbmRleE9mKHNvdXJjZSk7XG5cbiAgICAgICAgdmFyIG5hbWUgPSBzZWN0aW9uLmNvbnN1bWVyLl9uYW1lcy5hdChtYXBwaW5nLm5hbWUpO1xuICAgICAgICB0aGlzLl9uYW1lcy5hZGQobmFtZSk7XG4gICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5pbmRleE9mKG5hbWUpO1xuXG4gICAgICAgIC8vIFRoZSBtYXBwaW5ncyBjb21pbmcgZnJvbSB0aGUgY29uc3VtZXIgZm9yIHRoZSBzZWN0aW9uIGhhdmVcbiAgICAgICAgLy8gZ2VuZXJhdGVkIHBvc2l0aW9ucyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24sIHNvIHdlXG4gICAgICAgIC8vIG5lZWQgdG8gb2Zmc2V0IHRoZW0gdG8gYmUgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb25jYXRlbmF0ZWRcbiAgICAgICAgLy8gZ2VuZXJhdGVkIGZpbGUuXG4gICAgICAgIHZhciBhZGp1c3RlZE1hcHBpbmcgPSB7XG4gICAgICAgICAgc291cmNlOiBzb3VyY2UsXG4gICAgICAgICAgZ2VuZXJhdGVkTGluZTogbWFwcGluZy5nZW5lcmF0ZWRMaW5lICtcbiAgICAgICAgICAgIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lIC0gMSksXG4gICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uOiBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiArXG4gICAgICAgICAgICAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbWFwcGluZy5nZW5lcmF0ZWRMaW5lXG4gICAgICAgICAgICA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDFcbiAgICAgICAgICAgIDogMCksXG4gICAgICAgICAgb3JpZ2luYWxMaW5lOiBtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICBvcmlnaW5hbENvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbixcbiAgICAgICAgICBuYW1lOiBuYW1lXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgaWYgKHR5cGVvZiBhZGp1c3RlZE1hcHBpbmcub3JpZ2luYWxMaW5lID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHF1aWNrU29ydCh0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3MsIHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQpO1xuICAgIHF1aWNrU29ydCh0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncywgdXRpbC5jb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyk7XG4gIH07XG5cbmV4cG9ydHMuSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyID0gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvc291cmNlLW1hcC1jb25zdW1lci5qc1xuLy8gbW9kdWxlIGlkID0gN1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbmV4cG9ydHMuR1JFQVRFU1RfTE9XRVJfQk9VTkQgPSAxO1xuZXhwb3J0cy5MRUFTVF9VUFBFUl9CT1VORCA9IDI7XG5cbi8qKlxuICogUmVjdXJzaXZlIGltcGxlbWVudGF0aW9uIG9mIGJpbmFyeSBzZWFyY2guXG4gKlxuICogQHBhcmFtIGFMb3cgSW5kaWNlcyBoZXJlIGFuZCBsb3dlciBkbyBub3QgY29udGFpbiB0aGUgbmVlZGxlLlxuICogQHBhcmFtIGFIaWdoIEluZGljZXMgaGVyZSBhbmQgaGlnaGVyIGRvIG5vdCBjb250YWluIHRoZSBuZWVkbGUuXG4gKiBAcGFyYW0gYU5lZWRsZSBUaGUgZWxlbWVudCBiZWluZyBzZWFyY2hlZCBmb3IuXG4gKiBAcGFyYW0gYUhheXN0YWNrIFRoZSBub24tZW1wdHkgYXJyYXkgYmVpbmcgc2VhcmNoZWQuXG4gKiBAcGFyYW0gYUNvbXBhcmUgRnVuY3Rpb24gd2hpY2ggdGFrZXMgdHdvIGVsZW1lbnRzIGFuZCByZXR1cm5zIC0xLCAwLCBvciAxLlxuICogQHBhcmFtIGFCaWFzIEVpdGhlciAnYmluYXJ5U2VhcmNoLkdSRUFURVNUX0xPV0VSX0JPVU5EJyBvclxuICogICAgICdiaW5hcnlTZWFyY2guTEVBU1RfVVBQRVJfQk9VTkQnLiBTcGVjaWZpZXMgd2hldGhlciB0byByZXR1cm4gdGhlXG4gKiAgICAgY2xvc2VzdCBlbGVtZW50IHRoYXQgaXMgc21hbGxlciB0aGFuIG9yIGdyZWF0ZXIgdGhhbiB0aGUgb25lIHdlIGFyZVxuICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLlxuICovXG5mdW5jdGlvbiByZWN1cnNpdmVTZWFyY2goYUxvdywgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKSB7XG4gIC8vIFRoaXMgZnVuY3Rpb24gdGVybWluYXRlcyB3aGVuIG9uZSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6XG4gIC8vXG4gIC8vICAgMS4gV2UgZmluZCB0aGUgZXhhY3QgZWxlbWVudCB3ZSBhcmUgbG9va2luZyBmb3IuXG4gIC8vXG4gIC8vICAgMi4gV2UgZGlkIG5vdCBmaW5kIHRoZSBleGFjdCBlbGVtZW50LCBidXQgd2UgY2FuIHJldHVybiB0aGUgaW5kZXggb2ZcbiAgLy8gICAgICB0aGUgbmV4dC1jbG9zZXN0IGVsZW1lbnQuXG4gIC8vXG4gIC8vICAgMy4gV2UgZGlkIG5vdCBmaW5kIHRoZSBleGFjdCBlbGVtZW50LCBhbmQgdGhlcmUgaXMgbm8gbmV4dC1jbG9zZXN0XG4gIC8vICAgICAgZWxlbWVudCB0aGFuIHRoZSBvbmUgd2UgYXJlIHNlYXJjaGluZyBmb3IsIHNvIHdlIHJldHVybiAtMS5cbiAgdmFyIG1pZCA9IE1hdGguZmxvb3IoKGFIaWdoIC0gYUxvdykgLyAyKSArIGFMb3c7XG4gIHZhciBjbXAgPSBhQ29tcGFyZShhTmVlZGxlLCBhSGF5c3RhY2tbbWlkXSwgdHJ1ZSk7XG4gIGlmIChjbXAgPT09IDApIHtcbiAgICAvLyBGb3VuZCB0aGUgZWxlbWVudCB3ZSBhcmUgbG9va2luZyBmb3IuXG4gICAgcmV0dXJuIG1pZDtcbiAgfVxuICBlbHNlIGlmIChjbXAgPiAwKSB7XG4gICAgLy8gT3VyIG5lZWRsZSBpcyBncmVhdGVyIHRoYW4gYUhheXN0YWNrW21pZF0uXG4gICAgaWYgKGFIaWdoIC0gbWlkID4gMSkge1xuICAgICAgLy8gVGhlIGVsZW1lbnQgaXMgaW4gdGhlIHVwcGVyIGhhbGYuXG4gICAgICByZXR1cm4gcmVjdXJzaXZlU2VhcmNoKG1pZCwgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZXhhY3QgbmVlZGxlIGVsZW1lbnQgd2FzIG5vdCBmb3VuZCBpbiB0aGlzIGhheXN0YWNrLiBEZXRlcm1pbmUgaWZcbiAgICAvLyB3ZSBhcmUgaW4gdGVybWluYXRpb24gY2FzZSAoMykgb3IgKDIpIGFuZCByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHRoaW5nLlxuICAgIGlmIChhQmlhcyA9PSBleHBvcnRzLkxFQVNUX1VQUEVSX0JPVU5EKSB7XG4gICAgICByZXR1cm4gYUhpZ2ggPCBhSGF5c3RhY2subGVuZ3RoID8gYUhpZ2ggOiAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1pZDtcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgLy8gT3VyIG5lZWRsZSBpcyBsZXNzIHRoYW4gYUhheXN0YWNrW21pZF0uXG4gICAgaWYgKG1pZCAtIGFMb3cgPiAxKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBpbiB0aGUgbG93ZXIgaGFsZi5cbiAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2goYUxvdywgbWlkLCBhTmVlZGxlLCBhSGF5c3RhY2ssIGFDb21wYXJlLCBhQmlhcyk7XG4gICAgfVxuXG4gICAgLy8gd2UgYXJlIGluIHRlcm1pbmF0aW9uIGNhc2UgKDMpIG9yICgyKSBhbmQgcmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB0aGluZy5cbiAgICBpZiAoYUJpYXMgPT0gZXhwb3J0cy5MRUFTVF9VUFBFUl9CT1VORCkge1xuICAgICAgcmV0dXJuIG1pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFMb3cgPCAwID8gLTEgOiBhTG93O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYmluYXJ5IHNlYXJjaCB3aGljaCB3aWxsIGFsd2F5cyB0cnkgYW5kIHJldHVyblxuICogdGhlIGluZGV4IG9mIHRoZSBjbG9zZXN0IGVsZW1lbnQgaWYgdGhlcmUgaXMgbm8gZXhhY3QgaGl0LiBUaGlzIGlzIGJlY2F1c2VcbiAqIG1hcHBpbmdzIGJldHdlZW4gb3JpZ2luYWwgYW5kIGdlbmVyYXRlZCBsaW5lL2NvbCBwYWlycyBhcmUgc2luZ2xlIHBvaW50cyxcbiAqIGFuZCB0aGVyZSBpcyBhbiBpbXBsaWNpdCByZWdpb24gYmV0d2VlbiBlYWNoIG9mIHRoZW0sIHNvIGEgbWlzcyBqdXN0IG1lYW5zXG4gKiB0aGF0IHlvdSBhcmVuJ3Qgb24gdGhlIHZlcnkgc3RhcnQgb2YgYSByZWdpb24uXG4gKlxuICogQHBhcmFtIGFOZWVkbGUgVGhlIGVsZW1lbnQgeW91IGFyZSBsb29raW5nIGZvci5cbiAqIEBwYXJhbSBhSGF5c3RhY2sgVGhlIGFycmF5IHRoYXQgaXMgYmVpbmcgc2VhcmNoZWQuXG4gKiBAcGFyYW0gYUNvbXBhcmUgQSBmdW5jdGlvbiB3aGljaCB0YWtlcyB0aGUgbmVlZGxlIGFuZCBhbiBlbGVtZW50IGluIHRoZVxuICogICAgIGFycmF5IGFuZCByZXR1cm5zIC0xLCAwLCBvciAxIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBuZWVkbGUgaXMgbGVzc1xuICogICAgIHRoYW4sIGVxdWFsIHRvLCBvciBncmVhdGVyIHRoYW4gdGhlIGVsZW1lbnQsIHJlc3BlY3RpdmVseS5cbiAqIEBwYXJhbSBhQmlhcyBFaXRoZXIgJ2JpbmFyeVNlYXJjaC5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3JcbiAqICAgICAnYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5EJy4gU3BlY2lmaWVzIHdoZXRoZXIgdG8gcmV0dXJuIHRoZVxuICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmVcbiAqICAgICBzZWFyY2hpbmcgZm9yLCByZXNwZWN0aXZlbHksIGlmIHRoZSBleGFjdCBlbGVtZW50IGNhbm5vdCBiZSBmb3VuZC5cbiAqICAgICBEZWZhdWx0cyB0byAnYmluYXJ5U2VhcmNoLkdSRUFURVNUX0xPV0VSX0JPVU5EJy5cbiAqL1xuZXhwb3J0cy5zZWFyY2ggPSBmdW5jdGlvbiBzZWFyY2goYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpIHtcbiAgaWYgKGFIYXlzdGFjay5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICB2YXIgaW5kZXggPSByZWN1cnNpdmVTZWFyY2goLTEsIGFIYXlzdGFjay5sZW5ndGgsIGFOZWVkbGUsIGFIYXlzdGFjayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFDb21wYXJlLCBhQmlhcyB8fCBleHBvcnRzLkdSRUFURVNUX0xPV0VSX0JPVU5EKTtcbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIC8vIFdlIGhhdmUgZm91bmQgZWl0aGVyIHRoZSBleGFjdCBlbGVtZW50LCBvciB0aGUgbmV4dC1jbG9zZXN0IGVsZW1lbnQgdGhhblxuICAvLyB0aGUgb25lIHdlIGFyZSBzZWFyY2hpbmcgZm9yLiBIb3dldmVyLCB0aGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZSBzdWNoXG4gIC8vIGVsZW1lbnQuIE1ha2Ugc3VyZSB3ZSBhbHdheXMgcmV0dXJuIHRoZSBzbWFsbGVzdCBvZiB0aGVzZS5cbiAgd2hpbGUgKGluZGV4IC0gMSA+PSAwKSB7XG4gICAgaWYgKGFDb21wYXJlKGFIYXlzdGFja1tpbmRleF0sIGFIYXlzdGFja1tpbmRleCAtIDFdLCB0cnVlKSAhPT0gMCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIC0taW5kZXg7XG4gIH1cblxuICByZXR1cm4gaW5kZXg7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvYmluYXJ5LXNlYXJjaC5qc1xuLy8gbW9kdWxlIGlkID0gOFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbi8vIEl0IHR1cm5zIG91dCB0aGF0IHNvbWUgKG1vc3Q/KSBKYXZhU2NyaXB0IGVuZ2luZXMgZG9uJ3Qgc2VsZi1ob3N0XG4vLyBgQXJyYXkucHJvdG90eXBlLnNvcnRgLiBUaGlzIG1ha2VzIHNlbnNlIGJlY2F1c2UgQysrIHdpbGwgbGlrZWx5IHJlbWFpblxuLy8gZmFzdGVyIHRoYW4gSlMgd2hlbiBkb2luZyByYXcgQ1BVLWludGVuc2l2ZSBzb3J0aW5nLiBIb3dldmVyLCB3aGVuIHVzaW5nIGFcbi8vIGN1c3RvbSBjb21wYXJhdG9yIGZ1bmN0aW9uLCBjYWxsaW5nIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gdGhlIFZNJ3MgQysrIGFuZFxuLy8gSklUJ2QgSlMgaXMgcmF0aGVyIHNsb3cgKmFuZCogbG9zZXMgSklUIHR5cGUgaW5mb3JtYXRpb24sIHJlc3VsdGluZyBpblxuLy8gd29yc2UgZ2VuZXJhdGVkIGNvZGUgZm9yIHRoZSBjb21wYXJhdG9yIGZ1bmN0aW9uIHRoYW4gd291bGQgYmUgb3B0aW1hbC4gSW5cbi8vIGZhY3QsIHdoZW4gc29ydGluZyB3aXRoIGEgY29tcGFyYXRvciwgdGhlc2UgY29zdHMgb3V0d2VpZ2ggdGhlIGJlbmVmaXRzIG9mXG4vLyBzb3J0aW5nIGluIEMrKy4gQnkgdXNpbmcgb3VyIG93biBKUy1pbXBsZW1lbnRlZCBRdWljayBTb3J0IChiZWxvdyksIHdlIGdldFxuLy8gYSB+MzUwMG1zIG1lYW4gc3BlZWQtdXAgaW4gYGJlbmNoL2JlbmNoLmh0bWxgLlxuXG4vKipcbiAqIFN3YXAgdGhlIGVsZW1lbnRzIGluZGV4ZWQgYnkgYHhgIGFuZCBgeWAgaW4gdGhlIGFycmF5IGBhcnlgLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIFRoZSBhcnJheS5cbiAqIEBwYXJhbSB7TnVtYmVyfSB4XG4gKiAgICAgICAgVGhlIGluZGV4IG9mIHRoZSBmaXJzdCBpdGVtLlxuICogQHBhcmFtIHtOdW1iZXJ9IHlcbiAqICAgICAgICBUaGUgaW5kZXggb2YgdGhlIHNlY29uZCBpdGVtLlxuICovXG5mdW5jdGlvbiBzd2FwKGFyeSwgeCwgeSkge1xuICB2YXIgdGVtcCA9IGFyeVt4XTtcbiAgYXJ5W3hdID0gYXJ5W3ldO1xuICBhcnlbeV0gPSB0ZW1wO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByYW5kb20gaW50ZWdlciB3aXRoaW4gdGhlIHJhbmdlIGBsb3cgLi4gaGlnaGAgaW5jbHVzaXZlLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBsb3dcbiAqICAgICAgICBUaGUgbG93ZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICogQHBhcmFtIHtOdW1iZXJ9IGhpZ2hcbiAqICAgICAgICBUaGUgdXBwZXIgYm91bmQgb24gdGhlIHJhbmdlLlxuICovXG5mdW5jdGlvbiByYW5kb21JbnRJblJhbmdlKGxvdywgaGlnaCkge1xuICByZXR1cm4gTWF0aC5yb3VuZChsb3cgKyAoTWF0aC5yYW5kb20oKSAqIChoaWdoIC0gbG93KSkpO1xufVxuXG4vKipcbiAqIFRoZSBRdWljayBTb3J0IGFsZ29yaXRobS5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBhcnlcbiAqICAgICAgICBBbiBhcnJheSB0byBzb3J0LlxuICogQHBhcmFtIHtmdW5jdGlvbn0gY29tcGFyYXRvclxuICogICAgICAgIEZ1bmN0aW9uIHRvIHVzZSB0byBjb21wYXJlIHR3byBpdGVtcy5cbiAqIEBwYXJhbSB7TnVtYmVyfSBwXG4gKiAgICAgICAgU3RhcnQgaW5kZXggb2YgdGhlIGFycmF5XG4gKiBAcGFyYW0ge051bWJlcn0gclxuICogICAgICAgIEVuZCBpbmRleCBvZiB0aGUgYXJyYXlcbiAqL1xuZnVuY3Rpb24gZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCByKSB7XG4gIC8vIElmIG91ciBsb3dlciBib3VuZCBpcyBsZXNzIHRoYW4gb3VyIHVwcGVyIGJvdW5kLCB3ZSAoMSkgcGFydGl0aW9uIHRoZVxuICAvLyBhcnJheSBpbnRvIHR3byBwaWVjZXMgYW5kICgyKSByZWN1cnNlIG9uIGVhY2ggaGFsZi4gSWYgaXQgaXMgbm90LCB0aGlzIGlzXG4gIC8vIHRoZSBlbXB0eSBhcnJheSBhbmQgb3VyIGJhc2UgY2FzZS5cblxuICBpZiAocCA8IHIpIHtcbiAgICAvLyAoMSkgUGFydGl0aW9uaW5nLlxuICAgIC8vXG4gICAgLy8gVGhlIHBhcnRpdGlvbmluZyBjaG9vc2VzIGEgcGl2b3QgYmV0d2VlbiBgcGAgYW5kIGByYCBhbmQgbW92ZXMgYWxsXG4gICAgLy8gZWxlbWVudHMgdGhhdCBhcmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdCB0byB0aGUgYmVmb3JlIGl0LCBhbmRcbiAgICAvLyBhbGwgdGhlIGVsZW1lbnRzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiBpdCBhZnRlciBpdC4gVGhlIGVmZmVjdCBpcyB0aGF0XG4gICAgLy8gb25jZSBwYXJ0aXRpb24gaXMgZG9uZSwgdGhlIHBpdm90IGlzIGluIHRoZSBleGFjdCBwbGFjZSBpdCB3aWxsIGJlIHdoZW5cbiAgICAvLyB0aGUgYXJyYXkgaXMgcHV0IGluIHNvcnRlZCBvcmRlciwgYW5kIGl0IHdpbGwgbm90IG5lZWQgdG8gYmUgbW92ZWRcbiAgICAvLyBhZ2Fpbi4gVGhpcyBydW5zIGluIE8obikgdGltZS5cblxuICAgIC8vIEFsd2F5cyBjaG9vc2UgYSByYW5kb20gcGl2b3Qgc28gdGhhdCBhbiBpbnB1dCBhcnJheSB3aGljaCBpcyByZXZlcnNlXG4gICAgLy8gc29ydGVkIGRvZXMgbm90IGNhdXNlIE8obl4yKSBydW5uaW5nIHRpbWUuXG4gICAgdmFyIHBpdm90SW5kZXggPSByYW5kb21JbnRJblJhbmdlKHAsIHIpO1xuICAgIHZhciBpID0gcCAtIDE7XG5cbiAgICBzd2FwKGFyeSwgcGl2b3RJbmRleCwgcik7XG4gICAgdmFyIHBpdm90ID0gYXJ5W3JdO1xuXG4gICAgLy8gSW1tZWRpYXRlbHkgYWZ0ZXIgYGpgIGlzIGluY3JlbWVudGVkIGluIHRoaXMgbG9vcCwgdGhlIGZvbGxvd2luZyBob2xkXG4gICAgLy8gdHJ1ZTpcbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbcCAuLiBpXWAgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwaXZvdC5cbiAgICAvL1xuICAgIC8vICAgKiBFdmVyeSBlbGVtZW50IGluIGBhcnlbaSsxIC4uIGotMV1gIGlzIGdyZWF0ZXIgdGhhbiB0aGUgcGl2b3QuXG4gICAgZm9yICh2YXIgaiA9IHA7IGogPCByOyBqKyspIHtcbiAgICAgIGlmIChjb21wYXJhdG9yKGFyeVtqXSwgcGl2b3QpIDw9IDApIHtcbiAgICAgICAgaSArPSAxO1xuICAgICAgICBzd2FwKGFyeSwgaSwgaik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3dhcChhcnksIGkgKyAxLCBqKTtcbiAgICB2YXIgcSA9IGkgKyAxO1xuXG4gICAgLy8gKDIpIFJlY3Vyc2Ugb24gZWFjaCBoYWxmLlxuXG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBwLCBxIC0gMSk7XG4gICAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCBxICsgMSwgcik7XG4gIH1cbn1cblxuLyoqXG4gKiBTb3J0IHRoZSBnaXZlbiBhcnJheSBpbi1wbGFjZSB3aXRoIHRoZSBnaXZlbiBjb21wYXJhdG9yIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFyeVxuICogICAgICAgIEFuIGFycmF5IHRvIHNvcnQuXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBjb21wYXJhdG9yXG4gKiAgICAgICAgRnVuY3Rpb24gdG8gdXNlIHRvIGNvbXBhcmUgdHdvIGl0ZW1zLlxuICovXG5leHBvcnRzLnF1aWNrU29ydCA9IGZ1bmN0aW9uIChhcnksIGNvbXBhcmF0b3IpIHtcbiAgZG9RdWlja1NvcnQoYXJ5LCBjb21wYXJhdG9yLCAwLCBhcnkubGVuZ3RoIC0gMSk7XG59O1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvcXVpY2stc29ydC5qc1xuLy8gbW9kdWxlIGlkID0gOVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiLCIvKiAtKi0gTW9kZToganM7IGpzLWluZGVudC1sZXZlbDogMjsgLSotICovXG4vKlxuICogQ29weXJpZ2h0IDIwMTEgTW96aWxsYSBGb3VuZGF0aW9uIGFuZCBjb250cmlidXRvcnNcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBOZXcgQlNEIGxpY2Vuc2UuIFNlZSBMSUNFTlNFIG9yOlxuICogaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZVxuICovXG5cbnZhciBTb3VyY2VNYXBHZW5lcmF0b3IgPSByZXF1aXJlKCcuL3NvdXJjZS1tYXAtZ2VuZXJhdG9yJykuU291cmNlTWFwR2VuZXJhdG9yO1xudmFyIHV0aWwgPSByZXF1aXJlKCcuL3V0aWwnKTtcblxuLy8gTWF0Y2hlcyBhIFdpbmRvd3Mtc3R5bGUgYFxcclxcbmAgbmV3bGluZSBvciBhIGBcXG5gIG5ld2xpbmUgdXNlZCBieSBhbGwgb3RoZXJcbi8vIG9wZXJhdGluZyBzeXN0ZW1zIHRoZXNlIGRheXMgKGNhcHR1cmluZyB0aGUgcmVzdWx0KS5cbnZhciBSRUdFWF9ORVdMSU5FID0gLyhcXHI/XFxuKS87XG5cbi8vIE5ld2xpbmUgY2hhcmFjdGVyIGNvZGUgZm9yIGNoYXJDb2RlQXQoKSBjb21wYXJpc29uc1xudmFyIE5FV0xJTkVfQ09ERSA9IDEwO1xuXG4vLyBQcml2YXRlIHN5bWJvbCBmb3IgaWRlbnRpZnlpbmcgYFNvdXJjZU5vZGVgcyB3aGVuIG11bHRpcGxlIHZlcnNpb25zIG9mXG4vLyB0aGUgc291cmNlLW1hcCBsaWJyYXJ5IGFyZSBsb2FkZWQuIFRoaXMgTVVTVCBOT1QgQ0hBTkdFIGFjcm9zc1xuLy8gdmVyc2lvbnMhXG52YXIgaXNTb3VyY2VOb2RlID0gXCIkJCRpc1NvdXJjZU5vZGUkJCRcIjtcblxuLyoqXG4gKiBTb3VyY2VOb2RlcyBwcm92aWRlIGEgd2F5IHRvIGFic3RyYWN0IG92ZXIgaW50ZXJwb2xhdGluZy9jb25jYXRlbmF0aW5nXG4gKiBzbmlwcGV0cyBvZiBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBzb3VyY2UgY29kZSB3aGlsZSBtYWludGFpbmluZyB0aGUgbGluZSBhbmRcbiAqIGNvbHVtbiBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlLlxuICpcbiAqIEBwYXJhbSBhTGluZSBUaGUgb3JpZ2luYWwgbGluZSBudW1iZXIuXG4gKiBAcGFyYW0gYUNvbHVtbiBUaGUgb3JpZ2luYWwgY29sdW1uIG51bWJlci5cbiAqIEBwYXJhbSBhU291cmNlIFRoZSBvcmlnaW5hbCBzb3VyY2UncyBmaWxlbmFtZS5cbiAqIEBwYXJhbSBhQ2h1bmtzIE9wdGlvbmFsLiBBbiBhcnJheSBvZiBzdHJpbmdzIHdoaWNoIGFyZSBzbmlwcGV0cyBvZlxuICogICAgICAgIGdlbmVyYXRlZCBKUywgb3Igb3RoZXIgU291cmNlTm9kZXMuXG4gKiBAcGFyYW0gYU5hbWUgVGhlIG9yaWdpbmFsIGlkZW50aWZpZXIuXG4gKi9cbmZ1bmN0aW9uIFNvdXJjZU5vZGUoYUxpbmUsIGFDb2x1bW4sIGFTb3VyY2UsIGFDaHVua3MsIGFOYW1lKSB7XG4gIHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgdGhpcy5zb3VyY2VDb250ZW50cyA9IHt9O1xuICB0aGlzLmxpbmUgPSBhTGluZSA9PSBudWxsID8gbnVsbCA6IGFMaW5lO1xuICB0aGlzLmNvbHVtbiA9IGFDb2x1bW4gPT0gbnVsbCA/IG51bGwgOiBhQ29sdW1uO1xuICB0aGlzLnNvdXJjZSA9IGFTb3VyY2UgPT0gbnVsbCA/IG51bGwgOiBhU291cmNlO1xuICB0aGlzLm5hbWUgPSBhTmFtZSA9PSBudWxsID8gbnVsbCA6IGFOYW1lO1xuICB0aGlzW2lzU291cmNlTm9kZV0gPSB0cnVlO1xuICBpZiAoYUNodW5rcyAhPSBudWxsKSB0aGlzLmFkZChhQ2h1bmtzKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgU291cmNlTm9kZSBmcm9tIGdlbmVyYXRlZCBjb2RlIGFuZCBhIFNvdXJjZU1hcENvbnN1bWVyLlxuICpcbiAqIEBwYXJhbSBhR2VuZXJhdGVkQ29kZSBUaGUgZ2VuZXJhdGVkIGNvZGVcbiAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcCBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlXG4gKiBAcGFyYW0gYVJlbGF0aXZlUGF0aCBPcHRpb25hbC4gVGhlIHBhdGggdGhhdCByZWxhdGl2ZSBzb3VyY2VzIGluIHRoZVxuICogICAgICAgIFNvdXJjZU1hcENvbnN1bWVyIHNob3VsZCBiZSByZWxhdGl2ZSB0by5cbiAqL1xuU291cmNlTm9kZS5mcm9tU3RyaW5nV2l0aFNvdXJjZU1hcCA9XG4gIGZ1bmN0aW9uIFNvdXJjZU5vZGVfZnJvbVN0cmluZ1dpdGhTb3VyY2VNYXAoYUdlbmVyYXRlZENvZGUsIGFTb3VyY2VNYXBDb25zdW1lciwgYVJlbGF0aXZlUGF0aCkge1xuICAgIC8vIFRoZSBTb3VyY2VOb2RlIHdlIHdhbnQgdG8gZmlsbCB3aXRoIHRoZSBnZW5lcmF0ZWQgY29kZVxuICAgIC8vIGFuZCB0aGUgU291cmNlTWFwXG4gICAgdmFyIG5vZGUgPSBuZXcgU291cmNlTm9kZSgpO1xuXG4gICAgLy8gQWxsIGV2ZW4gaW5kaWNlcyBvZiB0aGlzIGFycmF5IGFyZSBvbmUgbGluZSBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUsXG4gICAgLy8gd2hpbGUgYWxsIG9kZCBpbmRpY2VzIGFyZSB0aGUgbmV3bGluZXMgYmV0d2VlbiB0d28gYWRqYWNlbnQgbGluZXNcbiAgICAvLyAoc2luY2UgYFJFR0VYX05FV0xJTkVgIGNhcHR1cmVzIGl0cyBtYXRjaCkuXG4gICAgLy8gUHJvY2Vzc2VkIGZyYWdtZW50cyBhcmUgYWNjZXNzZWQgYnkgY2FsbGluZyBgc2hpZnROZXh0TGluZWAuXG4gICAgdmFyIHJlbWFpbmluZ0xpbmVzID0gYUdlbmVyYXRlZENvZGUuc3BsaXQoUkVHRVhfTkVXTElORSk7XG4gICAgdmFyIHJlbWFpbmluZ0xpbmVzSW5kZXggPSAwO1xuICAgIHZhciBzaGlmdE5leHRMaW5lID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgbGluZUNvbnRlbnRzID0gZ2V0TmV4dExpbmUoKTtcbiAgICAgIC8vIFRoZSBsYXN0IGxpbmUgb2YgYSBmaWxlIG1pZ2h0IG5vdCBoYXZlIGEgbmV3bGluZS5cbiAgICAgIHZhciBuZXdMaW5lID0gZ2V0TmV4dExpbmUoKSB8fCBcIlwiO1xuICAgICAgcmV0dXJuIGxpbmVDb250ZW50cyArIG5ld0xpbmU7XG5cbiAgICAgIGZ1bmN0aW9uIGdldE5leHRMaW5lKCkge1xuICAgICAgICByZXR1cm4gcmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCA/XG4gICAgICAgICAgICByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4KytdIDogdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBXZSBuZWVkIHRvIHJlbWVtYmVyIHRoZSBwb3NpdGlvbiBvZiBcInJlbWFpbmluZ0xpbmVzXCJcbiAgICB2YXIgbGFzdEdlbmVyYXRlZExpbmUgPSAxLCBsYXN0R2VuZXJhdGVkQ29sdW1uID0gMDtcblxuICAgIC8vIFRoZSBnZW5lcmF0ZSBTb3VyY2VOb2RlcyB3ZSBuZWVkIGEgY29kZSByYW5nZS5cbiAgICAvLyBUbyBleHRyYWN0IGl0IGN1cnJlbnQgYW5kIGxhc3QgbWFwcGluZyBpcyB1c2VkLlxuICAgIC8vIEhlcmUgd2Ugc3RvcmUgdGhlIGxhc3QgbWFwcGluZy5cbiAgICB2YXIgbGFzdE1hcHBpbmcgPSBudWxsO1xuXG4gICAgYVNvdXJjZU1hcENvbnN1bWVyLmVhY2hNYXBwaW5nKGZ1bmN0aW9uIChtYXBwaW5nKSB7XG4gICAgICBpZiAobGFzdE1hcHBpbmcgIT09IG51bGwpIHtcbiAgICAgICAgLy8gV2UgYWRkIHRoZSBjb2RlIGZyb20gXCJsYXN0TWFwcGluZ1wiIHRvIFwibWFwcGluZ1wiOlxuICAgICAgICAvLyBGaXJzdCBjaGVjayBpZiB0aGVyZSBpcyBhIG5ldyBsaW5lIGluIGJldHdlZW4uXG4gICAgICAgIGlmIChsYXN0R2VuZXJhdGVkTGluZSA8IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSkge1xuICAgICAgICAgIC8vIEFzc29jaWF0ZSBmaXJzdCBsaW5lIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgICAgYWRkTWFwcGluZ1dpdGhDb2RlKGxhc3RNYXBwaW5nLCBzaGlmdE5leHRMaW5lKCkpO1xuICAgICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7XG4gICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IDA7XG4gICAgICAgICAgLy8gVGhlIHJlbWFpbmluZyBjb2RlIGlzIGFkZGVkIHdpdGhvdXQgbWFwcGluZ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIG5ldyBsaW5lIGluIGJldHdlZW4uXG4gICAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBjb2RlIGJldHdlZW4gXCJsYXN0R2VuZXJhdGVkQ29sdW1uXCIgYW5kXG4gICAgICAgICAgLy8gXCJtYXBwaW5nLmdlbmVyYXRlZENvbHVtblwiIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgICAgdmFyIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF07XG4gICAgICAgICAgdmFyIGNvZGUgPSBuZXh0TGluZS5zdWJzdHIoMCwgbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4pO1xuICAgICAgICAgIHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdID0gbmV4dExpbmUuc3Vic3RyKG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uKTtcbiAgICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uID0gbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW47XG4gICAgICAgICAgYWRkTWFwcGluZ1dpdGhDb2RlKGxhc3RNYXBwaW5nLCBjb2RlKTtcbiAgICAgICAgICAvLyBObyBtb3JlIHJlbWFpbmluZyBjb2RlLCBjb250aW51ZVxuICAgICAgICAgIGxhc3RNYXBwaW5nID0gbWFwcGluZztcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFdlIGFkZCB0aGUgZ2VuZXJhdGVkIGNvZGUgdW50aWwgdGhlIGZpcnN0IG1hcHBpbmdcbiAgICAgIC8vIHRvIHRoZSBTb3VyY2VOb2RlIHdpdGhvdXQgYW55IG1hcHBpbmcuXG4gICAgICAvLyBFYWNoIGxpbmUgaXMgYWRkZWQgYXMgc2VwYXJhdGUgc3RyaW5nLlxuICAgICAgd2hpbGUgKGxhc3RHZW5lcmF0ZWRMaW5lIDwgbWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7XG4gICAgICAgIG5vZGUuYWRkKHNoaWZ0TmV4dExpbmUoKSk7XG4gICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7XG4gICAgICB9XG4gICAgICBpZiAobGFzdEdlbmVyYXRlZENvbHVtbiA8IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKSB7XG4gICAgICAgIHZhciBuZXh0TGluZSA9IHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdO1xuICAgICAgICBub2RlLmFkZChuZXh0TGluZS5zdWJzdHIoMCwgbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4pKTtcbiAgICAgICAgcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gPSBuZXh0TGluZS5zdWJzdHIobWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4pO1xuICAgICAgICBsYXN0R2VuZXJhdGVkQ29sdW1uID0gbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW47XG4gICAgICB9XG4gICAgICBsYXN0TWFwcGluZyA9IG1hcHBpbmc7XG4gICAgfSwgdGhpcyk7XG4gICAgLy8gV2UgaGF2ZSBwcm9jZXNzZWQgYWxsIG1hcHBpbmdzLlxuICAgIGlmIChyZW1haW5pbmdMaW5lc0luZGV4IDwgcmVtYWluaW5nTGluZXMubGVuZ3RoKSB7XG4gICAgICBpZiAobGFzdE1hcHBpbmcpIHtcbiAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSByZW1haW5pbmcgY29kZSBpbiB0aGUgY3VycmVudCBsaW5lIHdpdGggXCJsYXN0TWFwcGluZ1wiXG4gICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTtcbiAgICAgIH1cbiAgICAgIC8vIGFuZCBhZGQgdGhlIHJlbWFpbmluZyBsaW5lcyB3aXRob3V0IGFueSBtYXBwaW5nXG4gICAgICBub2RlLmFkZChyZW1haW5pbmdMaW5lcy5zcGxpY2UocmVtYWluaW5nTGluZXNJbmRleCkuam9pbihcIlwiKSk7XG4gICAgfVxuXG4gICAgLy8gQ29weSBzb3VyY2VzQ29udGVudCBpbnRvIFNvdXJjZU5vZGVcbiAgICBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlcy5mb3JFYWNoKGZ1bmN0aW9uIChzb3VyY2VGaWxlKSB7XG4gICAgICB2YXIgY29udGVudCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKHNvdXJjZUZpbGUpO1xuICAgICAgaWYgKGNvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgICBpZiAoYVJlbGF0aXZlUGF0aCAhPSBudWxsKSB7XG4gICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBzb3VyY2VGaWxlKTtcbiAgICAgICAgfVxuICAgICAgICBub2RlLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbm9kZTtcblxuICAgIGZ1bmN0aW9uIGFkZE1hcHBpbmdXaXRoQ29kZShtYXBwaW5nLCBjb2RlKSB7XG4gICAgICBpZiAobWFwcGluZyA9PT0gbnVsbCB8fCBtYXBwaW5nLnNvdXJjZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG5vZGUuYWRkKGNvZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHNvdXJjZSA9IGFSZWxhdGl2ZVBhdGhcbiAgICAgICAgICA/IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBtYXBwaW5nLnNvdXJjZSlcbiAgICAgICAgICA6IG1hcHBpbmcuc291cmNlO1xuICAgICAgICBub2RlLmFkZChuZXcgU291cmNlTm9kZShtYXBwaW5nLm9yaWdpbmFsTGluZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbi8qKlxuICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoaXMgc291cmNlIG5vZGUuXG4gKlxuICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mXG4gKiAgICAgICAgU291cmNlTm9kZSwgb3IgYW4gYXJyYXkgd2hlcmUgZWFjaCBtZW1iZXIgaXMgb25lIG9mIHRob3NlIHRoaW5ncy5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gU291cmNlTm9kZV9hZGQoYUNodW5rKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFDaHVuaykpIHtcbiAgICBhQ2h1bmsuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmspIHtcbiAgICAgIHRoaXMuYWRkKGNodW5rKTtcbiAgICB9LCB0aGlzKTtcbiAgfVxuICBlbHNlIGlmIChhQ2h1bmtbaXNTb3VyY2VOb2RlXSB8fCB0eXBlb2YgYUNodW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKGFDaHVuaykge1xuICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGFDaHVuayk7XG4gICAgfVxuICB9XG4gIGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICBcIkV4cGVjdGVkIGEgU291cmNlTm9kZSwgc3RyaW5nLCBvciBhbiBhcnJheSBvZiBTb3VyY2VOb2RlcyBhbmQgc3RyaW5ncy4gR290IFwiICsgYUNodW5rXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzb3VyY2Ugbm9kZS5cbiAqXG4gKiBAcGFyYW0gYUNodW5rIEEgc3RyaW5nIHNuaXBwZXQgb2YgZ2VuZXJhdGVkIEpTIGNvZGUsIGFub3RoZXIgaW5zdGFuY2Ugb2ZcbiAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLlxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5wcmVwZW5kID0gZnVuY3Rpb24gU291cmNlTm9kZV9wcmVwZW5kKGFDaHVuaykge1xuICBpZiAoQXJyYXkuaXNBcnJheShhQ2h1bmspKSB7XG4gICAgZm9yICh2YXIgaSA9IGFDaHVuay5sZW5ndGgtMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHRoaXMucHJlcGVuZChhQ2h1bmtbaV0pO1xuICAgIH1cbiAgfVxuICBlbHNlIGlmIChhQ2h1bmtbaXNTb3VyY2VOb2RlXSB8fCB0eXBlb2YgYUNodW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgdGhpcy5jaGlsZHJlbi51bnNoaWZ0KGFDaHVuayk7XG4gIH1cbiAgZWxzZSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgIFwiRXhwZWN0ZWQgYSBTb3VyY2VOb2RlLCBzdHJpbmcsIG9yIGFuIGFycmF5IG9mIFNvdXJjZU5vZGVzIGFuZCBzdHJpbmdzLiBHb3QgXCIgKyBhQ2h1bmtcbiAgICApO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBXYWxrIG92ZXIgdGhlIHRyZWUgb2YgSlMgc25pcHBldHMgaW4gdGhpcyBub2RlIGFuZCBpdHMgY2hpbGRyZW4uIFRoZVxuICogd2Fsa2luZyBmdW5jdGlvbiBpcyBjYWxsZWQgb25jZSBmb3IgZWFjaCBzbmlwcGV0IG9mIEpTIGFuZCBpcyBwYXNzZWQgdGhhdFxuICogc25pcHBldCBhbmQgdGhlIGl0cyBvcmlnaW5hbCBhc3NvY2lhdGVkIHNvdXJjZSdzIGxpbmUvY29sdW1uIGxvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSBhRm4gVGhlIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUud2FsayA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfd2FsayhhRm4pIHtcbiAgdmFyIGNodW5rO1xuICBmb3IgKHZhciBpID0gMCwgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNodW5rID0gdGhpcy5jaGlsZHJlbltpXTtcbiAgICBpZiAoY2h1bmtbaXNTb3VyY2VOb2RlXSkge1xuICAgICAgY2h1bmsud2FsayhhRm4pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChjaHVuayAhPT0gJycpIHtcbiAgICAgICAgYUZuKGNodW5rLCB7IHNvdXJjZTogdGhpcy5zb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsXG4gICAgICAgICAgICAgICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBMaWtlIGBTdHJpbmcucHJvdG90eXBlLmpvaW5gIGV4Y2VwdCBmb3IgU291cmNlTm9kZXMuIEluc2VydHMgYGFTdHJgIGJldHdlZW5cbiAqIGVhY2ggb2YgYHRoaXMuY2hpbGRyZW5gLlxuICpcbiAqIEBwYXJhbSBhU2VwIFRoZSBzZXBhcmF0b3IuXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLmpvaW4gPSBmdW5jdGlvbiBTb3VyY2VOb2RlX2pvaW4oYVNlcCkge1xuICB2YXIgbmV3Q2hpbGRyZW47XG4gIHZhciBpO1xuICB2YXIgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7XG4gIGlmIChsZW4gPiAwKSB7XG4gICAgbmV3Q2hpbGRyZW4gPSBbXTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuLTE7IGkrKykge1xuICAgICAgbmV3Q2hpbGRyZW4ucHVzaCh0aGlzLmNoaWxkcmVuW2ldKTtcbiAgICAgIG5ld0NoaWxkcmVuLnB1c2goYVNlcCk7XG4gICAgfVxuICAgIG5ld0NoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltpXSk7XG4gICAgdGhpcy5jaGlsZHJlbiA9IG5ld0NoaWxkcmVuO1xuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDYWxsIFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSBvbiB0aGUgdmVyeSByaWdodC1tb3N0IHNvdXJjZSBzbmlwcGV0LiBVc2VmdWxcbiAqIGZvciB0cmltbWluZyB3aGl0ZXNwYWNlIGZyb20gdGhlIGVuZCBvZiBhIHNvdXJjZSBub2RlLCBldGMuXG4gKlxuICogQHBhcmFtIGFQYXR0ZXJuIFRoZSBwYXR0ZXJuIHRvIHJlcGxhY2UuXG4gKiBAcGFyYW0gYVJlcGxhY2VtZW50IFRoZSB0aGluZyB0byByZXBsYWNlIHRoZSBwYXR0ZXJuIHdpdGguXG4gKi9cblNvdXJjZU5vZGUucHJvdG90eXBlLnJlcGxhY2VSaWdodCA9IGZ1bmN0aW9uIFNvdXJjZU5vZGVfcmVwbGFjZVJpZ2h0KGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpIHtcbiAgdmFyIGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTtcbiAgaWYgKGxhc3RDaGlsZFtpc1NvdXJjZU5vZGVdKSB7XG4gICAgbGFzdENoaWxkLnJlcGxhY2VSaWdodChhUGF0dGVybiwgYVJlcGxhY2VtZW50KTtcbiAgfVxuICBlbHNlIGlmICh0eXBlb2YgbGFzdENoaWxkID09PSAnc3RyaW5nJykge1xuICAgIHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXSA9IGxhc3RDaGlsZC5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpO1xuICB9XG4gIGVsc2Uge1xuICAgIHRoaXMuY2hpbGRyZW4ucHVzaCgnJy5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IHRoZSBzb3VyY2UgY29udGVudCBmb3IgYSBzb3VyY2UgZmlsZS4gVGhpcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBTb3VyY2VNYXBHZW5lcmF0b3JcbiAqIGluIHRoZSBzb3VyY2VzQ29udGVudCBmaWVsZC5cbiAqXG4gKiBAcGFyYW0gYVNvdXJjZUZpbGUgVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZVxuICogQHBhcmFtIGFTb3VyY2VDb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgZmlsZVxuICovXG5Tb3VyY2VOb2RlLnByb3RvdHlwZS5zZXRTb3VyY2VDb250ZW50ID1cbiAgZnVuY3Rpb24gU291cmNlTm9kZV9zZXRTb3VyY2VDb250ZW50KGFTb3VyY2VGaWxlLCBhU291cmNlQ29udGVudCkge1xuICAgIHRoaXMuc291cmNlQ29udGVudHNbdXRpbC50b1NldFN0cmluZyhhU291cmNlRmlsZSldID0gYVNvdXJjZUNvbnRlbnQ7XG4gIH07XG5cbi8qKlxuICogV2FsayBvdmVyIHRoZSB0cmVlIG9mIFNvdXJjZU5vZGVzLiBUaGUgd2Fsa2luZyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGVhY2hcbiAqIHNvdXJjZSBmaWxlIGNvbnRlbnQgYW5kIGlzIHBhc3NlZCB0aGUgZmlsZW5hbWUgYW5kIHNvdXJjZSBjb250ZW50LlxuICpcbiAqIEBwYXJhbSBhRm4gVGhlIHRyYXZlcnNhbCBmdW5jdGlvbi5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUud2Fsa1NvdXJjZUNvbnRlbnRzID1cbiAgZnVuY3Rpb24gU291cmNlTm9kZV93YWxrU291cmNlQ29udGVudHMoYUZuKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNoaWxkcmVuW2ldW2lzU291cmNlTm9kZV0pIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbltpXS53YWxrU291cmNlQ29udGVudHMoYUZuKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgc291cmNlcyA9IE9iamVjdC5rZXlzKHRoaXMuc291cmNlQ29udGVudHMpO1xuICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBzb3VyY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBhRm4odXRpbC5mcm9tU2V0U3RyaW5nKHNvdXJjZXNbaV0pLCB0aGlzLnNvdXJjZUNvbnRlbnRzW3NvdXJjZXNbaV1dKTtcbiAgICB9XG4gIH07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzb3VyY2Ugbm9kZS4gV2Fsa3Mgb3ZlciB0aGUgdHJlZVxuICogYW5kIGNvbmNhdGVuYXRlcyBhbGwgdGhlIHZhcmlvdXMgc25pcHBldHMgdG9nZXRoZXIgdG8gb25lIHN0cmluZy5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiBTb3VyY2VOb2RlX3RvU3RyaW5nKCkge1xuICB2YXIgc3RyID0gXCJcIjtcbiAgdGhpcy53YWxrKGZ1bmN0aW9uIChjaHVuaykge1xuICAgIHN0ciArPSBjaHVuaztcbiAgfSk7XG4gIHJldHVybiBzdHI7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNvdXJjZSBub2RlIGFsb25nIHdpdGggYSBzb3VyY2VcbiAqIG1hcC5cbiAqL1xuU291cmNlTm9kZS5wcm90b3R5cGUudG9TdHJpbmdXaXRoU291cmNlTWFwID0gZnVuY3Rpb24gU291cmNlTm9kZV90b1N0cmluZ1dpdGhTb3VyY2VNYXAoYUFyZ3MpIHtcbiAgdmFyIGdlbmVyYXRlZCA9IHtcbiAgICBjb2RlOiBcIlwiLFxuICAgIGxpbmU6IDEsXG4gICAgY29sdW1uOiAwXG4gIH07XG4gIHZhciBtYXAgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKTtcbiAgdmFyIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTtcbiAgdmFyIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7XG4gIHZhciBsYXN0T3JpZ2luYWxMaW5lID0gbnVsbDtcbiAgdmFyIGxhc3RPcmlnaW5hbENvbHVtbiA9IG51bGw7XG4gIHZhciBsYXN0T3JpZ2luYWxOYW1lID0gbnVsbDtcbiAgdGhpcy53YWxrKGZ1bmN0aW9uIChjaHVuaywgb3JpZ2luYWwpIHtcbiAgICBnZW5lcmF0ZWQuY29kZSArPSBjaHVuaztcbiAgICBpZiAob3JpZ2luYWwuc291cmNlICE9PSBudWxsXG4gICAgICAgICYmIG9yaWdpbmFsLmxpbmUgIT09IG51bGxcbiAgICAgICAgJiYgb3JpZ2luYWwuY29sdW1uICE9PSBudWxsKSB7XG4gICAgICBpZihsYXN0T3JpZ2luYWxTb3VyY2UgIT09IG9yaWdpbmFsLnNvdXJjZVxuICAgICAgICAgfHwgbGFzdE9yaWdpbmFsTGluZSAhPT0gb3JpZ2luYWwubGluZVxuICAgICAgICAgfHwgbGFzdE9yaWdpbmFsQ29sdW1uICE9PSBvcmlnaW5hbC5jb2x1bW5cbiAgICAgICAgIHx8IGxhc3RPcmlnaW5hbE5hbWUgIT09IG9yaWdpbmFsLm5hbWUpIHtcbiAgICAgICAgbWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgIHNvdXJjZTogb3JpZ2luYWwuc291cmNlLFxuICAgICAgICAgIG9yaWdpbmFsOiB7XG4gICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLFxuICAgICAgICAgICAgY29sdW1uOiBvcmlnaW5hbC5jb2x1bW5cbiAgICAgICAgICB9LFxuICAgICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgICAgbGluZTogZ2VuZXJhdGVkLmxpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGdlbmVyYXRlZC5jb2x1bW5cbiAgICAgICAgICB9LFxuICAgICAgICAgIG5hbWU6IG9yaWdpbmFsLm5hbWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBsYXN0T3JpZ2luYWxTb3VyY2UgPSBvcmlnaW5hbC5zb3VyY2U7XG4gICAgICBsYXN0T3JpZ2luYWxMaW5lID0gb3JpZ2luYWwubGluZTtcbiAgICAgIGxhc3RPcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjtcbiAgICAgIGxhc3RPcmlnaW5hbE5hbWUgPSBvcmlnaW5hbC5uYW1lO1xuICAgICAgc291cmNlTWFwcGluZ0FjdGl2ZSA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7XG4gICAgICBtYXAuYWRkTWFwcGluZyh7XG4gICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgIGxpbmU6IGdlbmVyYXRlZC5saW5lLFxuICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtblxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7XG4gICAgICBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIGZvciAodmFyIGlkeCA9IDAsIGxlbmd0aCA9IGNodW5rLmxlbmd0aDsgaWR4IDwgbGVuZ3RoOyBpZHgrKykge1xuICAgICAgaWYgKGNodW5rLmNoYXJDb2RlQXQoaWR4KSA9PT0gTkVXTElORV9DT0RFKSB7XG4gICAgICAgIGdlbmVyYXRlZC5saW5lKys7XG4gICAgICAgIGdlbmVyYXRlZC5jb2x1bW4gPSAwO1xuICAgICAgICAvLyBNYXBwaW5ncyBlbmQgYXQgZW9sXG4gICAgICAgIGlmIChpZHggKyAxID09PSBsZW5ndGgpIHtcbiAgICAgICAgICBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsO1xuICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7XG4gICAgICAgICAgbWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgICAgc291cmNlOiBvcmlnaW5hbC5zb3VyY2UsXG4gICAgICAgICAgICBvcmlnaW5hbDoge1xuICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLFxuICAgICAgICAgICAgICBjb2x1bW46IG9yaWdpbmFsLmNvbHVtblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdlbmVyYXRlZDoge1xuICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSxcbiAgICAgICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWQuY29sdW1uXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmFtZTogb3JpZ2luYWwubmFtZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnZW5lcmF0ZWQuY29sdW1uKys7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgdGhpcy53YWxrU291cmNlQ29udGVudHMoZnVuY3Rpb24gKHNvdXJjZUZpbGUsIHNvdXJjZUNvbnRlbnQpIHtcbiAgICBtYXAuc2V0U291cmNlQ29udGVudChzb3VyY2VGaWxlLCBzb3VyY2VDb250ZW50KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHsgY29kZTogZ2VuZXJhdGVkLmNvZGUsIG1hcDogbWFwIH07XG59O1xuXG5leHBvcnRzLlNvdXJjZU5vZGUgPSBTb3VyY2VOb2RlO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9saWIvc291cmNlLW5vZGUuanNcbi8vIG1vZHVsZSBpZCA9IDEwXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/source-map/dist/source-map.js b/tools/node_modules/eslint/node_modules/source-map/dist/source-map.js deleted file mode 100644 index 4e630e29434ca5..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/dist/source-map.js +++ /dev/null @@ -1,3090 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["sourceMap"] = factory(); - else - root["sourceMap"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - - /* - * Copyright 2009-2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE.txt or: - * http://opensource.org/licenses/BSD-3-Clause - */ - exports.SourceMapGenerator = __webpack_require__(1).SourceMapGenerator; - exports.SourceMapConsumer = __webpack_require__(7).SourceMapConsumer; - exports.SourceNode = __webpack_require__(10).SourceNode; - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var base64VLQ = __webpack_require__(2); - var util = __webpack_require__(4); - var ArraySet = __webpack_require__(5).ArraySet; - var MappingList = __webpack_require__(6).MappingList; - - /** - * An instance of the SourceMapGenerator represents a source map which is - * being built incrementally. You may pass an object with the following - * properties: - * - * - file: The filename of the generated source. - * - sourceRoot: A root for all relative URLs in this source map. - */ - function SourceMapGenerator(aArgs) { - if (!aArgs) { - aArgs = {}; - } - this._file = util.getArg(aArgs, 'file', null); - this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); - this._skipValidation = util.getArg(aArgs, 'skipValidation', false); - this._sources = new ArraySet(); - this._names = new ArraySet(); - this._mappings = new MappingList(); - this._sourcesContents = null; - } - - SourceMapGenerator.prototype._version = 3; - - /** - * Creates a new SourceMapGenerator based on a SourceMapConsumer - * - * @param aSourceMapConsumer The SourceMap. - */ - SourceMapGenerator.fromSourceMap = - function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { - var sourceRoot = aSourceMapConsumer.sourceRoot; - var generator = new SourceMapGenerator({ - file: aSourceMapConsumer.file, - sourceRoot: sourceRoot - }); - aSourceMapConsumer.eachMapping(function (mapping) { - var newMapping = { - generated: { - line: mapping.generatedLine, - column: mapping.generatedColumn - } - }; - - if (mapping.source != null) { - newMapping.source = mapping.source; - if (sourceRoot != null) { - newMapping.source = util.relative(sourceRoot, newMapping.source); - } - - newMapping.original = { - line: mapping.originalLine, - column: mapping.originalColumn - }; - - if (mapping.name != null) { - newMapping.name = mapping.name; - } - } - - generator.addMapping(newMapping); - }); - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - generator.setSourceContent(sourceFile, content); - } - }); - return generator; - }; - - /** - * Add a single mapping from original source line and column to the generated - * source's line and column for this source map being created. The mapping - * object should have the following properties: - * - * - generated: An object with the generated line and column positions. - * - original: An object with the original line and column positions. - * - source: The original source file (relative to the sourceRoot). - * - name: An optional original token name for this mapping. - */ - SourceMapGenerator.prototype.addMapping = - function SourceMapGenerator_addMapping(aArgs) { - var generated = util.getArg(aArgs, 'generated'); - var original = util.getArg(aArgs, 'original', null); - var source = util.getArg(aArgs, 'source', null); - var name = util.getArg(aArgs, 'name', null); - - if (!this._skipValidation) { - this._validateMapping(generated, original, source, name); - } - - if (source != null) { - source = String(source); - if (!this._sources.has(source)) { - this._sources.add(source); - } - } - - if (name != null) { - name = String(name); - if (!this._names.has(name)) { - this._names.add(name); - } - } - - this._mappings.add({ - generatedLine: generated.line, - generatedColumn: generated.column, - originalLine: original != null && original.line, - originalColumn: original != null && original.column, - source: source, - name: name - }); - }; - - /** - * Set the source content for a source file. - */ - SourceMapGenerator.prototype.setSourceContent = - function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { - var source = aSourceFile; - if (this._sourceRoot != null) { - source = util.relative(this._sourceRoot, source); - } - - if (aSourceContent != null) { - // Add the source content to the _sourcesContents map. - // Create a new _sourcesContents map if the property is null. - if (!this._sourcesContents) { - this._sourcesContents = Object.create(null); - } - this._sourcesContents[util.toSetString(source)] = aSourceContent; - } else if (this._sourcesContents) { - // Remove the source file from the _sourcesContents map. - // If the _sourcesContents map is empty, set the property to null. - delete this._sourcesContents[util.toSetString(source)]; - if (Object.keys(this._sourcesContents).length === 0) { - this._sourcesContents = null; - } - } - }; - - /** - * Applies the mappings of a sub-source-map for a specific source file to the - * source map being generated. Each mapping to the supplied source file is - * rewritten using the supplied source map. Note: The resolution for the - * resulting mappings is the minimium of this map and the supplied map. - * - * @param aSourceMapConsumer The source map to be applied. - * @param aSourceFile Optional. The filename of the source file. - * If omitted, SourceMapConsumer's file property will be used. - * @param aSourceMapPath Optional. The dirname of the path to the source map - * to be applied. If relative, it is relative to the SourceMapConsumer. - * This parameter is needed when the two source maps aren't in the same - * directory, and the source map to be applied contains relative source - * paths. If so, those relative source paths need to be rewritten - * relative to the SourceMapGenerator. - */ - SourceMapGenerator.prototype.applySourceMap = - function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { - var sourceFile = aSourceFile; - // If aSourceFile is omitted, we will use the file property of the SourceMap - if (aSourceFile == null) { - if (aSourceMapConsumer.file == null) { - throw new Error( - 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + - 'or the source map\'s "file" property. Both were omitted.' - ); - } - sourceFile = aSourceMapConsumer.file; - } - var sourceRoot = this._sourceRoot; - // Make "sourceFile" relative if an absolute Url is passed. - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - // Applying the SourceMap can add and remove items from the sources and - // the names array. - var newSources = new ArraySet(); - var newNames = new ArraySet(); - - // Find mappings for the "sourceFile" - this._mappings.unsortedForEach(function (mapping) { - if (mapping.source === sourceFile && mapping.originalLine != null) { - // Check if it can be mapped by the source map, then update the mapping. - var original = aSourceMapConsumer.originalPositionFor({ - line: mapping.originalLine, - column: mapping.originalColumn - }); - if (original.source != null) { - // Copy mapping - mapping.source = original.source; - if (aSourceMapPath != null) { - mapping.source = util.join(aSourceMapPath, mapping.source) - } - if (sourceRoot != null) { - mapping.source = util.relative(sourceRoot, mapping.source); - } - mapping.originalLine = original.line; - mapping.originalColumn = original.column; - if (original.name != null) { - mapping.name = original.name; - } - } - } - - var source = mapping.source; - if (source != null && !newSources.has(source)) { - newSources.add(source); - } - - var name = mapping.name; - if (name != null && !newNames.has(name)) { - newNames.add(name); - } - - }, this); - this._sources = newSources; - this._names = newNames; - - // Copy sourcesContents of applied map. - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aSourceMapPath != null) { - sourceFile = util.join(aSourceMapPath, sourceFile); - } - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - this.setSourceContent(sourceFile, content); - } - }, this); - }; - - /** - * A mapping can have one of the three levels of data: - * - * 1. Just the generated position. - * 2. The Generated position, original position, and original source. - * 3. Generated and original position, original source, as well as a name - * token. - * - * To maintain consistency, we validate that any new mapping being added falls - * in to one of these categories. - */ - SourceMapGenerator.prototype._validateMapping = - function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, - aName) { - // When aOriginal is truthy but has empty values for .line and .column, - // it is most likely a programmer error. In this case we throw a very - // specific error message to try to guide them the right way. - // For example: https://github.com/Polymer/polymer-bundler/pull/519 - if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { - throw new Error( - 'original.line and original.column are not numbers -- you probably meant to omit ' + - 'the original mapping entirely and only map the generated position. If so, pass ' + - 'null for the original mapping instead of an object with empty or null values.' - ); - } - - if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aGenerated.line > 0 && aGenerated.column >= 0 - && !aOriginal && !aSource && !aName) { - // Case 1. - return; - } - else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aOriginal && 'line' in aOriginal && 'column' in aOriginal - && aGenerated.line > 0 && aGenerated.column >= 0 - && aOriginal.line > 0 && aOriginal.column >= 0 - && aSource) { - // Cases 2 and 3. - return; - } - else { - throw new Error('Invalid mapping: ' + JSON.stringify({ - generated: aGenerated, - source: aSource, - original: aOriginal, - name: aName - })); - } - }; - - /** - * Serialize the accumulated mappings in to the stream of base 64 VLQs - * specified by the source map format. - */ - SourceMapGenerator.prototype._serializeMappings = - function SourceMapGenerator_serializeMappings() { - var previousGeneratedColumn = 0; - var previousGeneratedLine = 1; - var previousOriginalColumn = 0; - var previousOriginalLine = 0; - var previousName = 0; - var previousSource = 0; - var result = ''; - var next; - var mapping; - var nameIdx; - var sourceIdx; - - var mappings = this._mappings.toArray(); - for (var i = 0, len = mappings.length; i < len; i++) { - mapping = mappings[i]; - next = '' - - if (mapping.generatedLine !== previousGeneratedLine) { - previousGeneratedColumn = 0; - while (mapping.generatedLine !== previousGeneratedLine) { - next += ';'; - previousGeneratedLine++; - } - } - else { - if (i > 0) { - if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { - continue; - } - next += ','; - } - } - - next += base64VLQ.encode(mapping.generatedColumn - - previousGeneratedColumn); - previousGeneratedColumn = mapping.generatedColumn; - - if (mapping.source != null) { - sourceIdx = this._sources.indexOf(mapping.source); - next += base64VLQ.encode(sourceIdx - previousSource); - previousSource = sourceIdx; - - // lines are stored 0-based in SourceMap spec version 3 - next += base64VLQ.encode(mapping.originalLine - 1 - - previousOriginalLine); - previousOriginalLine = mapping.originalLine - 1; - - next += base64VLQ.encode(mapping.originalColumn - - previousOriginalColumn); - previousOriginalColumn = mapping.originalColumn; - - if (mapping.name != null) { - nameIdx = this._names.indexOf(mapping.name); - next += base64VLQ.encode(nameIdx - previousName); - previousName = nameIdx; - } - } - - result += next; - } - - return result; - }; - - SourceMapGenerator.prototype._generateSourcesContent = - function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { - return aSources.map(function (source) { - if (!this._sourcesContents) { - return null; - } - if (aSourceRoot != null) { - source = util.relative(aSourceRoot, source); - } - var key = util.toSetString(source); - return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) - ? this._sourcesContents[key] - : null; - }, this); - }; - - /** - * Externalize the source map. - */ - SourceMapGenerator.prototype.toJSON = - function SourceMapGenerator_toJSON() { - var map = { - version: this._version, - sources: this._sources.toArray(), - names: this._names.toArray(), - mappings: this._serializeMappings() - }; - if (this._file != null) { - map.file = this._file; - } - if (this._sourceRoot != null) { - map.sourceRoot = this._sourceRoot; - } - if (this._sourcesContents) { - map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); - } - - return map; - }; - - /** - * Render the source map being generated to a string. - */ - SourceMapGenerator.prototype.toString = - function SourceMapGenerator_toString() { - return JSON.stringify(this.toJSON()); - }; - - exports.SourceMapGenerator = SourceMapGenerator; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - * - * Based on the Base 64 VLQ implementation in Closure Compiler: - * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java - * - * Copyright 2011 The Closure Compiler Authors. All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - var base64 = __webpack_require__(3); - - // A single base 64 digit can contain 6 bits of data. For the base 64 variable - // length quantities we use in the source map spec, the first bit is the sign, - // the next four bits are the actual value, and the 6th bit is the - // continuation bit. The continuation bit tells us whether there are more - // digits in this value following this digit. - // - // Continuation - // | Sign - // | | - // V V - // 101011 - - var VLQ_BASE_SHIFT = 5; - - // binary: 100000 - var VLQ_BASE = 1 << VLQ_BASE_SHIFT; - - // binary: 011111 - var VLQ_BASE_MASK = VLQ_BASE - 1; - - // binary: 100000 - var VLQ_CONTINUATION_BIT = VLQ_BASE; - - /** - * Converts from a two-complement value to a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) - * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) - */ - function toVLQSigned(aValue) { - return aValue < 0 - ? ((-aValue) << 1) + 1 - : (aValue << 1) + 0; - } - - /** - * Converts to a two-complement value from a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 - * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 - */ - function fromVLQSigned(aValue) { - var isNegative = (aValue & 1) === 1; - var shifted = aValue >> 1; - return isNegative - ? -shifted - : shifted; - } - - /** - * Returns the base 64 VLQ encoded value. - */ - exports.encode = function base64VLQ_encode(aValue) { - var encoded = ""; - var digit; - - var vlq = toVLQSigned(aValue); - - do { - digit = vlq & VLQ_BASE_MASK; - vlq >>>= VLQ_BASE_SHIFT; - if (vlq > 0) { - // There are still more digits in this value, so we must make sure the - // continuation bit is marked. - digit |= VLQ_CONTINUATION_BIT; - } - encoded += base64.encode(digit); - } while (vlq > 0); - - return encoded; - }; - - /** - * Decodes the next base 64 VLQ value from the given string and returns the - * value and the rest of the string via the out parameter. - */ - exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { - var strLen = aStr.length; - var result = 0; - var shift = 0; - var continuation, digit; - - do { - if (aIndex >= strLen) { - throw new Error("Expected more digits in base 64 VLQ value."); - } - - digit = base64.decode(aStr.charCodeAt(aIndex++)); - if (digit === -1) { - throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); - } - - continuation = !!(digit & VLQ_CONTINUATION_BIT); - digit &= VLQ_BASE_MASK; - result = result + (digit << shift); - shift += VLQ_BASE_SHIFT; - } while (continuation); - - aOutParam.value = fromVLQSigned(result); - aOutParam.rest = aIndex; - }; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); - - /** - * Encode an integer in the range of 0 to 63 to a single base 64 digit. - */ - exports.encode = function (number) { - if (0 <= number && number < intToCharMap.length) { - return intToCharMap[number]; - } - throw new TypeError("Must be between 0 and 63: " + number); - }; - - /** - * Decode a single base 64 character code digit to an integer. Returns -1 on - * failure. - */ - exports.decode = function (charCode) { - var bigA = 65; // 'A' - var bigZ = 90; // 'Z' - - var littleA = 97; // 'a' - var littleZ = 122; // 'z' - - var zero = 48; // '0' - var nine = 57; // '9' - - var plus = 43; // '+' - var slash = 47; // '/' - - var littleOffset = 26; - var numberOffset = 52; - - // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ - if (bigA <= charCode && charCode <= bigZ) { - return (charCode - bigA); - } - - // 26 - 51: abcdefghijklmnopqrstuvwxyz - if (littleA <= charCode && charCode <= littleZ) { - return (charCode - littleA + littleOffset); - } - - // 52 - 61: 0123456789 - if (zero <= charCode && charCode <= nine) { - return (charCode - zero + numberOffset); - } - - // 62: + - if (charCode == plus) { - return 62; - } - - // 63: / - if (charCode == slash) { - return 63; - } - - // Invalid base64 digit. - return -1; - }; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - /** - * This is a helper function for getting values from parameter/options - * objects. - * - * @param args The object we are extracting values from - * @param name The name of the property we are getting. - * @param defaultValue An optional value to return if the property is missing - * from the object. If this is not specified and the property is missing, an - * error will be thrown. - */ - function getArg(aArgs, aName, aDefaultValue) { - if (aName in aArgs) { - return aArgs[aName]; - } else if (arguments.length === 3) { - return aDefaultValue; - } else { - throw new Error('"' + aName + '" is a required argument.'); - } - } - exports.getArg = getArg; - - var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/; - var dataUrlRegexp = /^data:.+\,.+$/; - - function urlParse(aUrl) { - var match = aUrl.match(urlRegexp); - if (!match) { - return null; - } - return { - scheme: match[1], - auth: match[2], - host: match[3], - port: match[4], - path: match[5] - }; - } - exports.urlParse = urlParse; - - function urlGenerate(aParsedUrl) { - var url = ''; - if (aParsedUrl.scheme) { - url += aParsedUrl.scheme + ':'; - } - url += '//'; - if (aParsedUrl.auth) { - url += aParsedUrl.auth + '@'; - } - if (aParsedUrl.host) { - url += aParsedUrl.host; - } - if (aParsedUrl.port) { - url += ":" + aParsedUrl.port - } - if (aParsedUrl.path) { - url += aParsedUrl.path; - } - return url; - } - exports.urlGenerate = urlGenerate; - - /** - * Normalizes a path, or the path portion of a URL: - * - * - Replaces consecutive slashes with one slash. - * - Removes unnecessary '.' parts. - * - Removes unnecessary '/..' parts. - * - * Based on code in the Node.js 'path' core module. - * - * @param aPath The path or url to normalize. - */ - function normalize(aPath) { - var path = aPath; - var url = urlParse(aPath); - if (url) { - if (!url.path) { - return aPath; - } - path = url.path; - } - var isAbsolute = exports.isAbsolute(path); - - var parts = path.split(/\/+/); - for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { - part = parts[i]; - if (part === '.') { - parts.splice(i, 1); - } else if (part === '..') { - up++; - } else if (up > 0) { - if (part === '') { - // The first part is blank if the path is absolute. Trying to go - // above the root is a no-op. Therefore we can remove all '..' parts - // directly after the root. - parts.splice(i + 1, up); - up = 0; - } else { - parts.splice(i, 2); - up--; - } - } - } - path = parts.join('/'); - - if (path === '') { - path = isAbsolute ? '/' : '.'; - } - - if (url) { - url.path = path; - return urlGenerate(url); - } - return path; - } - exports.normalize = normalize; - - /** - * Joins two paths/URLs. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be joined with the root. - * - * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a - * scheme-relative URL: Then the scheme of aRoot, if any, is prepended - * first. - * - Otherwise aPath is a path. If aRoot is a URL, then its path portion - * is updated with the result and aRoot is returned. Otherwise the result - * is returned. - * - If aPath is absolute, the result is aPath. - * - Otherwise the two paths are joined with a slash. - * - Joining for example 'http://' and 'www.example.com' is also supported. - */ - function join(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; - } - if (aPath === "") { - aPath = "."; - } - var aPathUrl = urlParse(aPath); - var aRootUrl = urlParse(aRoot); - if (aRootUrl) { - aRoot = aRootUrl.path || '/'; - } - - // `join(foo, '//www.example.org')` - if (aPathUrl && !aPathUrl.scheme) { - if (aRootUrl) { - aPathUrl.scheme = aRootUrl.scheme; - } - return urlGenerate(aPathUrl); - } - - if (aPathUrl || aPath.match(dataUrlRegexp)) { - return aPath; - } - - // `join('http://', 'www.example.com')` - if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { - aRootUrl.host = aPath; - return urlGenerate(aRootUrl); - } - - var joined = aPath.charAt(0) === '/' - ? aPath - : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); - - if (aRootUrl) { - aRootUrl.path = joined; - return urlGenerate(aRootUrl); - } - return joined; - } - exports.join = join; - - exports.isAbsolute = function (aPath) { - return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp); - }; - - /** - * Make a path relative to a URL or another path. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be made relative to aRoot. - */ - function relative(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; - } - - aRoot = aRoot.replace(/\/$/, ''); - - // It is possible for the path to be above the root. In this case, simply - // checking whether the root is a prefix of the path won't work. Instead, we - // need to remove components from the root one by one, until either we find - // a prefix that fits, or we run out of components to remove. - var level = 0; - while (aPath.indexOf(aRoot + '/') !== 0) { - var index = aRoot.lastIndexOf("/"); - if (index < 0) { - return aPath; - } - - // If the only part of the root that is left is the scheme (i.e. http://, - // file:///, etc.), one or more slashes (/), or simply nothing at all, we - // have exhausted all components, so the path is not relative to the root. - aRoot = aRoot.slice(0, index); - if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { - return aPath; - } - - ++level; - } - - // Make sure we add a "../" for each component we removed from the root. - return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); - } - exports.relative = relative; - - var supportsNullProto = (function () { - var obj = Object.create(null); - return !('__proto__' in obj); - }()); - - function identity (s) { - return s; - } - - /** - * Because behavior goes wacky when you set `__proto__` on objects, we - * have to prefix all the strings in our set with an arbitrary character. - * - * See https://github.com/mozilla/source-map/pull/31 and - * https://github.com/mozilla/source-map/issues/30 - * - * @param String aStr - */ - function toSetString(aStr) { - if (isProtoString(aStr)) { - return '$' + aStr; - } - - return aStr; - } - exports.toSetString = supportsNullProto ? identity : toSetString; - - function fromSetString(aStr) { - if (isProtoString(aStr)) { - return aStr.slice(1); - } - - return aStr; - } - exports.fromSetString = supportsNullProto ? identity : fromSetString; - - function isProtoString(s) { - if (!s) { - return false; - } - - var length = s.length; - - if (length < 9 /* "__proto__".length */) { - return false; - } - - if (s.charCodeAt(length - 1) !== 95 /* '_' */ || - s.charCodeAt(length - 2) !== 95 /* '_' */ || - s.charCodeAt(length - 3) !== 111 /* 'o' */ || - s.charCodeAt(length - 4) !== 116 /* 't' */ || - s.charCodeAt(length - 5) !== 111 /* 'o' */ || - s.charCodeAt(length - 6) !== 114 /* 'r' */ || - s.charCodeAt(length - 7) !== 112 /* 'p' */ || - s.charCodeAt(length - 8) !== 95 /* '_' */ || - s.charCodeAt(length - 9) !== 95 /* '_' */) { - return false; - } - - for (var i = length - 10; i >= 0; i--) { - if (s.charCodeAt(i) !== 36 /* '$' */) { - return false; - } - } - - return true; - } - - /** - * Comparator between two mappings where the original positions are compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same original source/line/column, but different generated - * line and column the same. Useful when searching for a mapping with a - * stubbed out mapping. - */ - function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { - var cmp = mappingA.source - mappingB.source; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0 || onlyCompareOriginal) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - return mappingA.name - mappingB.name; - } - exports.compareByOriginalPositions = compareByOriginalPositions; - - /** - * Comparator between two mappings with deflated source and name indices where - * the generated positions are compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same generated line and column, but different - * source/name/original line and column the same. Useful when searching for a - * mapping with a stubbed out mapping. - */ - function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { - var cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0 || onlyCompareGenerated) { - return cmp; - } - - cmp = mappingA.source - mappingB.source; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0) { - return cmp; - } - - return mappingA.name - mappingB.name; - } - exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; - - function strcmp(aStr1, aStr2) { - if (aStr1 === aStr2) { - return 0; - } - - if (aStr1 > aStr2) { - return 1; - } - - return -1; - } - - /** - * Comparator between two mappings with inflated source and name strings where - * the generated positions are compared. - */ - function compareByGeneratedPositionsInflated(mappingA, mappingB) { - var cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0) { - return cmp; - } - - cmp = strcmp(mappingA.source, mappingB.source); - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0) { - return cmp; - } - - return strcmp(mappingA.name, mappingB.name); - } - exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var util = __webpack_require__(4); - var has = Object.prototype.hasOwnProperty; - var hasNativeMap = typeof Map !== "undefined"; - - /** - * A data structure which is a combination of an array and a set. Adding a new - * member is O(1), testing for membership is O(1), and finding the index of an - * element is O(1). Removing elements from the set is not supported. Only - * strings are supported for membership. - */ - function ArraySet() { - this._array = []; - this._set = hasNativeMap ? new Map() : Object.create(null); - } - - /** - * Static method for creating ArraySet instances from an existing array. - */ - ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { - var set = new ArraySet(); - for (var i = 0, len = aArray.length; i < len; i++) { - set.add(aArray[i], aAllowDuplicates); - } - return set; - }; - - /** - * Return how many unique items are in this ArraySet. If duplicates have been - * added, than those do not count towards the size. - * - * @returns Number - */ - ArraySet.prototype.size = function ArraySet_size() { - return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; - }; - - /** - * Add the given string to this set. - * - * @param String aStr - */ - ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { - var sStr = hasNativeMap ? aStr : util.toSetString(aStr); - var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); - var idx = this._array.length; - if (!isDuplicate || aAllowDuplicates) { - this._array.push(aStr); - } - if (!isDuplicate) { - if (hasNativeMap) { - this._set.set(aStr, idx); - } else { - this._set[sStr] = idx; - } - } - }; - - /** - * Is the given string a member of this set? - * - * @param String aStr - */ - ArraySet.prototype.has = function ArraySet_has(aStr) { - if (hasNativeMap) { - return this._set.has(aStr); - } else { - var sStr = util.toSetString(aStr); - return has.call(this._set, sStr); - } - }; - - /** - * What is the index of the given string in the array? - * - * @param String aStr - */ - ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { - if (hasNativeMap) { - var idx = this._set.get(aStr); - if (idx >= 0) { - return idx; - } - } else { - var sStr = util.toSetString(aStr); - if (has.call(this._set, sStr)) { - return this._set[sStr]; - } - } - - throw new Error('"' + aStr + '" is not in the set.'); - }; - - /** - * What is the element at the given index? - * - * @param Number aIdx - */ - ArraySet.prototype.at = function ArraySet_at(aIdx) { - if (aIdx >= 0 && aIdx < this._array.length) { - return this._array[aIdx]; - } - throw new Error('No element indexed by ' + aIdx); - }; - - /** - * Returns the array representation of this set (which has the proper indices - * indicated by indexOf). Note that this is a copy of the internal array used - * for storing the members so that no one can mess with internal state. - */ - ArraySet.prototype.toArray = function ArraySet_toArray() { - return this._array.slice(); - }; - - exports.ArraySet = ArraySet; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2014 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var util = __webpack_require__(4); - - /** - * Determine whether mappingB is after mappingA with respect to generated - * position. - */ - function generatedPositionAfter(mappingA, mappingB) { - // Optimized for most common case - var lineA = mappingA.generatedLine; - var lineB = mappingB.generatedLine; - var columnA = mappingA.generatedColumn; - var columnB = mappingB.generatedColumn; - return lineB > lineA || lineB == lineA && columnB >= columnA || - util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; - } - - /** - * A data structure to provide a sorted view of accumulated mappings in a - * performance conscious manner. It trades a neglibable overhead in general - * case for a large speedup in case of mappings being added in order. - */ - function MappingList() { - this._array = []; - this._sorted = true; - // Serves as infimum - this._last = {generatedLine: -1, generatedColumn: 0}; - } - - /** - * Iterate through internal items. This method takes the same arguments that - * `Array.prototype.forEach` takes. - * - * NOTE: The order of the mappings is NOT guaranteed. - */ - MappingList.prototype.unsortedForEach = - function MappingList_forEach(aCallback, aThisArg) { - this._array.forEach(aCallback, aThisArg); - }; - - /** - * Add the given source mapping. - * - * @param Object aMapping - */ - MappingList.prototype.add = function MappingList_add(aMapping) { - if (generatedPositionAfter(this._last, aMapping)) { - this._last = aMapping; - this._array.push(aMapping); - } else { - this._sorted = false; - this._array.push(aMapping); - } - }; - - /** - * Returns the flat, sorted array of mappings. The mappings are sorted by - * generated position. - * - * WARNING: This method returns internal data without copying, for - * performance. The return value must NOT be mutated, and should be treated as - * an immutable borrow. If you want to take ownership, you must make your own - * copy. - */ - MappingList.prototype.toArray = function MappingList_toArray() { - if (!this._sorted) { - this._array.sort(util.compareByGeneratedPositionsInflated); - this._sorted = true; - } - return this._array; - }; - - exports.MappingList = MappingList; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var util = __webpack_require__(4); - var binarySearch = __webpack_require__(8); - var ArraySet = __webpack_require__(5).ArraySet; - var base64VLQ = __webpack_require__(2); - var quickSort = __webpack_require__(9).quickSort; - - function SourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - return sourceMap.sections != null - ? new IndexedSourceMapConsumer(sourceMap) - : new BasicSourceMapConsumer(sourceMap); - } - - SourceMapConsumer.fromSourceMap = function(aSourceMap) { - return BasicSourceMapConsumer.fromSourceMap(aSourceMap); - } - - /** - * The version of the source mapping spec that we are consuming. - */ - SourceMapConsumer.prototype._version = 3; - - // `__generatedMappings` and `__originalMappings` are arrays that hold the - // parsed mapping coordinates from the source map's "mappings" attribute. They - // are lazily instantiated, accessed via the `_generatedMappings` and - // `_originalMappings` getters respectively, and we only parse the mappings - // and create these arrays once queried for a source location. We jump through - // these hoops because there can be many thousands of mappings, and parsing - // them is expensive, so we only want to do it if we must. - // - // Each object in the arrays is of the form: - // - // { - // generatedLine: The line number in the generated code, - // generatedColumn: The column number in the generated code, - // source: The path to the original source file that generated this - // chunk of code, - // originalLine: The line number in the original source that - // corresponds to this chunk of generated code, - // originalColumn: The column number in the original source that - // corresponds to this chunk of generated code, - // name: The name of the original symbol which generated this chunk of - // code. - // } - // - // All properties except for `generatedLine` and `generatedColumn` can be - // `null`. - // - // `_generatedMappings` is ordered by the generated positions. - // - // `_originalMappings` is ordered by the original positions. - - SourceMapConsumer.prototype.__generatedMappings = null; - Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { - get: function () { - if (!this.__generatedMappings) { - this._parseMappings(this._mappings, this.sourceRoot); - } - - return this.__generatedMappings; - } - }); - - SourceMapConsumer.prototype.__originalMappings = null; - Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { - get: function () { - if (!this.__originalMappings) { - this._parseMappings(this._mappings, this.sourceRoot); - } - - return this.__originalMappings; - } - }); - - SourceMapConsumer.prototype._charIsMappingSeparator = - function SourceMapConsumer_charIsMappingSeparator(aStr, index) { - var c = aStr.charAt(index); - return c === ";" || c === ","; - }; - - /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ - SourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - throw new Error("Subclasses must implement _parseMappings"); - }; - - SourceMapConsumer.GENERATED_ORDER = 1; - SourceMapConsumer.ORIGINAL_ORDER = 2; - - SourceMapConsumer.GREATEST_LOWER_BOUND = 1; - SourceMapConsumer.LEAST_UPPER_BOUND = 2; - - /** - * Iterate over each mapping between an original source/line/column and a - * generated line/column in this source map. - * - * @param Function aCallback - * The function that is called with each mapping. - * @param Object aContext - * Optional. If specified, this object will be the value of `this` every - * time that `aCallback` is called. - * @param aOrder - * Either `SourceMapConsumer.GENERATED_ORDER` or - * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to - * iterate over the mappings sorted by the generated file's line/column - * order or the original's source/line/column order, respectively. Defaults to - * `SourceMapConsumer.GENERATED_ORDER`. - */ - SourceMapConsumer.prototype.eachMapping = - function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { - var context = aContext || null; - var order = aOrder || SourceMapConsumer.GENERATED_ORDER; - - var mappings; - switch (order) { - case SourceMapConsumer.GENERATED_ORDER: - mappings = this._generatedMappings; - break; - case SourceMapConsumer.ORIGINAL_ORDER: - mappings = this._originalMappings; - break; - default: - throw new Error("Unknown order of iteration."); - } - - var sourceRoot = this.sourceRoot; - mappings.map(function (mapping) { - var source = mapping.source === null ? null : this._sources.at(mapping.source); - if (source != null && sourceRoot != null) { - source = util.join(sourceRoot, source); - } - return { - source: source, - generatedLine: mapping.generatedLine, - generatedColumn: mapping.generatedColumn, - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: mapping.name === null ? null : this._names.at(mapping.name) - }; - }, this).forEach(aCallback, context); - }; - - /** - * Returns all generated line and column information for the original source, - * line, and column provided. If no column is provided, returns all mappings - * corresponding to a either the line we are searching for or the next - * closest line that has any mappings. Otherwise, returns all mappings - * corresponding to the given line and either the column we are searching for - * or the next closest column that has any offsets. - * - * The only argument is an object with the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: Optional. the column number in the original source. - * - * and an array of objects is returned, each with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ - SourceMapConsumer.prototype.allGeneratedPositionsFor = - function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { - var line = util.getArg(aArgs, 'line'); - - // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping - // returns the index of the closest mapping less than the needle. By - // setting needle.originalColumn to 0, we thus find the last mapping for - // the given line, provided such a mapping exists. - var needle = { - source: util.getArg(aArgs, 'source'), - originalLine: line, - originalColumn: util.getArg(aArgs, 'column', 0) - }; - - if (this.sourceRoot != null) { - needle.source = util.relative(this.sourceRoot, needle.source); - } - if (!this._sources.has(needle.source)) { - return []; - } - needle.source = this._sources.indexOf(needle.source); - - var mappings = []; - - var index = this._findMapping(needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions, - binarySearch.LEAST_UPPER_BOUND); - if (index >= 0) { - var mapping = this._originalMappings[index]; - - if (aArgs.column === undefined) { - var originalLine = mapping.originalLine; - - // Iterate until either we run out of mappings, or we run into - // a mapping for a different line than the one we found. Since - // mappings are sorted, this is guaranteed to find all mappings for - // the line we found. - while (mapping && mapping.originalLine === originalLine) { - mappings.push({ - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }); - - mapping = this._originalMappings[++index]; - } - } else { - var originalColumn = mapping.originalColumn; - - // Iterate until either we run out of mappings, or we run into - // a mapping for a different line than the one we were searching for. - // Since mappings are sorted, this is guaranteed to find all mappings for - // the line we are searching for. - while (mapping && - mapping.originalLine === line && - mapping.originalColumn == originalColumn) { - mappings.push({ - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }); - - mapping = this._originalMappings[++index]; - } - } - } - - return mappings; - }; - - exports.SourceMapConsumer = SourceMapConsumer; - - /** - * A BasicSourceMapConsumer instance represents a parsed source map which we can - * query for information about the original file positions by giving it a file - * position in the generated source. - * - * The only parameter is the raw source map (either as a JSON string, or - * already parsed to an object). According to the spec, source maps have the - * following attributes: - * - * - version: Which version of the source map spec this map is following. - * - sources: An array of URLs to the original source files. - * - names: An array of identifiers which can be referrenced by individual mappings. - * - sourceRoot: Optional. The URL root from which all sources are relative. - * - sourcesContent: Optional. An array of contents of the original source files. - * - mappings: A string of base64 VLQs which contain the actual mappings. - * - file: Optional. The generated file this source map is associated with. - * - * Here is an example source map, taken from the source map spec[0]: - * - * { - * version : 3, - * file: "out.js", - * sourceRoot : "", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AA,AB;;ABCDE;" - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# - */ - function BasicSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - var version = util.getArg(sourceMap, 'version'); - var sources = util.getArg(sourceMap, 'sources'); - // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which - // requires the array) to play nice here. - var names = util.getArg(sourceMap, 'names', []); - var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); - var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); - var mappings = util.getArg(sourceMap, 'mappings'); - var file = util.getArg(sourceMap, 'file', null); - - // Once again, Sass deviates from the spec and supplies the version as a - // string rather than a number, so we use loose equality checking here. - if (version != this._version) { - throw new Error('Unsupported version: ' + version); - } - - sources = sources - .map(String) - // Some source maps produce relative source paths like "./foo.js" instead of - // "foo.js". Normalize these first so that future comparisons will succeed. - // See bugzil.la/1090768. - .map(util.normalize) - // Always ensure that absolute sources are internally stored relative to - // the source root, if the source root is absolute. Not doing this would - // be particularly problematic when the source root is a prefix of the - // source (valid, but why??). See github issue #199 and bugzil.la/1188982. - .map(function (source) { - return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) - ? util.relative(sourceRoot, source) - : source; - }); - - // Pass `true` below to allow duplicate names and sources. While source maps - // are intended to be compressed and deduplicated, the TypeScript compiler - // sometimes generates source maps with duplicates in them. See Github issue - // #72 and bugzil.la/889492. - this._names = ArraySet.fromArray(names.map(String), true); - this._sources = ArraySet.fromArray(sources, true); - - this.sourceRoot = sourceRoot; - this.sourcesContent = sourcesContent; - this._mappings = mappings; - this.file = file; - } - - BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); - BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; - - /** - * Create a BasicSourceMapConsumer from a SourceMapGenerator. - * - * @param SourceMapGenerator aSourceMap - * The source map that will be consumed. - * @returns BasicSourceMapConsumer - */ - BasicSourceMapConsumer.fromSourceMap = - function SourceMapConsumer_fromSourceMap(aSourceMap) { - var smc = Object.create(BasicSourceMapConsumer.prototype); - - var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); - var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); - smc.sourceRoot = aSourceMap._sourceRoot; - smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), - smc.sourceRoot); - smc.file = aSourceMap._file; - - // Because we are modifying the entries (by converting string sources and - // names to indices into the sources and names ArraySets), we have to make - // a copy of the entry or else bad things happen. Shared mutable state - // strikes again! See github issue #191. - - var generatedMappings = aSourceMap._mappings.toArray().slice(); - var destGeneratedMappings = smc.__generatedMappings = []; - var destOriginalMappings = smc.__originalMappings = []; - - for (var i = 0, length = generatedMappings.length; i < length; i++) { - var srcMapping = generatedMappings[i]; - var destMapping = new Mapping; - destMapping.generatedLine = srcMapping.generatedLine; - destMapping.generatedColumn = srcMapping.generatedColumn; - - if (srcMapping.source) { - destMapping.source = sources.indexOf(srcMapping.source); - destMapping.originalLine = srcMapping.originalLine; - destMapping.originalColumn = srcMapping.originalColumn; - - if (srcMapping.name) { - destMapping.name = names.indexOf(srcMapping.name); - } - - destOriginalMappings.push(destMapping); - } - - destGeneratedMappings.push(destMapping); - } - - quickSort(smc.__originalMappings, util.compareByOriginalPositions); - - return smc; - }; - - /** - * The version of the source mapping spec that we are consuming. - */ - BasicSourceMapConsumer.prototype._version = 3; - - /** - * The list of original sources. - */ - Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { - get: function () { - return this._sources.toArray().map(function (s) { - return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s; - }, this); - } - }); - - /** - * Provide the JIT with a nice shape / hidden class. - */ - function Mapping() { - this.generatedLine = 0; - this.generatedColumn = 0; - this.source = null; - this.originalLine = null; - this.originalColumn = null; - this.name = null; - } - - /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ - BasicSourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - var generatedLine = 1; - var previousGeneratedColumn = 0; - var previousOriginalLine = 0; - var previousOriginalColumn = 0; - var previousSource = 0; - var previousName = 0; - var length = aStr.length; - var index = 0; - var cachedSegments = {}; - var temp = {}; - var originalMappings = []; - var generatedMappings = []; - var mapping, str, segment, end, value; - - while (index < length) { - if (aStr.charAt(index) === ';') { - generatedLine++; - index++; - previousGeneratedColumn = 0; - } - else if (aStr.charAt(index) === ',') { - index++; - } - else { - mapping = new Mapping(); - mapping.generatedLine = generatedLine; - - // Because each offset is encoded relative to the previous one, - // many segments often have the same encoding. We can exploit this - // fact by caching the parsed variable length fields of each segment, - // allowing us to avoid a second parse if we encounter the same - // segment again. - for (end = index; end < length; end++) { - if (this._charIsMappingSeparator(aStr, end)) { - break; - } - } - str = aStr.slice(index, end); - - segment = cachedSegments[str]; - if (segment) { - index += str.length; - } else { - segment = []; - while (index < end) { - base64VLQ.decode(aStr, index, temp); - value = temp.value; - index = temp.rest; - segment.push(value); - } - - if (segment.length === 2) { - throw new Error('Found a source, but no line and column'); - } - - if (segment.length === 3) { - throw new Error('Found a source and line, but no column'); - } - - cachedSegments[str] = segment; - } - - // Generated column. - mapping.generatedColumn = previousGeneratedColumn + segment[0]; - previousGeneratedColumn = mapping.generatedColumn; - - if (segment.length > 1) { - // Original source. - mapping.source = previousSource + segment[1]; - previousSource += segment[1]; - - // Original line. - mapping.originalLine = previousOriginalLine + segment[2]; - previousOriginalLine = mapping.originalLine; - // Lines are stored 0-based - mapping.originalLine += 1; - - // Original column. - mapping.originalColumn = previousOriginalColumn + segment[3]; - previousOriginalColumn = mapping.originalColumn; - - if (segment.length > 4) { - // Original name. - mapping.name = previousName + segment[4]; - previousName += segment[4]; - } - } - - generatedMappings.push(mapping); - if (typeof mapping.originalLine === 'number') { - originalMappings.push(mapping); - } - } - } - - quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); - this.__generatedMappings = generatedMappings; - - quickSort(originalMappings, util.compareByOriginalPositions); - this.__originalMappings = originalMappings; - }; - - /** - * Find the mapping that best matches the hypothetical "needle" mapping that - * we are searching for in the given "haystack" of mappings. - */ - BasicSourceMapConsumer.prototype._findMapping = - function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, - aColumnName, aComparator, aBias) { - // To return the position we are searching for, we must first find the - // mapping for the given position and then return the opposite position it - // points to. Because the mappings are sorted, we can use binary search to - // find the best mapping. - - if (aNeedle[aLineName] <= 0) { - throw new TypeError('Line must be greater than or equal to 1, got ' - + aNeedle[aLineName]); - } - if (aNeedle[aColumnName] < 0) { - throw new TypeError('Column must be greater than or equal to 0, got ' - + aNeedle[aColumnName]); - } - - return binarySearch.search(aNeedle, aMappings, aComparator, aBias); - }; - - /** - * Compute the last column for each generated mapping. The last column is - * inclusive. - */ - BasicSourceMapConsumer.prototype.computeColumnSpans = - function SourceMapConsumer_computeColumnSpans() { - for (var index = 0; index < this._generatedMappings.length; ++index) { - var mapping = this._generatedMappings[index]; - - // Mappings do not contain a field for the last generated columnt. We - // can come up with an optimistic estimate, however, by assuming that - // mappings are contiguous (i.e. given two consecutive mappings, the - // first mapping ends where the second one starts). - if (index + 1 < this._generatedMappings.length) { - var nextMapping = this._generatedMappings[index + 1]; - - if (mapping.generatedLine === nextMapping.generatedLine) { - mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; - continue; - } - } - - // The last mapping for each line spans the entire line. - mapping.lastGeneratedColumn = Infinity; - } - }; - - /** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or - * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. - * - * and an object is returned with the following properties: - * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. - */ - BasicSourceMapConsumer.prototype.originalPositionFor = - function SourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - - var index = this._findMapping( - needle, - this._generatedMappings, - "generatedLine", - "generatedColumn", - util.compareByGeneratedPositionsDeflated, - util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) - ); - - if (index >= 0) { - var mapping = this._generatedMappings[index]; - - if (mapping.generatedLine === needle.generatedLine) { - var source = util.getArg(mapping, 'source', null); - if (source !== null) { - source = this._sources.at(source); - if (this.sourceRoot != null) { - source = util.join(this.sourceRoot, source); - } - } - var name = util.getArg(mapping, 'name', null); - if (name !== null) { - name = this._names.at(name); - } - return { - source: source, - line: util.getArg(mapping, 'originalLine', null), - column: util.getArg(mapping, 'originalColumn', null), - name: name - }; - } - } - - return { - source: null, - line: null, - column: null, - name: null - }; - }; - - /** - * Return true if we have the source content for every source in the source - * map, false otherwise. - */ - BasicSourceMapConsumer.prototype.hasContentsOfAllSources = - function BasicSourceMapConsumer_hasContentsOfAllSources() { - if (!this.sourcesContent) { - return false; - } - return this.sourcesContent.length >= this._sources.size() && - !this.sourcesContent.some(function (sc) { return sc == null; }); - }; - - /** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * available. - */ - BasicSourceMapConsumer.prototype.sourceContentFor = - function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - if (!this.sourcesContent) { - return null; - } - - if (this.sourceRoot != null) { - aSource = util.relative(this.sourceRoot, aSource); - } - - if (this._sources.has(aSource)) { - return this.sourcesContent[this._sources.indexOf(aSource)]; - } - - var url; - if (this.sourceRoot != null - && (url = util.urlParse(this.sourceRoot))) { - // XXX: file:// URIs and absolute paths lead to unexpected behavior for - // many users. We can help them out when they expect file:// URIs to - // behave like it would if they were running a local HTTP server. See - // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. - var fileUriAbsPath = aSource.replace(/^file:\/\//, ""); - if (url.scheme == "file" - && this._sources.has(fileUriAbsPath)) { - return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] - } - - if ((!url.path || url.path == "/") - && this._sources.has("/" + aSource)) { - return this.sourcesContent[this._sources.indexOf("/" + aSource)]; - } - } - - // This function is used recursively from - // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we - // don't want to throw if we can't find the source - we just want to - // return null, so we provide a flag to exit gracefully. - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; - - /** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or - * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ - BasicSourceMapConsumer.prototype.generatedPositionFor = - function SourceMapConsumer_generatedPositionFor(aArgs) { - var source = util.getArg(aArgs, 'source'); - if (this.sourceRoot != null) { - source = util.relative(this.sourceRoot, source); - } - if (!this._sources.has(source)) { - return { - line: null, - column: null, - lastColumn: null - }; - } - source = this._sources.indexOf(source); - - var needle = { - source: source, - originalLine: util.getArg(aArgs, 'line'), - originalColumn: util.getArg(aArgs, 'column') - }; - - var index = this._findMapping( - needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions, - util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) - ); - - if (index >= 0) { - var mapping = this._originalMappings[index]; - - if (mapping.source === needle.source) { - return { - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }; - } - } - - return { - line: null, - column: null, - lastColumn: null - }; - }; - - exports.BasicSourceMapConsumer = BasicSourceMapConsumer; - - /** - * An IndexedSourceMapConsumer instance represents a parsed source map which - * we can query for information. It differs from BasicSourceMapConsumer in - * that it takes "indexed" source maps (i.e. ones with a "sections" field) as - * input. - * - * The only parameter is a raw source map (either as a JSON string, or already - * parsed to an object). According to the spec for indexed source maps, they - * have the following attributes: - * - * - version: Which version of the source map spec this map is following. - * - file: Optional. The generated file this source map is associated with. - * - sections: A list of section definitions. - * - * Each value under the "sections" field has two fields: - * - offset: The offset into the original specified at which this section - * begins to apply, defined as an object with a "line" and "column" - * field. - * - map: A source map definition. This source map could also be indexed, - * but doesn't have to be. - * - * Instead of the "map" field, it's also possible to have a "url" field - * specifying a URL to retrieve a source map from, but that's currently - * unsupported. - * - * Here's an example source map, taken from the source map spec[0], but - * modified to omit a section which uses the "url" field. - * - * { - * version : 3, - * file: "app.js", - * sections: [{ - * offset: {line:100, column:10}, - * map: { - * version : 3, - * file: "section.js", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AAAA,E;;ABCDE;" - * } - * }], - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt - */ - function IndexedSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - var version = util.getArg(sourceMap, 'version'); - var sections = util.getArg(sourceMap, 'sections'); - - if (version != this._version) { - throw new Error('Unsupported version: ' + version); - } - - this._sources = new ArraySet(); - this._names = new ArraySet(); - - var lastOffset = { - line: -1, - column: 0 - }; - this._sections = sections.map(function (s) { - if (s.url) { - // The url field will require support for asynchronicity. - // See https://github.com/mozilla/source-map/issues/16 - throw new Error('Support for url field in sections not implemented.'); - } - var offset = util.getArg(s, 'offset'); - var offsetLine = util.getArg(offset, 'line'); - var offsetColumn = util.getArg(offset, 'column'); - - if (offsetLine < lastOffset.line || - (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { - throw new Error('Section offsets must be ordered and non-overlapping.'); - } - lastOffset = offset; - - return { - generatedOffset: { - // The offset fields are 0-based, but we use 1-based indices when - // encoding/decoding from VLQ. - generatedLine: offsetLine + 1, - generatedColumn: offsetColumn + 1 - }, - consumer: new SourceMapConsumer(util.getArg(s, 'map')) - } - }); - } - - IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); - IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; - - /** - * The version of the source mapping spec that we are consuming. - */ - IndexedSourceMapConsumer.prototype._version = 3; - - /** - * The list of original sources. - */ - Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { - get: function () { - var sources = []; - for (var i = 0; i < this._sections.length; i++) { - for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { - sources.push(this._sections[i].consumer.sources[j]); - } - } - return sources; - } - }); - - /** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - * and an object is returned with the following properties: - * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. - */ - IndexedSourceMapConsumer.prototype.originalPositionFor = - function IndexedSourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - - // Find the section containing the generated position we're trying to map - // to an original position. - var sectionIndex = binarySearch.search(needle, this._sections, - function(needle, section) { - var cmp = needle.generatedLine - section.generatedOffset.generatedLine; - if (cmp) { - return cmp; - } - - return (needle.generatedColumn - - section.generatedOffset.generatedColumn); - }); - var section = this._sections[sectionIndex]; - - if (!section) { - return { - source: null, - line: null, - column: null, - name: null - }; - } - - return section.consumer.originalPositionFor({ - line: needle.generatedLine - - (section.generatedOffset.generatedLine - 1), - column: needle.generatedColumn - - (section.generatedOffset.generatedLine === needle.generatedLine - ? section.generatedOffset.generatedColumn - 1 - : 0), - bias: aArgs.bias - }); - }; - - /** - * Return true if we have the source content for every source in the source - * map, false otherwise. - */ - IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = - function IndexedSourceMapConsumer_hasContentsOfAllSources() { - return this._sections.every(function (s) { - return s.consumer.hasContentsOfAllSources(); - }); - }; - - /** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * available. - */ - IndexedSourceMapConsumer.prototype.sourceContentFor = - function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - - var content = section.consumer.sourceContentFor(aSource, true); - if (content) { - return content; - } - } - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; - - /** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ - IndexedSourceMapConsumer.prototype.generatedPositionFor = - function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - - // Only consider this section if the requested source is in the list of - // sources of the consumer. - if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) { - continue; - } - var generatedPosition = section.consumer.generatedPositionFor(aArgs); - if (generatedPosition) { - var ret = { - line: generatedPosition.line + - (section.generatedOffset.generatedLine - 1), - column: generatedPosition.column + - (section.generatedOffset.generatedLine === generatedPosition.line - ? section.generatedOffset.generatedColumn - 1 - : 0) - }; - return ret; - } - } - - return { - line: null, - column: null - }; - }; - - /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ - IndexedSourceMapConsumer.prototype._parseMappings = - function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { - this.__generatedMappings = []; - this.__originalMappings = []; - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - var sectionMappings = section.consumer._generatedMappings; - for (var j = 0; j < sectionMappings.length; j++) { - var mapping = sectionMappings[j]; - - var source = section.consumer._sources.at(mapping.source); - if (section.consumer.sourceRoot !== null) { - source = util.join(section.consumer.sourceRoot, source); - } - this._sources.add(source); - source = this._sources.indexOf(source); - - var name = section.consumer._names.at(mapping.name); - this._names.add(name); - name = this._names.indexOf(name); - - // The mappings coming from the consumer for the section have - // generated positions relative to the start of the section, so we - // need to offset them to be relative to the start of the concatenated - // generated file. - var adjustedMapping = { - source: source, - generatedLine: mapping.generatedLine + - (section.generatedOffset.generatedLine - 1), - generatedColumn: mapping.generatedColumn + - (section.generatedOffset.generatedLine === mapping.generatedLine - ? section.generatedOffset.generatedColumn - 1 - : 0), - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: name - }; - - this.__generatedMappings.push(adjustedMapping); - if (typeof adjustedMapping.originalLine === 'number') { - this.__originalMappings.push(adjustedMapping); - } - } - } - - quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); - quickSort(this.__originalMappings, util.compareByOriginalPositions); - }; - - exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - exports.GREATEST_LOWER_BOUND = 1; - exports.LEAST_UPPER_BOUND = 2; - - /** - * Recursive implementation of binary search. - * - * @param aLow Indices here and lower do not contain the needle. - * @param aHigh Indices here and higher do not contain the needle. - * @param aNeedle The element being searched for. - * @param aHaystack The non-empty array being searched. - * @param aCompare Function which takes two elements and returns -1, 0, or 1. - * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or - * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - */ - function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { - // This function terminates when one of the following is true: - // - // 1. We find the exact element we are looking for. - // - // 2. We did not find the exact element, but we can return the index of - // the next-closest element. - // - // 3. We did not find the exact element, and there is no next-closest - // element than the one we are searching for, so we return -1. - var mid = Math.floor((aHigh - aLow) / 2) + aLow; - var cmp = aCompare(aNeedle, aHaystack[mid], true); - if (cmp === 0) { - // Found the element we are looking for. - return mid; - } - else if (cmp > 0) { - // Our needle is greater than aHaystack[mid]. - if (aHigh - mid > 1) { - // The element is in the upper half. - return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); - } - - // The exact needle element was not found in this haystack. Determine if - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return aHigh < aHaystack.length ? aHigh : -1; - } else { - return mid; - } - } - else { - // Our needle is less than aHaystack[mid]. - if (mid - aLow > 1) { - // The element is in the lower half. - return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); - } - - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return mid; - } else { - return aLow < 0 ? -1 : aLow; - } - } - } - - /** - * This is an implementation of binary search which will always try and return - * the index of the closest element if there is no exact hit. This is because - * mappings between original and generated line/col pairs are single points, - * and there is an implicit region between each of them, so a miss just means - * that you aren't on the very start of a region. - * - * @param aNeedle The element you are looking for. - * @param aHaystack The array that is being searched. - * @param aCompare A function which takes the needle and an element in the - * array and returns -1, 0, or 1 depending on whether the needle is less - * than, equal to, or greater than the element, respectively. - * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or - * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. - */ - exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { - if (aHaystack.length === 0) { - return -1; - } - - var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, - aCompare, aBias || exports.GREATEST_LOWER_BOUND); - if (index < 0) { - return -1; - } - - // We have found either the exact element, or the next-closest element than - // the one we are searching for. However, there may be more than one such - // element. Make sure we always return the smallest of these. - while (index - 1 >= 0) { - if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { - break; - } - --index; - } - - return index; - }; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - // It turns out that some (most?) JavaScript engines don't self-host - // `Array.prototype.sort`. This makes sense because C++ will likely remain - // faster than JS when doing raw CPU-intensive sorting. However, when using a - // custom comparator function, calling back and forth between the VM's C++ and - // JIT'd JS is rather slow *and* loses JIT type information, resulting in - // worse generated code for the comparator function than would be optimal. In - // fact, when sorting with a comparator, these costs outweigh the benefits of - // sorting in C++. By using our own JS-implemented Quick Sort (below), we get - // a ~3500ms mean speed-up in `bench/bench.html`. - - /** - * Swap the elements indexed by `x` and `y` in the array `ary`. - * - * @param {Array} ary - * The array. - * @param {Number} x - * The index of the first item. - * @param {Number} y - * The index of the second item. - */ - function swap(ary, x, y) { - var temp = ary[x]; - ary[x] = ary[y]; - ary[y] = temp; - } - - /** - * Returns a random integer within the range `low .. high` inclusive. - * - * @param {Number} low - * The lower bound on the range. - * @param {Number} high - * The upper bound on the range. - */ - function randomIntInRange(low, high) { - return Math.round(low + (Math.random() * (high - low))); - } - - /** - * The Quick Sort algorithm. - * - * @param {Array} ary - * An array to sort. - * @param {function} comparator - * Function to use to compare two items. - * @param {Number} p - * Start index of the array - * @param {Number} r - * End index of the array - */ - function doQuickSort(ary, comparator, p, r) { - // If our lower bound is less than our upper bound, we (1) partition the - // array into two pieces and (2) recurse on each half. If it is not, this is - // the empty array and our base case. - - if (p < r) { - // (1) Partitioning. - // - // The partitioning chooses a pivot between `p` and `r` and moves all - // elements that are less than or equal to the pivot to the before it, and - // all the elements that are greater than it after it. The effect is that - // once partition is done, the pivot is in the exact place it will be when - // the array is put in sorted order, and it will not need to be moved - // again. This runs in O(n) time. - - // Always choose a random pivot so that an input array which is reverse - // sorted does not cause O(n^2) running time. - var pivotIndex = randomIntInRange(p, r); - var i = p - 1; - - swap(ary, pivotIndex, r); - var pivot = ary[r]; - - // Immediately after `j` is incremented in this loop, the following hold - // true: - // - // * Every element in `ary[p .. i]` is less than or equal to the pivot. - // - // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. - for (var j = p; j < r; j++) { - if (comparator(ary[j], pivot) <= 0) { - i += 1; - swap(ary, i, j); - } - } - - swap(ary, i + 1, j); - var q = i + 1; - - // (2) Recurse on each half. - - doQuickSort(ary, comparator, p, q - 1); - doQuickSort(ary, comparator, q + 1, r); - } - } - - /** - * Sort the given array in-place with the given comparator function. - * - * @param {Array} ary - * An array to sort. - * @param {function} comparator - * Function to use to compare two items. - */ - exports.quickSort = function (ary, comparator) { - doQuickSort(ary, comparator, 0, ary.length - 1); - }; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - - /* -*- Mode: js; js-indent-level: 2; -*- */ - /* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - - var SourceMapGenerator = __webpack_require__(1).SourceMapGenerator; - var util = __webpack_require__(4); - - // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other - // operating systems these days (capturing the result). - var REGEX_NEWLINE = /(\r?\n)/; - - // Newline character code for charCodeAt() comparisons - var NEWLINE_CODE = 10; - - // Private symbol for identifying `SourceNode`s when multiple versions of - // the source-map library are loaded. This MUST NOT CHANGE across - // versions! - var isSourceNode = "$$$isSourceNode$$$"; - - /** - * SourceNodes provide a way to abstract over interpolating/concatenating - * snippets of generated JavaScript source code while maintaining the line and - * column information associated with the original source code. - * - * @param aLine The original line number. - * @param aColumn The original column number. - * @param aSource The original source's filename. - * @param aChunks Optional. An array of strings which are snippets of - * generated JS, or other SourceNodes. - * @param aName The original identifier. - */ - function SourceNode(aLine, aColumn, aSource, aChunks, aName) { - this.children = []; - this.sourceContents = {}; - this.line = aLine == null ? null : aLine; - this.column = aColumn == null ? null : aColumn; - this.source = aSource == null ? null : aSource; - this.name = aName == null ? null : aName; - this[isSourceNode] = true; - if (aChunks != null) this.add(aChunks); - } - - /** - * Creates a SourceNode from generated code and a SourceMapConsumer. - * - * @param aGeneratedCode The generated code - * @param aSourceMapConsumer The SourceMap for the generated code - * @param aRelativePath Optional. The path that relative sources in the - * SourceMapConsumer should be relative to. - */ - SourceNode.fromStringWithSourceMap = - function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { - // The SourceNode we want to fill with the generated code - // and the SourceMap - var node = new SourceNode(); - - // All even indices of this array are one line of the generated code, - // while all odd indices are the newlines between two adjacent lines - // (since `REGEX_NEWLINE` captures its match). - // Processed fragments are accessed by calling `shiftNextLine`. - var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); - var remainingLinesIndex = 0; - var shiftNextLine = function() { - var lineContents = getNextLine(); - // The last line of a file might not have a newline. - var newLine = getNextLine() || ""; - return lineContents + newLine; - - function getNextLine() { - return remainingLinesIndex < remainingLines.length ? - remainingLines[remainingLinesIndex++] : undefined; - } - }; - - // We need to remember the position of "remainingLines" - var lastGeneratedLine = 1, lastGeneratedColumn = 0; - - // The generate SourceNodes we need a code range. - // To extract it current and last mapping is used. - // Here we store the last mapping. - var lastMapping = null; - - aSourceMapConsumer.eachMapping(function (mapping) { - if (lastMapping !== null) { - // We add the code from "lastMapping" to "mapping": - // First check if there is a new line in between. - if (lastGeneratedLine < mapping.generatedLine) { - // Associate first line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - lastGeneratedLine++; - lastGeneratedColumn = 0; - // The remaining code is added without mapping - } else { - // There is no new line in between. - // Associate the code between "lastGeneratedColumn" and - // "mapping.generatedColumn" with "lastMapping" - var nextLine = remainingLines[remainingLinesIndex]; - var code = nextLine.substr(0, mapping.generatedColumn - - lastGeneratedColumn); - remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - - lastGeneratedColumn); - lastGeneratedColumn = mapping.generatedColumn; - addMappingWithCode(lastMapping, code); - // No more remaining code, continue - lastMapping = mapping; - return; - } - } - // We add the generated code until the first mapping - // to the SourceNode without any mapping. - // Each line is added as separate string. - while (lastGeneratedLine < mapping.generatedLine) { - node.add(shiftNextLine()); - lastGeneratedLine++; - } - if (lastGeneratedColumn < mapping.generatedColumn) { - var nextLine = remainingLines[remainingLinesIndex]; - node.add(nextLine.substr(0, mapping.generatedColumn)); - remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); - lastGeneratedColumn = mapping.generatedColumn; - } - lastMapping = mapping; - }, this); - // We have processed all mappings. - if (remainingLinesIndex < remainingLines.length) { - if (lastMapping) { - // Associate the remaining code in the current line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - } - // and add the remaining lines without any mapping - node.add(remainingLines.splice(remainingLinesIndex).join("")); - } - - // Copy sourcesContent into SourceNode - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aRelativePath != null) { - sourceFile = util.join(aRelativePath, sourceFile); - } - node.setSourceContent(sourceFile, content); - } - }); - - return node; - - function addMappingWithCode(mapping, code) { - if (mapping === null || mapping.source === undefined) { - node.add(code); - } else { - var source = aRelativePath - ? util.join(aRelativePath, mapping.source) - : mapping.source; - node.add(new SourceNode(mapping.originalLine, - mapping.originalColumn, - source, - code, - mapping.name)); - } - } - }; - - /** - * Add a chunk of generated JS to this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ - SourceNode.prototype.add = function SourceNode_add(aChunk) { - if (Array.isArray(aChunk)) { - aChunk.forEach(function (chunk) { - this.add(chunk); - }, this); - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - if (aChunk) { - this.children.push(aChunk); - } - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); - } - return this; - }; - - /** - * Add a chunk of generated JS to the beginning of this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ - SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { - if (Array.isArray(aChunk)) { - for (var i = aChunk.length-1; i >= 0; i--) { - this.prepend(aChunk[i]); - } - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - this.children.unshift(aChunk); - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); - } - return this; - }; - - /** - * Walk over the tree of JS snippets in this node and its children. The - * walking function is called once for each snippet of JS and is passed that - * snippet and the its original associated source's line/column location. - * - * @param aFn The traversal function. - */ - SourceNode.prototype.walk = function SourceNode_walk(aFn) { - var chunk; - for (var i = 0, len = this.children.length; i < len; i++) { - chunk = this.children[i]; - if (chunk[isSourceNode]) { - chunk.walk(aFn); - } - else { - if (chunk !== '') { - aFn(chunk, { source: this.source, - line: this.line, - column: this.column, - name: this.name }); - } - } - } - }; - - /** - * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between - * each of `this.children`. - * - * @param aSep The separator. - */ - SourceNode.prototype.join = function SourceNode_join(aSep) { - var newChildren; - var i; - var len = this.children.length; - if (len > 0) { - newChildren = []; - for (i = 0; i < len-1; i++) { - newChildren.push(this.children[i]); - newChildren.push(aSep); - } - newChildren.push(this.children[i]); - this.children = newChildren; - } - return this; - }; - - /** - * Call String.prototype.replace on the very right-most source snippet. Useful - * for trimming whitespace from the end of a source node, etc. - * - * @param aPattern The pattern to replace. - * @param aReplacement The thing to replace the pattern with. - */ - SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { - var lastChild = this.children[this.children.length - 1]; - if (lastChild[isSourceNode]) { - lastChild.replaceRight(aPattern, aReplacement); - } - else if (typeof lastChild === 'string') { - this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); - } - else { - this.children.push(''.replace(aPattern, aReplacement)); - } - return this; - }; - - /** - * Set the source content for a source file. This will be added to the SourceMapGenerator - * in the sourcesContent field. - * - * @param aSourceFile The filename of the source file - * @param aSourceContent The content of the source file - */ - SourceNode.prototype.setSourceContent = - function SourceNode_setSourceContent(aSourceFile, aSourceContent) { - this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; - }; - - /** - * Walk over the tree of SourceNodes. The walking function is called for each - * source file content and is passed the filename and source content. - * - * @param aFn The traversal function. - */ - SourceNode.prototype.walkSourceContents = - function SourceNode_walkSourceContents(aFn) { - for (var i = 0, len = this.children.length; i < len; i++) { - if (this.children[i][isSourceNode]) { - this.children[i].walkSourceContents(aFn); - } - } - - var sources = Object.keys(this.sourceContents); - for (var i = 0, len = sources.length; i < len; i++) { - aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); - } - }; - - /** - * Return the string representation of this source node. Walks over the tree - * and concatenates all the various snippets together to one string. - */ - SourceNode.prototype.toString = function SourceNode_toString() { - var str = ""; - this.walk(function (chunk) { - str += chunk; - }); - return str; - }; - - /** - * Returns the string representation of this source node along with a source - * map. - */ - SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { - var generated = { - code: "", - line: 1, - column: 0 - }; - var map = new SourceMapGenerator(aArgs); - var sourceMappingActive = false; - var lastOriginalSource = null; - var lastOriginalLine = null; - var lastOriginalColumn = null; - var lastOriginalName = null; - this.walk(function (chunk, original) { - generated.code += chunk; - if (original.source !== null - && original.line !== null - && original.column !== null) { - if(lastOriginalSource !== original.source - || lastOriginalLine !== original.line - || lastOriginalColumn !== original.column - || lastOriginalName !== original.name) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - lastOriginalSource = original.source; - lastOriginalLine = original.line; - lastOriginalColumn = original.column; - lastOriginalName = original.name; - sourceMappingActive = true; - } else if (sourceMappingActive) { - map.addMapping({ - generated: { - line: generated.line, - column: generated.column - } - }); - lastOriginalSource = null; - sourceMappingActive = false; - } - for (var idx = 0, length = chunk.length; idx < length; idx++) { - if (chunk.charCodeAt(idx) === NEWLINE_CODE) { - generated.line++; - generated.column = 0; - // Mappings end at eol - if (idx + 1 === length) { - lastOriginalSource = null; - sourceMappingActive = false; - } else if (sourceMappingActive) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - } else { - generated.column++; - } - } - }); - this.walkSourceContents(function (sourceFile, sourceContent) { - map.setSourceContent(sourceFile, sourceContent); - }); - - return { code: generated.code, map: map }; - }; - - exports.SourceNode = SourceNode; - - -/***/ }) -/******/ ]) -}); -; \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/source-map/dist/source-map.min.js b/tools/node_modules/eslint/node_modules/source-map/dist/source-map.min.js deleted file mode 100644 index f2a46bd02536a3..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/dist/source-map.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.sourceMap=n():e.sourceMap=n()}(this,function(){return function(e){function n(t){if(r[t])return r[t].exports;var o=r[t]={exports:{},id:t,loaded:!1};return e[t].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}var r={};return n.m=e,n.c=r,n.p="",n(0)}([function(e,n,r){n.SourceMapGenerator=r(1).SourceMapGenerator,n.SourceMapConsumer=r(7).SourceMapConsumer,n.SourceNode=r(10).SourceNode},function(e,n,r){function t(e){e||(e={}),this._file=i.getArg(e,"file",null),this._sourceRoot=i.getArg(e,"sourceRoot",null),this._skipValidation=i.getArg(e,"skipValidation",!1),this._sources=new s,this._names=new s,this._mappings=new a,this._sourcesContents=null}var o=r(2),i=r(4),s=r(5).ArraySet,a=r(6).MappingList;t.prototype._version=3,t.fromSourceMap=function(e){var n=e.sourceRoot,r=new t({file:e.file,sourceRoot:n});return e.eachMapping(function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(t.source=e.source,null!=n&&(t.source=i.relative(n,t.source)),t.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(t.name=e.name)),r.addMapping(t)}),e.sources.forEach(function(n){var t=e.sourceContentFor(n);null!=t&&r.setSourceContent(n,t)}),r},t.prototype.addMapping=function(e){var n=i.getArg(e,"generated"),r=i.getArg(e,"original",null),t=i.getArg(e,"source",null),o=i.getArg(e,"name",null);this._skipValidation||this._validateMapping(n,r,t,o),null!=t&&(t=String(t),this._sources.has(t)||this._sources.add(t)),null!=o&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:n.line,generatedColumn:n.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:t,name:o})},t.prototype.setSourceContent=function(e,n){var r=e;null!=this._sourceRoot&&(r=i.relative(this._sourceRoot,r)),null!=n?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[i.toSetString(r)]=n):this._sourcesContents&&(delete this._sourcesContents[i.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},t.prototype.applySourceMap=function(e,n,r){var t=n;if(null==n){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');t=e.file}var o=this._sourceRoot;null!=o&&(t=i.relative(o,t));var a=new s,u=new s;this._mappings.unsortedForEach(function(n){if(n.source===t&&null!=n.originalLine){var s=e.originalPositionFor({line:n.originalLine,column:n.originalColumn});null!=s.source&&(n.source=s.source,null!=r&&(n.source=i.join(r,n.source)),null!=o&&(n.source=i.relative(o,n.source)),n.originalLine=s.line,n.originalColumn=s.column,null!=s.name&&(n.name=s.name))}var l=n.source;null==l||a.has(l)||a.add(l);var c=n.name;null==c||u.has(c)||u.add(c)},this),this._sources=a,this._names=u,e.sources.forEach(function(n){var t=e.sourceContentFor(n);null!=t&&(null!=r&&(n=i.join(r,n)),null!=o&&(n=i.relative(o,n)),this.setSourceContent(n,t))},this)},t.prototype._validateMapping=function(e,n,r,t){if(n&&"number"!=typeof n.line&&"number"!=typeof n.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||n||r||t)&&!(e&&"line"in e&&"column"in e&&n&&"line"in n&&"column"in n&&e.line>0&&e.column>=0&&n.line>0&&n.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:n,name:t}))},t.prototype._serializeMappings=function(){for(var e,n,r,t,s=0,a=1,u=0,l=0,c=0,g=0,p="",h=this._mappings.toArray(),f=0,d=h.length;f0){if(!i.compareByGeneratedPositionsInflated(n,h[f-1]))continue;e+=","}e+=o.encode(n.generatedColumn-s),s=n.generatedColumn,null!=n.source&&(t=this._sources.indexOf(n.source),e+=o.encode(t-g),g=t,e+=o.encode(n.originalLine-1-l),l=n.originalLine-1,e+=o.encode(n.originalColumn-u),u=n.originalColumn,null!=n.name&&(r=this._names.indexOf(n.name),e+=o.encode(r-c),c=r)),p+=e}return p},t.prototype._generateSourcesContent=function(e,n){return e.map(function(e){if(!this._sourcesContents)return null;null!=n&&(e=i.relative(n,e));var r=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},t.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},t.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=t},function(e,n,r){function t(e){return e<0?(-e<<1)+1:(e<<1)+0}function o(e){var n=1===(1&e),r=e>>1;return n?-r:r}var i=r(3),s=5,a=1<>>=s,o>0&&(n|=l),r+=i.encode(n);while(o>0);return r},n.decode=function(e,n,r){var t,a,c=e.length,g=0,p=0;do{if(n>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(a=i.decode(e.charCodeAt(n++)),a===-1)throw new Error("Invalid base64 digit: "+e.charAt(n-1));t=!!(a&l),a&=u,g+=a<=0;c--)s=u[c],"."===s?u.splice(c,1):".."===s?l++:l>0&&(""===s?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return r=u.join("/"),""===r&&(r=a?"/":"."),i?(i.path=r,o(i)):r}function s(e,n){""===e&&(e="."),""===n&&(n=".");var r=t(n),s=t(e);if(s&&(e=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),o(r);if(r||n.match(_))return n;if(s&&!s.host&&!s.path)return s.host=n,o(s);var a="/"===n.charAt(0)?n:i(e.replace(/\/+$/,"")+"/"+n);return s?(s.path=a,o(s)):a}function a(e,n){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==n.indexOf(e+"/");){var t=e.lastIndexOf("/");if(t<0)return n;if(e=e.slice(0,t),e.match(/^([^\/]+:\/)?\/*$/))return n;++r}return Array(r+1).join("../")+n.substr(e.length+1)}function u(e){return e}function l(e){return g(e)?"$"+e:e}function c(e){return g(e)?e.slice(1):e}function g(e){if(!e)return!1;var n=e.length;if(n<9)return!1;if(95!==e.charCodeAt(n-1)||95!==e.charCodeAt(n-2)||111!==e.charCodeAt(n-3)||116!==e.charCodeAt(n-4)||111!==e.charCodeAt(n-5)||114!==e.charCodeAt(n-6)||112!==e.charCodeAt(n-7)||95!==e.charCodeAt(n-8)||95!==e.charCodeAt(n-9))return!1;for(var r=n-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function p(e,n,r){var t=e.source-n.source;return 0!==t?t:(t=e.originalLine-n.originalLine,0!==t?t:(t=e.originalColumn-n.originalColumn,0!==t||r?t:(t=e.generatedColumn-n.generatedColumn,0!==t?t:(t=e.generatedLine-n.generatedLine,0!==t?t:e.name-n.name))))}function h(e,n,r){var t=e.generatedLine-n.generatedLine;return 0!==t?t:(t=e.generatedColumn-n.generatedColumn,0!==t||r?t:(t=e.source-n.source,0!==t?t:(t=e.originalLine-n.originalLine,0!==t?t:(t=e.originalColumn-n.originalColumn,0!==t?t:e.name-n.name))))}function f(e,n){return e===n?0:e>n?1:-1}function d(e,n){var r=e.generatedLine-n.generatedLine;return 0!==r?r:(r=e.generatedColumn-n.generatedColumn,0!==r?r:(r=f(e.source,n.source),0!==r?r:(r=e.originalLine-n.originalLine,0!==r?r:(r=e.originalColumn-n.originalColumn,0!==r?r:f(e.name,n.name)))))}n.getArg=r;var m=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,_=/^data:.+\,.+$/;n.urlParse=t,n.urlGenerate=o,n.normalize=i,n.join=s,n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(m)},n.relative=a;var v=function(){var e=Object.create(null);return!("__proto__"in e)}();n.toSetString=v?u:l,n.fromSetString=v?u:c,n.compareByOriginalPositions=p,n.compareByGeneratedPositionsDeflated=h,n.compareByGeneratedPositionsInflated=d},function(e,n,r){function t(){this._array=[],this._set=s?new Map:Object.create(null)}var o=r(4),i=Object.prototype.hasOwnProperty,s="undefined"!=typeof Map;t.fromArray=function(e,n){for(var r=new t,o=0,i=e.length;o=0)return n}else{var r=o.toSetString(e);if(i.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},t.prototype.at=function(e){if(e>=0&&er||t==r&&s>=o||i.compareByGeneratedPositionsInflated(e,n)<=0}function o(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var i=r(4);o.prototype.unsortedForEach=function(e,n){this._array.forEach(e,n)},o.prototype.add=function(e){t(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},o.prototype.toArray=function(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=o},function(e,n,r){function t(e){var n=e;return"string"==typeof e&&(n=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=n.sections?new s(n):new o(n)}function o(e){var n=e;"string"==typeof e&&(n=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=a.getArg(n,"version"),t=a.getArg(n,"sources"),o=a.getArg(n,"names",[]),i=a.getArg(n,"sourceRoot",null),s=a.getArg(n,"sourcesContent",null),u=a.getArg(n,"mappings"),c=a.getArg(n,"file",null);if(r!=this._version)throw new Error("Unsupported version: "+r);t=t.map(String).map(a.normalize).map(function(e){return i&&a.isAbsolute(i)&&a.isAbsolute(e)?a.relative(i,e):e}),this._names=l.fromArray(o.map(String),!0),this._sources=l.fromArray(t,!0),this.sourceRoot=i,this.sourcesContent=s,this._mappings=u,this.file=c}function i(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function s(e){var n=e;"string"==typeof e&&(n=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=a.getArg(n,"version"),o=a.getArg(n,"sections");if(r!=this._version)throw new Error("Unsupported version: "+r);this._sources=new l,this._names=new l;var i={line:-1,column:0};this._sections=o.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var n=a.getArg(e,"offset"),r=a.getArg(n,"line"),o=a.getArg(n,"column");if(r=0){var i=this._originalMappings[o];if(void 0===e.column)for(var s=i.originalLine;i&&i.originalLine===s;)t.push({line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++o];else for(var l=i.originalColumn;i&&i.originalLine===n&&i.originalColumn==l;)t.push({line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}),i=this._originalMappings[++o]}return t},n.SourceMapConsumer=t,o.prototype=Object.create(t.prototype),o.prototype.consumer=t,o.fromSourceMap=function(e){var n=Object.create(o.prototype),r=n._names=l.fromArray(e._names.toArray(),!0),t=n._sources=l.fromArray(e._sources.toArray(),!0);n.sourceRoot=e._sourceRoot,n.sourcesContent=e._generateSourcesContent(n._sources.toArray(),n.sourceRoot),n.file=e._file;for(var s=e._mappings.toArray().slice(),u=n.__generatedMappings=[],c=n.__originalMappings=[],p=0,h=s.length;p1&&(r.source=d+o[1],d+=o[1],r.originalLine=h+o[2],h=r.originalLine,r.originalLine+=1,r.originalColumn=f+o[3],f=r.originalColumn,o.length>4&&(r.name=m+o[4],m+=o[4])),S.push(r),"number"==typeof r.originalLine&&A.push(r)}g(S,a.compareByGeneratedPositionsDeflated),this.__generatedMappings=S,g(A,a.compareByOriginalPositions),this.__originalMappings=A},o.prototype._findMapping=function(e,n,r,t,o,i){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[t]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[t]);return u.search(e,n,o,i)},o.prototype.computeColumnSpans=function(){for(var e=0;e=0){var o=this._generatedMappings[r];if(o.generatedLine===n.generatedLine){var i=a.getArg(o,"source",null);null!==i&&(i=this._sources.at(i),null!=this.sourceRoot&&(i=a.join(this.sourceRoot,i)));var s=a.getArg(o,"name",null);return null!==s&&(s=this._names.at(s)),{source:i,line:a.getArg(o,"originalLine",null),column:a.getArg(o,"originalColumn",null),name:s}}}return{source:null,line:null,column:null,name:null}},o.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},o.prototype.sourceContentFor=function(e,n){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=a.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var r;if(null!=this.sourceRoot&&(r=a.urlParse(this.sourceRoot))){var t=e.replace(/^file:\/\//,"");if("file"==r.scheme&&this._sources.has(t))return this.sourcesContent[this._sources.indexOf(t)];if((!r.path||"/"==r.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(n)return null;throw new Error('"'+e+'" is not in the SourceMap.')},o.prototype.generatedPositionFor=function(e){var n=a.getArg(e,"source");if(null!=this.sourceRoot&&(n=a.relative(this.sourceRoot,n)),!this._sources.has(n))return{line:null,column:null,lastColumn:null};n=this._sources.indexOf(n);var r={source:n,originalLine:a.getArg(e,"line"),originalColumn:a.getArg(e,"column")},o=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,a.getArg(e,"bias",t.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===r.source)return{line:a.getArg(i,"generatedLine",null),column:a.getArg(i,"generatedColumn",null),lastColumn:a.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=o,s.prototype=Object.create(t.prototype),s.prototype.constructor=t,s.prototype._version=3,Object.defineProperty(s.prototype,"sources",{get:function(){for(var e=[],n=0;n0?t-u>1?r(u,t,o,i,s,a):a==n.LEAST_UPPER_BOUND?t1?r(e,u,o,i,s,a):a==n.LEAST_UPPER_BOUND?u:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,o,i){if(0===t.length)return-1;var s=r(-1,t.length,e,t,o,i||n.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===o(t[s],t[s-1],!0);)--s;return s}},function(e,n){function r(e,n,r){var t=e[n];e[n]=e[r],e[r]=t}function t(e,n){return Math.round(e+Math.random()*(n-e))}function o(e,n,i,s){if(i=0;n--)this.prepend(e[n]);else{if(!e[u]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},t.prototype.walk=function(e){for(var n,r=0,t=this.children.length;r0){for(n=[],r=0;r= 0) { - return idx; - } - } else { - var sStr = util.toSetString(aStr); - if (has.call(this._set, sStr)) { - return this._set[sStr]; - } - } - - throw new Error('"' + aStr + '" is not in the set.'); -}; - -/** - * What is the element at the given index? - * - * @param Number aIdx - */ -ArraySet.prototype.at = function ArraySet_at(aIdx) { - if (aIdx >= 0 && aIdx < this._array.length) { - return this._array[aIdx]; - } - throw new Error('No element indexed by ' + aIdx); -}; - -/** - * Returns the array representation of this set (which has the proper indices - * indicated by indexOf). Note that this is a copy of the internal array used - * for storing the members so that no one can mess with internal state. - */ -ArraySet.prototype.toArray = function ArraySet_toArray() { - return this._array.slice(); -}; - -exports.ArraySet = ArraySet; diff --git a/tools/node_modules/eslint/node_modules/source-map/lib/base64-vlq.js b/tools/node_modules/eslint/node_modules/source-map/lib/base64-vlq.js deleted file mode 100644 index 612b404018ece9..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/lib/base64-vlq.js +++ /dev/null @@ -1,140 +0,0 @@ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - * - * Based on the Base 64 VLQ implementation in Closure Compiler: - * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java - * - * Copyright 2011 The Closure Compiler Authors. All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -var base64 = require('./base64'); - -// A single base 64 digit can contain 6 bits of data. For the base 64 variable -// length quantities we use in the source map spec, the first bit is the sign, -// the next four bits are the actual value, and the 6th bit is the -// continuation bit. The continuation bit tells us whether there are more -// digits in this value following this digit. -// -// Continuation -// | Sign -// | | -// V V -// 101011 - -var VLQ_BASE_SHIFT = 5; - -// binary: 100000 -var VLQ_BASE = 1 << VLQ_BASE_SHIFT; - -// binary: 011111 -var VLQ_BASE_MASK = VLQ_BASE - 1; - -// binary: 100000 -var VLQ_CONTINUATION_BIT = VLQ_BASE; - -/** - * Converts from a two-complement value to a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) - * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) - */ -function toVLQSigned(aValue) { - return aValue < 0 - ? ((-aValue) << 1) + 1 - : (aValue << 1) + 0; -} - -/** - * Converts to a two-complement value from a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 - * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 - */ -function fromVLQSigned(aValue) { - var isNegative = (aValue & 1) === 1; - var shifted = aValue >> 1; - return isNegative - ? -shifted - : shifted; -} - -/** - * Returns the base 64 VLQ encoded value. - */ -exports.encode = function base64VLQ_encode(aValue) { - var encoded = ""; - var digit; - - var vlq = toVLQSigned(aValue); - - do { - digit = vlq & VLQ_BASE_MASK; - vlq >>>= VLQ_BASE_SHIFT; - if (vlq > 0) { - // There are still more digits in this value, so we must make sure the - // continuation bit is marked. - digit |= VLQ_CONTINUATION_BIT; - } - encoded += base64.encode(digit); - } while (vlq > 0); - - return encoded; -}; - -/** - * Decodes the next base 64 VLQ value from the given string and returns the - * value and the rest of the string via the out parameter. - */ -exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { - var strLen = aStr.length; - var result = 0; - var shift = 0; - var continuation, digit; - - do { - if (aIndex >= strLen) { - throw new Error("Expected more digits in base 64 VLQ value."); - } - - digit = base64.decode(aStr.charCodeAt(aIndex++)); - if (digit === -1) { - throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); - } - - continuation = !!(digit & VLQ_CONTINUATION_BIT); - digit &= VLQ_BASE_MASK; - result = result + (digit << shift); - shift += VLQ_BASE_SHIFT; - } while (continuation); - - aOutParam.value = fromVLQSigned(result); - aOutParam.rest = aIndex; -}; diff --git a/tools/node_modules/eslint/node_modules/source-map/lib/base64.js b/tools/node_modules/eslint/node_modules/source-map/lib/base64.js deleted file mode 100644 index 8aa86b30264363..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/lib/base64.js +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); - -/** - * Encode an integer in the range of 0 to 63 to a single base 64 digit. - */ -exports.encode = function (number) { - if (0 <= number && number < intToCharMap.length) { - return intToCharMap[number]; - } - throw new TypeError("Must be between 0 and 63: " + number); -}; - -/** - * Decode a single base 64 character code digit to an integer. Returns -1 on - * failure. - */ -exports.decode = function (charCode) { - var bigA = 65; // 'A' - var bigZ = 90; // 'Z' - - var littleA = 97; // 'a' - var littleZ = 122; // 'z' - - var zero = 48; // '0' - var nine = 57; // '9' - - var plus = 43; // '+' - var slash = 47; // '/' - - var littleOffset = 26; - var numberOffset = 52; - - // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ - if (bigA <= charCode && charCode <= bigZ) { - return (charCode - bigA); - } - - // 26 - 51: abcdefghijklmnopqrstuvwxyz - if (littleA <= charCode && charCode <= littleZ) { - return (charCode - littleA + littleOffset); - } - - // 52 - 61: 0123456789 - if (zero <= charCode && charCode <= nine) { - return (charCode - zero + numberOffset); - } - - // 62: + - if (charCode == plus) { - return 62; - } - - // 63: / - if (charCode == slash) { - return 63; - } - - // Invalid base64 digit. - return -1; -}; diff --git a/tools/node_modules/eslint/node_modules/source-map/lib/binary-search.js b/tools/node_modules/eslint/node_modules/source-map/lib/binary-search.js deleted file mode 100644 index 010ac941e1568d..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/lib/binary-search.js +++ /dev/null @@ -1,111 +0,0 @@ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -exports.GREATEST_LOWER_BOUND = 1; -exports.LEAST_UPPER_BOUND = 2; - -/** - * Recursive implementation of binary search. - * - * @param aLow Indices here and lower do not contain the needle. - * @param aHigh Indices here and higher do not contain the needle. - * @param aNeedle The element being searched for. - * @param aHaystack The non-empty array being searched. - * @param aCompare Function which takes two elements and returns -1, 0, or 1. - * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or - * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - */ -function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { - // This function terminates when one of the following is true: - // - // 1. We find the exact element we are looking for. - // - // 2. We did not find the exact element, but we can return the index of - // the next-closest element. - // - // 3. We did not find the exact element, and there is no next-closest - // element than the one we are searching for, so we return -1. - var mid = Math.floor((aHigh - aLow) / 2) + aLow; - var cmp = aCompare(aNeedle, aHaystack[mid], true); - if (cmp === 0) { - // Found the element we are looking for. - return mid; - } - else if (cmp > 0) { - // Our needle is greater than aHaystack[mid]. - if (aHigh - mid > 1) { - // The element is in the upper half. - return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); - } - - // The exact needle element was not found in this haystack. Determine if - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return aHigh < aHaystack.length ? aHigh : -1; - } else { - return mid; - } - } - else { - // Our needle is less than aHaystack[mid]. - if (mid - aLow > 1) { - // The element is in the lower half. - return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); - } - - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return mid; - } else { - return aLow < 0 ? -1 : aLow; - } - } -} - -/** - * This is an implementation of binary search which will always try and return - * the index of the closest element if there is no exact hit. This is because - * mappings between original and generated line/col pairs are single points, - * and there is an implicit region between each of them, so a miss just means - * that you aren't on the very start of a region. - * - * @param aNeedle The element you are looking for. - * @param aHaystack The array that is being searched. - * @param aCompare A function which takes the needle and an element in the - * array and returns -1, 0, or 1 depending on whether the needle is less - * than, equal to, or greater than the element, respectively. - * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or - * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. - */ -exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { - if (aHaystack.length === 0) { - return -1; - } - - var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, - aCompare, aBias || exports.GREATEST_LOWER_BOUND); - if (index < 0) { - return -1; - } - - // We have found either the exact element, or the next-closest element than - // the one we are searching for. However, there may be more than one such - // element. Make sure we always return the smallest of these. - while (index - 1 >= 0) { - if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { - break; - } - --index; - } - - return index; -}; diff --git a/tools/node_modules/eslint/node_modules/source-map/lib/mapping-list.js b/tools/node_modules/eslint/node_modules/source-map/lib/mapping-list.js deleted file mode 100644 index 06d1274a025a8a..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/lib/mapping-list.js +++ /dev/null @@ -1,79 +0,0 @@ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2014 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -var util = require('./util'); - -/** - * Determine whether mappingB is after mappingA with respect to generated - * position. - */ -function generatedPositionAfter(mappingA, mappingB) { - // Optimized for most common case - var lineA = mappingA.generatedLine; - var lineB = mappingB.generatedLine; - var columnA = mappingA.generatedColumn; - var columnB = mappingB.generatedColumn; - return lineB > lineA || lineB == lineA && columnB >= columnA || - util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; -} - -/** - * A data structure to provide a sorted view of accumulated mappings in a - * performance conscious manner. It trades a neglibable overhead in general - * case for a large speedup in case of mappings being added in order. - */ -function MappingList() { - this._array = []; - this._sorted = true; - // Serves as infimum - this._last = {generatedLine: -1, generatedColumn: 0}; -} - -/** - * Iterate through internal items. This method takes the same arguments that - * `Array.prototype.forEach` takes. - * - * NOTE: The order of the mappings is NOT guaranteed. - */ -MappingList.prototype.unsortedForEach = - function MappingList_forEach(aCallback, aThisArg) { - this._array.forEach(aCallback, aThisArg); - }; - -/** - * Add the given source mapping. - * - * @param Object aMapping - */ -MappingList.prototype.add = function MappingList_add(aMapping) { - if (generatedPositionAfter(this._last, aMapping)) { - this._last = aMapping; - this._array.push(aMapping); - } else { - this._sorted = false; - this._array.push(aMapping); - } -}; - -/** - * Returns the flat, sorted array of mappings. The mappings are sorted by - * generated position. - * - * WARNING: This method returns internal data without copying, for - * performance. The return value must NOT be mutated, and should be treated as - * an immutable borrow. If you want to take ownership, you must make your own - * copy. - */ -MappingList.prototype.toArray = function MappingList_toArray() { - if (!this._sorted) { - this._array.sort(util.compareByGeneratedPositionsInflated); - this._sorted = true; - } - return this._array; -}; - -exports.MappingList = MappingList; diff --git a/tools/node_modules/eslint/node_modules/source-map/lib/quick-sort.js b/tools/node_modules/eslint/node_modules/source-map/lib/quick-sort.js deleted file mode 100644 index 6a7caadbbdbea1..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/lib/quick-sort.js +++ /dev/null @@ -1,114 +0,0 @@ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -// It turns out that some (most?) JavaScript engines don't self-host -// `Array.prototype.sort`. This makes sense because C++ will likely remain -// faster than JS when doing raw CPU-intensive sorting. However, when using a -// custom comparator function, calling back and forth between the VM's C++ and -// JIT'd JS is rather slow *and* loses JIT type information, resulting in -// worse generated code for the comparator function than would be optimal. In -// fact, when sorting with a comparator, these costs outweigh the benefits of -// sorting in C++. By using our own JS-implemented Quick Sort (below), we get -// a ~3500ms mean speed-up in `bench/bench.html`. - -/** - * Swap the elements indexed by `x` and `y` in the array `ary`. - * - * @param {Array} ary - * The array. - * @param {Number} x - * The index of the first item. - * @param {Number} y - * The index of the second item. - */ -function swap(ary, x, y) { - var temp = ary[x]; - ary[x] = ary[y]; - ary[y] = temp; -} - -/** - * Returns a random integer within the range `low .. high` inclusive. - * - * @param {Number} low - * The lower bound on the range. - * @param {Number} high - * The upper bound on the range. - */ -function randomIntInRange(low, high) { - return Math.round(low + (Math.random() * (high - low))); -} - -/** - * The Quick Sort algorithm. - * - * @param {Array} ary - * An array to sort. - * @param {function} comparator - * Function to use to compare two items. - * @param {Number} p - * Start index of the array - * @param {Number} r - * End index of the array - */ -function doQuickSort(ary, comparator, p, r) { - // If our lower bound is less than our upper bound, we (1) partition the - // array into two pieces and (2) recurse on each half. If it is not, this is - // the empty array and our base case. - - if (p < r) { - // (1) Partitioning. - // - // The partitioning chooses a pivot between `p` and `r` and moves all - // elements that are less than or equal to the pivot to the before it, and - // all the elements that are greater than it after it. The effect is that - // once partition is done, the pivot is in the exact place it will be when - // the array is put in sorted order, and it will not need to be moved - // again. This runs in O(n) time. - - // Always choose a random pivot so that an input array which is reverse - // sorted does not cause O(n^2) running time. - var pivotIndex = randomIntInRange(p, r); - var i = p - 1; - - swap(ary, pivotIndex, r); - var pivot = ary[r]; - - // Immediately after `j` is incremented in this loop, the following hold - // true: - // - // * Every element in `ary[p .. i]` is less than or equal to the pivot. - // - // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. - for (var j = p; j < r; j++) { - if (comparator(ary[j], pivot) <= 0) { - i += 1; - swap(ary, i, j); - } - } - - swap(ary, i + 1, j); - var q = i + 1; - - // (2) Recurse on each half. - - doQuickSort(ary, comparator, p, q - 1); - doQuickSort(ary, comparator, q + 1, r); - } -} - -/** - * Sort the given array in-place with the given comparator function. - * - * @param {Array} ary - * An array to sort. - * @param {function} comparator - * Function to use to compare two items. - */ -exports.quickSort = function (ary, comparator) { - doQuickSort(ary, comparator, 0, ary.length - 1); -}; diff --git a/tools/node_modules/eslint/node_modules/source-map/lib/source-map-consumer.js b/tools/node_modules/eslint/node_modules/source-map/lib/source-map-consumer.js deleted file mode 100644 index 6abcc280eea160..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/lib/source-map-consumer.js +++ /dev/null @@ -1,1082 +0,0 @@ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -var util = require('./util'); -var binarySearch = require('./binary-search'); -var ArraySet = require('./array-set').ArraySet; -var base64VLQ = require('./base64-vlq'); -var quickSort = require('./quick-sort').quickSort; - -function SourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - return sourceMap.sections != null - ? new IndexedSourceMapConsumer(sourceMap) - : new BasicSourceMapConsumer(sourceMap); -} - -SourceMapConsumer.fromSourceMap = function(aSourceMap) { - return BasicSourceMapConsumer.fromSourceMap(aSourceMap); -} - -/** - * The version of the source mapping spec that we are consuming. - */ -SourceMapConsumer.prototype._version = 3; - -// `__generatedMappings` and `__originalMappings` are arrays that hold the -// parsed mapping coordinates from the source map's "mappings" attribute. They -// are lazily instantiated, accessed via the `_generatedMappings` and -// `_originalMappings` getters respectively, and we only parse the mappings -// and create these arrays once queried for a source location. We jump through -// these hoops because there can be many thousands of mappings, and parsing -// them is expensive, so we only want to do it if we must. -// -// Each object in the arrays is of the form: -// -// { -// generatedLine: The line number in the generated code, -// generatedColumn: The column number in the generated code, -// source: The path to the original source file that generated this -// chunk of code, -// originalLine: The line number in the original source that -// corresponds to this chunk of generated code, -// originalColumn: The column number in the original source that -// corresponds to this chunk of generated code, -// name: The name of the original symbol which generated this chunk of -// code. -// } -// -// All properties except for `generatedLine` and `generatedColumn` can be -// `null`. -// -// `_generatedMappings` is ordered by the generated positions. -// -// `_originalMappings` is ordered by the original positions. - -SourceMapConsumer.prototype.__generatedMappings = null; -Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { - get: function () { - if (!this.__generatedMappings) { - this._parseMappings(this._mappings, this.sourceRoot); - } - - return this.__generatedMappings; - } -}); - -SourceMapConsumer.prototype.__originalMappings = null; -Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { - get: function () { - if (!this.__originalMappings) { - this._parseMappings(this._mappings, this.sourceRoot); - } - - return this.__originalMappings; - } -}); - -SourceMapConsumer.prototype._charIsMappingSeparator = - function SourceMapConsumer_charIsMappingSeparator(aStr, index) { - var c = aStr.charAt(index); - return c === ";" || c === ","; - }; - -/** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ -SourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - throw new Error("Subclasses must implement _parseMappings"); - }; - -SourceMapConsumer.GENERATED_ORDER = 1; -SourceMapConsumer.ORIGINAL_ORDER = 2; - -SourceMapConsumer.GREATEST_LOWER_BOUND = 1; -SourceMapConsumer.LEAST_UPPER_BOUND = 2; - -/** - * Iterate over each mapping between an original source/line/column and a - * generated line/column in this source map. - * - * @param Function aCallback - * The function that is called with each mapping. - * @param Object aContext - * Optional. If specified, this object will be the value of `this` every - * time that `aCallback` is called. - * @param aOrder - * Either `SourceMapConsumer.GENERATED_ORDER` or - * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to - * iterate over the mappings sorted by the generated file's line/column - * order or the original's source/line/column order, respectively. Defaults to - * `SourceMapConsumer.GENERATED_ORDER`. - */ -SourceMapConsumer.prototype.eachMapping = - function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { - var context = aContext || null; - var order = aOrder || SourceMapConsumer.GENERATED_ORDER; - - var mappings; - switch (order) { - case SourceMapConsumer.GENERATED_ORDER: - mappings = this._generatedMappings; - break; - case SourceMapConsumer.ORIGINAL_ORDER: - mappings = this._originalMappings; - break; - default: - throw new Error("Unknown order of iteration."); - } - - var sourceRoot = this.sourceRoot; - mappings.map(function (mapping) { - var source = mapping.source === null ? null : this._sources.at(mapping.source); - if (source != null && sourceRoot != null) { - source = util.join(sourceRoot, source); - } - return { - source: source, - generatedLine: mapping.generatedLine, - generatedColumn: mapping.generatedColumn, - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: mapping.name === null ? null : this._names.at(mapping.name) - }; - }, this).forEach(aCallback, context); - }; - -/** - * Returns all generated line and column information for the original source, - * line, and column provided. If no column is provided, returns all mappings - * corresponding to a either the line we are searching for or the next - * closest line that has any mappings. Otherwise, returns all mappings - * corresponding to the given line and either the column we are searching for - * or the next closest column that has any offsets. - * - * The only argument is an object with the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: Optional. the column number in the original source. - * - * and an array of objects is returned, each with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ -SourceMapConsumer.prototype.allGeneratedPositionsFor = - function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { - var line = util.getArg(aArgs, 'line'); - - // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping - // returns the index of the closest mapping less than the needle. By - // setting needle.originalColumn to 0, we thus find the last mapping for - // the given line, provided such a mapping exists. - var needle = { - source: util.getArg(aArgs, 'source'), - originalLine: line, - originalColumn: util.getArg(aArgs, 'column', 0) - }; - - if (this.sourceRoot != null) { - needle.source = util.relative(this.sourceRoot, needle.source); - } - if (!this._sources.has(needle.source)) { - return []; - } - needle.source = this._sources.indexOf(needle.source); - - var mappings = []; - - var index = this._findMapping(needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions, - binarySearch.LEAST_UPPER_BOUND); - if (index >= 0) { - var mapping = this._originalMappings[index]; - - if (aArgs.column === undefined) { - var originalLine = mapping.originalLine; - - // Iterate until either we run out of mappings, or we run into - // a mapping for a different line than the one we found. Since - // mappings are sorted, this is guaranteed to find all mappings for - // the line we found. - while (mapping && mapping.originalLine === originalLine) { - mappings.push({ - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }); - - mapping = this._originalMappings[++index]; - } - } else { - var originalColumn = mapping.originalColumn; - - // Iterate until either we run out of mappings, or we run into - // a mapping for a different line than the one we were searching for. - // Since mappings are sorted, this is guaranteed to find all mappings for - // the line we are searching for. - while (mapping && - mapping.originalLine === line && - mapping.originalColumn == originalColumn) { - mappings.push({ - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }); - - mapping = this._originalMappings[++index]; - } - } - } - - return mappings; - }; - -exports.SourceMapConsumer = SourceMapConsumer; - -/** - * A BasicSourceMapConsumer instance represents a parsed source map which we can - * query for information about the original file positions by giving it a file - * position in the generated source. - * - * The only parameter is the raw source map (either as a JSON string, or - * already parsed to an object). According to the spec, source maps have the - * following attributes: - * - * - version: Which version of the source map spec this map is following. - * - sources: An array of URLs to the original source files. - * - names: An array of identifiers which can be referrenced by individual mappings. - * - sourceRoot: Optional. The URL root from which all sources are relative. - * - sourcesContent: Optional. An array of contents of the original source files. - * - mappings: A string of base64 VLQs which contain the actual mappings. - * - file: Optional. The generated file this source map is associated with. - * - * Here is an example source map, taken from the source map spec[0]: - * - * { - * version : 3, - * file: "out.js", - * sourceRoot : "", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AA,AB;;ABCDE;" - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# - */ -function BasicSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - var version = util.getArg(sourceMap, 'version'); - var sources = util.getArg(sourceMap, 'sources'); - // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which - // requires the array) to play nice here. - var names = util.getArg(sourceMap, 'names', []); - var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); - var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); - var mappings = util.getArg(sourceMap, 'mappings'); - var file = util.getArg(sourceMap, 'file', null); - - // Once again, Sass deviates from the spec and supplies the version as a - // string rather than a number, so we use loose equality checking here. - if (version != this._version) { - throw new Error('Unsupported version: ' + version); - } - - sources = sources - .map(String) - // Some source maps produce relative source paths like "./foo.js" instead of - // "foo.js". Normalize these first so that future comparisons will succeed. - // See bugzil.la/1090768. - .map(util.normalize) - // Always ensure that absolute sources are internally stored relative to - // the source root, if the source root is absolute. Not doing this would - // be particularly problematic when the source root is a prefix of the - // source (valid, but why??). See github issue #199 and bugzil.la/1188982. - .map(function (source) { - return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) - ? util.relative(sourceRoot, source) - : source; - }); - - // Pass `true` below to allow duplicate names and sources. While source maps - // are intended to be compressed and deduplicated, the TypeScript compiler - // sometimes generates source maps with duplicates in them. See Github issue - // #72 and bugzil.la/889492. - this._names = ArraySet.fromArray(names.map(String), true); - this._sources = ArraySet.fromArray(sources, true); - - this.sourceRoot = sourceRoot; - this.sourcesContent = sourcesContent; - this._mappings = mappings; - this.file = file; -} - -BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); -BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; - -/** - * Create a BasicSourceMapConsumer from a SourceMapGenerator. - * - * @param SourceMapGenerator aSourceMap - * The source map that will be consumed. - * @returns BasicSourceMapConsumer - */ -BasicSourceMapConsumer.fromSourceMap = - function SourceMapConsumer_fromSourceMap(aSourceMap) { - var smc = Object.create(BasicSourceMapConsumer.prototype); - - var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); - var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); - smc.sourceRoot = aSourceMap._sourceRoot; - smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), - smc.sourceRoot); - smc.file = aSourceMap._file; - - // Because we are modifying the entries (by converting string sources and - // names to indices into the sources and names ArraySets), we have to make - // a copy of the entry or else bad things happen. Shared mutable state - // strikes again! See github issue #191. - - var generatedMappings = aSourceMap._mappings.toArray().slice(); - var destGeneratedMappings = smc.__generatedMappings = []; - var destOriginalMappings = smc.__originalMappings = []; - - for (var i = 0, length = generatedMappings.length; i < length; i++) { - var srcMapping = generatedMappings[i]; - var destMapping = new Mapping; - destMapping.generatedLine = srcMapping.generatedLine; - destMapping.generatedColumn = srcMapping.generatedColumn; - - if (srcMapping.source) { - destMapping.source = sources.indexOf(srcMapping.source); - destMapping.originalLine = srcMapping.originalLine; - destMapping.originalColumn = srcMapping.originalColumn; - - if (srcMapping.name) { - destMapping.name = names.indexOf(srcMapping.name); - } - - destOriginalMappings.push(destMapping); - } - - destGeneratedMappings.push(destMapping); - } - - quickSort(smc.__originalMappings, util.compareByOriginalPositions); - - return smc; - }; - -/** - * The version of the source mapping spec that we are consuming. - */ -BasicSourceMapConsumer.prototype._version = 3; - -/** - * The list of original sources. - */ -Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { - get: function () { - return this._sources.toArray().map(function (s) { - return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s; - }, this); - } -}); - -/** - * Provide the JIT with a nice shape / hidden class. - */ -function Mapping() { - this.generatedLine = 0; - this.generatedColumn = 0; - this.source = null; - this.originalLine = null; - this.originalColumn = null; - this.name = null; -} - -/** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ -BasicSourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - var generatedLine = 1; - var previousGeneratedColumn = 0; - var previousOriginalLine = 0; - var previousOriginalColumn = 0; - var previousSource = 0; - var previousName = 0; - var length = aStr.length; - var index = 0; - var cachedSegments = {}; - var temp = {}; - var originalMappings = []; - var generatedMappings = []; - var mapping, str, segment, end, value; - - while (index < length) { - if (aStr.charAt(index) === ';') { - generatedLine++; - index++; - previousGeneratedColumn = 0; - } - else if (aStr.charAt(index) === ',') { - index++; - } - else { - mapping = new Mapping(); - mapping.generatedLine = generatedLine; - - // Because each offset is encoded relative to the previous one, - // many segments often have the same encoding. We can exploit this - // fact by caching the parsed variable length fields of each segment, - // allowing us to avoid a second parse if we encounter the same - // segment again. - for (end = index; end < length; end++) { - if (this._charIsMappingSeparator(aStr, end)) { - break; - } - } - str = aStr.slice(index, end); - - segment = cachedSegments[str]; - if (segment) { - index += str.length; - } else { - segment = []; - while (index < end) { - base64VLQ.decode(aStr, index, temp); - value = temp.value; - index = temp.rest; - segment.push(value); - } - - if (segment.length === 2) { - throw new Error('Found a source, but no line and column'); - } - - if (segment.length === 3) { - throw new Error('Found a source and line, but no column'); - } - - cachedSegments[str] = segment; - } - - // Generated column. - mapping.generatedColumn = previousGeneratedColumn + segment[0]; - previousGeneratedColumn = mapping.generatedColumn; - - if (segment.length > 1) { - // Original source. - mapping.source = previousSource + segment[1]; - previousSource += segment[1]; - - // Original line. - mapping.originalLine = previousOriginalLine + segment[2]; - previousOriginalLine = mapping.originalLine; - // Lines are stored 0-based - mapping.originalLine += 1; - - // Original column. - mapping.originalColumn = previousOriginalColumn + segment[3]; - previousOriginalColumn = mapping.originalColumn; - - if (segment.length > 4) { - // Original name. - mapping.name = previousName + segment[4]; - previousName += segment[4]; - } - } - - generatedMappings.push(mapping); - if (typeof mapping.originalLine === 'number') { - originalMappings.push(mapping); - } - } - } - - quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated); - this.__generatedMappings = generatedMappings; - - quickSort(originalMappings, util.compareByOriginalPositions); - this.__originalMappings = originalMappings; - }; - -/** - * Find the mapping that best matches the hypothetical "needle" mapping that - * we are searching for in the given "haystack" of mappings. - */ -BasicSourceMapConsumer.prototype._findMapping = - function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, - aColumnName, aComparator, aBias) { - // To return the position we are searching for, we must first find the - // mapping for the given position and then return the opposite position it - // points to. Because the mappings are sorted, we can use binary search to - // find the best mapping. - - if (aNeedle[aLineName] <= 0) { - throw new TypeError('Line must be greater than or equal to 1, got ' - + aNeedle[aLineName]); - } - if (aNeedle[aColumnName] < 0) { - throw new TypeError('Column must be greater than or equal to 0, got ' - + aNeedle[aColumnName]); - } - - return binarySearch.search(aNeedle, aMappings, aComparator, aBias); - }; - -/** - * Compute the last column for each generated mapping. The last column is - * inclusive. - */ -BasicSourceMapConsumer.prototype.computeColumnSpans = - function SourceMapConsumer_computeColumnSpans() { - for (var index = 0; index < this._generatedMappings.length; ++index) { - var mapping = this._generatedMappings[index]; - - // Mappings do not contain a field for the last generated columnt. We - // can come up with an optimistic estimate, however, by assuming that - // mappings are contiguous (i.e. given two consecutive mappings, the - // first mapping ends where the second one starts). - if (index + 1 < this._generatedMappings.length) { - var nextMapping = this._generatedMappings[index + 1]; - - if (mapping.generatedLine === nextMapping.generatedLine) { - mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; - continue; - } - } - - // The last mapping for each line spans the entire line. - mapping.lastGeneratedColumn = Infinity; - } - }; - -/** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or - * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. - * - * and an object is returned with the following properties: - * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. - */ -BasicSourceMapConsumer.prototype.originalPositionFor = - function SourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - - var index = this._findMapping( - needle, - this._generatedMappings, - "generatedLine", - "generatedColumn", - util.compareByGeneratedPositionsDeflated, - util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) - ); - - if (index >= 0) { - var mapping = this._generatedMappings[index]; - - if (mapping.generatedLine === needle.generatedLine) { - var source = util.getArg(mapping, 'source', null); - if (source !== null) { - source = this._sources.at(source); - if (this.sourceRoot != null) { - source = util.join(this.sourceRoot, source); - } - } - var name = util.getArg(mapping, 'name', null); - if (name !== null) { - name = this._names.at(name); - } - return { - source: source, - line: util.getArg(mapping, 'originalLine', null), - column: util.getArg(mapping, 'originalColumn', null), - name: name - }; - } - } - - return { - source: null, - line: null, - column: null, - name: null - }; - }; - -/** - * Return true if we have the source content for every source in the source - * map, false otherwise. - */ -BasicSourceMapConsumer.prototype.hasContentsOfAllSources = - function BasicSourceMapConsumer_hasContentsOfAllSources() { - if (!this.sourcesContent) { - return false; - } - return this.sourcesContent.length >= this._sources.size() && - !this.sourcesContent.some(function (sc) { return sc == null; }); - }; - -/** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * available. - */ -BasicSourceMapConsumer.prototype.sourceContentFor = - function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - if (!this.sourcesContent) { - return null; - } - - if (this.sourceRoot != null) { - aSource = util.relative(this.sourceRoot, aSource); - } - - if (this._sources.has(aSource)) { - return this.sourcesContent[this._sources.indexOf(aSource)]; - } - - var url; - if (this.sourceRoot != null - && (url = util.urlParse(this.sourceRoot))) { - // XXX: file:// URIs and absolute paths lead to unexpected behavior for - // many users. We can help them out when they expect file:// URIs to - // behave like it would if they were running a local HTTP server. See - // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. - var fileUriAbsPath = aSource.replace(/^file:\/\//, ""); - if (url.scheme == "file" - && this._sources.has(fileUriAbsPath)) { - return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] - } - - if ((!url.path || url.path == "/") - && this._sources.has("/" + aSource)) { - return this.sourcesContent[this._sources.indexOf("/" + aSource)]; - } - } - - // This function is used recursively from - // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we - // don't want to throw if we can't find the source - we just want to - // return null, so we provide a flag to exit gracefully. - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; - -/** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or - * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the one we are - * searching for, respectively, if the exact element cannot be found. - * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ -BasicSourceMapConsumer.prototype.generatedPositionFor = - function SourceMapConsumer_generatedPositionFor(aArgs) { - var source = util.getArg(aArgs, 'source'); - if (this.sourceRoot != null) { - source = util.relative(this.sourceRoot, source); - } - if (!this._sources.has(source)) { - return { - line: null, - column: null, - lastColumn: null - }; - } - source = this._sources.indexOf(source); - - var needle = { - source: source, - originalLine: util.getArg(aArgs, 'line'), - originalColumn: util.getArg(aArgs, 'column') - }; - - var index = this._findMapping( - needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions, - util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) - ); - - if (index >= 0) { - var mapping = this._originalMappings[index]; - - if (mapping.source === needle.source) { - return { - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }; - } - } - - return { - line: null, - column: null, - lastColumn: null - }; - }; - -exports.BasicSourceMapConsumer = BasicSourceMapConsumer; - -/** - * An IndexedSourceMapConsumer instance represents a parsed source map which - * we can query for information. It differs from BasicSourceMapConsumer in - * that it takes "indexed" source maps (i.e. ones with a "sections" field) as - * input. - * - * The only parameter is a raw source map (either as a JSON string, or already - * parsed to an object). According to the spec for indexed source maps, they - * have the following attributes: - * - * - version: Which version of the source map spec this map is following. - * - file: Optional. The generated file this source map is associated with. - * - sections: A list of section definitions. - * - * Each value under the "sections" field has two fields: - * - offset: The offset into the original specified at which this section - * begins to apply, defined as an object with a "line" and "column" - * field. - * - map: A source map definition. This source map could also be indexed, - * but doesn't have to be. - * - * Instead of the "map" field, it's also possible to have a "url" field - * specifying a URL to retrieve a source map from, but that's currently - * unsupported. - * - * Here's an example source map, taken from the source map spec[0], but - * modified to omit a section which uses the "url" field. - * - * { - * version : 3, - * file: "app.js", - * sections: [{ - * offset: {line:100, column:10}, - * map: { - * version : 3, - * file: "section.js", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AAAA,E;;ABCDE;" - * } - * }], - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt - */ -function IndexedSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - var version = util.getArg(sourceMap, 'version'); - var sections = util.getArg(sourceMap, 'sections'); - - if (version != this._version) { - throw new Error('Unsupported version: ' + version); - } - - this._sources = new ArraySet(); - this._names = new ArraySet(); - - var lastOffset = { - line: -1, - column: 0 - }; - this._sections = sections.map(function (s) { - if (s.url) { - // The url field will require support for asynchronicity. - // See https://github.com/mozilla/source-map/issues/16 - throw new Error('Support for url field in sections not implemented.'); - } - var offset = util.getArg(s, 'offset'); - var offsetLine = util.getArg(offset, 'line'); - var offsetColumn = util.getArg(offset, 'column'); - - if (offsetLine < lastOffset.line || - (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { - throw new Error('Section offsets must be ordered and non-overlapping.'); - } - lastOffset = offset; - - return { - generatedOffset: { - // The offset fields are 0-based, but we use 1-based indices when - // encoding/decoding from VLQ. - generatedLine: offsetLine + 1, - generatedColumn: offsetColumn + 1 - }, - consumer: new SourceMapConsumer(util.getArg(s, 'map')) - } - }); -} - -IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); -IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; - -/** - * The version of the source mapping spec that we are consuming. - */ -IndexedSourceMapConsumer.prototype._version = 3; - -/** - * The list of original sources. - */ -Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { - get: function () { - var sources = []; - for (var i = 0; i < this._sections.length; i++) { - for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { - sources.push(this._sections[i].consumer.sources[j]); - } - } - return sources; - } -}); - -/** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - * and an object is returned with the following properties: - * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. - */ -IndexedSourceMapConsumer.prototype.originalPositionFor = - function IndexedSourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - - // Find the section containing the generated position we're trying to map - // to an original position. - var sectionIndex = binarySearch.search(needle, this._sections, - function(needle, section) { - var cmp = needle.generatedLine - section.generatedOffset.generatedLine; - if (cmp) { - return cmp; - } - - return (needle.generatedColumn - - section.generatedOffset.generatedColumn); - }); - var section = this._sections[sectionIndex]; - - if (!section) { - return { - source: null, - line: null, - column: null, - name: null - }; - } - - return section.consumer.originalPositionFor({ - line: needle.generatedLine - - (section.generatedOffset.generatedLine - 1), - column: needle.generatedColumn - - (section.generatedOffset.generatedLine === needle.generatedLine - ? section.generatedOffset.generatedColumn - 1 - : 0), - bias: aArgs.bias - }); - }; - -/** - * Return true if we have the source content for every source in the source - * map, false otherwise. - */ -IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = - function IndexedSourceMapConsumer_hasContentsOfAllSources() { - return this._sections.every(function (s) { - return s.consumer.hasContentsOfAllSources(); - }); - }; - -/** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * available. - */ -IndexedSourceMapConsumer.prototype.sourceContentFor = - function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - - var content = section.consumer.sourceContentFor(aSource, true); - if (content) { - return content; - } - } - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; - -/** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ -IndexedSourceMapConsumer.prototype.generatedPositionFor = - function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - - // Only consider this section if the requested source is in the list of - // sources of the consumer. - if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) { - continue; - } - var generatedPosition = section.consumer.generatedPositionFor(aArgs); - if (generatedPosition) { - var ret = { - line: generatedPosition.line + - (section.generatedOffset.generatedLine - 1), - column: generatedPosition.column + - (section.generatedOffset.generatedLine === generatedPosition.line - ? section.generatedOffset.generatedColumn - 1 - : 0) - }; - return ret; - } - } - - return { - line: null, - column: null - }; - }; - -/** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ -IndexedSourceMapConsumer.prototype._parseMappings = - function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { - this.__generatedMappings = []; - this.__originalMappings = []; - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - var sectionMappings = section.consumer._generatedMappings; - for (var j = 0; j < sectionMappings.length; j++) { - var mapping = sectionMappings[j]; - - var source = section.consumer._sources.at(mapping.source); - if (section.consumer.sourceRoot !== null) { - source = util.join(section.consumer.sourceRoot, source); - } - this._sources.add(source); - source = this._sources.indexOf(source); - - var name = section.consumer._names.at(mapping.name); - this._names.add(name); - name = this._names.indexOf(name); - - // The mappings coming from the consumer for the section have - // generated positions relative to the start of the section, so we - // need to offset them to be relative to the start of the concatenated - // generated file. - var adjustedMapping = { - source: source, - generatedLine: mapping.generatedLine + - (section.generatedOffset.generatedLine - 1), - generatedColumn: mapping.generatedColumn + - (section.generatedOffset.generatedLine === mapping.generatedLine - ? section.generatedOffset.generatedColumn - 1 - : 0), - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: name - }; - - this.__generatedMappings.push(adjustedMapping); - if (typeof adjustedMapping.originalLine === 'number') { - this.__originalMappings.push(adjustedMapping); - } - } - } - - quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); - quickSort(this.__originalMappings, util.compareByOriginalPositions); - }; - -exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; diff --git a/tools/node_modules/eslint/node_modules/source-map/lib/source-map-generator.js b/tools/node_modules/eslint/node_modules/source-map/lib/source-map-generator.js deleted file mode 100644 index aff1e7fb268acc..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/lib/source-map-generator.js +++ /dev/null @@ -1,416 +0,0 @@ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -var base64VLQ = require('./base64-vlq'); -var util = require('./util'); -var ArraySet = require('./array-set').ArraySet; -var MappingList = require('./mapping-list').MappingList; - -/** - * An instance of the SourceMapGenerator represents a source map which is - * being built incrementally. You may pass an object with the following - * properties: - * - * - file: The filename of the generated source. - * - sourceRoot: A root for all relative URLs in this source map. - */ -function SourceMapGenerator(aArgs) { - if (!aArgs) { - aArgs = {}; - } - this._file = util.getArg(aArgs, 'file', null); - this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); - this._skipValidation = util.getArg(aArgs, 'skipValidation', false); - this._sources = new ArraySet(); - this._names = new ArraySet(); - this._mappings = new MappingList(); - this._sourcesContents = null; -} - -SourceMapGenerator.prototype._version = 3; - -/** - * Creates a new SourceMapGenerator based on a SourceMapConsumer - * - * @param aSourceMapConsumer The SourceMap. - */ -SourceMapGenerator.fromSourceMap = - function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { - var sourceRoot = aSourceMapConsumer.sourceRoot; - var generator = new SourceMapGenerator({ - file: aSourceMapConsumer.file, - sourceRoot: sourceRoot - }); - aSourceMapConsumer.eachMapping(function (mapping) { - var newMapping = { - generated: { - line: mapping.generatedLine, - column: mapping.generatedColumn - } - }; - - if (mapping.source != null) { - newMapping.source = mapping.source; - if (sourceRoot != null) { - newMapping.source = util.relative(sourceRoot, newMapping.source); - } - - newMapping.original = { - line: mapping.originalLine, - column: mapping.originalColumn - }; - - if (mapping.name != null) { - newMapping.name = mapping.name; - } - } - - generator.addMapping(newMapping); - }); - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - generator.setSourceContent(sourceFile, content); - } - }); - return generator; - }; - -/** - * Add a single mapping from original source line and column to the generated - * source's line and column for this source map being created. The mapping - * object should have the following properties: - * - * - generated: An object with the generated line and column positions. - * - original: An object with the original line and column positions. - * - source: The original source file (relative to the sourceRoot). - * - name: An optional original token name for this mapping. - */ -SourceMapGenerator.prototype.addMapping = - function SourceMapGenerator_addMapping(aArgs) { - var generated = util.getArg(aArgs, 'generated'); - var original = util.getArg(aArgs, 'original', null); - var source = util.getArg(aArgs, 'source', null); - var name = util.getArg(aArgs, 'name', null); - - if (!this._skipValidation) { - this._validateMapping(generated, original, source, name); - } - - if (source != null) { - source = String(source); - if (!this._sources.has(source)) { - this._sources.add(source); - } - } - - if (name != null) { - name = String(name); - if (!this._names.has(name)) { - this._names.add(name); - } - } - - this._mappings.add({ - generatedLine: generated.line, - generatedColumn: generated.column, - originalLine: original != null && original.line, - originalColumn: original != null && original.column, - source: source, - name: name - }); - }; - -/** - * Set the source content for a source file. - */ -SourceMapGenerator.prototype.setSourceContent = - function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { - var source = aSourceFile; - if (this._sourceRoot != null) { - source = util.relative(this._sourceRoot, source); - } - - if (aSourceContent != null) { - // Add the source content to the _sourcesContents map. - // Create a new _sourcesContents map if the property is null. - if (!this._sourcesContents) { - this._sourcesContents = Object.create(null); - } - this._sourcesContents[util.toSetString(source)] = aSourceContent; - } else if (this._sourcesContents) { - // Remove the source file from the _sourcesContents map. - // If the _sourcesContents map is empty, set the property to null. - delete this._sourcesContents[util.toSetString(source)]; - if (Object.keys(this._sourcesContents).length === 0) { - this._sourcesContents = null; - } - } - }; - -/** - * Applies the mappings of a sub-source-map for a specific source file to the - * source map being generated. Each mapping to the supplied source file is - * rewritten using the supplied source map. Note: The resolution for the - * resulting mappings is the minimium of this map and the supplied map. - * - * @param aSourceMapConsumer The source map to be applied. - * @param aSourceFile Optional. The filename of the source file. - * If omitted, SourceMapConsumer's file property will be used. - * @param aSourceMapPath Optional. The dirname of the path to the source map - * to be applied. If relative, it is relative to the SourceMapConsumer. - * This parameter is needed when the two source maps aren't in the same - * directory, and the source map to be applied contains relative source - * paths. If so, those relative source paths need to be rewritten - * relative to the SourceMapGenerator. - */ -SourceMapGenerator.prototype.applySourceMap = - function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { - var sourceFile = aSourceFile; - // If aSourceFile is omitted, we will use the file property of the SourceMap - if (aSourceFile == null) { - if (aSourceMapConsumer.file == null) { - throw new Error( - 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + - 'or the source map\'s "file" property. Both were omitted.' - ); - } - sourceFile = aSourceMapConsumer.file; - } - var sourceRoot = this._sourceRoot; - // Make "sourceFile" relative if an absolute Url is passed. - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - // Applying the SourceMap can add and remove items from the sources and - // the names array. - var newSources = new ArraySet(); - var newNames = new ArraySet(); - - // Find mappings for the "sourceFile" - this._mappings.unsortedForEach(function (mapping) { - if (mapping.source === sourceFile && mapping.originalLine != null) { - // Check if it can be mapped by the source map, then update the mapping. - var original = aSourceMapConsumer.originalPositionFor({ - line: mapping.originalLine, - column: mapping.originalColumn - }); - if (original.source != null) { - // Copy mapping - mapping.source = original.source; - if (aSourceMapPath != null) { - mapping.source = util.join(aSourceMapPath, mapping.source) - } - if (sourceRoot != null) { - mapping.source = util.relative(sourceRoot, mapping.source); - } - mapping.originalLine = original.line; - mapping.originalColumn = original.column; - if (original.name != null) { - mapping.name = original.name; - } - } - } - - var source = mapping.source; - if (source != null && !newSources.has(source)) { - newSources.add(source); - } - - var name = mapping.name; - if (name != null && !newNames.has(name)) { - newNames.add(name); - } - - }, this); - this._sources = newSources; - this._names = newNames; - - // Copy sourcesContents of applied map. - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aSourceMapPath != null) { - sourceFile = util.join(aSourceMapPath, sourceFile); - } - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - this.setSourceContent(sourceFile, content); - } - }, this); - }; - -/** - * A mapping can have one of the three levels of data: - * - * 1. Just the generated position. - * 2. The Generated position, original position, and original source. - * 3. Generated and original position, original source, as well as a name - * token. - * - * To maintain consistency, we validate that any new mapping being added falls - * in to one of these categories. - */ -SourceMapGenerator.prototype._validateMapping = - function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, - aName) { - // When aOriginal is truthy but has empty values for .line and .column, - // it is most likely a programmer error. In this case we throw a very - // specific error message to try to guide them the right way. - // For example: https://github.com/Polymer/polymer-bundler/pull/519 - if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { - throw new Error( - 'original.line and original.column are not numbers -- you probably meant to omit ' + - 'the original mapping entirely and only map the generated position. If so, pass ' + - 'null for the original mapping instead of an object with empty or null values.' - ); - } - - if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aGenerated.line > 0 && aGenerated.column >= 0 - && !aOriginal && !aSource && !aName) { - // Case 1. - return; - } - else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aOriginal && 'line' in aOriginal && 'column' in aOriginal - && aGenerated.line > 0 && aGenerated.column >= 0 - && aOriginal.line > 0 && aOriginal.column >= 0 - && aSource) { - // Cases 2 and 3. - return; - } - else { - throw new Error('Invalid mapping: ' + JSON.stringify({ - generated: aGenerated, - source: aSource, - original: aOriginal, - name: aName - })); - } - }; - -/** - * Serialize the accumulated mappings in to the stream of base 64 VLQs - * specified by the source map format. - */ -SourceMapGenerator.prototype._serializeMappings = - function SourceMapGenerator_serializeMappings() { - var previousGeneratedColumn = 0; - var previousGeneratedLine = 1; - var previousOriginalColumn = 0; - var previousOriginalLine = 0; - var previousName = 0; - var previousSource = 0; - var result = ''; - var next; - var mapping; - var nameIdx; - var sourceIdx; - - var mappings = this._mappings.toArray(); - for (var i = 0, len = mappings.length; i < len; i++) { - mapping = mappings[i]; - next = '' - - if (mapping.generatedLine !== previousGeneratedLine) { - previousGeneratedColumn = 0; - while (mapping.generatedLine !== previousGeneratedLine) { - next += ';'; - previousGeneratedLine++; - } - } - else { - if (i > 0) { - if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { - continue; - } - next += ','; - } - } - - next += base64VLQ.encode(mapping.generatedColumn - - previousGeneratedColumn); - previousGeneratedColumn = mapping.generatedColumn; - - if (mapping.source != null) { - sourceIdx = this._sources.indexOf(mapping.source); - next += base64VLQ.encode(sourceIdx - previousSource); - previousSource = sourceIdx; - - // lines are stored 0-based in SourceMap spec version 3 - next += base64VLQ.encode(mapping.originalLine - 1 - - previousOriginalLine); - previousOriginalLine = mapping.originalLine - 1; - - next += base64VLQ.encode(mapping.originalColumn - - previousOriginalColumn); - previousOriginalColumn = mapping.originalColumn; - - if (mapping.name != null) { - nameIdx = this._names.indexOf(mapping.name); - next += base64VLQ.encode(nameIdx - previousName); - previousName = nameIdx; - } - } - - result += next; - } - - return result; - }; - -SourceMapGenerator.prototype._generateSourcesContent = - function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { - return aSources.map(function (source) { - if (!this._sourcesContents) { - return null; - } - if (aSourceRoot != null) { - source = util.relative(aSourceRoot, source); - } - var key = util.toSetString(source); - return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) - ? this._sourcesContents[key] - : null; - }, this); - }; - -/** - * Externalize the source map. - */ -SourceMapGenerator.prototype.toJSON = - function SourceMapGenerator_toJSON() { - var map = { - version: this._version, - sources: this._sources.toArray(), - names: this._names.toArray(), - mappings: this._serializeMappings() - }; - if (this._file != null) { - map.file = this._file; - } - if (this._sourceRoot != null) { - map.sourceRoot = this._sourceRoot; - } - if (this._sourcesContents) { - map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); - } - - return map; - }; - -/** - * Render the source map being generated to a string. - */ -SourceMapGenerator.prototype.toString = - function SourceMapGenerator_toString() { - return JSON.stringify(this.toJSON()); - }; - -exports.SourceMapGenerator = SourceMapGenerator; diff --git a/tools/node_modules/eslint/node_modules/source-map/lib/source-node.js b/tools/node_modules/eslint/node_modules/source-map/lib/source-node.js deleted file mode 100644 index d196a53f8c0eda..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/lib/source-node.js +++ /dev/null @@ -1,413 +0,0 @@ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator; -var util = require('./util'); - -// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other -// operating systems these days (capturing the result). -var REGEX_NEWLINE = /(\r?\n)/; - -// Newline character code for charCodeAt() comparisons -var NEWLINE_CODE = 10; - -// Private symbol for identifying `SourceNode`s when multiple versions of -// the source-map library are loaded. This MUST NOT CHANGE across -// versions! -var isSourceNode = "$$$isSourceNode$$$"; - -/** - * SourceNodes provide a way to abstract over interpolating/concatenating - * snippets of generated JavaScript source code while maintaining the line and - * column information associated with the original source code. - * - * @param aLine The original line number. - * @param aColumn The original column number. - * @param aSource The original source's filename. - * @param aChunks Optional. An array of strings which are snippets of - * generated JS, or other SourceNodes. - * @param aName The original identifier. - */ -function SourceNode(aLine, aColumn, aSource, aChunks, aName) { - this.children = []; - this.sourceContents = {}; - this.line = aLine == null ? null : aLine; - this.column = aColumn == null ? null : aColumn; - this.source = aSource == null ? null : aSource; - this.name = aName == null ? null : aName; - this[isSourceNode] = true; - if (aChunks != null) this.add(aChunks); -} - -/** - * Creates a SourceNode from generated code and a SourceMapConsumer. - * - * @param aGeneratedCode The generated code - * @param aSourceMapConsumer The SourceMap for the generated code - * @param aRelativePath Optional. The path that relative sources in the - * SourceMapConsumer should be relative to. - */ -SourceNode.fromStringWithSourceMap = - function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { - // The SourceNode we want to fill with the generated code - // and the SourceMap - var node = new SourceNode(); - - // All even indices of this array are one line of the generated code, - // while all odd indices are the newlines between two adjacent lines - // (since `REGEX_NEWLINE` captures its match). - // Processed fragments are accessed by calling `shiftNextLine`. - var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); - var remainingLinesIndex = 0; - var shiftNextLine = function() { - var lineContents = getNextLine(); - // The last line of a file might not have a newline. - var newLine = getNextLine() || ""; - return lineContents + newLine; - - function getNextLine() { - return remainingLinesIndex < remainingLines.length ? - remainingLines[remainingLinesIndex++] : undefined; - } - }; - - // We need to remember the position of "remainingLines" - var lastGeneratedLine = 1, lastGeneratedColumn = 0; - - // The generate SourceNodes we need a code range. - // To extract it current and last mapping is used. - // Here we store the last mapping. - var lastMapping = null; - - aSourceMapConsumer.eachMapping(function (mapping) { - if (lastMapping !== null) { - // We add the code from "lastMapping" to "mapping": - // First check if there is a new line in between. - if (lastGeneratedLine < mapping.generatedLine) { - // Associate first line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - lastGeneratedLine++; - lastGeneratedColumn = 0; - // The remaining code is added without mapping - } else { - // There is no new line in between. - // Associate the code between "lastGeneratedColumn" and - // "mapping.generatedColumn" with "lastMapping" - var nextLine = remainingLines[remainingLinesIndex]; - var code = nextLine.substr(0, mapping.generatedColumn - - lastGeneratedColumn); - remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - - lastGeneratedColumn); - lastGeneratedColumn = mapping.generatedColumn; - addMappingWithCode(lastMapping, code); - // No more remaining code, continue - lastMapping = mapping; - return; - } - } - // We add the generated code until the first mapping - // to the SourceNode without any mapping. - // Each line is added as separate string. - while (lastGeneratedLine < mapping.generatedLine) { - node.add(shiftNextLine()); - lastGeneratedLine++; - } - if (lastGeneratedColumn < mapping.generatedColumn) { - var nextLine = remainingLines[remainingLinesIndex]; - node.add(nextLine.substr(0, mapping.generatedColumn)); - remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); - lastGeneratedColumn = mapping.generatedColumn; - } - lastMapping = mapping; - }, this); - // We have processed all mappings. - if (remainingLinesIndex < remainingLines.length) { - if (lastMapping) { - // Associate the remaining code in the current line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - } - // and add the remaining lines without any mapping - node.add(remainingLines.splice(remainingLinesIndex).join("")); - } - - // Copy sourcesContent into SourceNode - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aRelativePath != null) { - sourceFile = util.join(aRelativePath, sourceFile); - } - node.setSourceContent(sourceFile, content); - } - }); - - return node; - - function addMappingWithCode(mapping, code) { - if (mapping === null || mapping.source === undefined) { - node.add(code); - } else { - var source = aRelativePath - ? util.join(aRelativePath, mapping.source) - : mapping.source; - node.add(new SourceNode(mapping.originalLine, - mapping.originalColumn, - source, - code, - mapping.name)); - } - } - }; - -/** - * Add a chunk of generated JS to this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ -SourceNode.prototype.add = function SourceNode_add(aChunk) { - if (Array.isArray(aChunk)) { - aChunk.forEach(function (chunk) { - this.add(chunk); - }, this); - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - if (aChunk) { - this.children.push(aChunk); - } - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); - } - return this; -}; - -/** - * Add a chunk of generated JS to the beginning of this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ -SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { - if (Array.isArray(aChunk)) { - for (var i = aChunk.length-1; i >= 0; i--) { - this.prepend(aChunk[i]); - } - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - this.children.unshift(aChunk); - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); - } - return this; -}; - -/** - * Walk over the tree of JS snippets in this node and its children. The - * walking function is called once for each snippet of JS and is passed that - * snippet and the its original associated source's line/column location. - * - * @param aFn The traversal function. - */ -SourceNode.prototype.walk = function SourceNode_walk(aFn) { - var chunk; - for (var i = 0, len = this.children.length; i < len; i++) { - chunk = this.children[i]; - if (chunk[isSourceNode]) { - chunk.walk(aFn); - } - else { - if (chunk !== '') { - aFn(chunk, { source: this.source, - line: this.line, - column: this.column, - name: this.name }); - } - } - } -}; - -/** - * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between - * each of `this.children`. - * - * @param aSep The separator. - */ -SourceNode.prototype.join = function SourceNode_join(aSep) { - var newChildren; - var i; - var len = this.children.length; - if (len > 0) { - newChildren = []; - for (i = 0; i < len-1; i++) { - newChildren.push(this.children[i]); - newChildren.push(aSep); - } - newChildren.push(this.children[i]); - this.children = newChildren; - } - return this; -}; - -/** - * Call String.prototype.replace on the very right-most source snippet. Useful - * for trimming whitespace from the end of a source node, etc. - * - * @param aPattern The pattern to replace. - * @param aReplacement The thing to replace the pattern with. - */ -SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { - var lastChild = this.children[this.children.length - 1]; - if (lastChild[isSourceNode]) { - lastChild.replaceRight(aPattern, aReplacement); - } - else if (typeof lastChild === 'string') { - this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); - } - else { - this.children.push(''.replace(aPattern, aReplacement)); - } - return this; -}; - -/** - * Set the source content for a source file. This will be added to the SourceMapGenerator - * in the sourcesContent field. - * - * @param aSourceFile The filename of the source file - * @param aSourceContent The content of the source file - */ -SourceNode.prototype.setSourceContent = - function SourceNode_setSourceContent(aSourceFile, aSourceContent) { - this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; - }; - -/** - * Walk over the tree of SourceNodes. The walking function is called for each - * source file content and is passed the filename and source content. - * - * @param aFn The traversal function. - */ -SourceNode.prototype.walkSourceContents = - function SourceNode_walkSourceContents(aFn) { - for (var i = 0, len = this.children.length; i < len; i++) { - if (this.children[i][isSourceNode]) { - this.children[i].walkSourceContents(aFn); - } - } - - var sources = Object.keys(this.sourceContents); - for (var i = 0, len = sources.length; i < len; i++) { - aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); - } - }; - -/** - * Return the string representation of this source node. Walks over the tree - * and concatenates all the various snippets together to one string. - */ -SourceNode.prototype.toString = function SourceNode_toString() { - var str = ""; - this.walk(function (chunk) { - str += chunk; - }); - return str; -}; - -/** - * Returns the string representation of this source node along with a source - * map. - */ -SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { - var generated = { - code: "", - line: 1, - column: 0 - }; - var map = new SourceMapGenerator(aArgs); - var sourceMappingActive = false; - var lastOriginalSource = null; - var lastOriginalLine = null; - var lastOriginalColumn = null; - var lastOriginalName = null; - this.walk(function (chunk, original) { - generated.code += chunk; - if (original.source !== null - && original.line !== null - && original.column !== null) { - if(lastOriginalSource !== original.source - || lastOriginalLine !== original.line - || lastOriginalColumn !== original.column - || lastOriginalName !== original.name) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - lastOriginalSource = original.source; - lastOriginalLine = original.line; - lastOriginalColumn = original.column; - lastOriginalName = original.name; - sourceMappingActive = true; - } else if (sourceMappingActive) { - map.addMapping({ - generated: { - line: generated.line, - column: generated.column - } - }); - lastOriginalSource = null; - sourceMappingActive = false; - } - for (var idx = 0, length = chunk.length; idx < length; idx++) { - if (chunk.charCodeAt(idx) === NEWLINE_CODE) { - generated.line++; - generated.column = 0; - // Mappings end at eol - if (idx + 1 === length) { - lastOriginalSource = null; - sourceMappingActive = false; - } else if (sourceMappingActive) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - } else { - generated.column++; - } - } - }); - this.walkSourceContents(function (sourceFile, sourceContent) { - map.setSourceContent(sourceFile, sourceContent); - }); - - return { code: generated.code, map: map }; -}; - -exports.SourceNode = SourceNode; diff --git a/tools/node_modules/eslint/node_modules/source-map/lib/util.js b/tools/node_modules/eslint/node_modules/source-map/lib/util.js deleted file mode 100644 index 44e0e45205233e..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/lib/util.js +++ /dev/null @@ -1,417 +0,0 @@ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ - -/** - * This is a helper function for getting values from parameter/options - * objects. - * - * @param args The object we are extracting values from - * @param name The name of the property we are getting. - * @param defaultValue An optional value to return if the property is missing - * from the object. If this is not specified and the property is missing, an - * error will be thrown. - */ -function getArg(aArgs, aName, aDefaultValue) { - if (aName in aArgs) { - return aArgs[aName]; - } else if (arguments.length === 3) { - return aDefaultValue; - } else { - throw new Error('"' + aName + '" is a required argument.'); - } -} -exports.getArg = getArg; - -var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/; -var dataUrlRegexp = /^data:.+\,.+$/; - -function urlParse(aUrl) { - var match = aUrl.match(urlRegexp); - if (!match) { - return null; - } - return { - scheme: match[1], - auth: match[2], - host: match[3], - port: match[4], - path: match[5] - }; -} -exports.urlParse = urlParse; - -function urlGenerate(aParsedUrl) { - var url = ''; - if (aParsedUrl.scheme) { - url += aParsedUrl.scheme + ':'; - } - url += '//'; - if (aParsedUrl.auth) { - url += aParsedUrl.auth + '@'; - } - if (aParsedUrl.host) { - url += aParsedUrl.host; - } - if (aParsedUrl.port) { - url += ":" + aParsedUrl.port - } - if (aParsedUrl.path) { - url += aParsedUrl.path; - } - return url; -} -exports.urlGenerate = urlGenerate; - -/** - * Normalizes a path, or the path portion of a URL: - * - * - Replaces consecutive slashes with one slash. - * - Removes unnecessary '.' parts. - * - Removes unnecessary '/..' parts. - * - * Based on code in the Node.js 'path' core module. - * - * @param aPath The path or url to normalize. - */ -function normalize(aPath) { - var path = aPath; - var url = urlParse(aPath); - if (url) { - if (!url.path) { - return aPath; - } - path = url.path; - } - var isAbsolute = exports.isAbsolute(path); - - var parts = path.split(/\/+/); - for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { - part = parts[i]; - if (part === '.') { - parts.splice(i, 1); - } else if (part === '..') { - up++; - } else if (up > 0) { - if (part === '') { - // The first part is blank if the path is absolute. Trying to go - // above the root is a no-op. Therefore we can remove all '..' parts - // directly after the root. - parts.splice(i + 1, up); - up = 0; - } else { - parts.splice(i, 2); - up--; - } - } - } - path = parts.join('/'); - - if (path === '') { - path = isAbsolute ? '/' : '.'; - } - - if (url) { - url.path = path; - return urlGenerate(url); - } - return path; -} -exports.normalize = normalize; - -/** - * Joins two paths/URLs. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be joined with the root. - * - * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a - * scheme-relative URL: Then the scheme of aRoot, if any, is prepended - * first. - * - Otherwise aPath is a path. If aRoot is a URL, then its path portion - * is updated with the result and aRoot is returned. Otherwise the result - * is returned. - * - If aPath is absolute, the result is aPath. - * - Otherwise the two paths are joined with a slash. - * - Joining for example 'http://' and 'www.example.com' is also supported. - */ -function join(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; - } - if (aPath === "") { - aPath = "."; - } - var aPathUrl = urlParse(aPath); - var aRootUrl = urlParse(aRoot); - if (aRootUrl) { - aRoot = aRootUrl.path || '/'; - } - - // `join(foo, '//www.example.org')` - if (aPathUrl && !aPathUrl.scheme) { - if (aRootUrl) { - aPathUrl.scheme = aRootUrl.scheme; - } - return urlGenerate(aPathUrl); - } - - if (aPathUrl || aPath.match(dataUrlRegexp)) { - return aPath; - } - - // `join('http://', 'www.example.com')` - if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { - aRootUrl.host = aPath; - return urlGenerate(aRootUrl); - } - - var joined = aPath.charAt(0) === '/' - ? aPath - : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); - - if (aRootUrl) { - aRootUrl.path = joined; - return urlGenerate(aRootUrl); - } - return joined; -} -exports.join = join; - -exports.isAbsolute = function (aPath) { - return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp); -}; - -/** - * Make a path relative to a URL or another path. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be made relative to aRoot. - */ -function relative(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; - } - - aRoot = aRoot.replace(/\/$/, ''); - - // It is possible for the path to be above the root. In this case, simply - // checking whether the root is a prefix of the path won't work. Instead, we - // need to remove components from the root one by one, until either we find - // a prefix that fits, or we run out of components to remove. - var level = 0; - while (aPath.indexOf(aRoot + '/') !== 0) { - var index = aRoot.lastIndexOf("/"); - if (index < 0) { - return aPath; - } - - // If the only part of the root that is left is the scheme (i.e. http://, - // file:///, etc.), one or more slashes (/), or simply nothing at all, we - // have exhausted all components, so the path is not relative to the root. - aRoot = aRoot.slice(0, index); - if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { - return aPath; - } - - ++level; - } - - // Make sure we add a "../" for each component we removed from the root. - return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); -} -exports.relative = relative; - -var supportsNullProto = (function () { - var obj = Object.create(null); - return !('__proto__' in obj); -}()); - -function identity (s) { - return s; -} - -/** - * Because behavior goes wacky when you set `__proto__` on objects, we - * have to prefix all the strings in our set with an arbitrary character. - * - * See https://github.com/mozilla/source-map/pull/31 and - * https://github.com/mozilla/source-map/issues/30 - * - * @param String aStr - */ -function toSetString(aStr) { - if (isProtoString(aStr)) { - return '$' + aStr; - } - - return aStr; -} -exports.toSetString = supportsNullProto ? identity : toSetString; - -function fromSetString(aStr) { - if (isProtoString(aStr)) { - return aStr.slice(1); - } - - return aStr; -} -exports.fromSetString = supportsNullProto ? identity : fromSetString; - -function isProtoString(s) { - if (!s) { - return false; - } - - var length = s.length; - - if (length < 9 /* "__proto__".length */) { - return false; - } - - if (s.charCodeAt(length - 1) !== 95 /* '_' */ || - s.charCodeAt(length - 2) !== 95 /* '_' */ || - s.charCodeAt(length - 3) !== 111 /* 'o' */ || - s.charCodeAt(length - 4) !== 116 /* 't' */ || - s.charCodeAt(length - 5) !== 111 /* 'o' */ || - s.charCodeAt(length - 6) !== 114 /* 'r' */ || - s.charCodeAt(length - 7) !== 112 /* 'p' */ || - s.charCodeAt(length - 8) !== 95 /* '_' */ || - s.charCodeAt(length - 9) !== 95 /* '_' */) { - return false; - } - - for (var i = length - 10; i >= 0; i--) { - if (s.charCodeAt(i) !== 36 /* '$' */) { - return false; - } - } - - return true; -} - -/** - * Comparator between two mappings where the original positions are compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same original source/line/column, but different generated - * line and column the same. Useful when searching for a mapping with a - * stubbed out mapping. - */ -function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { - var cmp = mappingA.source - mappingB.source; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0 || onlyCompareOriginal) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - return mappingA.name - mappingB.name; -} -exports.compareByOriginalPositions = compareByOriginalPositions; - -/** - * Comparator between two mappings with deflated source and name indices where - * the generated positions are compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same generated line and column, but different - * source/name/original line and column the same. Useful when searching for a - * mapping with a stubbed out mapping. - */ -function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { - var cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0 || onlyCompareGenerated) { - return cmp; - } - - cmp = mappingA.source - mappingB.source; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0) { - return cmp; - } - - return mappingA.name - mappingB.name; -} -exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; - -function strcmp(aStr1, aStr2) { - if (aStr1 === aStr2) { - return 0; - } - - if (aStr1 > aStr2) { - return 1; - } - - return -1; -} - -/** - * Comparator between two mappings with inflated source and name strings where - * the generated positions are compared. - */ -function compareByGeneratedPositionsInflated(mappingA, mappingB) { - var cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp !== 0) { - return cmp; - } - - cmp = strcmp(mappingA.source, mappingB.source); - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp !== 0) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp !== 0) { - return cmp; - } - - return strcmp(mappingA.name, mappingB.name); -} -exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; diff --git a/tools/node_modules/eslint/node_modules/source-map/package.json b/tools/node_modules/eslint/node_modules/source-map/package.json deleted file mode 100644 index 048e3ae86099f8..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "source-map", - "description": "Generates and consumes source maps", - "version": "0.5.7", - "homepage": "https://github.com/mozilla/source-map", - "author": "Nick Fitzgerald ", - "contributors": [ - "Tobias Koppers ", - "Duncan Beevers ", - "Stephen Crane ", - "Ryan Seddon ", - "Miles Elam ", - "Mihai Bazon ", - "Michael Ficarra ", - "Todd Wolfson ", - "Alexander Solovyov ", - "Felix Gnass ", - "Conrad Irwin ", - "usrbincc ", - "David Glasser ", - "Chase Douglas ", - "Evan Wallace ", - "Heather Arthur ", - "Hugh Kennedy ", - "David Glasser ", - "Simon Lydell ", - "Jmeas Smith ", - "Michael Z Goddard ", - "azu ", - "John Gozde ", - "Adam Kirkton ", - "Chris Montgomery ", - "J. Ryan Stinnett ", - "Jack Herrington ", - "Chris Truter ", - "Daniel Espeset ", - "Jamie Wong ", - "Eddy Bruël ", - "Hawken Rives ", - "Gilad Peleg ", - "djchie ", - "Gary Ye ", - "Nicolas Lalevée " - ], - "repository": { - "type": "git", - "url": "http://github.com/mozilla/source-map.git" - }, - "main": "./source-map.js", - "files": [ - "source-map.js", - "lib/", - "dist/source-map.debug.js", - "dist/source-map.js", - "dist/source-map.min.js", - "dist/source-map.min.js.map" - ], - "engines": { - "node": ">=0.10.0" - }, - "license": "BSD-3-Clause", - "scripts": { - "test": "npm run build && node test/run-tests.js", - "build": "webpack --color", - "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" - }, - "devDependencies": { - "doctoc": "^0.15.0", - "webpack": "^1.12.0" - }, - "typings": "source-map" -} diff --git a/tools/node_modules/eslint/node_modules/source-map/source-map.js b/tools/node_modules/eslint/node_modules/source-map/source-map.js deleted file mode 100644 index bc88fe820c87a2..00000000000000 --- a/tools/node_modules/eslint/node_modules/source-map/source-map.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright 2009-2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE.txt or: - * http://opensource.org/licenses/BSD-3-Clause - */ -exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; -exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; -exports.SourceNode = require('./lib/source-node').SourceNode; diff --git a/tools/node_modules/eslint/node_modules/yallist/LICENSE b/tools/node_modules/eslint/node_modules/yallist/LICENSE new file mode 100644 index 00000000000000..19129e315fe593 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/yallist/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/yallist/iterator.js b/tools/node_modules/eslint/node_modules/yallist/iterator.js new file mode 100644 index 00000000000000..d41c97a19f9849 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/yallist/iterator.js @@ -0,0 +1,8 @@ +'use strict' +module.exports = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value + } + } +} diff --git a/tools/node_modules/eslint/node_modules/yallist/package.json b/tools/node_modules/eslint/node_modules/yallist/package.json new file mode 100644 index 00000000000000..8a083867d72e00 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/yallist/package.json @@ -0,0 +1,29 @@ +{ + "name": "yallist", + "version": "4.0.0", + "description": "Yet Another Linked List", + "main": "yallist.js", + "directories": { + "test": "test" + }, + "files": [ + "yallist.js", + "iterator.js" + ], + "dependencies": {}, + "devDependencies": { + "tap": "^12.1.0" + }, + "scripts": { + "test": "tap test/*.js --100", + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --all; git push origin --tags" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/yallist.git" + }, + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC" +} diff --git a/tools/node_modules/eslint/node_modules/yallist/yallist.js b/tools/node_modules/eslint/node_modules/yallist/yallist.js new file mode 100644 index 00000000000000..4e83ab1c542a51 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/yallist/yallist.js @@ -0,0 +1,426 @@ +'use strict' +module.exports = Yallist + +Yallist.Node = Node +Yallist.create = Yallist + +function Yallist (list) { + var self = this + if (!(self instanceof Yallist)) { + self = new Yallist() + } + + self.tail = null + self.head = null + self.length = 0 + + if (list && typeof list.forEach === 'function') { + list.forEach(function (item) { + self.push(item) + }) + } else if (arguments.length > 0) { + for (var i = 0, l = arguments.length; i < l; i++) { + self.push(arguments[i]) + } + } + + return self +} + +Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list') + } + + var next = node.next + var prev = node.prev + + if (next) { + next.prev = prev + } + + if (prev) { + prev.next = next + } + + if (node === this.head) { + this.head = next + } + if (node === this.tail) { + this.tail = prev + } + + node.list.length-- + node.next = null + node.prev = null + node.list = null + + return next +} + +Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var head = this.head + node.list = this + node.next = head + if (head) { + head.prev = node + } + + this.head = node + if (!this.tail) { + this.tail = node + } + this.length++ +} + +Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var tail = this.tail + node.list = this + node.prev = tail + if (tail) { + tail.next = node + } + + this.tail = node + if (!this.head) { + this.head = node + } + this.length++ +} + +Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined + } + + var res = this.tail.value + this.tail = this.tail.prev + if (this.tail) { + this.tail.next = null + } else { + this.head = null + } + this.length-- + return res +} + +Yallist.prototype.shift = function () { + if (!this.head) { + return undefined + } + + var res = this.head.value + this.head = this.head.next + if (this.head) { + this.head.prev = null + } else { + this.tail = null + } + this.length-- + return res +} + +Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this) + walker = walker.next + } +} + +Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this) + walker = walker.prev + } +} + +Yallist.prototype.get = function (n) { + for (var i = 0, walker = this.head; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.next + } + if (i === n && walker !== null) { + return walker.value + } +} + +Yallist.prototype.getReverse = function (n) { + for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { + // abort out of the list early if we hit a cycle + walker = walker.prev + } + if (i === n && walker !== null) { + return walker.value + } +} + +Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.next + } + return res +} + +Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.prev + } + return res +} + +Yallist.prototype.reduce = function (fn, initial) { + var acc + var walker = this.head + if (arguments.length > 1) { + acc = initial + } else if (this.head) { + walker = this.head.next + acc = this.head.value + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i) + walker = walker.next + } + + return acc +} + +Yallist.prototype.reduceReverse = function (fn, initial) { + var acc + var walker = this.tail + if (arguments.length > 1) { + acc = initial + } else if (this.tail) { + walker = this.tail.prev + acc = this.tail.value + } else { + throw new TypeError('Reduce of empty list with no initial value') + } + + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i) + walker = walker.prev + } + + return acc +} + +Yallist.prototype.toArray = function () { + var arr = new Array(this.length) + for (var i = 0, walker = this.head; walker !== null; i++) { + arr[i] = walker.value + walker = walker.next + } + return arr +} + +Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length) + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value + walker = walker.prev + } + return arr +} + +Yallist.prototype.slice = function (from, to) { + to = to || this.length + if (to < 0) { + to += this.length + } + from = from || 0 + if (from < 0) { + from += this.length + } + var ret = new Yallist() + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next + } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value) + } + return ret +} + +Yallist.prototype.sliceReverse = function (from, to) { + to = to || this.length + if (to < 0) { + to += this.length + } + from = from || 0 + if (from < 0) { + from += this.length + } + var ret = new Yallist() + if (to < from || to < 0) { + return ret + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { + walker = walker.prev + } + for (; walker !== null && i > from; i--, walker = walker.prev) { + ret.push(walker.value) + } + return ret +} + +Yallist.prototype.splice = function (start, deleteCount, ...nodes) { + if (start > this.length) { + start = this.length - 1 + } + if (start < 0) { + start = this.length + start; + } + + for (var i = 0, walker = this.head; walker !== null && i < start; i++) { + walker = walker.next + } + + var ret = [] + for (var i = 0; walker && i < deleteCount; i++) { + ret.push(walker.value) + walker = this.removeNode(walker) + } + if (walker === null) { + walker = this.tail + } + + if (walker !== this.head && walker !== this.tail) { + walker = walker.prev + } + + for (var i = 0; i < nodes.length; i++) { + walker = insert(this, walker, nodes[i]) + } + return ret; +} + +Yallist.prototype.reverse = function () { + var head = this.head + var tail = this.tail + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev + walker.prev = walker.next + walker.next = p + } + this.head = tail + this.tail = head + return this +} + +function insert (self, node, value) { + var inserted = node === self.head ? + new Node(value, null, node, self) : + new Node(value, node, node.next, self) + + if (inserted.next === null) { + self.tail = inserted + } + if (inserted.prev === null) { + self.head = inserted + } + + self.length++ + + return inserted +} + +function push (self, item) { + self.tail = new Node(item, self.tail, null, self) + if (!self.head) { + self.head = self.tail + } + self.length++ +} + +function unshift (self, item) { + self.head = new Node(item, null, self.head, self) + if (!self.tail) { + self.tail = self.head + } + self.length++ +} + +function Node (value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list) + } + + this.list = list + this.value = value + + if (prev) { + prev.next = this + this.prev = prev + } else { + this.prev = null + } + + if (next) { + next.prev = this + this.next = next + } else { + this.next = null + } +} + +try { + // add if support for Symbol.iterator is present + require('./iterator.js')(Yallist) +} catch (er) {} diff --git a/tools/node_modules/eslint/package.json b/tools/node_modules/eslint/package.json index dab9b0f5bf6efb..2a3ec9c8a3a882 100644 --- a/tools/node_modules/eslint/package.json +++ b/tools/node_modules/eslint/package.json @@ -1,6 +1,6 @@ { "name": "eslint", - "version": "8.13.0", + "version": "8.18.0", "author": "Nicholas C. Zakas ", "description": "An AST-based pattern checker for JavaScript.", "bin": { @@ -16,7 +16,9 @@ "test": "node Makefile.js test", "test:cli": "mocha", "lint": "node Makefile.js lint", + "lint:docsjs": "node Makefile.js lintDocsJS", "fix": "node Makefile.js lint -- fix", + "fix:docsjs": "node Makefile.js lintDocsJS -- fix", "fuzz": "node Makefile.js fuzz", "generate-release": "node Makefile.js generateRelease", "generate-alpharelease": "node Makefile.js generatePrerelease -- alpha", @@ -25,14 +27,19 @@ "publish-release": "node Makefile.js publishRelease", "gensite": "node Makefile.js gensite", "webpack": "node Makefile.js webpack", - "perf": "node Makefile.js perf" + "perf": "node Makefile.js perf", + "docs:update-links": "node tools/fetch-docs-links.js" }, "gitHooks": { "pre-commit": "lint-staged" }, "lint-staged": { "*.js": "eslint --fix", - "*.md": "markdownlint" + "*.md": "markdownlint --fix", + "docs/src/rules/*.md": [ + "node tools/fetch-docs-links.js", + "git add docs/src/_data/further_reading_links.json" + ] }, "files": [ "LICENSE", @@ -47,7 +54,7 @@ "homepage": "https://eslint.org", "bugs": "https://github.com/eslint/eslint/issues/", "dependencies": { - "@eslint/eslintrc": "^1.2.1", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -58,14 +65,14 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -74,7 +81,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -95,14 +102,18 @@ "eslint": "file:.", "eslint-config-eslint": "file:packages/eslint-config-eslint", "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-eslint-plugin": "^4.0.1", + "eslint-plugin-eslint-plugin": "^4.2.0", "eslint-plugin-internal-rules": "file:tools/internal-rules", "eslint-plugin-node": "^11.1.0", + "eslint-plugin-unicorn": "^42.0.0", "eslint-release": "^3.2.0", "eslump": "^3.0.0", "esprima": "^4.0.1", + "fast-glob": "^3.2.11", "fs-teardown": "^0.1.3", "glob": "^7.1.6", + "got": "^11.8.3", + "gray-matter": "^4.0.3", "jsdoc": "^3.5.5", "karma": "^6.1.1", "karma-chrome-launcher": "^3.1.0", @@ -115,6 +126,12 @@ "markdownlint-cli": "^0.30.0", "marked": "^4.0.8", "memfs": "^3.0.1", + "metascraper": "^5.25.7", + "metascraper-description": "^5.25.7", + "metascraper-image": "^5.29.3", + "metascraper-logo": "^5.25.7", + "metascraper-logo-favicon": "^5.25.7", + "metascraper-title": "^5.25.7", "mocha": "^8.3.2", "mocha-junit-reporter": "^2.0.0", "node-polyfill-webpack-plugin": "^1.0.3", diff --git a/tools/osx-notarize.sh b/tools/osx-notarize.sh index 07d3e20e7e9a18..31c92c2ca426f3 100755 --- a/tools/osx-notarize.sh +++ b/tools/osx-notarize.sh @@ -28,8 +28,7 @@ if [ ! -f "${gon_exe}" ]; then (cd "${HOME}/.gon/" && rm -f gon && unzip "${gon_exe}.zip" && mv gon "${gon_exe}") fi -cat tools/osx-gon-config.json.tmpl \ - | sed -e "s/{{appleid}}/${NOTARIZATION_ID}/" -e "s/{{pkgid}}/${pkgid}/" \ +sed -e "s/{{appleid}}/${NOTARIZATION_ID}/" -e "s/{{pkgid}}/${pkgid}/" tools/osx-gon-config.json.tmpl \ > gon-config.json "${gon_exe}" -log-level=info gon-config.json diff --git a/tools/snapshot/node_mksnapshot.cc b/tools/snapshot/node_mksnapshot.cc index 60062854327868..d166559a715b14 100644 --- a/tools/snapshot/node_mksnapshot.cc +++ b/tools/snapshot/node_mksnapshot.cc @@ -7,7 +7,7 @@ #include "libplatform/libplatform.h" #include "node_internals.h" -#include "node_snapshotable.h" +#include "node_snapshot_builder.h" #include "util-inl.h" #include "v8.h" diff --git a/tools/update-authors.js b/tools/update-authors.js deleted file mode 100755 index 5d8a5e7b3685a3..00000000000000 --- a/tools/update-authors.js +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env node -// Usage: tools/update-author.js [--dry] -// Passing --dry will redirect output to stdout rather than write to 'AUTHORS'. -'use strict'; -const { spawn } = require('child_process'); -const path = require('path'); -const fs = require('fs'); -const readline = require('readline'); - -class CaseIndifferentMap { - _map = new Map(); - - get(key) { return this._map.get(key.toLowerCase()); } - has(key) { return this._map.has(key.toLowerCase()); } - set(key, value) { return this._map.set(key.toLowerCase(), value); } -} - -const log = spawn( - 'git', - // Inspect author name/email and body. - ['log', '--reverse', '--format=Author: %aN <%aE>\n%b'], { - stdio: ['inherit', 'pipe', 'inherit'] - }); -const rl = readline.createInterface({ input: log.stdout }); - -let output; -if (process.argv.includes('--dry')) - output = process.stdout; -else - output = fs.createWriteStream('AUTHORS'); - -output.write('# Authors ordered by first contribution.\n\n'); - -const mailmap = new CaseIndifferentMap(); -{ - const lines = fs.readFileSync(path.resolve(__dirname, '../', '.mailmap'), - { encoding: 'utf8' }).split('\n'); - for (let line of lines) { - line = line.trim(); - if (line.startsWith('#') || line === '') continue; - - const match = line.match(/^(?:([^<]+)\s+)?(?:(<[^>]+>)\s+)?(?:([^<]+)\s+)?(<[^>]+>)$/); - if (match) { - const [, replaceName, replaceEmail, originalName, originalEmail] = match; - const key = originalName ? `${originalName}\0${originalEmail.toLocaleLowerCase()}` : originalEmail.toLowerCase(); - mailmap.set(key, { - author: replaceName || originalName, - email: replaceEmail || originalEmail, - }); - } else { - console.warn('Unknown .mailmap format:', line); - } - } -} - -const previousAuthors = new CaseIndifferentMap(); -{ - const lines = fs.readFileSync(path.resolve(__dirname, '../', 'AUTHORS'), - { encoding: 'utf8' }).split('\n'); - for (let line of lines) { - line = line.trim(); - if (line.startsWith('#') || line === '') continue; - - const match = line.match(/^([^<]+)\s+(<[^>]+>)$/); - if (match) { - const name = match[1]; - const email = match[2]; - if (previousAuthors.has(name)) { - const emails = previousAuthors.get(name); - emails.push(email); - } else { - previousAuthors.set(name, [email]); - } - } else { - console.warn('Unknown AUTHORS format:', line); - } - } -} - -const seen = new Set(); - -// Support regular git author metadata, as well as `Author:` and -// `Co-authored-by:` in the message body. Both have been used in the past -// to indicate multiple authors per commit, with the latter standardized -// by GitHub now. -const authorRe = - /(^Author:|^Co-authored-by:)\s+(?[^<]+)\s+(?<[^>]+>)/i; -rl.on('line', (line) => { - const match = line.match(authorRe); - if (!match) return; - - let { author, email } = match.groups; - const emailLower = email.toLowerCase(); - - const replacement = - mailmap.get(author + '\0' + emailLower) || mailmap.get(emailLower); - if (replacement) { - ({ author, email } = { author, email, ...replacement }); - } - - if (seen.has(email)) { - return; - } - - seen.add(email); - output.write(`${author} ${email}\n`); - const duplicate = previousAuthors.get(author); - if (duplicate && !duplicate.includes(email)) { - console.warn('Author name already in AUTHORS file. Possible duplicate:'); - console.warn(` ${author} ${email}`); - } -}); - -rl.on('close', () => { - output.end('\n# Generated by tools/update-authors.js\n'); -}); diff --git a/tools/update-authors.mjs b/tools/update-authors.mjs new file mode 100755 index 00000000000000..971fe160e3cf71 --- /dev/null +++ b/tools/update-authors.mjs @@ -0,0 +1,112 @@ +#!/usr/bin/env node +// Usage: tools/update-author.mjs [--dry] +// Passing --dry will redirect output to stdout rather than write to 'AUTHORS'. +import { spawn } from 'node:child_process'; +import fs from 'node:fs'; +import readline from 'node:readline'; + +class CaseIndifferentMap { + _map = new Map(); + + get(key) { return this._map.get(key.toLowerCase()); } + has(key) { return this._map.has(key.toLowerCase()); } + set(key, value) { return this._map.set(key.toLowerCase(), value); } +} + +const log = spawn( + 'git', + // Inspect author name/email and body. + ['log', '--reverse', '--format=Author: %aN <%aE>\n%b'], { + stdio: ['inherit', 'pipe', 'inherit'] + }); +const rl = readline.createInterface({ input: log.stdout }); + +let output; +if (process.argv.includes('--dry')) + output = process.stdout; +else + output = fs.createWriteStream('AUTHORS'); + +output.write('# Authors ordered by first contribution.\n\n'); + +const mailmap = new CaseIndifferentMap(); +{ + const lines = fs.readFileSync(new URL('../.mailmap', import.meta.url), + { encoding: 'utf8' }).split('\n'); + for (let line of lines) { + line = line.trim(); + if (line.startsWith('#') || line === '') continue; + + const match = line.match(/^(?:([^<]+)\s+)?(?:(<[^>]+>)\s+)?(?:([^<]+)\s+)?(<[^>]+>)$/); + if (match) { + const [, replaceName, replaceEmail, originalName, originalEmail] = match; + const key = originalName ? `${originalName}\0${originalEmail.toLocaleLowerCase()}` : originalEmail.toLowerCase(); + mailmap.set(key, { + author: replaceName || originalName, + email: replaceEmail || originalEmail, + }); + } else { + console.warn('Unknown .mailmap format:', line); + } + } +} + +const previousAuthors = new CaseIndifferentMap(); +{ + const lines = fs.readFileSync(new URL('../AUTHORS', import.meta.url), + { encoding: 'utf8' }).split('\n'); + for (let line of lines) { + line = line.trim(); + if (line.startsWith('#') || line === '') continue; + + const match = line.match(/^([^<]+)\s+(<[^>]+>)$/); + if (match) { + const name = match[1]; + const email = match[2]; + if (previousAuthors.has(name)) { + const emails = previousAuthors.get(name); + emails.push(email); + } else { + previousAuthors.set(name, [email]); + } + } else { + console.warn('Unknown AUTHORS format:', line); + } + } +} + +const seen = new Set(); + +// Support regular git author metadata, as well as `Author:` and +// `Co-authored-by:` in the message body. Both have been used in the past +// to indicate multiple authors per commit, with the latter standardized +// by GitHub now. +const authorRe = + /(^Author:|^Co-authored-by:)\s+(?[^<]+)\s+(?<[^>]+>)/i; +for await (const line of rl) { + const match = line.match(authorRe); + if (!match) continue; + + let { author, email } = match.groups; + const emailLower = email.toLowerCase(); + + const replacement = + mailmap.get(author + '\0' + emailLower) || mailmap.get(emailLower); + if (replacement) { + ({ author, email } = { author, email, ...replacement }); + } + + if (seen.has(email)) { + continue; + } + + seen.add(email); + output.write(`${author} ${email}\n`); + const duplicate = previousAuthors.get(author); + if (duplicate && !duplicate.includes(email)) { + console.warn('Author name already in AUTHORS file. Possible duplicate:'); + console.warn(` ${author} ${email}`); + } +} + +output.end('\n# Generated by tools/update-authors.mjs\n'); diff --git a/tools/update-npm.sh b/tools/update-npm.sh index d58b325b77f713..f69b6e5b17ea15 100755 --- a/tools/update-npm.sh +++ b/tools/update-npm.sh @@ -49,5 +49,5 @@ echo "Please git add npm, commit the new version, and whitespace-fix:" echo "" echo "$ git add -A deps/npm" echo "$ git commit -m \"deps: upgrade npm to $NPM_VERSION\"" -echo "$ git rebase --whitespace=fix master" +echo "$ git rebase --whitespace=fix main" echo "" diff --git a/tools/update-undici.sh b/tools/update-undici.sh index 40920df9d8f8c9..8350e215272808 100755 --- a/tools/update-undici.sh +++ b/tools/update-undici.sh @@ -29,7 +29,7 @@ rm -f deps/undici/undici.js ) mv undici-tmp/node_modules/undici deps/undici/src -mv deps/undici/src/undici.js deps/undici/undici.js +mv deps/undici/src/undici-fetch.js deps/undici/undici.js cp deps/undici/src/LICENSE deps/undici/LICENSE rm -rf undici-tmp/ diff --git a/tools/v8_gypfiles/features.gypi b/tools/v8_gypfiles/features.gypi index 2a2798156ff028..5aa7c3fb4d2927 100644 --- a/tools/v8_gypfiles/features.gypi +++ b/tools/v8_gypfiles/features.gypi @@ -132,6 +132,9 @@ 'v8_enable_pointer_compression%': 0, 'v8_enable_31bit_smis_on_64bit_arch%': 0, + # Sets -dV8_SHORT_BUILTIN_CALLS + 'v8_enable_short_builtin_calls%': 0, + # Sets -dOBJECT_PRINT. 'v8_enable_object_print%': 0, @@ -157,9 +160,9 @@ # Enables various testing features. 'v8_enable_test_features%': 0, - # Enables raw heap snapshots containing internals. Used for debugging memory - # on platform and embedder level. - 'v8_enable_raw_heap_snapshots%': 0, + # Enable the Maglev compiler. + # Sets -dV8_ENABLE_MAGLEV + 'v8_enable_maglev%': 0, # With post mortem support enabled, metadata is embedded into libv8 that # describes various parameters of the VM for use by debuggers. See @@ -176,8 +179,9 @@ # Controls the threshold for on-heap/off-heap Typed Arrays. 'v8_typed_array_max_size_in_heap%': 64, - # Enable minor mark compact. - 'v8_enable_minor_mc%': 1, + # Enable sharing read-only space across isolates. + # Sets -DV8_SHARED_RO_HEAP. + 'v8_enable_shared_ro_heap%': 0, # Enable lazy source positions by default. 'v8_enable_lazy_source_positions%': 1, @@ -214,26 +218,50 @@ # Sets -DV8_COMPRESS_ZONES. 'v8_enable_zone_compression%': 0, + # Enable the experimental V8 sandbox. + # Sets -DV8_SANDBOX. + 'v8_enable_sandbox%': 0, + + # Enable external pointer sandboxing. Requires v8_enable_sandbox. + # Sets -DV8_SANDBOXED_EXTERNAL_POINRTERS. + 'v8_enable_sandboxed_external_pointers%': 0, + + # Enable sandboxed pointers. Requires v8_enable_sandbox. + # Sets -DV8_SANDBOXED_POINTERS. + 'v8_enable_sandboxed_pointers%': 0, + # Experimental feature for collecting per-class zone memory stats. # Requires use_rtti = true 'v8_enable_precise_zone_stats%': 0, + # Experimental feature that uses SwissNameDictionary instead of NameDictionary + # as the backing store for all dictionary mode objects. + 'v8_enable_swiss_name_dictionary%': 0, + # Experimental feature for tracking constness of properties in non-global # dictionaries. Enabling this also always keeps prototypes in dict mode, # meaning that they are not switched to fast mode. # Sets -DV8_DICT_PROPERTY_CONST_TRACKING 'v8_dict_property_const_tracking%': 0, + # Allow for JS promise hooks (instead of just C++). + 'v8_enable_javascript_promise_hooks%': 0, + # Enable allocation folding globally (sets -dV8_ALLOCATION_FOLDING). # When it's disabled, the --turbo-allocation-folding runtime flag will be ignored. 'v8_enable_allocation_folding%': 1, + # Enable runtime verification of heap snapshots produced for devtools. + 'v8_enable_heap_snapshot_verify%': 0, + # Enable global allocation site tracking. 'v8_allocation_site_tracking%': 1, 'v8_scriptormodule_legacy_lifetime%': 1, - 'v8_include_receiver_in_argc%': 1, + # Change code emission and runtime features to be CET shadow-stack compliant + # (incomplete and experimental). + 'v8_enable_cet_shadow_stack%': 0, # Variables from v8.gni @@ -251,7 +279,7 @@ # will fail. 'v8_enable_webassembly%': 1, - # Enable advanced BigInt algorithms, costing about 10-30 KB binary size + # Enable advanced BigInt algorithms, costing about 10-30 KiB binary size # depending on platform. 'v8_advanced_bigint_algorithms%': 1 }, @@ -267,9 +295,6 @@ ['v8_promise_internal_field_count!=0', { 'defines': ['V8_PROMISE_INTERNAL_FIELD_COUNT=<(v8_promise_internal_field_count)'], }], - ['v8_enable_raw_heap_snapshots==1', { - 'defines': ['V8_ENABLE_RAW_HEAP_SNAPSHOTS',], - }], ['v8_enable_future==1', { 'defines': ['V8_ENABLE_FUTURE',], }], @@ -282,9 +307,6 @@ ['v8_enable_hugepage==1', { 'defines': ['ENABLE_HUGEPAGE',], }], - ['v8_enable_minor_mc==1', { - 'defines': ['ENABLE_MINOR_MC',], - }], ['v8_enable_pointer_compression==1', { 'defines': [ 'V8_COMPRESS_POINTERS', @@ -294,9 +316,21 @@ ['v8_enable_pointer_compression==1 or v8_enable_31bit_smis_on_64bit_arch==1', { 'defines': ['V8_31BIT_SMIS_ON_64BIT_ARCH',], }], + ['v8_enable_short_builtin_calls==1', { + 'defines': ['V8_SHORT_BUILTIN_CALLS',], + }], ['v8_enable_zone_compression==1', { 'defines': ['V8_COMPRESS_ZONES',], }], + ['v8_enable_sandbox==1', { + 'defines': ['V8_SANDBOX',], + }], + ['v8_enable_sandboxed_pointers==1', { + 'defines': ['V8_SANDBOXED_POINTERS',], + }], + ['v8_enable_sandboxed_external_pointers==1', { + 'defines': ['V8_SANDBOXED_EXTERNAL_POINTERS',], + }], ['v8_enable_object_print==1', { 'defines': ['OBJECT_PRINT',], }], @@ -342,6 +376,9 @@ # ['v8_enable_handle_zapping==1', { # 'defines': ['ENABLE_HANDLE_ZAPPING',], # }], + ['v8_enable_heap_snapshot_verify==1', { + 'defines': ['V8_ENABLE_HEAP_SNAPSHOT_VERIFY',], + }], ['v8_enable_snapshot_native_code_counters==1', { 'defines': ['V8_SNAPSHOT_NATIVE_CODE_COUNTERS',], }], @@ -363,6 +400,9 @@ ['v8_use_siphash==1', { 'defines': ['V8_USE_SIPHASH',], }], + ['v8_enable_shared_ro_heap==1', { + 'defines': ['V8_SHARED_RO_HEAP',], + }], ['dcheck_always_on!=0', { 'defines': ['DEBUG',], }], @@ -384,9 +424,18 @@ ['v8_control_flow_integrity==1', { 'defines': ['V8_ENABLE_CONTROL_FLOW_INTEGRITY',], }], + ['v8_enable_cet_shadow_stack==1', { + 'defines': ['V8_ENABLE_CET_SHADOW_STACK',], + }], ['v8_enable_precise_zone_stats==1', { 'defines': ['V8_ENABLE_PRECISE_ZONE_STATS',], }], + ['v8_enable_maglev==1', { + 'defines': ['V8_ENABLE_MAGLEV',], + }], + ['v8_enable_swiss_name_dictionary==1', { + 'defines': ['V8_ENABLE_SWISS_NAME_DICTIONARY',], + }], ['v8_enable_system_instrumentation==1', { 'defines': ['V8_ENABLE_SYSTEM_INSTRUMENTATION',], }], @@ -396,6 +445,9 @@ ['v8_dict_property_const_tracking==1', { 'defines': ['V8_DICT_PROPERTY_CONST_TRACKING',], }], + ['v8_enable_javascript_promise_hooks==1', { + 'defines': ['V8_ENABLE_JAVASCRIPT_PROMISE_HOOKS',], + }], ['v8_enable_allocation_folding==1', { 'defines': ['V8_ALLOCATION_FOLDING',], }], @@ -408,9 +460,6 @@ ['v8_advanced_bigint_algorithms==1', { 'defines': ['V8_ADVANCED_BIGINT_ALGORITHMS',], }], - ['v8_include_receiver_in_argc==1', { - 'defines': ['V8_INCLUDE_RECEIVER_IN_ARGC',], - }], ], # conditions 'defines': [ 'V8_GYP_BUILD', diff --git a/tools/v8_gypfiles/inspector.gypi b/tools/v8_gypfiles/inspector.gypi index ea4860a72744f4..bf792b8a852690 100644 --- a/tools/v8_gypfiles/inspector.gypi +++ b/tools/v8_gypfiles/inspector.gypi @@ -95,6 +95,8 @@ '<(V8_ROOT)/src/inspector/v8-stack-trace-impl.h', '<(V8_ROOT)/src/inspector/v8-value-utils.cc', '<(V8_ROOT)/src/inspector/v8-value-utils.h', + '<(V8_ROOT)/src/inspector/v8-webdriver-serializer.cc', + '<(V8_ROOT)/src/inspector/v8-webdriver-serializer.h', '<(V8_ROOT)/src/inspector/value-mirror.cc', '<(V8_ROOT)/src/inspector/value-mirror.h', # Flat merge `third_party/inspector_protocol:inspector_string_conversions` @@ -120,7 +122,6 @@ '<(inspector_protocol_path)/crdtp/protocol_core.h', '<(inspector_protocol_path)/crdtp/serializable.cc', '<(inspector_protocol_path)/crdtp/serializable.h', - '<(inspector_protocol_path)/crdtp/serializer_traits.h', '<(inspector_protocol_path)/crdtp/span.cc', '<(inspector_protocol_path)/crdtp/span.h', '<(inspector_protocol_path)/crdtp/status.cc', @@ -166,6 +167,7 @@ '--jinja_dir', '<(V8_ROOT)/third_party', '--output_base', '<(inspector_generated_output_root)/src/inspector', '--config', '<(inspector_path)/inspector_protocol_config.json', + '--config_value', 'protocol.path=<(v8_inspector_js_protocol)', '--inspector_protocol_dir', '<(inspector_protocol_path)', ], 'message': 'Generating inspector protocol sources from protocol json', diff --git a/tools/v8_gypfiles/toolchain.gypi b/tools/v8_gypfiles/toolchain.gypi index 0f8166011ffda1..8ade60b4e3ee0d 100644 --- a/tools/v8_gypfiles/toolchain.gypi +++ b/tools/v8_gypfiles/toolchain.gypi @@ -1008,7 +1008,7 @@ ['OS=="mac"', { 'defines': [ 'V8_HAVE_TARGET_OS', - 'V8_TARGET_OS_MACOSX', + 'V8_TARGET_OS_MACOS', ] }], ['OS=="win"', { diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp index 2eab895d31248b..55f963693347c8 100644 --- a/tools/v8_gypfiles/v8.gyp +++ b/tools/v8_gypfiles/v8.gyp @@ -477,7 +477,7 @@ 'toolsets': ['host', 'target'], 'dependencies': [ 'v8_config_headers', - 'cppgc_headers', + 'v8_heap_base_headers', 'v8_version', ], 'direct_dependent_settings': { @@ -529,7 +529,7 @@ 'v8_headers', 'v8_maybe_icu', 'v8_shared_internal_headers', - 'cppgc_headers', + 'v8_heap_base_headers', 'generate_bytecode_builtins_list', 'run_torque', 'v8_libbase', @@ -539,6 +539,11 @@ ' nul if errorlevel 1 echo Cannot copy README.md && goto package_error copy /Y ..\CHANGELOG.md %TARGET_NAME%\ > nul if errorlevel 1 echo Cannot copy CHANGELOG.md && goto package_error -robocopy ..\deps\npm %TARGET_NAME%\node_modules\npm /e /xd test > nul -if errorlevel 8 echo Cannot copy npm package && goto package_error -robocopy ..\deps\corepack %TARGET_NAME%\node_modules\corepack /e /xd test > nul -if errorlevel 8 echo Cannot copy corepack package && goto package_error -copy /Y ..\deps\npm\bin\npm %TARGET_NAME%\ > nul -if errorlevel 1 echo Cannot copy npm && goto package_error -copy /Y ..\deps\npm\bin\npm.cmd %TARGET_NAME%\ > nul -if errorlevel 1 echo Cannot copy npm.cmd && goto package_error -copy /Y ..\deps\npm\bin\npx %TARGET_NAME%\ > nul -if errorlevel 1 echo Cannot copy npx && goto package_error -copy /Y ..\deps\npm\bin\npx.cmd %TARGET_NAME%\ > nul -if errorlevel 1 echo Cannot copy npx.cmd && goto package_error -copy /Y ..\deps\corepack\shims\nodewin\corepack %TARGET_NAME%\ > nul -if errorlevel 1 echo Cannot copy corepack && goto package_error -copy /Y ..\deps\corepack\shims\nodewin\corepack.cmd %TARGET_NAME%\ > nul -if errorlevel 1 echo Cannot copy corepack.cmd && goto package_error + +if not defined nonpm ( + robocopy ..\deps\npm %TARGET_NAME%\node_modules\npm /e /xd test > nul + if errorlevel 8 echo Cannot copy npm package && goto package_error + copy /Y ..\deps\npm\bin\npm %TARGET_NAME%\ > nul + if errorlevel 1 echo Cannot copy npm && goto package_error + copy /Y ..\deps\npm\bin\npm.cmd %TARGET_NAME%\ > nul + if errorlevel 1 echo Cannot copy npm.cmd && goto package_error + copy /Y ..\deps\npm\bin\npx %TARGET_NAME%\ > nul + if errorlevel 1 echo Cannot copy npx && goto package_error + copy /Y ..\deps\npm\bin\npx.cmd %TARGET_NAME%\ > nul + if errorlevel 1 echo Cannot copy npx.cmd && goto package_error +) + +if not defined nocorepack ( + robocopy ..\deps\corepack %TARGET_NAME%\node_modules\corepack /e /xd test > nul + if errorlevel 8 echo Cannot copy corepack package && goto package_error + copy /Y ..\deps\corepack\shims\nodewin\corepack %TARGET_NAME%\ > nul + if errorlevel 1 echo Cannot copy corepack && goto package_error + copy /Y ..\deps\corepack\shims\nodewin\corepack.cmd %TARGET_NAME%\ > nul + if errorlevel 1 echo Cannot copy corepack.cmd && goto package_error +) + copy /Y ..\tools\msvs\nodevars.bat %TARGET_NAME%\ > nul if errorlevel 1 echo Cannot copy nodevars.bat && goto package_error copy /Y ..\tools\msvs\install_tools\*.* %TARGET_NAME%\ > nul @@ -468,6 +481,19 @@ if not defined noetw ( copy /Y ..\src\res\node_etw_provider.man %TARGET_NAME%\ > nul if errorlevel 1 echo Cannot copy node_etw_provider.man && goto package_error ) +if defined dll ( + copy /Y libnode.dll %TARGET_NAME%\ > nul + if errorlevel 1 echo Cannot copy libnode.dll && goto package_error + + mkdir %TARGET_NAME%\Release > nul + copy /Y node.def %TARGET_NAME%\Release\ > nul + if errorlevel 1 echo Cannot copy node.def && goto package_error + + set HEADERS_ONLY=1 + python ..\tools\install.py install %CD%\%TARGET_NAME% \ > nul + if errorlevel 1 echo Cannot install headers && goto package_error + set HEADERS_ONLY= +) cd .. :package @@ -595,7 +621,7 @@ if %errorlevel% neq 0 exit /b %errorlevel% :: building addons setlocal set npm_config_nodedir=%~dp0 -"%node_exe%" "%~dp0tools\build-addons.js" "%~dp0deps\npm\node_modules\node-gyp\bin\node-gyp.js" "%~dp0test\addons" +"%node_exe%" "%~dp0tools\build-addons.mjs" "%~dp0deps\npm\node_modules\node-gyp\bin\node-gyp.js" "%~dp0test\addons" if errorlevel 1 exit /b 1 endlocal @@ -613,7 +639,7 @@ for /d %%F in (test\js-native-api\??_*) do ( :: building js-native-api setlocal set npm_config_nodedir=%~dp0 -"%node_exe%" "%~dp0tools\build-addons.js" "%~dp0deps\npm\node_modules\node-gyp\bin\node-gyp.js" "%~dp0test\js-native-api" +"%node_exe%" "%~dp0tools\build-addons.mjs" "%~dp0deps\npm\node_modules\node-gyp\bin\node-gyp.js" "%~dp0test\js-native-api" if errorlevel 1 exit /b 1 endlocal goto build-node-api-tests @@ -632,7 +658,7 @@ for /d %%F in (test\node-api\??_*) do ( :: building node-api setlocal set npm_config_nodedir=%~dp0 -"%node_exe%" "%~dp0tools\build-addons.js" "%~dp0deps\npm\node_modules\node-gyp\bin\node-gyp.js" "%~dp0test\node-api" +"%node_exe%" "%~dp0tools\build-addons.mjs" "%~dp0deps\npm\node_modules\node-gyp\bin\node-gyp.js" "%~dp0test\node-api" if errorlevel 1 exit /b 1 endlocal goto run-tests @@ -746,7 +772,7 @@ set exit_code=1 goto exit :help -echo vcbuild.bat [debug/release] [msi] [doc] [test/test-all/test-addons/test-doc/test-js-native-api/test-node-api/test-benchmark/test-internet/test-pummel/test-simple/test-message/test-tick-processor/test-known-issues/test-node-inspect/test-check-deopts/test-npm/test-async-hooks/test-v8/test-v8-intl/test-v8-benchmarks/test-v8-all] [ignore-flaky] [static/dll] [noprojgen] [projgen] [small-icu/full-icu/without-intl] [nobuild] [nosnapshot] [noetw] [ltcg] [licensetf] [sign] [ia32/x86/x64/arm64] [vs2019/vs2022] [download-all] [lint/lint-ci/lint-js/lint-md] [lint-md-build] [package] [build-release] [upload] [no-NODE-OPTIONS] [link-module path-to-module] [debug-http2] [debug-nghttp2] [clean] [cctest] [no-cctest] [openssl-no-asm] +echo vcbuild.bat [debug/release] [msi] [doc] [test/test-all/test-addons/test-doc/test-js-native-api/test-node-api/test-benchmark/test-internet/test-pummel/test-simple/test-message/test-tick-processor/test-known-issues/test-node-inspect/test-check-deopts/test-npm/test-async-hooks/test-v8/test-v8-intl/test-v8-benchmarks/test-v8-all] [ignore-flaky] [static/dll] [noprojgen] [projgen] [small-icu/full-icu/without-intl] [nobuild] [nosnapshot] [nonpm] [nocorepack] [noetw] [ltcg] [licensetf] [sign] [ia32/x86/x64/arm64] [vs2019/vs2022] [download-all] [lint/lint-ci/lint-js/lint-md] [lint-md-build] [package] [build-release] [upload] [no-NODE-OPTIONS] [link-module path-to-module] [debug-http2] [debug-nghttp2] [clean] [cctest] [no-cctest] [openssl-no-asm] echo Examples: echo vcbuild.bat : builds release build echo vcbuild.bat debug : builds debug build